aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--AUTHORS20
-rw-r--r--COPYING2
-rw-r--r--COPYING.LGPL2
-rw-r--r--Makefile1
-rw-r--r--NEWS19
-rw-r--r--README137
-rw-r--r--audio/audiostream.cpp25
-rw-r--r--audio/audiostream.h13
-rw-r--r--audio/decoders/aac.cpp127
-rw-r--r--audio/decoders/aac.h19
-rw-r--r--audio/decoders/adpcm.cpp10
-rw-r--r--audio/decoders/adpcm_intern.h5
-rw-r--r--audio/decoders/codec.h (renamed from engines/agi/preagi_common.h)37
-rw-r--r--audio/decoders/mp3.cpp10
-rw-r--r--audio/decoders/qdm2.cpp116
-rw-r--r--audio/decoders/qdm2.h15
-rw-r--r--audio/decoders/quicktime.cpp58
-rw-r--r--audio/decoders/quicktime.h7
-rw-r--r--audio/decoders/quicktime_intern.h12
-rw-r--r--audio/decoders/raw.cpp22
-rw-r--r--audio/decoders/vorbis.cpp12
-rw-r--r--audio/fmopl.cpp1
-rw-r--r--audio/fmopl.h1
-rw-r--r--audio/mididrv.cpp9
-rw-r--r--audio/mixer.cpp9
-rw-r--r--audio/mods/maxtrax.cpp4
-rw-r--r--audio/mpu401.cpp2
-rw-r--r--audio/rate_arm.cpp1
-rw-r--r--audio/softsynth/appleiigs.cpp1
-rw-r--r--audio/softsynth/cms.cpp16
-rw-r--r--audio/softsynth/eas.cpp1
-rw-r--r--audio/softsynth/emumidi.h6
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_audio.h1
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_euphony.h1
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_midi.cpp5
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_midi.h1
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp1
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_pc98_driver.h1
-rw-r--r--audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h1
-rw-r--r--audio/softsynth/mt32.cpp2
-rw-r--r--audio/softsynth/mt32/mt32_file.cpp1
-rw-r--r--audio/softsynth/opl/dosbox.h1
-rw-r--r--audio/softsynth/opl/mame.cpp1
-rw-r--r--backends/base-backend.cpp7
-rw-r--r--backends/events/dinguxsdl/dinguxsdl-events.cpp12
-rw-r--r--backends/events/gph/gph-events.cpp18
-rw-r--r--backends/events/linuxmotosdl/linuxmotosdl-events.cpp14
-rw-r--r--backends/events/openpandora/op-events.cpp12
-rw-r--r--backends/events/ps3sdl/ps3sdl-events.cpp8
-rw-r--r--backends/events/sdl/sdl-events.cpp186
-rw-r--r--backends/events/sdl/sdl-events.h18
-rw-r--r--backends/events/symbiansdl/symbiansdl-events.cpp15
-rw-r--r--backends/events/symbiansdl/symbiansdl-events.h1
-rw-r--r--backends/events/webossdl/webossdl-events.cpp12
-rw-r--r--backends/events/wincesdl/wincesdl-events.cpp16
-rw-r--r--backends/events/wincesdl/wincesdl-events.h2
-rw-r--r--backends/fs/n64/n64-fs-factory.cpp1
-rw-r--r--backends/fs/n64/n64-fs.cpp1
-rw-r--r--backends/fs/n64/romfsstream.cpp1
-rw-r--r--backends/fs/stdiostream.cpp4
-rw-r--r--backends/fs/symbian/symbian-fs.cpp2
-rw-r--r--backends/fs/symbian/symbianstream.cpp1
-rw-r--r--backends/fs/wii/wii-fs-factory.cpp1
-rw-r--r--backends/fs/wii/wii-fs-factory.h1
-rw-r--r--backends/fs/wii/wii-fs.cpp1
-rw-r--r--backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp39
-rw-r--r--backends/graphics/dinguxsdl/dinguxsdl-graphics.h2
-rw-r--r--backends/graphics/gph/gph-graphics.cpp25
-rw-r--r--backends/graphics/gph/gph-graphics.h2
-rw-r--r--backends/graphics/graphics.h4
-rw-r--r--backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp25
-rw-r--r--backends/graphics/linuxmotosdl/linuxmotosdl-graphics.h3
-rw-r--r--backends/graphics/opengl/gltexture.h20
-rw-r--r--backends/graphics/opengl/opengl-graphics.cpp53
-rw-r--r--backends/graphics/opengl/opengl-graphics.h21
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.cpp102
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.h15
-rw-r--r--backends/graphics/sdl/sdl-graphics.cpp35
-rw-r--r--backends/graphics/sdl/sdl-graphics.h86
-rw-r--r--backends/graphics/surfacesdl/surfacesdl-graphics.cpp61
-rw-r--r--backends/graphics/surfacesdl/surfacesdl-graphics.h11
-rw-r--r--backends/graphics/symbiansdl/symbiansdl-graphics.cpp1
-rw-r--r--backends/graphics/symbiansdl/symbiansdl-graphics.h1
-rw-r--r--backends/graphics/wincesdl/wincesdl-graphics.cpp28
-rw-r--r--backends/graphics/wincesdl/wincesdl-graphics.h4
-rw-r--r--backends/log/log.cpp1
-rw-r--r--backends/log/log.h1
-rw-r--r--backends/mixer/symbiansdl/symbiansdl-mixer.cpp1
-rw-r--r--backends/mixer/symbiansdl/symbiansdl-mixer.h1
-rw-r--r--backends/mixer/wincesdl/wincesdl-mixer.cpp12
-rw-r--r--backends/mixer/wincesdl/wincesdl-mixer.h1
-rw-r--r--backends/module.mk9
-rw-r--r--backends/platform/android/android.cpp1
-rw-r--r--backends/platform/android/android.h1
-rw-r--r--backends/platform/android/android.mk1
-rw-r--r--backends/platform/android/asset-archive.h1
-rw-r--r--backends/platform/android/events.cpp1
-rw-r--r--backends/platform/android/gfx.cpp1
-rw-r--r--backends/platform/android/jni.cpp1
-rw-r--r--backends/platform/android/jni.h1
-rw-r--r--backends/platform/android/module.mk1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/ScummVM.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java1
-rw-r--r--backends/platform/android/org/inodes/gus/scummvm/Unpacker.java1
-rw-r--r--backends/platform/android/texture.cpp1
-rw-r--r--backends/platform/android/texture.h1
-rw-r--r--backends/platform/bada/README.TXT85
-rw-r--r--backends/platform/bada/application.cpp109
-rw-r--r--backends/platform/bada/application.h54
-rw-r--r--backends/platform/bada/audio.cpp260
-rw-r--r--backends/platform/bada/audio.h73
-rw-r--r--backends/platform/bada/bada.mk5
-rw-r--r--backends/platform/bada/form.cpp464
-rw-r--r--backends/platform/bada/form.h108
-rw-r--r--backends/platform/bada/fs.cpp436
-rw-r--r--backends/platform/bada/fs.h82
-rw-r--r--backends/platform/bada/graphics.cpp315
-rw-r--r--backends/platform/bada/graphics.h73
-rw-r--r--backends/platform/bada/main.cpp67
-rw-r--r--backends/platform/bada/missing.cpp113
-rw-r--r--backends/platform/bada/portdefs.h84
-rw-r--r--backends/platform/bada/sscanf.cpp182
-rw-r--r--backends/platform/bada/system.cpp499
-rw-r--r--backends/platform/bada/system.h101
-rw-r--r--backends/platform/dc/DCLauncherDialog.h1
-rw-r--r--backends/platform/dc/README1
-rw-r--r--backends/platform/dc/audio.cpp2
-rw-r--r--backends/platform/dc/cache.S1
-rw-r--r--backends/platform/dc/dc-fs.cpp3
-rw-r--r--backends/platform/dc/dc.h1
-rw-r--r--backends/platform/dc/dcmain.cpp1
-rw-r--r--backends/platform/dc/display.cpp1
-rw-r--r--backends/platform/dc/input.cpp1
-rw-r--r--backends/platform/dc/label.cpp1
-rw-r--r--backends/platform/dc/plugin_head.S1
-rw-r--r--backends/platform/dc/selector.cpp27
-rw-r--r--backends/platform/dingux/README.DINGUX1
-rw-r--r--backends/platform/dingux/scummvm.gpe1
-rw-r--r--backends/platform/ds/arm7/source/libcartreset/cartreset.c3
-rw-r--r--backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h1
-rw-r--r--backends/platform/ds/arm7/source/main.cpp1
-rw-r--r--backends/platform/ds/arm9/dist/readme_ds.txt5
-rw-r--r--backends/platform/ds/arm9/source/dsoptions.cpp1
-rw-r--r--backends/platform/ds/arm9/source/fat/disc_io.h1
-rw-r--r--backends/platform/ds/arm9/source/fat/io_m3_common.c1
-rw-r--r--backends/platform/ds/arm9/source/fat/io_m3_common.h1
-rw-r--r--backends/platform/ds/arm9/source/fat/io_m3sd_asm.s1
-rw-r--r--backends/platform/ds/arm9/source/fat/io_njsd.c2
-rw-r--r--backends/platform/ds/arm9/source/fat/io_scsd.c2
-rw-r--r--backends/platform/ds/arm9/source/fat/io_scsd_asm.s11
-rw-r--r--backends/platform/ds/arm9/source/fat/io_sd_common.c2
-rw-r--r--backends/platform/ds/arm9/source/fat/m3sd.s1
-rw-r--r--backends/platform/ds/arm9/source/keys.cpp1
-rw-r--r--backends/platform/ds/arm9/source/osystem_ds.cpp2
-rw-r--r--backends/platform/ds/arm9/source/scummhelp.cpp1
-rw-r--r--backends/platform/ds/ds.mk1
-rw-r--r--backends/platform/gph/devices/gp2x/mmuhack/README (renamed from backends/platform/gph/devices/gp2x/mmuhack/readme.txt)8
-rw-r--r--backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h1
-rw-r--r--backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s1
-rw-r--r--backends/platform/iphone/iphone_main.m1
-rw-r--r--backends/platform/iphone/iphone_video.m1
-rw-r--r--backends/platform/n64/Makefile1
-rw-r--r--backends/platform/n64/README.N641
-rw-r--r--backends/platform/n64/framfs_save_manager.cpp1
-rw-r--r--backends/platform/n64/framfs_save_manager.h1
-rw-r--r--backends/platform/n64/n64.mk1
-rw-r--r--backends/platform/n64/nintendo64.cpp1
-rw-r--r--backends/platform/n64/osys_n64.h1
-rw-r--r--backends/platform/n64/osys_n64_base.cpp1
-rw-r--r--backends/platform/n64/osys_n64_events.cpp1
-rw-r--r--backends/platform/n64/osys_n64_utilities.cpp1
-rwxr-xr-xbackends/platform/n64/pad_rom.sh1
-rw-r--r--backends/platform/n64/pakfs_save_manager.cpp1
-rw-r--r--backends/platform/n64/pakfs_save_manager.h1
-rw-r--r--backends/platform/n64/portdefs.h1
-rwxr-xr-xbackends/platform/openpandora/build/PXML.xml83
-rw-r--r--backends/platform/openpandora/build/PXML_schema.xsd341
-rwxr-xr-xbackends/platform/openpandora/build/pnd_make.sh340
-rwxr-xr-xbackends/platform/openpandora/build/runscummvm.sh2
-rwxr-xr-xbackends/platform/openpandora/op-bundle.mk3
-rw-r--r--backends/platform/ps2/DmaPipe.h1
-rw-r--r--backends/platform/ps2/Gs2dScreen.cpp2
-rw-r--r--backends/platform/ps2/Makefile.gdb1
-rw-r--r--backends/platform/ps2/Makefile.ps21
-rw-r--r--backends/platform/ps2/asyncfio.cpp1
-rw-r--r--backends/platform/ps2/asyncfio.h1
-rw-r--r--backends/platform/ps2/eecodyvdfs.c2
-rw-r--r--backends/platform/ps2/eecodyvdfs.h1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h1
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst2
-rw-r--r--backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c2
-rw-r--r--backends/platform/ps2/iop/rpckbd/src/imports.lst1
-rw-r--r--backends/platform/ps2/irxboot.cpp1
-rw-r--r--backends/platform/ps2/irxboot.h1
-rw-r--r--backends/platform/ps2/ps2debug.cpp1
-rw-r--r--backends/platform/ps2/ps2debug.h1
-rw-r--r--backends/platform/ps2/ps2input.cpp2
-rw-r--r--backends/platform/ps2/ps2input.h1
-rw-r--r--backends/platform/ps2/ps2mutex.cpp1
-rw-r--r--backends/platform/ps2/ps2pad.cpp2
-rw-r--r--backends/platform/ps2/ps2pad.h1
-rw-r--r--backends/platform/ps2/rpckbd.c1
-rw-r--r--backends/platform/ps2/rpckbd.h1
-rw-r--r--backends/platform/ps2/sdlkeys.h2
-rw-r--r--backends/platform/psp/Makefile1
-rw-r--r--backends/platform/psp/README.PSP1
-rw-r--r--backends/platform/psp/README.PSP.in1
-rw-r--r--backends/platform/psp/display_manager.cpp1
-rw-r--r--backends/platform/psp/dummy.cpp2
-rw-r--r--backends/platform/psp/image_viewer.cpp4
-rw-r--r--backends/platform/psp/image_viewer.h2
-rw-r--r--backends/platform/psp/input.cpp2
-rw-r--r--backends/platform/psp/memory.h2
-rw-r--r--backends/platform/psp/mp3.cpp6
-rw-r--r--backends/platform/psp/mp3.h4
-rw-r--r--backends/platform/psp/png_loader.cpp10
-rw-r--r--backends/platform/psp/png_loader.h4
-rw-r--r--backends/platform/psp/portdefs.h2
-rw-r--r--backends/platform/psp/pspkeyboard.cpp2
-rw-r--r--backends/platform/psp/rtc.cpp1
-rw-r--r--backends/platform/psp/thread.cpp1
-rw-r--r--backends/platform/psp/thread.h2
-rw-r--r--backends/platform/psp/trace.cpp1
-rwxr-xr-x[-rw-r--r--]backends/platform/sdl/macosx/appmenu_osx.h (renamed from engines/tsage/blueforce_logic.h)22
-rwxr-xr-xbackends/platform/sdl/macosx/appmenu_osx.mm110
-rw-r--r--backends/platform/sdl/macosx/macosx.cpp18
-rw-r--r--backends/platform/sdl/module.mk3
-rw-r--r--backends/platform/sdl/ps3/ps3.cpp2
-rw-r--r--backends/platform/sdl/sdl.cpp65
-rw-r--r--backends/platform/sdl/sdl.h6
-rw-r--r--backends/platform/sdl/win32/win32.cpp10
-rw-r--r--backends/platform/symbian/.placeholder2
-rw-r--r--backends/platform/symbian/BuildPackageUpload_AllVersions.pl2
-rw-r--r--backends/platform/symbian/README1
-rw-r--r--backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg2
-rw-r--r--backends/platform/symbian/S60v3/ScummVM_Loc.rss1
-rw-r--r--backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss1
-rw-r--r--backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss1
-rw-r--r--backends/platform/symbian/S60v3/scummvm_reg.rss1
-rw-r--r--backends/platform/symbian/S80/ScummVM_S80.mmp.in1
-rw-r--r--backends/platform/symbian/S90/Scummvm_S90.mmp.in1
-rw-r--r--backends/platform/symbian/UIQ2/ScummVM.rss1
-rw-r--r--backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in1
-rw-r--r--backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg2
-rw-r--r--backends/platform/symbian/UIQ3/ScummVM.rss1
-rw-r--r--backends/platform/symbian/UIQ3/ScummVM_A0000658.rss1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm_loc.rss1
-rw-r--r--backends/platform/symbian/UIQ3/scummvm_reg.rss1
-rw-r--r--backends/platform/symbian/mmp/scummvm_base.mmp.in2
-rw-r--r--backends/platform/symbian/res/ScummVmAif.rss3
-rw-r--r--backends/platform/symbian/src/ScummApp.cpp2
-rw-r--r--backends/platform/symbian/src/ScummApp.h2
-rw-r--r--backends/platform/wii/gdb.txt1
-rw-r--r--backends/platform/wii/main.cpp1
-rw-r--r--backends/platform/wii/module.mk1
-rw-r--r--backends/platform/wii/options.cpp1
-rw-r--r--backends/platform/wii/options.h1
-rw-r--r--backends/platform/wii/osystem_events.cpp1
-rw-r--r--backends/platform/wii/osystem_gfx.cpp1
-rw-r--r--backends/platform/wii/osystem_sfx.cpp1
-rw-r--r--backends/platform/wii/wii.mk1
-rw-r--r--backends/platform/wince/CEActionsPocket.cpp11
-rw-r--r--backends/platform/wince/CEActionsSmartphone.cpp11
-rw-r--r--backends/platform/wince/CEScaler.cpp1
-rw-r--r--backends/platform/wince/CEgui/CEGUI.h1
-rw-r--r--backends/platform/wince/CEgui/PanelKeyboard.cpp1
-rw-r--r--backends/platform/wince/CEkeys/CEKeys.h1
-rw-r--r--backends/platform/wince/CEkeys/EventsBuffer.cpp2
-rw-r--r--backends/platform/wince/README-WinCE.txt24
-rw-r--r--backends/platform/wince/missing/assert.h1
-rw-r--r--backends/platform/wince/missing/io.h1
-rw-r--r--backends/platform/wince/wince-sdl.cpp27
-rw-r--r--backends/platform/wince/wince-sdl.h1
-rw-r--r--backends/plugins/ds/ds-provider.cpp1
-rw-r--r--backends/plugins/ds/ds-provider.h1
-rw-r--r--backends/plugins/elf/arm-loader.cpp1
-rw-r--r--backends/plugins/elf/arm-loader.h1
-rw-r--r--backends/plugins/elf/elf-loader.cpp1
-rw-r--r--backends/plugins/elf/elf-loader.h1
-rw-r--r--backends/plugins/elf/elf-provider.cpp1
-rw-r--r--backends/plugins/elf/elf-provider.h1
-rw-r--r--backends/plugins/elf/elf32.h1
-rw-r--r--backends/plugins/elf/memory-manager.cpp1
-rw-r--r--backends/plugins/elf/mips-loader.cpp1
-rw-r--r--backends/plugins/elf/mips-loader.h1
-rw-r--r--backends/plugins/elf/ppc-loader.cpp1
-rw-r--r--backends/plugins/elf/ppc-loader.h1
-rw-r--r--backends/plugins/elf/shorts-segment-manager.cpp2
-rw-r--r--backends/plugins/elf/shorts-segment-manager.h1
-rw-r--r--backends/plugins/elf/version.cpp1
-rw-r--r--backends/plugins/elf/version.h1
-rw-r--r--backends/plugins/ps2/ps2-provider.cpp1
-rw-r--r--backends/plugins/ps2/ps2-provider.h1
-rw-r--r--backends/plugins/psp/psp-provider.cpp1
-rw-r--r--backends/plugins/psp/psp-provider.h1
-rw-r--r--backends/plugins/wii/wii-provider.cpp1
-rw-r--r--backends/plugins/wii/wii-provider.h1
-rw-r--r--backends/saves/psp/psp-saves.cpp1
-rw-r--r--backends/taskbar/unity/unity-taskbar.cpp7
-rw-r--r--backends/taskbar/unity/unity-taskbar.h7
-rw-r--r--backends/taskbar/win32/mingw-compat.h7
-rw-r--r--backends/taskbar/win32/win32-taskbar.cpp16
-rw-r--r--backends/taskbar/win32/win32-taskbar.h9
-rwxr-xr-xbackends/timer/bada/timer.cpp115
-rwxr-xr-xbackends/timer/bada/timer.h62
-rw-r--r--backends/timer/default/default-timer.cpp36
-rw-r--r--backends/timer/default/default-timer.h7
-rw-r--r--backends/updates/macosx/macosx-updates.h48
-rw-r--r--backends/updates/macosx/macosx-updates.mm127
-rw-r--r--backends/vkeybd/virtual-keyboard.cpp1
-rw-r--r--base/main.cpp19
-rw-r--r--base/plugins.cpp3
-rw-r--r--base/version.cpp1
-rw-r--r--common/EventDispatcher.cpp30
-rw-r--r--common/EventRecorder.cpp115
-rw-r--r--common/EventRecorder.h6
-rw-r--r--common/algorithm.h5
-rw-r--r--common/archive.cpp3
-rw-r--r--common/archive.h2
-rw-r--r--common/array.h4
-rw-r--r--common/bitstream.cpp217
-rw-r--r--common/bitstream.h173
-rw-r--r--common/config-file.cpp2
-rw-r--r--common/config-file.h2
-rw-r--r--common/config-manager.cpp11
-rw-r--r--common/config-manager.h8
-rw-r--r--common/cosinetables.cpp8274
-rw-r--r--common/cosinetables.h37
-rw-r--r--common/dcl.cpp11
-rw-r--r--common/dcl.h1
-rw-r--r--common/dct.cpp208
-rw-r--r--common/dct.h76
-rw-r--r--common/events.h42
-rw-r--r--common/fft.cpp243
-rw-r--r--common/fft.h78
-rw-r--r--common/file.cpp2
-rw-r--r--common/file.h2
-rw-r--r--common/fs.cpp16
-rw-r--r--common/func.h5
-rw-r--r--common/huffman.cpp86
-rw-r--r--common/huffman.h82
-rw-r--r--common/iff_container.cpp6
-rw-r--r--common/iff_container.h28
-rw-r--r--common/keyboard.h2
-rw-r--r--common/localization.cpp66
-rw-r--r--common/localization.h52
-rw-r--r--common/math.h128
-rw-r--r--common/memorypool.cpp1
-rw-r--r--common/module.mk12
-rw-r--r--common/ptr.h41
-rw-r--r--common/quicktime.cpp35
-rw-r--r--common/quicktime.h31
-rw-r--r--common/rational.cpp4
-rw-r--r--common/rdft.cpp102
-rw-r--r--common/rdft.h70
-rw-r--r--common/serializer.h8
-rw-r--r--common/sinetables.cpp8274
-rw-r--r--common/sinetables.h37
-rw-r--r--common/str.h8
-rw-r--r--common/stream.cpp9
-rw-r--r--common/substream.h11
-rw-r--r--common/system.cpp9
-rw-r--r--common/system.h29
-rw-r--r--common/taskbar.h14
-rw-r--r--common/timer.h4
-rw-r--r--common/tokenizer.cpp1
-rw-r--r--common/translation.cpp2
-rw-r--r--common/unarj.cpp20
-rw-r--r--common/unzip.cpp8
-rw-r--r--common/updates.h102
-rw-r--r--common/util.cpp58
-rw-r--r--common/util.h21
-rw-r--r--common/winexe_pe.cpp2
-rw-r--r--common/xmlparser.cpp2
-rw-r--r--common/xmlparser.h2
-rw-r--r--common/zlib.cpp26
-rwxr-xr-xconfigure244
-rw-r--r--devtools/create_hugo/README1
-rw-r--r--devtools/create_hugo/dists/msvc10/create_hugo.vcxproj2
-rw-r--r--devtools/create_hugo/staticdata.h1
-rw-r--r--devtools/create_kyradat/create_kyradat.cpp18
-rw-r--r--devtools/create_kyradat/create_kyradat.h4
-rw-r--r--devtools/create_kyradat/extract.cpp125
-rw-r--r--devtools/create_kyradat/extract.h1
-rw-r--r--devtools/create_kyradat/games.cpp96
-rw-r--r--devtools/create_kyradat/search.cpp1
-rw-r--r--devtools/create_kyradat/search.h1
-rw-r--r--devtools/create_kyradat/tables.cpp81
-rw-r--r--devtools/create_kyradat/tables.h1
-rw-r--r--devtools/create_kyradat/util.cpp1
-rw-r--r--devtools/create_mads/main.cpp2
-rw-r--r--devtools/create_mads/scripts/rex_nebular.txt2
-rw-r--r--devtools/create_project/create_project.cpp1
-rw-r--r--devtools/create_project/msvc10/create_project.vcxproj22
-rw-r--r--devtools/create_project/msvc10/create_project.vcxproj.filters2
-rw-r--r--devtools/create_toon/create_toon.cpp7
-rw-r--r--devtools/create_toon/create_toon.h6
-rw-r--r--devtools/create_toon/staticdata.h1
-rwxr-xr-xdevtools/credits.pl23
-rw-r--r--devtools/sci/musicplayer.cpp2
-rw-r--r--devtools/sci/scitrace.asm1
-rw-r--r--devtools/scumm-md5.txt4
-rw-r--r--devtools/skycpt/KmpSearch.h2
-rw-r--r--devtools/skycpt/skycpt-engine.patch1
-rw-r--r--devtools/tasmrecover/.gitignore1
-rw-r--r--devtools/tasmrecover/dreamweb/backdrop.asm24
-rw-r--r--devtools/tasmrecover/dreamweb/dreamweb.asm17
-rw-r--r--devtools/tasmrecover/dreamweb/keypad.asm1
-rw-r--r--devtools/tasmrecover/dreamweb/look.asm6
-rw-r--r--devtools/tasmrecover/dreamweb/monitor.asm5
-rw-r--r--devtools/tasmrecover/dreamweb/newplace.asm5
-rw-r--r--devtools/tasmrecover/dreamweb/object.asm5
-rw-r--r--devtools/tasmrecover/dreamweb/saveload.asm5
-rw-r--r--devtools/tasmrecover/dreamweb/sblaster.asm30
-rw-r--r--devtools/tasmrecover/dreamweb/sprite.asm16
-rw-r--r--devtools/tasmrecover/dreamweb/talk.asm18
-rw-r--r--devtools/tasmrecover/dreamweb/titles.asm13
-rw-r--r--devtools/tasmrecover/dreamweb/use.asm11
-rw-r--r--devtools/tasmrecover/dreamweb/vars.asm3
-rw-r--r--devtools/tasmrecover/dreamweb/vgafades.asm2
-rw-r--r--devtools/tasmrecover/dreamweb/vgagrafx.asm2
-rwxr-xr-xdevtools/tasmrecover/tasm-recover135
-rw-r--r--devtools/tasmrecover/tasm/cpp.py82
-rw-r--r--devtools/tasmrecover/tasm/lex.py21
-rw-r--r--devtools/tasmrecover/tasm/op.py22
-rw-r--r--devtools/tasmrecover/tasm/parser.py21
-rw-r--r--devtools/tasmrecover/tasm/proc.py21
-rw-r--r--devtools/themeparser.py1
-rw-r--r--dists/android/AndroidManifest.xml1
-rw-r--r--dists/android/AndroidManifest.xml.in1
-rw-r--r--dists/android/README.Android1
-rwxr-xr-xdists/android/mkplugin.sh1
-rw-r--r--dists/android/plugin-manifest.xml1
-rw-r--r--dists/android/plugin-manifest.xml.in1
-rw-r--r--dists/android/plugin-strings.xml1
-rw-r--r--dists/android/res/layout/main.xml1
-rw-r--r--dists/bada/Icons/mainMenu1.pngbin0 -> 16408 bytes
-rw-r--r--dists/bada/Icons/mainMenu2.pngbin0 -> 7302 bytes
-rw-r--r--dists/bada/Icons/splash1.pngbin0 -> 90434 bytes
-rw-r--r--dists/bada/Icons/splash2.pngbin0 -> 34816 bytes
-rw-r--r--dists/bada/Res/scummmobile/THEMERC1
-rw-r--r--dists/bada/Res/scummmobile/checkbox.bmpbin0 -> 774 bytes
-rw-r--r--dists/bada/Res/scummmobile/checkbox_empty.bmpbin0 -> 774 bytes
-rw-r--r--dists/bada/Res/scummmobile/clR6x12-iso-8859-2.fccbin0 -> 6403 bytes
-rw-r--r--dists/bada/Res/scummmobile/clR6x12-iso-8859-5.fccbin0 -> 6403 bytes
-rw-r--r--dists/bada/Res/scummmobile/cursor.bmpbin0 -> 3126 bytes
-rw-r--r--dists/bada/Res/scummmobile/cursor_small.bmpbin0 -> 1062 bytes
-rw-r--r--dists/bada/Res/scummmobile/fixed5x8-iso-8859-2.fccbin0 -> 4619 bytes
-rw-r--r--dists/bada/Res/scummmobile/fixed5x8-iso-8859-5.fccbin0 -> 3985 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvB14-ASCII.fccbin0 -> 7285 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvB14.bdf16308
-rw-r--r--dists/bada/Res/scummmobile/helvB18-ASCII.fccbin0 -> 9823 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvB18.bdf19752
-rw-r--r--dists/bada/Res/scummmobile/helvB24-ASCII.fccbin0 -> 15057 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvB24.bdf24371
-rw-r--r--dists/bada/Res/scummmobile/helvb12-iso-8859-1.fccbin0 -> 5615 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvb12-iso-8859-2.fccbin0 -> 5727 bytes
-rw-r--r--dists/bada/Res/scummmobile/helvb12-iso-8859-5.fccbin0 -> 5234 bytes
-rw-r--r--dists/bada/Res/scummmobile/logo.bmpbin0 -> 69174 bytes
-rw-r--r--dists/bada/Res/scummmobile/logo_small.bmpbin0 -> 17334 bytes
-rw-r--r--dists/bada/Res/scummmobile/radiobutton.bmpbin0 -> 774 bytes
-rw-r--r--dists/bada/Res/scummmobile/radiobutton_empty.bmpbin0 -> 774 bytes
-rw-r--r--dists/bada/Res/scummmobile/scummmobile_gfx.stx671
-rw-r--r--dists/bada/Res/scummmobile/scummmobile_layout.stx861
-rw-r--r--dists/bada/Res/scummmobile/search.bmpbin0 -> 872 bytes
-rw-r--r--dists/bada/Res/vkeybd_bada/lowercase-symbols800x399.bmpbin0 -> 957654 bytes
-rw-r--r--dists/bada/Res/vkeybd_bada/lowercase800x399.bmpbin0 -> 957654 bytes
-rw-r--r--dists/bada/Res/vkeybd_bada/uppercase-symbols800x399.bmpbin0 -> 957654 bytes
-rw-r--r--dists/bada/Res/vkeybd_bada/uppercase800x399.bmpbin0 -> 957654 bytes
-rw-r--r--dists/bada/Res/vkeybd_bada/vkeybd_bada.xml637
-rw-r--r--dists/engine-data/README2
-rw-r--r--dists/engine-data/kyra.datbin356433 -> 385091 bytes
-rw-r--r--dists/macosx/Info.plist4
-rw-r--r--dists/macosx/Info.plist.in4
-rwxr-xr-xdists/macosx/scummvm_osx_appcast.xml25
-rw-r--r--dists/maemo/scummvm.servicewrapper1
-rw-r--r--dists/motomagx/mgx/readme-motomagx-mgx.txt1
-rw-r--r--dists/motomagx/mgx/scummvm.cfg2
-rw-r--r--dists/motomagx/pep/description.ini1
-rw-r--r--dists/os2/readme.os22
-rw-r--r--dists/redhat/scummvm.spec5
-rw-r--r--dists/redhat/scummvm.spec.in5
-rw-r--r--dists/wii/READMII1
-rw-r--r--dists/wii/meta.xml1
-rw-r--r--dists/wii/meta.xml.in1
-rw-r--r--dists/win32/ScummVM.iss22
-rw-r--r--dists/win32/scummvm.gdf.xml2
-rw-r--r--[-rwxr-xr-x]doc/QuickStart (renamed from doc/translations/README-translation_template.txt)1
-rw-r--r--doc/de/Liesmich2316
-rw-r--r--doc/de/Schnellstart176
-rw-r--r--[-rwxr-xr-x]doc/fr/QuickStart_fr (renamed from doc/translations/fr/Lisezmoi.txt)1
-rw-r--r--doc/he/bink-md5s.txt28
-rw-r--r--doc/he/md5s.txt2861
-rw-r--r--doc/he/smacker-md5s.txt46
-rw-r--r--doc/he/u32.txt39
-rw-r--r--doc/he/versions.html754
-rwxr-xr-xdoc/translations/de/Liesmich.txt178
-rw-r--r--engines/advancedDetector.h2
-rw-r--r--engines/agi/agi.cpp12
-rw-r--r--engines/agi/agi.h259
-rw-r--r--engines/agi/checks.cpp30
-rw-r--r--engines/agi/console.cpp34
-rw-r--r--engines/agi/console.h32
-rw-r--r--engines/agi/cycle.cpp6
-rw-r--r--engines/agi/detection.cpp36
-rw-r--r--engines/agi/detection_tables.h87
-rw-r--r--engines/agi/id.cpp18
-rw-r--r--engines/agi/keyboard.cpp4
-rw-r--r--engines/agi/loader_v1.cpp329
-rw-r--r--engines/agi/module.mk3
-rw-r--r--engines/agi/motion.cpp28
-rw-r--r--engines/agi/objects.cpp36
-rw-r--r--engines/agi/op_cmd.cpp1442
-rw-r--r--engines/agi/op_dbg.cpp255
-rw-r--r--engines/agi/op_test.cpp435
-rw-r--r--engines/agi/opcodes.cpp381
-rw-r--r--engines/agi/opcodes.h246
-rw-r--r--engines/agi/preagi.cpp230
-rw-r--r--engines/agi/preagi.h25
-rw-r--r--engines/agi/preagi_common.cpp205
-rw-r--r--engines/agi/preagi_mickey.cpp1068
-rw-r--r--engines/agi/preagi_mickey.h18
-rw-r--r--engines/agi/preagi_troll.cpp305
-rw-r--r--engines/agi/preagi_troll.h13
-rw-r--r--engines/agi/preagi_winnie.cpp575
-rw-r--r--engines/agi/preagi_winnie.h15
-rw-r--r--engines/agi/saveload.cpp10
-rw-r--r--engines/agi/sound.cpp27
-rw-r--r--engines/agi/sound.h10
-rw-r--r--engines/agi/sound_2gs.cpp2
-rw-r--r--engines/agi/sound_2gs.h2
-rw-r--r--engines/agi/sound_coco3.cpp2
-rw-r--r--engines/agi/sound_coco3.h2
-rw-r--r--engines/agi/sound_midi.cpp2
-rw-r--r--engines/agi/sound_midi.h2
-rw-r--r--engines/agi/sound_pcjr.cpp166
-rw-r--r--engines/agi/sound_pcjr.h17
-rw-r--r--engines/agi/sound_sarien.cpp2
-rw-r--r--engines/agi/sound_sarien.h2
-rw-r--r--engines/agi/sprite.cpp14
-rw-r--r--engines/agi/view.cpp57
-rw-r--r--engines/agi/view.h66
-rw-r--r--engines/agi/words.cpp136
-rw-r--r--engines/agos/agos.cpp36
-rw-r--r--engines/agos/agos.h17
-rw-r--r--engines/agos/charset-fontdata.cpp3
-rw-r--r--engines/agos/charset.cpp4
-rw-r--r--engines/agos/contain.cpp2
-rw-r--r--engines/agos/cursor.cpp4
-rw-r--r--engines/agos/debug.cpp1
-rw-r--r--engines/agos/debug.h1
-rw-r--r--engines/agos/debugger.cpp8
-rw-r--r--engines/agos/detection_tables.h52
-rw-r--r--engines/agos/draw.cpp3
-rw-r--r--engines/agos/event.cpp2
-rw-r--r--engines/agos/gfx.cpp3
-rw-r--r--engines/agos/icons.cpp2
-rw-r--r--engines/agos/input.cpp11
-rw-r--r--engines/agos/input_pn.cpp2
-rw-r--r--engines/agos/items.cpp2
-rw-r--r--engines/agos/menus.cpp2
-rw-r--r--engines/agos/midi.cpp4
-rw-r--r--engines/agos/midiparser_s1d.cpp207
-rw-r--r--engines/agos/oracle.cpp1
-rw-r--r--engines/agos/res_ami.cpp2
-rw-r--r--engines/agos/res_snd.cpp42
-rw-r--r--engines/agos/saveload.cpp1
-rw-r--r--engines/agos/script.cpp3
-rw-r--r--engines/agos/script_dp.cpp2
-rw-r--r--engines/agos/script_pn.cpp1
-rw-r--r--engines/agos/script_s1.cpp33
-rw-r--r--engines/agos/script_s2.cpp5
-rw-r--r--engines/agos/script_ww.cpp2
-rw-r--r--engines/agos/sound.cpp14
-rw-r--r--engines/agos/sound.h4
-rw-r--r--engines/agos/verb.cpp1
-rw-r--r--engines/agos/vga.cpp1
-rw-r--r--engines/agos/vga_e2.cpp1
-rw-r--r--engines/agos/vga_s2.cpp17
-rw-r--r--engines/agos/window.cpp1
-rw-r--r--engines/agos/zones.cpp2
-rw-r--r--engines/composer/composer.cpp515
-rw-r--r--engines/composer/composer.h213
-rw-r--r--engines/composer/detection.cpp233
-rw-r--r--engines/composer/graphics.cpp774
-rw-r--r--engines/composer/graphics.h71
-rw-r--r--engines/composer/module.mk16
-rw-r--r--engines/composer/resource.cpp337
-rw-r--r--engines/composer/resource.h124
-rw-r--r--engines/composer/scripting.cpp729
-rw-r--r--engines/cruise/cruise.h10
-rw-r--r--engines/cruise/cruise_main.cpp32
-rw-r--r--engines/cruise/module.mk1
-rw-r--r--engines/cruise/saveload.cpp7
-rw-r--r--engines/cruise/sound.cpp1
-rw-r--r--engines/cruise/sound.h4
-rw-r--r--engines/dialogs.cpp1
-rw-r--r--engines/draci/saveload.cpp8
-rw-r--r--engines/drascula/drascula.h5
-rw-r--r--engines/drascula/resource.cpp9
-rw-r--r--engines/dreamweb/backdrop.cpp285
-rw-r--r--engines/dreamweb/console.cpp3
-rw-r--r--engines/dreamweb/console.h3
-rw-r--r--engines/dreamweb/detection.cpp14
-rw-r--r--engines/dreamweb/detection_tables.h3
-rw-r--r--engines/dreamweb/dreamgen.cpp5582
-rw-r--r--engines/dreamweb/dreamgen.h2169
-rw-r--r--engines/dreamweb/dreamweb.cpp31
-rw-r--r--engines/dreamweb/dreamweb.h6
-rw-r--r--engines/dreamweb/module.mk8
-rw-r--r--engines/dreamweb/pathfind.cpp106
-rw-r--r--engines/dreamweb/print.cpp224
-rw-r--r--engines/dreamweb/runtime.h41
-rw-r--r--engines/dreamweb/saveload.cpp343
-rw-r--r--engines/dreamweb/sprite.cpp893
-rw-r--r--engines/dreamweb/structs.h220
-rw-r--r--engines/dreamweb/stubs.cpp1015
-rw-r--r--engines/dreamweb/stubs.h174
-rw-r--r--engines/dreamweb/vgagrafx.cpp415
-rw-r--r--engines/engine.cpp12
-rw-r--r--engines/engines.mk6
-rw-r--r--engines/gob/draw_v2.cpp1
-rw-r--r--engines/gob/inter.h5
-rw-r--r--engines/gob/inter_v3.cpp35
-rw-r--r--engines/gob/scenery.cpp2
-rw-r--r--engines/groovie/groovie.cpp3
-rw-r--r--engines/groovie/music.cpp5
-rw-r--r--engines/groovie/music.h2
-rw-r--r--engines/groovie/script.cpp3
-rw-r--r--engines/hugo/detection.cpp7
-rw-r--r--engines/hugo/display.cpp1
-rw-r--r--engines/hugo/file.cpp1
-rw-r--r--engines/hugo/file_v1d.cpp1
-rw-r--r--engines/hugo/file_v1w.cpp1
-rw-r--r--engines/hugo/file_v2d.cpp1
-rw-r--r--engines/hugo/file_v2w.cpp1
-rw-r--r--engines/hugo/file_v3d.cpp1
-rw-r--r--engines/hugo/sound.cpp4
-rw-r--r--engines/kyra/animator_hof.cpp1
-rw-r--r--engines/kyra/animator_lok.cpp1
-rw-r--r--engines/kyra/animator_lok.h1
-rw-r--r--engines/kyra/animator_mr.cpp1
-rw-r--r--engines/kyra/animator_v2.cpp1
-rw-r--r--engines/kyra/debugger.cpp1
-rw-r--r--engines/kyra/debugger.h1
-rw-r--r--engines/kyra/detection.cpp1
-rw-r--r--engines/kyra/detection_tables.h179
-rw-r--r--engines/kyra/gui.cpp3
-rw-r--r--engines/kyra/gui.h1
-rw-r--r--engines/kyra/gui_hof.cpp1
-rw-r--r--engines/kyra/gui_hof.h1
-rw-r--r--engines/kyra/gui_lok.cpp1
-rw-r--r--engines/kyra/gui_lok.h1
-rw-r--r--engines/kyra/gui_lol.cpp5
-rw-r--r--engines/kyra/gui_lol.h1
-rw-r--r--engines/kyra/gui_mr.cpp1
-rw-r--r--engines/kyra/gui_mr.h1
-rw-r--r--engines/kyra/gui_v2.cpp1
-rw-r--r--engines/kyra/gui_v2.h1
-rw-r--r--engines/kyra/item.h1
-rw-r--r--engines/kyra/items_hof.cpp1
-rw-r--r--engines/kyra/items_lok.cpp8
-rw-r--r--engines/kyra/items_lol.cpp1
-rw-r--r--engines/kyra/items_mr.cpp1
-rw-r--r--engines/kyra/items_v2.cpp1
-rw-r--r--engines/kyra/kyra_hof.cpp8
-rw-r--r--engines/kyra/kyra_hof.h1
-rw-r--r--engines/kyra/kyra_lok.cpp4
-rw-r--r--engines/kyra/kyra_lok.h1
-rw-r--r--engines/kyra/kyra_mr.cpp1
-rw-r--r--engines/kyra/kyra_mr.h1
-rw-r--r--engines/kyra/kyra_v1.cpp1
-rw-r--r--engines/kyra/kyra_v1.h2
-rw-r--r--engines/kyra/kyra_v2.cpp1
-rw-r--r--engines/kyra/kyra_v2.h1
-rw-r--r--engines/kyra/lol.cpp58
-rw-r--r--engines/kyra/lol.h5
-rw-r--r--engines/kyra/resource.cpp3
-rw-r--r--engines/kyra/resource.h5
-rw-r--r--engines/kyra/saveload.cpp8
-rw-r--r--engines/kyra/saveload_hof.cpp1
-rw-r--r--engines/kyra/saveload_lok.cpp1
-rw-r--r--engines/kyra/saveload_lol.cpp1
-rw-r--r--engines/kyra/saveload_mr.cpp1
-rw-r--r--engines/kyra/scene_hof.cpp3
-rw-r--r--engines/kyra/scene_lok.cpp1
-rw-r--r--engines/kyra/scene_lol.cpp1
-rw-r--r--engines/kyra/scene_mr.cpp4
-rw-r--r--engines/kyra/scene_v2.cpp1
-rw-r--r--engines/kyra/screen.cpp1
-rw-r--r--engines/kyra/screen.h1
-rw-r--r--engines/kyra/screen_hof.cpp1
-rw-r--r--engines/kyra/screen_hof.h1
-rw-r--r--engines/kyra/screen_lol.cpp1
-rw-r--r--engines/kyra/screen_lol.h1
-rw-r--r--engines/kyra/screen_v2.cpp1
-rw-r--r--engines/kyra/screen_v2.h1
-rw-r--r--engines/kyra/script.cpp1
-rw-r--r--engines/kyra/script.h1
-rw-r--r--engines/kyra/script_hof.cpp1
-rw-r--r--engines/kyra/script_lok.cpp6
-rw-r--r--engines/kyra/script_lol.cpp1
-rw-r--r--engines/kyra/script_tim.cpp1
-rw-r--r--engines/kyra/script_tim.h1
-rw-r--r--engines/kyra/script_v1.cpp1
-rw-r--r--engines/kyra/script_v2.cpp1
-rw-r--r--engines/kyra/seqplayer.cpp1
-rw-r--r--engines/kyra/seqplayer.h1
-rw-r--r--engines/kyra/sequences_hof.cpp2
-rw-r--r--engines/kyra/sequences_lok.cpp3
-rw-r--r--engines/kyra/sequences_lol.cpp4
-rw-r--r--engines/kyra/sequences_mr.cpp1
-rw-r--r--engines/kyra/sequences_v2.cpp1
-rw-r--r--engines/kyra/sound.cpp2
-rw-r--r--engines/kyra/sound_adlib.cpp1
-rw-r--r--engines/kyra/sound_adlib.h1
-rw-r--r--engines/kyra/sound_amiga.cpp1
-rw-r--r--engines/kyra/sound_digital.cpp1
-rw-r--r--engines/kyra/sound_lol.cpp1
-rw-r--r--engines/kyra/sound_midi.cpp1
-rw-r--r--engines/kyra/sound_pcspk.cpp1
-rw-r--r--engines/kyra/sound_towns.cpp1
-rw-r--r--engines/kyra/sprites.cpp1
-rw-r--r--engines/kyra/sprites.h1
-rw-r--r--engines/kyra/sprites_lol.cpp1
-rw-r--r--engines/kyra/staticres.cpp28
-rw-r--r--engines/kyra/staticres_lol.cpp23
-rw-r--r--engines/kyra/text.h1
-rw-r--r--engines/kyra/text_hof.h1
-rw-r--r--engines/kyra/text_lol.cpp1
-rw-r--r--engines/kyra/text_lol.h1
-rw-r--r--engines/kyra/text_mr.cpp1
-rw-r--r--engines/kyra/timer.h1
-rw-r--r--engines/kyra/timer_lok.cpp1
-rw-r--r--engines/kyra/timer_lol.cpp1
-rw-r--r--engines/kyra/util.cpp1
-rw-r--r--engines/kyra/util.h1
-rw-r--r--engines/kyra/wsamovie.cpp2
-rw-r--r--engines/kyra/wsamovie.h2
-rw-r--r--engines/lastexpress/data/snd.cpp81
-rw-r--r--engines/lastexpress/game/savegame.cpp12
-rw-r--r--engines/lastexpress/lastexpress.cpp3
-rw-r--r--engines/lastexpress/lastexpress.h1
-rw-r--r--engines/lastexpress/module.mk2
-rw-r--r--engines/lastexpress/shared.h17
-rw-r--r--engines/lastexpress/sound/entry.cpp6
-rw-r--r--engines/lastexpress/sound/queue.cpp88
-rw-r--r--engines/lastexpress/sound/sound.cpp4
-rw-r--r--engines/lure/module.mk1
-rw-r--r--engines/lure/sound.h3
-rw-r--r--engines/m4/converse.cpp6
-rw-r--r--engines/m4/globals.cpp9
-rw-r--r--engines/m4/globals.h2
-rw-r--r--engines/m4/m4.h1
-rw-r--r--engines/m4/mads_logic.cpp41
-rw-r--r--engines/m4/midi.h1
-rw-r--r--engines/m4/saveload.cpp3
-rw-r--r--engines/m4/scripttab.h1
-rw-r--r--engines/made/detection.cpp30
-rw-r--r--engines/mohawk/console.cpp2
-rw-r--r--engines/mohawk/cstime.h2
-rw-r--r--engines/mohawk/cursors.cpp37
-rw-r--r--engines/mohawk/detection_tables.h84
-rw-r--r--engines/mohawk/dialogs.cpp24
-rw-r--r--engines/mohawk/dialogs.h1
-rw-r--r--engines/mohawk/graphics.cpp11
-rw-r--r--engines/mohawk/graphics.h4
-rw-r--r--engines/mohawk/livingbooks.cpp65
-rw-r--r--engines/mohawk/livingbooks.h11
-rw-r--r--engines/mohawk/livingbooks_code.cpp33
-rw-r--r--engines/mohawk/livingbooks_code.h2
-rw-r--r--engines/mohawk/mohawk.cpp2
-rw-r--r--engines/mohawk/myst.cpp14
-rw-r--r--engines/mohawk/myst.h1
-rw-r--r--engines/mohawk/myst_scripts.cpp2
-rw-r--r--engines/mohawk/myst_stacks/demo.cpp98
-rw-r--r--engines/mohawk/myst_stacks/demo.h14
-rw-r--r--engines/mohawk/myst_stacks/myst.h4
-rw-r--r--engines/mohawk/myst_stacks/preview.cpp213
-rw-r--r--engines/mohawk/myst_stacks/preview.h27
-rw-r--r--engines/mohawk/myst_stacks/slides.cpp25
-rw-r--r--engines/mohawk/myst_stacks/slides.h2
-rw-r--r--engines/mohawk/myst_state.cpp8
-rw-r--r--engines/mohawk/riven.cpp175
-rw-r--r--engines/mohawk/riven.h8
-rw-r--r--engines/mohawk/riven_external.cpp32
-rw-r--r--engines/mohawk/riven_vars.cpp8
-rw-r--r--engines/mohawk/sound.cpp7
-rw-r--r--engines/mohawk/sound.h7
-rw-r--r--engines/parallaction/graphics.h9
-rw-r--r--engines/parallaction/gui_br.cpp1
-rw-r--r--engines/parallaction/sound.h3
-rw-r--r--engines/queen/command.h1
-rw-r--r--engines/queen/credits.cpp1
-rw-r--r--engines/saga/actor.h2
-rw-r--r--engines/saga/detection.cpp11
-rw-r--r--engines/saga/detection_tables.h30
-rw-r--r--engines/saga/input.cpp1
-rw-r--r--engines/saga/interface.cpp6
-rw-r--r--engines/saga/introproc_ite.cpp33
-rw-r--r--engines/saga/music.cpp12
-rw-r--r--engines/saga/palanim.h1
-rw-r--r--engines/saga/puzzle.cpp18
-rw-r--r--engines/saga/render.cpp2
-rw-r--r--engines/saga/resource.cpp6
-rw-r--r--engines/saga/saga.cpp5
-rw-r--r--engines/saga/saga.h15
-rw-r--r--engines/saga/saveload.cpp7
-rw-r--r--engines/saga/scene.cpp2
-rw-r--r--engines/saga/shorten.cpp1
-rw-r--r--engines/saga/shorten.h1
-rw-r--r--engines/saga/sndres.cpp9
-rw-r--r--engines/saga/sthread.cpp1
-rw-r--r--engines/savestate.cpp1
-rw-r--r--engines/sci/decompressor.h1
-rw-r--r--engines/sci/detection.cpp29
-rw-r--r--engines/sci/detection_tables.h9
-rw-r--r--engines/sci/engine/kstring.cpp5
-rw-r--r--engines/sci/engine/seg_manager.cpp6
-rw-r--r--engines/sci/engine/workarounds.cpp2
-rw-r--r--engines/sci/graphics/palette.cpp2
-rw-r--r--engines/sci/graphics/screen.cpp2
-rw-r--r--engines/sci/parser/said.cpp1
-rw-r--r--engines/sci/sound/drivers/cms.cpp1
-rw-r--r--engines/scumm/charset.cpp907
-rw-r--r--engines/scumm/charset.h88
-rw-r--r--engines/scumm/cursor.cpp71
-rw-r--r--engines/scumm/detection.cpp23
-rw-r--r--engines/scumm/detection_tables.h18
-rw-r--r--engines/scumm/dialogs.cpp71
-rw-r--r--engines/scumm/gfx.cpp1
-rw-r--r--engines/scumm/he/animation_he.cpp128
-rw-r--r--engines/scumm/he/animation_he.h35
-rw-r--r--engines/scumm/he/intern_he.h2
-rw-r--r--engines/scumm/he/logic/baseball2001.cpp63
-rw-r--r--engines/scumm/he/logic/basketball.cpp230
-rw-r--r--engines/scumm/he/logic/football.cpp288
-rw-r--r--engines/scumm/he/logic/funshop.cpp216
-rw-r--r--engines/scumm/he/logic/moonbase.cpp50
-rw-r--r--engines/scumm/he/logic/puttrace.cpp376
-rw-r--r--engines/scumm/he/logic/soccer.cpp1206
-rw-r--r--engines/scumm/he/logic_he.cpp1393
-rw-r--r--engines/scumm/he/logic_he.h155
-rw-r--r--engines/scumm/he/script_v100he.cpp24
-rw-r--r--engines/scumm/he/script_v60he.cpp12
-rw-r--r--engines/scumm/he/script_v72he.cpp11
-rw-r--r--engines/scumm/he/script_v80he.cpp5
-rw-r--r--engines/scumm/he/script_v90he.cpp2
-rw-r--r--engines/scumm/he/sprite_he.cpp10
-rw-r--r--engines/scumm/he/sprite_he.h1
-rw-r--r--engines/scumm/he/wiz_he.cpp2
-rw-r--r--engines/scumm/help.cpp2
-rw-r--r--engines/scumm/help.h1
-rw-r--r--engines/scumm/imuse/imuse.cpp153
-rw-r--r--engines/scumm/imuse/imuse.h7
-rw-r--r--engines/scumm/imuse/imuse_internal.h42
-rw-r--r--engines/scumm/imuse/imuse_part.cpp12
-rw-r--r--engines/scumm/imuse/imuse_player.cpp49
-rw-r--r--engines/scumm/imuse/instrument.cpp100
-rw-r--r--engines/scumm/imuse/instrument.h6
-rw-r--r--engines/scumm/imuse/pcspk.cpp834
-rw-r--r--engines/scumm/imuse/pcspk.h160
-rw-r--r--engines/scumm/imuse/sysex.h1
-rw-r--r--engines/scumm/imuse/sysex_samnmax.cpp3
-rw-r--r--engines/scumm/imuse/sysex_scumm.cpp81
-rw-r--r--engines/scumm/imuse_digi/dimuse.cpp2
-rw-r--r--engines/scumm/input.cpp12
-rw-r--r--engines/scumm/insane/insane_enemy.cpp1
-rw-r--r--engines/scumm/insane/insane_iact.cpp1
-rw-r--r--engines/scumm/insane/insane_scenes.cpp1
-rw-r--r--engines/scumm/module.mk10
-rw-r--r--engines/scumm/palette.cpp12
-rw-r--r--engines/scumm/player_v2.h5
-rw-r--r--engines/scumm/player_v2base.h6
-rw-r--r--engines/scumm/player_v2cms.cpp536
-rw-r--r--engines/scumm/player_v2cms.h74
-rw-r--r--engines/scumm/saveload.cpp7
-rw-r--r--engines/scumm/script_v4.cpp12
-rw-r--r--engines/scumm/script_v5.cpp14
-rw-r--r--engines/scumm/scumm-md5.h6
-rw-r--r--engines/scumm/scumm.cpp106
-rw-r--r--engines/scumm/scumm.h23
-rw-r--r--engines/scumm/smush/channel.cpp4
-rw-r--r--engines/scumm/smush/codec37.cpp1
-rw-r--r--engines/scumm/smush/smush_font.cpp1
-rw-r--r--engines/scumm/sound.cpp70
-rw-r--r--engines/scumm/sound.h3
-rw-r--r--engines/scumm/string.cpp10
-rw-r--r--engines/scumm/vars.cpp11
-rw-r--r--engines/sky/autoroute.h1
-rw-r--r--engines/sword1/control.h1
-rw-r--r--engines/sword1/debug.h1
-rw-r--r--engines/sword1/detection.cpp8
-rw-r--r--engines/sword1/object.h1
-rw-r--r--engines/sword1/screen.h3
-rw-r--r--engines/sword25/detection.cpp1
-rw-r--r--engines/sword25/gfx/image/vectorimage.cpp3
-rw-r--r--engines/sword25/kernel/inputpersistenceblock.cpp28
-rw-r--r--engines/sword25/kernel/inputpersistenceblock.h1
-rw-r--r--engines/sword25/kernel/outputpersistenceblock.cpp12
-rw-r--r--engines/sword25/kernel/persistenceblock.h42
-rw-r--r--engines/sword25/sfx/soundengine.cpp2
-rw-r--r--engines/sword25/util/lua/lapi.cpp1
-rw-r--r--engines/sword25/util/lua/lauxlib.cpp1
-rw-r--r--engines/sword25/util/lua/lauxlib.h2
-rw-r--r--engines/sword25/util/lua/lbaselib.cpp1
-rw-r--r--engines/sword25/util/lua/lcode.cpp1
-rw-r--r--engines/sword25/util/lua/ldblib.cpp1
-rw-r--r--engines/sword25/util/lua/ldebug.cpp1
-rw-r--r--engines/sword25/util/lua/ldo.cpp2
-rw-r--r--engines/sword25/util/lua/ldo.h1
-rw-r--r--engines/sword25/util/lua/lfunc.cpp1
-rw-r--r--engines/sword25/util/lua/lgc.cpp1
-rw-r--r--engines/sword25/util/lua/linit.cpp1
-rw-r--r--engines/sword25/util/lua/liolib.cpp1
-rw-r--r--engines/sword25/util/lua/llex.cpp1
-rw-r--r--engines/sword25/util/lua/lmathlib.cpp1
-rw-r--r--engines/sword25/util/lua/lmem.cpp1
-rw-r--r--engines/sword25/util/lua/lmem.h1
-rw-r--r--engines/sword25/util/lua/loadlib.cpp1
-rw-r--r--engines/sword25/util/lua/lobject.h1
-rw-r--r--engines/sword25/util/lua/lopcodes.cpp1
-rw-r--r--engines/sword25/util/lua/loslib.cpp1
-rw-r--r--engines/sword25/util/lua/lstate.cpp1
-rw-r--r--engines/sword25/util/lua/lstate.h1
-rw-r--r--engines/sword25/util/lua/lstring.cpp1
-rw-r--r--engines/sword25/util/lua/lstrlib.cpp1
-rw-r--r--engines/sword25/util/lua/ltablib.cpp1
-rw-r--r--engines/sword25/util/lua/ltm.cpp1
-rw-r--r--engines/sword25/util/lua/luaconf.h1
-rw-r--r--engines/sword25/util/lua/lvm.cpp1
-rw-r--r--engines/sword25/util/lua/lzio.cpp2
-rw-r--r--engines/sword25/util/pluto/CHANGELOG1
-rw-r--r--engines/sword25/util/pluto/FILEFORMAT2
-rw-r--r--engines/sword25/util/pluto/THANKS1
-rw-r--r--engines/sword25/util/pluto/plzio.cpp2
-rw-r--r--engines/teenagent/animation.cpp28
-rw-r--r--engines/teenagent/animation.h2
-rw-r--r--engines/teenagent/detection.cpp5
-rw-r--r--engines/teenagent/font.h1
-rw-r--r--engines/teenagent/inventory.cpp6
-rw-r--r--engines/teenagent/scene.cpp14
-rw-r--r--engines/teenagent/surface.cpp14
-rw-r--r--engines/teenagent/surface.h2
-rw-r--r--engines/teenagent/surface_list.cpp14
-rw-r--r--engines/teenagent/surface_list.h3
-rw-r--r--engines/teenagent/teenagent.cpp2
-rw-r--r--engines/testbed/misc.cpp4
-rw-r--r--engines/tinsel/adpcm.cpp2
-rw-r--r--engines/tinsel/coroutine.cpp1
-rw-r--r--engines/tinsel/detection.cpp16
-rw-r--r--engines/tinsel/detection_tables.h26
-rw-r--r--engines/tinsel/saveload.cpp9
-rw-r--r--engines/tinsel/strres.h1
-rw-r--r--engines/tinsel/tinsel.h4
-rw-r--r--engines/toon/audio.cpp1
-rw-r--r--engines/toon/character.cpp10
-rw-r--r--engines/toon/detection.cpp7
-rw-r--r--engines/toon/drew.cpp1
-rw-r--r--engines/toon/hotspot.cpp1
-rw-r--r--engines/toon/movie.cpp3
-rw-r--r--engines/toon/path.cpp100
-rw-r--r--engines/toon/path.h17
-rw-r--r--engines/toon/picture.cpp11
-rw-r--r--engines/toon/picture.h2
-rw-r--r--engines/toon/script.cpp1
-rw-r--r--engines/toon/script.h1
-rw-r--r--engines/toon/toon.cpp15
-rw-r--r--engines/tsage/blue_force/blueforce_logic.cpp355
-rw-r--r--engines/tsage/blue_force/blueforce_logic.h137
-rw-r--r--engines/tsage/blue_force/blueforce_scenes0.cpp501
-rw-r--r--engines/tsage/blue_force/blueforce_scenes0.h103
-rw-r--r--engines/tsage/blue_force/blueforce_scenes1.cpp432
-rw-r--r--engines/tsage/blue_force/blueforce_scenes1.h132
-rw-r--r--engines/tsage/blueforce_logic.cpp120
-rw-r--r--engines/tsage/converse.cpp53
-rw-r--r--engines/tsage/converse.h8
-rw-r--r--engines/tsage/core.cpp76
-rw-r--r--engines/tsage/core.h33
-rw-r--r--engines/tsage/debugger.cpp20
-rw-r--r--engines/tsage/debugger.h6
-rw-r--r--engines/tsage/detection.cpp18
-rw-r--r--engines/tsage/detection_tables.h40
-rw-r--r--engines/tsage/dialogs.cpp14
-rw-r--r--engines/tsage/dialogs.h4
-rw-r--r--engines/tsage/events.cpp20
-rw-r--r--engines/tsage/events.h5
-rw-r--r--engines/tsage/globals.cpp90
-rw-r--r--engines/tsage/globals.h43
-rw-r--r--engines/tsage/graphics.cpp28
-rw-r--r--engines/tsage/graphics.h6
-rw-r--r--engines/tsage/module.mk25
-rw-r--r--engines/tsage/resources.cpp4
-rw-r--r--engines/tsage/resources.h4
-rw-r--r--engines/tsage/ringworld/ringworld_demo.cpp (renamed from engines/tsage/ringworld_demo.cpp)10
-rw-r--r--engines/tsage/ringworld/ringworld_demo.h (renamed from engines/tsage/ringworld_demo.h)10
-rw-r--r--engines/tsage/ringworld/ringworld_logic.cpp (renamed from engines/tsage/ringworld_logic.cpp)46
-rw-r--r--engines/tsage/ringworld/ringworld_logic.h (renamed from engines/tsage/ringworld_logic.h)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes1.cpp (renamed from engines/tsage/ringworld_scenes1.cpp)38
-rw-r--r--engines/tsage/ringworld/ringworld_scenes1.h (renamed from engines/tsage/ringworld_scenes1.h)19
-rw-r--r--engines/tsage/ringworld/ringworld_scenes10.cpp (renamed from engines/tsage/ringworld_scenes10.cpp)13
-rw-r--r--engines/tsage/ringworld/ringworld_scenes10.h (renamed from engines/tsage/ringworld_scenes10.h)11
-rw-r--r--engines/tsage/ringworld/ringworld_scenes2.cpp (renamed from engines/tsage/ringworld_scenes2.cpp)10
-rw-r--r--engines/tsage/ringworld/ringworld_scenes2.h (renamed from engines/tsage/ringworld_scenes2.h)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes3.cpp (renamed from engines/tsage/ringworld_scenes3.cpp)22
-rw-r--r--engines/tsage/ringworld/ringworld_scenes3.h (renamed from engines/tsage/ringworld_scenes3.h)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes4.cpp (renamed from engines/tsage/ringworld_scenes4.cpp)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes4.h (renamed from engines/tsage/ringworld_scenes4.h)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes5.cpp (renamed from engines/tsage/ringworld_scenes5.cpp)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes5.h (renamed from engines/tsage/ringworld_scenes5.h)11
-rw-r--r--engines/tsage/ringworld/ringworld_scenes6.cpp (renamed from engines/tsage/ringworld_scenes6.cpp)9
-rw-r--r--engines/tsage/ringworld/ringworld_scenes6.h (renamed from engines/tsage/ringworld_scenes6.h)11
-rw-r--r--engines/tsage/ringworld/ringworld_scenes8.cpp (renamed from engines/tsage/ringworld_scenes8.cpp)12
-rw-r--r--engines/tsage/ringworld/ringworld_scenes8.h (renamed from engines/tsage/ringworld_scenes8.h)12
-rw-r--r--engines/tsage/saveload.cpp11
-rw-r--r--engines/tsage/saveload.h4
-rw-r--r--engines/tsage/scenes.cpp28
-rw-r--r--engines/tsage/scenes.h4
-rw-r--r--engines/tsage/sound.cpp313
-rw-r--r--engines/tsage/sound.h65
-rw-r--r--engines/tsage/staticres.cpp45
-rw-r--r--engines/tsage/staticres.h43
-rw-r--r--engines/tsage/tsage.cpp16
-rw-r--r--engines/tsage/tsage.h5
-rw-r--r--graphics/cursor.h63
-rw-r--r--graphics/fontman.cpp20
-rw-r--r--graphics/fontman.h10
-rw-r--r--graphics/fonts/bdf.cpp4
-rw-r--r--graphics/fonts/bdf.h1
-rw-r--r--graphics/imagedec.h1
-rw-r--r--graphics/maccursor.h12
-rw-r--r--graphics/primitives.h1
-rw-r--r--graphics/scaler/aspect.cpp1
-rw-r--r--graphics/scaler/hq2x_i386.asm1
-rw-r--r--graphics/scaler/hq3x_i386.asm1
-rw-r--r--graphics/scaler/scale2x.cpp1
-rw-r--r--graphics/scaler/scale2x.h1
-rw-r--r--graphics/scaler/scale3x.cpp1
-rw-r--r--graphics/scaler/scale3x.h1
-rw-r--r--graphics/scaler/scalebit.cpp1
-rw-r--r--graphics/scaler/scalebit.h1
-rw-r--r--graphics/scaler/thumbnail_intern.cpp1
-rw-r--r--graphics/sjis.cpp155
-rw-r--r--graphics/sjis.h53
-rw-r--r--graphics/surface.cpp6
-rw-r--r--graphics/thumbnail.cpp18
-rw-r--r--graphics/thumbnail.h3
-rw-r--r--graphics/wincursor.cpp57
-rw-r--r--graphics/wincursor.h14
-rw-r--r--graphics/yuv_to_rgb.cpp7
-rw-r--r--graphics/yuv_to_rgb.h8
-rw-r--r--gui/credits.h19
-rw-r--r--gui/launcher.cpp2
-rw-r--r--gui/themebrowser.cpp1
-rw-r--r--gui/themebrowser.h1
-rw-r--r--gui/themes/fonts/topaz/README.ScummVM1
-rw-r--r--gui/themes/translations.datbin226564 -> 244275 bytes
-rw-r--r--gui/widget.cpp4
-rw-r--r--gui/widget.h2
-rw-r--r--gui/widgets/scrollbar.cpp8
-rw-r--r--icons/scummvm.svg2
-rw-r--r--po/POTFILES3
-rw-r--r--po/ca_ES.po5419
-rw-r--r--po/cs_CZ.po5452
-rw-r--r--po/da_DA.po5384
-rw-r--r--po/de_DE.po5479
-rw-r--r--po/es_ES.po5353
-rw-r--r--po/fr_FR.po5412
-rw-r--r--po/hu_HU.po5436
-rw-r--r--po/it_IT.po5400
-rw-r--r--po/module.mk2
-rw-r--r--po/nb_NO.po5392
-rw-r--r--po/nn_NO.po5328
-rw-r--r--po/pl_PL.po5384
-rw-r--r--po/pt_BR.po5406
-rw-r--r--po/ru_RU.po5430
-rw-r--r--po/scummvm.pot581
-rw-r--r--po/se_SE.po5408
-rw-r--r--po/uk_UA.po5400
-rw-r--r--ports.mk26
-rw-r--r--test/README2
-rw-r--r--test/audio/audiostream.h1
-rw-r--r--test/audio/helper.h1
-rw-r--r--test/common/algorithm.h25
-rw-r--r--test/common/fixedstack.h1
-rw-r--r--test/common/math.h18
-rw-r--r--test/common/queue.h1
-rw-r--r--test/common/stack.h1
-rw-r--r--test/common/tokenizer.h1
-rw-r--r--test/cxxtest/COPYING2
-rw-r--r--test/cxxtest/TODO1
-rw-r--r--test/cxxtest/cxxtest.spec1
-rw-r--r--test/cxxtest/cxxtest/Descriptions.h1
-rw-r--r--test/cxxtest/cxxtest/DummyDescriptions.cpp1
-rw-r--r--test/cxxtest/cxxtest/DummyDescriptions.h1
-rw-r--r--test/cxxtest/cxxtest/GlobalFixture.cpp1
-rw-r--r--test/cxxtest/cxxtest/GlobalFixture.h1
-rw-r--r--test/cxxtest/cxxtest/LinkedList.h1
-rw-r--r--test/cxxtest/cxxtest/RealDescriptions.cpp1
-rw-r--r--test/cxxtest/cxxtest/RealDescriptions.h1
-rw-r--r--test/cxxtest/docs/guide.html1
-rw-r--r--test/cxxtest/sample/Construct2
-rw-r--r--test/cxxtest/sample/aborter.tpl1
-rw-r--r--test/cxxtest/sample/file_printer.tpl1
-rw-r--r--test/cxxtest/sample/mock/Dice.cpp2
-rw-r--r--test/cxxtest/sample/mock/Dice.h1
-rw-r--r--test/cxxtest/sample/msvc/CxxTest_Workspace.dsw1
-rw-r--r--test/cxxtest/sample/only.tpl1
-rw-r--r--test/cxxtest/sample/winddk/SOURCES1
-rw-r--r--video/bink_decoder.cpp1634
-rw-r--r--video/bink_decoder.h334
-rw-r--r--video/binkdata.h578
-rw-r--r--video/module.mk5
-rw-r--r--video/smk_decoder.cpp10
1124 files changed, 156868 insertions, 58823 deletions
diff --git a/AUTHORS b/AUTHORS
index d7b16e3d3b..70382c09d9 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -1,9 +1,20 @@
ScummVM Team
************
- Project Leaders
- ---------------
+ Project Leader
+ --------------
Eugene Sandulenko
+ PR Office
+ ---------
+ Arnaud Boutonne - Public Relations Officer, Project Administrator
+ Eugene Sandulenko - Project Leader
+
+ Core Team
+ ---------
+ Willem Jan Palenstijn
+ Eugene Sandulenko
+ Johannes Schickel
+
Retired Project Leaders
-----------------------
James Brown
@@ -71,6 +82,7 @@ ScummVM Team
DreamWeb:
Vladimir Menshakov
Torbjorn Andersson
+ Bertrand Augereau
Gob:
Torbjorn Andersson
@@ -200,6 +212,9 @@ ScummVM Team
Andre Heider
Angus Lees
+ BADA:
+ Chris Warren-Smith
+
Dreamcast:
Marcus Comstedt
@@ -220,6 +235,7 @@ ScummVM Team
Nintendo DS:
Neil Millstone
+ Bertrand Augereau - HQ software scaler
OpenPandora:
John Willis
diff --git a/COPYING b/COPYING
index 75a1ad8761..00ccfbb628 100644
--- a/COPYING
+++ b/COPYING
@@ -336,4 +336,4 @@ This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
-Public License instead of this License. \ No newline at end of file
+Public License instead of this License.
diff --git a/COPYING.LGPL b/COPYING.LGPL
index 56a87b85ed..8dda7c5005 100644
--- a/COPYING.LGPL
+++ b/COPYING.LGPL
@@ -506,5 +506,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/Makefile b/Makefile
index dd921b82aa..a40ef62c53 100644
--- a/Makefile
+++ b/Makefile
@@ -90,4 +90,3 @@ endif
ifneq ($(origin port_mk), undefined)
include $(srcdir)/$(port_mk)
endif
-
diff --git a/NEWS b/NEWS
index 9f1e7c698e..c132abff60 100644
--- a/NEWS
+++ b/NEWS
@@ -2,9 +2,28 @@ For a more comprehensive changelog of the latest experimental code, see:
https://github.com/scummvm/scummvm/commits/
1.4.0 (????-??-??)
+ New Games:
+ - Added support for Lands of Lore: The Throne of Chaos.
+ - Added support for Blue's Birthday Adventure
+ - Added support for Ringworld: Revenge Of The Patriarch
+
+ AGI:
+ - Implemented sound support for the DOS version of Winnie the Pooh in the Hundred Acre Wood.
+
+ SCUMM:
+ - Implemented PC Speaker support for SCUMM v5 games.
+ - Fixed priority bug in iMuse. As a result the AdLib music should sound
+ better, since important notes are not interrupted anymore.
+ - Implemented CMS support for Loom, The Secret of Monkey Island and
+ Indiana Jones and the Last Crusade.
+
SDL ports:
- Added support for OpenGL (GSoC Task).
+ TINSEL:
+ - Fixed deleting saved games from the list of saved games (from the launcher
+ and the in-game ScummVM menu)
+
1.3.1 (2011-07-12)
General:
- Improved audio device detection and fallback.
diff --git a/README b/README
index 48929816fd..b06e19dffe 100644
--- a/README
+++ b/README
@@ -56,7 +56,7 @@ Table of Contents:
* 7.7 TiMidity++ MIDI server support
* 7.8 Using compressed audio files (MP3, Ogg Vorbis, Flac)
* 7.9 Output sample rate
-8.0) Configuration Files
+8.0) Configuration file
9.0) Compiling
@@ -153,7 +153,7 @@ support an unsupported game -- read the FAQ on our web site first.
---- ---------------
To report a bug, please create a SourceForge account and follow the
"Bug Tracker" link from our homepage. Please make sure the bug is
-reproducible, and still occurs in the latest SVN/Daily build version.
+reproducible, and still occurs in the latest git/Daily build version.
Also check the known problems list (below) and the compatibility list
on our website for that game, to ensure the issue is not already known:
@@ -164,7 +164,7 @@ completeable in the 'Supported Games' section, or compatibility list. We
-know- those games have bugs.
Please include the following information:
- - ScummVM version (PLEASE test the latest SVN/Daily build)
+ - ScummVM version (PLEASE test the latest git/Daily build)
- Bug details, including instructions on reproducing
- Language of game (English, German, ...)
- Version of game (talkie, floppy, ...)
@@ -277,6 +277,7 @@ SCUMM Games by Humongous Entertainment:
Blue's 123 Time Activities [Blues123Time]
Blue's ABC Time Activities [BluesABCTime]
Blue's Art Time Activities [arttime]
+ Blue's Birthday Adventure [BluesBirthday]
Blue's Reading Time Activities [readtime]
Fatty Bear's Birthday Surprise [fbear]
Fatty Bear's Fun Pack [fbpack]
@@ -303,12 +304,12 @@ SCUMM Games by Humongous Entertainment:
From Your Head to Your Feet [pajama3]
Pajama Sam's Lost & Found [lost]
Pajama Sam's Sock Works [socks]
- Putt-Putt Enters the Race [puttrace]
- Putt-Putt Goes to the Moon [puttmoon]
- Putt-Putt Joins the Circus [puttcircus]
Putt-Putt Joins the Parade [puttputt]
+ Putt-Putt Goes to the Moon [puttmoon]
Putt-Putt Saves the Zoo [puttzoo]
Putt-Putt Travels Through Time [putttime]
+ Putt-Putt Enters the Race [puttrace]
+ Putt-Putt Joins the Circus [puttcircus]
Putt-Putt and Pep's Balloon-O-Rama [balloon]
Putt-Putt and Pep's Dog on a Stick [dog]
Putt-Putt & Fatty Bear's Activity Pack [activity]
@@ -345,7 +346,6 @@ and view the compatibility chart.
Backyard Soccer [soccer]
Backyard Soccer MLS [soccermls]
Backyard Soccer 2004 [soccer2004]
- Blue's Birthday Adventure [BluesBirthday]
Blue's Treasure Hunt [BluesTreasureHunt]
Pajama Sam: Games to Play on Any Day [pjgames]
@@ -533,8 +533,8 @@ and follow the instructions in its readme.txt file. (Broken Sword II
already has subtitles; no extra work is needed for them.)
-3.7.2) Broken Sword games cutscenes, in retrospect
------- -------------------------------------------
+3.7.2) Broken Sword games cutscenes, in retrospect:
+------ --------------------------------------------
The original releases of the Broken Sword games used RAD Game Tools's
Smacker(tm) format. As RAD was unwilling to open the older legacy
versions of this format to us, and had requested we not reverse engineer
@@ -770,11 +770,12 @@ to be able to play the game under ScummVM.
3.19) Dragon History notes:
----- ---------------------
-There are 3 language variants of the game: Czech, English, and Polish.
-Each of them is distributed in a separate archive. The only official
-version is the Czech one, and the English and Polish ports have always
-been work in progress and never officially released. Although all texts
-are fully translated, it is known that some of them contain typos.
+There are 4 language variants of the game: Czech, English, Polish and
+German. Each of them is distributed in a separate archive. The only
+official version is the Czech one, and the English, Polish and German
+ports have always been work in progress and never officially released.
+Although all texts are fully translated, it is known that some of them
+contain typos.
There exists an optional Czech dubbing for the game. For bandwidth
reasons, you can download it separately and then unpack it to the
@@ -846,8 +847,8 @@ site, please see the section on reporting bugs.
Simon the Sorcerer's Puzzle Pack:
- No support for displaying, entering, loading or saving high scores.
- - No support for displaying explanation, when clicking on items in
- Swampy Adventures.
+ - No support for displaying names of items, when hovering over them
+ in Swampy Adventures.
The Feeble Files:
- Subtitles are often incomplete, they were always disabled in the
@@ -868,7 +869,7 @@ site, please see the section on reporting bugs.
ScummVM has been ported to run on many platforms and operating systems.
Links to these ports can be found either on the ScummVM web page or by a
Google search. Many thanks to our porters for their efforts. If you have
-a port of ScummVM and wish to commit it into the main SVN, feel free to
+a port of ScummVM and wish to commit it into the master git, feel free to
contact us!
Supported platforms include (but are not limited to):
@@ -955,7 +956,7 @@ arguments -- see the next section.
--themepath=PATH Path to where GUI themes are stored
--list-themes Display list of all usable GUI themes
-e, --music-driver=MODE Select music driver (see also section 7.0)
- -q, --language=LANG Select language (see also section 5.2)
+ -q, --language=LANG Select game's language (see also section 5.2)
-m, --music-volume=NUM Set the music volume, 0-255 (default: 192)
-s, --sfx-volume=NUM Set the sfx volume, 0-255 (default: 192)
-r, --speech-volume=NUM Set the voice volume, 0-255 (default: 192)
@@ -1026,8 +1027,8 @@ Examples:
5.2) Language options:
---- -----------------
ScummVM includes a language option for Maniac Mansion, Zak McKracken,
-The Dig, The Curse of Monkey Island, Beneath a Steel Sky, Broken Sword
-and Simon the Sorcerer 1 and 2.
+The Dig, The Curse of Monkey Island, Beneath a Steel Sky and
+Broken Sword.
Note that with the exception of Beneath a Steel Sky, Broken Sword,
multilanguage versions of Goblins games and Nippon Safes Inc., using
@@ -1081,16 +1082,6 @@ Broken Sword
pt - Portuguese
cz - Czech
-Simon the Sorcerer 1 and 2
- en - English (default)
- de - German
- fr - French
- it - Italian
- es - Spanish
- he - Hebrew
- pl - Polish
- ru - Russian
-
5.3) Graphics filters:
---- -----------------
@@ -1117,8 +1108,8 @@ They are:
tv2x - Interlace filter, tries to emulate a TV. Factor 2x.
dotmatrix - Dot matrix effect. Factor 2x.
-To select a graphics filter, pass its name via the '-g' option to
-scummvm, for example:
+To select a graphics filter, select it in the Launcher, or pass its name
+via the '-g' option to scummvm, for example:
scummvm -gadvmame2x monkey2
@@ -1172,8 +1163,8 @@ Engines which currently support returning to the Launcher are:
TUCKER
-5.5) Hot Keys:
----- ---------
+5.5) Hotkeys:
+---- --------
ScummVM supports various in-game hotkeys. They differ between SCUMM games and
other games.
@@ -1284,10 +1275,14 @@ other games.
b - Background sounds on/off
[Simon the Sorcerer 2 only]
Pause - Pauses
- t - Switch between speech and subtitles
+ t - Switch between speech only and
+ combined speech and subtitles
+ [Simon the Sorcerer 1 CD (other than
+ English and German) and Simon the
+ Sorcerer 2 CD (all languages)]
v - Switch between subtitles only and
combined speech and subtitles
- [Simon the Sorcerer 2 only]
+ [Simon the Sorcerer 2 CD only]
Simon the Sorcerer's Puzzle Pack
Ctrl-d - Starts the debugger
@@ -1305,7 +1300,8 @@ other games.
F9 - Hitbox names on/off
s - Sound effects on/off
Pause - Pauses
- t - Switch between speech and subtitles
+ t - Switch between speech only and
+ combined speech and subtitles
v - Switch between subtitles only and
combined speech and subtitles
@@ -1447,14 +1443,14 @@ Where 'xxx' is exact the saved game slot (ie 001) under ScummVM
7.0) Music and Sound:
---- ----------------
On most operating systems and for most games, ScummVM will by default
-use AdLib emulation for music playback. MIDI may not be available on all
-operating systems or may need manual configuration. If you want to use
-MIDI, you have several different choices of output, depending on your
-operating system and configuration.
+use MT-32 or AdLib emulation for music playback. MIDI may not be
+available on all operating systems or may need manual configuration. If
+you want to use MIDI, you have several different choices of output,
+depending on your operating system and configuration.
null - Null output. Don't play any music.
- adlib - Internal AdLib emulation (default)
+ adlib - Internal AdLib emulation
fluidsynth - FluidSynth MIDI emulation
mt32 - Internal MT-32 emulation
pcjr - Internal PCjr emulation (only usable in SCUMM games)
@@ -1479,7 +1475,7 @@ via the '-e' option to scummvm, for example:
7.1) Playing sound with AdLib emulation:
---- -----------------------------------
By default an AdLib card will be emulated and ScummVM will output the
-music as sampled waves. This is the default mode for most games, and
+music as sampled waves. This is the default mode for several games, and
offers the best compatibility between machines and games.
@@ -1650,7 +1646,7 @@ command as described earlier in this section.
7.6.2) Playing sound with IRIX dmedia sequencer: [UNIX ONLY]
----- ------------------------------------------
+---- -------------------------------------------
If you are using IRIX and the dmedia driver with sequencer support, you
can set the environment variable "SCUMMVM_MIDIPORT" or the config file
variable "dmedia_port" to specify your sequencer port. The default is to
@@ -1674,7 +1670,7 @@ SCUMMVM_PORT=Software Synth in your environment.
7.7) Using TiMidity++ MIDI server:
---- -----------------------------
-If you system lacks any MIDI sequencer, but you still want better MIDI
+If your system lacks any MIDI sequencer, but you still want better MIDI
quality than default AdLib emulation can offer, you can try the
TiMidity++ MIDI server. See http://timidity.sourceforge.net/ for
download and install instructions.
@@ -1716,9 +1712,9 @@ q specifying the desired quality from 0 to 10:
7.8.2) Using Flac files for CD audio:
------- ------------------------------------
+------ ------------------------------
Use flac or some other flac encoder to encode the audio tracks to files.
-Name the files track1.flac track2.flac etc. In your filesystem only
+Name the files track1.flac track2.flac etc. If your filesystem only
allows three letter extensions, name the files track1.fla track2.fla
etc. ScummVM must be compiled with flac support to use this option. You
will need to rip the files from the CD as a WAV file, then encode the
@@ -1754,7 +1750,7 @@ of time than MP3, so have a good book handy.
7.8.5) Compressing MONSTER.SOU with Flac:
------- ----------------------------------------
+------ ----------------------------------
As above, but ScummVM must be compiled with Flac support. Run:
compress_scumm_sou --flac monster.sou
@@ -1768,8 +1764,8 @@ those kind of soundfiles. Be sure to read the encoder documentation
before you use other values.
-7.8.6) Compressing music/sfx/speech in AGOS games
------- -----------------------------------------------------------------
+7.8.6) Compressing music/sfx/speech in AGOS games:
+------ -------------------------------------------
Use our 'compress_agos' utility from the scummvm-tools package to
perform this task. You can choose between multiple target formats, but
note that you can only use each if ScummVM was compiled with the
@@ -1803,14 +1799,14 @@ Eventually you will have a much smaller *.mp3, *.ogg or *.fla file, copy
this file to your game directory. You can safely remove the old file.
-7.8.7) Compressing speech/music in Broken Sword
------- ----------------------------------------
+7.8.7) Compressing speech/music in Broken Sword:
+------ -----------------------------------------
The 'compress_sword1' tool from the scummvm-tools package can encode
-music and speech to MP3 as well as Ogg Vorbis. The easiest way to encode
-the files is simply copying the executable into your BS1 directory
-(together with the lame encoder) and run it from there. This way, it
-will automatically encode everything to MP3. Afterwards, you can
-manually remove the SPEECH?.CLU files and the wave music files.
+music and speech to MP3, Ogg Vorbis as well as Flac. The easiest way
+to encode the files is simply copying the executable into your
+BS1 directory (together with the lame encoder) and run it from there.
+This way, it will automatically encode everything to MP3. Afterwards,
+you can manually remove the SPEECH?.CLU files and the wave music files.
Running "compress_sword1 --vorbis" will compress the files using Ogg
Vorbis instead of MP3.
@@ -1821,8 +1817,8 @@ instead of MP3.
Use "compress_sword1 --help" to get a full list of the options.
-7.8.8) Compressing speech/music in Broken Sword II
------- -------------------------------------------
+7.8.8) Compressing speech/music in Broken Sword II:
+------ --------------------------------------------
Use our 'compress_sword2' utility from the scummvm-tools package to
perform this task. You can choose between multiple target formats, but
note that you can only use each if ScummVM was compiled with the
@@ -2025,7 +2021,7 @@ Flight of the Amazon Queen adds the following non-standard keywords:
music_mute bool If true, music is muted
sfx_mute bool If true, sound effects are muted
-King's Quest VI Windows adds the following non-standard keywords:
+King's Quest VI Windows adds the following non-standard keyword:
windows_cursors bool If true, the original unscaled black and white
Windows cursors are used instead of the DOS
@@ -2059,7 +2055,7 @@ compressed sound. For compressed save states, zlib is required.
Some parts of ScummVM, particularly scalers, have highly optimized
versions written in assembler. If you wish to use this option, you will
-need to install nasm assembler (see http://nasm.sf.net). Note, that
+need to install nasm assembler (see http://nasm.sf.net). Note that
currently we have only x86 MMX optimized versions, and they will not
compile on other processors.
@@ -2076,19 +2072,12 @@ debug messages (see http://www.sysinternals.com/ntw2k/freeware/debugview.shtml).
respectively
http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW
- Microsoft Visual C++ 6.0:
- * Open the workspace file "scummwm.dsw" in the "dists\msvc6" directory.
- * Enter the path to the needed libraries and includes in
- "Tools|Options|Directories".
- * Now it should compile successfully.
- * For more information refer to:
- http://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
-
- Microsoft Visual C++ 7.0/8.0:
- * Open the solution file "scummwm.sln" in the "dists\msvc7"
- respectively "dists\msvc8" directory.
+ Microsoft Visual C++ 8/9/10:
+ * Read up on how to create the project files in "dists\msvc8",
+ "dists\msvc9" respectively "dists\msvc10".
+ * Open the resulting solution file.
* Enter the path to the needed libraries and includes in
- Tools|Options|Projects|VC++ Directories".
+ Tools|Options|Projects and Solutions|VC++ Directories".
* Now it should compile successfully.
* For more information refer to:
http://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
@@ -2140,7 +2129,7 @@ debug messages (see http://www.sysinternals.com/ntw2k/freeware/debugview.shtml).
Maemo:
* Get Scratchbox environment with Maemo 2.2 rootstrap (2.2 is for 770 and up)
* Install libmad, Tremor, FLAC from source
- * patch scummvm source (some stuff is currently too dirty to be in svn directly)
+ * patch scummvm source (some stuff is currently too dirty to be in git directly):
patch -p1 < backends/platform/maemo/scummvm-[currentversion]-maemo.patch
* update debian/changelog
* run 'fakeroot dpkg-buildpackage -b -d'
diff --git a/audio/audiostream.cpp b/audio/audiostream.cpp
index 547aa77526..1c5c435359 100644
--- a/audio/audiostream.cpp
+++ b/audio/audiostream.cpp
@@ -61,15 +61,13 @@ static const StreamFileFormat STREAM_FILEFORMATS[] = {
{ "MPEG Layer 3", ".mp3", makeMP3Stream },
#endif
{ "MPEG-4 Audio", ".m4a", makeQuickTimeStream },
-
- { NULL, NULL, NULL } // Terminator
};
SeekableAudioStream *SeekableAudioStream::openStreamFile(const Common::String &basename) {
SeekableAudioStream *stream = NULL;
Common::File *fileHandle = new Common::File();
- for (int i = 0; i < ARRAYSIZE(STREAM_FILEFORMATS)-1 && stream == NULL; ++i) {
+ for (int i = 0; i < ARRAYSIZE(STREAM_FILEFORMATS); ++i) {
Common::String filename = basename + STREAM_FILEFORMATS[i].fileExtension;
fileHandle->open(filename);
if (fileHandle->isOpen()) {
@@ -93,7 +91,7 @@ SeekableAudioStream *SeekableAudioStream::openStreamFile(const Common::String &b
#pragma mark -
LoopingAudioStream::LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse)
- : _parent(stream), _disposeAfterUse(disposeAfterUse), _loops(loops), _completeIterations(0) {
+ : _parent(stream, disposeAfterUse), _loops(loops), _completeIterations(0) {
assert(stream);
if (!stream->rewind()) {
@@ -102,11 +100,6 @@ LoopingAudioStream::LoopingAudioStream(RewindableAudioStream *stream, uint loops
}
}
-LoopingAudioStream::~LoopingAudioStream() {
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _parent;
-}
-
int LoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
if ((_loops && _completeIterations == _loops) || !numSamples)
return 0;
@@ -169,7 +162,7 @@ SubLoopingAudioStream::SubLoopingAudioStream(SeekableAudioStream *stream,
const Timestamp loopStart,
const Timestamp loopEnd,
DisposeAfterUse::Flag disposeAfterUse)
- : _parent(stream), _disposeAfterUse(disposeAfterUse), _loops(loops),
+ : _parent(stream, disposeAfterUse), _loops(loops),
_pos(0, getRate() * (isStereo() ? 2 : 1)),
_loopStart(convertTimeToStreamPos(loopStart, getRate(), isStereo())),
_loopEnd(convertTimeToStreamPos(loopEnd, getRate(), isStereo())),
@@ -180,11 +173,6 @@ SubLoopingAudioStream::SubLoopingAudioStream(SeekableAudioStream *stream,
_done = true;
}
-SubLoopingAudioStream::~SubLoopingAudioStream() {
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _parent;
-}
-
int SubLoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
if (_done)
return 0;
@@ -225,7 +213,7 @@ int SubLoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
#pragma mark -
SubSeekableAudioStream::SubSeekableAudioStream(SeekableAudioStream *parent, const Timestamp start, const Timestamp end, DisposeAfterUse::Flag disposeAfterUse)
- : _parent(parent), _disposeAfterUse(disposeAfterUse),
+ : _parent(parent, disposeAfterUse),
_start(convertTimeToStreamPos(start, getRate(), isStereo())),
_pos(0, getRate() * (isStereo() ? 2 : 1)),
_length(convertTimeToStreamPos(end, getRate(), isStereo()) - _start) {
@@ -234,11 +222,6 @@ SubSeekableAudioStream::SubSeekableAudioStream(SeekableAudioStream *parent, cons
_parent->seek(_start);
}
-SubSeekableAudioStream::~SubSeekableAudioStream() {
- if (_disposeAfterUse)
- delete _parent;
-}
-
int SubSeekableAudioStream::readBuffer(int16 *buffer, const int numSamples) {
int framesLeft = MIN(_length.frameDiff(_pos), numSamples);
int framesRead = _parent->readBuffer(buffer, framesLeft);
diff --git a/audio/audiostream.h b/audio/audiostream.h
index 0ffaa241ce..9c28e4d67f 100644
--- a/audio/audiostream.h
+++ b/audio/audiostream.h
@@ -23,6 +23,7 @@
#ifndef SOUND_AUDIOSTREAM_H
#define SOUND_AUDIOSTREAM_H
+#include "common/ptr.h"
#include "common/scummsys.h"
#include "common/str.h"
#include "common/types.h"
@@ -114,7 +115,6 @@ public:
* @param disposeAfterUse Destroy the stream after the LoopingAudioStream has finished playback.
*/
LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES);
- ~LoopingAudioStream();
int readBuffer(int16 *buffer, const int numSamples);
bool endOfData() const;
@@ -129,8 +129,7 @@ public:
*/
uint getCompleteIterations() const { return _completeIterations; }
private:
- RewindableAudioStream *_parent;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<RewindableAudioStream> _parent;
uint _loops;
uint _completeIterations;
@@ -246,7 +245,6 @@ public:
const Timestamp loopStart,
const Timestamp loopEnd,
DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES);
- ~SubLoopingAudioStream();
int readBuffer(int16 *buffer, const int numSamples);
bool endOfData() const { return _done; }
@@ -254,8 +252,7 @@ public:
bool isStereo() const { return _parent->isStereo(); }
int getRate() const { return _parent->getRate(); }
private:
- SeekableAudioStream *_parent;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<SeekableAudioStream> _parent;
uint _loops;
Timestamp _pos;
@@ -283,7 +280,6 @@ public:
* @param disposeAfterUse Whether the parent stream object should be destroyed on destruction of the SubSeekableAudioStream.
*/
SubSeekableAudioStream(SeekableAudioStream *parent, const Timestamp start, const Timestamp end, DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES);
- ~SubSeekableAudioStream();
int readBuffer(int16 *buffer, const int numSamples);
@@ -297,8 +293,7 @@ public:
Timestamp getLength() const { return _length; }
private:
- SeekableAudioStream *_parent;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<SeekableAudioStream> _parent;
const Timestamp _start;
const Timestamp _length;
diff --git a/audio/decoders/aac.cpp b/audio/decoders/aac.cpp
index 874062a702..7700bb3215 100644
--- a/audio/decoders/aac.cpp
+++ b/audio/decoders/aac.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#include "audio/decoders/aac.h"
@@ -28,74 +25,34 @@
#ifdef USE_FAAD
#include "common/debug.h"
+#include "common/memstream.h"
#include "common/stream.h"
#include "common/textconsole.h"
#include "common/util.h"
#include "audio/audiostream.h"
+#include "audio/decoders/codec.h"
+#include "audio/decoders/raw.h"
#include <neaacdec.h>
namespace Audio {
-class AACStream : public AudioStream {
+class AACDecoder : public Codec {
public:
- AACStream(Common::SeekableReadStream *stream,
- DisposeAfterUse::Flag disposeStream,
- Common::SeekableReadStream *extraData,
+ AACDecoder(Common::SeekableReadStream *extraData,
DisposeAfterUse::Flag disposeExtraData);
- ~AACStream();
-
- int readBuffer(int16 *buffer, const int numSamples);
+ ~AACDecoder();
- bool endOfData() const { return _inBufferPos >= _inBufferSize && !_remainingSamples; }
- bool isStereo() const { return _channels == 2; }
- int getRate() const { return _rate; }
+ AudioStream *decodeFrame(Common::SeekableReadStream &stream);
private:
NeAACDecHandle _handle;
byte _channels;
unsigned long _rate;
-
- byte *_inBuffer;
- uint32 _inBufferSize;
- uint32 _inBufferPos;
-
- int16 *_remainingSamples;
- uint32 _remainingSamplesSize;
- uint32 _remainingSamplesPos;
-
- void init(Common::SeekableReadStream *extraData);
};
-AACStream::AACStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeStream,
- Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
-
- _remainingSamples = 0;
- _inBufferPos = 0;
-
- init(extraData);
-
- // Copy all the data to a pointer so it can be passed through
- // (At least MPEG-4 chunks shouldn't be large)
- _inBufferSize = stream->size();
- _inBuffer = new byte[_inBufferSize];
- stream->read(_inBuffer, _inBufferSize);
-
- if (disposeStream == DisposeAfterUse::YES)
- delete stream;
-
- if (disposeExtraData == DisposeAfterUse::YES)
- delete extraData;
-}
-
-AACStream::~AACStream() {
- NeAACDecClose(_handle);
- delete[] _inBuffer;
- delete[] _remainingSamples;
-}
-
-void AACStream::init(Common::SeekableReadStream *extraData) {
+AACDecoder::AACDecoder(Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
// Open the library
_handle = NeAACDecOpen();
@@ -117,59 +74,55 @@ void AACStream::init(Common::SeekableReadStream *extraData) {
if (err < 0)
error("Could not initialize AAC decoder: %s", NeAACDecGetErrorMessage(err));
-}
-int AACStream::readBuffer(int16 *buffer, const int numSamples) {
- int samples = 0;
-
- assert((numSamples % _channels) == 0);
+ if (disposeExtraData == DisposeAfterUse::YES)
+ delete extraData;
+}
- // Dip into our remaining samples pool if it's available
- if (_remainingSamples) {
- samples = MIN<int>(numSamples, _remainingSamplesSize - _remainingSamplesPos);
+AACDecoder::~AACDecoder() {
+ NeAACDecClose(_handle);
+}
- memcpy(buffer, _remainingSamples + _remainingSamplesPos, samples * 2);
- _remainingSamplesPos += samples;
+AudioStream *AACDecoder::decodeFrame(Common::SeekableReadStream &stream) {
+ // read everything into a buffer
+ uint32 inBufferPos = 0;
+ uint32 inBufferSize = stream.size();
+ byte *inBuffer = new byte[inBufferSize];
+ stream.read(inBuffer, inBufferSize);
- if (_remainingSamplesPos == _remainingSamplesSize) {
- delete[] _remainingSamples;
- _remainingSamples = 0;
- }
- }
+ QueuingAudioStream *audioStream = makeQueuingAudioStream(_rate, _channels == 2);
// Decode until we have enough samples (or there's no more left)
- while (samples < numSamples && !endOfData()) {
+ while (inBufferPos < inBufferSize) {
NeAACDecFrameInfo frameInfo;
- uint16 *decodedSamples = (uint16 *)NeAACDecDecode(_handle, &frameInfo, _inBuffer + _inBufferPos, _inBufferSize - _inBufferPos);
+ void *decodedSamples = NeAACDecDecode(_handle, &frameInfo, inBuffer + inBufferPos, inBufferSize - inBufferPos);
if (frameInfo.error != 0)
error("Failed to decode AAC frame: %s", NeAACDecGetErrorMessage(frameInfo.error));
- int decodedSampleSize = frameInfo.samples;
- int copySamples = (decodedSampleSize > (numSamples - samples)) ? (numSamples - samples) : decodedSampleSize;
+ byte *buffer = (byte *)malloc(frameInfo.samples * 2);
+ memcpy(buffer, decodedSamples, frameInfo.samples * 2);
+
+ byte flags = FLAG_16BITS;
- memcpy(buffer + samples, decodedSamples, copySamples * 2);
- samples += copySamples;
+ if (_channels == 2)
+ flags |= FLAG_STEREO;
- // Copy leftover samples for use in a later readBuffer() call
- if (copySamples != decodedSampleSize) {
- _remainingSamplesSize = decodedSampleSize - copySamples;
- _remainingSamples = new int16[_remainingSamplesSize];
- _remainingSamplesPos = 0;
- memcpy(_remainingSamples, decodedSamples + copySamples, _remainingSamplesSize * 2);
- }
+#ifdef SCUMM_LITTLE_ENDIAN
+ flags |= FLAG_LITTLE_ENDIAN;
+#endif
- _inBufferPos += frameInfo.bytesconsumed;
+ audioStream->queueBuffer(buffer, frameInfo.samples * 2, DisposeAfterUse::YES, flags);
+
+ inBufferPos += frameInfo.bytesconsumed;
}
- return samples;
+ return audioStream;
}
// Factory function
-AudioStream *makeAACStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeStream,
- Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
-
- return new AACStream(stream, disposeStream, extraData, disposeExtraData);
+Codec *makeAACDecoder(Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
+ return new AACDecoder(extraData, disposeExtraData);
}
} // End of namespace Audio
diff --git a/audio/decoders/aac.h b/audio/decoders/aac.h
index efcbcc6f42..68e322c844 100644
--- a/audio/decoders/aac.h
+++ b/audio/decoders/aac.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
/**
@@ -43,23 +40,19 @@ namespace Common {
namespace Audio {
-class AudioStream;
+class Codec;
/**
- * Create a new AudioStream from the AAC data of an MPEG-4 file in the given stream.
+ * Create a new Codec for decoding AAC data of an MPEG-4 file in the given stream.
*
* @note This should *only* be called by our QuickTime/MPEG-4 decoder since it relies
* on the MPEG-4 extra data. If you want to decode a file using AAC, go use
* makeQuickTimeStream() instead!
- * @param stream the SeekableReadStream from which to read the AAC data
- * @param disposeStream whether to delete the stream after use
* @param extraData the SeekableReadStream from which to read the AAC extra data
* @param disposeExtraData whether to delete the extra data stream after use
- * @return a new AudioStream, or NULL, if an error occurred
+ * @return a new Codec, or NULL, if an error occurred
*/
-AudioStream *makeAACStream(
- Common::SeekableReadStream *stream,
- DisposeAfterUse::Flag disposeStream,
+Codec *makeAACDecoder(
Common::SeekableReadStream *extraData,
DisposeAfterUse::Flag disposeExtraData = DisposeAfterUse::NO);
diff --git a/audio/decoders/adpcm.cpp b/audio/decoders/adpcm.cpp
index f75196c882..535652a0b3 100644
--- a/audio/decoders/adpcm.cpp
+++ b/audio/decoders/adpcm.cpp
@@ -41,8 +41,7 @@ namespace Audio {
// <http://wiki.multimedia.cx/index.php?title=Microsoft_IMA_ADPCM>.
ADPCMStream::ADPCMStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, int rate, int channels, uint32 blockAlign)
- : _stream(stream),
- _disposeAfterUse(disposeAfterUse),
+ : _stream(stream, disposeAfterUse),
_startpos(stream->pos()),
_endpos(_startpos + size),
_channels(channels),
@@ -52,11 +51,6 @@ ADPCMStream::ADPCMStream(Common::SeekableReadStream *stream, DisposeAfterUse::Fl
reset();
}
-ADPCMStream::~ADPCMStream() {
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _stream;
-}
-
void ADPCMStream::reset() {
memset(&_status, 0, sizeof(_status));
_blockPos[0] = _blockPos[1] = _blockAlign; // To make sure first header is read
@@ -234,7 +228,7 @@ int MSIma_ADPCMStream::readBuffer(int16 *buffer, const int numSamples) {
while (samples < numSamples && _samplesLeft[0] != 0) {
for (int i = 0; i < _channels; i++) {
- buffer[samples] = _buffer[i][8 - _samplesLeft[i]];
+ buffer[samples + i] = _buffer[i][8 - _samplesLeft[i]];
_samplesLeft[i]--;
}
diff --git a/audio/decoders/adpcm_intern.h b/audio/decoders/adpcm_intern.h
index c9f894fb84..38514d7fca 100644
--- a/audio/decoders/adpcm_intern.h
+++ b/audio/decoders/adpcm_intern.h
@@ -33,6 +33,7 @@
#include "audio/audiostream.h"
#include "common/endian.h"
+#include "common/ptr.h"
#include "common/stream.h"
#include "common/textconsole.h"
@@ -41,8 +42,7 @@ namespace Audio {
class ADPCMStream : public RewindableAudioStream {
protected:
- Common::SeekableReadStream *_stream;
- const DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<Common::SeekableReadStream> _stream;
const int32 _startpos;
const int32 _endpos;
const int _channels;
@@ -62,7 +62,6 @@ protected:
public:
ADPCMStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, int rate, int channels, uint32 blockAlign);
- ~ADPCMStream();
virtual bool endOfData() const { return (_stream->eos() || _stream->pos() >= _endpos); }
virtual bool isStereo() const { return _channels == 2; }
diff --git a/engines/agi/preagi_common.h b/audio/decoders/codec.h
index a557f69977..93b6878dee 100644
--- a/engines/agi/preagi_common.h
+++ b/audio/decoders/codec.h
@@ -8,44 +8,37 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
+#ifndef AUDIO_DECODERS_CODEC_H
+#define AUDIO_DECODERS_CODEC_H
+namespace Common {
+ class SeekableReadStream;
+}
-#ifndef AGI_PREAGI_COMMON_H
-#define AGI_PREAGI_COMMON_H
-
-namespace Agi {
-
-// default attributes
-#define IDA_DEFAULT 0x0F
-#define IDA_DEFAULT_REV 0xF0
-
-#define IDI_SND_OSCILLATOR_FREQUENCY 1193180
-#define IDI_SND_TIMER_RESOLUTION 0.0182
+namespace Audio {
-#define kColorDefault 0x1337
+class AudioStream;
-#define IDI_MAX_ROW_PIC 20
+class Codec {
+public:
+ Codec() {}
+ virtual ~Codec() {}
-enum SelectionTypes {
- kSelYesNo,
- kSelNumber,
- kSelSpace,
- kSelAnyKey,
- kSelBackspace
+ virtual AudioStream *decodeFrame(Common::SeekableReadStream &data) = 0;
};
-} // End of namespace Agi
+} // End of namespace Audio
#endif
diff --git a/audio/decoders/mp3.cpp b/audio/decoders/mp3.cpp
index 8d7f006ec7..00669945c2 100644
--- a/audio/decoders/mp3.cpp
+++ b/audio/decoders/mp3.cpp
@@ -25,6 +25,7 @@
#ifdef USE_MAD
#include "common/debug.h"
+#include "common/ptr.h"
#include "common/stream.h"
#include "common/textconsole.h"
#include "common/util.h"
@@ -52,8 +53,7 @@ protected:
MP3_STATE_EOS // end of data reached (may need to loop)
};
- Common::SeekableReadStream *_inStream;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<Common::SeekableReadStream> _inStream;
uint _posInFrame;
State _state;
@@ -95,8 +95,7 @@ protected:
};
MP3Stream::MP3Stream(Common::SeekableReadStream *inStream, DisposeAfterUse::Flag dispose) :
- _inStream(inStream),
- _disposeAfterUse(dispose),
+ _inStream(inStream, dispose),
_posInFrame(0),
_state(MP3_STATE_INIT),
_length(0, 1000),
@@ -134,9 +133,6 @@ MP3Stream::MP3Stream(Common::SeekableReadStream *inStream, DisposeAfterUse::Flag
MP3Stream::~MP3Stream() {
deinitStream();
-
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _inStream;
}
void MP3Stream::decodeMP3Data() {
diff --git a/audio/decoders/qdm2.cpp b/audio/decoders/qdm2.cpp
index a178c363b5..19b30217e9 100644
--- a/audio/decoders/qdm2.cpp
+++ b/audio/decoders/qdm2.cpp
@@ -28,10 +28,13 @@
#ifdef AUDIO_QDM2_H
#include "audio/audiostream.h"
+#include "audio/decoders/codec.h"
#include "audio/decoders/qdm2data.h"
+#include "audio/decoders/raw.h"
#include "common/array.h"
#include "common/debug.h"
+#include "common/math.h"
#include "common/stream.h"
#include "common/textconsole.h"
@@ -150,19 +153,14 @@ struct RDFTContext {
FFTContext fft;
};
-class QDM2Stream : public AudioStream {
+class QDM2Stream : public Codec {
public:
- QDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadStream *extraData);
+ QDM2Stream(Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData);
~QDM2Stream();
- bool isStereo() const { return _channels == 2; }
- bool endOfData() const { return _stream->pos() >= _stream->size() && _outputSamples.size() == 0 && _subPacket == 0; }
- int getRate() const { return _sampleRate; }
- int readBuffer(int16 *buffer, const int numSamples);
+ AudioStream *decodeFrame(Common::SeekableReadStream &stream);
private:
- Common::SeekableReadStream *_stream;
-
// Parameters from codec header, do not change during playback
uint8 _channels;
uint16 _sampleRate;
@@ -204,7 +202,6 @@ private:
// I/O data
uint8 *_compressedData;
float _outputBuffer[1024];
- Common::Array<int16> _outputSamples;
// Synthesis filter
int16 ff_mpa_synth_window[512];
@@ -285,7 +282,7 @@ private:
void qdm2_fft_tone_synthesizer(uint8 sub_packet);
void qdm2_calculate_fft(int channel);
void qdm2_synthesis_filter(uint8 index);
- int qdm2_decodeFrame(Common::SeekableReadStream *in);
+ bool qdm2_decodeFrame(Common::SeekableReadStream &in, QueuingAudioStream *audioStream);
};
// Fix compilation for non C99-compliant compilers, like MSVC
@@ -293,21 +290,6 @@ private:
typedef signed long long int int64_t;
#endif
-// Integer log2 function. This is much faster than invoking
-// double precision C99 log2 math functions or equivalent, since
-// this is only used to determine maximum number of bits needed
-// i.e. only non-fractional part is needed. Also, the double
-// version is incorrect for exact cases due to floating point
-// rounding errors.
-static inline int scummvm_log2(int n) {
- int ret = -1;
- while(n != 0) {
- n /= 2;
- ret++;
- }
- return ret;
-}
-
#define QDM2_LIST_ADD(list, size, packet) \
do { \
if (size > 0) \
@@ -1711,7 +1693,7 @@ void QDM2Stream::initVlc(void) {
}
}
-QDM2Stream::QDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadStream *extraData) {
+QDM2Stream::QDM2Stream(Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
uint32 tmp;
int32 tmp_s;
int tmp_val;
@@ -1719,7 +1701,6 @@ QDM2Stream::QDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadS
debug(1, "QDM2Stream::QDM2Stream() Call");
- _stream = stream;
_compressedData = NULL;
_subPacket = 0;
_superBlockStart = 0;
@@ -1841,11 +1822,11 @@ QDM2Stream::QDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadS
warning("QDM2Stream::QDM2Stream() u4 field not 0");
}
- _fftOrder = scummvm_log2(_frameSize) + 1;
+ _fftOrder = Common::intLog2(_frameSize) + 1;
_fftFrameSize = 2 * _frameSize; // complex has two floats
// something like max decodable tones
- _groupOrder = scummvm_log2(_blockSize) + 1;
+ _groupOrder = Common::intLog2(_blockSize) + 1;
_sFrameSize = _blockSize / 16; // 16 iterations per super block
_subSampling = _fftOrder - 7;
@@ -1906,11 +1887,13 @@ QDM2Stream::QDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadS
initNoiseSamples();
_compressedData = new uint8[_packetSize];
+
+ if (disposeExtraData == DisposeAfterUse::YES)
+ delete extraData;
}
QDM2Stream::~QDM2Stream() {
delete[] _compressedData;
- delete _stream;
}
static int qdm2_get_vlc(GetBitContext *gb, VLC *vlc, int flag, int depth) {
@@ -3158,30 +3141,30 @@ void QDM2Stream::qdm2_synthesis_filter(uint8 index)
_outputBuffer[_channels * i + ch] += (float)(samples[_channels * sub_sampling * i + ch] >> (sizeof(int16)*8-16));
}
-int QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream *in) {
- debug(1, "QDM2Stream::qdm2_decodeFrame in->pos(): %d in->size(): %d", in->pos(), in->size());
+bool QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream &in, QueuingAudioStream *audioStream) {
+ debug(1, "QDM2Stream::qdm2_decodeFrame in.pos(): %d in.size(): %d", in.pos(), in.size());
int ch, i;
const int frame_size = (_sFrameSize * _channels);
// If we're in any packet but the first, seek back to the first
if (_subPacket == 0)
- _superBlockStart = in->pos();
+ _superBlockStart = in.pos();
else
- in->seek(_superBlockStart);
+ in.seek(_superBlockStart);
// select input buffer
- if (in->eos() || in->pos() >= in->size()) {
+ if (in.eos() || in.pos() >= in.size()) {
debug(1, "QDM2Stream::qdm2_decodeFrame End of Input Stream");
- return 0;
+ return false;
}
- if ((in->size() - in->pos()) < _packetSize) {
- debug(1, "QDM2Stream::qdm2_decodeFrame Insufficient Packet Data in Input Stream Found: %d Need: %d", in->size() - in->pos(), _packetSize);
- return 0;
+ if ((in.size() - in.pos()) < _packetSize) {
+ debug(1, "QDM2Stream::qdm2_decodeFrame Insufficient Packet Data in Input Stream Found: %d Need: %d", in.size() - in.pos(), _packetSize);
+ return false;
}
- if (!in->eos()) {
- in->read(_compressedData, _packetSize);
+ if (!in.eos()) {
+ in.read(_compressedData, _packetSize);
debug(1, "QDM2Stream::qdm2_decodeFrame constructed input data");
}
@@ -3190,7 +3173,7 @@ int QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream *in) {
memset(&_outputBuffer[frame_size], 0, frame_size * sizeof(float));
debug(1, "QDM2Stream::qdm2_decodeFrame cleared outputBuffer");
- if (!in->eos()) {
+ if (!in.eos()) {
// decode block of QDM2 compressed data
debug(1, "QDM2Stream::qdm2_decodeFrame decode block of QDM2 compressed data");
if (_subPacket == 0) {
@@ -3218,7 +3201,7 @@ int QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream *in) {
if (!_hasErrors && _subPacketListC[0].packet != NULL) {
error("QDM2 : has errors, and C list is not empty");
- return 0;
+ return false;
}
}
@@ -3236,6 +3219,12 @@ int QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream *in) {
debug(1, "QDM2Stream::qdm2_decodeFrame clip and convert output float[] to 16bit signed samples");
}
+ if (frame_size == 0)
+ return false;
+
+ // Prepare a buffer for queuing
+ uint16 *outputBuffer = (uint16 *)malloc(frame_size * 2);
+
for (i = 0; i < frame_size; i++) {
int value = (int)_outputBuffer[i];
@@ -3244,34 +3233,35 @@ int QDM2Stream::qdm2_decodeFrame(Common::SeekableReadStream *in) {
else if (value < -SOFTCLIP_THRESHOLD)
value = (value < -HARDCLIP_THRESHOLD) ? -32767 : -_softclipTable[-value - SOFTCLIP_THRESHOLD];
- _outputSamples.push_back(value);
+ outputBuffer[i] = value;
}
- return frame_size;
-}
-int QDM2Stream::readBuffer(int16 *buffer, const int numSamples) {
- debug(1, "QDM2Stream::readBuffer numSamples: %d", numSamples);
- int32 decodedSamples = _outputSamples.size();
- int32 i;
+ // Queue the translated buffer to our stream
+ byte flags = FLAG_16BITS;
- while (decodedSamples < numSamples) {
- i = qdm2_decodeFrame(_stream);
- if (i == 0)
- break; // Out Of Decode Frames...
- decodedSamples += i;
- }
+ if (_channels == 2)
+ flags |= FLAG_STEREO;
+
+#ifdef SCUMM_LITTLE_ENDIAN
+ flags |= FLAG_LITTLE_ENDIAN;
+#endif
+
+ audioStream->queueBuffer((byte *)outputBuffer, frame_size * 2, DisposeAfterUse::YES, flags);
+
+ return true;
+}
- if (decodedSamples > numSamples)
- decodedSamples = numSamples;
+AudioStream *QDM2Stream::decodeFrame(Common::SeekableReadStream &stream) {
+ QueuingAudioStream *audioStream = makeQueuingAudioStream(_sampleRate, _channels == 2);
- for (i = 0; i < decodedSamples; i++)
- buffer[i] = _outputSamples.remove_at(0);
+ while (qdm2_decodeFrame(stream, audioStream))
+ ;
- return decodedSamples;
+ return audioStream;
}
-AudioStream *makeQDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadStream *extraData) {
- return new QDM2Stream(stream, extraData);
+Codec *makeQDM2Decoder(Common::SeekableReadStream *extraData, DisposeAfterUse::Flag disposeExtraData) {
+ return new QDM2Stream(extraData, disposeExtraData);
}
} // End of namespace Audio
diff --git a/audio/decoders/qdm2.h b/audio/decoders/qdm2.h
index c0ec647bfd..f0793e3c1e 100644
--- a/audio/decoders/qdm2.h
+++ b/audio/decoders/qdm2.h
@@ -26,22 +26,25 @@
#ifndef AUDIO_QDM2_H
#define AUDIO_QDM2_H
+#include "common/types.h"
+
namespace Common {
class SeekableReadStream;
}
namespace Audio {
-class AudioStream;
+class Codec;
/**
- * Create a new AudioStream from the QDM2 data in the given stream.
+ * Create a new Codec from the QDM2 data in the given stream.
*
- * @param stream the SeekableReadStream from which to read the FLAC data
- * @param extraData the QuickTime extra data stream
- * @return a new AudioStream, or NULL, if an error occurred
+ * @param extraData the QuickTime extra data stream
+ * @param disposeExtraData the QuickTime extra data stream
+ * @return a new Codec, or NULL, if an error occurred
*/
-AudioStream *makeQDM2Stream(Common::SeekableReadStream *stream, Common::SeekableReadStream *extraData);
+Codec *makeQDM2Decoder(Common::SeekableReadStream *extraData,
+ DisposeAfterUse::Flag disposeExtraData = DisposeAfterUse::NO);
} // End of namespace Audio
diff --git a/audio/decoders/quicktime.cpp b/audio/decoders/quicktime.cpp
index 0ad2821cd5..8cf0305e88 100644
--- a/audio/decoders/quicktime.cpp
+++ b/audio/decoders/quicktime.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#include "common/debug.h"
@@ -30,6 +27,7 @@
#include "common/textconsole.h"
#include "audio/audiostream.h"
+#include "audio/decoders/codec.h"
#include "audio/decoders/quicktime.h"
#include "audio/decoders/quicktime_intern.h"
@@ -86,6 +84,9 @@ void QuickTimeAudioDecoder::init() {
// Make sure the bits per sample transfers to the sample size
if (entry->getCodecTag() == MKTAG('r', 'a', 'w', ' ') || entry->getCodecTag() == MKTAG('t', 'w', 'o', 's'))
_tracks[_audioTrackIndex]->sampleSize = (entry->_bitsPerSample / 8) * entry->_channels;
+
+ // Initialize the codec (if necessary)
+ entry->initCodec();
}
}
}
@@ -217,6 +218,9 @@ void QuickTimeAudioDecoder::setAudioStreamPos(const Timestamp &where) {
Audio::QuickTimeAudioDecoder::AudioSampleDesc *entry = (Audio::QuickTimeAudioDecoder::AudioSampleDesc *)_tracks[_audioTrackIndex]->sampleDescs[0];
_audStream = Audio::makeQueuingAudioStream(entry->_sampleRate, entry->_channels == 2);
+ // Reinitialize the codec
+ entry->initCodec();
+
// First, we need to track down what audio sample we need
Audio::Timestamp curAudioTime = where.convertToFramerate(_tracks[_audioTrackIndex]->timeScale);
uint32 sample = curAudioTime.totalNumberOfFrames();
@@ -266,6 +270,11 @@ QuickTimeAudioDecoder::AudioSampleDesc::AudioSampleDesc(Common::QuickTimeParser:
_samplesPerFrame = 0;
_bytesPerFrame = 0;
_bitsPerSample = 0;
+ _codec = 0;
+}
+
+QuickTimeAudioDecoder::AudioSampleDesc::~AudioSampleDesc() {
+ delete _codec;
}
bool QuickTimeAudioDecoder::AudioSampleDesc::isAudioCodecSupported() const {
@@ -313,7 +322,12 @@ AudioStream *QuickTimeAudioDecoder::AudioSampleDesc::createAudioStream(Common::S
if (!stream)
return 0;
- if (_codecTag == MKTAG('t', 'w', 'o', 's') || _codecTag == MKTAG('r', 'a', 'w', ' ')) {
+ if (_codec) {
+ // If we've loaded a codec, make sure we use first
+ AudioStream *audioStream = _codec->decodeFrame(*stream);
+ delete stream;
+ return audioStream;
+ } else if (_codecTag == MKTAG('t', 'w', 'o', 's') || _codecTag == MKTAG('r', 'a', 'w', ' ')) {
// Fortunately, most of the audio used in Myst videos is raw...
uint16 flags = 0;
if (_codecTag == MKTAG('r', 'a', 'w', ' '))
@@ -330,24 +344,32 @@ AudioStream *QuickTimeAudioDecoder::AudioSampleDesc::createAudioStream(Common::S
} else if (_codecTag == MKTAG('i', 'm', 'a', '4')) {
// Riven uses this codec (as do some Myst ME videos)
return makeADPCMStream(stream, DisposeAfterUse::YES, stream->size(), kADPCMApple, _sampleRate, _channels, 34);
- } else if (_codecTag == MKTAG('m', 'p', '4', 'a')) {
- // The 7th Guest iOS uses an MPEG-4 codec
-#ifdef USE_FAAD
- if (_parentTrack->objectTypeMP4 == 0x40)
- return makeAACStream(stream, DisposeAfterUse::YES, _parentTrack->extraData);
-#endif
-#ifdef AUDIO_QDM2_H
- } else if (_codecTag == MKTAG('Q', 'D', 'M', '2')) {
- // Myst ME uses this codec for many videos
- return makeQDM2Stream(stream, _parentTrack->extraData);
-#endif
}
error("Unsupported audio codec");
-
return NULL;
}
+void QuickTimeAudioDecoder::AudioSampleDesc::initCodec() {
+ delete _codec; _codec = 0;
+
+ switch (_codecTag) {
+ case MKTAG('Q', 'D', 'M', '2'):
+#ifdef AUDIO_QDM2_H
+ _codec = makeQDM2Decoder(_parentTrack->extraData);
+#endif
+ break;
+ case MKTAG('m', 'p', '4', 'a'):
+#ifdef USE_FAAD
+ if (_parentTrack->objectTypeMP4 == 0x40)
+ _codec = makeAACDecoder(_parentTrack->extraData);
+#endif
+ break;
+ default:
+ break;
+ }
+}
+
/**
* A wrapper around QuickTimeAudioDecoder that implements the RewindableAudioStream API
*/
diff --git a/audio/decoders/quicktime.h b/audio/decoders/quicktime.h
index 9f6c6c20e0..4dd1a57710 100644
--- a/audio/decoders/quicktime.h
+++ b/audio/decoders/quicktime.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
/**
diff --git a/audio/decoders/quicktime_intern.h b/audio/decoders/quicktime_intern.h
index f288d5604b..e31a1d3872 100644
--- a/audio/decoders/quicktime_intern.h
+++ b/audio/decoders/quicktime_intern.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
/**
@@ -45,6 +42,7 @@ namespace Common {
namespace Audio {
class AudioStream;
+class Codec;
class QueuingAudioStream;
class QuickTimeAudioDecoder : public Common::QuickTimeParser {
@@ -68,10 +66,12 @@ protected:
class AudioSampleDesc : public Common::QuickTimeParser::SampleDesc {
public:
AudioSampleDesc(Common::QuickTimeParser::Track *parentTrack, uint32 codecTag);
+ ~AudioSampleDesc();
bool isAudioCodecSupported() const;
uint32 getAudioChunkSampleCount(uint chunk) const;
AudioStream *createAudioStream(Common::SeekableReadStream *stream) const;
+ void initCodec();
// TODO: Make private in the long run
uint16 _bitsPerSample;
@@ -79,6 +79,8 @@ protected:
uint32 _sampleRate;
uint32 _samplesPerFrame;
uint32 _bytesPerFrame;
+
+ Codec *_codec;
};
// Common::QuickTimeParser API
diff --git a/audio/decoders/raw.cpp b/audio/decoders/raw.cpp
index 4789fd0f36..881b8c1d6a 100644
--- a/audio/decoders/raw.cpp
+++ b/audio/decoders/raw.cpp
@@ -51,7 +51,7 @@ template<bool is16Bit, bool isUnsigned, bool isLE>
class RawStream : public SeekableAudioStream {
public:
RawStream(int rate, bool stereo, DisposeAfterUse::Flag disposeStream, Common::SeekableReadStream *stream, const RawStreamBlockList &blocks)
- : _rate(rate), _isStereo(stereo), _playtime(0, rate), _stream(stream), _disposeAfterUse(disposeStream), _blocks(blocks), _curBlock(_blocks.begin()), _blockLeft(0), _buffer(0) {
+ : _rate(rate), _isStereo(stereo), _playtime(0, rate), _stream(stream, disposeStream), _blocks(blocks), _curBlock(_blocks.begin()), _blockLeft(0), _buffer(0) {
assert(_blocks.size() > 0);
@@ -82,9 +82,6 @@ public:
}
~RawStream() {
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _stream;
-
delete[] _buffer;
}
@@ -98,15 +95,14 @@ public:
bool seek(const Timestamp &where);
private:
- const int _rate; ///< Sample rate of stream
- const bool _isStereo; ///< Whether this is an stereo stream
- Timestamp _playtime; ///< Calculated total play time
- Common::SeekableReadStream *_stream; ///< Stream to read data from
- const DisposeAfterUse::Flag _disposeAfterUse; ///< Indicates whether the stream object should be deleted when this RawStream is destructed
- const RawStreamBlockList _blocks; ///< Audio block list
-
- RawStreamBlockList::const_iterator _curBlock; ///< Current audio block number
- int32 _blockLeft; ///< How many bytes are still left in the current block
+ const int _rate; ///< Sample rate of stream
+ const bool _isStereo; ///< Whether this is an stereo stream
+ Timestamp _playtime; ///< Calculated total play time
+ Common::DisposablePtr<Common::SeekableReadStream> _stream; ///< Stream to read data from
+ const RawStreamBlockList _blocks; ///< Audio block list
+
+ RawStreamBlockList::const_iterator _curBlock; ///< Current audio block number
+ int32 _blockLeft; ///< How many bytes are still left in the current block
/**
* Advance one block in the stream in case
diff --git a/audio/decoders/vorbis.cpp b/audio/decoders/vorbis.cpp
index 2724dd1f02..64cacb4d58 100644
--- a/audio/decoders/vorbis.cpp
+++ b/audio/decoders/vorbis.cpp
@@ -29,6 +29,7 @@
#ifdef USE_VORBIS
+#include "common/ptr.h"
#include "common/stream.h"
#include "common/textconsole.h"
#include "common/util.h"
@@ -42,6 +43,7 @@
#include <tremor/ivorbisfile.h>
#endif
#else
+#define OV_EXCLUDE_STATIC_CALLBACKS
#include <vorbis/vorbisfile.h>
#endif
@@ -88,8 +90,7 @@ static ov_callbacks g_stream_wrap = {
class VorbisStream : public SeekableAudioStream {
protected:
- Common::SeekableReadStream *_inStream;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<Common::SeekableReadStream> _inStream;
bool _isStereo;
int _rate;
@@ -120,10 +121,9 @@ protected:
};
VorbisStream::VorbisStream(Common::SeekableReadStream *inStream, DisposeAfterUse::Flag dispose) :
- _inStream(inStream),
- _disposeAfterUse(dispose),
+ _inStream(inStream, dispose),
_length(0, 1000),
- _bufferEnd(_buffer + ARRAYSIZE(_buffer)) {
+ _bufferEnd(ARRAYEND(_buffer)) {
int res = ov_open_callbacks(inStream, &_ovFile, NULL, 0, g_stream_wrap);
if (res < 0) {
@@ -149,8 +149,6 @@ VorbisStream::VorbisStream(Common::SeekableReadStream *inStream, DisposeAfterUse
VorbisStream::~VorbisStream() {
ov_clear(&_ovFile);
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _inStream;
}
int VorbisStream::readBuffer(int16 *buffer, const int numSamples) {
diff --git a/audio/fmopl.cpp b/audio/fmopl.cpp
index a24c2a533c..da655643a7 100644
--- a/audio/fmopl.cpp
+++ b/audio/fmopl.cpp
@@ -192,4 +192,3 @@ FM_OPL *makeAdLibOPL(int rate) {
return opl;
}
-
diff --git a/audio/fmopl.h b/audio/fmopl.h
index b88325a52e..f62587f557 100644
--- a/audio/fmopl.h
+++ b/audio/fmopl.h
@@ -176,4 +176,3 @@ void YM3812UpdateOne(FM_OPL *OPL, int16 *buffer, int length);
FM_OPL *makeAdLibOPL(int rate);
#endif
-
diff --git a/audio/mididrv.cpp b/audio/mididrv.cpp
index 27f02c9053..a89bafddf8 100644
--- a/audio/mididrv.cpp
+++ b/audio/mididrv.cpp
@@ -202,7 +202,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
// If the expressly selected driver or device cannot be found (no longer compiled in, turned off, etc.)
// we display a warning and continue.
failedDevStr = selDevStr;
- Common::String warningMsg = Common::String::format(_("The selected audio device '%s' was not found (e.g. might be turned off or disconnected). Attempting to fall back to the next available device..."), failedDevStr.c_str());
+ Common::String warningMsg = Common::String::format(_("The selected audio device '%s' was not found (e.g. might be turned off or disconnected)."), failedDevStr.c_str()) + " " + _("Attempting to fall back to the next available device...");
GUI::MessageDialog dialog(warningMsg);
dialog.runModal();
}
@@ -214,7 +214,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
} else {
// If the expressly selected device cannot be used we display a warning and continue.
failedDevStr = getDeviceString(hdl, MidiDriver::kDeviceName);
- Common::String warningMsg = Common::String::format(_("The selected audio device '%s' cannot be used. See log file for more information. Attempting to fall back to the next available device..."), failedDevStr.c_str());
+ Common::String warningMsg = Common::String::format(_("The selected audio device '%s' cannot be used. See log file for more information."), failedDevStr.c_str()) + " " + _("Attempting to fall back to the next available device...");
GUI::MessageDialog dialog(warningMsg);
dialog.runModal();
}
@@ -250,7 +250,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
// we display a warning and continue. Don't warn about the missing device if we did already (this becomes relevant if the
// missing device is selected as preferred device and also as GM or MT-32 device).
if (failedDevStr != devStr) {
- Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' was not found (e.g. might be turned off or disconnected). Attempting to fall back to the next available device..."), devStr.c_str());
+ Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' was not found (e.g. might be turned off or disconnected)."), devStr.c_str()) + " " + _("Attempting to fall back to the next available device...");
GUI::MessageDialog dialog(warningMsg);
dialog.runModal();
}
@@ -265,7 +265,7 @@ MidiDriver::DeviceHandle MidiDriver::detectDevice(int flags) {
// Don't warn about the failing device if we did already (this becomes relevant if the failing
// device is selected as preferred device and also as GM or MT-32 device).
if (failedDevStr != getDeviceString(hdl, MidiDriver::kDeviceName)) {
- Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' cannot be used. See log file for more information. Attempting to fall back to the next available device..."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str());
+ Common::String warningMsg = Common::String::format(_("The preferred audio device '%s' cannot be used. See log file for more information."), getDeviceString(hdl, MidiDriver::kDeviceName).c_str()) + " " + _("Attempting to fall back to the next available device...");
GUI::MessageDialog dialog(warningMsg);
dialog.runModal();
}
@@ -412,4 +412,3 @@ void MidiDriver::sendGMReset() {
sysEx(resetSysEx, sizeof(resetSysEx));
g_system->delayMillis(100);
}
-
diff --git a/audio/mixer.cpp b/audio/mixer.cpp
index 128224ae85..965766170d 100644
--- a/audio/mixer.cpp
+++ b/audio/mixer.cpp
@@ -163,9 +163,8 @@ private:
uint32 _pauseStartTime;
uint32 _pauseTime;
- DisposeAfterUse::Flag _autofreeStream;
RateConverter *_converter;
- AudioStream *_stream;
+ Common::DisposablePtr<AudioStream> _stream;
};
#pragma mark -
@@ -492,8 +491,8 @@ Channel::Channel(Mixer *mixer, Mixer::SoundType type, AudioStream *stream,
DisposeAfterUse::Flag autofreeStream, bool reverseStereo, int id, bool permanent)
: _type(type), _mixer(mixer), _id(id), _permanent(permanent), _volume(Mixer::kMaxChannelVolume),
_balance(0), _pauseLevel(0), _samplesConsumed(0), _samplesDecoded(0), _mixerTimeStamp(0),
- _pauseStartTime(0), _pauseTime(0), _autofreeStream(autofreeStream), _converter(0),
- _stream(stream) {
+ _pauseStartTime(0), _pauseTime(0), _converter(0),
+ _stream(stream, autofreeStream) {
assert(mixer);
assert(stream);
@@ -503,8 +502,6 @@ Channel::Channel(Mixer *mixer, Mixer::SoundType type, AudioStream *stream,
Channel::~Channel() {
delete _converter;
- if (_autofreeStream == DisposeAfterUse::YES)
- delete _stream;
}
void Channel::setVolume(const byte volume) {
diff --git a/audio/mods/maxtrax.cpp b/audio/mods/maxtrax.cpp
index 953bb8f8d2..344d678b76 100644
--- a/audio/mods/maxtrax.cpp
+++ b/audio/mods/maxtrax.cpp
@@ -707,8 +707,8 @@ int8 MaxTrax::noteOn(ChannelContext &channel, const byte note, uint16 volume, ui
if ((channel.flags & ChannelContext::kFlagMono) == 0) {
voiceNum = pickvoice((channel.flags & ChannelContext::kFlagRightChannel) != 0 ? 1 : 0, pri);
} else {
- VoiceContext *voice = _voiceCtx + ARRAYSIZE(_voiceCtx) - 1;
- for (voiceNum = ARRAYSIZE(_voiceCtx) - 1; voiceNum >= 0 && voice->channel != &channel; --voiceNum, --voice)
+ VoiceContext *voice = ARRAYEND(_voiceCtx);
+ for (voiceNum = ARRAYSIZE(_voiceCtx); voiceNum-- != 0 && --voice->channel != &channel;)
;
if (voiceNum < 0)
voiceNum = pickvoice((channel.flags & ChannelContext::kFlagRightChannel) != 0 ? 1 : 0, pri);
diff --git a/audio/mpu401.cpp b/audio/mpu401.cpp
index 966e367a93..103a3501db 100644
--- a/audio/mpu401.cpp
+++ b/audio/mpu401.cpp
@@ -146,6 +146,6 @@ void MidiDriver_MPU401::setTimerCallback(void *timer_param, Common::TimerManager
g_system->getTimerManager()->removeTimerProc(_timer_proc);
_timer_proc = timer_proc;
if (timer_proc)
- g_system->getTimerManager()->installTimerProc(timer_proc, 10000, timer_param);
+ g_system->getTimerManager()->installTimerProc(timer_proc, 10000, timer_param, "MPU401");
}
}
diff --git a/audio/rate_arm.cpp b/audio/rate_arm.cpp
index 433a7d3423..4135cdd1af 100644
--- a/audio/rate_arm.cpp
+++ b/audio/rate_arm.cpp
@@ -467,4 +467,3 @@ RateConverter *makeRateConverter(st_rate_t inrate, st_rate_t outrate, bool stere
}
} // End of namespace Audio
-
diff --git a/audio/softsynth/appleiigs.cpp b/audio/softsynth/appleiigs.cpp
index 6ee70d1202..bbb3f0b005 100644
--- a/audio/softsynth/appleiigs.cpp
+++ b/audio/softsynth/appleiigs.cpp
@@ -51,4 +51,3 @@ MusicDevices AppleIIGSMusicPlugin::getDevices() const {
//#else
REGISTER_PLUGIN_STATIC(APPLEIIGS, PLUGIN_TYPE_MUSIC, AppleIIGSMusicPlugin);
//#endif
-
diff --git a/audio/softsynth/cms.cpp b/audio/softsynth/cms.cpp
index 67eacd1a41..a675da3f03 100644
--- a/audio/softsynth/cms.cpp
+++ b/audio/softsynth/cms.cpp
@@ -163,19 +163,15 @@ void CMSEmulator::update(int chip, int16 *buffer, int length) {
struct SAA1099 *saa = &_saa1099[chip];
int j, ch;
+ if (chip == 0) {
+ memset(buffer, 0, sizeof(int16)*length*2);
+ }
+
/* if the channels are disabled we're done */
if (!saa->all_ch_enable) {
- /* init output data */
- if (chip == 0) {
- memset(buffer, 0, sizeof(int16)*length*2);
- }
return;
}
- if (chip == 0) {
- memset(buffer, 0, sizeof(int16)*length*2);
- }
-
for (ch = 0; ch < 2; ch++) {
switch (saa->noise_params[ch]) {
case 0: saa->noise[ch].freq = 31250.0 * 2; break;
@@ -244,8 +240,8 @@ void CMSEmulator::update(int chip, int16 *buffer, int length) {
}
}
/* write sound data to the buffer */
- buffer[j*2] += output_l / 6;
- buffer[j*2+1] += output_r / 6;
+ buffer[j*2+0] = CLIP<int>(buffer[j*2+0] + output_l / 6, -32768, 32767);
+ buffer[j*2+1] = CLIP<int>(buffer[j*2+1] + output_r / 6, -32768, 32767);
}
}
diff --git a/audio/softsynth/eas.cpp b/audio/softsynth/eas.cpp
index d829e3b39a..ea79b25329 100644
--- a/audio/softsynth/eas.cpp
+++ b/audio/softsynth/eas.cpp
@@ -480,4 +480,3 @@ Common::Error EASMusicPlugin::createInstance(MidiDriver **mididriver, MidiDriver
//#endif
#endif
-
diff --git a/audio/softsynth/emumidi.h b/audio/softsynth/emumidi.h
index f3d7645f87..f72dad7eaf 100644
--- a/audio/softsynth/emumidi.h
+++ b/audio/softsynth/emumidi.h
@@ -26,8 +26,6 @@
#include "audio/mididrv.h"
#include "audio/mixer.h"
-#define FIXP_SHIFT 16
-
class MidiDriver_Emulated : public Audio::AudioStream, public MidiDriver {
protected:
bool _isOpen;
@@ -38,6 +36,10 @@ private:
Common::TimerManager::TimerProc _timerProc;
void *_timerParam;
+ enum {
+ FIXP_SHIFT = 16
+ };
+
int _nextTick;
int _samplesPerTick;
diff --git a/audio/softsynth/fmtowns_pc98/towns_audio.h b/audio/softsynth/fmtowns_pc98/towns_audio.h
index 4af888f009..211133a1fe 100644
--- a/audio/softsynth/fmtowns_pc98/towns_audio.h
+++ b/audio/softsynth/fmtowns_pc98/towns_audio.h
@@ -53,4 +53,3 @@ private:
};
#endif
-
diff --git a/audio/softsynth/fmtowns_pc98/towns_euphony.h b/audio/softsynth/fmtowns_pc98/towns_euphony.h
index 6b30bfb7f5..bff0e99660 100644
--- a/audio/softsynth/fmtowns_pc98/towns_euphony.h
+++ b/audio/softsynth/fmtowns_pc98/towns_euphony.h
@@ -181,4 +181,3 @@ private:
};
#endif
-
diff --git a/audio/softsynth/fmtowns_pc98/towns_midi.cpp b/audio/softsynth/fmtowns_pc98/towns_midi.cpp
index e415a0dda5..d69ed73ee6 100644
--- a/audio/softsynth/fmtowns_pc98/towns_midi.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_midi.cpp
@@ -464,9 +464,10 @@ int TownsMidiOutputChannel::advanceEffectEnvelope(EffectEnvelope *s, EffectDef *
s->currentLevel = t;
s->modWheelLast = s->modWheelState;
t = getEffectModLevel(t, s->modWheelState);
- if (t != d->phase)
+ if (t != d->phase) {
d->phase = t;
- retFlags |= 1;
+ retFlags |= 1;
+ }
}
if (--s->stepCounter)
diff --git a/audio/softsynth/fmtowns_pc98/towns_midi.h b/audio/softsynth/fmtowns_pc98/towns_midi.h
index 8c764c55d9..1143dbaa02 100644
--- a/audio/softsynth/fmtowns_pc98/towns_midi.h
+++ b/audio/softsynth/fmtowns_pc98/towns_midi.h
@@ -81,4 +81,3 @@ private:
};
#endif
-
diff --git a/audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp b/audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp
index 001d258873..05a4079442 100644
--- a/audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp
+++ b/audio/softsynth/fmtowns_pc98/towns_pc98_driver.cpp
@@ -1449,4 +1449,3 @@ const uint8 TownsPC98_AudioDriver::_drvTables[] = {
};
#undef EUPHONY_FADEOUT_TICKS
-
diff --git a/audio/softsynth/fmtowns_pc98/towns_pc98_driver.h b/audio/softsynth/fmtowns_pc98/towns_pc98_driver.h
index ff58482227..c0009e4957 100644
--- a/audio/softsynth/fmtowns_pc98/towns_pc98_driver.h
+++ b/audio/softsynth/fmtowns_pc98/towns_pc98_driver.h
@@ -115,4 +115,3 @@ private:
};
#endif
-
diff --git a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h
index 4f81fa9a5c..49700be5dc 100644
--- a/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h
+++ b/audio/softsynth/fmtowns_pc98/towns_pc98_fmsynth.h
@@ -185,4 +185,3 @@ private:
};
#endif
-
diff --git a/audio/softsynth/mt32.cpp b/audio/softsynth/mt32.cpp
index 6703a6f7b7..eabde21296 100644
--- a/audio/softsynth/mt32.cpp
+++ b/audio/softsynth/mt32.cpp
@@ -486,7 +486,7 @@ void MidiDriver_ThreadedMT32::setTimerCallback(void *timer_param, TimerManager::
_vm->_timer->removeTimerProc(_timer_proc);
_timer_proc = timer_proc;
if (timer_proc)
- _vm->_timer->installTimerProc(timer_proc, getBaseTempo(), timer_param);
+ _vm->_timer->installTimerProc(timer_proc, getBaseTempo(), timer_param, "MT32tempo");
}
}
diff --git a/audio/softsynth/mt32/mt32_file.cpp b/audio/softsynth/mt32/mt32_file.cpp
index cdf9fa13f6..643082b086 100644
--- a/audio/softsynth/mt32/mt32_file.cpp
+++ b/audio/softsynth/mt32/mt32_file.cpp
@@ -67,4 +67,3 @@ bool File::writeBit32u(Bit32u out) {
}
} // End of namespace MT32Emu
-
diff --git a/audio/softsynth/opl/dosbox.h b/audio/softsynth/opl/dosbox.h
index 125dde8aec..cdf86df114 100644
--- a/audio/softsynth/opl/dosbox.h
+++ b/audio/softsynth/opl/dosbox.h
@@ -104,4 +104,3 @@ public:
#endif // !DISABLE_DOSBOX_OPL
#endif
-
diff --git a/audio/softsynth/opl/mame.cpp b/audio/softsynth/opl/mame.cpp
index 15e869ba33..dd3c354045 100644
--- a/audio/softsynth/opl/mame.cpp
+++ b/audio/softsynth/opl/mame.cpp
@@ -1245,4 +1245,3 @@ FM_OPL *makeAdLibOPL(int rate) {
} // End of namespace MAME
} // End of namespace OPL
-
diff --git a/backends/base-backend.cpp b/backends/base-backend.cpp
index 8d22ab732d..3e0005dedd 100644
--- a/backends/base-backend.cpp
+++ b/backends/base-backend.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#include "backends/base-backend.h"
diff --git a/backends/events/dinguxsdl/dinguxsdl-events.cpp b/backends/events/dinguxsdl/dinguxsdl-events.cpp
index 946507ccfd..64d8fbeb62 100644
--- a/backends/events/dinguxsdl/dinguxsdl-events.cpp
+++ b/backends/events/dinguxsdl/dinguxsdl-events.cpp
@@ -50,7 +50,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == PAD_DOWN) {
@@ -63,7 +63,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == PAD_LEFT) {
@@ -76,7 +76,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == PAD_RIGHT) {
@@ -89,7 +89,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == BUT_Y) { // left mouse button
@@ -99,7 +99,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_LBUTTONUP;
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == BUT_B) { // right mouse button
@@ -109,7 +109,7 @@ bool DINGUXSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_RBUTTONUP;
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == BUT_X) { // '.' skip dialogue
diff --git a/backends/events/gph/gph-events.cpp b/backends/events/gph/gph-events.cpp
index b461f85fbb..ce5d892957 100644
--- a/backends/events/gph/gph-events.cpp
+++ b/backends/events/gph/gph-events.cpp
@@ -165,7 +165,7 @@ GPHEventSource::GPHEventSource()
: _buttonStateL(false){
}
-//void GPHEventSource::fillMouseEvent(Common::Event &event, int x, int y) {
+//void GPHEventSource::processMouseEvent(Common::Event &event, int x, int y) {
// if (GPHGraphicsManager::_videoMode.mode == GFX_HALF && !GPHGraphicsManager::_overlayVisible){
// event.mouse.x = x*2;
// event.mouse.y = y*2;
@@ -260,7 +260,7 @@ bool GPHEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event)
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -287,7 +287,7 @@ bool GPHEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -310,16 +310,16 @@ bool GPHEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
case BUTTON_UPRIGHT:
moveStick();
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_B:
case BUTTON_CLICK:
event.type = Common::EVENT_LBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_X:
event.type = Common::EVENT_RBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_L:
BUTTON_STATE_L = true;
@@ -433,16 +433,16 @@ bool GPHEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
case BUTTON_UPRIGHT:
moveStick();
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_B:
case BUTTON_CLICK:
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_X:
event.type = Common::EVENT_RBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BUTTON_L:
BUTTON_STATE_L = false;
diff --git a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
index e859c5291b..5d9f032e19 100644
--- a/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
+++ b/backends/events/linuxmotosdl/linuxmotosdl-events.cpp
@@ -132,7 +132,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_RIGHT) {
if (ev.type == SDL_KEYDOWN) {
@@ -144,7 +144,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_DOWN) {
@@ -157,7 +157,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_UP) {
@@ -170,7 +170,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_RETURN) {
@@ -181,7 +181,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_LBUTTONUP;
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_PLUS) {
@@ -191,7 +191,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
} else {
event.type = Common::EVENT_RBUTTONUP;
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else if (ev.key.keysym.sym == SDLK_MINUS) {
@@ -202,7 +202,7 @@ bool LinuxmotoSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_LBUTTONUP;
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
} else {
diff --git a/backends/events/openpandora/op-events.cpp b/backends/events/openpandora/op-events.cpp
index 72bc56c95d..56915f96fe 100644
--- a/backends/events/openpandora/op-events.cpp
+++ b/backends/events/openpandora/op-events.cpp
@@ -81,7 +81,7 @@ bool OPEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event) {
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -108,7 +108,7 @@ bool OPEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -123,12 +123,12 @@ bool OPEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
switch (ev.key.keysym.sym) {
case SDLK_HOME:
event.type = Common::EVENT_LBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
break;
case SDLK_END:
event.type = Common::EVENT_RBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
break;
case SDLK_PAGEDOWN:
@@ -159,12 +159,12 @@ bool OPEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
switch (ev.key.keysym.sym) {
case SDLK_HOME:
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
break;
case SDLK_END:
event.type = Common::EVENT_RBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
break;
case SDLK_PAGEDOWN:
diff --git a/backends/events/ps3sdl/ps3sdl-events.cpp b/backends/events/ps3sdl/ps3sdl-events.cpp
index eefc641844..723942af11 100644
--- a/backends/events/ps3sdl/ps3sdl-events.cpp
+++ b/backends/events/ps3sdl/ps3sdl-events.cpp
@@ -60,11 +60,11 @@ bool PS3SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event)
switch (ev.jbutton.button) {
case BTN_CROSS: // Left mouse button
event.type = Common::EVENT_LBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BTN_CIRCLE: // Right mouse button
event.type = Common::EVENT_RBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BTN_TRIANGLE: // Game menu
event.type = Common::EVENT_KEYDOWN;
@@ -98,11 +98,11 @@ bool PS3SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
switch (ev.jbutton.button) {
case BTN_CROSS: // Left mouse button
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BTN_CIRCLE: // Right mouse button
event.type = Common::EVENT_RBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
break;
case BTN_TRIANGLE: // Game menu
event.type = Common::EVENT_KEYUP;
diff --git a/backends/events/sdl/sdl-events.cpp b/backends/events/sdl/sdl-events.cpp
index 4489a2e580..9d235e9044 100644
--- a/backends/events/sdl/sdl-events.cpp
+++ b/backends/events/sdl/sdl-events.cpp
@@ -50,7 +50,7 @@
#define JOY_BUT_F5 5
SdlEventSource::SdlEventSource()
- : _scrollLock(false), _joystick(0), _lastScreenID(0), EventSource() {
+ : EventSource(), _scrollLock(false), _joystick(0), _lastScreenID(0), _graphicsManager(0) {
// Reset mouse state
memset(&_km, 0, sizeof(_km));
@@ -91,10 +91,15 @@ int SdlEventSource::mapKey(SDLKey key, SDLMod mod, Uint16 unicode) {
return key;
}
-void SdlEventSource::fillMouseEvent(Common::Event &event, int x, int y) {
+void SdlEventSource::processMouseEvent(Common::Event &event, int x, int y) {
event.mouse.x = x;
event.mouse.y = y;
+ if (_graphicsManager) {
+ _graphicsManager->notifyMousePos(Common::Point(x, y));
+ _graphicsManager->transformMouseCoordinates(event.mouse);
+ }
+
// Update the "keyboard mouse" coords
_km.x = x;
_km.y = y;
@@ -194,6 +199,149 @@ void SdlEventSource::SDLModToOSystemKeyFlags(SDLMod mod, Common::Event &event) {
event.kbd.flags |= Common::KBD_CAPS;
}
+Common::KeyCode SdlEventSource::SDLToOSystemKeycode(const SDLKey key) {
+ switch (key) {
+ case SDLK_BACKSPACE: return Common::KEYCODE_BACKSPACE;
+ case SDLK_TAB: return Common::KEYCODE_TAB;
+ case SDLK_CLEAR: return Common::KEYCODE_CLEAR;
+ case SDLK_RETURN: return Common::KEYCODE_RETURN;
+ case SDLK_PAUSE: return Common::KEYCODE_PAUSE;
+ case SDLK_ESCAPE: return Common::KEYCODE_ESCAPE;
+ case SDLK_SPACE: return Common::KEYCODE_SPACE;
+ case SDLK_EXCLAIM: return Common::KEYCODE_EXCLAIM;
+ case SDLK_QUOTEDBL: return Common::KEYCODE_QUOTEDBL;
+ case SDLK_HASH: return Common::KEYCODE_HASH;
+ case SDLK_DOLLAR: return Common::KEYCODE_DOLLAR;
+ case SDLK_AMPERSAND: return Common::KEYCODE_AMPERSAND;
+ case SDLK_QUOTE: return Common::KEYCODE_QUOTE;
+ case SDLK_LEFTPAREN: return Common::KEYCODE_LEFTPAREN;
+ case SDLK_RIGHTPAREN: return Common::KEYCODE_RIGHTPAREN;
+ case SDLK_ASTERISK: return Common::KEYCODE_ASTERISK;
+ case SDLK_PLUS: return Common::KEYCODE_PLUS;
+ case SDLK_COMMA: return Common::KEYCODE_COMMA;
+ case SDLK_MINUS: return Common::KEYCODE_MINUS;
+ case SDLK_PERIOD: return Common::KEYCODE_PERIOD;
+ case SDLK_SLASH: return Common::KEYCODE_SLASH;
+ case SDLK_0: return Common::KEYCODE_0;
+ case SDLK_1: return Common::KEYCODE_1;
+ case SDLK_2: return Common::KEYCODE_2;
+ case SDLK_3: return Common::KEYCODE_3;
+ case SDLK_4: return Common::KEYCODE_4;
+ case SDLK_5: return Common::KEYCODE_5;
+ case SDLK_6: return Common::KEYCODE_6;
+ case SDLK_7: return Common::KEYCODE_7;
+ case SDLK_8: return Common::KEYCODE_8;
+ case SDLK_9: return Common::KEYCODE_9;
+ case SDLK_COLON: return Common::KEYCODE_COLON;
+ case SDLK_SEMICOLON: return Common::KEYCODE_SEMICOLON;
+ case SDLK_LESS: return Common::KEYCODE_LESS;
+ case SDLK_EQUALS: return Common::KEYCODE_EQUALS;
+ case SDLK_GREATER: return Common::KEYCODE_GREATER;
+ case SDLK_QUESTION: return Common::KEYCODE_QUESTION;
+ case SDLK_AT: return Common::KEYCODE_AT;
+ case SDLK_LEFTBRACKET: return Common::KEYCODE_LEFTBRACKET;
+ case SDLK_BACKSLASH: return Common::KEYCODE_BACKSLASH;
+ case SDLK_RIGHTBRACKET: return Common::KEYCODE_RIGHTBRACKET;
+ case SDLK_CARET: return Common::KEYCODE_CARET;
+ case SDLK_UNDERSCORE: return Common::KEYCODE_UNDERSCORE;
+ case SDLK_BACKQUOTE: return Common::KEYCODE_BACKQUOTE;
+ case SDLK_a: return Common::KEYCODE_a;
+ case SDLK_b: return Common::KEYCODE_b;
+ case SDLK_c: return Common::KEYCODE_c;
+ case SDLK_d: return Common::KEYCODE_d;
+ case SDLK_e: return Common::KEYCODE_e;
+ case SDLK_f: return Common::KEYCODE_f;
+ case SDLK_g: return Common::KEYCODE_g;
+ case SDLK_h: return Common::KEYCODE_h;
+ case SDLK_i: return Common::KEYCODE_i;
+ case SDLK_j: return Common::KEYCODE_j;
+ case SDLK_k: return Common::KEYCODE_k;
+ case SDLK_l: return Common::KEYCODE_l;
+ case SDLK_m: return Common::KEYCODE_m;
+ case SDLK_n: return Common::KEYCODE_n;
+ case SDLK_o: return Common::KEYCODE_o;
+ case SDLK_p: return Common::KEYCODE_p;
+ case SDLK_q: return Common::KEYCODE_q;
+ case SDLK_r: return Common::KEYCODE_r;
+ case SDLK_s: return Common::KEYCODE_s;
+ case SDLK_t: return Common::KEYCODE_t;
+ case SDLK_u: return Common::KEYCODE_u;
+ case SDLK_v: return Common::KEYCODE_v;
+ case SDLK_w: return Common::KEYCODE_w;
+ case SDLK_x: return Common::KEYCODE_x;
+ case SDLK_y: return Common::KEYCODE_y;
+ case SDLK_z: return Common::KEYCODE_z;
+ case SDLK_DELETE: return Common::KEYCODE_DELETE;
+#if SDL_VERSION_ATLEAST(1, 3, 0)
+ case SDL_SCANCODE_TO_KEYCODE(SDL_SCANCODE_GRAVE): return Common::KEYCODE_TILDE;
+#else
+ case SDLK_WORLD_16: return Common::KEYCODE_TILDE;
+#endif
+ case SDLK_KP0: return Common::KEYCODE_KP0;
+ case SDLK_KP1: return Common::KEYCODE_KP1;
+ case SDLK_KP2: return Common::KEYCODE_KP2;
+ case SDLK_KP3: return Common::KEYCODE_KP3;
+ case SDLK_KP4: return Common::KEYCODE_KP4;
+ case SDLK_KP5: return Common::KEYCODE_KP5;
+ case SDLK_KP6: return Common::KEYCODE_KP6;
+ case SDLK_KP7: return Common::KEYCODE_KP7;
+ case SDLK_KP8: return Common::KEYCODE_KP8;
+ case SDLK_KP9: return Common::KEYCODE_KP9;
+ case SDLK_KP_PERIOD: return Common::KEYCODE_KP_PERIOD;
+ case SDLK_KP_DIVIDE: return Common::KEYCODE_KP_DIVIDE;
+ case SDLK_KP_MULTIPLY: return Common::KEYCODE_KP_MULTIPLY;
+ case SDLK_KP_MINUS: return Common::KEYCODE_KP_MINUS;
+ case SDLK_KP_PLUS: return Common::KEYCODE_KP_PLUS;
+ case SDLK_KP_ENTER: return Common::KEYCODE_KP_ENTER;
+ case SDLK_KP_EQUALS: return Common::KEYCODE_KP_EQUALS;
+ case SDLK_UP: return Common::KEYCODE_UP;
+ case SDLK_DOWN: return Common::KEYCODE_DOWN;
+ case SDLK_RIGHT: return Common::KEYCODE_RIGHT;
+ case SDLK_LEFT: return Common::KEYCODE_LEFT;
+ case SDLK_INSERT: return Common::KEYCODE_INSERT;
+ case SDLK_HOME: return Common::KEYCODE_HOME;
+ case SDLK_END: return Common::KEYCODE_END;
+ case SDLK_PAGEUP: return Common::KEYCODE_PAGEUP;
+ case SDLK_PAGEDOWN: return Common::KEYCODE_PAGEDOWN;
+ case SDLK_F1: return Common::KEYCODE_F1;
+ case SDLK_F2: return Common::KEYCODE_F2;
+ case SDLK_F3: return Common::KEYCODE_F3;
+ case SDLK_F4: return Common::KEYCODE_F4;
+ case SDLK_F5: return Common::KEYCODE_F5;
+ case SDLK_F6: return Common::KEYCODE_F6;
+ case SDLK_F7: return Common::KEYCODE_F7;
+ case SDLK_F8: return Common::KEYCODE_F8;
+ case SDLK_F9: return Common::KEYCODE_F9;
+ case SDLK_F10: return Common::KEYCODE_F10;
+ case SDLK_F11: return Common::KEYCODE_F11;
+ case SDLK_F12: return Common::KEYCODE_F12;
+ case SDLK_F13: return Common::KEYCODE_F13;
+ case SDLK_F14: return Common::KEYCODE_F14;
+ case SDLK_F15: return Common::KEYCODE_F15;
+ case SDLK_NUMLOCK: return Common::KEYCODE_NUMLOCK;
+ case SDLK_CAPSLOCK: return Common::KEYCODE_CAPSLOCK;
+ case SDLK_SCROLLOCK: return Common::KEYCODE_SCROLLOCK;
+ case SDLK_RSHIFT: return Common::KEYCODE_RSHIFT;
+ case SDLK_LSHIFT: return Common::KEYCODE_LSHIFT;
+ case SDLK_RCTRL: return Common::KEYCODE_RCTRL;
+ case SDLK_LCTRL: return Common::KEYCODE_LCTRL;
+ case SDLK_RALT: return Common::KEYCODE_RALT;
+ case SDLK_LALT: return Common::KEYCODE_LALT;
+ case SDLK_LSUPER: return Common::KEYCODE_LSUPER;
+ case SDLK_RSUPER: return Common::KEYCODE_RSUPER;
+ case SDLK_MODE: return Common::KEYCODE_MODE;
+ case SDLK_COMPOSE: return Common::KEYCODE_COMPOSE;
+ case SDLK_HELP: return Common::KEYCODE_HELP;
+ case SDLK_PRINT: return Common::KEYCODE_PRINT;
+ case SDLK_SYSREQ: return Common::KEYCODE_SYSREQ;
+ case SDLK_BREAK: return Common::KEYCODE_BREAK;
+ case SDLK_MENU: return Common::KEYCODE_MENU;
+ case SDLK_POWER: return Common::KEYCODE_POWER;
+ case SDLK_UNDO: return Common::KEYCODE_UNDO;
+ default: return Common::KEYCODE_INVALID;
+ }
+}
+
bool SdlEventSource::pollEvent(Common::Event &event) {
handleKbdMouse();
@@ -234,16 +382,14 @@ bool SdlEventSource::dispatchSDLEvent(SDL_Event &ev, Common::Event &event) {
return handleJoyAxisMotion(ev, event);
case SDL_VIDEOEXPOSE:
- // HACK: Send a fake event, handled by SdlGraphicsManager
- event.type = (Common::EventType)OSystem_SDL::kSdlEventExpose;
- return true;
+ if (_graphicsManager)
+ _graphicsManager->notifyVideoExpose();
+ return false;
case SDL_VIDEORESIZE:
- // HACK: Send a fake event, handled by OpenGLSdlGraphicsManager
- event.type = (Common::EventType)OSystem_SDL::kSdlEventResize;
- event.mouse.x = ev.resize.w;
- event.mouse.y = ev.resize.h;
- return true;
+ if (_graphicsManager)
+ _graphicsManager->notifyResize(ev.resize.w, ev.resize.h);
+ return false;
case SDL_QUIT:
event.type = Common::EVENT_QUIT;
@@ -302,7 +448,7 @@ bool SdlEventSource::handleKeyDown(SDL_Event &ev, Common::Event &event) {
return true;
event.type = Common::EVENT_KEYDOWN;
- event.kbd.keycode = (Common::KeyCode)ev.key.keysym.sym;
+ event.kbd.keycode = SDLToOSystemKeycode(ev.key.keysym.sym);
event.kbd.ascii = mapKey(ev.key.keysym.sym, (SDLMod)ev.key.keysym.mod, (Uint16)ev.key.keysym.unicode);
return true;
@@ -346,7 +492,7 @@ bool SdlEventSource::handleKeyUp(SDL_Event &ev, Common::Event &event) {
// continue normally
event.type = Common::EVENT_KEYUP;
- event.kbd.keycode = (Common::KeyCode)ev.key.keysym.sym;
+ event.kbd.keycode = SDLToOSystemKeycode(ev.key.keysym.sym);
event.kbd.ascii = mapKey(ev.key.keysym.sym, (SDLMod)ev.key.keysym.mod, (Uint16)ev.key.keysym.unicode);
// Ctrl-Alt-<key> will change the GFX mode
@@ -361,7 +507,7 @@ bool SdlEventSource::handleKeyUp(SDL_Event &ev, Common::Event &event) {
bool SdlEventSource::handleMouseMotion(SDL_Event &ev, Common::Event &event) {
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, ev.motion.x, ev.motion.y);
+ processMouseEvent(event, ev.motion.x, ev.motion.y);
return true;
}
@@ -384,7 +530,7 @@ bool SdlEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &event)
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -400,7 +546,7 @@ bool SdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
#endif
else
return false;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
return true;
}
@@ -408,10 +554,10 @@ bool SdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &event) {
bool SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
if (ev.jbutton.button == JOY_BUT_LMOUSE) {
event.type = Common::EVENT_LBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
} else if (ev.jbutton.button == JOY_BUT_RMOUSE) {
event.type = Common::EVENT_RBUTTONDOWN;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
} else {
event.type = Common::EVENT_KEYDOWN;
switch (ev.jbutton.button) {
@@ -439,10 +585,10 @@ bool SdlEventSource::handleJoyButtonDown(SDL_Event &ev, Common::Event &event) {
bool SdlEventSource::handleJoyButtonUp(SDL_Event &ev, Common::Event &event) {
if (ev.jbutton.button == JOY_BUT_LMOUSE) {
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
} else if (ev.jbutton.button == JOY_BUT_RMOUSE) {
event.type = Common::EVENT_RBUTTONUP;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
} else {
event.type = Common::EVENT_KEYUP;
switch (ev.jbutton.button) {
@@ -510,7 +656,7 @@ bool SdlEventSource::handleJoyAxisMotion(SDL_Event &ev, Common::Event &event) {
#endif
}
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
}
diff --git a/backends/events/sdl/sdl-events.h b/backends/events/sdl/sdl-events.h
index 805b76b108..2ba88c702b 100644
--- a/backends/events/sdl/sdl-events.h
+++ b/backends/events/sdl/sdl-events.h
@@ -24,6 +24,7 @@
#define BACKEND_EVENTS_SDL_H
#include "backends/platform/sdl/sdl-sys.h"
+#include "backends/graphics/sdl/sdl-graphics.h"
#include "common/events.h"
@@ -36,6 +37,8 @@ public:
SdlEventSource();
virtual ~SdlEventSource();
+ void setGraphicsManager(SdlGraphicsManager *gMan) { _graphicsManager = gMan; }
+
/**
* Gets and processes SDL events.
*/
@@ -77,6 +80,11 @@ protected:
int _lastScreenID;
/**
+ * The associated graphics manager.
+ */
+ SdlGraphicsManager *_graphicsManager;
+
+ /**
* Pre process an event before it is dispatched.
*/
virtual void preprocessEvents(SDL_Event *event) {}
@@ -108,9 +116,10 @@ protected:
//@}
/**
- * Assigns the mouse coords to the mouse event
+ * Assigns the mouse coords to the mouse event. Furthermore notify the
+ * graphics manager about the position change.
*/
- virtual void fillMouseEvent(Common::Event &event, int x, int y);
+ virtual void processMouseEvent(Common::Event &event, int x, int y);
/**
* Remaps key events. This allows platforms to configure
@@ -127,6 +136,11 @@ protected:
* Configures the key modifiers flags status
*/
virtual void SDLModToOSystemKeyFlags(SDLMod mod, Common::Event &event);
+
+ /**
+ * Translates SDL key codes to OSystem key codes
+ */
+ Common::KeyCode SDLToOSystemKeycode(const SDLKey key);
};
#endif
diff --git a/backends/events/symbiansdl/symbiansdl-events.cpp b/backends/events/symbiansdl/symbiansdl-events.cpp
index 40bd89b8dc..308621e697 100644
--- a/backends/events/symbiansdl/symbiansdl-events.cpp
+++ b/backends/events/symbiansdl/symbiansdl-events.cpp
@@ -63,7 +63,7 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
_km.y_down_count = 0;
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
@@ -76,7 +76,7 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
_km.y_down_count = 0;
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
@@ -89,7 +89,7 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
_km.x_down_count = 0;
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
@@ -102,19 +102,19 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
_km.x_down_count = 0;
}
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
case GUI::ACTION_LEFTCLICK:
event.type = (ev.type == SDL_KEYDOWN ? Common::EVENT_LBUTTONDOWN : Common::EVENT_LBUTTONUP);
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
case GUI::ACTION_RIGHTCLICK:
event.type = (ev.type == SDL_KEYDOWN ? Common::EVENT_RBUTTONDOWN : Common::EVENT_RBUTTONUP);
- fillMouseEvent(event, _km.x, _km.y);
+ processMouseEvent(event, _km.x, _km.y);
return true;
@@ -132,7 +132,7 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
if (_currentZone >= TOTAL_ZONES)
_currentZone = 0;
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, _mouseXZone[_currentZone], _mouseYZone[_currentZone]);
+ processMouseEvent(event, _mouseXZone[_currentZone], _mouseYZone[_currentZone]);
SDL_WarpMouse(event.mouse.x, event.mouse.y);
}
@@ -195,4 +195,3 @@ bool SymbianSdlEventSource::remapKey(SDL_Event &ev, Common::Event &event) {
}
#endif
-
diff --git a/backends/events/symbiansdl/symbiansdl-events.h b/backends/events/symbiansdl/symbiansdl-events.h
index 7186fc9116..66c0b451eb 100644
--- a/backends/events/symbiansdl/symbiansdl-events.h
+++ b/backends/events/symbiansdl/symbiansdl-events.h
@@ -53,4 +53,3 @@ protected:
};
#endif
-
diff --git a/backends/events/webossdl/webossdl-events.cpp b/backends/events/webossdl/webossdl-events.cpp
index 102eb5802e..a6a2ed3644 100644
--- a/backends/events/webossdl/webossdl-events.cpp
+++ b/backends/events/webossdl/webossdl-events.cpp
@@ -159,7 +159,7 @@ bool WebOSSdlEventSource::handleMouseButtonDown(SDL_Event &ev, Common::Event &ev
if (getMillis() - dragStartTime < 250) {
dragging = true;
event.type = Common::EVENT_LBUTTONDOWN;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
}
}
return true;
@@ -180,7 +180,7 @@ bool WebOSSdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &even
if (dragging)
{
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
dragging = false;
return true;
}
@@ -195,7 +195,7 @@ bool WebOSSdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &even
// left mouse click.
if (duration < 500) {
event.type = Common::EVENT_LBUTTONUP;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
g_system->getEventManager()->pushEvent(event);
event.type = Common::EVENT_LBUTTONDOWN;
dragStartTime = getMillis();
@@ -205,7 +205,7 @@ bool WebOSSdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &even
// right mouse click.
else if (duration < 1000) {
event.type = Common::EVENT_RBUTTONUP;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
g_system->getEventManager()->pushEvent(event);
event.type = Common::EVENT_RBUTTONDOWN;
}
@@ -214,7 +214,7 @@ bool WebOSSdlEventSource::handleMouseButtonUp(SDL_Event &ev, Common::Event &even
// middle mouse click.
else {
event.type = Common::EVENT_MBUTTONUP;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
g_system->getEventManager()->pushEvent(event);
event.type = Common::EVENT_MBUTTONDOWN;
}
@@ -240,7 +240,7 @@ bool WebOSSdlEventSource::handleMouseMotion(SDL_Event &ev, Common::Event &event)
dragDiffX += ev.motion.xrel;
dragDiffY += ev.motion.yrel;
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, curX, curY);
+ processMouseEvent(event, curX, curY);
}
return true;
}
diff --git a/backends/events/wincesdl/wincesdl-events.cpp b/backends/events/wincesdl/wincesdl-events.cpp
index 1116cbbb8d..e73a4e66dd 100644
--- a/backends/events/wincesdl/wincesdl-events.cpp
+++ b/backends/events/wincesdl/wincesdl-events.cpp
@@ -43,7 +43,7 @@ void WINCESdlEventSource::init(WINCESdlGraphicsManager *graphicsMan) {
_graphicsMan = graphicsMan;
}
-void WINCESdlEventSource::fillMouseEvent(Common::Event &event, int x, int y) {
+void WINCESdlEventSource::processMouseEvent(Common::Event &event, int x, int y) {
event.mouse.x = x;
event.mouse.y = y;
@@ -153,7 +153,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
case SDL_MOUSEMOTION:
event.type = Common::EVENT_MOUSEMOVE;
- fillMouseEvent(event, ev.motion.x, ev.motion.y);
+ processMouseEvent(event, ev.motion.x, ev.motion.y);
_graphicsMan->setMousePos(event.mouse.x, event.mouse.y);
return true;
@@ -165,7 +165,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
event.type = Common::EVENT_RBUTTONDOWN;
else
break;
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
if (event.mouse.x > _tapX)
@@ -241,7 +241,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
_rbutton = false;
}
- fillMouseEvent(event, ev.button.x, ev.button.y);
+ processMouseEvent(event, ev.button.x, ev.button.y);
if (freeLookActive && !_closeClick) {
_tapX = event.mouse.x;
@@ -261,8 +261,7 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
return true;
case SDL_VIDEOEXPOSE:
- // HACK: Send a fake event, handled by SdlGraphicsManager
- event.type = (Common::EventType)OSystem_SDL::kSdlEventExpose;
+ _graphicsMan->notifyVideoExpose();
break;
case SDL_QUIT:
@@ -279,9 +278,8 @@ bool WINCESdlEventSource::pollEvent(Common::Event &event) {
if (ev.active.state & SDL_APPINPUTFOCUS) {
_graphicsMan->_hasfocus = ev.active.gain;
SDL_PauseAudio(!_graphicsMan->_hasfocus);
- if (_graphicsMan->_hasfocus) {
- event.type = (Common::EventType)OSystem_SDL::kSdlEventExpose;
- }
+ if (_graphicsMan->_hasfocus)
+ _graphicsMan->notifyVideoExpose();
}
break;
}
diff --git a/backends/events/wincesdl/wincesdl-events.h b/backends/events/wincesdl/wincesdl-events.h
index deeee6196c..5eff630c2a 100644
--- a/backends/events/wincesdl/wincesdl-events.h
+++ b/backends/events/wincesdl/wincesdl-events.h
@@ -43,7 +43,7 @@ public:
// Overloaded from SDL backend (toolbar handling)
bool pollEvent(Common::Event &event);
// Overloaded from SDL backend (mouse and new scaler handling)
- void fillMouseEvent(Common::Event &event, int x, int y);
+ void processMouseEvent(Common::Event &event, int x, int y);
protected:
diff --git a/backends/fs/n64/n64-fs-factory.cpp b/backends/fs/n64/n64-fs-factory.cpp
index 7cabbf4f7a..5c588c5eb5 100644
--- a/backends/fs/n64/n64-fs-factory.cpp
+++ b/backends/fs/n64/n64-fs-factory.cpp
@@ -42,4 +42,3 @@ AbstractFSNode *N64FilesystemFactory::makeFileNodePath(const Common::String &pat
}
#endif
-
diff --git a/backends/fs/n64/n64-fs.cpp b/backends/fs/n64/n64-fs.cpp
index e712c198a9..fe37dad467 100644
--- a/backends/fs/n64/n64-fs.cpp
+++ b/backends/fs/n64/n64-fs.cpp
@@ -161,4 +161,3 @@ Common::WriteStream *N64FilesystemNode::createWriteStream() {
}
#endif //#ifdef __N64__
-
diff --git a/backends/fs/n64/romfsstream.cpp b/backends/fs/n64/romfsstream.cpp
index c833a228f5..570f25932d 100644
--- a/backends/fs/n64/romfsstream.cpp
+++ b/backends/fs/n64/romfsstream.cpp
@@ -83,4 +83,3 @@ RomfsStream *RomfsStream::makeFromPath(const Common::String &path, bool writeMod
}
#endif /* __N64__ */
-
diff --git a/backends/fs/stdiostream.cpp b/backends/fs/stdiostream.cpp
index 7342df0029..3ea0f9898b 100644
--- a/backends/fs/stdiostream.cpp
+++ b/backends/fs/stdiostream.cpp
@@ -20,6 +20,8 @@
*
*/
+#if !defined(DISABLE_STDIO_FILESTREAM)
+
// Disable symbol overrides so that we can use FILE, fopen etc.
#define FORBIDDEN_SYMBOL_ALLOW_ALL
@@ -100,3 +102,5 @@ StdioStream *StdioStream::makeFromPath(const Common::String &path, bool writeMod
return new StdioStream(handle);
return 0;
}
+
+#endif
diff --git a/backends/fs/symbian/symbian-fs.cpp b/backends/fs/symbian/symbian-fs.cpp
index fd74c8ca46..9f70e7a7c9 100644
--- a/backends/fs/symbian/symbian-fs.cpp
+++ b/backends/fs/symbian/symbian-fs.cpp
@@ -231,5 +231,3 @@ Common::WriteStream *SymbianFilesystemNode::createWriteStream() {
return SymbianStdioStream::makeFromPath(getPath(), true);
}
#endif //#if defined (__SYMBIAN32__)
-
-
diff --git a/backends/fs/symbian/symbianstream.cpp b/backends/fs/symbian/symbianstream.cpp
index 352595e25a..39249578f7 100644
--- a/backends/fs/symbian/symbianstream.cpp
+++ b/backends/fs/symbian/symbianstream.cpp
@@ -268,4 +268,3 @@ SymbianStdioStream *SymbianStdioStream::makeFromPath(const Common::String &path,
return new SymbianStdioStream(handle);
return 0;
}
-
diff --git a/backends/fs/wii/wii-fs-factory.cpp b/backends/fs/wii/wii-fs-factory.cpp
index fbc9ef1da8..760e5316e7 100644
--- a/backends/fs/wii/wii-fs-factory.cpp
+++ b/backends/fs/wii/wii-fs-factory.cpp
@@ -218,4 +218,3 @@ void WiiFilesystemFactory::umountUnused(const String &path) {
}
#endif
-
diff --git a/backends/fs/wii/wii-fs-factory.h b/backends/fs/wii/wii-fs-factory.h
index 42795ebf33..913c0a3b64 100644
--- a/backends/fs/wii/wii-fs-factory.h
+++ b/backends/fs/wii/wii-fs-factory.h
@@ -85,4 +85,3 @@ private:
};
#endif /*Wii_FILESYSTEM_FACTORY_H*/
-
diff --git a/backends/fs/wii/wii-fs.cpp b/backends/fs/wii/wii-fs.cpp
index eb631df1bf..4a19e18240 100644
--- a/backends/fs/wii/wii-fs.cpp
+++ b/backends/fs/wii/wii-fs.cpp
@@ -202,4 +202,3 @@ Common::WriteStream *WiiFilesystemNode::createWriteStream() {
}
#endif //#if defined(__WII__)
-
diff --git a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
index 8075d0d45b..17a95688f3 100644
--- a/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
+++ b/backends/graphics/dinguxsdl/dinguxsdl-graphics.cpp
@@ -122,7 +122,7 @@ void DINGUXSdlGraphicsManager::initSize(uint w, uint h) {
if (w > 320 || h > 240) {
setGraphicsMode(GFX_HALF);
setGraphicsModeIntern();
- _sdlEventSource->toggleMouseGrab();
+ _eventSource->toggleMouseGrab();
}
_transactionDetails.sizeChanged = true;
@@ -427,6 +427,7 @@ void DINGUXSdlGraphicsManager::hideOverlay() {
}
bool DINGUXSdlGraphicsManager::loadGFXMode() {
+ debug("Game ScreenMode = %d*%d", _videoMode.screenWidth, _videoMode.screenHeight);
// Forcefully disable aspect ratio correction for games
// which starts with a native 240px height resolution.
@@ -435,7 +436,6 @@ bool DINGUXSdlGraphicsManager::loadGFXMode() {
_videoMode.aspectRatioCorrection = false;
}
- debug("Game ScreenMode = %d*%d", _videoMode.screenWidth, _videoMode.screenHeight);
if (_videoMode.screenWidth > 320 || _videoMode.screenHeight > 240) {
_videoMode.aspectRatioCorrection = false;
setGraphicsMode(GFX_HALF);
@@ -473,9 +473,13 @@ bool DINGUXSdlGraphicsManager::hasFeature(OSystem::Feature f) {
void DINGUXSdlGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) {
switch (f) {
- case OSystem::kFeatureAspectRatioCorrection:
+ case OSystem::kFeatureAspectRatioCorrection:
setAspectRatioCorrection(enable);
break;
+ case OSystem::kFeatureCursorPalette:
+ _cursorPaletteDisabled = !enable;
+ blitCursor();
+ break;
default:
break;
}
@@ -485,8 +489,10 @@ bool DINGUXSdlGraphicsManager::getFeatureState(OSystem::Feature f) {
assert(_transactionMode == kTransactionNone);
switch (f) {
- case OSystem::kFeatureAspectRatioCorrection:
- return _videoMode.aspectRatioCorrection;
+ case OSystem::kFeatureAspectRatioCorrection:
+ return _videoMode.aspectRatioCorrection;
+ case OSystem::kFeatureCursorPalette:
+ return !_cursorPaletteDisabled;
default:
return false;
}
@@ -510,21 +516,16 @@ void DINGUXSdlGraphicsManager::warpMouse(int x, int y) {
SurfaceSdlGraphicsManager::warpMouse(x, y);
}
-void DINGUXSdlGraphicsManager::adjustMouseEvent(const Common::Event &event) {
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- if (!_overlayVisible) {
- if (_videoMode.mode == GFX_HALF) {
- newEvent.mouse.x *= 2;
- newEvent.mouse.y *= 2;
- }
- newEvent.mouse.x /= _videoMode.scaleFactor;
- newEvent.mouse.y /= _videoMode.scaleFactor;
- if (_videoMode.aspectRatioCorrection)
- newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
+void DINGUXSdlGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ if (!_overlayVisible) {
+ if (_videoMode.mode == GFX_HALF) {
+ point.x *= 2;
+ point.y *= 2;
}
- g_system->getEventManager()->pushEvent(newEvent);
+ point.x /= _videoMode.scaleFactor;
+ point.y /= _videoMode.scaleFactor;
+ if (_videoMode.aspectRatioCorrection)
+ point.y = aspect2Real(point.y);
}
}
diff --git a/backends/graphics/dinguxsdl/dinguxsdl-graphics.h b/backends/graphics/dinguxsdl/dinguxsdl-graphics.h
index 84a784b771..ecdd01d166 100644
--- a/backends/graphics/dinguxsdl/dinguxsdl-graphics.h
+++ b/backends/graphics/dinguxsdl/dinguxsdl-graphics.h
@@ -57,7 +57,7 @@ public:
SurfaceSdlGraphicsManager::MousePos *getMouseCurState();
SurfaceSdlGraphicsManager::VideoState *getVideoMode();
- virtual void adjustMouseEvent(const Common::Event &event);
+ virtual void transformMouseCoordinates(Common::Point &point);
};
#endif /* BACKENDS_GRAPHICS_SDL_DINGUX_H */
diff --git a/backends/graphics/gph/gph-graphics.cpp b/backends/graphics/gph/gph-graphics.cpp
index 82a32203fb..96b0619a6a 100644
--- a/backends/graphics/gph/gph-graphics.cpp
+++ b/backends/graphics/gph/gph-graphics.cpp
@@ -141,7 +141,7 @@ void GPHGraphicsManager::initSize(uint w, uint h, const Graphics::PixelFormat *f
if (w > 320 || h > 240){
setGraphicsMode(GFX_HALF);
setGraphicsModeIntern();
- _sdlEventSource->toggleMouseGrab();
+ _eventSource->toggleMouseGrab();
}
_videoMode.overlayWidth = 320;
@@ -579,21 +579,16 @@ void GPHGraphicsManager::warpMouse(int x, int y) {
SurfaceSdlGraphicsManager::warpMouse(x, y);
}
-void GPHGraphicsManager::adjustMouseEvent(const Common::Event &event) {
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- if (!_overlayVisible) {
- if (_videoMode.mode == GFX_HALF) {
- newEvent.mouse.x *= 2;
- newEvent.mouse.y *= 2;
- }
- newEvent.mouse.x /= _videoMode.scaleFactor;
- newEvent.mouse.y /= _videoMode.scaleFactor;
- if (_videoMode.aspectRatioCorrection)
- newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
+void GPHGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ if (!_overlayVisible) {
+ if (_videoMode.mode == GFX_HALF) {
+ point.x *= 2;
+ point.y *= 2;
}
- g_system->getEventManager()->pushEvent(newEvent);
+ point.x /= _videoMode.scaleFactor;
+ point.y /= _videoMode.scaleFactor;
+ if (_videoMode.aspectRatioCorrection)
+ point.y = aspect2Real(point.y);
}
}
diff --git a/backends/graphics/gph/gph-graphics.h b/backends/graphics/gph/gph-graphics.h
index 45b8618569..0118fc7ecd 100644
--- a/backends/graphics/gph/gph-graphics.h
+++ b/backends/graphics/gph/gph-graphics.h
@@ -56,7 +56,7 @@ public:
SurfaceSdlGraphicsManager::MousePos *getMouseCurState();
SurfaceSdlGraphicsManager::VideoState *getVideoMode();
- virtual void adjustMouseEvent(const Common::Event &event);
+ virtual void transformMouseCoordinates(Common::Point &point);
};
#endif /* BACKENDS_GRAPHICS_GPH_H */
diff --git a/backends/graphics/graphics.h b/backends/graphics/graphics.h
index 20924ed581..3f282df587 100644
--- a/backends/graphics/graphics.h
+++ b/backends/graphics/graphics.h
@@ -84,6 +84,10 @@ public:
virtual void setCursorPalette(const byte *colors, uint start, uint num) = 0;
virtual void displayMessageOnOSD(const char *msg) {}
+
+ // Graphics::PaletteManager interface
+ //virtual void setPalette(const byte *colors, uint start, uint num) = 0;
+ //virtual void grabPalette(byte *colors, uint start, uint num) = 0;
};
#endif
diff --git a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp
index 732074b7e2..de9838a0d7 100644
--- a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp
+++ b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.cpp
@@ -134,7 +134,7 @@ void LinuxmotoSdlGraphicsManager::initSize(uint w, uint h) {
if (w > 320 || h > 240) {
setGraphicsMode(GFX_HALF);
setGraphicsModeIntern();
- _sdlEventSource->toggleMouseGrab();
+ _eventSource->toggleMouseGrab();
}
_transactionDetails.sizeChanged = true;
@@ -478,21 +478,16 @@ void LinuxmotoSdlGraphicsManager::warpMouse(int x, int y) {
SurfaceSdlGraphicsManager::warpMouse(x, y);
}
-void LinuxmotoSdlGraphicsManager::adjustMouseEvent(const Common::Event &event) {
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- if (!_overlayVisible) {
- if (_videoMode.mode == GFX_HALF) {
- newEvent.mouse.x *= 2;
- newEvent.mouse.y *= 2;
- }
- newEvent.mouse.x /= _videoMode.scaleFactor;
- newEvent.mouse.y /= _videoMode.scaleFactor;
- if (_videoMode.aspectRatioCorrection)
- newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
+void LinuxmotoSdlGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ if (!_overlayVisible) {
+ if (_videoMode.mode == GFX_HALF) {
+ point.x *= 2;
+ point.y *= 2;
}
- g_system->getEventManager()->pushEvent(newEvent);
+ point.x /= _videoMode.scaleFactor;
+ point.y /= _videoMode.scaleFactor;
+ if (_videoMode.aspectRatioCorrection)
+ point.y = aspect2Real(point.y);
}
}
diff --git a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.h b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.h
index 938512f323..ee2a566d71 100644
--- a/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.h
+++ b/backends/graphics/linuxmotosdl/linuxmotosdl-graphics.h
@@ -42,8 +42,7 @@ public:
virtual void hideOverlay();
virtual void warpMouse(int x, int y);
-protected:
- virtual void adjustMouseEvent(const Common::Event &event);
+ virtual void transformMouseCoordinates(Common::Point &point);
};
#endif
diff --git a/backends/graphics/opengl/gltexture.h b/backends/graphics/opengl/gltexture.h
index f0cd7aed56..71f1eeb78f 100644
--- a/backends/graphics/opengl/gltexture.h
+++ b/backends/graphics/opengl/gltexture.h
@@ -20,6 +20,9 @@
*
*/
+#ifndef BACKENDS_GRAPHICS_OPENGL_GLTEXTURE_H
+#define BACKENDS_GRAPHICS_OPENGL_GLTEXTURE_H
+
#include "common/scummsys.h"
#ifdef WIN32
@@ -31,7 +34,20 @@
#undef ARRAYSIZE
#endif
-#if defined(USE_GLES)
+// HACK: At this point in Windows platforms, common/util.h has been included
+// via common/rect.h (from backends/graphics/sdl/sdl-graphics.h), via
+// backends/graphics/openglsdl/openglsdl-graphics.h. Thus, we end up with
+// COMMON_UTIL_H defined, and ARRAYSIZE undefined (bad!). Therefore,
+// ARRAYSIZE is undefined in openglsdl-graphics.cpp. This is a temporary
+// hackish solution fo fix compilation under Windows.
+#if !defined(ARRAYSIZE) && defined(COMMON_UTIL_H)
+#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0])))
+#endif
+
+#if defined(BADA)
+#include <FGraphicsOpengl.h>
+using namespace Osp::Graphics::Opengl;
+#elif defined(USE_GLES)
#include <GLES/gl.h>
#elif defined(SDL_BACKEND)
#include <SDL_opengl.h>
@@ -106,3 +122,5 @@ protected:
GLint _filter;
bool _refresh;
};
+
+#endif
diff --git a/backends/graphics/opengl/opengl-graphics.cpp b/backends/graphics/opengl/opengl-graphics.cpp
index 046be4c669..8e01e76f16 100644
--- a/backends/graphics/opengl/opengl-graphics.cpp
+++ b/backends/graphics/opengl/opengl-graphics.cpp
@@ -67,10 +67,6 @@ OpenGLGraphicsManager::OpenGLGraphicsManager()
}
OpenGLGraphicsManager::~OpenGLGraphicsManager() {
- // Unregister the event observer
- if (g_system->getEventManager()->getEventDispatcher() != NULL)
- g_system->getEventManager()->getEventDispatcher()->unregisterObserver(this);
-
free(_gamePalette);
free(_cursorPalette);
@@ -79,11 +75,6 @@ OpenGLGraphicsManager::~OpenGLGraphicsManager() {
delete _cursorTexture;
}
-void OpenGLGraphicsManager::initEventObserver() {
- // Register the graphics manager as a event observer
- g_system->getEventManager()->getEventDispatcher()->registerObserver(this, 10, false);
-}
-
//
// Feature
//
@@ -1254,12 +1245,16 @@ void OpenGLGraphicsManager::toggleAntialiasing() {
_transactionDetails.filterChanged = true;
}
-uint OpenGLGraphicsManager::getAspectRatio() {
+uint OpenGLGraphicsManager::getAspectRatio() const {
// In case we enable aspect ratio correction we force a 4/3 ratio.
+ // But just for 320x200 and 640x400 games, since other games do not need
+ // this.
// TODO: This makes OpenGL Normal behave like OpenGL Conserve, when aspect
// ratio correction is enabled, but it's better than the previous 4/3 mode
// mess at least...
- if (_videoMode.aspectRatioCorrection)
+ if (_videoMode.aspectRatioCorrection
+ && ((_videoMode.screenWidth == 320 && _videoMode.screenHeight == 200)
+ || (_videoMode.screenWidth == 640 && _videoMode.screenHeight == 400)))
return 13333;
else if (_videoMode.mode == OpenGL::GFX_NORMAL)
return _videoMode.hardwareWidth * 10000 / _videoMode.hardwareHeight;
@@ -1282,36 +1277,6 @@ void OpenGLGraphicsManager::adjustMousePosition(int16 &x, int16 &y) {
}
}
-bool OpenGLGraphicsManager::notifyEvent(const Common::Event &event) {
- switch (event.type) {
- case Common::EVENT_MOUSEMOVE:
- if (!event.synthetic) {
- _cursorState.x = event.mouse.x;
- _cursorState.y = event.mouse.y;
- }
- case Common::EVENT_LBUTTONDOWN:
- case Common::EVENT_RBUTTONDOWN:
- case Common::EVENT_WHEELUP:
- case Common::EVENT_WHEELDOWN:
- case Common::EVENT_MBUTTONDOWN:
- case Common::EVENT_LBUTTONUP:
- case Common::EVENT_RBUTTONUP:
- case Common::EVENT_MBUTTONUP:
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- adjustMousePosition(newEvent.mouse.x, newEvent.mouse.y);
- g_system->getEventManager()->pushEvent(newEvent);
- }
- return !event.synthetic;
-
- default:
- break;
- }
-
- return false;
-}
-
bool OpenGLGraphicsManager::saveScreenshot(const char *filename) {
int width = _videoMode.hardwareWidth;
int height = _videoMode.hardwareHeight;
@@ -1383,9 +1348,13 @@ const char *OpenGLGraphicsManager::getCurrentModeName() {
}
#ifdef USE_OSD
+const Graphics::Font *OpenGLGraphicsManager::getFontOSD() {
+ return FontMan.getFontByUsage(Graphics::FontManager::kLocalizedFont);
+}
+
void OpenGLGraphicsManager::updateOSD() {
// The font we are going to use:
- const Graphics::Font *font = FontMan.getFontByUsage(Graphics::FontManager::kLocalizedFont);
+ const Graphics::Font *font = getFontOSD();
if (_osdSurface.w != _osdTexture->getWidth() || _osdSurface.h != _osdTexture->getHeight())
_osdSurface.create(_osdTexture->getWidth(), _osdTexture->getHeight(), _overlayFormat);
diff --git a/backends/graphics/opengl/opengl-graphics.h b/backends/graphics/opengl/opengl-graphics.h
index 56f7d92a12..6ded680eae 100644
--- a/backends/graphics/opengl/opengl-graphics.h
+++ b/backends/graphics/opengl/opengl-graphics.h
@@ -26,7 +26,8 @@
#include "backends/graphics/opengl/gltexture.h"
#include "backends/graphics/graphics.h"
#include "common/array.h"
-#include "common/events.h"
+#include "common/rect.h"
+#include "graphics/font.h"
#include "graphics/pixelformat.h"
// Uncomment this to enable the 'on screen display' code.
@@ -50,13 +51,11 @@ enum {
* the buffers swap, and implement loadGFXMode for handling the window/context if
* needed. If USE_RGB_COLOR is enabled, getSupportedFormats must be implemented.
*/
-class OpenGLGraphicsManager : public GraphicsManager, public Common::EventObserver {
+class OpenGLGraphicsManager : public GraphicsManager {
public:
OpenGLGraphicsManager();
virtual ~OpenGLGraphicsManager();
- virtual void initEventObserver();
-
virtual bool hasFeature(OSystem::Feature f);
virtual void setFeatureState(OSystem::Feature f, bool enable);
virtual bool getFeatureState(OSystem::Feature f);
@@ -109,10 +108,6 @@ public:
virtual void setCursorPalette(const byte *colors, uint start, uint num);
virtual void displayMessageOnOSD(const char *msg);
-
- // Override from Common::EventObserver
- bool notifyEvent(const Common::Event &event);
-
protected:
/**
* Setup OpenGL settings
@@ -220,10 +215,7 @@ protected:
virtual void calculateDisplaySize(int &width, int &height);
virtual void refreshDisplaySize();
- /**
- * Returns the current target aspect ratio x 10000
- */
- virtual uint getAspectRatio();
+ uint getAspectRatio() const;
bool _formatBGR;
@@ -324,6 +316,11 @@ protected:
*/
Common::Array<Common::String> _osdLines;
+ /**
+ * Returns the font used for on screen display
+ */
+ virtual const Graphics::Font *getFontOSD();
+
/**
* Update the OSD texture / surface.
*/
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp
index bd7dd32e3b..84515732fe 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.cpp
+++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -30,8 +30,9 @@
#include "common/textconsole.h"
#include "common/translation.h"
-OpenGLSdlGraphicsManager::OpenGLSdlGraphicsManager()
+OpenGLSdlGraphicsManager::OpenGLSdlGraphicsManager(SdlEventSource *eventSource)
:
+ SdlGraphicsManager(eventSource),
_hwscreen(0),
_screenResized(false),
_activeFullscreenMode(-2),
@@ -71,6 +72,14 @@ OpenGLSdlGraphicsManager::OpenGLSdlGraphicsManager()
}
OpenGLSdlGraphicsManager::~OpenGLSdlGraphicsManager() {
+ // Unregister the event observer
+ if (g_system->getEventManager()->getEventDispatcher() != NULL)
+ g_system->getEventManager()->getEventDispatcher()->unregisterObserver(this);
+}
+
+void OpenGLSdlGraphicsManager::initEventObserver() {
+ // Register the graphics manager as a event observer
+ g_system->getEventManager()->getEventDispatcher()->registerObserver(this, 10, false);
}
bool OpenGLSdlGraphicsManager::hasFeature(OSystem::Feature f) {
@@ -304,14 +313,17 @@ bool OpenGLSdlGraphicsManager::loadGFXMode() {
_videoMode.overlayWidth = _videoMode.hardwareWidth = _videoMode.screenWidth * scaleFactor;
_videoMode.overlayHeight = _videoMode.hardwareHeight = _videoMode.screenHeight * scaleFactor;
- int screenAspectRatio = _videoMode.screenWidth * 10000 / _videoMode.screenHeight;
- int desiredAspectRatio = getAspectRatio();
-
- // Do not downscale dimensions, only enlarge them if needed
- if (screenAspectRatio > desiredAspectRatio)
- _videoMode.hardwareHeight = (_videoMode.overlayWidth * 10000 + 5000) / desiredAspectRatio;
- else if (screenAspectRatio < desiredAspectRatio)
- _videoMode.hardwareWidth = (_videoMode.overlayHeight * desiredAspectRatio + 5000) / 10000;
+ // The only modes where we need to adapt the aspect ratio are 320x200
+ // and 640x400. That is since our aspect ratio correction in fact is
+ // only used to ensure that the original pixel size aspect for these
+ // modes is used.
+ // (Non-square pixels on old monitors vs square pixel on new ones).
+ if (_videoMode.aspectRatioCorrection
+ && ((_videoMode.screenWidth == 320 && _videoMode.screenHeight == 200)
+ || (_videoMode.screenWidth == 640 && _videoMode.screenHeight == 400)))
+ _videoMode.overlayHeight = _videoMode.hardwareHeight = 240 * scaleFactor;
+ else
+ _videoMode.overlayHeight = _videoMode.hardwareHeight = _videoMode.screenHeight * scaleFactor;
}
_screenResized = false;
@@ -609,50 +621,54 @@ bool OpenGLSdlGraphicsManager::notifyEvent(const Common::Event &event) {
}
}
break;
+
case Common::EVENT_KEYUP:
return isHotkey(event);
- // HACK: Handle special SDL event
- // The new screen size is saved on the mouse event as part of HACK,
- // there is no common resize event.
- case OSystem_SDL::kSdlEventResize:
- // Do not resize if ignoring resize events.
- if (!_ignoreResizeFrames && !getFullscreenMode()) {
- bool scaleChanged = false;
- beginGFXTransaction();
- _videoMode.hardwareWidth = event.mouse.x;
- _videoMode.hardwareHeight = event.mouse.y;
-
- if (_videoMode.mode != OpenGL::GFX_ORIGINAL) {
- _screenResized = true;
- calculateDisplaySize(_videoMode.hardwareWidth, _videoMode.hardwareHeight);
- }
- int scale = MIN(_videoMode.hardwareWidth / _videoMode.screenWidth,
- _videoMode.hardwareHeight / _videoMode.screenHeight);
+ default:
+ break;
+ }
- if (getScale() != scale) {
- scaleChanged = true;
- setScale(MAX(MIN(scale, 3), 1));
- }
+ return false;
+}
- if (_videoMode.mode == OpenGL::GFX_ORIGINAL) {
- calculateDisplaySize(_videoMode.hardwareWidth, _videoMode.hardwareHeight);
- }
+void OpenGLSdlGraphicsManager::notifyVideoExpose() {
+}
- _transactionDetails.sizeChanged = true;
- endGFXTransaction();
+void OpenGLSdlGraphicsManager::notifyResize(const uint width, const uint height) {
+ // Do not resize if ignoring resize events.
+ if (!_ignoreResizeFrames && !getFullscreenMode()) {
+ bool scaleChanged = false;
+ beginGFXTransaction();
+ _videoMode.hardwareWidth = width;
+ _videoMode.hardwareHeight = height;
+
+ _screenResized = true;
+
+ int scale = MIN(_videoMode.hardwareWidth / _videoMode.screenWidth,
+ _videoMode.hardwareHeight / _videoMode.screenHeight);
+
+ if (getScale() != scale) {
+ scaleChanged = true;
+ setScale(MAX(MIN(scale, 3), 1));
+ }
+
+ _transactionDetails.sizeChanged = true;
+ endGFXTransaction();
#ifdef USE_OSD
- if (scaleChanged)
- displayScaleChangedMsg();
+ if (scaleChanged)
+ displayScaleChangedMsg();
#endif
- }
- return true;
-
- default:
- break;
}
+}
- return OpenGLGraphicsManager::notifyEvent(event);
+void OpenGLSdlGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ adjustMousePosition(point.x, point.y);
+}
+
+void OpenGLSdlGraphicsManager::notifyMousePos(Common::Point mouse) {
+ _cursorState.x = mouse.x;
+ _cursorState.y = mouse.y;
}
#endif
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.h b/backends/graphics/openglsdl/openglsdl-graphics.h
index ba9f94db2d..1587183328 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.h
+++ b/backends/graphics/openglsdl/openglsdl-graphics.h
@@ -27,15 +27,17 @@
#if defined(ARRAYSIZE) && !defined(_WINDOWS_)
#undef ARRAYSIZE
#endif
-
+#include "backends/graphics/sdl/sdl-graphics.h"
#include "backends/graphics/opengl/opengl-graphics.h"
+#include "common/events.h"
+
/**
* SDL OpenGL graphics manager
*/
-class OpenGLSdlGraphicsManager : public OpenGLGraphicsManager {
+class OpenGLSdlGraphicsManager : public OpenGLGraphicsManager, public SdlGraphicsManager, public Common::EventObserver {
public:
- OpenGLSdlGraphicsManager();
+ OpenGLSdlGraphicsManager(SdlEventSource *eventSource);
virtual ~OpenGLSdlGraphicsManager();
virtual bool hasFeature(OSystem::Feature f);
@@ -45,10 +47,17 @@ public:
virtual Common::List<Graphics::PixelFormat> getSupportedFormats() const;
#endif
+ virtual void initEventObserver();
virtual bool notifyEvent(const Common::Event &event);
virtual void updateScreen();
+ // SdlGraphicsManager interface
+ virtual void notifyVideoExpose();
+ virtual void notifyResize(const uint width, const uint height);
+ virtual void transformMouseCoordinates(Common::Point &point);
+ virtual void notifyMousePos(Common::Point mouse);
+
protected:
virtual void internUpdateScreen();
diff --git a/backends/graphics/sdl/sdl-graphics.cpp b/backends/graphics/sdl/sdl-graphics.cpp
new file mode 100644
index 0000000000..2eca4b8aab
--- /dev/null
+++ b/backends/graphics/sdl/sdl-graphics.cpp
@@ -0,0 +1,35 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "backends/graphics/sdl/sdl-graphics.h"
+
+#include "backends/events/sdl/sdl-events.h"
+
+SdlGraphicsManager::SdlGraphicsManager(SdlEventSource *source)
+ : _eventSource(source) {
+ _eventSource->setGraphicsManager(this);
+}
+
+SdlGraphicsManager::~SdlGraphicsManager() {
+ _eventSource->setGraphicsManager(0);
+}
+
diff --git a/backends/graphics/sdl/sdl-graphics.h b/backends/graphics/sdl/sdl-graphics.h
new file mode 100644
index 0000000000..ea9149fccb
--- /dev/null
+++ b/backends/graphics/sdl/sdl-graphics.h
@@ -0,0 +1,86 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BACKENDS_GRAPHICS_SDL_SDLGRAPHICS_H
+#define BACKENDS_GRAPHICS_SDL_SDLGRAPHICS_H
+
+#include "common/rect.h"
+
+class SdlEventSource;
+
+/**
+ * Base class for a SDL based graphics manager.
+ *
+ * It features a few extra a few extra features required by SdlEventSource.
+ * FIXME/HACK:
+ * Note it does not inherit from GraphicsManager to avoid a diamond inheritance
+ * in the current OpenGLSdlGraphicsManager.
+ */
+class SdlGraphicsManager {
+public:
+ SdlGraphicsManager(SdlEventSource *source);
+ virtual ~SdlGraphicsManager();
+
+ /**
+ * Notify the graphics manager that the graphics needs to be redrawn, since
+ * the application window was modified.
+ *
+ * This is basically called when SDL_VIDEOEXPOSE was received.
+ */
+ virtual void notifyVideoExpose() = 0;
+
+ /**
+ * Notify the graphics manager about an resize event.
+ *
+ * It is noteworthy that the requested width/height should actually be set
+ * up as is and not changed by the graphics manager, since else it might
+ * lead to odd behavior for certain window managers.
+ *
+ * It is only required to overwrite this method in case you want a
+ * resizable window. The default implementation just does nothing.
+ *
+ * @param width Requested window width.
+ * @param height Requested window height.
+ */
+ virtual void notifyResize(const uint width, const uint height) {}
+
+ /**
+ * Transforms real screen coordinates into the current active screen
+ * coordinates (may be either game screen or overlay).
+ *
+ * @param point Mouse coordinates to transform.
+ */
+ virtual void transformMouseCoordinates(Common::Point &point) = 0;
+
+ /**
+ * Notifies the graphics manager about a position change according to the
+ * real screen coordinates.
+ *
+ * @param mouse Mouse position.
+ */
+ virtual void notifyMousePos(Common::Point mouse) = 0;
+
+protected:
+ SdlEventSource *_eventSource;
+};
+
+#endif
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index 2d41ecead4..146200148a 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -122,7 +122,7 @@ static AspectRatio getDesiredAspectRatio() {
SurfaceSdlGraphicsManager::SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSource)
:
- _sdlEventSource(sdlEventSource),
+ SdlGraphicsManager(sdlEventSource),
#ifdef USE_OSD
_osdSurface(0), _osdAlpha(SDL_ALPHA_TRANSPARENT), _osdFadeStartTime(0),
#endif
@@ -249,7 +249,10 @@ void SurfaceSdlGraphicsManager::setFeatureState(OSystem::Feature f, bool enable)
}
bool SurfaceSdlGraphicsManager::getFeatureState(OSystem::Feature f) {
- assert(_transactionMode == kTransactionNone);
+ // We need to allow this to be called from within a transaction, since we
+ // currently use it to retreive the graphics state, when switching from
+ // SDL->OpenGL mode for example.
+ //assert(_transactionMode == kTransactionNone);
switch (f) {
case OSystem::kFeatureFullscreenMode:
@@ -846,7 +849,7 @@ bool SurfaceSdlGraphicsManager::loadGFXMode() {
SDL_SetColorKey(_osdSurface, SDL_RLEACCEL | SDL_SRCCOLORKEY | SDL_SRCALPHA, kOSDColorKey);
#endif
- _sdlEventSource->resetKeyboadEmulation(
+ _eventSource->resetKeyboadEmulation(
_videoMode.screenWidth * _videoMode.scaleFactor - 1,
effectiveScreenHeight() - 1);
@@ -2235,20 +2238,6 @@ bool SurfaceSdlGraphicsManager::isScalerHotkey(const Common::Event &event) {
return false;
}
-void SurfaceSdlGraphicsManager::adjustMouseEvent(const Common::Event &event) {
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- if (!_overlayVisible) {
- newEvent.mouse.x /= _videoMode.scaleFactor;
- newEvent.mouse.y /= _videoMode.scaleFactor;
- if (_videoMode.aspectRatioCorrection)
- newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
- }
- g_system->getEventManager()->pushEvent(newEvent);
- }
-}
-
void SurfaceSdlGraphicsManager::toggleFullScreen() {
beginGFXTransaction();
setFullscreenMode(!_videoMode.fullscreen);
@@ -2297,26 +2286,10 @@ bool SurfaceSdlGraphicsManager::notifyEvent(const Common::Event &event) {
if (handleScalerHotkeys(event.kbd.keycode))
return true;
}
+
case Common::EVENT_KEYUP:
return isScalerHotkey(event);
- case Common::EVENT_MOUSEMOVE:
- if (event.synthetic)
- setMousePos(event.mouse.x, event.mouse.y);
- case Common::EVENT_LBUTTONDOWN:
- case Common::EVENT_RBUTTONDOWN:
- case Common::EVENT_WHEELUP:
- case Common::EVENT_WHEELDOWN:
- case Common::EVENT_MBUTTONDOWN:
- case Common::EVENT_LBUTTONUP:
- case Common::EVENT_RBUTTONUP:
- case Common::EVENT_MBUTTONUP:
- adjustMouseEvent(event);
- return !event.synthetic;
-
- // HACK: Handle special SDL event
- case OSystem_SDL::kSdlEventExpose:
- _forceFull = true;
- return false;
+
default:
break;
}
@@ -2324,4 +2297,22 @@ bool SurfaceSdlGraphicsManager::notifyEvent(const Common::Event &event) {
return false;
}
+void SurfaceSdlGraphicsManager::notifyVideoExpose() {
+ _forceFull = true;
+}
+
+void SurfaceSdlGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ if (!_overlayVisible) {
+ point.x /= _videoMode.scaleFactor;
+ point.y /= _videoMode.scaleFactor;
+ if (_videoMode.aspectRatioCorrection)
+ point.y = aspect2Real(point.y);
+ }
+}
+
+void SurfaceSdlGraphicsManager::notifyMousePos(Common::Point mouse) {
+ transformMouseCoordinates(mouse);
+ setMousePos(mouse.x, mouse.y);
+}
+
#endif
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.h b/backends/graphics/surfacesdl/surfacesdl-graphics.h
index cd8710d443..f71096d43e 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.h
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.h
@@ -24,6 +24,7 @@
#define BACKENDS_GRAPHICS_SURFACESDL_GRAPHICS_H
#include "backends/graphics/graphics.h"
+#include "backends/graphics/sdl/sdl-graphics.h"
#include "graphics/pixelformat.h"
#include "graphics/scaler.h"
#include "common/events.h"
@@ -74,7 +75,7 @@ public:
/**
* SDL graphics manager
*/
-class SurfaceSdlGraphicsManager : public GraphicsManager, public Common::EventObserver {
+class SurfaceSdlGraphicsManager : public GraphicsManager, public SdlGraphicsManager, public Common::EventObserver {
public:
SurfaceSdlGraphicsManager(SdlEventSource *sdlEventSource);
virtual ~SurfaceSdlGraphicsManager();
@@ -140,9 +141,12 @@ public:
// Override from Common::EventObserver
bool notifyEvent(const Common::Event &event);
-protected:
- SdlEventSource *_sdlEventSource;
+ // SdlGraphicsManager interface
+ virtual void notifyVideoExpose();
+ virtual void transformMouseCoordinates(Common::Point &point);
+ virtual void notifyMousePos(Common::Point mouse);
+protected:
#ifdef USE_OSD
/** Surface containing the OSD message */
SDL_Surface *_osdSurface;
@@ -329,7 +333,6 @@ protected:
virtual bool handleScalerHotkeys(Common::KeyCode key);
virtual bool isScalerHotkey(const Common::Event &event);
- virtual void adjustMouseEvent(const Common::Event &event);
virtual void setMousePos(int x, int y);
virtual void toggleFullScreen();
virtual bool saveScreenshot(const char *filename);
diff --git a/backends/graphics/symbiansdl/symbiansdl-graphics.cpp b/backends/graphics/symbiansdl/symbiansdl-graphics.cpp
index 4a9a219641..5fe8b19887 100644
--- a/backends/graphics/symbiansdl/symbiansdl-graphics.cpp
+++ b/backends/graphics/symbiansdl/symbiansdl-graphics.cpp
@@ -77,4 +77,3 @@ void SymbianSdlGraphicsManager::setFeatureState(OSystem::Feature f, bool enable)
}
#endif
-
diff --git a/backends/graphics/symbiansdl/symbiansdl-graphics.h b/backends/graphics/symbiansdl/symbiansdl-graphics.h
index 404ca87a0a..73e810a629 100644
--- a/backends/graphics/symbiansdl/symbiansdl-graphics.h
+++ b/backends/graphics/symbiansdl/symbiansdl-graphics.h
@@ -39,4 +39,3 @@ public:
};
#endif
-
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.cpp b/backends/graphics/wincesdl/wincesdl-graphics.cpp
index 2ca78cedde..58b735ef8b 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.cpp
+++ b/backends/graphics/wincesdl/wincesdl-graphics.cpp
@@ -934,7 +934,7 @@ bool WINCESdlGraphicsManager::loadGFXMode() {
_toolbarHigh = NULL;
// keyboard cursor control, some other better place for it?
- _sdlEventSource->resetKeyboadEmulation(_videoMode.screenWidth * _scaleFactorXm / _scaleFactorXd - 1, _videoMode.screenHeight * _scaleFactorXm / _scaleFactorXd - 1);
+ _eventSource->resetKeyboadEmulation(_videoMode.screenWidth * _scaleFactorXm / _scaleFactorXd - 1, _videoMode.screenHeight * _scaleFactorXm / _scaleFactorXd - 1);
return true;
}
@@ -1158,22 +1158,17 @@ void WINCESdlGraphicsManager::setMouseCursor(const byte *buf, uint w, uint h, in
}
}
-void WINCESdlGraphicsManager::adjustMouseEvent(const Common::Event &event) {
- if (!event.synthetic) {
- Common::Event newEvent(event);
- newEvent.synthetic = true;
- /*
- if (!_overlayVisible) {
- newEvent.mouse.x = newEvent.mouse.x * _scaleFactorXd / _scaleFactorXm;
- newEvent.mouse.y = newEvent.mouse.y * _scaleFactorYd / _scaleFactorYm;
- newEvent.mouse.x /= _videoMode.scaleFactor;
- newEvent.mouse.y /= _videoMode.scaleFactor;
- if (_videoMode.aspectRatioCorrection)
- newEvent.mouse.y = aspect2Real(newEvent.mouse.y);
- }
- */
- g_system->getEventManager()->pushEvent(newEvent);
+void WINCESdlGraphicsManager::transformMouseCoordinates(Common::Point &point) {
+ /*
+ if (!_overlayVisible) {
+ point.x = point.x * _scaleFactorXd / _scaleFactorXm;
+ point.y = point.y * _scaleFactorYd / _scaleFactorYm;
+ point.x /= _videoMode.scaleFactor;
+ point.y /= _videoMode.scaleFactor;
+ if (_videoMode.aspectRatioCorrection)
+ point.y = aspect2Real(point.y);
}
+ */
}
void WINCESdlGraphicsManager::setMousePos(int x, int y) {
@@ -1657,4 +1652,3 @@ WINCESdlGraphicsManager::zoneDesc WINCESdlGraphicsManager::_zones[TOTAL_ZONES] =
};
#endif /* _WIN32_WCE */
-
diff --git a/backends/graphics/wincesdl/wincesdl-graphics.h b/backends/graphics/wincesdl/wincesdl-graphics.h
index 92894e0dcd..2e8c3313b3 100644
--- a/backends/graphics/wincesdl/wincesdl-graphics.h
+++ b/backends/graphics/wincesdl/wincesdl-graphics.h
@@ -158,8 +158,7 @@ public:
static zoneDesc _zones[TOTAL_ZONES];
-protected:
- virtual void adjustMouseEvent(const Common::Event &event);
+ virtual void transformMouseCoordinates(Common::Point &point);
private:
bool update_scalers();
@@ -206,4 +205,3 @@ private:
};
#endif /* BACKENDS_GRAPHICS_WINCE_SDL_H */
-
diff --git a/backends/log/log.cpp b/backends/log/log.cpp
index c02643b48b..693399bae5 100644
--- a/backends/log/log.cpp
+++ b/backends/log/log.cpp
@@ -102,4 +102,3 @@ void Log::printTimeStamp() {
} // End of namespace Log
} // End of namespace Backends
-
diff --git a/backends/log/log.h b/backends/log/log.h
index 8c95bfc435..524f70405f 100644
--- a/backends/log/log.h
+++ b/backends/log/log.h
@@ -126,4 +126,3 @@ private:
} // End of namespace Backends
#endif
-
diff --git a/backends/mixer/symbiansdl/symbiansdl-mixer.cpp b/backends/mixer/symbiansdl/symbiansdl-mixer.cpp
index c911a99b61..d4637fdd88 100644
--- a/backends/mixer/symbiansdl/symbiansdl-mixer.cpp
+++ b/backends/mixer/symbiansdl/symbiansdl-mixer.cpp
@@ -72,4 +72,3 @@ void SymbianSdlMixerManager::callbackHandler(byte *samples, int len) {
}
#endif
-
diff --git a/backends/mixer/symbiansdl/symbiansdl-mixer.h b/backends/mixer/symbiansdl/symbiansdl-mixer.h
index e3104e45eb..d59c98753b 100644
--- a/backends/mixer/symbiansdl/symbiansdl-mixer.h
+++ b/backends/mixer/symbiansdl/symbiansdl-mixer.h
@@ -41,4 +41,3 @@ protected:
};
#endif
-
diff --git a/backends/mixer/wincesdl/wincesdl-mixer.cpp b/backends/mixer/wincesdl/wincesdl-mixer.cpp
index 36ac310ad9..db5ab59446 100644
--- a/backends/mixer/wincesdl/wincesdl-mixer.cpp
+++ b/backends/mixer/wincesdl/wincesdl-mixer.cpp
@@ -131,15 +131,20 @@ uint32 WINCESdlMixerManager::compute_sample_rate() {
ConfMan.setBool("FM_medium_quality", true);
ConfMan.flushToDisk();
}
+ } else {
+ if (!ConfMan.hasKey("FM_high_quality") && !ConfMan.hasKey("FM_medium_quality")) {
+ ConfMan.setBool("FM_high_quality", true);
+ ConfMan.flushToDisk();
+ }
}
// See if the output frequency is forced by the game
if (gameid == "ft" || gameid == "dig" || gameid == "comi" || gameid == "queen" || gameid == "sword" || gameid == "agi")
sampleRate = SAMPLES_PER_SEC_NEW;
else {
- if (ConfMan.hasKey("high_sample_rate") && ConfMan.getBool("high_sample_rate"))
- sampleRate = SAMPLES_PER_SEC_NEW;
- else
+ if (ConfMan.hasKey("high_sample_rate") && !ConfMan.getBool("high_sample_rate"))
sampleRate = SAMPLES_PER_SEC_OLD;
+ else
+ sampleRate = SAMPLES_PER_SEC_NEW;
}
#ifdef USE_VORBIS
@@ -182,4 +187,3 @@ bool WINCESdlMixerManager::checkOggHighSampleRate() {
#endif
#endif
-
diff --git a/backends/mixer/wincesdl/wincesdl-mixer.h b/backends/mixer/wincesdl/wincesdl-mixer.h
index 8274d39d1c..fb51f6ac64 100644
--- a/backends/mixer/wincesdl/wincesdl-mixer.h
+++ b/backends/mixer/wincesdl/wincesdl-mixer.h
@@ -47,4 +47,3 @@ private:
};
#endif
-
diff --git a/backends/module.mk b/backends/module.mk
index 63774cc4d0..e38b039aa2 100644
--- a/backends/module.mk
+++ b/backends/module.mk
@@ -61,6 +61,7 @@ endif
ifdef SDL_BACKEND
MODULE_OBJS += \
events/sdl/sdl-events.o \
+ graphics/sdl/sdl-graphics.o \
graphics/surfacesdl/surfacesdl-graphics.o \
mixer/doublebuffersdl/doublebuffersdl-mixer.o \
mixer/sdl/sdl-mixer.o \
@@ -87,7 +88,8 @@ endif
ifdef MACOSX
MODULE_OBJS += \
midi/coreaudio.o \
- midi/coremidi.o
+ midi/coremidi.o \
+ updates/macosx/macosx-updates.o
endif
ifdef WIN32
@@ -115,6 +117,11 @@ MODULE_OBJS += \
mixer/sdl13/sdl13-mixer.o
endif
+ifeq ($(BACKEND),bada)
+MODULE_OBJS += \
+ timer/bada/timer.o
+endif
+
ifeq ($(BACKEND),ds)
MODULE_OBJS += \
fs/ds/ds-fs.o \
diff --git a/backends/platform/android/android.cpp b/backends/platform/android/android.cpp
index 17c7d4f9cb..a935bf145d 100644
--- a/backends/platform/android/android.cpp
+++ b/backends/platform/android/android.cpp
@@ -602,4 +602,3 @@ void AndroidPluginProvider::addCustomDirectories(Common::FSList &dirs) const {
#endif
#endif
-
diff --git a/backends/platform/android/android.h b/backends/platform/android/android.h
index c2ada2ab77..f39a8f1144 100644
--- a/backends/platform/android/android.h
+++ b/backends/platform/android/android.h
@@ -296,4 +296,3 @@ public:
#endif
#endif
-
diff --git a/backends/platform/android/android.mk b/backends/platform/android/android.mk
index 77fdb139d8..63d194fdc1 100644
--- a/backends/platform/android/android.mk
+++ b/backends/platform/android/android.mk
@@ -189,4 +189,3 @@ androiddistdebug: all
done
.PHONY: androidrelease androidtest
-
diff --git a/backends/platform/android/asset-archive.h b/backends/platform/android/asset-archive.h
index 016e3e31a5..9216412e0a 100644
--- a/backends/platform/android/asset-archive.h
+++ b/backends/platform/android/asset-archive.h
@@ -52,4 +52,3 @@ private:
#endif
#endif
-
diff --git a/backends/platform/android/events.cpp b/backends/platform/android/events.cpp
index cf1d4b173c..2a16e69411 100644
--- a/backends/platform/android/events.cpp
+++ b/backends/platform/android/events.cpp
@@ -820,4 +820,3 @@ bool OSystem_Android::pollEvent(Common::Event &event) {
}
#endif
-
diff --git a/backends/platform/android/gfx.cpp b/backends/platform/android/gfx.cpp
index b8a9e74437..8bc914f567 100644
--- a/backends/platform/android/gfx.cpp
+++ b/backends/platform/android/gfx.cpp
@@ -826,4 +826,3 @@ void OSystem_Android::disableCursorPalette() {
}
#endif
-
diff --git a/backends/platform/android/jni.cpp b/backends/platform/android/jni.cpp
index e3b4ef7401..b44a585528 100644
--- a/backends/platform/android/jni.cpp
+++ b/backends/platform/android/jni.cpp
@@ -619,4 +619,3 @@ void JNI::setPause(JNIEnv *env, jobject self, jboolean value) {
}
#endif
-
diff --git a/backends/platform/android/jni.h b/backends/platform/android/jni.h
index 1abecf0a37..52698e0f35 100644
--- a/backends/platform/android/jni.h
+++ b/backends/platform/android/jni.h
@@ -145,4 +145,3 @@ inline int JNI::writeAudio(JNIEnv *env, jbyteArray &data, int offset, int size)
#endif
#endif
-
diff --git a/backends/platform/android/module.mk b/backends/platform/android/module.mk
index 2fe4b40585..de5fe98a53 100644
--- a/backends/platform/android/module.mk
+++ b/backends/platform/android/module.mk
@@ -12,4 +12,3 @@ MODULE_OBJS := \
MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS))
OBJS := $(MODULE_OBJS) $(OBJS)
MODULE_DIRS += $(sort $(dir $(MODULE_OBJS)))
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java b/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java
index cede7eedd4..3aef14b851 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/EditableSurfaceView.java
@@ -59,4 +59,3 @@ public class EditableSurfaceView extends SurfaceView {
return new MyInputConnection();
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java b/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java
index 3c91d9f5dc..d90b7b2c68 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/PluginProvider.java
@@ -51,4 +51,3 @@ public class PluginProvider extends BroadcastReceiver {
setResultExtras(extras);
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
index ef9f4cc1e0..246a02c9be 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVM.java
@@ -449,4 +449,3 @@ public abstract class ScummVM implements SurfaceHolder.Callback, Runnable {
System.load(libpath.getPath());
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java
index 1978b690d0..ce4e016322 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMActivity.java
@@ -222,4 +222,3 @@ public class ScummVMActivity extends Activity {
InputMethodManager.HIDE_IMPLICIT_ONLY);
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java
index f9eec72eac..8ab7d1a084 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMApplication.java
@@ -28,4 +28,3 @@ public class ScummVMApplication extends Application {
return _cache_dir;
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
index 2d5c100a1c..175ff0b677 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/ScummVMEvents.java
@@ -229,4 +229,3 @@ public class ScummVMEvents implements
return true;
}
}
-
diff --git a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java
index c4b2ad7f5d..8811b1f3ae 100644
--- a/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java
+++ b/backends/platform/android/org/inodes/gus/scummvm/Unpacker.java
@@ -370,4 +370,3 @@ public class Unpacker extends Activity {
}
}
}
-
diff --git a/backends/platform/android/texture.cpp b/backends/platform/android/texture.cpp
index e993ed6794..53b4d1cc59 100644
--- a/backends/platform/android/texture.cpp
+++ b/backends/platform/android/texture.cpp
@@ -488,4 +488,3 @@ GLESFakePalette5551Texture::~GLESFakePalette5551Texture() {
}
#endif
-
diff --git a/backends/platform/android/texture.h b/backends/platform/android/texture.h
index dd34ba9d88..4307b5a1bc 100644
--- a/backends/platform/android/texture.h
+++ b/backends/platform/android/texture.h
@@ -271,4 +271,3 @@ public:
#endif
#endif
-
diff --git a/backends/platform/bada/README.TXT b/backends/platform/bada/README.TXT
new file mode 100644
index 0000000000..ca6f8f245a
--- /dev/null
+++ b/backends/platform/bada/README.TXT
@@ -0,0 +1,85 @@
+Build instructions:
+
+1. Install BADA SDK (requires free registration):
+
+ http://developer.bada.com/apis/index.do
+
+2. Install Cygwin:
+
+ http://www.cygwin.com/
+
+ Add the following to your cygwin .bash_profile:
+
+ alias mmake=/cygdrive/c/MinGW/bin/mingw32-make.exe
+ export BADA_SDK=/cygdrive/c/bada/1.2.1
+ export ARM_BIN=c:/bada/1.2.1/Tools/Toolchains/ARM/bin
+ export CPPFLAGS="-fpic -fshort-wchar -mcpu=cortex-a8 -mfpu=vfpv3 \
+ -mfloat-abi=hard -mlittle-endian -mthumb-interwork -Wno-psabi \
+ -fno-strict-aliasing -fno-short-enums"
+ export LDFLAGS="-nostdlib -lc-newlib -lm-newlib -LC:/bada/1.2.1/Model/Wave_LP1/Target"
+ #export PATH=${BADA_SDK}/Tools/Toolchains/Win32/bin:${PATH}
+ export PATH=${BADA_SDK}/Tools/Toolchains/ARM/bin:~/utils:${PATH}
+ alias gcc=${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe
+ alias ar=${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe
+
+ The following were added to ~/utils for zlib:
+
+ ar:
+ #!/bin/sh
+ ${ARM_BIN}/arm-samsung-nucleuseabi-ar.exe $*
+
+ gcc:
+ #!/bin/sh
+ ${ARM_BIN}/arm-samsung-nucleuseabi-gcc.exe $*
+
+3. Build dependencies
+
+ zlib, libogg, libvorbis, libmad, FLAC
+
+ see: "Building the libraries" under:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW#Building_the_libraries
+ for instructions on how to obtain these modules
+
+ 3.1 For Target-Release configure ogg and mad with:
+
+ ./configure --host=arm-samsung-nucleuseabi --disable-shared
+
+ when building vorbis and flac:
+
+ ./configure --host=arm-samsung-nucleuseabi --disable-shared --with-ogg=c:/cygwin/usr/local
+
+ 3.2 for each module, after a successful configure, add the following
+ to the generated config.h (gzguts.h for zlib)
+
+ #undef __MINGW32__
+ #undef _WIN32
+ #include "c:/src/scummvm/backends/platform/bada/portdefs.h"
+
+ 3.3 Additional post configure edits:
+
+ - removed -fforce-mem from the libMAD Makefile
+ - in libvorbis/lib/Makefile comment lines with vorbis_selftests
+ - edit libFLAC/Makefile ... CFLAGS = $(OGG_CFLAGS)
+
+ Note: you can ignore the ranlib errors when doing make install.
+
+4. Build the ScummVM base library:
+
+ ./configure --host=bada --enable-release
+
+ To target the Win32 simulator:
+
+ ./configure --host=bada --enable-debug
+
+5. Build the front end application using BADA-Ide:
+
+ Copy the scummvm/dists/bada folder into a clean directory
+ outside of the scummvm package. Start the BADA IDE then
+ choose this folder as the eclipse workspace. Click
+ Project / Build.
+
+Links:
+
+A short turorial on implementing OpenGL ES 1.1 in BADA:
+ http://forums.badadev.com/viewtopic.php?f=7&t=208
+
diff --git a/backends/platform/bada/application.cpp b/backends/platform/bada/application.cpp
new file mode 100644
index 0000000000..a287fa6352
--- /dev/null
+++ b/backends/platform/bada/application.cpp
@@ -0,0 +1,109 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "engines/engine.h"
+
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/system.h"
+#include "backends/platform/bada/application.h"
+
+using namespace Osp::System;
+using namespace Osp::Ui::Controls;
+
+Application *BadaScummVM::createInstance() {
+ return new BadaScummVM();
+}
+
+BadaScummVM::BadaScummVM() : _appForm(0) {
+}
+
+BadaScummVM::~BadaScummVM() {
+ logEntered();
+ if (g_system) {
+ BadaSystem *system = (BadaSystem *)g_system;
+ system->destroyBackend();
+ delete system;
+ g_system = 0;
+ }
+}
+
+bool BadaScummVM::OnAppInitializing(AppRegistry &appRegistry) {
+ _appForm = systemStart(this);
+ return (_appForm != NULL);
+}
+
+bool BadaScummVM::OnAppTerminating(AppRegistry &appRegistry,
+ bool forcedTermination) {
+ logEntered();
+ return true;
+}
+
+void BadaScummVM::OnUserEventReceivedN(RequestId requestId,
+ Osp::Base::Collection::IList *args) {
+ logEntered();
+
+ if (requestId == USER_MESSAGE_EXIT) {
+ // normal program termination
+ Terminate();
+ } else if (requestId == USER_MESSAGE_EXIT_ERR) {
+ // assertion failure termination
+ String *message = NULL;
+ if (args) {
+ message = (String*)args->GetAt(0);
+ }
+ if (!message) {
+ message = new String("Unknown error");
+ }
+
+ MessageBox messageBox;
+ messageBox.Construct(L"Oops...", *message, MSGBOX_STYLE_OK);
+ int modalResult;
+ messageBox.ShowAndWait(modalResult);
+ Terminate();
+ }
+}
+
+void BadaScummVM::OnForeground(void) {
+ logEntered();
+ pauseGame(false);
+}
+
+void BadaScummVM::OnBackground(void) {
+ logEntered();
+ pauseGame(true);
+}
+
+void BadaScummVM::OnBatteryLevelChanged(BatteryLevel batteryLevel) {
+}
+
+void BadaScummVM::OnLowMemory(void) {
+}
+
+void BadaScummVM::pauseGame(bool pause) {
+ if (pause && _appForm && g_engine && !g_engine->isPaused()) {
+ _appForm->pushKey(Common::KEYCODE_SPACE);
+ }
+
+ if (g_system) {
+ ((BadaSystem *)g_system)->setMute(pause);
+ }
+}
diff --git a/backends/platform/bada/application.h b/backends/platform/bada/application.h
new file mode 100644
index 0000000000..2b0d37f1ef
--- /dev/null
+++ b/backends/platform/bada/application.h
@@ -0,0 +1,54 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_APPLICATION_H
+#define BADA_APPLICATION_H
+
+#include <FBase.h>
+#include <FApp.h>
+#include <FGraphics.h>
+#include <FUi.h>
+#include <FSystem.h>
+
+#include "backends/platform/bada/system.h"
+
+class BadaScummVM : public Osp::App::Application {
+public:
+ BadaScummVM();
+ ~BadaScummVM();
+
+ static Osp::App::Application *createInstance(void);
+
+ bool OnAppInitializing(Osp::App::AppRegistry &appRegistry);
+ bool OnAppTerminating(Osp::App::AppRegistry &appRegistry, bool forcedTermination = false);
+ void OnForeground(void);
+ void OnBackground(void);
+ void OnLowMemory(void);
+ void OnBatteryLevelChanged(Osp::System::BatteryLevel batteryLevel);
+ void OnUserEventReceivedN(RequestId requestId, Osp::Base::Collection::IList *pArgs);
+
+private:
+ void pauseGame(bool pause);
+ BadaAppForm *_appForm;
+};
+
+#endif
diff --git a/backends/platform/bada/audio.cpp b/backends/platform/bada/audio.cpp
new file mode 100644
index 0000000000..cfa6418e08
--- /dev/null
+++ b/backends/platform/bada/audio.cpp
@@ -0,0 +1,260 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <FSysSettingInfo.h>
+#include <FAppAppRegistry.h>
+
+#include "backends/platform/bada/audio.h"
+#include "backends/platform/bada/system.h"
+
+#define TIMER_INCREMENT 10
+#define TIMER_INTERVAL 40
+#define MIN_TIMER_INTERVAL 10
+#define MAX_TIMER_INTERVAL 160
+#define INIT_LEVEL 3
+#define CONFIG_KEY L"audiovol"
+
+// sound level pre-sets
+const int levels[] = {0, 1, 10, 45, 70, 99};
+
+AudioThread::AudioThread() :
+ _mixer(0),
+ _timer(0),
+ _audioOut(0),
+ _head(0),
+ _tail(0),
+ _ready(0),
+ _interval(TIMER_INTERVAL),
+ _playing(-1),
+ _muted(true) {
+}
+
+Audio::MixerImpl *AudioThread::Construct(OSystem *system) {
+ logEntered();
+
+ if (IsFailed(Thread::Construct(THREAD_TYPE_EVENT_DRIVEN,
+ DEFAULT_STACK_SIZE,
+ THREAD_PRIORITY_HIGH))) {
+ AppLog("Failed to create AudioThread");
+ return NULL;
+ }
+
+ _mixer = new Audio::MixerImpl(system, 44100);
+ return _mixer;
+}
+
+AudioThread::~AudioThread() {
+ logEntered();
+}
+
+bool AudioThread::isSilentMode() {
+ bool silentMode;
+ String key(L"SilentMode");
+ Osp::System::SettingInfo::GetValue(key, silentMode);
+ return silentMode;
+}
+
+void AudioThread::setMute(bool on) {
+ if (_audioOut && !isSilentMode()) {
+ _muted = on;
+ if (on) {
+ _timer->Cancel();
+ } else {
+ _timer->Start(_interval);
+ }
+ }
+}
+
+int AudioThread::setVolume(bool up, bool minMax) {
+ int level = -1;
+ int numLevels = sizeof(levels) / sizeof(levels[0]);
+
+ if (_audioOut && !isSilentMode()) {
+ int volume = _audioOut->GetVolume();
+ if (minMax) {
+ level = up ? numLevels - 1 : 0;
+ volume = levels[level];
+ } else {
+ // adjust volume to be one of the preset values
+ for (int i = 0; i < numLevels && level == -1; i++) {
+ if (volume == levels[i]) {
+ level = i;
+ if (up) {
+ if (i + 1 < numLevels) {
+ level = i + 1;
+ }
+ } else if (i > 0) {
+ level = i - 1;
+ }
+ }
+ }
+
+ // default to INIT_LEVEL when current not preset value
+ if (level == -1) {
+ level = INIT_LEVEL;
+ }
+ volume = levels[level];
+ }
+
+ _audioOut->SetVolume(volume);
+
+ // remember the chosen setting
+ AppRegistry *registry = Application::GetInstance()->GetAppRegistry();
+ if (registry) {
+ registry->Set(CONFIG_KEY, volume);
+ }
+ }
+ return level;
+}
+
+bool AudioThread::OnStart(void) {
+ logEntered();
+
+ _audioOut = new Osp::Media::AudioOut();
+ if (!_audioOut ||
+ IsFailed(_audioOut->Construct(*this))) {
+ AppLog("Failed to create AudioOut");
+ return false;
+ }
+
+ int sampleRate = _mixer->getOutputRate();
+
+ // ideally we would update _mixer with GetOptimizedSampleRate here
+ if (_audioOut->GetOptimizedSampleRate() != sampleRate) {
+ AppLog("Non optimal sample rate %d", _audioOut->GetOptimizedSampleRate());
+ }
+
+ if (IsFailed(_audioOut->Prepare(AUDIO_TYPE_PCM_S16_LE,
+ AUDIO_CHANNEL_TYPE_STEREO,
+ sampleRate))) {
+ AppLog("Failed to prepare AudioOut %d", sampleRate);
+ return false;
+ }
+
+ int bufferSize = _audioOut->GetMinBufferSize();
+ for (int i = 0; i < NUM_AUDIO_BUFFERS; i++) {
+ if (IsFailed(_audioBuffer[i].Construct(bufferSize))) {
+ AppLog("Failed to create audio buffer");
+ return false;
+ }
+ }
+
+ _timer = new Timer();
+ if (!_timer || IsFailed(_timer->Construct(*this))) {
+ AppLog("Failed to create audio timer");
+ return false;
+ }
+
+ if (IsFailed(_timer->Start(_interval))) {
+ AppLog("failed to start audio timer");
+ return false;
+ }
+
+ // get the volume from the app-registry
+ int volume = levels[INIT_LEVEL];
+ AppRegistry *registry = Application::GetInstance()->GetAppRegistry();
+ if (registry) {
+ if (E_KEY_NOT_FOUND == registry->Get(CONFIG_KEY, volume)) {
+ registry->Add(CONFIG_KEY, volume);
+ volume = levels[INIT_LEVEL];
+ } else {
+ AppLog("Setting volume: %d", volume);
+ }
+ }
+
+ _muted = false;
+ _mixer->setReady(true);
+ _audioOut->SetVolume(isSilentMode() ? 0 : volume);
+ _audioOut->Start();
+ return true;
+}
+
+void AudioThread::OnStop(void) {
+ logEntered();
+
+ _mixer->setReady(false);
+
+ if (_timer) {
+ if (!_muted) {
+ _timer->Cancel();
+ }
+ delete _timer;
+ }
+
+ if (_audioOut) {
+ _audioOut->Reset();
+ delete _audioOut;
+ }
+}
+
+void AudioThread::OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r) {
+ logEntered();
+}
+
+void AudioThread::OnAudioOutInterrupted(Osp::Media::AudioOut &src) {
+ logEntered();
+}
+
+void AudioThread::OnAudioOutReleased(Osp::Media::AudioOut &src) {
+ logEntered();
+ _audioOut->Start();
+}
+
+void AudioThread::OnAudioOutBufferEndReached(Osp::Media::AudioOut &src) {
+ if (_ready > 0) {
+ _playing = _tail;
+ _audioOut->WriteBuffer(_audioBuffer[_tail]);
+ _tail = (_tail + 1) % NUM_AUDIO_BUFFERS;
+ _ready--;
+ } else {
+ // audio buffer empty: decrease timer inverval
+ _playing = -1;
+ _interval -= TIMER_INCREMENT;
+ if (_interval < MIN_TIMER_INTERVAL) {
+ _interval = MIN_TIMER_INTERVAL;
+ }
+ }
+}
+
+void AudioThread::OnTimerExpired(Timer &timer) {
+ if (_ready < NUM_AUDIO_BUFFERS) {
+ uint len = _audioBuffer[_head].GetCapacity();
+ int samples = _mixer->mixCallback((byte*)_audioBuffer[_head].GetPointer(), len);
+ if (samples) {
+ _head = (_head + 1) % NUM_AUDIO_BUFFERS;
+ _ready++;
+ }
+ } else {
+ // audio buffer full: increase timer inverval
+ _interval += TIMER_INCREMENT;
+ if (_interval > MAX_TIMER_INTERVAL) {
+ _interval = MAX_TIMER_INTERVAL;
+ }
+ }
+
+ if (_ready && _playing == -1) {
+ OnAudioOutBufferEndReached(*_audioOut);
+ }
+
+ _timer->Start(_interval);
+}
+
diff --git a/backends/platform/bada/audio.h b/backends/platform/bada/audio.h
new file mode 100644
index 0000000000..72c537a942
--- /dev/null
+++ b/backends/platform/bada/audio.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_AUDIO_H
+#define BADA_AUDIO_H
+
+#include <FBase.h>
+#include <FMedia.h>
+#include <FIo.h>
+#include <FBaseByteBuffer.h>
+
+#include "config.h"
+#include "common/scummsys.h"
+#include "common/system.h"
+#include "audio/mixer_intern.h"
+
+using namespace Osp::Base;
+using namespace Osp::Base::Collection;
+using namespace Osp::Base::Runtime;
+using namespace Osp::Media;
+using namespace Osp::Io;
+
+#define NUM_AUDIO_BUFFERS 2
+
+class AudioThread: public Osp::Media::IAudioOutEventListener,
+ public Osp::Base::Runtime::ITimerEventListener,
+ public Osp::Base::Runtime::Thread {
+public:
+ AudioThread(void);
+ ~AudioThread(void);
+
+ Audio::MixerImpl *Construct(OSystem *system);
+ bool isSilentMode();
+ void setMute(bool on);
+ int setVolume(bool up, bool minMax);
+
+ bool OnStart(void);
+ void OnStop(void);
+ void OnAudioOutErrorOccurred(Osp::Media::AudioOut &src, result r);
+ void OnAudioOutInterrupted(Osp::Media::AudioOut &src);
+ void OnAudioOutReleased(Osp::Media::AudioOut &src);
+ void OnAudioOutBufferEndReached(Osp::Media::AudioOut &src);
+ void OnTimerExpired(Timer &timer);
+
+private:
+ Audio::MixerImpl *_mixer;
+ Osp::Base::Runtime::Timer *_timer;
+ Osp::Media::AudioOut *_audioOut;
+ Osp::Base::ByteBuffer _audioBuffer[NUM_AUDIO_BUFFERS];
+ int _head, _tail, _ready, _interval, _playing;
+ bool _muted;
+};
+
+#endif
diff --git a/backends/platform/bada/bada.mk b/backends/platform/bada/bada.mk
new file mode 100644
index 0000000000..7c72d7752b
--- /dev/null
+++ b/backends/platform/bada/bada.mk
@@ -0,0 +1,5 @@
+# Bada specific modules are built under eclipse
+
+$(EXECUTABLE): $(OBJS)
+ rm -f $@
+ ar Tru $@ $(OBJS)
diff --git a/backends/platform/bada/form.cpp b/backends/platform/bada/form.cpp
new file mode 100644
index 0000000000..6163053c96
--- /dev/null
+++ b/backends/platform/bada/form.cpp
@@ -0,0 +1,464 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <FAppApplication.h>
+
+#include "common/translation.h"
+#include "base/main.h"
+
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/system.h"
+
+using namespace Osp::Base::Runtime;
+using namespace Osp::Ui;
+using namespace Osp::Ui::Controls;
+
+// number of volume levels
+#define LEVEL_RANGE 5
+
+// round down small Y touch values to 1 to allow the
+// cursor to be positioned at the top of the screen
+#define MIN_TOUCH_Y 10
+
+// block for up to 2.5 seconds during shutdown to
+// allow the game thread to exit gracefully.
+#define EXIT_SLEEP_STEP 10
+#define EXIT_SLEEP 250
+
+//
+// BadaAppForm
+//
+BadaAppForm::BadaAppForm() :
+ _gameThread(0),
+ _state(InitState),
+ _buttonState(LeftButton),
+ _shortcut(SetVolume) {
+ _eventQueueLock = new Mutex();
+ _eventQueueLock->Create();
+}
+
+result BadaAppForm::Construct() {
+ result r = Form::Construct(Controls::FORM_STYLE_NORMAL);
+ if (IsFailed(r)) {
+ return r;
+ }
+
+ BadaSystem *badaSystem = NULL;
+ _gameThread = NULL;
+
+ badaSystem = new BadaSystem(this);
+ r = badaSystem != NULL ? E_SUCCESS : E_OUT_OF_MEMORY;
+
+ if (!IsFailed(r)) {
+ r = badaSystem->Construct();
+ }
+
+ if (!IsFailed(r)) {
+ _gameThread = new Thread();
+ r = _gameThread != NULL ? E_SUCCESS : E_OUT_OF_MEMORY;
+ }
+
+ if (!IsFailed(r)) {
+ r = _gameThread->Construct(*this);
+ }
+
+ if (IsFailed(r)) {
+ if (badaSystem != NULL) {
+ delete badaSystem;
+ }
+ if (_gameThread != NULL) {
+ delete _gameThread;
+ _gameThread = NULL;
+ }
+ } else {
+ g_system = badaSystem;
+ }
+
+ return r;
+}
+
+BadaAppForm::~BadaAppForm() {
+ logEntered();
+
+ if (_gameThread && _state != ErrorState) {
+ terminate();
+
+ _gameThread->Stop();
+ if (_state != ErrorState) {
+ _gameThread->Join();
+ }
+
+ delete _gameThread;
+ _gameThread = NULL;
+ }
+
+ if (_eventQueueLock) {
+ delete _eventQueueLock;
+ _eventQueueLock = NULL;
+ }
+
+ logLeaving();
+}
+
+//
+// abort the game thread
+//
+void BadaAppForm::terminate() {
+ if (_state == ActiveState) {
+ ((BadaSystem *)g_system)->setMute(true);
+
+ _eventQueueLock->Acquire();
+
+ Common::Event e;
+ e.type = Common::EVENT_QUIT;
+ _eventQueue.push(e);
+ _state = ClosingState;
+
+ _eventQueueLock->Release();
+
+ // block while thread ends
+ AppLog("waiting for shutdown");
+ for (int i = 0; i < EXIT_SLEEP_STEP && _state == ClosingState; i++) {
+ Thread::Sleep(EXIT_SLEEP);
+ }
+
+ if (_state == ClosingState) {
+ // failed to terminate - Join() will freeze
+ _state = ErrorState;
+ }
+ }
+}
+
+void BadaAppForm::exitSystem() {
+ _state = ErrorState;
+
+ if (_gameThread) {
+ _gameThread->Stop();
+ delete _gameThread;
+ _gameThread = NULL;
+ }
+}
+
+result BadaAppForm::OnInitializing(void) {
+ logEntered();
+
+ SetOrientation(ORIENTATION_LANDSCAPE);
+ AddOrientationEventListener(*this);
+ AddTouchEventListener(*this);
+ AddKeyEventListener(*this);
+
+ // set focus to enable receiving key events
+ SetFocusable(true);
+ SetFocus();
+
+ return E_SUCCESS;
+}
+
+result BadaAppForm::OnDraw(void) {
+ logEntered();
+
+ if (g_system) {
+ BadaSystem *system = (BadaSystem *)g_system;
+ BadaGraphicsManager *graphics = system->getGraphics();
+ if (graphics && graphics->isReady()) {
+ g_system->updateScreen();
+ }
+ }
+
+ return E_SUCCESS;
+}
+
+bool BadaAppForm::pollEvent(Common::Event &event) {
+ bool result = false;
+
+ _eventQueueLock->Acquire();
+ if (!_eventQueue.empty()) {
+ event = _eventQueue.pop();
+ result = true;
+ }
+ _eventQueueLock->Release();
+
+ return result;
+}
+
+void BadaAppForm::pushEvent(Common::EventType type,
+ const Point &currentPosition) {
+ BadaSystem *system = (BadaSystem *)g_system;
+ BadaGraphicsManager *graphics = system->getGraphics();
+ if (graphics) {
+ // graphics could be NULL at startup or when
+ // displaying the system error screen
+ Common::Event e;
+ e.type = type;
+ e.mouse.x = currentPosition.x;
+ e.mouse.y = currentPosition.y > MIN_TOUCH_Y ? currentPosition.y : 1;
+
+ bool moved = graphics->moveMouse(e.mouse.x, e.mouse.y);
+
+ _eventQueueLock->Acquire();
+
+ if (moved && type != Common::EVENT_MOUSEMOVE) {
+ Common::Event moveEvent;
+ moveEvent.type = Common::EVENT_MOUSEMOVE;
+ moveEvent.mouse = e.mouse;
+ _eventQueue.push(moveEvent);
+ }
+
+ _eventQueue.push(e);
+ _eventQueueLock->Release();
+ }
+}
+
+void BadaAppForm::pushKey(Common::KeyCode keycode) {
+ Common::Event e;
+ e.synthetic = false;
+ e.kbd.keycode = keycode;
+ e.kbd.ascii = keycode;
+ e.kbd.flags = 0;
+
+ _eventQueueLock->Acquire();
+
+ e.type = Common::EVENT_KEYDOWN;
+ _eventQueue.push(e);
+ e.type = Common::EVENT_KEYUP;
+ _eventQueue.push(e);
+
+ _eventQueueLock->Release();
+}
+
+void BadaAppForm::OnOrientationChanged(const Control &source,
+ OrientationStatus orientationStatus) {
+ logEntered();
+ if (_state == InitState) {
+ _state = ActiveState;
+ _gameThread->Start();
+ }
+}
+
+Object *BadaAppForm::Run(void) {
+ scummvm_main(0, 0);
+
+ if (_state == ActiveState) {
+ Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT, NULL);
+ }
+ _state = DoneState;
+ return NULL;
+}
+
+void BadaAppForm::setButtonShortcut() {
+ switch (_buttonState) {
+ case LeftButton:
+ g_system->displayMessageOnOSD(_("Right Click Once"));
+ _buttonState = RightButtonOnce;
+ break;
+ case RightButtonOnce:
+ g_system->displayMessageOnOSD(_("Right Click"));
+ _buttonState = RightButton;
+ break;
+ case RightButton:
+ g_system->displayMessageOnOSD(_("Move Only"));
+ _buttonState = MoveOnly;
+ break;
+ case MoveOnly:
+ g_system->displayMessageOnOSD(_("Left Click"));
+ _buttonState = LeftButton;
+ break;
+ }
+}
+
+void BadaAppForm::setShortcut() {
+ // cycle to the next shortcut
+ switch (_shortcut) {
+ case ControlMouse:
+ g_system->displayMessageOnOSD(_("Escape Key"));
+ _shortcut = EscapeKey;
+ break;
+
+ case EscapeKey:
+ g_system->displayMessageOnOSD(_("Game Menu"));
+ _shortcut = GameMenu;
+ break;
+
+ case GameMenu:
+ g_system->displayMessageOnOSD(_("Show Keypad"));
+ _shortcut = ShowKeypad;
+ break;
+
+ case SetVolume:
+ // fallthru
+
+ case ShowKeypad:
+ g_system->displayMessageOnOSD(_("Control Mouse"));
+ _shortcut = ControlMouse;
+ break;
+ }
+}
+
+void BadaAppForm::setVolume(bool up, bool minMax) {
+ int level = ((BadaSystem *)g_system)->setVolume(up, minMax);
+ if (level != -1) {
+ char message[32];
+ char ind[LEVEL_RANGE]; // 1..5 (0=off)
+ int j = LEVEL_RANGE - 1; // 0..4
+ for (int i = 1; i <= LEVEL_RANGE; i++) {
+ ind[j--] = level >= i ? '|' : ' ';
+ }
+ snprintf(message, sizeof(message), "Volume: [ %c%c%c%c%c ]",
+ ind[0], ind[1], ind[2], ind[3], ind[4]);
+ g_system->displayMessageOnOSD(message);
+ }
+}
+
+void BadaAppForm::showKeypad() {
+ // display the soft keyboard
+ _buttonState = LeftButton;
+ pushKey(Common::KEYCODE_F7);
+}
+
+void BadaAppForm::OnTouchDoublePressed(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+ if (_buttonState != MoveOnly) {
+ pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN,
+ currentPosition);
+ pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN,
+ currentPosition);
+ }
+}
+
+void BadaAppForm::OnTouchFocusIn(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+}
+
+void BadaAppForm::OnTouchFocusOut(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+}
+
+void BadaAppForm::OnTouchLongPressed(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+ if (_buttonState != LeftButton) {
+ pushKey(Common::KEYCODE_RETURN);
+ }
+}
+
+void BadaAppForm::OnTouchMoved(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+ pushEvent(Common::EVENT_MOUSEMOVE, currentPosition);
+}
+
+void BadaAppForm::OnTouchPressed(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+ if (_buttonState != MoveOnly) {
+ pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONDOWN : Common::EVENT_RBUTTONDOWN,
+ currentPosition);
+ }
+}
+
+void BadaAppForm::OnTouchReleased(const Control &source,
+ const Point &currentPosition,
+ const TouchEventInfo &touchInfo) {
+ if (_buttonState != MoveOnly) {
+ pushEvent(_buttonState == LeftButton ? Common::EVENT_LBUTTONUP : Common::EVENT_RBUTTONUP,
+ currentPosition);
+ if (_buttonState == RightButtonOnce) {
+ _buttonState = LeftButton;
+ }
+ // flick to skip dialog
+ if (touchInfo.IsFlicked()) {
+ pushKey(Common::KEYCODE_PERIOD);
+ }
+ }
+}
+
+void BadaAppForm::OnKeyLongPressed(const Control &source, KeyCode keyCode) {
+ logEntered();
+ switch (keyCode) {
+ case KEY_SIDE_UP:
+ _shortcut = SetVolume;
+ setVolume(true, true);
+ return;
+
+ case KEY_SIDE_DOWN:
+ _shortcut = SetVolume;
+ setVolume(false, true);
+ return;
+
+ case KEY_CAMERA:
+ _shortcut = ShowKeypad;
+ showKeypad();
+ return;
+
+ default:
+ break;
+ }
+}
+
+void BadaAppForm::OnKeyPressed(const Control &source, KeyCode keyCode) {
+ switch (keyCode) {
+ case KEY_SIDE_UP:
+ if (_shortcut != SetVolume) {
+ _shortcut = SetVolume;
+ } else {
+ setVolume(true, false);
+ }
+ return;
+
+ case KEY_SIDE_DOWN:
+ switch (_shortcut) {
+ case ControlMouse:
+ setButtonShortcut();
+ break;
+
+ case EscapeKey:
+ pushKey(Common::KEYCODE_ESCAPE);
+ break;
+
+ case GameMenu:
+ pushKey(Common::KEYCODE_F5);
+ break;
+
+ case ShowKeypad:
+ showKeypad();
+ break;
+
+ default:
+ setVolume(false, false);
+ break;
+ }
+ break;
+
+ case KEY_CAMERA:
+ setShortcut();
+ break;
+
+ default:
+ break;
+ }
+}
+
+void BadaAppForm::OnKeyReleased(const Control &source, KeyCode keyCode) {
+}
diff --git a/backends/platform/bada/form.h b/backends/platform/bada/form.h
new file mode 100644
index 0000000000..09ce941a7b
--- /dev/null
+++ b/backends/platform/bada/form.h
@@ -0,0 +1,108 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_FORM_H
+#define BADA_FORM_H
+
+#include <FApp.h>
+#include <FUi.h>
+#include <FSystem.h>
+#include <FBase.h>
+#include <FUiITouchEventListener.h>
+#include <FUiITextEventListener.h>
+
+#include "config.h"
+#include "common/scummsys.h"
+#include "common/events.h"
+#include "common/queue.h"
+#include "common/mutex.h"
+
+//
+// BadaAppForm
+//
+class BadaAppForm : public Osp::Ui::Controls::Form,
+ public Osp::Ui::IOrientationEventListener,
+ public Osp::Ui::ITouchEventListener,
+ public Osp::Ui::IKeyEventListener,
+ public Osp::Base::Runtime::IRunnable {
+public:
+ BadaAppForm();
+ ~BadaAppForm();
+
+ result Construct();
+ bool pollEvent(Common::Event &event);
+ bool isClosing() { return _state == ClosingState; }
+ void pushKey(Common::KeyCode keycode);
+ void exitSystem();
+
+private:
+ Object *Run();
+ result OnInitializing(void);
+ result OnDraw(void);
+ void OnOrientationChanged(const Osp::Ui::Control &source,
+ Osp::Ui::OrientationStatus orientationStatus);
+ void OnTouchDoublePressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchFocusIn(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchFocusOut(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchLongPressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchMoved(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchPressed(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnTouchReleased(const Osp::Ui::Control &source,
+ const Osp::Graphics::Point &currentPosition,
+ const Osp::Ui::TouchEventInfo &touchInfo);
+ void OnKeyLongPressed(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+ void OnKeyPressed(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+ void OnKeyReleased(const Osp::Ui::Control &source,
+ Osp::Ui::KeyCode keyCode);
+
+ void pushEvent(Common::EventType type,
+ const Osp::Graphics::Point &currentPosition);
+ void terminate();
+ void setButtonShortcut();
+ void setShortcut();
+ void setVolume(bool up, bool minMax);
+ void showKeypad();
+
+ // event handling
+ Osp::Base::Runtime::Thread *_gameThread;
+ Osp::Base::Runtime::Mutex *_eventQueueLock;
+ Common::Queue<Common::Event> _eventQueue;
+ enum {InitState, ActiveState, ClosingState, DoneState, ErrorState} _state;
+ enum {LeftButton, RightButtonOnce, RightButton, MoveOnly} _buttonState;
+ enum {ControlMouse, EscapeKey, GameMenu, ShowKeypad, SetVolume} _shortcut;
+};
+
+#endif
diff --git a/backends/platform/bada/fs.cpp b/backends/platform/bada/fs.cpp
new file mode 100644
index 0000000000..8e3c4f0f7c
--- /dev/null
+++ b/backends/platform/bada/fs.cpp
@@ -0,0 +1,436 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "config.h"
+#include "backends/platform/bada/system.h"
+#include "backends/platform/bada/fs.h"
+
+#define BUFFER_SIZE 1024
+
+// internal BADA paths
+#define PATH_ROOT "/"
+#define PATH_HOME "/Home"
+#define PATH_HOME_SHARE "/Home/Share"
+#define PATH_HOME_SHARE2 "/Home/Share2"
+#define PATH_HOME_X "/Home/"
+#define PATH_HOME_EXT "/HomeExt"
+#define PATH_MEDIA "/Media"
+#define PATH_CARD "/Storagecard"
+#define PATH_CARD_MEDIA "/Storagecard/Media"
+
+//
+// BadaFileStream
+//
+class BadaFileStream : public Common::SeekableReadStream,
+ public Common::WriteStream,
+ public Common::NonCopyable {
+public:
+ static BadaFileStream *makeFromPath(const String &path, bool writeMode);
+
+ BadaFileStream(File *file, bool writeMode);
+ ~BadaFileStream();
+
+ bool err() const;
+ void clearErr();
+ bool eos() const;
+
+ uint32 write(const void *dataPtr, uint32 dataSize);
+ bool flush();
+
+ int32 pos() const;
+ int32 size() const;
+ bool seek(int32 offs, int whence = SEEK_SET);
+ uint32 read(void *dataPtr, uint32 dataSize);
+
+private:
+ byte buffer[BUFFER_SIZE];
+ uint32 bufferIndex;
+ uint32 bufferLength;
+ bool writeMode;
+ File *file;
+};
+
+BadaFileStream::BadaFileStream(File *ioFile, bool writeMode) :
+ bufferIndex(0),
+ bufferLength(0),
+ writeMode(writeMode),
+ file(ioFile) {
+ AppAssert(ioFile != 0);
+}
+
+BadaFileStream::~BadaFileStream() {
+ if (file) {
+ if (writeMode) {
+ flush();
+ }
+ delete file;
+ }
+}
+
+bool BadaFileStream::err() const {
+ result r = GetLastResult();
+ return (r != E_SUCCESS && r != E_END_OF_FILE);
+}
+
+void BadaFileStream::clearErr() {
+ SetLastResult(E_SUCCESS);
+}
+
+bool BadaFileStream::eos() const {
+ return (bufferLength - bufferIndex == 0) && (GetLastResult() == E_END_OF_FILE);
+}
+
+int32 BadaFileStream::pos() const {
+ return file->Tell() - (bufferLength - bufferIndex);
+}
+
+int32 BadaFileStream::size() const {
+ int32 oldPos = file->Tell();
+ file->Seek(FILESEEKPOSITION_END, 0);
+
+ int32 length = file->Tell();
+ SetLastResult(file->Seek(FILESEEKPOSITION_BEGIN, oldPos));
+
+ return length;
+}
+
+bool BadaFileStream::seek(int32 offs, int whence) {
+ bool result = false;
+ switch (whence) {
+ case SEEK_SET:
+ // set from start of file
+ SetLastResult(file->Seek(FILESEEKPOSITION_BEGIN, offs));
+ result = (E_SUCCESS == GetLastResult());
+ break;
+
+ case SEEK_CUR:
+ // set relative to offs
+ if (bufferIndex < bufferLength && bufferIndex > (uint32)-offs) {
+ // re-position within the buffer
+ SetLastResult(E_SUCCESS);
+ bufferIndex += offs;
+ return true;
+ } else {
+ offs -= (bufferLength - bufferIndex);
+ if (offs < 0 && file->Tell() + offs < 0) {
+ // avoid negative positioning
+ offs = 0;
+ }
+ if (offs != 0) {
+ SetLastResult(file->Seek(FILESEEKPOSITION_CURRENT, offs));
+ result = (E_SUCCESS == GetLastResult());
+ } else {
+ result = true;
+ }
+ }
+ break;
+
+ case SEEK_END:
+ // set relative to end - positive will increase the file size
+ SetLastResult(file->Seek(FILESEEKPOSITION_END, offs));
+ result = (E_SUCCESS == GetLastResult());
+ break;
+
+ default:
+ AppLog("Invalid whence %d", whence);
+ return false;
+ }
+
+ if (!result) {
+ AppLog("seek failed");
+ }
+
+ bufferIndex = bufferLength = 0;
+ return result;
+}
+
+uint32 BadaFileStream::read(void *ptr, uint32 len) {
+ uint32 result = 0;
+ if (!eos()) {
+ if (bufferIndex < bufferLength) {
+ // use existing buffer
+ uint32 available = bufferLength - bufferIndex;
+ if (len <= available) {
+ // use allocation
+ memcpy((byte*)ptr, &buffer[bufferIndex], len);
+ bufferIndex += len;
+ result = len;
+ } else {
+ // use remaining allocation
+ memcpy((byte*)ptr, &buffer[bufferIndex], available);
+ uint32 remaining = len - available;
+ result = available;
+
+ if (remaining) {
+ result += file->Read(((byte*)ptr) + available, remaining);
+ }
+ bufferIndex = bufferLength = 0;
+ }
+ } else if (len < BUFFER_SIZE) {
+ // allocate and use buffer
+ bufferIndex = 0;
+ bufferLength = file->Read(buffer, BUFFER_SIZE);
+ if (bufferLength) {
+ if (bufferLength < len) {
+ len = bufferLength;
+ }
+ memcpy((byte*)ptr, buffer, len);
+ result = bufferIndex = len;
+ }
+ } else {
+ result = file->Read((byte*)ptr, len);
+ bufferIndex = bufferLength = 0;
+ }
+ } else {
+ AppLog("Attempted to read past EOS");
+ }
+ return result;
+}
+
+uint32 BadaFileStream::write(const void *ptr, uint32 len) {
+ result r = file->Write(ptr, len);
+ SetLastResult(r);
+ return (r == E_SUCCESS ? len : 0);
+}
+
+bool BadaFileStream::flush() {
+ logEntered();
+ SetLastResult(file->Flush());
+ return (E_SUCCESS == GetLastResult());
+}
+
+BadaFileStream *BadaFileStream::makeFromPath(const String &path, bool writeMode) {
+ File *ioFile = new File();
+
+ String filePath = path;
+ if (writeMode && (path[0] != '.' && path[0] != '/')) {
+ filePath.Insert(PATH_HOME_X, 0);
+ }
+
+ AppLog("Open file %S", filePath.GetPointer());
+
+ result r = ioFile->Construct(filePath, writeMode ? L"w" : L"r", writeMode);
+ if (r == E_SUCCESS) {
+ return new BadaFileStream(ioFile, writeMode);
+ }
+
+ AppLog("Failed to open file");
+ delete ioFile;
+ return 0;
+}
+
+//
+// converts a bada (wchar) String into a scummVM (char) string
+//
+Common::String fromString(const Osp::Base::String &in) {
+ ByteBuffer *buf = StringUtil::StringToUtf8N(in);
+ Common::String result((const char*)buf->GetPointer());
+ delete buf;
+
+ return result;
+}
+
+//
+// BadaFilesystemNode
+//
+BadaFilesystemNode::BadaFilesystemNode(const Common::String &nodePath) {
+ AppAssert(nodePath.size() > 0);
+ init(nodePath);
+}
+
+BadaFilesystemNode::BadaFilesystemNode(const Common::String &root,
+ const Common::String &nodePath) {
+ // Make sure the string contains no slashes
+ AppAssert(!nodePath.contains('/'));
+
+ // We assume here that path is already normalized (hence don't bother to
+ // call Common::normalizePath on the final path).
+ Common::String newPath(root);
+ if (root.lastChar() != '/') {
+ newPath += '/';
+ }
+ newPath += nodePath;
+
+ init(newPath);
+}
+
+void BadaFilesystemNode::init(const Common::String &nodePath) {
+ // Normalize the path (that is, remove unneeded slashes etc.)
+ _path = Common::normalizePath(nodePath, '/');
+ _displayName = Common::lastPathComponent(_path, '/');
+
+ StringUtil::Utf8ToString(_path.c_str(), _unicodePath);
+ _isVirtualDir = (_path == PATH_ROOT ||
+ _path == PATH_HOME ||
+ _path == PATH_HOME_SHARE ||
+ _path == PATH_HOME_SHARE2 ||
+ _path == PATH_CARD);
+ _isValid = _isVirtualDir || !IsFailed(File::GetAttributes(_unicodePath, _attr));
+}
+
+bool BadaFilesystemNode::exists() const {
+ return _isValid;
+}
+
+bool BadaFilesystemNode::isReadable() const {
+ return _isVirtualDir || _isValid;
+}
+
+bool BadaFilesystemNode::isDirectory() const {
+ return _isVirtualDir || (_isValid && _attr.IsDirectory());
+}
+
+bool BadaFilesystemNode::isWritable() const {
+ bool result = (_isValid && !_isVirtualDir && !_attr.IsDirectory() && !_attr.IsReadOnly());
+ if (_path == PATH_HOME ||
+ _path == PATH_HOME_EXT ||
+ _path == PATH_HOME_SHARE ||
+ _path == PATH_HOME_SHARE2) {
+ result = true;
+ }
+ return result;
+}
+
+AbstractFSNode *BadaFilesystemNode::getChild(const Common::String &n) const {
+ AppAssert(!_path.empty());
+ AppAssert(isDirectory());
+ return new BadaFilesystemNode(_path, n);
+}
+
+bool BadaFilesystemNode::getChildren(AbstractFSList &myList,
+ ListMode mode, bool hidden) const {
+ AppAssert(isDirectory());
+
+ bool result = false;
+
+ if (_isVirtualDir && mode != Common::FSNode::kListFilesOnly) {
+ // present well known BADA file system areas
+ if (_path == PATH_ROOT) {
+ myList.push_back(new BadaFilesystemNode(PATH_HOME));
+ myList.push_back(new BadaFilesystemNode(PATH_HOME_EXT));
+ myList.push_back(new BadaFilesystemNode(PATH_MEDIA));
+ myList.push_back(new BadaFilesystemNode(PATH_CARD));
+ result = true; // no more entries
+ } else if (_path == PATH_CARD) {
+ myList.push_back(new BadaFilesystemNode(PATH_CARD_MEDIA));
+ result = true; // no more entries
+ } else if (_path == PATH_HOME) {
+ // ensure share path is always included
+ myList.push_back(new BadaFilesystemNode(PATH_HOME_SHARE));
+ myList.push_back(new BadaFilesystemNode(PATH_HOME_SHARE2));
+ }
+ }
+
+ if (!result) {
+ DirEnumerator *pDirEnum = 0;
+ Directory *pDir = new Directory();
+
+ // open directory
+ if (IsFailed(pDir->Construct(_unicodePath))) {
+ AppLog("Failed to open directory");
+ } else {
+ // read all directory entries
+ pDirEnum = pDir->ReadN();
+ if (pDirEnum) {
+ result = true;
+ }
+
+ // loop through all directory entries
+ while (pDirEnum && pDirEnum->MoveNext() == E_SUCCESS) {
+ DirEntry dirEntry = pDirEnum->GetCurrentDirEntry();
+
+ // skip 'invisible' files if necessary
+ Osp::Base::String fileName = dirEntry.GetName();
+
+ if (fileName[0] == '.' && !hidden) {
+ continue;
+ }
+
+ // skip '.' and '..' to avoid cycles
+ if ((fileName[0] == '.' && fileName[1] == 0) ||
+ (fileName[0] == '.' && fileName[1] == '.')) {
+ continue;
+ }
+
+ // Honor the chosen mode
+ if ((mode == Common::FSNode::kListFilesOnly && dirEntry.IsDirectory()) ||
+ (mode == Common::FSNode::kListDirectoriesOnly && !dirEntry.IsDirectory())) {
+ continue;
+ }
+ myList.push_back(new BadaFilesystemNode(_path, fromString(fileName)));
+ }
+ }
+
+ // cleanup
+ if (pDirEnum) {
+ delete pDirEnum;
+ }
+
+ // close the opened directory
+ if (pDir) {
+ delete pDir;
+ }
+ }
+
+ return result;
+}
+
+AbstractFSNode *BadaFilesystemNode::getParent() const {
+ logEntered();
+ if (_path == PATH_ROOT) {
+ return 0; // The filesystem root has no parent
+ }
+
+ const char *start = _path.c_str();
+ const char *end = start + _path.size();
+
+ // Strip of the last component. We make use of the fact that at this
+ // point, path is guaranteed to be normalized
+ while (end > start && *(end-1) != '/') {
+ end--;
+ }
+
+ if (end == start) {
+ // This only happens if we were called with a relative path, for which
+ // there simply is no parent.
+ // TODO: We could also resolve this by assuming that the parent is the
+ // current working directory, and returning a node referring to that.
+ return 0;
+ }
+
+ return new BadaFilesystemNode(Common::String(start, end));
+}
+
+Common::SeekableReadStream *BadaFilesystemNode::createReadStream() {
+ Common::SeekableReadStream *result = BadaFileStream::makeFromPath(_unicodePath, false);
+ if (result != NULL) {
+ _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr));
+ }
+ return result;
+}
+
+Common::WriteStream *BadaFilesystemNode::createWriteStream() {
+ Common::WriteStream *result = BadaFileStream::makeFromPath(_unicodePath, true);
+ if (result != NULL) {
+ _isValid = !IsFailed(File::GetAttributes(_unicodePath, _attr));
+ }
+ return result;
+}
diff --git a/backends/platform/bada/fs.h b/backends/platform/bada/fs.h
new file mode 100644
index 0000000000..d7d368ac20
--- /dev/null
+++ b/backends/platform/bada/fs.h
@@ -0,0 +1,82 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef BADA_FILESYSTEM_H
+#define BADA_FILESYSTEM_H
+
+#include <FBaseString.h>
+#include <FBaseUtilStringUtil.h>
+#include <FIoDirectory.h>
+#include <FIoFile.h>
+
+#include "config.h"
+#include "common/scummsys.h"
+#include "common/stream.h"
+#include "backends/fs/abstract-fs.h"
+
+using namespace Osp::Io;
+using namespace Osp::Base;
+using namespace Osp::Base::Utility;
+
+/**
+ * Implementation of the ScummVM file system API based on BADA.
+ *
+ * Parts of this class are documented in the base interface class, AbstractFSNode.
+ */
+class BadaFilesystemNode : public AbstractFSNode {
+public:
+ /**
+ * Creates a BadaFilesystemNode for a given path.
+ *
+ * @param path the path the new node should point to.
+ */
+ BadaFilesystemNode(const Common::String &path);
+
+ Common::String getDisplayName() const { return _displayName; }
+ Common::String getName() const { return _displayName; }
+ Common::String getPath() const { return _path; }
+
+ bool exists() const;
+ bool isDirectory() const;
+ bool isReadable() const;
+ bool isWritable() const;
+
+ AbstractFSNode *getChild(const Common::String &n) const;
+ bool getChildren(AbstractFSList &list, ListMode mode, bool hidden) const;
+ AbstractFSNode *getParent() const;
+
+ Common::SeekableReadStream *createReadStream();
+ Common::WriteStream *createWriteStream();
+
+protected:
+ BadaFilesystemNode(const Common::String &root,
+ const Common::String &p);
+ void init(const Common::String &nodePath);
+
+ Common::String _displayName;
+ Common::String _path;
+ String _unicodePath;
+ bool _isValid;
+ bool _isVirtualDir;
+ FileAttributes _attr;
+};
+
+#endif
diff --git a/backends/platform/bada/graphics.cpp b/backends/platform/bada/graphics.cpp
new file mode 100644
index 0000000000..4ab90a633f
--- /dev/null
+++ b/backends/platform/bada/graphics.cpp
@@ -0,0 +1,315 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "graphics/fontman.h"
+
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/system.h"
+#include "backends/platform/bada/graphics.h"
+
+//
+// BadaGraphicsManager
+//
+BadaGraphicsManager::BadaGraphicsManager(BadaAppForm *appForm) :
+ _appForm(appForm),
+ _eglDisplay(EGL_DEFAULT_DISPLAY),
+ _eglSurface(EGL_NO_SURFACE),
+ _eglConfig(0),
+ _eglContext(EGL_NO_CONTEXT),
+ _initState(true) {
+ assert(appForm != NULL);
+ _videoMode.fullscreen = true;
+ _videoMode.antialiasing = true;
+}
+
+const Graphics::Font *BadaGraphicsManager::getFontOSD() {
+ return FontMan.getFontByUsage(Graphics::FontManager::kBigGUIFont);
+}
+
+bool BadaGraphicsManager::moveMouse(int16 &x, int16 &y) {
+ int16 currentX = _cursorState.x;
+ int16 currentY = _cursorState.y;
+
+ // save the current hardware coordinates
+ _cursorState.x = x;
+ _cursorState.y = y;
+
+ // return x/y as game coordinates
+ adjustMousePosition(x, y);
+
+ // convert current x/y to game coordinates
+ adjustMousePosition(currentX, currentY);
+
+ // return whether game coordinates have changed
+ return (currentX != x || currentY != y);
+}
+
+Common::List<Graphics::PixelFormat> BadaGraphicsManager::getSupportedFormats() const {
+ logEntered();
+
+ Common::List<Graphics::PixelFormat> res;
+ res.push_back(Graphics::PixelFormat(2, 4, 4, 4, 4, 12, 8, 4, 0));
+ res.push_back(Graphics::PixelFormat(2, 5, 6, 5, 0, 11, 5, 0, 0));
+ res.push_back(Graphics::PixelFormat(2, 5, 5, 5, 1, 11, 6, 1, 0));
+ res.push_back(Graphics::PixelFormat::createFormatCLUT8());
+ return res;
+}
+
+bool BadaGraphicsManager::hasFeature(OSystem::Feature f) {
+ bool result = (f == OSystem::kFeatureFullscreenMode ||
+ f == OSystem::kFeatureVirtualKeyboard ||
+ OpenGLGraphicsManager::hasFeature(f));
+ return result;
+}
+
+void BadaGraphicsManager::setFeatureState(OSystem::Feature f, bool enable) {
+ OpenGLGraphicsManager::setFeatureState(f, enable);
+}
+
+void BadaGraphicsManager::setReady() {
+ _initState = false;
+}
+
+void BadaGraphicsManager::updateScreen() {
+ if (_transactionMode == kTransactionNone) {
+ internUpdateScreen();
+ }
+}
+
+bool BadaGraphicsManager::loadEgl() {
+ logEntered();
+
+ EGLint numConfigs = 1;
+ EGLint eglConfigList[] = {
+ EGL_RED_SIZE, 5,
+ EGL_GREEN_SIZE, 6,
+ EGL_BLUE_SIZE, 5,
+ EGL_ALPHA_SIZE, 0,
+ EGL_DEPTH_SIZE, 8,
+ EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
+ EGL_RENDERABLE_TYPE, EGL_OPENGL_ES_BIT,
+ EGL_NONE
+ };
+
+ EGLint eglContextList[] = {
+ EGL_CONTEXT_CLIENT_VERSION, 1,
+ EGL_NONE
+ };
+
+ eglBindAPI(EGL_OPENGL_ES_API);
+
+ if (_eglDisplay) {
+ unloadGFXMode();
+ }
+
+ _eglDisplay = eglGetDisplay((EGLNativeDisplayType) EGL_DEFAULT_DISPLAY);
+ if (EGL_NO_DISPLAY == _eglDisplay) {
+ systemError("eglGetDisplay() failed");
+ return false;
+ }
+
+ if (EGL_FALSE == eglInitialize(_eglDisplay, NULL, NULL) ||
+ EGL_SUCCESS != eglGetError()) {
+ systemError("eglInitialize() failed");
+ return false;
+ }
+
+ if (EGL_FALSE == eglChooseConfig(_eglDisplay, eglConfigList,
+ &_eglConfig, 1, &numConfigs) ||
+ EGL_SUCCESS != eglGetError()) {
+ systemError("eglChooseConfig() failed");
+ return false;
+ }
+
+ if (!numConfigs) {
+ systemError("eglChooseConfig() failed. Matching config does not exist \n");
+ return false;
+ }
+
+ _eglSurface = eglCreateWindowSurface(_eglDisplay, _eglConfig,
+ (EGLNativeWindowType)_appForm, NULL);
+ if (EGL_NO_SURFACE == _eglSurface || EGL_SUCCESS != eglGetError()) {
+ systemError("eglCreateWindowSurface() failed. EGL_NO_SURFACE");
+ return false;
+ }
+
+ _eglContext = eglCreateContext(_eglDisplay, _eglConfig,
+ EGL_NO_CONTEXT, eglContextList);
+ if (EGL_NO_CONTEXT == _eglContext ||
+ EGL_SUCCESS != eglGetError()) {
+ systemError("eglCreateContext() failed");
+ return false;
+ }
+
+ if (false == eglMakeCurrent(_eglDisplay, _eglSurface, _eglSurface, _eglContext) ||
+ EGL_SUCCESS != eglGetError()) {
+ systemError("eglMakeCurrent() failed");
+ return false;
+ }
+
+ logLeaving();
+ return true;
+}
+
+bool BadaGraphicsManager::loadGFXMode() {
+ logEntered();
+
+ if (!loadEgl()) {
+ unloadGFXMode();
+ return false;
+ }
+
+ int x, y, width, height;
+ _appForm->GetBounds(x, y, width, height);
+ _videoMode.overlayWidth = _videoMode.hardwareWidth = width;
+ _videoMode.overlayHeight = _videoMode.hardwareHeight = height;
+ _videoMode.scaleFactor = 3; // for proportional sized cursor in the launcher
+
+ AppLog("screen size: %dx%d", _videoMode.hardwareWidth, _videoMode.hardwareHeight);
+ return OpenGLGraphicsManager::loadGFXMode();
+}
+
+void BadaGraphicsManager::loadTextures() {
+ logEntered();
+
+ OpenGLGraphicsManager::loadTextures();
+
+ // prevent image skew in some games, see:
+ // http://www.opengl.org/resources/features/KilgardTechniques/oglpitfall
+ // note: this did not solve the pixel border problem in refreshGameScreen()
+ glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
+}
+
+void BadaGraphicsManager::internUpdateScreen() {
+ if (!_initState) {
+ OpenGLGraphicsManager::internUpdateScreen();
+ eglSwapBuffers(_eglDisplay, _eglSurface);
+ } else {
+ showSplash();
+ }
+}
+
+void BadaGraphicsManager::unloadGFXMode() {
+ logEntered();
+
+ if (EGL_NO_DISPLAY != _eglDisplay) {
+ eglMakeCurrent(_eglDisplay, NULL, NULL, NULL);
+
+ if (_eglContext != EGL_NO_CONTEXT) {
+ eglDestroyContext(_eglDisplay, _eglContext);
+ _eglContext = EGL_NO_CONTEXT;
+ }
+
+ if (_eglSurface != EGL_NO_SURFACE) {
+ eglDestroySurface(_eglDisplay, _eglSurface);
+ _eglSurface = EGL_NO_SURFACE;
+ }
+
+ eglTerminate(_eglDisplay);
+ _eglDisplay = EGL_NO_DISPLAY;
+ }
+
+ _eglConfig = NULL;
+
+ OpenGLGraphicsManager::unloadGFXMode();
+ logLeaving();
+}
+
+void BadaGraphicsManager::refreshGameScreen() {
+ if (_screenNeedsRedraw)
+ _screenDirtyRect = Common::Rect(0, 0, _screenData.w, _screenData.h);
+
+ int x = _screenDirtyRect.left;
+ int y = _screenDirtyRect.top;
+ int w = _screenDirtyRect.width();
+ int h = _screenDirtyRect.height();
+
+ if (_screenData.format.bytesPerPixel == 1) {
+ // Create a temporary RGB888 surface
+ int sw = w;
+ int sh = h;
+
+ if (_videoMode.screenWidth == w && _videoMode.screenHeight == h) {
+ // The extra border prevents random pixels from appearing in the right and bottom
+ // screen column/row. Not sure whether this should be applied to opengl-graphics.cpp
+ sw = w + 1;
+ sh = h + 1;
+ }
+
+ byte *surface = new byte[sw * sh * 3];
+
+ // Convert the paletted buffer to RGB888
+ const byte *src = (byte *)_screenData.pixels + y * _screenData.pitch;
+ src += x * _screenData.format.bytesPerPixel;
+ byte *dst = surface;
+ for (int i = 0; i < h; i++) {
+ for (int j = 0; j < w; j++) {
+ dst[0] = _gamePalette[src[j] * 3];
+ dst[1] = _gamePalette[src[j] * 3 + 1];
+ dst[2] = _gamePalette[src[j] * 3 + 2];
+ dst += 3;
+ }
+ src += _screenData.pitch;
+ }
+
+ // Update the texture
+ _gameTexture->updateBuffer(surface, w * 3, x, y, sw, sh);
+
+ // Free the temp surface
+ delete[] surface;
+ } else {
+ // Update the texture
+ _gameTexture->updateBuffer((byte *)_screenData.pixels + y * _screenData.pitch +
+ x * _screenData.format.bytesPerPixel, _screenData.pitch, x, y, w, h);
+ }
+
+ _screenNeedsRedraw = false;
+ _screenDirtyRect = Common::Rect();
+}
+
+// display a simple splash screen until launcher is ready
+void BadaGraphicsManager::showSplash() {
+ Canvas canvas;
+ canvas.Construct();
+ canvas.SetBackgroundColor(Color::COLOR_BLACK);
+ canvas.Clear();
+
+ int x = _videoMode.hardwareWidth / 3;
+ int y = _videoMode.hardwareHeight / 3;
+
+ Font *pFont = new Font();
+ pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 55);
+ canvas.SetFont(*pFont);
+ canvas.SetForegroundColor(Color::COLOR_GREEN);
+ canvas.DrawText(Point(x, y), L"ScummVM");
+ delete pFont;
+
+ pFont = new Font();
+ pFont->Construct(FONT_STYLE_ITALIC | FONT_STYLE_BOLD, 35);
+ canvas.SetFont(*pFont);
+ canvas.SetForegroundColor(Color::COLOR_WHITE);
+ canvas.DrawText(Point(x + 70, y + 50), L"Loading ...");
+ delete pFont;
+
+ canvas.Show();
+
+}
diff --git a/backends/platform/bada/graphics.h b/backends/platform/bada/graphics.h
new file mode 100644
index 0000000000..5e49419979
--- /dev/null
+++ b/backends/platform/bada/graphics.h
@@ -0,0 +1,73 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_GRAPHICS_H
+#define BADA_GRAPHICS_H
+
+#include <FBase.h>
+#include <FGraphics.h>
+#include <FApp.h>
+#include <FGraphicsOpengl.h>
+#include <FSystem.h>
+#include <FUi.h>
+
+#include "config.h"
+#include "backends/graphics/opengl/opengl-graphics.h"
+#include "graphics/font.h"
+#include "backends/platform/bada/form.h"
+
+using namespace Osp::Graphics;
+using namespace Osp::Graphics::Opengl;
+using namespace Osp::App;
+
+class BadaGraphicsManager : public OpenGLGraphicsManager {
+public:
+ BadaGraphicsManager(BadaAppForm *appForm);
+
+ Common::List<Graphics::PixelFormat> getSupportedFormats() const;
+ bool hasFeature(OSystem::Feature f);
+ void updateScreen();
+ void setFeatureState(OSystem::Feature f, bool enable);
+ void setReady();
+ bool isReady() { return !_initState; }
+ const Graphics::Font *getFontOSD();
+ bool moveMouse(int16 &x, int16 &y);
+
+private:
+ void internUpdateScreen();
+ bool loadGFXMode();
+ void loadTextures();
+ void unloadGFXMode();
+ void refreshGameScreen();
+ void setInternalMousePosition(int x, int y) {}
+ void showSplash();
+
+ bool loadEgl();
+ BadaAppForm *_appForm;
+ EGLDisplay _eglDisplay;
+ EGLSurface _eglSurface;
+ EGLConfig _eglConfig;
+ EGLContext _eglContext;
+ bool _initState;
+};
+
+#endif
diff --git a/backends/platform/bada/main.cpp b/backends/platform/bada/main.cpp
new file mode 100644
index 0000000000..8c40f24dd1
--- /dev/null
+++ b/backends/platform/bada/main.cpp
@@ -0,0 +1,67 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <FBase.h>
+#include <FApp.h>
+#include <FSystem.h>
+
+#include "backends/platform/bada/portdefs.h"
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/system.h"
+#include "backends/platform/bada/application.h"
+
+using namespace Osp::Base;
+using namespace Osp::Base::Collection;
+
+C_LINKAGE_BEGIN
+
+_EXPORT_ int OspMain(int argc, char *pArgv[]);
+
+/**
+ * The entry function of bada application called by the operating system.
+ */
+int OspMain(int argc, char *pArgv[]) {
+ result r = E_SUCCESS;
+
+ AppLog("Application started.");
+ ArrayList *pArgs = new ArrayList();
+ pArgs->Construct();
+
+ for (int i = 0; i < argc; i++) {
+ pArgs->Add(*(new String(pArgv[i])));
+ }
+
+ r = Osp::App::Application::Execute(BadaScummVM::createInstance, pArgs);
+ if (IsFailed(r)) {
+ r &= 0x0000FFFF;
+ }
+
+ pArgs->RemoveAll(true);
+ delete pArgs;
+ AppLog("Application finished.");
+
+ return static_cast<int>(r);
+}
+
+C_LINKAGE_END
+
+
diff --git a/backends/platform/bada/missing.cpp b/backends/platform/bada/missing.cpp
new file mode 100644
index 0000000000..a5433ec61a
--- /dev/null
+++ b/backends/platform/bada/missing.cpp
@@ -0,0 +1,113 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <FApp.h>
+#include <FGraphics.h>
+#include <FUi.h>
+#include <FSystem.h>
+#include <FBase.h>
+
+#include "backends/platform/bada/portdefs.h"
+
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+#include <ctype.h>
+
+#define BUF_SIZE 255
+
+void systemError(const char *message);
+
+C_LINKAGE_BEGIN
+
+int __errno; // for overridden method in saves/default/default-saves.cpp
+
+void __assert_func(const char *file, int line,
+ const char *func, const char *err) {
+ char buffer[BUF_SIZE];
+ snprintf(buffer, sizeof(buffer), "%s %d %s %s", file, line, func, err);
+ systemError(buffer);
+}
+
+void stderr_fprintf(void*, const char *format, ...) {
+ va_list ap;
+ char buffer[BUF_SIZE];
+
+ va_start(ap, format);
+ vsnprintf(buffer, sizeof(buffer), format, ap);
+ va_end(ap);
+
+ AppLog(buffer);
+}
+
+void stderr_vfprintf(void*, const char *format, va_list ap) {
+ char buffer[BUF_SIZE];
+ vsnprintf(buffer, sizeof(buffer), format, ap);
+ AppLog(buffer);
+}
+
+int printf(const char *format, ...) {
+ int result = 0;
+ va_list ap;
+ char buffer[BUF_SIZE];
+
+ va_start(ap, format);
+ result = vsnprintf(buffer, sizeof(buffer), format, ap);
+ va_end(ap);
+
+ AppLog(buffer);
+
+ return result;
+}
+
+int sprintf(char *str, const char *format, ...) {
+ va_list ap;
+ int result;
+ char buffer[BUF_SIZE];
+
+ va_start(ap, format);
+ result = vsnprintf(buffer, sizeof(buffer), format, ap);
+ va_end(ap);
+
+ strcpy(str, buffer);
+
+ return result;
+}
+
+char *strdup(const char *strSource) {
+ char *buffer;
+ int len = strlen(strSource) + 1;
+ buffer = (char*)malloc(len);
+ if (buffer) {
+ memcpy(buffer, strSource, len);
+ }
+ return buffer;
+}
+
+int vsprintf(char *str, const char *format, va_list ap) {
+ char buffer[BUF_SIZE];
+ int result = vsnprintf(buffer, sizeof(buffer), format, ap);
+ strcpy(str, buffer);
+ return result;
+}
+
+C_LINKAGE_END
diff --git a/backends/platform/bada/portdefs.h b/backends/platform/bada/portdefs.h
new file mode 100644
index 0000000000..e85d578678
--- /dev/null
+++ b/backends/platform/bada/portdefs.h
@@ -0,0 +1,84 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef PORT_DEFS_H
+#define PORT_DEFS_H
+
+#include <assert.h>
+#include <stdarg.h>
+#include <string.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <math.h>
+
+#define M_PI 3.14159265358979323846
+
+#ifdef __cplusplus
+ #include <ctype.h> // causes a link error when building c programs
+ #define C_LINKAGE_BEGIN extern "C" {
+ #define C_LINKAGE_END }
+#else
+ #define C_LINKAGE_BEGIN
+ #define C_LINKAGE_END
+#endif
+
+C_LINKAGE_BEGIN
+
+// for libFLAC
+#undef fseeko
+#undef ftello
+#define fseeko fseek
+#define ftello ftell
+
+// overcome use of fprintf since bada/newlib (1.2) does not
+// support stderr/stdout (undefined reference to `_impure_ptr').
+
+void stderr_fprintf(void*, const char *format, ...);
+void stderr_vfprintf(void*, const char *format, va_list ap);
+
+#undef fprintf
+#undef vfprintf
+#undef stderr
+#undef stdout
+#undef stdin
+#undef fputs
+#undef fflush
+
+#define stderr (void*)0
+#define stdout (void*)1
+#define stdin (void*)2
+#define fputs(str, file)
+#define fflush(file)
+#define sscanf simple_sscanf
+#define fprintf stderr_fprintf
+#define vfprintf stderr_vfprintf
+
+int printf(const char *format, ...);
+int sprintf(char *str, const char *format, ...);
+int simple_sscanf(const char *buffer, const char *format, ...);
+char *strdup(const char *s1);
+int vsprintf(char *str, const char *format, va_list ap);
+
+C_LINKAGE_END
+
+#endif
diff --git a/backends/platform/bada/sscanf.cpp b/backends/platform/bada/sscanf.cpp
new file mode 100644
index 0000000000..4ef964b47e
--- /dev/null
+++ b/backends/platform/bada/sscanf.cpp
@@ -0,0 +1,182 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <string.h>
+#include <ctype.h>
+
+//
+// simple sscanf replacement to match scummvm usage patterns
+//
+
+bool scanInt(const char **in, va_list *ap, int max) {
+ while (**in && (**in == ' ' || **in == '0')) {
+ (*in)++;
+ }
+
+ int *arg = va_arg(*ap, int*);
+ char *end;
+ long n = strtol(*in, &end, 0);
+
+ bool err = false;
+ if (end == *in || (max > 0 && (end - *in) > max)) {
+ err = true;
+ } else {
+ *arg = (int)n;
+ *in = end;
+ }
+ return err;
+}
+
+bool scanHex(const char **in, va_list *ap) {
+ unsigned *arg = va_arg(*ap, unsigned*);
+ char *end;
+ long n = strtol(*in, &end, 16);
+ if (end == *in) {
+ return true;
+ }
+
+ *in = end;
+ *arg = (unsigned) n;
+ return false;
+}
+
+bool scanString(const char **in, va_list *ap) {
+ char *arg = va_arg(*ap, char*);
+ while (**in && **in != ' ' && **in != '\n' && **in != '\t') {
+ *arg = **in;
+ arg++;
+ (*in)++;
+ }
+ *arg = '\0';
+ (*in)++;
+ return false;
+}
+
+bool scanStringUntil(const char **in, va_list *ap, char c_end) {
+ char *arg = va_arg(*ap, char*);
+ while (**in && **in != c_end) {
+ *arg = **in;
+ *arg++;
+ (*in)++;
+ }
+ *arg = 0;
+ (*in)++;
+ return false;
+}
+
+bool scanChar(const char **in, va_list *ap) {
+ char *arg = va_arg(*ap, char*);
+ if (**in) {
+ *arg = **in;
+ (*in)++;
+ }
+ return false;
+}
+
+extern "C" int simple_sscanf(const char *input, const char *format, ...) {
+ va_list ap;
+ int result = 0;
+ const char *next = input;
+
+ va_start(ap, format);
+
+ while (*format) {
+ if (*format == '%') {
+ format++;
+ int max = 0;
+ while (isdigit(*format)) {
+ max = (max * 10) + (*format - '0');
+ format++;
+ }
+
+ bool err = false;
+ switch (*format++) {
+ case 'c':
+ err = scanChar(&next, &ap);
+ break;
+ case 'd':
+ case 'u':
+ err = scanInt(&next, &ap, max);
+ break;
+ case 'x':
+ err = scanHex(&next, &ap);
+ break;
+ case 's':
+ err = scanString(&next, &ap);
+ break;
+ case '[':
+ // assume %[^c]
+ if ('^' != *format) {
+ err = true;
+ } else {
+ format++;
+ if (*format && *(format+1) == ']') {
+ err = scanStringUntil(&next, &ap, *format);
+ format += 2;
+ } else {
+ err = true;
+ }
+ }
+ break;
+ default:
+ err = true;
+ break;
+ }
+
+ if (err) {
+ break;
+ } else {
+ result++;
+ }
+ } else if (*format++ != *next++) {
+ // match input
+ break;
+ }
+ }
+
+ va_end(ap);
+ return result;
+}
+
+#if defined(TEST)
+int main(int argc, char *pArgv[]) {
+ int x,y,h;
+ char buffer[100];
+ unsigned u;
+ char c;
+ strcpy(buffer, "hello");
+ char *b = buffer;
+
+ // strcpy(buffer, "in the buffer something");
+ if (simple_sscanf("CAT 123x-10 0x100 FONT large 1 enough\n 123456.AUD $",
+ "CAT %dx%d %x FONT %[^\n] %06u.AUD %c",
+ &x, &y, &h, b, &u, &c) != 6) {
+ printf("Failed\n");
+ } else {
+ printf("Success %d %d %d %s %d '%c'\n", x, y, h, buffer, u, c);
+ }
+ return 0;
+}
+#endif
diff --git a/backends/platform/bada/system.cpp b/backends/platform/bada/system.cpp
new file mode 100644
index 0000000000..37d7028687
--- /dev/null
+++ b/backends/platform/bada/system.cpp
@@ -0,0 +1,499 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include <FUiCtrlMessageBox.h>
+
+#include "common/config-manager.h"
+#include "common/file.h"
+#include "engines/engine.h"
+#include "graphics/font.h"
+#include "graphics/fontman.h"
+#include "graphics/fonts/bdf.h"
+#include "backends/saves/default/default-saves.h"
+#include "backends/events/default/default-events.h"
+#include "backends/audiocd/default/default-audiocd.h"
+#include "backends/mutex/mutex.h"
+#include "backends/fs/fs-factory.h"
+#include "backends/timer/bada/timer.h"
+
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/system.h"
+#include "backends/platform/bada/graphics.h"
+#include "backends/platform/bada/audio.h"
+
+using namespace Osp::Base;
+using namespace Osp::Base::Runtime;
+using namespace Osp::Ui::Controls;
+
+#define DEFAULT_CONFIG_FILE "/Home/scummvm.ini"
+#define MUTEX_BUFFER_SIZE 5
+
+//
+// BadaFilesystemFactory
+//
+class BadaFilesystemFactory : public FilesystemFactory {
+ AbstractFSNode *makeRootFileNode() const;
+ AbstractFSNode *makeCurrentDirectoryFileNode() const;
+ AbstractFSNode *makeFileNodePath(const Common::String &path) const;
+};
+
+AbstractFSNode *BadaFilesystemFactory::makeRootFileNode() const {
+ return new BadaFilesystemNode("/");
+}
+
+AbstractFSNode *BadaFilesystemFactory::makeCurrentDirectoryFileNode() const {
+ return new BadaFilesystemNode("/Home");
+}
+
+AbstractFSNode *BadaFilesystemFactory::makeFileNodePath(const Common::String &path) const {
+ AppAssert(!path.empty());
+ return new BadaFilesystemNode(path);
+}
+
+//
+// BadaSaveFileManager
+//
+struct BadaSaveFileManager : public DefaultSaveFileManager {
+ bool removeSavefile(const Common::String &filename);
+};
+
+bool BadaSaveFileManager::removeSavefile(const Common::String &filename) {
+ Common::String savePathName = getSavePath();
+
+ checkPath(Common::FSNode(savePathName));
+ if (getError().getCode() != Common::kNoError) {
+ return false;
+ }
+
+ // recreate FSNode since checkPath may have changed/created the directory
+ Common::FSNode savePath(savePathName);
+ Common::FSNode file = savePath.getChild(filename);
+
+ String unicodeFileName;
+ StringUtil::Utf8ToString(file.getPath().c_str(), unicodeFileName);
+
+ switch (Osp::Io::File::Remove(unicodeFileName)) {
+ case E_SUCCESS:
+ return true;
+
+ case E_ILLEGAL_ACCESS:
+ setError(Common::kWritePermissionDenied, "Search or write permission denied: " +
+ file.getName());
+ break;
+
+ default:
+ setError(Common::kPathDoesNotExist, "removeSavefile: '" + file.getName() +
+ "' does not exist or path is invalid");
+ break;
+ }
+
+ return false;
+}
+
+//
+// BadaMutexManager
+//
+struct BadaMutexManager : public MutexManager {
+ BadaMutexManager();
+ ~BadaMutexManager();
+ OSystem::MutexRef createMutex();
+ void lockMutex(OSystem::MutexRef mutex);
+ void unlockMutex(OSystem::MutexRef mutex);
+ void deleteMutex(OSystem::MutexRef mutex);
+private:
+ Mutex *buffer[MUTEX_BUFFER_SIZE];
+};
+
+BadaMutexManager::BadaMutexManager() {
+ for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) {
+ buffer[i] = NULL;
+ }
+}
+
+BadaMutexManager::~BadaMutexManager() {
+ for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) {
+ if (buffer[i] != NULL) {
+ delete buffer[i];
+ }
+ }
+}
+
+OSystem::MutexRef BadaMutexManager::createMutex() {
+ Mutex *mutex = new Mutex();
+ mutex->Create();
+
+ for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) {
+ if (buffer[i] == NULL) {
+ buffer[i] = mutex;
+ break;
+ }
+ }
+
+ return (OSystem::MutexRef) mutex;
+}
+
+void BadaMutexManager::lockMutex(OSystem::MutexRef mutex) {
+ Mutex *m = (Mutex*)mutex;
+ m->Acquire();
+}
+
+void BadaMutexManager::unlockMutex(OSystem::MutexRef mutex) {
+ Mutex *m = (Mutex*)mutex;
+ m->Release();
+}
+
+void BadaMutexManager::deleteMutex(OSystem::MutexRef mutex) {
+ Mutex *m = (Mutex*)mutex;
+
+ for (int i = 0; i < MUTEX_BUFFER_SIZE; i++) {
+ if (buffer[i] == m) {
+ buffer[i] = NULL;
+ }
+ }
+
+ delete m;
+}
+
+//
+// BadaEventManager
+//
+struct BadaEventManager : public DefaultEventManager {
+ BadaEventManager(Common::EventSource *boss);
+ void init();
+ int shouldQuit() const;
+};
+
+BadaEventManager::BadaEventManager(Common::EventSource *boss) :
+ DefaultEventManager(boss) {
+}
+
+void BadaEventManager::init() {
+ DefaultEventManager::init();
+
+ // theme and vkbd should have now loaded - clear the splash screen
+ BadaSystem *system = (BadaSystem *)g_system;
+ BadaGraphicsManager *graphics = system->getGraphics();
+ if (graphics) {
+ graphics->setReady();
+ graphics->updateScreen();
+ }
+}
+
+int BadaEventManager::shouldQuit() const {
+ BadaSystem *system = (BadaSystem *)g_system;
+ return DefaultEventManager::shouldQuit() || system->isClosing();
+}
+
+//
+// BadaSystem
+//
+BadaSystem::BadaSystem(BadaAppForm *appForm) :
+ _appForm(appForm),
+ _audioThread(0),
+ _epoch(0) {
+}
+
+result BadaSystem::Construct(void) {
+ logEntered();
+
+ _fsFactory = new BadaFilesystemFactory();
+ if (!_fsFactory) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ return E_SUCCESS;
+}
+
+BadaSystem::~BadaSystem() {
+ logEntered();
+}
+
+result BadaSystem::initModules() {
+ logEntered();
+
+ _mutexManager = new BadaMutexManager();
+ if (!_mutexManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _timerManager = new BadaTimerManager();
+ if (!_timerManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _savefileManager = new BadaSaveFileManager();
+ if (!_savefileManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _graphicsManager = (GraphicsManager*) new BadaGraphicsManager(_appForm);
+ if (!_graphicsManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ // depends on _graphicsManager when ENABLE_VKEYBD enabled
+ _eventManager = new BadaEventManager(this);
+ if (!_eventManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _audioThread = new AudioThread();
+ if (!_audioThread) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _mixer = _audioThread->Construct(this);
+ if (!_mixer) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ _audiocdManager = (AudioCDManager*) new DefaultAudioCDManager();
+ if (!_audiocdManager) {
+ return E_OUT_OF_MEMORY;
+ }
+
+ if (IsFailed(_audioThread->Start())) {
+ AppLog("Failed to start audio thread");
+ return E_OUT_OF_MEMORY;
+ }
+
+ logLeaving();
+ return E_SUCCESS;
+}
+
+void BadaSystem::initBackend() {
+ logEntered();
+
+ // allow translations and game .DAT files to be found
+ ConfMan.set("extrapath", "/Res");
+
+ // use the mobile device theme
+ ConfMan.set("gui_theme", "/Res/scummmobile");
+
+ // allow bada virtual keypad pack to be found
+ ConfMan.set("vkeybdpath", "/Res/vkeybd_bada");
+ ConfMan.set("vkeybd_pack_name", "vkeybd_bada");
+
+ // set default save path to writable area
+ if (!ConfMan.hasKey("savepath")) {
+ ConfMan.set("savepath", "/Home/Share");
+ }
+
+ // default to no auto-save
+ if (!ConfMan.hasKey("autosave_period")) {
+ ConfMan.setInt("autosave_period", 0);
+ }
+
+ ConfMan.registerDefault("fullscreen", true);
+ ConfMan.registerDefault("aspect_ratio", true);
+ ConfMan.setBool("confirm_exit", false);
+
+ Osp::System::SystemTime::GetTicks(_epoch);
+
+ if (E_SUCCESS != initModules()) {
+ AppLog("initModules failed");
+ } else {
+ OSystem::initBackend();
+ }
+
+ // replace kBigGUIFont using the large font from the scummmobile theme
+ Common::File fontFile;
+ Common::String fileName = "/Res/scummmobile/helvB14-ASCII.fcc";
+ BadaFilesystemNode file(fileName);
+ if (file.exists()) {
+ Common::SeekableReadStream *stream = file.createReadStream();
+ if (stream) {
+ if (fontFile.open(stream, fileName)) {
+ Graphics::BdfFont *font = Graphics::BdfFont::loadFromCache(fontFile);
+ if (font) {
+ // use this font for the vkbd and on-screen messages
+ FontMan.setFont(Graphics::FontManager::kBigGUIFont, font);
+ }
+ }
+ }
+ }
+
+ logLeaving();
+}
+
+void BadaSystem::destroyBackend() {
+ closeAudio();
+
+ delete _graphicsManager;
+ _graphicsManager = 0;
+
+ delete _savefileManager;
+ _savefileManager = 0;
+
+ delete _fsFactory;
+ _fsFactory = 0;
+
+ delete _mixer;
+ _mixer = 0;
+
+ delete _audiocdManager;
+ _audiocdManager = 0;
+
+ delete _timerManager;
+ _timerManager = 0;
+
+ delete _eventManager;
+ _eventManager = 0;
+
+ delete _mutexManager;
+ _mutexManager = 0;
+}
+
+bool BadaSystem::pollEvent(Common::Event &event) {
+ return _appForm->pollEvent(event);
+}
+
+uint32 BadaSystem::getMillis() {
+ long long result, ticks = 0;
+ Osp::System::SystemTime::GetTicks(ticks);
+ result = ticks - _epoch;
+ return result;
+}
+
+void BadaSystem::delayMillis(uint msecs) {
+ if (!_appForm->isClosing()) {
+ Thread::Sleep(msecs);
+ }
+}
+
+void BadaSystem::updateScreen() {
+ if (_graphicsManager != NULL) {
+ _graphicsManager->updateScreen();
+ }
+}
+
+void BadaSystem::getTimeAndDate(TimeDate &td) const {
+ DateTime currentTime;
+
+ if (E_SUCCESS == Osp::System::SystemTime::GetCurrentTime(currentTime)) {
+ td.tm_sec = currentTime.GetSecond();
+ td.tm_min = currentTime.GetMinute();
+ td.tm_hour = currentTime.GetHour();
+ td.tm_mday = currentTime.GetDay();
+ td.tm_mon = currentTime.GetMonth();
+ td.tm_year = currentTime.GetYear();
+ }
+}
+
+void BadaSystem::fatalError() {
+ systemError("ScummVM: Fatal internal error.");
+}
+
+void BadaSystem::exitSystem() {
+ if (_appForm) {
+ closeAudio();
+ closeGraphics();
+ _appForm->exitSystem();
+ }
+}
+
+void BadaSystem::logMessage(LogMessageType::Type type, const char *message) {
+ if (type == LogMessageType::kError) {
+ systemError(message);
+ } else {
+ AppLog(message);
+ }
+}
+
+Common::SeekableReadStream *BadaSystem::createConfigReadStream() {
+ BadaFilesystemNode file(DEFAULT_CONFIG_FILE);
+ return file.createReadStream();
+}
+
+Common::WriteStream *BadaSystem::createConfigWriteStream() {
+ BadaFilesystemNode file(DEFAULT_CONFIG_FILE);
+ return file.createWriteStream();
+}
+
+void BadaSystem::closeAudio() {
+ if (_audioThread) {
+ _audioThread->Stop();
+ _audioThread->Join();
+ delete _audioThread;
+ _audioThread = 0;
+ }
+}
+
+void BadaSystem::closeGraphics() {
+ if (_graphicsManager) {
+ delete _graphicsManager;
+ _graphicsManager = 0;
+ }
+}
+
+void BadaSystem::setMute(bool on) {
+ if (_audioThread) {
+ _audioThread->setMute(on);
+ }
+}
+
+int BadaSystem::setVolume(bool up, bool minMax) {
+ int level = -1;
+ if (_audioThread) {
+ level = _audioThread->setVolume(up, minMax);
+ }
+ return level;
+}
+
+//
+// create the ScummVM system
+//
+BadaAppForm *systemStart(Osp::App::Application *app) {
+ logEntered();
+
+ BadaAppForm *appForm = new BadaAppForm();
+ if (!appForm) {
+ AppLog("Failed to create appForm");
+ return NULL;
+ }
+
+ if (E_SUCCESS != appForm->Construct() ||
+ E_SUCCESS != app->GetAppFrame()->GetFrame()->AddControl(*appForm)) {
+ delete appForm;
+ AppLog("Failed to construct appForm");
+ return NULL;
+ }
+
+ return appForm;
+}
+
+//
+// display a fatal error notification
+//
+void systemError(const char *message) {
+ AppLog("Fatal system error: %s", message);
+
+ ArrayList *args = new ArrayList();
+ args->Construct();
+ args->Add(*(new String(message)));
+ Application::GetInstance()->SendUserEvent(USER_MESSAGE_EXIT_ERR, args);
+
+ if (g_system) {
+ BadaSystem *system = (BadaSystem *)g_system;
+ system->exitSystem();
+ }
+}
diff --git a/backends/platform/bada/system.h b/backends/platform/bada/system.h
new file mode 100644
index 0000000000..a091f952e5
--- /dev/null
+++ b/backends/platform/bada/system.h
@@ -0,0 +1,101 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_SYSTEM_H
+#define BADA_SYSTEM_H
+
+#include <FApp.h>
+#include <FGraphics.h>
+#include <FUi.h>
+#include <FSystem.h>
+#include <FBase.h>
+#include <FIoFile.h>
+
+#include "config.h"
+#include "common/scummsys.h"
+#include "backends/modular-backend.h"
+
+#include "backends/platform/bada/fs.h"
+#include "backends/platform/bada/form.h"
+#include "backends/platform/bada/audio.h"
+#include "backends/platform/bada/graphics.h"
+
+#if defined(_DEBUG)
+#define logEntered() AppLog("%s entered (%s %d)", \
+ __FUNCTION__, __FILE__, __LINE__);
+#define logLeaving() AppLog("%s leaving (%s %d)", \
+ __FUNCTION__, __FILE__, __LINE__);
+#else
+#define logEntered()
+#define logLeaving()
+#endif
+
+BadaAppForm *systemStart(Osp::App::Application *app);
+void systemError(const char *message);
+
+#define USER_MESSAGE_EXIT 1000
+#define USER_MESSAGE_EXIT_ERR 1001
+
+//
+// BadaSystem
+//
+class BadaSystem : public ModularBackend,
+ Common::EventSource {
+public:
+ BadaSystem(BadaAppForm *appForm);
+ ~BadaSystem();
+
+ result Construct();
+ void closeAudio();
+ void closeGraphics();
+ void destroyBackend();
+ void setMute(bool on);
+ int setVolume(bool up, bool minMax);
+ void exitSystem();
+ bool isClosing() { return _appForm->isClosing(); }
+
+ BadaGraphicsManager *getGraphics() {
+ return (BadaGraphicsManager*)_graphicsManager;
+ }
+
+private:
+ void initBackend();
+ result initModules();
+
+ void updateScreen();
+ bool pollEvent(Common::Event &event);
+ uint32 getMillis();
+ void delayMillis(uint msecs);
+ void getTimeAndDate(TimeDate &t) const;
+ void fatalError();
+ void logMessage(LogMessageType::Type type, const char *message);
+
+ Common::EventSource *getDefaultEventSource() {return this;}
+ Common::SeekableReadStream *createConfigReadStream();
+ Common::WriteStream *createConfigWriteStream();
+
+ BadaAppForm *_appForm;
+ AudioThread *_audioThread;
+ long long _epoch;
+};
+
+#endif
diff --git a/backends/platform/dc/DCLauncherDialog.h b/backends/platform/dc/DCLauncherDialog.h
index 72df3e15cc..519524222f 100644
--- a/backends/platform/dc/DCLauncherDialog.h
+++ b/backends/platform/dc/DCLauncherDialog.h
@@ -25,4 +25,3 @@ class DCLauncherDialog {
DCLauncherDialog() {}
int runModal();
};
-
diff --git a/backends/platform/dc/README b/backends/platform/dc/README
index e4ebda840e..e26df500e8 100644
--- a/backends/platform/dc/README
+++ b/backends/platform/dc/README
@@ -23,4 +23,3 @@ should get a scrambled binary SCUMMVM.BIN and some plugins *.PLG.
For serial/IP upload, remove the "DYNAMIC_MODULES" line and just run `make',
to get a static binary with the name `scummvm.elf'.
-
diff --git a/backends/platform/dc/audio.cpp b/backends/platform/dc/audio.cpp
index 1fee970a90..35cb51f349 100644
--- a/backends/platform/dc/audio.cpp
+++ b/backends/platform/dc/audio.cpp
@@ -74,5 +74,3 @@ void OSystem_Dreamcast::checkSound()
if ((fillpos += n) >= curr_ring_buffer_samples)
fillpos = 0;
}
-
-
diff --git a/backends/platform/dc/cache.S b/backends/platform/dc/cache.S
index 1a1595a9a1..4beeedcea7 100644
--- a/backends/platform/dc/cache.S
+++ b/backends/platform/dc/cache.S
@@ -35,4 +35,3 @@ ccr_addr:
.long 0xff00001c
ccr_data:
.word 0x0905
-
diff --git a/backends/platform/dc/dc-fs.cpp b/backends/platform/dc/dc-fs.cpp
index ac709f62b9..f30c9c56d1 100644
--- a/backends/platform/dc/dc-fs.cpp
+++ b/backends/platform/dc/dc-fs.cpp
@@ -124,7 +124,7 @@ bool RoninCDDirectoryNode::getChildren(AbstractFSList &myList, ListMode mode, bo
if (mode == Common::FSNode::kListFilesOnly)
continue;
- myList.push_back(new RoninCDDirectoryNode(newPath+"/"));
+ myList.push_back(new RoninCDDirectoryNode(newPath));
} else {
// Honor the chosen mode
if (mode == Common::FSNode::kListDirectoriesOnly)
@@ -165,4 +165,3 @@ AbstractFSNode *OSystem_Dreamcast::makeFileNodePath(const Common::String &path)
AbstractFSNode *node = RoninCDFileNode::makeFileNodePath(path);
return (node? node : new RoninCDNonexistingNode(path));
}
-
diff --git a/backends/platform/dc/dc.h b/backends/platform/dc/dc.h
index bde50daa2d..2e32ff3eb4 100644
--- a/backends/platform/dc/dc.h
+++ b/backends/platform/dc/dc.h
@@ -259,4 +259,3 @@ extern int handleInput(struct mapledev *pad,
int &mouse_x, int &mouse_y,
byte &shiftFlags, Interactive *inter = NULL);
extern bool selectGame(char *&, char *&, Common::Language &, Common::Platform &, class Icon &);
-
diff --git a/backends/platform/dc/dcmain.cpp b/backends/platform/dc/dcmain.cpp
index 06738a687d..3e3279f9c3 100644
--- a/backends/platform/dc/dcmain.cpp
+++ b/backends/platform/dc/dcmain.cpp
@@ -377,4 +377,3 @@ int DCLauncherDialog::runModal()
return 0;
}
-
diff --git a/backends/platform/dc/display.cpp b/backends/platform/dc/display.cpp
index a11e329df3..76658c6590 100644
--- a/backends/platform/dc/display.cpp
+++ b/backends/platform/dc/display.cpp
@@ -732,4 +732,3 @@ int16 OSystem_Dreamcast::getOverlayWidth()
{
return OVL_W;
}
-
diff --git a/backends/platform/dc/input.cpp b/backends/platform/dc/input.cpp
index 3759eec6df..7b21c76efa 100644
--- a/backends/platform/dc/input.cpp
+++ b/backends/platform/dc/input.cpp
@@ -249,4 +249,3 @@ bool OSystem_Dreamcast::pollEvent(Common::Event &event)
return false;
}
}
-
diff --git a/backends/platform/dc/label.cpp b/backends/platform/dc/label.cpp
index 1094dd3fb4..5db031958f 100644
--- a/backends/platform/dc/label.cpp
+++ b/backends/platform/dc/label.cpp
@@ -134,4 +134,3 @@ void Label::draw(float x, float y, unsigned int argb, float scale)
myvertex.cmd |= TA_CMD_VERTEX_EOS;
ta_commit_list(&myvertex);
}
-
diff --git a/backends/platform/dc/plugin_head.S b/backends/platform/dc/plugin_head.S
index 6cbe9eec85..a056f1c0f0 100644
--- a/backends/platform/dc/plugin_head.S
+++ b/backends/platform/dc/plugin_head.S
@@ -3,4 +3,3 @@
.section .dtors,"aw",@progbits
.end
-
diff --git a/backends/platform/dc/selector.cpp b/backends/platform/dc/selector.cpp
index 859f2a40ed..339e5df62d 100644
--- a/backends/platform/dc/selector.cpp
+++ b/backends/platform/dc/selector.cpp
@@ -185,12 +185,24 @@ static void makeDefIcon(Icon &icon)
icon.load(scummvm_icon, sizeof(scummvm_icon));
}
+static bool sameOrSubdir(const char *dir1, const char *dir2)
+{
+ int l1 = strlen(dir1), l2 = strlen(dir2);
+ if (l1<=l2)
+ return !strcmp(dir1, dir2);
+ else
+ return !memcmp(dir1, dir2, l2);
+}
+
static bool uniqueGame(const char *base, const char *dir,
Common::Language lang, Common::Platform plf,
Game *games, int cnt)
{
while (cnt--)
- if (!strcmp(dir, games->dir) &&
+ if (/*Don't detect the same game in a subdir,
+ this is a workaround for the detector bug in toon... */
+ sameOrSubdir(dir, games->dir) &&
+ /*!strcmp(dir, games->dir) &&*/
!stricmp(base, games->filename_base) &&
lang == games->language &&
plf == games->platform)
@@ -237,19 +249,24 @@ static int findGames(Game *games, int max, bool use_ini)
}
while ((curr_game < max || use_ini) && curr_dir < num_dirs) {
- strncpy(dirs[curr_dir].name, dirs[curr_dir].node.getPath().c_str(), 252);
- dirs[curr_dir].name[251] = '\0';
+ strncpy(dirs[curr_dir].name, dirs[curr_dir].node.getPath().c_str(), 251);
+ dirs[curr_dir].name[250] = '\0';
+ if (!dirs[curr_dir].name[0] ||
+ dirs[curr_dir].name[strlen(dirs[curr_dir].name)-1] != '/')
+ strcat(dirs[curr_dir].name, "/");
dirs[curr_dir].deficon[0] = '\0';
Common::FSList files, fslist;
dirs[curr_dir++].node.getChildren(fslist, Common::FSNode::kListAll);
for (Common::FSList::const_iterator entry = fslist.begin(); entry != fslist.end();
++entry) {
if (entry->isDirectory()) {
- if (!use_ini && num_dirs < MAX_DIR &&
- strcasecmp(entry->getDisplayName().c_str(), "install")) {
+ if (!use_ini && num_dirs < MAX_DIR) {
dirs[num_dirs].node = *entry;
num_dirs++;
}
+ /* Toonstruck detector needs directories to be present too */
+ if(!use_ini)
+ files.push_back(*entry);
} else
if (isIcon(*entry))
strcpy(dirs[curr_dir-1].deficon, entry->getDisplayName().c_str());
diff --git a/backends/platform/dingux/README.DINGUX b/backends/platform/dingux/README.DINGUX
index d867e02f03..04f0d30844 100644
--- a/backends/platform/dingux/README.DINGUX
+++ b/backends/platform/dingux/README.DINGUX
@@ -65,4 +65,3 @@ I still raccomand the use of opendingux kernel + rootfs, but if you don't, this
image plus another kernel (eg. SiENcE's one) should be do the job.
Enjoy
-
diff --git a/backends/platform/dingux/scummvm.gpe b/backends/platform/dingux/scummvm.gpe
index 84ab0c6b95..ce5d174a5c 100644
--- a/backends/platform/dingux/scummvm.gpe
+++ b/backends/platform/dingux/scummvm.gpe
@@ -2,4 +2,3 @@
HOME=`pwd`
$HOME/scummvm.elf
-
diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset.c b/backends/platform/ds/arm7/source/libcartreset/cartreset.c
index db2f3cfddc..85be823b71 100644
--- a/backends/platform/ds/arm7/source/libcartreset/cartreset.c
+++ b/backends/platform/ds/arm7/source/libcartreset/cartreset.c
@@ -104,6 +104,3 @@ void cartExecute()
}
#endif
-
-
-
diff --git a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h
index f1faebea37..98808f79c5 100644
--- a/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h
+++ b/backends/platform/ds/arm7/source/libcartreset/cartreset_nolibfat.h
@@ -54,4 +54,3 @@ void cartExecute();
#endif
#endif
-
diff --git a/backends/platform/ds/arm7/source/main.cpp b/backends/platform/ds/arm7/source/main.cpp
index 6b5a0ec321..2e9cacc669 100644
--- a/backends/platform/ds/arm7/source/main.cpp
+++ b/backends/platform/ds/arm7/source/main.cpp
@@ -650,4 +650,3 @@ int main(int argc, char ** argv) {
//////////////////////////////////////////////////////////////////////
-
diff --git a/backends/platform/ds/arm9/dist/readme_ds.txt b/backends/platform/ds/arm9/dist/readme_ds.txt
index 24c85ad556..dc37fecce5 100644
--- a/backends/platform/ds/arm9/dist/readme_ds.txt
+++ b/backends/platform/ds/arm9/dist/readme_ds.txt
@@ -861,8 +861,3 @@ For other builds, substitute the letters b - g in the above line.
To build everything, type:
make allbuildssafe
-
-
-
-
-
diff --git a/backends/platform/ds/arm9/source/dsoptions.cpp b/backends/platform/ds/arm9/source/dsoptions.cpp
index 263ca58705..7154d4ae3f 100644
--- a/backends/platform/ds/arm9/source/dsoptions.cpp
+++ b/backends/platform/ds/arm9/source/dsoptions.cpp
@@ -433,4 +433,3 @@ void setOptions() {
}
} // End of namespace DS
-
diff --git a/backends/platform/ds/arm9/source/fat/disc_io.h b/backends/platform/ds/arm9/source/fat/disc_io.h
index 0fc83a7493..cd930ba454 100644
--- a/backends/platform/ds/arm9/source/fat/disc_io.h
+++ b/backends/platform/ds/arm9/source/fat/disc_io.h
@@ -218,4 +218,3 @@ typedef struct {
#endif
#endif // define DISC_IO_H
-
diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.c b/backends/platform/ds/arm9/source/fat/io_m3_common.c
index 9c8280c808..e3232a4df6 100644
--- a/backends/platform/ds/arm9/source/fat/io_m3_common.c
+++ b/backends/platform/ds/arm9/source/fat/io_m3_common.c
@@ -57,4 +57,3 @@ void _M3_changeMode (u32 mode) {
_M3_readHalfword (0x08000188);
}
}
-
diff --git a/backends/platform/ds/arm9/source/fat/io_m3_common.h b/backends/platform/ds/arm9/source/fat/io_m3_common.h
index 6d0c669783..6a0cc03c2e 100644
--- a/backends/platform/ds/arm9/source/fat/io_m3_common.h
+++ b/backends/platform/ds/arm9/source/fat/io_m3_common.h
@@ -45,4 +45,3 @@
extern void _M3_changeMode (u32 mode);
#endif // IO_M3_COMMON_H
-
diff --git a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s
index a6bb8dc187..f2bcce7da9 100644
--- a/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s
+++ b/backends/platform/ds/arm9/source/fat/io_m3sd_asm.s
@@ -193,4 +193,3 @@ sd_data_write_busy2:
ldmfd r13!,{r4-r5,r15}
@-----------------end-------------------
-
diff --git a/backends/platform/ds/arm9/source/fat/io_njsd.c b/backends/platform/ds/arm9/source/fat/io_njsd.c
index b9cb52aa00..12388da8e9 100644
--- a/backends/platform/ds/arm9/source/fat/io_njsd.c
+++ b/backends/platform/ds/arm9/source/fat/io_njsd.c
@@ -678,4 +678,4 @@ LPIO_INTERFACE NJSD_GetInterface(void) {
} ;
#endif // defined NDS
-#endif \ No newline at end of file
+#endif
diff --git a/backends/platform/ds/arm9/source/fat/io_scsd.c b/backends/platform/ds/arm9/source/fat/io_scsd.c
index 0a6ab5a528..270691436d 100644
--- a/backends/platform/ds/arm9/source/fat/io_scsd.c
+++ b/backends/platform/ds/arm9/source/fat/io_scsd.c
@@ -103,4 +103,4 @@ LPIO_INTERFACE SCSD_GetInterface(void) {
return &io_scsd ;
} ;
-#endif \ No newline at end of file
+#endif
diff --git a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s
index 390d36afeb..a33fa6af35 100644
--- a/backends/platform/ds/arm9/source/fat/io_scsd_asm.s
+++ b/backends/platform/ds/arm9/source/fat/io_scsd_asm.s
@@ -508,14 +508,3 @@ MemoryCard_IsInserted:
@----------------end MemoryCard_IsInserted---------------
.END
-
-
-
-
-
-
-
-
-
-
-
diff --git a/backends/platform/ds/arm9/source/fat/io_sd_common.c b/backends/platform/ds/arm9/source/fat/io_sd_common.c
index ade9df0d80..e7ab472e1b 100644
--- a/backends/platform/ds/arm9/source/fat/io_sd_common.c
+++ b/backends/platform/ds/arm9/source/fat/io_sd_common.c
@@ -199,5 +199,3 @@ bool _SD_InitCard (_SD_FN_CMD_6BYTE_RESPONSE cmd_6byte_response,
return true;
}
-
-
diff --git a/backends/platform/ds/arm9/source/fat/m3sd.s b/backends/platform/ds/arm9/source/fat/m3sd.s
index f6fab1a9e2..899cbc7927 100644
--- a/backends/platform/ds/arm9/source/fat/m3sd.s
+++ b/backends/platform/ds/arm9/source/fat/m3sd.s
@@ -197,4 +197,3 @@ DC_FlushRangeLoop:
bx lr
@---------------------------------------
.end
-
diff --git a/backends/platform/ds/arm9/source/keys.cpp b/backends/platform/ds/arm9/source/keys.cpp
index 2f8497ab19..aec7d57bda 100644
--- a/backends/platform/ds/arm9/source/keys.cpp
+++ b/backends/platform/ds/arm9/source/keys.cpp
@@ -134,4 +134,3 @@ uint32 keysUp(void) {
} // End of namespace DS
-
diff --git a/backends/platform/ds/arm9/source/osystem_ds.cpp b/backends/platform/ds/arm9/source/osystem_ds.cpp
index b157a3a87a..fdd310ec17 100644
--- a/backends/platform/ds/arm9/source/osystem_ds.cpp
+++ b/backends/platform/ds/arm9/source/osystem_ds.cpp
@@ -901,5 +901,3 @@ void OSystem_DS::engineDone() {
#endif
}
-
-
diff --git a/backends/platform/ds/arm9/source/scummhelp.cpp b/backends/platform/ds/arm9/source/scummhelp.cpp
index 670b46a3b9..112ba49d76 100644
--- a/backends/platform/ds/arm9/source/scummhelp.cpp
+++ b/backends/platform/ds/arm9/source/scummhelp.cpp
@@ -98,4 +98,3 @@ void updateStrings(byte gameId, byte version, Common::Platform platform,
#undef ADD_BIND
#undef ADD_TEXT
#undef ADD_LINE
-
diff --git a/backends/platform/ds/ds.mk b/backends/platform/ds/ds.mk
index 654475e1f3..78216cb9a2 100644
--- a/backends/platform/ds/ds.mk
+++ b/backends/platform/ds/ds.mk
@@ -236,4 +236,3 @@ $(ndsdir)/arm7/arm7.bin: $(ndsdir)/arm7/arm7.elf
#
# Fingolfin used
# CXX=arm-eabi-g++ CC=arm-eabi-gcc ./configure --host=arm-elf --enable-speed --enable-sso -enable-fpm=arm CFLAGS='-specs=ds_arm9.specs -mthumb-interwork' --disable-shared --disable-debugging LDFLAGS=$DEVKITPRO/libnds/lib/libnds9.a
-
diff --git a/backends/platform/gph/devices/gp2x/mmuhack/readme.txt b/backends/platform/gph/devices/gp2x/mmuhack/README
index bea49d7d6d..6db7d81845 100644
--- a/backends/platform/gph/devices/gp2x/mmuhack/readme.txt
+++ b/backends/platform/gph/devices/gp2x/mmuhack/README
@@ -1,3 +1,10 @@
+PLEASE NOTE:
+
+The binary object 'mmuhack.o' is stored in the source tree as it is very awkward to
+build it manually each time and would require the use of 2 toolchains to do so.
+
+Notes on how to rebuild from the included source can be found below.
+
About
-----
@@ -107,4 +114,3 @@ Credits
Original idea/implementation: Squidge (this whole thing is also known as squidgehack)
Kernel module: NK
Documentation: notaz
-
diff --git a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h
index 520841ace7..d01548e474 100644
--- a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h
+++ b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.h
@@ -8,4 +8,3 @@ void flush_uppermem_cache(void *start_address, void *end_address, int flags);
#ifdef __cplusplus
}
#endif
-
diff --git a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s
index 17628c156a..265908e1fd 100644
--- a/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s
+++ b/backends/platform/gph/devices/gp2x/mmuhack/flush_uppermem_cache.s
@@ -3,4 +3,3 @@
flush_uppermem_cache:
swi #0x9f0002
bx lr
-
diff --git a/backends/platform/iphone/iphone_main.m b/backends/platform/iphone/iphone_main.m
index 7bb5f0c317..c2ec328bf5 100644
--- a/backends/platform/iphone/iphone_main.m
+++ b/backends/platform/iphone/iphone_main.m
@@ -137,4 +137,3 @@ int main(int argc, char** argv) {
}
@end
-
diff --git a/backends/platform/iphone/iphone_video.m b/backends/platform/iphone/iphone_video.m
index 04d25cebf8..eb16676428 100644
--- a/backends/platform/iphone/iphone_video.m
+++ b/backends/platform/iphone/iphone_video.m
@@ -754,4 +754,3 @@ bool getLocalMouseCoords(CGPoint *point) {
}
@end
-
diff --git a/backends/platform/n64/Makefile b/backends/platform/n64/Makefile
index cffe277312..4f3744f7e8 100644
--- a/backends/platform/n64/Makefile
+++ b/backends/platform/n64/Makefile
@@ -90,4 +90,3 @@ spotless : distclean
send: $(TARGET).v64
sudo ucon64 --xv64 $(TARGET).v64
-
diff --git a/backends/platform/n64/README.N64 b/backends/platform/n64/README.N64
index b47b239658..42f78f4754 100644
--- a/backends/platform/n64/README.N64
+++ b/backends/platform/n64/README.N64
@@ -113,4 +113,3 @@ Notes
==========
Write the rest of this README.
-
diff --git a/backends/platform/n64/framfs_save_manager.cpp b/backends/platform/n64/framfs_save_manager.cpp
index 983b9aba8d..78f5333f2e 100644
--- a/backends/platform/n64/framfs_save_manager.cpp
+++ b/backends/platform/n64/framfs_save_manager.cpp
@@ -69,4 +69,3 @@ Common::StringArray FRAMSaveManager::listSavefiles(const Common::String &pattern
return list;
}
-
diff --git a/backends/platform/n64/framfs_save_manager.h b/backends/platform/n64/framfs_save_manager.h
index d50c17d85b..da553e423a 100644
--- a/backends/platform/n64/framfs_save_manager.h
+++ b/backends/platform/n64/framfs_save_manager.h
@@ -129,4 +129,3 @@ public:
#endif
-
diff --git a/backends/platform/n64/n64.mk b/backends/platform/n64/n64.mk
index 2e383e670d..83ad405503 100644
--- a/backends/platform/n64/n64.mk
+++ b/backends/platform/n64/n64.mk
@@ -26,4 +26,3 @@ endif
$(srcdir)/backends/platform/n64/pad_rom.sh scummvm.v64
rm scummvm.bak
mv scummvm.v64 $(bundle_name)/scummvm.v64
-
diff --git a/backends/platform/n64/nintendo64.cpp b/backends/platform/n64/nintendo64.cpp
index 3e811e73d2..bc416157e6 100644
--- a/backends/platform/n64/nintendo64.cpp
+++ b/backends/platform/n64/nintendo64.cpp
@@ -31,4 +31,3 @@ int main(void) {
g_system->quit(); // TODO: Consider removing / replacing this!
return res;
}
-
diff --git a/backends/platform/n64/osys_n64.h b/backends/platform/n64/osys_n64.h
index 354f25a1cf..4788beb1ca 100644
--- a/backends/platform/n64/osys_n64.h
+++ b/backends/platform/n64/osys_n64.h
@@ -212,4 +212,3 @@ public:
};
#endif /* __OSYS_N64_H__ */
-
diff --git a/backends/platform/n64/osys_n64_base.cpp b/backends/platform/n64/osys_n64_base.cpp
index 4bc3780fe2..c3adb9691c 100644
--- a/backends/platform/n64/osys_n64_base.cpp
+++ b/backends/platform/n64/osys_n64_base.cpp
@@ -922,4 +922,3 @@ void OSystem_N64::detectControllers(void) {
inline uint16 colRGB888toBGR555(byte r, byte g, byte b) {
return ((r >> 3) << 1) | ((g >> 3) << 6) | ((b >> 3) << 11);
}
-
diff --git a/backends/platform/n64/osys_n64_events.cpp b/backends/platform/n64/osys_n64_events.cpp
index 62f11aef64..c83eb194ac 100644
--- a/backends/platform/n64/osys_n64_events.cpp
+++ b/backends/platform/n64/osys_n64_events.cpp
@@ -439,4 +439,3 @@ bool OSystem_N64::pollEvent(Common::Event &event) {
return false;
}
-
diff --git a/backends/platform/n64/osys_n64_utilities.cpp b/backends/platform/n64/osys_n64_utilities.cpp
index 0622e6423d..94d727e421 100644
--- a/backends/platform/n64/osys_n64_utilities.cpp
+++ b/backends/platform/n64/osys_n64_utilities.cpp
@@ -115,4 +115,3 @@ int timer_handler(int t) {
tm->handler();
return t;
}
-
diff --git a/backends/platform/n64/pad_rom.sh b/backends/platform/n64/pad_rom.sh
index 085203306f..463eeb4e28 100755
--- a/backends/platform/n64/pad_rom.sh
+++ b/backends/platform/n64/pad_rom.sh
@@ -10,4 +10,3 @@ REMAINDER=`echo $BASESIZE - $REMAINDER | bc`
CARTSIZE=`echo $CARTSIZE + $REMAINDER | bc`
ucon64 -q --n64 --v64 --chk --padn=$CARTSIZE $1
-
diff --git a/backends/platform/n64/pakfs_save_manager.cpp b/backends/platform/n64/pakfs_save_manager.cpp
index df9baa4d21..bf2fe8b1bc 100644
--- a/backends/platform/n64/pakfs_save_manager.cpp
+++ b/backends/platform/n64/pakfs_save_manager.cpp
@@ -70,4 +70,3 @@ Common::StringArray PAKSaveManager::listSavefiles(const Common::String &pattern)
return list;
}
-
diff --git a/backends/platform/n64/pakfs_save_manager.h b/backends/platform/n64/pakfs_save_manager.h
index 6987801294..e0fcbc1e2d 100644
--- a/backends/platform/n64/pakfs_save_manager.h
+++ b/backends/platform/n64/pakfs_save_manager.h
@@ -130,4 +130,3 @@ public:
#endif
-
diff --git a/backends/platform/n64/portdefs.h b/backends/platform/n64/portdefs.h
index 35ef3c71db..677ad48477 100644
--- a/backends/platform/n64/portdefs.h
+++ b/backends/platform/n64/portdefs.h
@@ -49,4 +49,3 @@ typedef signed int int32;
#define SCUMMVM_DONT_DEFINE_TYPES
#endif
-
diff --git a/backends/platform/openpandora/build/PXML.xml b/backends/platform/openpandora/build/PXML.xml
index f4d2e2a595..a87c49e2b8 100755
--- a/backends/platform/openpandora/build/PXML.xml
+++ b/backends/platform/openpandora/build/PXML.xml
@@ -1,34 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<PXML xmlns="http://openpandora.org/namespaces/PXML" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="PXML_schema.xsd">
-
- <application id="scummvm.djwillis.0001" appdata="scummvm">
-
- <title lang="en_US">ScummVM</title>
-
- <exec command="./runscummvm.sh"/>
- <icon src="icon/scummvm.png"/>
-
- <previewpics>
- <pic src="icon/preview-pic.png"/>
- </previewpics>
-
- <info name="ScummVM Documentation" type="text/html" src="docs/index.html"/>
-
- <description lang="en_US">Point & click game interpreter.</description>
-
- <author name="DJWillis" website="http://www.scummvm.org/"/>
-
- <version major="1" minor="1" release="1" build="1"/><!--This programs version-->
- <osversion major="1" minor="0" release="0" build="0"/><!--The minimum OS version required-->
-
- <categories>
- <category name="Game"><!--category like "Games", "Graphics", "Internet" etc-->
- <subcategory name="Adventure Games"/><!--subcategory, like "Board Games", "Strategy", "First Person Shooters"-->
- </category>
- </categories>
-
- <clockspeed frequency="500"/><!--Frequency in Hz-->
-
- </application>
-
+ <!-- This is the package, in our case ScummVM -->
+ <package id="scummvm.djwillis.0001">
+ <author name="DJWillis" website="http://www.scummvm.org/"/>
+ <!-- version type can be alpha, beta or release, set to release in branch -->
+ <version major="1" minor="4" release="0" build="1" type="alpha"/>
+ <!-- Both title and titles are needed -->
+ <title lang="en_US">ScummVM</title>
+ <titles>
+ <title lang="en_US">ScummVM</title>
+ </titles>
+ <descriptions>
+ <description lang="en_US">
+ ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
+
+ ScummVM supports many adventure games, including LucasArts SCUMM games (such as Monkey Island 1-3, Day of the Tentacle, Sam &amp; Max, ...), many of Sierra's AGI and SCI games (such as King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 and 2, Simon the Sorcerer 1 and 2, Beneath A Steel Sky, Lure of the Temptress, Broken Sword 1 and 2, Flight of the Amazon Queen, Gobliiins 1-3, The Legend of Kyrandia 1-3, many of Humongous Entertainment's children's SCUMM games (including Freddi Fish and Putt Putt games) and many more.
+ </description>
+ </descriptions>
+ <icon src="icon/scummvm.png"/>
+ </package>
+
+ <!-- This is the application, the ScummVM binary -->
+ <application id="scummvm.djwillis.0001" appdata="scummvm">
+ <exec command="./runscummvm.sh"/>
+ <author name="DJWillis" website="http://www.scummvm.org/"/>
+ <!-- version type can be alpha, beta or release, set to release in branch -->
+ <version major="1" minor="4" release="0" build="1" type="alpha"/>
+ <!-- Both title and titles are needed -->
+ <title lang="en_US">ScummVM</title>
+ <titles>
+ <title lang="en_US">ScummVM</title>
+ </titles>
+ <descriptions>
+ <description lang="en_US">
+ ScummVM is a program which allows you to run certain classic graphical point-and-click adventure games, provided you already have their data files. The clever part about this: ScummVM just replaces the executables shipped with the games, allowing you to play them on systems for which they were never designed!
+
+ ScummVM supports many adventure games, including LucasArts SCUMM games (such as Monkey Island 1-3, Day of the Tentacle, Sam &amp; Max, ...), many of Sierra's AGI and SCI games (such as King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 and 2, Simon the Sorcerer 1 and 2, Beneath A Steel Sky, Lure of the Temptress, Broken Sword 1 and 2, Flight of the Amazon Queen, Gobliiins 1-3, The Legend of Kyrandia 1-3, many of Humongous Entertainment's children's SCUMM games (including Freddi Fish and Putt Putt games) and many more.
+ </description>
+ </descriptions>
+ <licenses>
+ <license name="GPLv2" url="http://www.gnu.org/licenses/gpl-2.0.html" sourcecodeurl="http://www.scummvm.org"/>
+ </licenses>
+ <icon src="icon/scummvm.png"/>
+ <previewpics>
+ <pic src="icon/preview-pic.png"/>
+ </previewpics>
+ <info name="ScummVM Documentation" type="text/html" src="docs/index.html"/>
+ <categories>
+ <category name="Game">
+ <subcategory name="AdventureGame"/>
+ </category>
+ </categories>
+ </application>
</PXML>
diff --git a/backends/platform/openpandora/build/PXML_schema.xsd b/backends/platform/openpandora/build/PXML_schema.xsd
new file mode 100644
index 0000000000..7c0d635016
--- /dev/null
+++ b/backends/platform/openpandora/build/PXML_schema.xsd
@@ -0,0 +1,341 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xs:schema targetNamespace="http://openpandora.org/namespaces/PXML" xmlns="http://openpandora.org/namespaces/PXML" xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified" elementFormDefault="qualified">
+
+
+ <!-- declare some simpleTypes for later usage -->
+
+ <!-- Specify params allows with the 'x11' entry in exec -->
+ <xs:simpleType name="x11Param">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="req" />
+ <xs:enumeration value="stop" />
+ <xs:enumeration value="ignore" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Specify the valid documentation formats in the <info> block -->
+ <xs:simpleType name="docType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="text/html" />
+ <xs:enumeration value="text/plain" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Make sure that version numbers only consist of letters, numbers and + as well as - -->
+ <xs:simpleType name="versionNumber">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ <xs:pattern value="[a-zA-Z0-9+-]*" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Specify what is valid as release type -->
+ <xs:simpleType name="releaseType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="alpha" />
+ <xs:enumeration value="beta" />
+ <xs:enumeration value="release" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Specify what makes an email address "valid" -->
+ <xs:simpleType name="emailAddress">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="[^@]+@[^\.]+\..+"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- some restrictions regarding file names that are eg not allowed/possible when using sd cards formated as fat32 -->
+ <xs:simpleType name="dumbPath">
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="[^?>:]+" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="dumbFolderName">
+ <xs:restriction base="xs:normalizedString">
+ <xs:pattern value="[^?>:/]+" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Specify lang codes -->
+ <xs:simpleType name="isoLangcode">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="2"/>
+ <xs:pattern value="[a-zA-Z]{2,3}(_[a-zA-Z0-9]{2,3})*" />
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="isoLangcode_en_US">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="en_US" />
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Definition of all allowed categories following the FDO specs -->
+ <xs:simpleType name="fdoCategory">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="AudioVideo|Audio|Video|Development|Education|Game|Graphics|Network|Office|Settings|System|Utility"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <!-- Definition of all allowed subcategories following the FDO specs (should be based upon the given main categories, but would significantly increase complexity of the schema) -->
+ <xs:simpleType name="fdoSubCategory">
+ <xs:restriction base="xs:string">
+ <xs:pattern value="Building|Debugger|IDE|GUIDesigner|Profiling|RevisionControl|Translation|Calendar|ContactManagement|Database|Dictionary|Chart|Email|Finance|FlowChart|PDA|ProjectManagement|Presentation|Spreadsheet|WordProcessor|2DGraphics|VectorGraphics|RasterGraphics|3DGraphics|Scanning|OCR|Photography|Publishing|Viewer|TextTools|DesktopSettings|HardwareSettings|Printing|PackageManager|Dialup|InstantMessaging|Chat|IRCClient|FileTransfer|HamRadio|News|P2P|RemoteAccess|Telephony|TelephonyTools|VideoConference|WebBrowser|WebDevelopment|Midi|Mixer|Sequencer|Tuner|TV|AudioVideoEditing|Player|Recorder|DiscBurning|ActionGame|AdventureGame|ArcadeGame|BoardGame|BlocksGame|CardGame|KidsGame|LogicGame|RolePlaying|Simulation|SportsGame|StrategyGame|Art|Construction|Music|Languages|Science|ArtificialIntelligence|Astronomy|Biology|Chemistry|ComputerScience|DataVisualization|Economy|Electricity|Geography|Geology|Geoscience|History|ImageProcessing|Literature|Math|NumericalAnalysis|MedicalSoftware|Physics|Robotics|Sports|ParallelComputing|Amusement|Archiving|Compression|Electronics|Emulator|Engineering|FileTools|FileManager|TerminalEmulator|Filesystem|Monitor|Security|Accessibility|Calculator|Clock|TextEditor|Documentation|Core|KDE|GNOME|GTK|Qt|Motif|Java|ConsoleOnly"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <!-- Create some way to enforce entries to be nonempty -->
+ <xs:simpleType name="nonempty_token">
+ <xs:restriction base="xs:token">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="nonempty_string">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+ <xs:simpleType name="nonempty_normalizedString">
+ <xs:restriction base="xs:string">
+ <xs:minLength value="1"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+
+
+ <!-- declare some complexTypes for later usage -->
+
+ <!-- type used for file associations -->
+ <xs:complexType name="association_data">
+ <xs:attribute name="name" use="required" type="nonempty_normalizedString" />
+ <xs:attribute name="filetype" use="required" type="nonempty_token" />
+ <xs:attribute name="exec" use="required" type="nonempty_token" />
+ </xs:complexType>
+
+ <!-- type used for author info -->
+ <xs:complexType name="author_data">
+ <xs:attribute name="name" use="required" type="nonempty_normalizedString" />
+ <xs:attribute name="website" use="optional" type="xs:anyURI" />
+ <xs:attribute name="email" use="optional" type="emailAddress" />
+ </xs:complexType>
+
+ <!-- type used for version informations (full entry as well as os version) -->
+ <xs:complexType name="app_version_info">
+ <xs:attribute name="major" use="required" type="versionNumber" />
+ <xs:attribute name="minor" use="required" type="versionNumber" />
+ <xs:attribute name="release" use="required" type="versionNumber" />
+ <xs:attribute name="build" use="required" type="versionNumber" />
+ <xs:attribute name="type" use="optional" type="releaseType" />
+ </xs:complexType>
+ <xs:complexType name="os_version_info">
+ <xs:attribute name="major" use="required" type="versionNumber" />
+ <xs:attribute name="minor" use="required" type="versionNumber" />
+ <xs:attribute name="release" use="required" type="versionNumber" />
+ <xs:attribute name="build" use="required" type="versionNumber" />
+ </xs:complexType>
+
+ <!-- type used for exec entries -->
+ <xs:complexType name="exec_params">
+ <xs:attribute name="command" use="required" type="nonempty_token" />
+ <xs:attribute name="arguments" use="optional" type="nonempty_token" />
+ <xs:attribute name="background" use="optional" type="xs:boolean" />
+ <xs:attribute name="startdir" use="optional" type="dumbPath" />
+ <xs:attribute name="standalone" use="optional" type="xs:boolean" />
+ <xs:attribute name="x11" use="optional" type="x11Param" />
+ </xs:complexType>
+
+ <!-- type used for tiles or descriptions, once in 'normal' version, once enforcing usage of en_US -->
+ <xs:complexType name="title_or_description">
+ <xs:simpleContent>
+ <xs:extension base="nonempty_string">
+ <xs:attribute name="lang" use="required" type="isoLangcode" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+ <xs:complexType name="title_or_description_enUS">
+ <xs:simpleContent>
+ <xs:extension base="nonempty_string">
+ <xs:attribute name="lang" use="required" type="isoLangcode_en_US" />
+ </xs:extension>
+ </xs:simpleContent>
+ </xs:complexType>
+
+ <!-- type used for referencing images -->
+ <xs:complexType name="image_entry">
+ <xs:attribute name="src" use="required" type="dumbPath" />
+ </xs:complexType>
+
+ <!-- type for referencing manuals/readme docs -->
+ <xs:complexType name="information_entry">
+ <xs:attribute name="name" use="required" type="nonempty_normalizedString" />
+ <xs:attribute name="type" use="required" type="docType" />
+ <xs:attribute name="src" use="required" type="dumbPath" />
+ </xs:complexType>
+
+ <!-- type used for the license information -->
+ <xs:complexType name="license_info">
+ <xs:attribute name="name" use="required" type="nonempty_normalizedString" />
+ <xs:attribute name="url" use="optional" type="xs:anyURI" />
+ <xs:attribute name="sourcecodeurl" use="optional" type="xs:anyURI" />
+ </xs:complexType>
+
+
+
+ <!-- Combine the symple and complex types into the "real" PXML specification -->
+
+ <xs:element name="PXML">
+ <xs:complexType>
+ <xs:sequence>
+ <!-- specify the <package> tag with info about the complete package, information providable:
+ author
+ version
+ title(s)
+ description(s)
+ icon
+ -->
+ <xs:element name="package" minOccurs="1" maxOccurs="1">
+ <xs:complexType>
+ <xs:all>
+ <!--Author info-->
+ <xs:element name="author" type="author_data" minOccurs="1" />
+ <!--App version info-->
+ <xs:element name="version" type="app_version_info" minOccurs="1" />
+ <!--Title-->
+ <xs:element name="titles" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="title" type="title_or_description_enUS" minOccurs="1" maxOccurs="1" />
+ <xs:element name="title" type="title_or_description" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Description-->
+ <xs:element name="descriptions" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="title" type="title_or_description_enUS" minOccurs="0" maxOccurs="1" />
+ <xs:element name="description" type="title_or_description" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Icon-->
+ <xs:element name="icon" type="image_entry" minOccurs="0" />
+ </xs:all>
+ <!--Package ID-->
+ <xs:attribute name="id" use="required" type="dumbFolderName" />
+ </xs:complexType>
+ </xs:element>
+ <!-- specify the <application> tag with info about a single program
+ executable call
+ author
+ version (of the application)
+ osversion (min OS version supported)
+ title(s) (allowing compatibility to <HF6, too!)
+ description(s) (allowing compatibility to <HF6, too!)
+ icon
+ license
+ preview pictures
+ info/manual/readme entry
+ categories
+ associations to file types
+ clockspeed
+ -->
+ <xs:element name="application" minOccurs="1" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:all>
+ <!--Execution params -->
+ <xs:element name="exec" type="exec_params" minOccurs="1" />
+ <!--Author info-->
+ <xs:element name="author" type="author_data" minOccurs="1" />
+ <!--App version info-->
+ <xs:element name="version" type="app_version_info" minOccurs="1" />
+ <!--OS Version info-->
+ <xs:element name="osversion" type="os_version_info" minOccurs="0" />
+ <!--Title-->
+ <!-- via <titles> element, used for HF6+ -->
+ <xs:element name="titles" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="title" type="title_or_description_enUS" minOccurs="1" maxOccurs="1" />
+ <xs:element name="title" type="title_or_description" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Title-->
+ <!-- via <title> element, only one for en_US allowed, meant for backwards compatibility with libpnd from <HF6 -->
+ <xs:element name="title" type="title_or_description_enUS" minOccurs="0" />
+ <!--Description-->
+ <!-- via <descriptions> element, used for HF6+ -->
+ <xs:element name="descriptions" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="description" type="title_or_description_enUS" minOccurs="1" maxOccurs="1" />
+ <xs:element name="description" type="title_or_description" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Description-->
+ <!-- via <description> element, only one for en_US allowed, meant for backwards compatibility with libpnd from <HF6 -->
+ <xs:element name="description" type="title_or_description_enUS" minOccurs="0" />
+ <!--Icon-->
+ <xs:element name="icon" type="image_entry" minOccurs="0" />
+ <!--License-->
+ <xs:element name="licenses" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="license" type="license_info" minOccurs="1" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Preview pics-->
+ <xs:element name="previewpics" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="pic" type="image_entry" minOccurs="0" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Info (aka manual or readme entry)-->
+ <xs:element name="info" type="information_entry" minOccurs="0" />
+ <!--Categories-->
+ <xs:element name="categories" minOccurs="1">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="category" minOccurs="1" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="subcategory" minOccurs="0" maxOccurs="unbounded">
+ <xs:complexType>
+ <xs:attribute name="name" type="fdoSubCategory" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ <xs:attribute name="name" use="required" type="fdoCategory" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Associations-->
+ <xs:element name="associations" minOccurs="0">
+ <xs:complexType>
+ <xs:sequence>
+ <xs:element name="association" type="association_data" maxOccurs="unbounded" />
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+ <!--Clockspeed-->
+ <xs:element name="clockspeed" minOccurs="0">
+ <xs:complexType>
+ <xs:attribute name="frequency" use="required" type="xs:positiveInteger" />
+ </xs:complexType>
+ </xs:element>
+ </xs:all>
+ <!--AppID-->
+ <xs:attribute name="id" use="required" type="dumbFolderName" />
+ <xs:attribute name="appdata" use="optional" type="dumbFolderName" />
+ </xs:complexType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+</xs:schema>
diff --git a/backends/platform/openpandora/build/pnd_make.sh b/backends/platform/openpandora/build/pnd_make.sh
index b19de87bb4..0c03e8154d 100755
--- a/backends/platform/openpandora/build/pnd_make.sh
+++ b/backends/platform/openpandora/build/pnd_make.sh
@@ -1,65 +1,321 @@
-#!/bin/sh
+#!/bin/bash
+#
+# pnd_make.sh
+#
+# This script is meant to ease generation of a pnd file. Please consult the output
+# when running --help for a list of available parameters and an explaination of
+# those.
+#
+# Required tools when running the script:
+# bash
+# echo, cat, mv, rm
+# mkisofs or mksquashfs (the latter when using the -c param!)
+# xmllint (optional, only for validation of the PXML against the schema)
-######adjust path of genpxml.sh if you want to use that "feture"#####
-TEMP=`getopt -o p:d:x:i:c -- "$@"`
+PXML_schema=$(dirname ${0})/PXML_schema.xsd
+GENPXML_PATH=$(dirname ${0})/genpxml.sh
-if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
+# useful functions ...
+black='\E[30m'
+red='\E[31m'
+green='\E[32m'
+yellow='\E[33m'
+blue='\E[34m'
+magenta='\E[35m'
+cyan='\E[36m'
+white='\E[37m'
-eval set -- "$TEMP"
-while true ; do
- case "$1" in
- -p) echo "PNDNAME set to $2" ;PNDNAME=$2;shift 2;;
- -d) echo "FOLDER set to $2" ;FOLDER=$2;shift 2 ;;
- -x) echo "PXML set to $2" ;PXML=$2;shift 2 ;;
- -i) echo "ICON set to $2" ;ICON=$2;shift 2 ;;
- -c) echo "-c set, will create compressed squasfs image instead of iso $2" ;SQUASH=1;shift 1 ;;
- --) shift ; break ;;
- *) echo "Error while parsing arguments! $2" ; exit 1 ;;
- esac
+check_for_tool()
+{
+ which $1 &> /dev/null
+ if [ "$?" -ne "0" ];
+ then
+ cecho "ERROR: Could not find the program '$1'. Please make sure
+that it is available in your PATH since it is required to complete your request." $red
+ exit 1
+ fi
+}
+
+cecho () # Color-echo. Argument $1 = message, Argument $2 = color
+{
+ local default_msg="No message passed." # Doesn't really need to be a local variable.
+ message=${1:-$default_msg} # Defaults to default message.
+ color=${2:-$black} # Defaults to black, if not specified.
+ echo -e "$color$message"
+ tput sgr0 # Reset to normal.
+ return
+}
+
+
+print_help()
+{
+ cat << EOSTREAM
+pnd_make.sh - A script to package "something" into a PND.
+
+Usage:
+ $(basename ${0}) {--directory|-d} <folder> {--pndname|-p} <file> [{--compress-squashfs|-c}]
+ [{--genpxml} <file>] [{--icon|-i} <file>] [{--pxml|-x} <file>]
+ [{--schema|-s} <file>] [{--help|-h}]
+
+
+Switches:
+ --compress-squashfs / -c Define whether or not the pnd should be compressed using
+ squashfs. If this parameter is selected, a compressed pnd
+ will be created.
+
+ --directory / -d Sets the folder that is to be used for the resulting pnd
+ to <folder>. This option is mandatory for the script to
+ function correctly.
+
+ --genpxml Sets the script used for generating a PXML file (if none
+ is available already) to <file>. Please make sure to either
+ provide a full path or prefix a script in the current folder
+ with './' so that the script can actually be executed. If
+ this variable is not specified, $GENPXML_PATH
+ will be used.
+
+ --help / -h Displays this help text.
+
+ --icon / -i Sets the icon that will be appended in the pnd to <file>.
+
+ --pndname / -p Sets the output filename of the resulting pnd to <file>.
+ This option is mandatory for the script to function
+ correctly.
+
+ --pxml / -x Sets the PXML file that is to be used to <file>. If you
+ neither provide a PXML file or set this entry to 'guess',
+ an existing 'PXML.xml' in your selected '--directory'
+ will be used, or the script $GENPXML_PATH
+ will be called to try to generate a basic PXML file for you.
+
+ --schema / -s Sets the schema file, that is to be used for validation,
+ to <file. If this is not defined, the script will try to
+ use the file '$PXML_schema'. If this fails,
+ a warning is issued.
+
+If you select the option to create a compressed squashfs, a version >=4.0 of squashfs
+is required to be available in your PATH.
+EOSTREAM
+}
+
+
+# Parse command line parameters
+while [ "${1}" != "" ]; do
+ if [ "${1}" = "--compress-squashfs" ] || [ "${1}" = "-c" ];
+ then
+ SQUASH=1
+ shift 1
+ elif [ "${1}" = "--directory" ] || [ "${1}" = "-d" ];
+ then
+ FOLDER=$2
+ shift 2
+ elif [ "${1}" = "--genpxml" ];
+ then
+ GENPXML_PATH=$2
+ shift 2
+ elif [ "${1}" = "--help" ] || [ "${1}" = "-h" ];
+ then
+ print_help
+ exit 0
+ elif [ "${1}" = "--icon" ] || [ "${1}" = "-i" ];
+ then
+ ICON=$2
+ shift 2
+ elif [ "${1}" = "--pndname" ] || [ "${1}" = "-p" ];
+ then
+ PNDNAME=$2
+ shift 2
+ elif [ "${1}" = "--pxml" ] || [ "${1}" = "-x" ];
+ then
+ PXML=$2
+ shift 2
+ elif [ "${1}" = "--schema" ] || [ "${1}" = "-f" ]
+ then
+ PXML_schema=$2
+ shift 2
+ else
+ cecho "ERROR: '$1' is not a known argument. Printing --help and aborting." $red
+ print_help
+ exit 1
+ fi
done
-rnd=$RANDOM; # random number for genpxml and index$rnd.xml
-#generate pxml if guess or empty
-if [ ! $PXML ] || [ $PXML = "guess" ] && [ $PNDNAME ] && [ $FOLDER ]; then
- PXMLtxt=$(/home/user/libpnd/pandora-libraries/testdata/scripts/genpxml.sh $FOLDER $ICON)
- PXML=$FOLDER/PXML.xml
- echo "$PXMLtxt" > $FOLDER/PXML.xml
+# Generate a PXML if the param is set to Guess or it is empty.
+if [ ! $PXML ] || [ $PXML = "guess" ] && [ $PNDNAME ] && [ $FOLDER ];
+then
+ if [ -f $FOLDER/PXML.xml ]; # use the already existing PXML.xml file if there is one...
+ then
+ PXML=$FOLDER/PXML.xml
+ PXML_ALREADY_EXISTING="true"
+ else
+ if [ -f $GENPXML_PATH ];
+ then
+ $GENPXML_PATH --src $FOLDER --dest $FOLDER --author $USER
+ if [ -f $FOLDER/PXML.xml ];
+ then
+ PXML_GENERATED="true"
+ else
+ cecho "ERROR: Generating a PXML file using '$GENPXML_PATH' failed.
+Please generate a PXML file manually." $red
+ exit 1
+ fi
+ else
+ cecho "ERROR: Could not find '$GENPXML_PATH' for generating a PXML file." $red
+ exit 1
+ fi
+ fi
fi
-#check arguments
-if [ ! $PNDNAME ] || [ ! $FOLDER ] || [ ! $PXML ]; then
- echo " Usage: pnd_make.sh -p your.pnd -d folder/containing/your/app/ -x
- your.pxml (or \"guess\" to try to generate it from the folder) -i icon.png"
+
+# Probe if required variables were set
+echo -e
+cecho "Checking if all required variables were set." $green
+if [ ! $PNDNAME ] || [ ! $FOLDER ] || [ ! $PXML ];
+then
+ echo -e
+ cecho "ERROR: Not all required options were set! Please see the --help information below." $red
+ echo -e
+ print_help
exit 1
+else
+ echo "PNDNAME set to '$PNDNAME'."
+fi
+# Check if the selected folder actually exists
+if [ ! -d $FOLDER ];
+then
+ echo -e
+ cecho "ERROR: '$FOLDER' doesn't exist or is not a folder." $red
+ exit 1
+else
+ echo "FOLDER set to '$FOLDER'."
+fi
+# Check if the selected PXML file actually exists
+if [ ! -f $PXML ];
+then
+ echo -e
+ cecho "ERROR: '$PXML' doesn't exist or is not a file." $red
+ exit 1
+else
+ if [ $PXML_ALREADY_EXISTING ];
+ then
+ echo "You have not explicitly specified a PXML to use, but an existing file was
+found. Will be using this one."
+ elif [ $PXML_GENERATED ];
+ then
+ echo "A PXML file was generated for you using '$GENPXML_PATH'. This file will
+not be removed at the end of this script because you might want to review it, adjust
+single entries and rerun the script to generate a pnd with a PXML file with all the
+information you want to have listed."
+ fi
+ echo "PXML set to '$PXML'."
fi
-if [ ! -d $FOLDER ]; then echo "$FOLDER doesnt exist"; exit 1; fi #check if folder actually exists
-if [ ! -f $PXML ]; then echo "$PXML doesnt exist"; exit 1; fi #check if pxml actually exists
-#make iso from folder
-if [ ! $SQUASH ]; then
- mkisofs -o $PNDNAME.iso -R $FOLDER
+# Print the other variables:
+if [ $ICON ];
+then
+ if [ ! -f $ICON ]
+ then
+ cecho "WARNING: '$ICON' doesn't exist, will not append the selected icon to the pnd." $red
+ else
+ echo "ICON set to '$ICON'."
+ USE_ICON="true"
+ fi
+fi
+if [ $SQUASH ];
+then
+ echo "Will use a squashfs for '$PNDNAME'."
+fi
+
+
+# Validate the PXML file (if xmllint is available)
+# Errors and problems in this section will be shown but are not fatal.
+echo -e
+cecho "Trying to validate '$PXML' now. Will be using '$PXML_schema' to do so." $green
+which xmllint &> /dev/null
+if [ "$?" -ne "0" ];
+then
+ VALIDATED=false
+ cecho "WARNING: Could not find 'xmllint'. Validity check of '$PXML' is not possible!" $red
else
- if [ $(mksquashfs -version | awk '{if ($3 >= 4) print 1}') = 1 ]; then
- echo "your squashfs version is older then version 4, please upgrade to 4.0 or later"
+ if [ ! -f "$PXML_schema" ];
+ then
+ VALIDATED=false
+ cecho "WARNING: Could not find '$PXML_schema'. If you want to validate your
+PXML file please make sure to provide a schema using the --schema option." $red
+ else
+ xmllint --noout --schema $PXML_schema $PXML
+ if [ "$?" -ne "0" ]; then VALIDATED=false; else VALIDATED=true; fi
+ fi
+fi
+# Print some message at the end about the validation in case the user missed the output above
+if [ $VALIDATED = "false" ]
+then
+ cecho "WARNING: Could not successfully validate '$PXML'. Please check the output
+above. This does not mean that your pnd will be broken. Either you are not following the strict
+syntax required for validation or you don't have all files/programs required for validating." $red
+else
+ cecho "Your file '$PXML' was validated successfully. The resulting pnd should
+work nicely with libpnd." $green
+fi
+
+
+# Make iso from folder
+echo -e
+cecho "Creating an iso file based on '$FOLDER'." $green
+if [ $SQUASH ];
+then
+ check_for_tool mksquashfs
+ if [ $(mksquashfs -version | awk 'BEGIN{r=0} $3>=4{r=1} END{print r}') -eq 0 ];
+ then
+ cecho "ERROR: Your squashfs version is older then version 4, please upgrade to 4.0 or later" $red
exit 1
fi
- mksquashfs -no-recovery -nopad $FOLDER $PNDNAME.iso
+ mksquashfs $FOLDER $PNDNAME.iso -nopad -no-recovery
+else
+ check_for_tool mkisofs
+ mkisofs -o $PNDNAME.iso -R $FOLDER
+fi
+
+# Check that the iso file was actually created before continuing
+if [ ! -f $PNDNAME.iso ];
+then
+ cecho "ERROR: The temporary file '$PNDNAME.iso' could not be created.
+Please check the output above for any errors and retry after fixing them. Aborting." $red
+ exit 1
fi
-#append pxml to iso
-cat $PNDNAME.iso $PXML > $PNDNAME
+
+
+# Append pxml to iso
+echo -e
+cecho "Appending '$PXML' to the created iso file." $green
+cat $PNDNAME.iso $PXML > $PNDNAME
rm $PNDNAME.iso #cleanup
-#append icon if specified
-if [ $ICON ]; then # check if we want to add an icon
- if [ ! -f $ICON ]; then #does the icon actually exist?
- echo "$ICON doesnt exist"
- else # yes
+
+# Append icon if specified and available
+if [ $USE_ICON ];
+then
+ echo -e
+ cecho "Appending the icon '$ICON' to the pnd." $green
mv $PNDNAME $PNDNAME.tmp
cat $PNDNAME.tmp $ICON > $PNDNAME # append icon
rm $PNDNAME.tmp #cleanup
- fi
fi
-if [ $PXML = "guess" ];then rm $FOLDER/PXML.xml; fi #cleanup
+
+# Final message
+echo -e
+if [ -f $PNDNAME ];
+then
+ cecho "Successfully finished creating the pnd '$PNDNAME'." $green
+else
+ cecho "There seems to have been a problem and '$PNDNAME' was not created. Please check
+the output above for any error messages. A possible cause for this is that there was
+not enough space available." $red
+ exit 1
+fi
+
+
+#if [ $PXML = "guess" ];then rm $FOLDER/PXML.xml; fi #cleanup
diff --git a/backends/platform/openpandora/build/runscummvm.sh b/backends/platform/openpandora/build/runscummvm.sh
index 48d24a2b81..9c9d8362cb 100755
--- a/backends/platform/openpandora/build/runscummvm.sh
+++ b/backends/platform/openpandora/build/runscummvm.sh
@@ -11,4 +11,4 @@ mkdir saves
mkdir runtime
cd runtime
-../bin/scummvm --fullscreen --gfx-mode=2x --config=../scummvm.config
+../bin/scummvm --fullscreen --gfx-mode=2x --config=../scummvm.config --themepath=../data
diff --git a/backends/platform/openpandora/op-bundle.mk b/backends/platform/openpandora/op-bundle.mk
index 163f4711ce..089430f43c 100755
--- a/backends/platform/openpandora/op-bundle.mk
+++ b/backends/platform/openpandora/op-bundle.mk
@@ -75,11 +75,10 @@ endif
$(CP) $(libloc)/../arm-angstrom-linux-gnueabi/usr/lib/libFLAC.so.8.2.0 $(bundle_name)/scummvm/lib/libFLAC.so.8
- $(srcdir)/backends/platform/openpandora/build/pnd_make.sh -p $(bundle_name).pnd -d $(bundle_name)/scummvm -x $(bundle_name)/scummvm/data/PXML.xml -i $(bundle_name)/scummvm/icon/scummvm.png
+ $(srcdir)/backends/platform/openpandora/build/pnd_make.sh -p $(bundle_name).pnd -c -d $(bundle_name)/scummvm -x $(bundle_name)/scummvm/data/PXML.xml -i $(bundle_name)/scummvm/icon/scummvm.png
$(CP) $(srcdir)/backends/platform/openpandora/build/README-PND.txt $(bundle_name)
tar -cvjf $(bundle_name)-pnd.tar.bz2 $(bundle_name).pnd $(bundle_name)/README-PND.txt
rm -R ./$(bundle_name)
-# rm $(bundle_name).pnd
.PHONY: op-bundle op-pnd
diff --git a/backends/platform/ps2/DmaPipe.h b/backends/platform/ps2/DmaPipe.h
index fd8f55c154..c99da1c395 100644
--- a/backends/platform/ps2/DmaPipe.h
+++ b/backends/platform/ps2/DmaPipe.h
@@ -64,4 +64,3 @@ private:
};
#endif //__DMAPIPE_H__
-
diff --git a/backends/platform/ps2/Gs2dScreen.cpp b/backends/platform/ps2/Gs2dScreen.cpp
index 332b2a3c03..ddc1bdf668 100644
--- a/backends/platform/ps2/Gs2dScreen.cpp
+++ b/backends/platform/ps2/Gs2dScreen.cpp
@@ -816,5 +816,3 @@ const uint32 Gs2dScreen::_binaryClut[16] __attribute__((aligned(64))) = {
GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80),
GS_RGBA(0xFF, 0xFF, 0xFF, 0x80), GS_RGBA(0xFF, 0xFF, 0xFF, 0x80)
};
-
-
diff --git a/backends/platform/ps2/Makefile.gdb b/backends/platform/ps2/Makefile.gdb
index 1e2510d3f4..8ca47cd9f1 100644
--- a/backends/platform/ps2/Makefile.gdb
+++ b/backends/platform/ps2/Makefile.gdb
@@ -102,4 +102,3 @@ all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $^ $(LDFLAGS) -o $@
-
diff --git a/backends/platform/ps2/Makefile.ps2 b/backends/platform/ps2/Makefile.ps2
index 77cc735c5f..d6ce08ae84 100644
--- a/backends/platform/ps2/Makefile.ps2
+++ b/backends/platform/ps2/Makefile.ps2
@@ -105,4 +105,3 @@ all: $(TARGET)
$(TARGET): $(OBJS)
$(LD) $^ $(LDFLAGS) -o $@
-
diff --git a/backends/platform/ps2/asyncfio.cpp b/backends/platform/ps2/asyncfio.cpp
index d3d8eb65c7..3f20349107 100644
--- a/backends/platform/ps2/asyncfio.cpp
+++ b/backends/platform/ps2/asyncfio.cpp
@@ -237,4 +237,3 @@ bool AsyncFio::fioAvail(void) {
}
return retVal;
}
-
diff --git a/backends/platform/ps2/asyncfio.h b/backends/platform/ps2/asyncfio.h
index 26ee3f63dd..31684d4349 100644
--- a/backends/platform/ps2/asyncfio.h
+++ b/backends/platform/ps2/asyncfio.h
@@ -50,4 +50,3 @@ private:
volatile int * volatile _runningOp;
volatile int _ioSlots[MAX_HANDLES];
};
-
diff --git a/backends/platform/ps2/eecodyvdfs.c b/backends/platform/ps2/eecodyvdfs.c
index e9d4bc6a5c..f410b0c8ec 100644
--- a/backends/platform/ps2/eecodyvdfs.c
+++ b/backends/platform/ps2/eecodyvdfs.c
@@ -63,5 +63,3 @@ int driveStandby(void) {
driveStopped = 0;
return *(int *)sbuff;
}
-
-
diff --git a/backends/platform/ps2/eecodyvdfs.h b/backends/platform/ps2/eecodyvdfs.h
index 4b383795c7..1d43fb662f 100644
--- a/backends/platform/ps2/eecodyvdfs.h
+++ b/backends/platform/ps2/eecodyvdfs.h
@@ -49,4 +49,3 @@ extern "C" {
#endif
#endif
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
index ebf57328dd..ad86631cfd 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/cdtypes.h
@@ -131,4 +131,3 @@ typedef struct {
} ISOPvd __attribute__ ((packed)); // 0x800
#endif // __CDTYPES_H__
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
index 77a5b93720..e55e62853b 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.c
@@ -344,4 +344,3 @@ int strnicmp(const char *s1, const char *s2, int n) {
}
return 0;
}
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
index 902065f385..b9f1edc194 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/codyvdfs.h
@@ -81,4 +81,3 @@ int checkDiscReady(int retries);
int strnicmp(const char *s1, const char *s2, int n);
#endif // __MYCDVDFS_H__
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
index 8aecece3d9..f0a06f927b 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.c
@@ -262,4 +262,3 @@ int cd_dclose(iop_file_t *handle) {
hd->size = hd->lba = 0;
return 0;
}
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
index d0aa9533f2..db942b0b7e 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/fiofs.h
@@ -34,4 +34,3 @@ int cd_dread(iop_file_t *handle, fio_dirent_t *buf);
int cd_dclose(iop_file_t *handle);
#endif // __FIOFS_H__
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst
index eb85e04462..4950bf8ced 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/imports.lst
@@ -61,5 +61,3 @@ I_StartThread
I_GetThreadId
I_DelayThread
thbase_IMPORTS_end
-
-
diff --git a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
index 3e45a5ff3d..5b760faa06 100644
--- a/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
+++ b/backends/platform/ps2/iop/CoDyVDfs/iop/rpcfs.c
@@ -111,5 +111,3 @@ void *rpcServer(int func, void *data, int size) {
}
return NULL;
}
-
-
diff --git a/backends/platform/ps2/iop/rpckbd/src/imports.lst b/backends/platform/ps2/iop/rpckbd/src/imports.lst
index 41e13e6e73..e9ba01e020 100644
--- a/backends/platform/ps2/iop/rpckbd/src/imports.lst
+++ b/backends/platform/ps2/iop/rpckbd/src/imports.lst
@@ -55,4 +55,3 @@ I_UsbSetDevicePrivateData
I_UsbTransfer
I_UsbRegisterDriver
usbd_IMPORTS_end
-
diff --git a/backends/platform/ps2/irxboot.cpp b/backends/platform/ps2/irxboot.cpp
index 5072e8a52c..aa904d4f5b 100644
--- a/backends/platform/ps2/irxboot.cpp
+++ b/backends/platform/ps2/irxboot.cpp
@@ -210,4 +210,3 @@ int loadIrxModules(int device, const char *irxPath, IrxReference **modules) {
sioprintf("%s\n", resModules[i].path);
return curModule - resModules;
}
-
diff --git a/backends/platform/ps2/irxboot.h b/backends/platform/ps2/irxboot.h
index ef1bfb1256..81b47a37c6 100644
--- a/backends/platform/ps2/irxboot.h
+++ b/backends/platform/ps2/irxboot.h
@@ -84,4 +84,3 @@ struct IrxReference {
int loadIrxModules(int device, const char *irxPath, IrxReference **modules);
#endif // __IRXBOOT_H__
-
diff --git a/backends/platform/ps2/ps2debug.cpp b/backends/platform/ps2/ps2debug.cpp
index 1fc3d50170..300e18316f 100644
--- a/backends/platform/ps2/ps2debug.cpp
+++ b/backends/platform/ps2/ps2debug.cpp
@@ -44,4 +44,3 @@ void sioprintf(const char *zFormat, ...) {
pos++;
}
}
-
diff --git a/backends/platform/ps2/ps2debug.h b/backends/platform/ps2/ps2debug.h
index 127032ae80..02831e0623 100644
--- a/backends/platform/ps2/ps2debug.h
+++ b/backends/platform/ps2/ps2debug.h
@@ -28,4 +28,3 @@
void sioprintf(const char *zFormat, ...);
#endif // __PS2DEBUG_H__
-
diff --git a/backends/platform/ps2/ps2input.cpp b/backends/platform/ps2/ps2input.cpp
index 07104a6d97..6f36c5ff90 100644
--- a/backends/platform/ps2/ps2input.cpp
+++ b/backends/platform/ps2/ps2input.cpp
@@ -545,5 +545,3 @@ const Common::KeyCode Ps2Input::_padFlags[16] = {
Common::KEYCODE_INVALID, // Cross
Common::KEYCODE_INVALID // Square
};
-
-
diff --git a/backends/platform/ps2/ps2input.h b/backends/platform/ps2/ps2input.h
index c5d2f5b840..b97daac042 100644
--- a/backends/platform/ps2/ps2input.h
+++ b/backends/platform/ps2/ps2input.h
@@ -61,4 +61,3 @@ private:
};
#endif // __PS2INPUT_H__
-
diff --git a/backends/platform/ps2/ps2mutex.cpp b/backends/platform/ps2/ps2mutex.cpp
index 75b3a15482..5b30fa7862 100644
--- a/backends/platform/ps2/ps2mutex.cpp
+++ b/backends/platform/ps2/ps2mutex.cpp
@@ -97,4 +97,3 @@ void OSystem_PS2::deleteMutex(MutexRef mutex) {
sysMutex->sema = -1;
SignalSema(_mutexSema);
}
-
diff --git a/backends/platform/ps2/ps2pad.cpp b/backends/platform/ps2/ps2pad.cpp
index 00512c40c3..eeb9dfbd93 100644
--- a/backends/platform/ps2/ps2pad.cpp
+++ b/backends/platform/ps2/ps2pad.cpp
@@ -148,5 +148,3 @@ void Ps2Pad::readPad(uint16 *pbuttons, int16 *joyh, int16 *joyv) {
*pbuttons = 0;
}
}
-
-
diff --git a/backends/platform/ps2/ps2pad.h b/backends/platform/ps2/ps2pad.h
index 16c7c796d3..aebb3c6339 100644
--- a/backends/platform/ps2/ps2pad.h
+++ b/backends/platform/ps2/ps2pad.h
@@ -63,4 +63,3 @@ private:
};
#endif //__PS2PAD_H__
-
diff --git a/backends/platform/ps2/rpckbd.c b/backends/platform/ps2/rpckbd.c
index 0d37e4cfcb..0bb45208f5 100644
--- a/backends/platform/ps2/rpckbd.c
+++ b/backends/platform/ps2/rpckbd.c
@@ -175,4 +175,3 @@ int PS2KbdResetKeymap(void)
} else
return -1;
}
-
diff --git a/backends/platform/ps2/rpckbd.h b/backends/platform/ps2/rpckbd.h
index bc94cddf1b..bffd8e5be5 100644
--- a/backends/platform/ps2/rpckbd.h
+++ b/backends/platform/ps2/rpckbd.h
@@ -47,4 +47,3 @@ extern "C" {
#endif
#endif
-
diff --git a/backends/platform/ps2/sdlkeys.h b/backends/platform/ps2/sdlkeys.h
index b2f783cedd..791b1eb190 100644
--- a/backends/platform/ps2/sdlkeys.h
+++ b/backends/platform/ps2/sdlkeys.h
@@ -260,5 +260,3 @@ enum SdlKeyCodes {
};
#endif
-
-
diff --git a/backends/platform/psp/Makefile b/backends/platform/psp/Makefile
index 899bf37e80..7f4f20446e 100644
--- a/backends/platform/psp/Makefile
+++ b/backends/platform/psp/Makefile
@@ -201,4 +201,3 @@ SCEkxploit: $(TARGET).elf $(PSP_EBOOT_SFO)
$(PACK_PBP) "%__SCE__$(TARGET)/$(PSP_EBOOT)" $(PSP_EBOOT_SFO) $(PSP_EBOOT_ICON) \
$(PSP_EBOOT_ICON1) $(PSP_EBOOT_PIC0) $(PSP_EBOOT_PIC1) \
$(PSP_EBOOT_SND0) NULL $(PSP_EBOOT_PSAR)
-
diff --git a/backends/platform/psp/README.PSP b/backends/platform/psp/README.PSP
index dcfa30898c..a101481dca 100644
--- a/backends/platform/psp/README.PSP
+++ b/backends/platform/psp/README.PSP
@@ -169,4 +169,3 @@ Joost Peters (joostp@scummvm.org)
Paolo Costabel (paoloc@pacbell.net)
Thomas Mayer (tommybear@internode.on.net)
Yotam Barnoy (yotambarnoy@gmail.com)
-
diff --git a/backends/platform/psp/README.PSP.in b/backends/platform/psp/README.PSP.in
index 978f8a60bd..1ee99db84b 100644
--- a/backends/platform/psp/README.PSP.in
+++ b/backends/platform/psp/README.PSP.in
@@ -169,4 +169,3 @@ Joost Peters (joostp@scummvm.org)
Paolo Costabel (paoloc@pacbell.net)
Thomas Mayer (tommybear@internode.on.net)
Yotam Barnoy (yotambarnoy@gmail.com)
-
diff --git a/backends/platform/psp/display_manager.cpp b/backends/platform/psp/display_manager.cpp
index 422805714f..cdb130e2a0 100644
--- a/backends/platform/psp/display_manager.cpp
+++ b/backends/platform/psp/display_manager.cpp
@@ -479,4 +479,3 @@ Common::List<Graphics::PixelFormat> DisplayManager::getSupportedPixelFormats() c
return list;
}
-
diff --git a/backends/platform/psp/dummy.cpp b/backends/platform/psp/dummy.cpp
index 748ac8cbf3..998ecf1488 100644
--- a/backends/platform/psp/dummy.cpp
+++ b/backends/platform/psp/dummy.cpp
@@ -53,4 +53,4 @@
getsockopt(0, 0, 0, NULL, NULL);
return i;
-} \ No newline at end of file
+}
diff --git a/backends/platform/psp/image_viewer.cpp b/backends/platform/psp/image_viewer.cpp
index 1ed7698bc8..98205ddee9 100644
--- a/backends/platform/psp/image_viewer.cpp
+++ b/backends/platform/psp/image_viewer.cpp
@@ -69,7 +69,7 @@ bool ImageViewer::load(int imageNum) {
assert(_renderer);
// Load a PNG into our buffer and palette. Size it by the actual size of the image
- PngLoader image(file, *_buffer, *_palette, Buffer::kSizeBySourceSize);
+ PngLoader image(*file, *_buffer, *_palette, Buffer::kSizeBySourceSize);
PngLoader::Status status = image.allocate(); // allocate the buffers for the file
@@ -321,4 +321,4 @@ void ImageViewer::handleEvent(uint32 event) {
PSP_ERROR("Unknown event %d\n", event);
break;
}
-} \ No newline at end of file
+}
diff --git a/backends/platform/psp/image_viewer.h b/backends/platform/psp/image_viewer.h
index ad188536a3..91a70b85cc 100644
--- a/backends/platform/psp/image_viewer.h
+++ b/backends/platform/psp/image_viewer.h
@@ -99,4 +99,4 @@ public:
void setDisplayManager(DisplayManager *displayManager) { _displayManager = displayManager; }
};
-#endif /* PSP_IMAGE_VIEWER_H */ \ No newline at end of file
+#endif /* PSP_IMAGE_VIEWER_H */
diff --git a/backends/platform/psp/input.cpp b/backends/platform/psp/input.cpp
index a9ad441b4d..5e20fb1e43 100644
--- a/backends/platform/psp/input.cpp
+++ b/backends/platform/psp/input.cpp
@@ -566,5 +566,3 @@ void InputHandler::setButtonsForImageViewer() {
_nub.getPad().getButton(ButtonPad::BTN_RIGHT, UNSHIFTED).setPspEvent(PSP_EVENT_IMAGE_VIEWER, ImageViewer::EVENT_MOVE_RIGHT,
PSP_EVENT_IMAGE_VIEWER, ImageViewer::EVENT_MOVE_STOP);
}
-
-
diff --git a/backends/platform/psp/memory.h b/backends/platform/psp/memory.h
index b5e29af634..5b728460fc 100644
--- a/backends/platform/psp/memory.h
+++ b/backends/platform/psp/memory.h
@@ -122,5 +122,3 @@ public:
};
#endif /* PSP_INCLUDE_SWAP */
-
-
diff --git a/backends/platform/psp/mp3.cpp b/backends/platform/psp/mp3.cpp
index 266e31e445..3dbf31112a 100644
--- a/backends/platform/psp/mp3.cpp
+++ b/backends/platform/psp/mp3.cpp
@@ -179,8 +179,7 @@ bool Mp3PspStream::loadStartAudioModule(const char *modname, int partition){
// TODO: make parallel function for unloading the 1.50 modules
Mp3PspStream::Mp3PspStream(Common::SeekableReadStream *inStream, DisposeAfterUse::Flag dispose) :
- _inStream(inStream),
- _disposeAfterUse(dispose),
+ _inStream(inStream, dispose),
_pcmLength(0),
_posInFrame(0),
_state(MP3_STATE_INIT),
@@ -274,9 +273,6 @@ Mp3PspStream::~Mp3PspStream() {
deinitStream();
releaseStreamME(); // free the memory used for this stream
-
- if (_disposeAfterUse == DisposeAfterUse::YES)
- delete _inStream;
}
void Mp3PspStream::deinitStream() {
diff --git a/backends/platform/psp/mp3.h b/backends/platform/psp/mp3.h
index 8b01fe4872..f7bfdda254 100644
--- a/backends/platform/psp/mp3.h
+++ b/backends/platform/psp/mp3.h
@@ -23,6 +23,7 @@
#ifndef SOUND_MP3_PSP_H
#define SOUND_MP3_PSP_H
+#include "common/ptr.h"
#include "common/types.h"
#include "common/scummsys.h"
@@ -48,8 +49,7 @@ protected:
byte _codecInBuffer[3072] __attribute__((aligned(64))); // the codec always needs alignment
unsigned long _codecParams[65]__attribute__((aligned(64))); // TODO: change to struct
- Common::SeekableReadStream *_inStream;
- DisposeAfterUse::Flag _disposeAfterUse;
+ Common::DisposablePtr<Common::SeekableReadStream> _inStream;
uint32 _pcmLength; // how many pcm samples we have for this type of file (x2 this for stereo)
diff --git a/backends/platform/psp/png_loader.cpp b/backends/platform/psp/png_loader.cpp
index 16377539c8..4de13d1e73 100644
--- a/backends/platform/psp/png_loader.cpp
+++ b/backends/platform/psp/png_loader.cpp
@@ -78,7 +78,7 @@ PngLoader::Status PngLoader::allocate() {
bool PngLoader::load() {
DEBUG_ENTER_FUNC();
// Try to load the image
- _file->seek(0); // Go back to start
+ _file.seek(0); // Go back to start
if (!loadImageIntoBuffer()) {
PSP_DEBUG_PRINT("failed to load image\n");
@@ -99,11 +99,9 @@ void PngLoader::warningFn(png_structp png_ptr, png_const_charp warning_msg) {
// Read function for png library to be able to read from our SeekableReadStream
//
void PngLoader::libReadFunc(png_structp pngPtr, png_bytep data, png_size_t length) {
- Common::SeekableReadStream *file;
+ Common::SeekableReadStream &file = *(Common::SeekableReadStream *)pngPtr->io_ptr;
- file = (Common::SeekableReadStream *)pngPtr->io_ptr;
-
- file->read(data, length);
+ file.read(data, length);
}
bool PngLoader::basicImageLoad() {
@@ -120,7 +118,7 @@ bool PngLoader::basicImageLoad() {
return false;
}
// Set the png lib to use our read function
- png_set_read_fn(_pngPtr, (void *)_file, libReadFunc);
+ png_set_read_fn(_pngPtr, &_file, libReadFunc);
unsigned int sig_read = 0;
diff --git a/backends/platform/psp/png_loader.h b/backends/platform/psp/png_loader.h
index 0ff9d8a65d..48a3220d78 100644
--- a/backends/platform/psp/png_loader.h
+++ b/backends/platform/psp/png_loader.h
@@ -34,7 +34,7 @@ private:
static void warningFn(png_structp png_ptr, png_const_charp warning_msg);
static void libReadFunc(png_structp pngPtr, png_bytep data, png_size_t length);
- Common::SeekableReadStream *_file;
+ Common::SeekableReadStream &_file;
Buffer *_buffer;
Palette *_palette;
@@ -57,7 +57,7 @@ public:
BAD_FILE
};
- PngLoader(Common::SeekableReadStream *file, Buffer &buffer, Palette &palette,
+ PngLoader(Common::SeekableReadStream &file, Buffer &buffer, Palette &palette,
Buffer::HowToSize sizeBy = Buffer::kSizeByTextureSize) :
_file(file), _buffer(&buffer), _palette(&palette),
_width(0), _height(0), _paletteSize(0),
diff --git a/backends/platform/psp/portdefs.h b/backends/platform/psp/portdefs.h
index feb0c944ee..e8a28b31e2 100644
--- a/backends/platform/psp/portdefs.h
+++ b/backends/platform/psp/portdefs.h
@@ -53,5 +53,3 @@
//#define printf pspDebugScreenPrintf
#endif /* PORTDEFS_H */
-
-
diff --git a/backends/platform/psp/pspkeyboard.cpp b/backends/platform/psp/pspkeyboard.cpp
index 43c4cada15..66efe9145d 100644
--- a/backends/platform/psp/pspkeyboard.cpp
+++ b/backends/platform/psp/pspkeyboard.cpp
@@ -298,7 +298,7 @@ bool PSPKeyboard::load() {
goto ERROR;
}
- PngLoader image(file, _buffers[i], _palettes[i]);
+ PngLoader image(*file, _buffers[i], _palettes[i]);
if (image.allocate() != PngLoader::OK) {
PSP_ERROR("Failed to allocate memory for keyboard image %s\n", _guiStrings[i]);
diff --git a/backends/platform/psp/rtc.cpp b/backends/platform/psp/rtc.cpp
index 6c8e919986..cbbb7d3f80 100644
--- a/backends/platform/psp/rtc.cpp
+++ b/backends/platform/psp/rtc.cpp
@@ -83,4 +83,3 @@ uint32 PspRtc::getMicros() {
return ticks[0];
}
-
diff --git a/backends/platform/psp/thread.cpp b/backends/platform/psp/thread.cpp
index 5f38a54ab7..57370f7685 100644
--- a/backends/platform/psp/thread.cpp
+++ b/backends/platform/psp/thread.cpp
@@ -228,4 +228,3 @@ void PspCondition::wait(PspMutex &externalMutex) {
externalMutex.lock(); // must lock external mutex here for continuation
}
-
diff --git a/backends/platform/psp/thread.h b/backends/platform/psp/thread.h
index a2f3b5eda2..ca94b8c82c 100644
--- a/backends/platform/psp/thread.h
+++ b/backends/platform/psp/thread.h
@@ -105,5 +105,3 @@ enum StackSizes {
};
#endif /* PSP_THREADS_H */
-
-
diff --git a/backends/platform/psp/trace.cpp b/backends/platform/psp/trace.cpp
index b799b4e870..008b508b7e 100644
--- a/backends/platform/psp/trace.cpp
+++ b/backends/platform/psp/trace.cpp
@@ -148,4 +148,3 @@ void mipsBacktrace(uint32 levels, void **addresses) {
}
}
}
-
diff --git a/engines/tsage/blueforce_logic.h b/backends/platform/sdl/macosx/appmenu_osx.h
index 9237e50a13..005414b789 100644..100755
--- a/engines/tsage/blueforce_logic.h
+++ b/backends/platform/sdl/macosx/appmenu_osx.h
@@ -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
@@ -20,23 +20,13 @@
*
*/
-#ifndef TSAGE_BLUEFORCE_LOGIC_H
-#define TSAGE_BLUEFORCE_LOGIC_H
+#ifndef APPMENU_OSX_H
+#define APPMENU_OSX_H
-#include "common/scummsys.h"
-#include "tsage/events.h"
-#include "tsage/core.h"
-#include "tsage/scenes.h"
-#include "tsage/globals.h"
+#if defined(MACOSX)
-namespace tSage {
+void replaceApplicationMenuItems();
-class BlueForceGame: public Game {
-public:
- virtual void start();
- virtual Scene *createScene(int sceneNumber);
-};
-
-} // End of namespace tSage
+#endif // MACOSX
#endif
diff --git a/backends/platform/sdl/macosx/appmenu_osx.mm b/backends/platform/sdl/macosx/appmenu_osx.mm
new file mode 100755
index 0000000000..bb089a6b61
--- /dev/null
+++ b/backends/platform/sdl/macosx/appmenu_osx.mm
@@ -0,0 +1,110 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Disable symbol overrides so that we can use system headers.
+#define FORBIDDEN_SYMBOL_ALLOW_ALL
+
+#include "backends/platform/sdl/macosx/appmenu_osx.h"
+#include "common/translation.h"
+
+#include <Cocoa/Cocoa.h>
+
+// Apple removed setAppleMenu from the header files in 10.4,
+// but as the method still exists we declare it ourselves here.
+// Yes, this works :)
+@interface NSApplication(MissingFunction)
+- (void)setAppleMenu:(NSMenu *)menu;
+@end
+
+void replaceApplicationMenuItems() {
+
+ // Code mainly copied and adapted from SDLmain.m
+ NSMenu *appleMenu;
+ NSMenu *windowMenu;
+ NSMenuItem *menuItem;
+
+ // For some reason [[NSApp mainMenu] removeAllItems] doesn't work and crashes, so we need
+ // to remove the SDL generated menus one by one
+ [[NSApp mainMenu] removeItemAtIndex:0]; // Remove application menu
+ [[NSApp mainMenu] removeItemAtIndex:0]; // Remove "Windows" menu
+
+ // Create new application menu
+ appleMenu = [[NSMenu alloc] initWithTitle:@""];
+
+ // Get current encoding
+#ifdef USE_TRANSLATION
+ NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding]));
+#else
+ NSStringEncoding stringEncoding = NSASCIIStringEncoding;
+#endif
+
+ // Add "About ScummVM" menu item
+ [appleMenu addItemWithTitle:[NSString stringWithCString:_("About ScummVM") encoding:stringEncoding] action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""];
+
+ // Add separator
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ // Add "Hide ScummVM" menu item
+ [appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide ScummVM") encoding:stringEncoding] action:@selector(hide:) keyEquivalent:@"h"];
+
+ // Add "Hide Others" menu item
+ menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:[NSString stringWithCString:_("Hide Others") encoding:stringEncoding] action:@selector(hideOtherApplications:) keyEquivalent:@"h"];
+ [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)];
+
+ // Add "Show All" menu item
+ [appleMenu addItemWithTitle:[NSString stringWithCString:_("Show All") encoding:stringEncoding] action:@selector(unhideAllApplications:) keyEquivalent:@""];
+
+ // Add separator
+ [appleMenu addItem:[NSMenuItem separatorItem]];
+
+ // Add "Quit ScummVM" menu item
+ [appleMenu addItemWithTitle:[NSString stringWithCString:_("Quit ScummVM") encoding:stringEncoding] action:@selector(terminate:) keyEquivalent:@"q"];
+
+ // Put application menu into the menubar
+ menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""];
+ [menuItem setSubmenu:appleMenu];
+ [[NSApp mainMenu] addItem:menuItem];
+
+ // Tell the application object that this is now the application menu
+ [NSApp setAppleMenu:appleMenu];
+
+
+ // Create new "Window" menu
+ windowMenu = [[NSMenu alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding]];
+
+ // Add "Minimize" menu item
+ menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Minimize") encoding:stringEncoding] action:@selector(performMiniaturize:) keyEquivalent:@"m"];
+ [windowMenu addItem:menuItem];
+
+ // Put menu into the menubar
+ menuItem = [[NSMenuItem alloc] initWithTitle:[NSString stringWithCString:_("Window") encoding:stringEncoding] action:nil keyEquivalent:@""];
+ [menuItem setSubmenu:windowMenu];
+ [[NSApp mainMenu] addItem:menuItem];
+
+ // Tell the application object that this is now the window menu.
+ [NSApp setWindowsMenu:windowMenu];
+
+ // Finally give up our references to the objects
+ [appleMenu release];
+ [windowMenu release];
+ [menuItem release];
+}
diff --git a/backends/platform/sdl/macosx/macosx.cpp b/backends/platform/sdl/macosx/macosx.cpp
index 817f61e864..d9de4e5e33 100644
--- a/backends/platform/sdl/macosx/macosx.cpp
+++ b/backends/platform/sdl/macosx/macosx.cpp
@@ -29,9 +29,13 @@
#include "backends/platform/sdl/macosx/macosx.h"
#include "backends/mixer/doublebuffersdl/doublebuffersdl-mixer.h"
+#include "backends/platform/sdl/macosx/appmenu_osx.h"
+#include "backends/updates/macosx/macosx-updates.h"
#include "common/archive.h"
+#include "common/config-manager.h"
#include "common/fs.h"
+#include "common/translation.h"
#include "ApplicationServices/ApplicationServices.h" // for LSOpenFSRef
#include "CoreFoundation/CoreFoundation.h" // for CF* stuff
@@ -51,6 +55,20 @@ void OSystem_MacOSX::initBackend() {
_mixerManager->init();
}
+#ifdef USE_TRANSLATION
+ // We need to initialize the translataion manager here for the following
+ // call to replaceApplicationMenuItems() work correctly
+ TransMan.setLanguage(ConfMan.get("gui_language").c_str());
+#endif // USE_TRANSLATION
+
+ // Replace the SDL generated menu items with our own translated ones on Mac OS X
+ replaceApplicationMenuItems();
+
+#ifdef USE_SPARKLE
+ // Initialize updates manager
+ _updateManager = new MacOSXUpdateManager();
+#endif
+
// Invoke parent implementation of this method
OSystem_POSIX::initBackend();
}
diff --git a/backends/platform/sdl/module.mk b/backends/platform/sdl/module.mk
index e67bf859d6..f1afe37349 100644
--- a/backends/platform/sdl/module.mk
+++ b/backends/platform/sdl/module.mk
@@ -14,7 +14,8 @@ endif
ifdef MACOSX
MODULE_OBJS += \
macosx/macosx-main.o \
- macosx/macosx.o
+ macosx/macosx.o \
+ macosx/appmenu_osx.o
endif
ifdef WIN32
diff --git a/backends/platform/sdl/ps3/ps3.cpp b/backends/platform/sdl/ps3/ps3.cpp
index 16722ccdb7..33586ce693 100644
--- a/backends/platform/sdl/ps3/ps3.cpp
+++ b/backends/platform/sdl/ps3/ps3.cpp
@@ -21,7 +21,7 @@
*/
#define FORBIDDEN_SYMBOL_EXCEPTION_mkdir
-#define FORBIDDEN_SYMBOL_EXCEPTION_time_h //On IRIX, sys/stat.h includes sys/time.h
+#define FORBIDDEN_SYMBOL_EXCEPTION_time_h // sys/stat.h includes sys/time.h
#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h
#include "common/scummsys.h"
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index d05cca4d1f..8dff5cec05 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -49,6 +49,7 @@
#include "backends/graphics/surfacesdl/surfacesdl-graphics.h"
#ifdef USE_OPENGL
#include "backends/graphics/openglsdl/openglsdl-graphics.h"
+#include "graphics/cursorman.h"
#endif
#include "icons/scummvm.xpm"
@@ -174,7 +175,7 @@ void OSystem_SDL::initBackend() {
// If the gfx_mode is from OpenGL, create the OpenGL graphics manager
if (use_opengl) {
- _graphicsManager = new OpenGLSdlGraphicsManager();
+ _graphicsManager = new OpenGLSdlGraphicsManager(_eventSource);
graphicsManagerType = 1;
}
}
@@ -472,7 +473,8 @@ uint32 OSystem_SDL::getMillis() {
}
void OSystem_SDL::delayMillis(uint msecs) {
- SDL_Delay(msecs);
+ if (!g_eventRec.processDelayMillis(msecs))
+ SDL_Delay(msecs);
}
void OSystem_SDL::getTimeAndDate(TimeDate &td) const {
@@ -523,6 +525,22 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
i = _sdlModesCount;
}
+ // Very hacky way to set up the old graphics manager state, in case we
+ // switch from SDL->OpenGL or OpenGL->SDL.
+ //
+ // This is a probably temporary workaround to fix bugs like #3368143
+ // "SDL/OpenGL: Crash when switching renderer backend".
+ const int screenWidth = _graphicsManager->getWidth();
+ const int screenHeight = _graphicsManager->getHeight();
+ const bool arState = _graphicsManager->getFeatureState(kFeatureAspectRatioCorrection);
+ const bool fullscreen = _graphicsManager->getFeatureState(kFeatureFullscreenMode);
+ const bool cursorPalette = _graphicsManager->getFeatureState(kFeatureCursorPalette);
+#ifdef USE_RGB_COLOR
+ const Graphics::PixelFormat pixelFormat = _graphicsManager->getScreenFormat();
+#endif
+
+ bool switchedManager = false;
+
// Loop through modes
while (srcMode->name) {
if (i == mode) {
@@ -534,16 +552,55 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
_graphicsManager = new SurfaceSdlGraphicsManager(_eventSource);
((SurfaceSdlGraphicsManager *)_graphicsManager)->initEventObserver();
_graphicsManager->beginGFXTransaction();
+
+ switchedManager = true;
} else if (_graphicsMode < _sdlModesCount && mode >= _sdlModesCount) {
debug(1, "switching to OpenGL graphics");
delete _graphicsManager;
- _graphicsManager = new OpenGLSdlGraphicsManager();
+ _graphicsManager = new OpenGLSdlGraphicsManager(_eventSource);
((OpenGLSdlGraphicsManager *)_graphicsManager)->initEventObserver();
_graphicsManager->beginGFXTransaction();
+
+ switchedManager = true;
}
_graphicsMode = mode;
- return _graphicsManager->setGraphicsMode(srcMode->id);
+
+ if (switchedManager) {
+#ifdef USE_RGB_COLOR
+ _graphicsManager->initSize(screenWidth, screenHeight, &pixelFormat);
+#else
+ _graphicsManager->initSize(screenWidth, screenHeight, 0);
+#endif
+ _graphicsManager->setFeatureState(kFeatureAspectRatioCorrection, arState);
+ _graphicsManager->setFeatureState(kFeatureFullscreenMode, fullscreen);
+ _graphicsManager->setFeatureState(kFeatureCursorPalette, cursorPalette);
+
+ // Worst part about this right now, tell the cursor manager to
+ // resetup the cursor + cursor palette if necessarily
+
+ // First we need to try to setup the old state on the new manager...
+ if (_graphicsManager->endGFXTransaction() != kTransactionSuccess) {
+ // Oh my god if this failed the client code might just explode.
+ return false;
+ }
+
+ // Next setup the cursor again
+ CursorMan.pushCursor(0, 0, 0, 0, 0, 0);
+ CursorMan.popCursor();
+
+ // Next setup cursor palette if needed
+ if (cursorPalette) {
+ CursorMan.pushCursorPalette(0, 0, 0);
+ CursorMan.popCursorPalette();
+ }
+
+ _graphicsManager->beginGFXTransaction();
+ // Oh my god if this failed the client code might just explode.
+ return _graphicsManager->setGraphicsMode(srcMode->id);
+ } else {
+ return _graphicsManager->setGraphicsMode(srcMode->id);
+ }
}
i++;
diff --git a/backends/platform/sdl/sdl.h b/backends/platform/sdl/sdl.h
index 395b2b3aac..22d79dbfe7 100644
--- a/backends/platform/sdl/sdl.h
+++ b/backends/platform/sdl/sdl.h
@@ -74,12 +74,6 @@ public:
virtual void getTimeAndDate(TimeDate &td) const;
virtual Audio::Mixer *getMixer();
- // HACK: Special SDL events types
- enum SdlEvent {
- kSdlEventExpose = 100,
- kSdlEventResize = 101
- };
-
protected:
bool _inited;
bool _initedSDL;
diff --git a/backends/platform/sdl/win32/win32.cpp b/backends/platform/sdl/win32/win32.cpp
index c1b6c853e4..a2c8e43424 100644
--- a/backends/platform/sdl/win32/win32.cpp
+++ b/backends/platform/sdl/win32/win32.cpp
@@ -23,11 +23,6 @@
// Disable symbol overrides so that we can use system headers.
#define FORBIDDEN_SYMBOL_ALLOW_ALL
-#include "common/scummsys.h"
-#include "common/config-manager.h"
-#include "common/error.h"
-#include "common/textconsole.h"
-
#ifdef WIN32
#define WIN32_LEAN_AND_MEAN
@@ -35,6 +30,11 @@
#undef ARRAYSIZE // winnt.h defines ARRAYSIZE, but we want our own one...
#include <shellapi.h>
+#include "common/scummsys.h"
+#include "common/config-manager.h"
+#include "common/error.h"
+#include "common/textconsole.h"
+
#include <SDL_syswm.h> // For setting the icon
#include "backends/platform/sdl/win32/win32.h"
diff --git a/backends/platform/symbian/.placeholder b/backends/platform/symbian/.placeholder
index dcf4d34a62..4af1e27cc7 100644
--- a/backends/platform/symbian/.placeholder
+++ b/backends/platform/symbian/.placeholder
@@ -1 +1 @@
->> SumthinWicked *grins* << \ No newline at end of file
+>> SumthinWicked *grins* <<
diff --git a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
index 3bdcede76a..3062068852 100644
--- a/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
+++ b/backends/platform/symbian/BuildPackageUpload_AllVersions.pl
@@ -798,5 +798,3 @@ sub PrintMessage()
}
##################################################################################################################
-
-
diff --git a/backends/platform/symbian/README b/backends/platform/symbian/README
index 1f49c52f02..3e3be592e7 100644
--- a/backends/platform/symbian/README
+++ b/backends/platform/symbian/README
@@ -177,4 +177,3 @@ Greetz & such
greetz,
SumthinWicked & Anotherguest
-
diff --git a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg
index 469c815afb..0d22c9d016 100644
--- a/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg
+++ b/backends/platform/symbian/S60/scummvm-CVS-SymbianS60v2.pkg
@@ -61,4 +61,4 @@
""-"!:\system\apps\ScummVM\sdl.ini",FILENULL
; This install layout will let you upgrade to newer versions wihout loss of scummvm.ini.
-; It will remove the config file, std***.txt files & dirs on uninstall. \ No newline at end of file
+; It will remove the config file, std***.txt files & dirs on uninstall.
diff --git a/backends/platform/symbian/S60v3/ScummVM_Loc.rss b/backends/platform/symbian/S60v3/ScummVM_Loc.rss
index d98ef5ae71..7247ce1207 100644
--- a/backends/platform/symbian/S60v3/ScummVM_Loc.rss
+++ b/backends/platform/symbian/S60v3/ScummVM_Loc.rss
@@ -19,4 +19,3 @@ RESOURCE LOCALISABLE_APP_INFO
}
};
}
-
diff --git a/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss b/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss
index 9273312f42..849e0b017f 100644
--- a/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss
+++ b/backends/platform/symbian/S60v3/scummvm_A0000658_loc.rss
@@ -19,4 +19,3 @@ RESOURCE LOCALISABLE_APP_INFO
}
};
}
-
diff --git a/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss b/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss
index 1b1cc9e64f..031be012cd 100644
--- a/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss
+++ b/backends/platform/symbian/S60v3/scummvm_A0000658_reg.rss
@@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO
// Specify the location of the localisable icon/caption definition file
localisable_resource_file = "\\Resource\\Apps\\ScummVM_A0000658_loc";
}
-
diff --git a/backends/platform/symbian/S60v3/scummvm_reg.rss b/backends/platform/symbian/S60v3/scummvm_reg.rss
index 1156694bd7..b5617913d6 100644
--- a/backends/platform/symbian/S60v3/scummvm_reg.rss
+++ b/backends/platform/symbian/S60v3/scummvm_reg.rss
@@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO
// Specify the location of the localisable icon/caption definition file
localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc";
}
-
diff --git a/backends/platform/symbian/S80/ScummVM_S80.mmp.in b/backends/platform/symbian/S80/ScummVM_S80.mmp.in
index efd0d0ee32..5e4b6d447e 100644
--- a/backends/platform/symbian/S80/ScummVM_S80.mmp.in
+++ b/backends/platform/symbian/S80/ScummVM_S80.mmp.in
@@ -107,4 +107,3 @@ LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib bitgdi.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib bafl.lib
-
diff --git a/backends/platform/symbian/S90/Scummvm_S90.mmp.in b/backends/platform/symbian/S90/Scummvm_S90.mmp.in
index 4afdb5c62e..06d65f1641 100644
--- a/backends/platform/symbian/S90/Scummvm_S90.mmp.in
+++ b/backends/platform/symbian/S90/Scummvm_S90.mmp.in
@@ -107,4 +107,3 @@ LIBRARY euser.lib apparc.lib fbscli.lib
LIBRARY estlib.lib apgrfx.lib
LIBRARY gdi.lib hal.lib bitgdi.lib bafl.lib
LIBRARY mediaclientaudiostream.lib efsrv.lib ws32.lib
-
diff --git a/backends/platform/symbian/UIQ2/ScummVM.rss b/backends/platform/symbian/UIQ2/ScummVM.rss
index 3550d82f7d..374bd50680 100644
--- a/backends/platform/symbian/UIQ2/ScummVM.rss
+++ b/backends/platform/symbian/UIQ2/ScummVM.rss
@@ -41,4 +41,3 @@ RESOURCE TBUF16 { buf=""; }
RESOURCE EIK_APP_INFO
{
}
-
diff --git a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in
index 4000b1653d..80ba37d694 100644
--- a/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in
+++ b/backends/platform/symbian/UIQ2/ScummVM_UIQ2.mmp.in
@@ -106,4 +106,3 @@ LIBRARY qikctl.lib bafl.lib
START WINS
WIN32_LIBRARY lldiv.obj llmul.obj llshl.obj
END
-
diff --git a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg
index ad3a31cb30..8284f64611 100644
--- a/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg
+++ b/backends/platform/symbian/UIQ2/scummvm-CVS-SymbianUIQ2_SE.pkg
@@ -54,4 +54,4 @@
; add extra Vibration lib for P800, will be ignored during all other installs
IF MachineUID = 0x101F408B
@"Vibration.sis", (0x101F94A3)
-ENDIF \ No newline at end of file
+ENDIF
diff --git a/backends/platform/symbian/UIQ3/ScummVM.rss b/backends/platform/symbian/UIQ3/ScummVM.rss
index cb47568288..2021b0506e 100644
--- a/backends/platform/symbian/UIQ3/ScummVM.rss
+++ b/backends/platform/symbian/UIQ3/ScummVM.rss
@@ -48,4 +48,3 @@ RESOURCE EIK_APP_INFO
}
#include <sdl.ra>
-
diff --git a/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss b/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss
index cb47568288..2021b0506e 100644
--- a/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss
+++ b/backends/platform/symbian/UIQ3/ScummVM_A0000658.rss
@@ -48,4 +48,3 @@ RESOURCE EIK_APP_INFO
}
#include <sdl.ra>
-
diff --git a/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss b/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss
index a6ee70ab25..7f3b71ef84 100644
--- a/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss
+++ b/backends/platform/symbian/UIQ3/scummvm_A0000658_loc.rss
@@ -82,4 +82,3 @@ RESOURCE LOCALISABLE_APP_INFO
}
};
}
-
diff --git a/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss b/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss
index 2158406d0d..68d0d33abd 100644
--- a/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss
+++ b/backends/platform/symbian/UIQ3/scummvm_A0000658_reg.rss
@@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO
// Specify the location of the localisable icon/caption definition file
localisable_resource_file = "\\Resource\\Apps\\ScummVM_A0000658_loc";
}
-
diff --git a/backends/platform/symbian/UIQ3/scummvm_loc.rss b/backends/platform/symbian/UIQ3/scummvm_loc.rss
index 201aacefa3..d00a67f3dc 100644
--- a/backends/platform/symbian/UIQ3/scummvm_loc.rss
+++ b/backends/platform/symbian/UIQ3/scummvm_loc.rss
@@ -56,4 +56,3 @@ RESOURCE LOCALISABLE_APP_INFO
}
};
}
-
diff --git a/backends/platform/symbian/UIQ3/scummvm_reg.rss b/backends/platform/symbian/UIQ3/scummvm_reg.rss
index 1156694bd7..b5617913d6 100644
--- a/backends/platform/symbian/UIQ3/scummvm_reg.rss
+++ b/backends/platform/symbian/UIQ3/scummvm_reg.rss
@@ -15,4 +15,3 @@ RESOURCE APP_REGISTRATION_INFO
// Specify the location of the localisable icon/caption definition file
localisable_resource_file = "\\Resource\\Apps\\ScummVM_loc";
}
-
diff --git a/backends/platform/symbian/mmp/scummvm_base.mmp.in b/backends/platform/symbian/mmp/scummvm_base.mmp.in
index 9acef57cea..6a4bba8345 100644
--- a/backends/platform/symbian/mmp/scummvm_base.mmp.in
+++ b/backends/platform/symbian/mmp/scummvm_base.mmp.in
@@ -156,4 +156,4 @@ SOURCE backends\vkeybd\virtual-keyboard.cpp
// Downscaler
SOURCE graphics\scaler\downscaler.cpp
-MACRO SDL_BACKEND \ No newline at end of file
+MACRO SDL_BACKEND
diff --git a/backends/platform/symbian/res/ScummVmAif.rss b/backends/platform/symbian/res/ScummVmAif.rss
index 31bf7bd394..b2addc3f21 100644
--- a/backends/platform/symbian/res/ScummVmAif.rss
+++ b/backends/platform/symbian/res/ScummVmAif.rss
@@ -42,6 +42,3 @@ RESOURCE AIF_DATA
//
num_icons=2;
}
-
-
-
diff --git a/backends/platform/symbian/src/ScummApp.cpp b/backends/platform/symbian/src/ScummApp.cpp
index c4d9fc88d9..405fb5c3c2 100644
--- a/backends/platform/symbian/src/ScummApp.cpp
+++ b/backends/platform/symbian/src/ScummApp.cpp
@@ -116,5 +116,3 @@ void CScummApp::GetDataFolder(TDes& aDataFolder)
aDataFolder = _L("ScummVM");
}
/////////////////////////////////////////////////////////////////////////////////////////////////
-
-
diff --git a/backends/platform/symbian/src/ScummApp.h b/backends/platform/symbian/src/ScummApp.h
index 376964f0a1..0b9ebcdf53 100644
--- a/backends/platform/symbian/src/ScummApp.h
+++ b/backends/platform/symbian/src/ScummApp.h
@@ -48,5 +48,3 @@ public:
#endif
};
#endif
-
-
diff --git a/backends/platform/wii/gdb.txt b/backends/platform/wii/gdb.txt
index 4e6c7928c3..0bd2209745 100644
--- a/backends/platform/wii/gdb.txt
+++ b/backends/platform/wii/gdb.txt
@@ -1,4 +1,3 @@
target remote /dev/ttyUSB0
info threads
bt
-
diff --git a/backends/platform/wii/main.cpp b/backends/platform/wii/main.cpp
index 3965f51b7f..affe053b6a 100644
--- a/backends/platform/wii/main.cpp
+++ b/backends/platform/wii/main.cpp
@@ -247,4 +247,3 @@ int main(int argc, char *argv[]) {
#ifdef __cplusplus
}
#endif
-
diff --git a/backends/platform/wii/module.mk b/backends/platform/wii/module.mk
index 00eb0d7e49..88e75fba26 100644
--- a/backends/platform/wii/module.mk
+++ b/backends/platform/wii/module.mk
@@ -12,4 +12,3 @@ MODULE_OBJS := \
MODULE_OBJS := $(addprefix $(MODULE)/, $(MODULE_OBJS))
OBJS := $(MODULE_OBJS) $(OBJS)
MODULE_DIRS += $(sort $(dir $(MODULE_OBJS)))
-
diff --git a/backends/platform/wii/options.cpp b/backends/platform/wii/options.cpp
index 8c12ad9b81..ede81343ca 100644
--- a/backends/platform/wii/options.cpp
+++ b/backends/platform/wii/options.cpp
@@ -315,4 +315,3 @@ void WiiOptionsDialog::save() {
ConfMan.flushToDisk();
}
-
diff --git a/backends/platform/wii/options.h b/backends/platform/wii/options.h
index 00d42bc2ef..9b500ef29f 100644
--- a/backends/platform/wii/options.h
+++ b/backends/platform/wii/options.h
@@ -77,4 +77,3 @@ private:
};
#endif
-
diff --git a/backends/platform/wii/osystem_events.cpp b/backends/platform/wii/osystem_events.cpp
index 389d3823e7..3ba66aed89 100644
--- a/backends/platform/wii/osystem_events.cpp
+++ b/backends/platform/wii/osystem_events.cpp
@@ -451,4 +451,3 @@ bool OSystem_Wii::pollEvent(Common::Event &event) {
return false;
}
-
diff --git a/backends/platform/wii/osystem_gfx.cpp b/backends/platform/wii/osystem_gfx.cpp
index 443e738a4a..83607984cc 100644
--- a/backends/platform/wii/osystem_gfx.cpp
+++ b/backends/platform/wii/osystem_gfx.cpp
@@ -747,4 +747,3 @@ void OSystem_Wii::setMouseCursor(const byte *buf, uint w, uint h, int hotspotX,
if ((_texMouse.palette) && (oldKeycolor != _mouseKeyColor))
_cursorPaletteDirty = true;
}
-
diff --git a/backends/platform/wii/osystem_sfx.cpp b/backends/platform/wii/osystem_sfx.cpp
index acab6df7e1..2e658e47aa 100644
--- a/backends/platform/wii/osystem_sfx.cpp
+++ b/backends/platform/wii/osystem_sfx.cpp
@@ -131,4 +131,3 @@ void OSystem_Wii::deinitSfx() {
free(sound_buffer[i]);
}
}
-
diff --git a/backends/platform/wii/wii.mk b/backends/platform/wii/wii.mk
index aed30523b2..7d2db68b4e 100644
--- a/backends/platform/wii/wii.mk
+++ b/backends/platform/wii/wii.mk
@@ -49,4 +49,3 @@ wiiloaddist: wiidist
$(DEVKITPPC)/bin/wiiload wiidist/scummvm.zip
.PHONY: wiiclean wiiload geckoupload wiigdb wiidebug wiidist wiiloaddist
-
diff --git a/backends/platform/wince/CEActionsPocket.cpp b/backends/platform/wince/CEActionsPocket.cpp
index 194f855e98..5980a41caa 100644
--- a/backends/platform/wince/CEActionsPocket.cpp
+++ b/backends/platform/wince/CEActionsPocket.cpp
@@ -215,6 +215,8 @@ void CEActionsPocket::initInstanceGame() {
_key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
else if (gameid == "atlantis")
_key_action[POCKET_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+ else if (is_simon)
+ _key_action[POCKET_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
else
_key_action[POCKET_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
// Key bind method
@@ -268,6 +270,15 @@ bool CEActionsPocket::perform(GUI::ActionType action, bool pushed) {
else
_key_action[action].setKey(SDLK_s);
}
+ if (action == POCKET_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+ // In several AGI games (for example SQ2) it is needed to press F10 to exit from
+ // a screen. But we still want be able to skip normally with the skip button.
+ // Because of this, we inject a F10 keystroke here (this works and doesn't seem
+ // to have side-effects)
+ _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+ EventsBuffer::simulateKey(&_key_action[action], true);
+ _key_action[action].setKey(KEY_ALL_SKIP);
+ }
EventsBuffer::simulateKey(&_key_action[action], true);
return true;
case POCKET_ACTION_KEYBOARD:
diff --git a/backends/platform/wince/CEActionsSmartphone.cpp b/backends/platform/wince/CEActionsSmartphone.cpp
index c6456d3eb5..2cce288323 100644
--- a/backends/platform/wince/CEActionsSmartphone.cpp
+++ b/backends/platform/wince/CEActionsSmartphone.cpp
@@ -181,6 +181,8 @@ void CEActionsSmartphone::initInstanceGame() {
_key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F1, SDLK_F1); // bargon : F1 to start
else if (gameid == "atlantis")
_key_action[SMARTPHONE_ACTION_MULTI].setKey(0, SDLK_KP0); // fate of atlantis : Ins to sucker-punch
+ else if (is_simon)
+ _key_action[SMARTPHONE_ACTION_MULTI].setKey(Common::ASCII_F10, SDLK_F10); // F10
else
_key_action[SMARTPHONE_ACTION_MULTI].setKey('V', SDLK_v, KMOD_SHIFT); // FT cheat : shift-V
// Bind keys
@@ -232,6 +234,15 @@ bool CEActionsSmartphone::perform(GUI::ActionType action, bool pushed) {
else
_key_action[action].setKey(SDLK_s);
}
+ if (action == SMARTPHONE_ACTION_SKIP && ConfMan.get("gameid") == "agi") {
+ // In several AGI games (for example SQ2) it is needed to press F10 to exit from
+ // a screen. But we still want be able to skip normally with the skip button.
+ // Because of this, we inject a F10 keystroke here (this works and doesn't seem
+ // to have side-effects)
+ _key_action[action].setKey(Common::ASCII_F10, SDLK_F10); // F10
+ EventsBuffer::simulateKey(&_key_action[action], true);
+ _key_action[action].setKey(KEY_ALL_SKIP);
+ }
EventsBuffer::simulateKey(&_key_action[action], true);
return true;
case SMARTPHONE_ACTION_RIGHTCLICK:
diff --git a/backends/platform/wince/CEScaler.cpp b/backends/platform/wince/CEScaler.cpp
index f07a7ec84b..66f7809a3a 100644
--- a/backends/platform/wince/CEScaler.cpp
+++ b/backends/platform/wince/CEScaler.cpp
@@ -86,4 +86,3 @@ void SmartphoneLandscape(const uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, ui
}
#endif
-
diff --git a/backends/platform/wince/CEgui/CEGUI.h b/backends/platform/wince/CEgui/CEGUI.h
index 4e44115476..8b2e3528e3 100644
--- a/backends/platform/wince/CEgui/CEGUI.h
+++ b/backends/platform/wince/CEgui/CEGUI.h
@@ -24,4 +24,3 @@
#include "Panel.h"
#include "ItemSwitch.h"
#include "PanelKeyboard.h"
-
diff --git a/backends/platform/wince/CEgui/PanelKeyboard.cpp b/backends/platform/wince/CEgui/PanelKeyboard.cpp
index 442d7fc68c..cab02150c5 100644
--- a/backends/platform/wince/CEgui/PanelKeyboard.cpp
+++ b/backends/platform/wince/CEgui/PanelKeyboard.cpp
@@ -96,4 +96,3 @@ bool PanelKeyboard::action(int x, int y, bool pushed) {
}
} // End of namespace CEGUI
-
diff --git a/backends/platform/wince/CEkeys/CEKeys.h b/backends/platform/wince/CEkeys/CEKeys.h
index ac4907704d..cf71b982f3 100644
--- a/backends/platform/wince/CEkeys/CEKeys.h
+++ b/backends/platform/wince/CEkeys/CEKeys.h
@@ -21,4 +21,3 @@
*/
#include "EventsBuffer.h"
-
diff --git a/backends/platform/wince/CEkeys/EventsBuffer.cpp b/backends/platform/wince/CEkeys/EventsBuffer.cpp
index d5818c3731..c993798dc8 100644
--- a/backends/platform/wince/CEkeys/EventsBuffer.cpp
+++ b/backends/platform/wince/CEkeys/EventsBuffer.cpp
@@ -76,5 +76,3 @@ bool EventsBuffer::simulateMouseRightClick(int x, int y, bool pushed) {
return (SDL_PushEvent(&ev) == 0);
}
}
-
-
diff --git a/backends/platform/wince/README-WinCE.txt b/backends/platform/wince/README-WinCE.txt
index 8f1262051a..60bcf710bb 100644
--- a/backends/platform/wince/README-WinCE.txt
+++ b/backends/platform/wince/README-WinCE.txt
@@ -1,10 +1,19 @@
ScummVM Windows CE FAQ
-Last updated: 2011-07-01
-Release version: 1.3.1
+Last updated: 2011-07-20
+Release version: x.x.x
------------------------------------------------------------------------
New in this version
-------------------
+x.x.x:
+- Changed default values for "high_sample_rate" & "FM_high_quality" to "true" as
+ most devices today are fast enough to handle this. It's still possible to set
+ this to "false" if you have a slower device.
+- Fix for TeenAgent & Hugo engines (both weren't running at all, crashed right
+ at the beginning)
+- Replaced the game mass-adding functionality with the functionality used on all
+ other platforms. It now shows progress while searching for games.
+
1.3.1:
- Fix for Normal2xAspect scaler which was causing screen update issues in some
games.
@@ -361,14 +370,13 @@ Some parameters are specific to this port :
Game specific sections (f.e. [monkey2]) - performance options
* high_sample_rate bool Desktop quality (22 kHz) sound output if
- set. The default is 11 kHz.
- If you have a fast device, you can set this
- to true to enjoy better sound effects and
- music.
+ set. This is the default.
+ If you have a slow device, you can set this
+ to false to prevent lags/delays in the game.
* FM_high_quality bool Desktop quality FM synthesis if set. Lower
- quality otherwise. The default is low
+ quality otherwise. The default is high
quality. You can change this if you have a
- fast device.
+ slow device.
* sound_thread_priority int Set the priority of the sound thread (0, 1,
2). Depending on the release, this is set
to 1 internally (above normal).
diff --git a/backends/platform/wince/missing/assert.h b/backends/platform/wince/missing/assert.h
index 734b8f9482..e9c871da60 100644
--- a/backends/platform/wince/missing/assert.h
+++ b/backends/platform/wince/missing/assert.h
@@ -6,4 +6,3 @@ void CDECL _declspec(noreturn) error(const char *s, ...);
#define assert(e) ((e) ? 0 : (::error("Assertion failed %s (%s, %d)", #e, __FILE__, __LINE__)))
#define abort() ::error("Abort (%s, %d)", __FILE__, __LINE__)
-
diff --git a/backends/platform/wince/missing/io.h b/backends/platform/wince/missing/io.h
index de492cac68..b2cb2abd8e 100644
--- a/backends/platform/wince/missing/io.h
+++ b/backends/platform/wince/missing/io.h
@@ -9,4 +9,3 @@ typedef void FILE;
#endif
FILE *wce_fopen(const char *fname, const char *fmode);
#define fopen wce_fopen
-
diff --git a/backends/platform/wince/wince-sdl.cpp b/backends/platform/wince/wince-sdl.cpp
index ec222c6fc1..1abc3cb350 100644
--- a/backends/platform/wince/wince-sdl.cpp
+++ b/backends/platform/wince/wince-sdl.cpp
@@ -42,6 +42,7 @@
#include "audio/mixer_intern.h"
#include "audio/fmopl.h"
+#include "backends/mutex/sdl/sdl-mutex.h"
#include "backends/timer/sdl/sdl-timer.h"
#include "gui/Actions.h"
@@ -379,14 +380,6 @@ void OSystem_WINCE3::initBackend() {
((WINCESdlEventSource *)_eventSource)->init((WINCESdlGraphicsManager *)_graphicsManager);
- // Create the timer (but remove the timer manager from the SDL backend first).
- // CE SDL does not support multiple timers (SDL_AddTimer).
- // We work around this by using the SetTimer function, since we only use
- // one timer in scummvm (for the time being)
- delete _timerManager;
- _timerManager = new DefaultTimerManager();
- SDL_SetTimer(10, &timer_handler_wrapper);
-
// Call parent implementation of this method
OSystem_SDL::initBackend();
@@ -546,6 +539,24 @@ void OSystem_WINCE3::initSDL() {
}
}
+void OSystem_WINCE3::init() {
+ // Create SdlMutexManager instance as the TimerManager relies on the
+ // MutexManager being already initialized
+ if (_mutexManager == 0)
+ _mutexManager = new SdlMutexManager();
+
+ // Create the timer. CE SDL does not support multiple timers (SDL_AddTimer).
+ // We work around this by using the SetTimer function, since we only use
+ // one timer in scummvm (for the time being)
+ if (_timerManager == 0) {
+ _timerManager = new DefaultTimerManager();
+ SDL_SetTimer(10, &timer_handler_wrapper);
+ }
+
+ // Call parent implementation of this method
+ OSystem_SDL::init();
+}
+
void OSystem_WINCE3::quit() {
fclose(stdout_file);
fclose(stderr_file);
diff --git a/backends/platform/wince/wince-sdl.h b/backends/platform/wince/wince-sdl.h
index 481956c19a..b4f323c9e2 100644
--- a/backends/platform/wince/wince-sdl.h
+++ b/backends/platform/wince/wince-sdl.h
@@ -52,6 +52,7 @@ public:
void initBackend();
// Overloaded from SDL backend
+ void init();
void quit();
virtual Common::String getSystemLanguage() const;
diff --git a/backends/plugins/ds/ds-provider.cpp b/backends/plugins/ds/ds-provider.cpp
index ff4cbe5f96..21ec157e5f 100644
--- a/backends/plugins/ds/ds-provider.cpp
+++ b/backends/plugins/ds/ds-provider.cpp
@@ -43,4 +43,3 @@ Plugin *DSPluginProvider::createPlugin(const Common::FSNode &node) const {
}
#endif // defined(DYNAMIC_MODULES) && defined(__DS__)
-
diff --git a/backends/plugins/ds/ds-provider.h b/backends/plugins/ds/ds-provider.h
index df8307a52d..1d806a03bd 100644
--- a/backends/plugins/ds/ds-provider.h
+++ b/backends/plugins/ds/ds-provider.h
@@ -35,4 +35,3 @@ public:
#endif // BACKENDS_PLUGINS_DS_PROVIDER_H
#endif // defined(DYNAMIC_MODULES) && defined(__DS__)
-
diff --git a/backends/plugins/elf/arm-loader.cpp b/backends/plugins/elf/arm-loader.cpp
index 12204ef68f..f8deac9c88 100644
--- a/backends/plugins/elf/arm-loader.cpp
+++ b/backends/plugins/elf/arm-loader.cpp
@@ -127,4 +127,3 @@ bool ARMDLObject::relocateRels(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) {
}
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET) */
-
diff --git a/backends/plugins/elf/arm-loader.h b/backends/plugins/elf/arm-loader.h
index 60bc4f8720..598517d2ef 100644
--- a/backends/plugins/elf/arm-loader.h
+++ b/backends/plugins/elf/arm-loader.h
@@ -38,4 +38,3 @@ protected:
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(ARM_TARGET) */
#endif /* BACKENDS_PLUGINS_ARM_LOADER_H */
-
diff --git a/backends/plugins/elf/elf-loader.cpp b/backends/plugins/elf/elf-loader.cpp
index 4335ea6108..d75010196a 100644
--- a/backends/plugins/elf/elf-loader.cpp
+++ b/backends/plugins/elf/elf-loader.cpp
@@ -489,4 +489,3 @@ void *DLObject::symbol(const char *name) {
}
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) */
-
diff --git a/backends/plugins/elf/elf-loader.h b/backends/plugins/elf/elf-loader.h
index a953507631..58cc7714cf 100644
--- a/backends/plugins/elf/elf-loader.h
+++ b/backends/plugins/elf/elf-loader.h
@@ -102,4 +102,3 @@ public:
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) */
#endif /* BACKENDS_PLUGINS_ELF_LOADER_H */
-
diff --git a/backends/plugins/elf/elf-provider.cpp b/backends/plugins/elf/elf-provider.cpp
index 84054f44cb..f637596d8d 100644
--- a/backends/plugins/elf/elf-provider.cpp
+++ b/backends/plugins/elf/elf-provider.cpp
@@ -207,4 +207,3 @@ bool ELFPluginProvider::isPluginFilename(const Common::FSNode &node) const {
}
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
-
diff --git a/backends/plugins/elf/elf-provider.h b/backends/plugins/elf/elf-provider.h
index 62ea930829..a966f371f6 100644
--- a/backends/plugins/elf/elf-provider.h
+++ b/backends/plugins/elf/elf-provider.h
@@ -92,4 +92,3 @@ protected:
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#endif /* BACKENDS_PLUGINS_ELF_PROVIDER_H */
-
diff --git a/backends/plugins/elf/elf32.h b/backends/plugins/elf/elf32.h
index aecedf5a37..1ecc68a8f0 100644
--- a/backends/plugins/elf/elf32.h
+++ b/backends/plugins/elf/elf32.h
@@ -246,4 +246,3 @@ typedef struct {
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER)
#endif /* BACKENDS_ELF_H */
-
diff --git a/backends/plugins/elf/memory-manager.cpp b/backends/plugins/elf/memory-manager.cpp
index 058d818dc4..47b77a3ec2 100644
--- a/backends/plugins/elf/memory-manager.cpp
+++ b/backends/plugins/elf/memory-manager.cpp
@@ -172,4 +172,3 @@ void ELFMemoryManager::deallocateFromHeap(void *ptr) {
}
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) */
-
diff --git a/backends/plugins/elf/mips-loader.cpp b/backends/plugins/elf/mips-loader.cpp
index e043c9647f..6c0e688783 100644
--- a/backends/plugins/elf/mips-loader.cpp
+++ b/backends/plugins/elf/mips-loader.cpp
@@ -337,4 +337,3 @@ void MIPSDLObject::freeShortsSegment() {
}
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET) */
-
diff --git a/backends/plugins/elf/mips-loader.h b/backends/plugins/elf/mips-loader.h
index 3066589c9b..1103e939ce 100644
--- a/backends/plugins/elf/mips-loader.h
+++ b/backends/plugins/elf/mips-loader.h
@@ -58,4 +58,3 @@ public:
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET) */
#endif /* BACKENDS_PLUGINS_MIPS_LOADER_H */
-
diff --git a/backends/plugins/elf/ppc-loader.cpp b/backends/plugins/elf/ppc-loader.cpp
index 2f7042c682..4c9290ad5e 100644
--- a/backends/plugins/elf/ppc-loader.cpp
+++ b/backends/plugins/elf/ppc-loader.cpp
@@ -123,4 +123,3 @@ bool PPCDLObject::relocateRels(Elf32_Ehdr *ehdr, Elf32_Shdr *shdr) {
}
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET) */
-
diff --git a/backends/plugins/elf/ppc-loader.h b/backends/plugins/elf/ppc-loader.h
index 9aa6c949f1..8614476a92 100644
--- a/backends/plugins/elf/ppc-loader.h
+++ b/backends/plugins/elf/ppc-loader.h
@@ -38,4 +38,3 @@ protected:
#endif /* defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(PPC_TARGET) */
#endif /* BACKENDS_PLUGINS_PPC_LOADER_H */
-
diff --git a/backends/plugins/elf/shorts-segment-manager.cpp b/backends/plugins/elf/shorts-segment-manager.cpp
index caa328a4f2..993a538f6c 100644
--- a/backends/plugins/elf/shorts-segment-manager.cpp
+++ b/backends/plugins/elf/shorts-segment-manager.cpp
@@ -85,5 +85,3 @@ void ShortSegmentManager::deleteSegment(ShortSegmentManager::Segment *seg) {
}
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
-
-
diff --git a/backends/plugins/elf/shorts-segment-manager.h b/backends/plugins/elf/shorts-segment-manager.h
index 8293d55c08..34e233a2f4 100644
--- a/backends/plugins/elf/shorts-segment-manager.h
+++ b/backends/plugins/elf/shorts-segment-manager.h
@@ -111,4 +111,3 @@ private:
#endif // defined(DYNAMIC_MODULES) && defined(USE_ELF_LOADER) && defined(MIPS_TARGET)
#endif /* SHORTS_SEGMENT_MANAGER_H */
-
diff --git a/backends/plugins/elf/version.cpp b/backends/plugins/elf/version.cpp
index 593a17fb2b..9f64870500 100644
--- a/backends/plugins/elf/version.cpp
+++ b/backends/plugins/elf/version.cpp
@@ -26,4 +26,3 @@
const char *gScummVMPluginBuildDate __attribute__((visibility("hidden"))) =
__DATE__ " " __TIME__ ;
#endif
-
diff --git a/backends/plugins/elf/version.h b/backends/plugins/elf/version.h
index 915132e8c4..1f6924028b 100644
--- a/backends/plugins/elf/version.h
+++ b/backends/plugins/elf/version.h
@@ -29,4 +29,3 @@ extern const char *gScummVMPluginBuildDate;
#endif
#endif
-
diff --git a/backends/plugins/ps2/ps2-provider.cpp b/backends/plugins/ps2/ps2-provider.cpp
index 7c7409eaf9..50cddb05e0 100644
--- a/backends/plugins/ps2/ps2-provider.cpp
+++ b/backends/plugins/ps2/ps2-provider.cpp
@@ -41,4 +41,3 @@ Plugin *PS2PluginProvider::createPlugin(const Common::FSNode &node) const {
}
#endif // defined(DYNAMIC_MODULES) && defined(__PLAYSTATION2__)
-
diff --git a/backends/plugins/ps2/ps2-provider.h b/backends/plugins/ps2/ps2-provider.h
index b9006b1716..f4498204b4 100644
--- a/backends/plugins/ps2/ps2-provider.h
+++ b/backends/plugins/ps2/ps2-provider.h
@@ -35,4 +35,3 @@ public:
#endif // BACKENDS_PLUGINS_PS2_PROVIDER_H
#endif // defined(DYNAMIC_MODULES) && defined(__PLAYSTATION2__)
-
diff --git a/backends/plugins/psp/psp-provider.cpp b/backends/plugins/psp/psp-provider.cpp
index 0c41af24a1..1d8cad6b50 100644
--- a/backends/plugins/psp/psp-provider.cpp
+++ b/backends/plugins/psp/psp-provider.cpp
@@ -43,4 +43,3 @@ Plugin *PSPPluginProvider::createPlugin(const Common::FSNode &node) const {
}
#endif // defined(DYNAMIC_MODULES) && defined(__PSP__)
-
diff --git a/backends/plugins/psp/psp-provider.h b/backends/plugins/psp/psp-provider.h
index 0cc0457740..4ace3e7f4b 100644
--- a/backends/plugins/psp/psp-provider.h
+++ b/backends/plugins/psp/psp-provider.h
@@ -35,4 +35,3 @@ public:
#endif // BACKENDS_PLUGINS_PSP_PROVIDER_H
#endif // defined(DYNAMIC_MODULES) && defined(__PSP__)
-
diff --git a/backends/plugins/wii/wii-provider.cpp b/backends/plugins/wii/wii-provider.cpp
index fa85588348..f96254eabe 100644
--- a/backends/plugins/wii/wii-provider.cpp
+++ b/backends/plugins/wii/wii-provider.cpp
@@ -43,4 +43,3 @@ Plugin *WiiPluginProvider::createPlugin(const Common::FSNode &node) const {
}
#endif // defined(DYNAMIC_MODULES) && defined(__WII__)
-
diff --git a/backends/plugins/wii/wii-provider.h b/backends/plugins/wii/wii-provider.h
index 573a8e7e59..fb847e1024 100644
--- a/backends/plugins/wii/wii-provider.h
+++ b/backends/plugins/wii/wii-provider.h
@@ -35,4 +35,3 @@ public:
#endif // BACKENDS_PLUGINS_WII_PROVIDER_H
#endif // defined(DYNAMIC_MODULES) && defined(__WII__)
-
diff --git a/backends/saves/psp/psp-saves.cpp b/backends/saves/psp/psp-saves.cpp
index 006a4e815d..65003e9fb9 100644
--- a/backends/saves/psp/psp-saves.cpp
+++ b/backends/saves/psp/psp-saves.cpp
@@ -78,4 +78,3 @@ void PSPSaveFileManager::checkPath(const Common::FSNode &dir) {
PowerMan.endCriticalSection();
}
#endif
-
diff --git a/backends/taskbar/unity/unity-taskbar.cpp b/backends/taskbar/unity/unity-taskbar.cpp
index da053734d2..f36e2bf628 100644
--- a/backends/taskbar/unity/unity-taskbar.cpp
+++ b/backends/taskbar/unity/unity-taskbar.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#define FORBIDDEN_SYMBOL_EXCEPTION_unistd_h
diff --git a/backends/taskbar/unity/unity-taskbar.h b/backends/taskbar/unity/unity-taskbar.h
index 06ea0ca769..d1d9430bcd 100644
--- a/backends/taskbar/unity/unity-taskbar.h
+++ b/backends/taskbar/unity/unity-taskbar.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#ifndef BACKEND_UNITY_TASKBAR_H
diff --git a/backends/taskbar/win32/mingw-compat.h b/backends/taskbar/win32/mingw-compat.h
index 30ce818141..55105407c6 100644
--- a/backends/taskbar/win32/mingw-compat.h
+++ b/backends/taskbar/win32/mingw-compat.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
// TODO: Remove header when the latest changes to the Windows SDK have been integrated into MingW
diff --git a/backends/taskbar/win32/win32-taskbar.cpp b/backends/taskbar/win32/win32-taskbar.cpp
index 04889f3dd7..046ddb1cd0 100644
--- a/backends/taskbar/win32/win32-taskbar.cpp
+++ b/backends/taskbar/win32/win32-taskbar.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
// We cannot use common/scummsys.h directly as it will include
@@ -320,6 +317,15 @@ void Win32TaskbarManager::addRecent(const Common::String &name, const Common::St
}
}
+void Win32TaskbarManager::notifyError() {
+ setProgressState(Common::TaskbarManager::kTaskbarError);
+ setProgressValue(1, 1);
+}
+
+void Win32TaskbarManager::clearError() {
+ setProgressState(kTaskbarNoProgress);
+}
+
Common::String Win32TaskbarManager::getIconPath(Common::String target) {
// We first try to look for a iconspath configuration variable then
// fallback to the extra path
diff --git a/backends/taskbar/win32/win32-taskbar.h b/backends/taskbar/win32/win32-taskbar.h
index c9d1761017..36415c1c57 100644
--- a/backends/taskbar/win32/win32-taskbar.h
+++ b/backends/taskbar/win32/win32-taskbar.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
#ifndef BACKEND_WIN32_TASKBAR_H
@@ -43,6 +40,8 @@ public:
virtual void setProgressState(TaskbarProgressState state);
virtual void setCount(int count);
virtual void addRecent(const Common::String &name, const Common::String &description);
+ virtual void notifyError();
+ virtual void clearError();
private:
ITaskbarList3 *_taskbar;
diff --git a/backends/timer/bada/timer.cpp b/backends/timer/bada/timer.cpp
new file mode 100755
index 0000000000..8f5620401f
--- /dev/null
+++ b/backends/timer/bada/timer.cpp
@@ -0,0 +1,115 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#if defined (BADA)
+
+#include "backends/timer/bada/timer.h"
+
+//
+// TimerSlot
+//
+TimerSlot::TimerSlot(Common::TimerManager::TimerProc callback,
+ uint32 interval, void *refCon) :
+ _timer(0),
+ _callback(callback),
+ _interval(interval),
+ _refCon(refCon) {
+}
+
+TimerSlot::~TimerSlot() {
+}
+
+bool TimerSlot::OnStart() {
+ _timer = new Osp::Base::Runtime::Timer();
+ if (!_timer || IsFailed(_timer->Construct(*this))) {
+ AppLog("Failed to create timer");
+ return false;
+ }
+
+ if (IsFailed(_timer->Start(_interval))) {
+ AppLog("failed to start timer");
+ return false;
+ }
+
+ AppLog("started timer %d", _interval);
+ return true;
+}
+
+void TimerSlot::OnStop() {
+ AppLog("timer stopped");
+ if (_timer) {
+ _timer->Cancel();
+ delete _timer;
+ _timer = NULL;
+ }
+}
+
+void TimerSlot::OnTimerExpired(Timer &timer) {
+ _callback(_refCon);
+ timer.Start(_interval);
+}
+
+//
+// BadaTimerManager
+//
+BadaTimerManager::BadaTimerManager() {
+}
+
+BadaTimerManager::~BadaTimerManager() {
+ for (Common::List<TimerSlot>::iterator slot = _timers.begin();
+ slot != _timers.end(); ++slot) {
+ slot->Stop();
+ slot = _timers.erase(slot);
+ }
+}
+
+bool BadaTimerManager::installTimerProc(TimerProc proc, int32 interval, void *refCon,
+ const Common::String &id) {
+ TimerSlot *slot = new TimerSlot(proc, interval / 1000, refCon);
+
+ if (IsFailed(slot->Construct(THREAD_TYPE_EVENT_DRIVEN))) {
+ AppLog("Failed to create timer thread");
+ delete slot;
+ return false;
+ }
+
+ if (IsFailed(slot->Start())) {
+ delete slot;
+ AppLog("Failed to start timer thread");
+ return false;
+ }
+
+ _timers.push_back(*slot);
+ return true;
+}
+
+void BadaTimerManager::removeTimerProc(TimerProc proc) {
+ for (Common::List<TimerSlot>::iterator slot = _timers.begin();
+ slot != _timers.end(); ++slot) {
+ if (slot->_callback == proc) {
+ slot->Stop();
+ slot = _timers.erase(slot);
+ }
+ }
+}
+
+#endif
diff --git a/backends/timer/bada/timer.h b/backends/timer/bada/timer.h
new file mode 100755
index 0000000000..04ca771c26
--- /dev/null
+++ b/backends/timer/bada/timer.h
@@ -0,0 +1,62 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BADA_TIMER_H
+#define BADA_TIMER_H
+
+#include <FBase.h>
+
+#include "common/timer.h"
+#include "common/list.h"
+
+using namespace Osp::Base::Runtime;
+
+struct TimerSlot: public ITimerEventListener, public Thread {
+ TimerSlot(Common::TimerManager::TimerProc callback,
+ uint32 interval,
+ void *refCon);
+ ~TimerSlot();
+
+ bool OnStart(void);
+ void OnStop(void);
+ void OnTimerExpired(Timer &timer);
+
+ Timer *_timer;
+ Common::TimerManager::TimerProc _callback;
+ uint32 _interval; // in microseconds
+ void *_refCon;
+};
+
+class BadaTimerManager : public Common::TimerManager {
+public:
+ BadaTimerManager();
+ ~BadaTimerManager();
+
+ bool installTimerProc(TimerProc proc, int32 interval, void *refCon,
+ const Common::String &id);
+ void removeTimerProc(TimerProc proc);
+
+private:
+ Common::List<TimerSlot> _timers;
+};
+
+#endif
diff --git a/backends/timer/default/default-timer.cpp b/backends/timer/default/default-timer.cpp
index 8480fcc7ee..e1aadb62b8 100644
--- a/backends/timer/default/default-timer.cpp
+++ b/backends/timer/default/default-timer.cpp
@@ -24,10 +24,10 @@
#include "common/util.h"
#include "common/system.h"
-
struct TimerSlot {
Common::TimerManager::TimerProc callback;
void *refCon;
+ Common::String id;
uint32 interval; // in microseconds
uint32 nextFireTime; // in milliseconds
@@ -109,13 +109,28 @@ void DefaultTimerManager::handler() {
}
}
-bool DefaultTimerManager::installTimerProc(TimerProc callback, int32 interval, void *refCon) {
+bool DefaultTimerManager::installTimerProc(TimerProc callback, int32 interval, void *refCon, const Common::String &id) {
assert(interval > 0);
Common::StackLock lock(_mutex);
+ if (_callbacks.contains(id)) {
+ if (_callbacks[id] != callback) {
+ error("Different callbacks are referred by same name (%s)", id.c_str());
+ }
+ }
+ TimerSlotMap::const_iterator i;
+
+ for (i = _callbacks.begin(); i != _callbacks.end(); ++i) {
+ if (i->_value == callback) {
+ error("Same callback is referred by different names (%s vs %s)", i->_key.c_str(), id.c_str());
+ }
+ }
+ _callbacks[id] = callback;
+
TimerSlot *slot = new TimerSlot;
slot->callback = callback;
slot->refCon = refCon;
+ slot->id = id;
slot->interval = interval;
slot->nextFireTime = g_system->getMillis() + interval / 1000;
slot->nextFireTimeMicro = interval % 1000;
@@ -146,4 +161,21 @@ void DefaultTimerManager::removeTimerProc(TimerProc callback) {
slot = slot->next;
}
}
+
+ // We need to remove all names referencing the timer proc here.
+ //
+ // Else we run into troubles, when the client code removes and readds timer
+ // callbacks.
+ //
+ // Another issues occurs when one plays a game with ALSA as music driver,
+ // does RTL and starts a different engine game with ALSA as music driver.
+ // In this case the MPU401 code will add different timer procs with the
+ // same name, resulting in two different callbacks added with the same
+ // name and causing installTimerProc to error out.
+ // A good test case is running a SCUMM with ALSA output and then a KYRA
+ // game for example.
+ for (TimerSlotMap::iterator i = _callbacks.begin(), end = _callbacks.end(); i != end; ++i) {
+ if (i->_value == callback)
+ _callbacks.erase(i);
+ }
}
diff --git a/backends/timer/default/default-timer.h b/backends/timer/default/default-timer.h
index 66d2e3b091..e5a9dada79 100644
--- a/backends/timer/default/default-timer.h
+++ b/backends/timer/default/default-timer.h
@@ -22,6 +22,8 @@
#ifndef BACKENDS_TIMER_DEFAULT_H
#define BACKENDS_TIMER_DEFAULT_H
+#include "common/str.h"
+#include "common/hash-str.h"
#include "common/timer.h"
#include "common/mutex.h"
@@ -29,14 +31,17 @@ struct TimerSlot;
class DefaultTimerManager : public Common::TimerManager {
private:
+ typedef Common::HashMap<Common::String, TimerProc, Common::IgnoreCase_Hash, Common::IgnoreCase_EqualTo> TimerSlotMap;
+
Common::Mutex _mutex;
void *_timerHandler;
TimerSlot *_head;
+ TimerSlotMap _callbacks;
public:
DefaultTimerManager();
virtual ~DefaultTimerManager();
- virtual bool installTimerProc(TimerProc proc, int32 interval, void *refCon);
+ virtual bool installTimerProc(TimerProc proc, int32 interval, void *refCon, const Common::String &id);
virtual void removeTimerProc(TimerProc proc);
/**
diff --git a/backends/updates/macosx/macosx-updates.h b/backends/updates/macosx/macosx-updates.h
new file mode 100644
index 0000000000..8c9ac1f743
--- /dev/null
+++ b/backends/updates/macosx/macosx-updates.h
@@ -0,0 +1,48 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BACKENDS_UPDATES_MACOSX_H
+#define BACKENDS_UPDATES_MACOSX_H
+
+#include "common/scummsys.h"
+
+#if defined(MACOSX) && defined(USE_SPARKLE)
+
+#include "common/updates.h"
+
+class MacOSXUpdateManager : public Common::UpdateManager {
+public:
+ MacOSXUpdateManager();
+ virtual ~MacOSXUpdateManager();
+
+ virtual void checkForUpdates();
+
+ virtual void setAutomaticallyChecksForUpdates(UpdateState state);
+ virtual UpdateState getAutomaticallyChecksForUpdates();
+
+ virtual void setUpdateCheckInterval(UpdateInterval interval);
+ virtual UpdateInterval getUpdateCheckInterval();
+};
+
+#endif
+
+#endif // BACKENDS_UPDATES_MACOSX_H
diff --git a/backends/updates/macosx/macosx-updates.mm b/backends/updates/macosx/macosx-updates.mm
new file mode 100644
index 0000000000..741e89891c
--- /dev/null
+++ b/backends/updates/macosx/macosx-updates.mm
@@ -0,0 +1,127 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Disable symbol overrides so that we can use system headers.
+#define FORBIDDEN_SYMBOL_ALLOW_ALL
+
+#include "backends/updates/macosx/macosx-updates.h"
+
+#ifdef USE_SPARKLE
+#include "common/translation.h"
+
+#include <Cocoa/Cocoa.h>
+#include <Sparkle/Sparkle.h>
+
+SUUpdater *sparkleUpdater;
+
+/**
+ * Sparkle is a software update framework for Mac OS X which uses appcasts for
+ * release information. Appcasts are RSS-like XML feeds which contain information
+ * about the most current version at the time. If a new version is available, the
+ * user is presented the release-notes/changes/fixes and is asked if he wants to
+ * update, and if yes the Sparkle framework downloads a signed update package
+ * from the server and automatically installs and restarts the software.
+ * More detailed information is available at the following address:
+ * http://sparkle.andymatuschak.org/
+ *
+ */
+MacOSXUpdateManager::MacOSXUpdateManager() {
+ NSMenuItem *menuItem = [[NSApp mainMenu] itemAtIndex:0];
+ NSMenu *applicationMenu = [menuItem submenu];
+
+ // Init Sparkle
+ sparkleUpdater = [SUUpdater sharedUpdater];
+
+ NSBundle* mainBundle = [NSBundle mainBundle];
+
+ NSString* feedbackURL = [mainBundle objectForInfoDictionaryKey:@"SUFeedURL"];
+
+ // Set appcast URL
+ [sparkleUpdater setFeedURL:[NSURL URLWithString:feedbackURL]];
+
+ // Get current encoding
+ NSStringEncoding stringEncoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)[NSString stringWithCString:(TransMan.getCurrentCharset()).c_str() encoding:NSASCIIStringEncoding]));
+
+ // Add "Check for Updates..." menu item
+ NSMenuItem *updateMenuItem = [applicationMenu insertItemWithTitle:[NSString stringWithCString:_("Check for Updates...") encoding:stringEncoding] action:@selector(checkForUpdates:) keyEquivalent:@"" atIndex:1];
+
+ // Set the target of the new menu item
+ [updateMenuItem setTarget:sparkleUpdater];
+
+ // Finally give up our references to the objects
+ [menuItem release];
+
+ // Enable automatic update checking once a day (alternatively use
+ // checkForUpdates() here to check for updates on every startup)
+ // TODO: Should be removed when an update settings gui is implemented
+ setAutomaticallyChecksForUpdates(kUpdateStateEnabled);
+ setUpdateCheckInterval(kUpdateIntervalOneDay);
+}
+
+MacOSXUpdateManager::~MacOSXUpdateManager() {
+ [sparkleUpdater release];
+}
+
+void MacOSXUpdateManager::checkForUpdates() {
+ [sparkleUpdater checkForUpdatesInBackground];
+}
+
+void MacOSXUpdateManager::setAutomaticallyChecksForUpdates(UpdateManager::UpdateState state) {
+ if (state == kUpdateStateNotSupported)
+ return;
+
+ [sparkleUpdater setAutomaticallyChecksForUpdates:(state == kUpdateStateEnabled ? YES : NO)];
+}
+
+Common::UpdateManager::UpdateState MacOSXUpdateManager::getAutomaticallyChecksForUpdates() {
+ if ([sparkleUpdater automaticallyChecksForUpdates])
+ return kUpdateStateEnabled;
+ else
+ return kUpdateStateDisabled;
+}
+
+void MacOSXUpdateManager::setUpdateCheckInterval(UpdateInterval interval) {
+ if (interval == kUpdateIntervalNotSupported)
+ return;
+
+ [sparkleUpdater setUpdateCheckInterval:(NSTimeInterval)interval];
+}
+
+Common::UpdateManager::UpdateInterval MacOSXUpdateManager::getUpdateCheckInterval() {
+ // This is kind of a hack but necessary, as the value stored by Sparkle
+ // might have been changed outside of ScummVM (in which case we return the
+ // default interval of one day)
+
+ UpdateInterval updateInterval = (UpdateInterval)[sparkleUpdater updateCheckInterval];
+ switch (updateInterval) {
+ case kUpdateIntervalOneDay:
+ case kUpdateIntervalOneWeek:
+ case kUpdateIntervalOneMonth:
+ return updateInterval;
+
+ default:
+ // Return the default value (one day)
+ return kUpdateIntervalOneDay;
+ }
+}
+
+#endif
diff --git a/backends/vkeybd/virtual-keyboard.cpp b/backends/vkeybd/virtual-keyboard.cpp
index afdb800562..1dada06951 100644
--- a/backends/vkeybd/virtual-keyboard.cpp
+++ b/backends/vkeybd/virtual-keyboard.cpp
@@ -417,4 +417,3 @@ bool VirtualKeyboard::KeyPressQueue::hasStringChanged() {
} // End of namespace Common
#endif // #ifdef ENABLE_VKEYBD
-
diff --git a/base/main.cpp b/base/main.cpp
index 717ccb3344..930b69cfac 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -111,10 +111,7 @@ static const EnginePlugin *detectPlugin() {
printf("failed\n");
warning("%s is an invalid gameid. Use the --list-games option to list supported gameid", gameid.c_str());
} else {
- printf("%s\n", plugin->getName());
-
- // FIXME: Do we really need this one?
- printf(" Starting '%s'\n", game.description().c_str());
+ printf("%s\n Starting '%s'\n", plugin->getName(), game.description().c_str());
}
return plugin;
@@ -186,9 +183,15 @@ static Common::Error runGame(const EnginePlugin *plugin, OSystem &system, const
}
// If a second extrapath is specified on the app domain level, add that as well.
+ // However, since the default hasKey() and get() check the app domain level,
+ // verify that it's not already there before adding it. The search manager will
+ // check for that too, so this check is mostly to avoid a warning message.
if (ConfMan.hasKey("extrapath", Common::ConfigManager::kApplicationDomain)) {
- dir = Common::FSNode(ConfMan.get("extrapath", Common::ConfigManager::kApplicationDomain));
- SearchMan.addDirectory(dir.getPath(), dir);
+ Common::String extraPath = ConfMan.get("extrapath", Common::ConfigManager::kApplicationDomain);
+ if (!SearchMan.hasArchive(extraPath)) {
+ dir = Common::FSNode(extraPath);
+ SearchMan.addDirectory(dir.getPath(), dir);
+ }
}
// On creation the engine should have set up all debug levels so we can use
@@ -419,6 +422,10 @@ extern "C" int scummvm_main(int argc, const char * const argv[]) {
// Try to run the game
Common::Error result = runGame(plugin, system, specialDebug);
+ // Flush Event recorder file. The recorder does not get reinitialized for next game
+ // which is intentional. Only single game per session is allowed.
+ g_eventRec.deinit();
+
#if defined(UNCACHED_PLUGINS) && defined(DYNAMIC_MODULES)
// do our best to prevent fragmentation by unloading as soon as we can
PluginManager::instance().unloadPluginsExcept(PLUGIN_TYPE_ENGINE, NULL, false);
diff --git a/base/plugins.cpp b/base/plugins.cpp
index 7dbbf9843d..3e18e0ec4e 100644
--- a/base/plugins.cpp
+++ b/base/plugins.cpp
@@ -100,6 +100,9 @@ public:
#if PLUGIN_ENABLED_STATIC(CINE)
LINK_PLUGIN(CINE)
#endif
+ #if PLUGIN_ENABLED_STATIC(COMPOSER)
+ LINK_PLUGIN(COMPOSER)
+ #endif
#if PLUGIN_ENABLED_STATIC(CRUISE)
LINK_PLUGIN(CRUISE)
#endif
diff --git a/base/version.cpp b/base/version.cpp
index c91698cba9..a068f2b141 100644
--- a/base/version.cpp
+++ b/base/version.cpp
@@ -122,4 +122,3 @@ const char *gScummVMFeatures = ""
"AAC "
#endif
;
-
diff --git a/common/EventDispatcher.cpp b/common/EventDispatcher.cpp
index e97068c0d0..4e3f671cfd 100644
--- a/common/EventDispatcher.cpp
+++ b/common/EventDispatcher.cpp
@@ -28,12 +28,12 @@ EventDispatcher::EventDispatcher() : _mapper(0) {
}
EventDispatcher::~EventDispatcher() {
- for (Common::List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
+ for (List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
if (i->autoFree)
delete i->source;
}
- for (Common::List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
+ for (List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
if (i->autoFree)
delete i->observer;
}
@@ -43,9 +43,11 @@ EventDispatcher::~EventDispatcher() {
}
void EventDispatcher::dispatch() {
- Common::Event event;
+ Event event;
- for (Common::List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
+ dispatchPoll();
+
+ for (List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
const bool allowMapping = i->source->allowMapping();
while (i->source->pollEvent(event)) {
@@ -83,7 +85,7 @@ void EventDispatcher::registerSource(EventSource *source, bool autoFree) {
}
void EventDispatcher::unregisterSource(EventSource *source) {
- for (Common::List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
+ for (List<SourceEntry>::iterator i = _sources.begin(); i != _sources.end(); ++i) {
if (i->source == source) {
if (i->autoFree)
delete source;
@@ -94,14 +96,15 @@ void EventDispatcher::unregisterSource(EventSource *source) {
}
}
-void EventDispatcher::registerObserver(EventObserver *obs, uint priority, bool autoFree) {
+void EventDispatcher::registerObserver(EventObserver *obs, uint priority, bool autoFree, bool notifyPoll) {
ObserverEntry newEntry;
newEntry.observer = obs;
newEntry.priority = priority;
newEntry.autoFree = autoFree;
+ newEntry.poll = notifyPoll;
- for (Common::List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
+ for (List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
if (i->priority < priority) {
_observers.insert(i, newEntry);
return;
@@ -112,7 +115,7 @@ void EventDispatcher::registerObserver(EventObserver *obs, uint priority, bool a
}
void EventDispatcher::unregisterObserver(EventObserver *obs) {
- for (Common::List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
+ for (List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
if (i->observer == obs) {
if (i->autoFree)
delete obs;
@@ -124,11 +127,18 @@ void EventDispatcher::unregisterObserver(EventObserver *obs) {
}
void EventDispatcher::dispatchEvent(const Event &event) {
- for (Common::List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
+ for (List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
if (i->observer->notifyEvent(event))
break;
}
}
-} // End of namespace Common
+void EventDispatcher::dispatchPoll() {
+ for (List<ObserverEntry>::iterator i = _observers.begin(); i != _observers.end(); ++i) {
+ if (i->poll == true)
+ if (i->observer->notifyPoll())
+ break;
+ }
+}
+} // End of namespace Common
diff --git a/common/EventRecorder.cpp b/common/EventRecorder.cpp
index 4441070050..5e24f128c3 100644
--- a/common/EventRecorder.cpp
+++ b/common/EventRecorder.cpp
@@ -22,6 +22,7 @@
#include "common/EventRecorder.h"
+#include "common/bufferedstream.h"
#include "common/config-manager.h"
#include "common/random.h"
#include "common/savefile.h"
@@ -34,7 +35,28 @@ DECLARE_SINGLETON(EventRecorder);
#define RECORD_SIGNATURE 0x54455354
#define RECORD_VERSION 1
-void readRecord(SeekableReadStream *inFile, uint32 &diff, Event &event) {
+uint32 readTime(ReadStream *inFile) {
+ uint32 d = inFile->readByte();
+ if (d == 0xff) {
+ d = inFile->readUint32LE();
+ }
+
+ return d;
+}
+
+void writeTime(WriteStream *outFile, uint32 d) {
+ //Simple RLE compression
+ if (d >= 0xff) {
+ outFile->writeByte(0xff);
+ outFile->writeUint32LE(d);
+ } else {
+ outFile->writeByte(d);
+ }
+}
+
+void readRecord(SeekableReadStream *inFile, uint32 &diff, Event &event, uint32 &millis) {
+ millis = readTime(inFile);
+
diff = inFile->readUint32LE();
event.type = (EventType)inFile->readUint32LE();
@@ -53,6 +75,8 @@ void readRecord(SeekableReadStream *inFile, uint32 &diff, Event &event) {
case EVENT_RBUTTONUP:
case EVENT_WHEELUP:
case EVENT_WHEELDOWN:
+ case EVENT_MBUTTONDOWN:
+ case EVENT_MBUTTONUP:
event.mouse.x = inFile->readSint16LE();
event.mouse.y = inFile->readSint16LE();
break;
@@ -61,7 +85,9 @@ void readRecord(SeekableReadStream *inFile, uint32 &diff, Event &event) {
}
}
-void writeRecord(WriteStream *outFile, uint32 diff, const Event &event) {
+void writeRecord(WriteStream *outFile, uint32 diff, const Event &event, uint32 millis) {
+ writeTime(outFile, millis);
+
outFile->writeUint32LE(diff);
outFile->writeUint32LE((uint32)event.type);
@@ -80,6 +106,8 @@ void writeRecord(WriteStream *outFile, uint32 diff, const Event &event) {
case EVENT_RBUTTONUP:
case EVENT_WHEELUP:
case EVENT_WHEELDOWN:
+ case EVENT_MBUTTONDOWN:
+ case EVENT_MBUTTONUP:
outFile->writeSint16LE(event.mouse.x);
outFile->writeSint16LE(event.mouse.y);
break;
@@ -99,23 +127,31 @@ EventRecorder::EventRecorder() {
_eventCount = 0;
_lastEventCount = 0;
_lastMillis = 0;
+ _lastEventMillis = 0;
_recordMode = kPassthrough;
}
EventRecorder::~EventRecorder() {
deinit();
+
+ g_system->deleteMutex(_timeMutex);
+ g_system->deleteMutex(_recorderMutex);
}
void EventRecorder::init() {
String recordModeString = ConfMan.get("record_mode");
if (recordModeString.compareToIgnoreCase("record") == 0) {
_recordMode = kRecorderRecord;
+
+ debug(3, "EventRecorder: record");
} else {
if (recordModeString.compareToIgnoreCase("playback") == 0) {
_recordMode = kRecorderPlayback;
+ debug(3, "EventRecorder: playback");
} else {
_recordMode = kPassthrough;
+ debug(3, "EventRecorder: passthrough");
}
}
@@ -136,8 +172,8 @@ void EventRecorder::init() {
if (_recordMode == kRecorderRecord) {
_recordCount = 0;
_recordTimeCount = 0;
- _recordFile = g_system->getSavefileManager()->openForSaving(_recordTempFileName);
- _recordTimeFile = g_system->getSavefileManager()->openForSaving(_recordTimeFileName);
+ _recordFile = wrapBufferedWriteStream(g_system->getSavefileManager()->openForSaving(_recordTempFileName), 128 * 1024);
+ _recordTimeFile = wrapBufferedWriteStream(g_system->getSavefileManager()->openForSaving(_recordTimeFileName), 128 * 1024);
_recordSubtitles = ConfMan.getBool("subtitles");
}
@@ -146,8 +182,8 @@ void EventRecorder::init() {
if (_recordMode == kRecorderPlayback) {
_playbackCount = 0;
_playbackTimeCount = 0;
- _playbackFile = g_system->getSavefileManager()->openForLoading(_recordFileName);
- _playbackTimeFile = g_system->getSavefileManager()->openForLoading(_recordTimeFileName);
+ _playbackFile = wrapBufferedSeekableReadStream(g_system->getSavefileManager()->openForLoading(_recordFileName), 128 * 1024, DisposeAfterUse::YES);
+ _playbackTimeFile = wrapBufferedSeekableReadStream(g_system->getSavefileManager()->openForLoading(_recordTimeFileName), 128 * 1024, DisposeAfterUse::YES);
if (!_playbackFile) {
warning("Cannot open playback file %s. Playback was switched off", _recordFileName.c_str());
@@ -173,6 +209,7 @@ void EventRecorder::init() {
_recordCount = _playbackFile->readUint32LE();
_recordTimeCount = _playbackFile->readUint32LE();
+
randomSourceCount = _playbackFile->readUint32LE();
for (uint i = 0; i < randomSourceCount; ++i) {
RandomSourceRecord rec;
@@ -190,10 +227,12 @@ void EventRecorder::init() {
}
g_system->getEventManager()->getEventDispatcher()->registerSource(this, false);
- g_system->getEventManager()->getEventDispatcher()->registerObserver(this, 1, false);
+ g_system->getEventManager()->getEventDispatcher()->registerObserver(this, EventManager::kEventRecorderPriority, false, true);
}
void EventRecorder::deinit() {
+ debug(3, "EventRecorder: deinit");
+
g_system->getEventManager()->getEventDispatcher()->unregisterSource(this);
g_system->getEventManager()->getEventDispatcher()->unregisterObserver(this);
@@ -236,8 +275,9 @@ void EventRecorder::deinit() {
for (uint i = 0; i < _recordCount; ++i) {
uint32 tempDiff;
Event tempEvent;
- readRecord(_playbackFile, tempDiff, tempEvent);
- writeRecord(_recordFile, tempDiff, tempEvent);
+ uint32 millis;
+ readRecord(_playbackFile, tempDiff, tempEvent, millis);
+ writeRecord(_recordFile, tempDiff, tempEvent, millis);
}
_recordFile->finalize();
@@ -246,9 +286,6 @@ void EventRecorder::deinit() {
//TODO: remove recordTempFileName'ed file
}
-
- g_system->deleteMutex(_timeMutex);
- g_system->deleteMutex(_recorderMutex);
}
void EventRecorder::registerRandomSource(RandomSource &rnd, const String &name) {
@@ -278,23 +315,23 @@ void EventRecorder::processMillis(uint32 &millis) {
g_system->lockMutex(_timeMutex);
if (_recordMode == kRecorderRecord) {
- //Simple RLE compression
d = millis - _lastMillis;
- if (d >= 0xff) {
- _recordTimeFile->writeByte(0xff);
- _recordTimeFile->writeUint32LE(d);
- } else {
- _recordTimeFile->writeByte(d);
- }
+ writeTime(_recordTimeFile, d);
+
_recordTimeCount++;
}
if (_recordMode == kRecorderPlayback) {
if (_recordTimeCount > _playbackTimeCount) {
- d = _playbackTimeFile->readByte();
- if (d == 0xff) {
- d = _playbackTimeFile->readUint32LE();
+ d = readTime(_playbackTimeFile);
+
+ while ((_lastMillis + d > millis) && (_lastMillis + d - millis > 50)) {
+ _recordMode = kPassthrough;
+ g_system->delayMillis(50);
+ millis = g_system->getMillis();
+ _recordMode = kRecorderPlayback;
}
+
millis = _lastMillis + d;
_playbackTimeCount++;
}
@@ -304,6 +341,23 @@ void EventRecorder::processMillis(uint32 &millis) {
g_system->unlockMutex(_timeMutex);
}
+bool EventRecorder::processDelayMillis(uint &msecs) {
+ if (_recordMode == kRecorderPlayback) {
+ _recordMode = kPassthrough;
+
+ uint32 millis = g_system->getMillis();
+
+ _recordMode = kRecorderPlayback;
+
+ if (_lastMillis > millis) {
+ // Skip delay if we're getting late
+ return true;
+ }
+ }
+
+ return false;
+}
+
bool EventRecorder::notifyEvent(const Event &ev) {
if (_recordMode != kRecorderRecord)
return false;
@@ -311,15 +365,27 @@ bool EventRecorder::notifyEvent(const Event &ev) {
StackLock lock(_recorderMutex);
++_eventCount;
- writeRecord(_recordFile, _eventCount - _lastEventCount, ev);
+ writeRecord(_recordFile, _eventCount - _lastEventCount, ev, _lastMillis - _lastEventMillis);
_recordCount++;
_lastEventCount = _eventCount;
+ _lastEventMillis = _lastMillis;
+
+ return false;
+}
+
+bool EventRecorder::notifyPoll() {
+ if (_recordMode != kRecorderRecord)
+ return false;
+
+ ++_eventCount;
return false;
}
bool EventRecorder::pollEvent(Event &ev) {
+ uint32 millis;
+
if (_recordMode != kRecorderPlayback)
return false;
@@ -328,7 +394,7 @@ bool EventRecorder::pollEvent(Event &ev) {
if (!_hasPlaybackEvent) {
if (_recordCount > _playbackCount) {
- readRecord(_playbackFile, const_cast<uint32&>(_playbackDiff), _playbackEvent);
+ readRecord(_playbackFile, const_cast<uint32&>(_playbackDiff), _playbackEvent, millis);
_playbackCount++;
_hasPlaybackEvent = true;
}
@@ -360,4 +426,3 @@ bool EventRecorder::pollEvent(Event &ev) {
}
} // End of namespace Common
-
diff --git a/common/EventRecorder.h b/common/EventRecorder.h
index 8377d9e8bd..43a08b08cd 100644
--- a/common/EventRecorder.h
+++ b/common/EventRecorder.h
@@ -56,8 +56,12 @@ public:
/** TODO: Add documentation, this is only used by the backend */
void processMillis(uint32 &millis);
+ /** TODO: Add documentation, this is only used by the backend */
+ bool processDelayMillis(uint &msecs);
+
private:
bool notifyEvent(const Event &ev);
+ bool notifyPoll();
bool pollEvent(Event &ev);
bool allowMapping() const { return false; }
@@ -72,6 +76,7 @@ private:
volatile uint32 _recordCount;
volatile uint32 _lastRecordEvent;
volatile uint32 _recordTimeCount;
+ volatile uint32 _lastEventMillis;
WriteStream *_recordFile;
WriteStream *_recordTimeFile;
MutexRef _timeMutex;
@@ -103,4 +108,3 @@ private:
} // End of namespace Common
#endif
-
diff --git a/common/algorithm.h b/common/algorithm.h
index 00c0e1c98f..e7ccef4840 100644
--- a/common/algorithm.h
+++ b/common/algorithm.h
@@ -226,12 +226,12 @@ void sort(T first, T last, StrictWeakOrdering comp) {
*/
template<typename T>
void sort(T *first, T *last) {
- sort(first, last, Common::Less<T>());
+ sort(first, last, Less<T>());
}
template<class T>
void sort(T first, T last) {
- sort(first, last, Common::Less<typename T::ValueType>());
+ sort(first, last, Less<typename T::ValueType>());
}
// MSVC is complaining about the minus operator being applied to an unsigned type
@@ -269,4 +269,3 @@ T gcd(T a, T b) {
} // End of namespace Common
#endif
-
diff --git a/common/archive.cpp b/common/archive.cpp
index 102d7aaa3f..954de8bcaa 100644
--- a/common/archive.cpp
+++ b/common/archive.cpp
@@ -147,7 +147,7 @@ void SearchSet::addSubDirectoriesMatching(const FSNode &directory, String origPa
for (FSList::const_iterator i = subDirs.begin(); i != subDirs.end(); ++i) {
String name = i->getName();
- if (Common::matchString(name.c_str(), pattern.c_str(), ignoreCase)) {
+ if (matchString(name.c_str(), pattern.c_str(), ignoreCase)) {
matchIter = multipleMatches.find(name);
if (matchIter == multipleMatches.end()) {
multipleMatches[name] = true;
@@ -288,4 +288,3 @@ void SearchManager::clear() {
DECLARE_SINGLETON(SearchManager);
} // namespace Common
-
diff --git a/common/archive.h b/common/archive.h
index 8400c56d69..c8e78f9bc8 100644
--- a/common/archive.h
+++ b/common/archive.h
@@ -254,7 +254,7 @@ public:
virtual void clear();
private:
- friend class Common::Singleton<SingletonBaseType>;
+ friend class Singleton<SingletonBaseType>;
SearchManager();
};
diff --git a/common/array.h b/common/array.h
index e5434091fb..18cecfb98f 100644
--- a/common/array.h
+++ b/common/array.h
@@ -42,7 +42,7 @@ namespace Common {
* management scheme. There, only elements that 'live' are actually constructed
* (i.e., have their constructor called), and objects that are removed are
* immediately destructed (have their destructor called).
- * With Common::Array, this is not the case; instead, it simply uses new[] and
+ * With Array, this is not the case; instead, it simply uses new[] and
* delete[] to allocate whole blocks of objects, possibly more than are
* currently 'alive'. This simplifies memory management, but may have
* undesirable side effects when one wants to use an Array of complex
@@ -274,7 +274,7 @@ protected:
if (capacity) {
_storage = new T[capacity];
if (!_storage)
- ::error("Common::Array: failure to allocate %d bytes", capacity);
+ ::error("Common::Array: failure to allocate %u bytes", capacity * (uint)sizeof(T));
} else {
_storage = 0;
}
diff --git a/common/bitstream.cpp b/common/bitstream.cpp
new file mode 100644
index 0000000000..b41ad237e0
--- /dev/null
+++ b/common/bitstream.cpp
@@ -0,0 +1,217 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' BitStream implementation
+
+#include "common/bitstream.h"
+#include "common/memstream.h"
+#include "common/stream.h"
+#include "common/textconsole.h"
+#include "common/util.h"
+
+namespace Common {
+
+BitStream::BitStream() {
+}
+
+BitStream::~BitStream() {
+}
+
+void BitStream::skip(uint32 n) {
+ while (n-- > 0)
+ getBit();
+}
+
+
+BitStreamBE::BitStreamBE(SeekableReadStream &stream, uint32 bitCount) : _value(0), _inValue(0) {
+ if ((bitCount % 8) != 0)
+ error("Big-endian bit stream size has to be divisible by 8");
+
+ // Read the number of bytes of the stream
+
+ uint32 byteSize = bitCount / 8;
+ byte *data = (byte *)malloc(byteSize);
+
+ if (stream.read(data, byteSize) != byteSize) {
+ free(data);
+ error("Bad BitStreamBE size");
+ }
+
+ _stream = new MemoryReadStream(data, byteSize, DisposeAfterUse::YES);
+}
+
+BitStreamBE::BitStreamBE(const byte *data, uint32 bitCount) : _value(0), _inValue(0) {
+ if ((bitCount % 8) != 0)
+ error("Big-endian bit stream size has to be divisible by 8");
+
+ // Copy the number of bytes from the data array
+
+ uint32 byteSize = bitCount / 8;
+ byte *dataN = (byte *)malloc(byteSize);
+
+ memcpy(dataN, data, byteSize);
+
+ _stream = new MemoryReadStream(dataN, byteSize, DisposeAfterUse::YES);
+}
+
+BitStreamBE::~BitStreamBE() {
+ delete _stream;
+}
+
+uint32 BitStreamBE::getBit() {
+ if (_inValue == 0) {
+ // Need to get new byte
+
+ if (_stream->eos())
+ error("End of bit stream reached");
+
+ _value = _stream->readByte();
+ }
+
+ // Get the current bit
+ int b = ((_value & 0x80) == 0) ? 0 : 1;
+
+ // Shift to the next bit
+ _value <<= 1;
+
+ // Increase the position within the current byte
+ _inValue = (_inValue + 1) % 8;
+
+ return b;
+}
+
+uint32 BitStreamBE::getBits(uint32 n) {
+ if (n > 32)
+ error("Too many bits requested to be read");
+
+ // Read the number of bits
+ uint32 v = 0;
+ while (n-- > 0)
+ v = (v << 1) | getBit();
+
+ return v;
+}
+
+void BitStreamBE::addBit(uint32 &x, uint32 n) {
+ x = (x << 1) | getBit();
+}
+
+uint32 BitStreamBE::pos() const {
+ if (_stream->pos() == 0)
+ return 0;
+
+ uint32 p = (_inValue == 0) ? _stream->pos() : (_stream->pos() - 1);
+ return p * 8 + _inValue;
+}
+
+uint32 BitStreamBE::size() const {
+ return _stream->size() * 8;
+}
+
+
+BitStream32LE::BitStream32LE(SeekableReadStream &stream, uint32 bitCount) : _value(0), _inValue(0) {
+ if ((bitCount % 32) != 0)
+ error("32bit little-endian bit stream size has to be divisible by 32");
+
+ // Read the number of bytes of the stream
+
+ uint32 byteSize = bitCount / 8;
+ byte *data = (byte *)malloc(byteSize);
+
+ if (stream.read(data, byteSize) != byteSize) {
+ free(data);
+ error("Bad BitStream32LE size");
+ }
+
+ _stream = new MemoryReadStream(data, byteSize, DisposeAfterUse::YES);
+}
+
+BitStream32LE::BitStream32LE(const byte *data, uint32 bitCount) : _value(0), _inValue(0) {
+ if ((bitCount % 32) != 0)
+ error("32bit little-endian bit stream size has to be divisible by 32");
+
+ // Copy the number of bytes from the data array
+
+ uint32 byteSize = bitCount / 8;
+ byte *dataN = (byte *)malloc(byteSize);
+
+ memcpy(dataN, data, byteSize);
+
+ _stream = new MemoryReadStream(dataN, byteSize, DisposeAfterUse::YES);
+}
+
+BitStream32LE::~BitStream32LE() {
+ delete _stream;
+}
+
+uint32 BitStream32LE::getBit() {
+ if (_inValue == 0) {
+ // Need to get new 32bit value
+
+ if (_stream->eos())
+ error("End of bit stream reached");
+
+ _value = _stream->readUint32LE();
+ }
+
+ // Get the current bit
+ int b = ((_value & 1) == 0) ? 0 : 1;
+
+ // Shift to the next bit
+ _value >>= 1;
+
+ // Increase the position within the current byte
+ _inValue = (_inValue + 1) % 32;
+
+ return b;
+}
+
+uint32 BitStream32LE::getBits(uint32 n) {
+ if (n > 32)
+ error("Too many bits requested to be read");
+
+ // Read the number of bits
+ uint32 v = 0;
+ for (uint32 i = 0; i < n; i++)
+ v = (v >> 1) | (((uint32) getBit()) << 31);
+
+ v >>= (32 - n);
+ return v;
+}
+
+void BitStream32LE::addBit(uint32 &x, uint32 n) {
+ x = (x & ~(1 << n)) | (getBit() << n);
+}
+
+uint32 BitStream32LE::pos() const {
+ if (_stream->pos() == 0)
+ return 0;
+
+ uint32 p = ((_inValue == 0) ? _stream->pos() : (_stream->pos() - 1)) & 0xFFFFFFFC;
+ return p * 8 + _inValue;
+}
+
+uint32 BitStream32LE::size() const {
+ return _stream->size() * 8;
+}
+
+} // End of namespace Common
diff --git a/common/bitstream.h b/common/bitstream.h
new file mode 100644
index 0000000000..7be0dccf45
--- /dev/null
+++ b/common/bitstream.h
@@ -0,0 +1,173 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' BitStream implementation
+
+#ifndef COMMON_BITSTREAM_H
+#define COMMON_BITSTREAM_H
+
+#include "common/scummsys.h"
+
+namespace Common {
+
+class SeekableReadStream;
+
+/**
+ * A bit stream, giving access to data one bit at a time.
+ *
+ * Used in engines:
+ * - scumm
+ */
+class BitStream {
+public:
+ BitStream();
+ virtual ~BitStream();
+
+ /** Read a bit from the bitstream. */
+ virtual uint32 getBit() = 0;
+
+ /** Read a number of bits, creating a multi-bit value. */
+ virtual uint32 getBits(uint32 n) = 0;
+
+ /** Add more bits, creating a multi-bit value in stages. */
+ virtual void addBit(uint32 &x, uint32 n) = 0;
+
+ /** Skip a number of bits. */
+ void skip(uint32 n);
+
+ /** Get the current position, in bits. */
+ virtual uint32 pos() const = 0;
+ /** Return the number of bits in the stream. */
+ virtual uint32 size() const = 0;
+};
+
+/**
+ * A big-endian bit stream.
+ *
+ * The input data is read one byte at a time. Their bits are handed out
+ * in the order of MSB to LSB. When all 8 bits of a byte have been consumed,
+ * another input data byte is read.
+ */
+class BitStreamBE : public BitStream {
+public:
+ /**
+ * Create a big endian bit stream.
+ *
+ * Reads and copies bitCount bits from the provided stream.
+ * Ownership of the stream is not transferred.
+ */
+ BitStreamBE(SeekableReadStream &stream, uint32 bitCount);
+
+ /**
+ * Create a big endian bit stream.
+ *
+ * Reads and copies bitCount bits from the provided data.
+ * Ownership of the data is not transferred.
+ */
+ BitStreamBE(const byte *data, uint32 bitCount);
+
+ ~BitStreamBE();
+
+ uint32 getBit();
+
+ /**
+ * Read a number of bits, creating a multi-bit value.
+ *
+ * The bits are read one at a time, in the order MSB to LSB and
+ * or'd together to create a multi-bit value.
+ */
+ uint32 getBits(uint32 n);
+
+ /**
+ * Add more bits, creating a multi-bit value in stages.
+ *
+ * Shifts in n new bits into the value x, in the order of MSB to LSB.
+ */
+ void addBit(uint32 &x, uint32 n);
+
+ uint32 pos() const;
+ uint32 size() const;
+
+private:
+ SeekableReadStream *_stream;
+
+ byte _value; ///< Current byte.
+ uint8 _inValue; ///< Position within the current byte.
+};
+
+/**
+ * A little-endian bit stream, reading 32bit values at a time.
+ *
+ * The input data is read one little-endian uint32 at a time. Their bits are
+ * handed out in the order of LSB to MSB. When all 8 bits of a byte have been
+ * consumed, another little-endian input data uint32 is read.
+ */
+class BitStream32LE : public BitStream {
+public:
+ /**
+ * Create a little-endian bit stream.
+ *
+ * Reads and copies bitCount bits from the provided stream.
+ * Ownership of the stream is not transferred.
+ */
+ BitStream32LE(SeekableReadStream &stream, uint32 bitCount);
+
+ /**
+ * Create a little-endian bit stream.
+ *
+ * Reads and copies bitCount bits from the provided data.
+ * Ownership of the data is not transferred.
+ */
+ BitStream32LE(const byte *data, uint32 bitCount);
+
+ ~BitStream32LE();
+
+ uint32 getBit();
+
+ /**
+ * Read a number of bits, creating a multi-bit value.
+ *
+ * The bits are read one at a time, in the order LSB to MSB and
+ * or'd together to create a multi-bit value.
+ */
+ uint32 getBits(uint32 n);
+
+ /**
+ * Add more bits, creating a multi-bit value in stages.
+ *
+ * Shifts in n new bits into the value x, in the order of LSB to MSB.
+ */
+ void addBit(uint32 &x, uint32 n);
+
+ uint32 pos() const;
+ uint32 size() const;
+
+private:
+ SeekableReadStream *_stream;
+
+ uint32 _value; ///< Current 32bit value.
+ uint8 _inValue; ///< Position within the current 32bit value.
+};
+
+} // End of namespace Common
+
+#endif // COMMON_BITSTREAM_H
diff --git a/common/config-file.cpp b/common/config-file.cpp
index ea3feff8ae..1ebd9b5701 100644
--- a/common/config-file.cpp
+++ b/common/config-file.cpp
@@ -36,7 +36,7 @@ namespace Common {
* underscores. In particular, white space and "#", "=", "[", "]"
* are not valid!
*/
-bool ConfigFile::isValidName(const Common::String &name) {
+bool ConfigFile::isValidName(const String &name) {
const char *p = name.c_str();
while (*p && (isalnum(static_cast<unsigned char>(*p)) || *p == '-' || *p == '_' || *p == '.'))
p++;
diff --git a/common/config-file.h b/common/config-file.h
index d28ad34036..7bc5604b4c 100644
--- a/common/config-file.h
+++ b/common/config-file.h
@@ -93,7 +93,7 @@ public:
* underscores. In particular, white space and "#", "=", "[", "]"
* are not valid!
*/
- static bool isValidName(const Common::String &name);
+ static bool isValidName(const String &name);
/** Reset everything stored in this config file. */
void clear();
diff --git a/common/config-manager.cpp b/common/config-manager.cpp
index fbdb611f3c..c62dee8bea 100644
--- a/common/config-manager.cpp
+++ b/common/config-manager.cpp
@@ -38,11 +38,11 @@ namespace Common {
DECLARE_SINGLETON(ConfigManager);
-const char *ConfigManager::kApplicationDomain = "scummvm";
-const char *ConfigManager::kTransientDomain = "__TRANSIENT";
+char const *const ConfigManager::kApplicationDomain = "scummvm";
+char const *const ConfigManager::kTransientDomain = "__TRANSIENT";
#ifdef ENABLE_KEYMAPPER
-const char *ConfigManager::kKeymapperDomain = "keymapper";
+char const *const ConfigManager::kKeymapperDomain = "keymapper";
#endif
#pragma mark -
@@ -112,7 +112,7 @@ void ConfigManager::loadConfigFile(const String &filename) {
* Add a ready-made domain based on its name and contents
* The domain name should not already exist in the ConfigManager.
**/
-void ConfigManager::addDomain(const Common::String &domainName, const ConfigManager::Domain &domain) {
+void ConfigManager::addDomain(const String &domainName, const ConfigManager::Domain &domain) {
if (domainName.empty())
return;
if (domainName == kApplicationDomain) {
@@ -492,7 +492,7 @@ int ConfigManager::getInt(const String &key, const String &domName) const {
bool ConfigManager::getBool(const String &key, const String &domName) const {
String value(get(key, domName));
bool val;
- if (Common::parseBool(value, val))
+ if (parseBool(value, val))
return val;
error("ConfigManager::getBool(%s,%s): '%s' is not a valid bool",
@@ -696,4 +696,3 @@ bool ConfigManager::Domain::hasKVComment(const String &key) const {
}
} // End of namespace Common
-
diff --git a/common/config-manager.h b/common/config-manager.h
index 78a62b9808..02d4ec3438 100644
--- a/common/config-manager.h
+++ b/common/config-manager.h
@@ -64,14 +64,14 @@ public:
typedef HashMap<String, Domain, IgnoreCase_Hash, IgnoreCase_EqualTo> DomainMap;
/** The name of the application domain (normally 'scummvm'). */
- static const char *kApplicationDomain;
+ static char const *const kApplicationDomain;
/** The transient (pseudo) domain. */
- static const char *kTransientDomain;
+ static char const *const kTransientDomain;
#ifdef ENABLE_KEYMAPPER
/** The name of keymapper domain used to store the key maps */
- static const char *kKeymapperDomain;
+ static char const *const kKeymapperDomain;
#endif
void loadDefaultConfigFile();
@@ -153,7 +153,7 @@ private:
ConfigManager();
void loadFromStream(SeekableReadStream &stream);
- void addDomain(const Common::String &domainName, const Domain &domain);
+ void addDomain(const String &domainName, const Domain &domain);
void writeDomain(WriteStream &stream, const String &name, const Domain &domain);
void renameDomain(const String &oldName, const String &newName, DomainMap &map);
diff --git a/common/cosinetables.cpp b/common/cosinetables.cpp
new file mode 100644
index 0000000000..30f55b55fc
--- /dev/null
+++ b/common/cosinetables.cpp
@@ -0,0 +1,8274 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' cosine tables
+
+#include "common/cosinetables.h"
+#include "common/scummsys.h"
+
+namespace Common {
+
+static const float cosTable16[8] = {
+ 1.000000f, 0.923880f, 0.707107f, 0.382683f, 0.000000f, 0.382683f, 0.707107f, 0.923880f
+};
+
+static const float cosTable32[16] = {
+ 1.000000f, 0.980785f, 0.923880f, 0.831470f, 0.707107f, 0.555570f, 0.382683f, 0.195090f,
+ 0.000000f, 0.195090f, 0.382683f, 0.555570f, 0.707107f, 0.831470f, 0.923880f, 0.980785f
+};
+
+static const float cosTable64[32] = {
+ 1.000000f, 0.995185f, 0.980785f, 0.956940f, 0.923880f, 0.881921f, 0.831470f, 0.773010f,
+ 0.707107f, 0.634393f, 0.555570f, 0.471397f, 0.382683f, 0.290285f, 0.195090f, 0.098017f,
+ 0.000000f, 0.098017f, 0.195090f, 0.290285f, 0.382683f, 0.471397f, 0.555570f, 0.634393f,
+ 0.707107f, 0.773010f, 0.831470f, 0.881921f, 0.923880f, 0.956940f, 0.980785f, 0.995185f
+};
+
+static const float cosTable128[64] = {
+ 1.000000f, 0.998795f, 0.995185f, 0.989177f, 0.980785f, 0.970031f, 0.956940f, 0.941544f,
+ 0.923880f, 0.903989f, 0.881921f, 0.857729f, 0.831470f, 0.803208f, 0.773010f, 0.740951f,
+ 0.707107f, 0.671559f, 0.634393f, 0.595699f, 0.555570f, 0.514103f, 0.471397f, 0.427555f,
+ 0.382683f, 0.336890f, 0.290285f, 0.242980f, 0.195090f, 0.146730f, 0.098017f, 0.049068f,
+ 0.000000f, 0.049068f, 0.098017f, 0.146730f, 0.195090f, 0.242980f, 0.290285f, 0.336890f,
+ 0.382683f, 0.427555f, 0.471397f, 0.514103f, 0.555570f, 0.595699f, 0.634393f, 0.671559f,
+ 0.707107f, 0.740951f, 0.773010f, 0.803208f, 0.831470f, 0.857729f, 0.881921f, 0.903989f,
+ 0.923880f, 0.941544f, 0.956940f, 0.970031f, 0.980785f, 0.989177f, 0.995185f, 0.998795f
+};
+
+static const float cosTable256[128] = {
+ 1.000000f, 0.999699f, 0.998795f, 0.997290f, 0.995185f, 0.992480f, 0.989177f, 0.985278f,
+ 0.980785f, 0.975702f, 0.970031f, 0.963776f, 0.956940f, 0.949528f, 0.941544f, 0.932993f,
+ 0.923880f, 0.914210f, 0.903989f, 0.893224f, 0.881921f, 0.870087f, 0.857729f, 0.844854f,
+ 0.831470f, 0.817585f, 0.803208f, 0.788346f, 0.773010f, 0.757209f, 0.740951f, 0.724247f,
+ 0.707107f, 0.689541f, 0.671559f, 0.653173f, 0.634393f, 0.615232f, 0.595699f, 0.575808f,
+ 0.555570f, 0.534998f, 0.514103f, 0.492898f, 0.471397f, 0.449611f, 0.427555f, 0.405241f,
+ 0.382683f, 0.359895f, 0.336890f, 0.313682f, 0.290285f, 0.266713f, 0.242980f, 0.219101f,
+ 0.195090f, 0.170962f, 0.146730f, 0.122411f, 0.098017f, 0.073565f, 0.049068f, 0.024541f,
+ 0.000000f, 0.024541f, 0.049068f, 0.073565f, 0.098017f, 0.122411f, 0.146730f, 0.170962f,
+ 0.195090f, 0.219101f, 0.242980f, 0.266713f, 0.290285f, 0.313682f, 0.336890f, 0.359895f,
+ 0.382683f, 0.405241f, 0.427555f, 0.449611f, 0.471397f, 0.492898f, 0.514103f, 0.534998f,
+ 0.555570f, 0.575808f, 0.595699f, 0.615232f, 0.634393f, 0.653173f, 0.671559f, 0.689541f,
+ 0.707107f, 0.724247f, 0.740951f, 0.757209f, 0.773010f, 0.788346f, 0.803208f, 0.817585f,
+ 0.831470f, 0.844854f, 0.857729f, 0.870087f, 0.881921f, 0.893224f, 0.903989f, 0.914210f,
+ 0.923880f, 0.932993f, 0.941544f, 0.949528f, 0.956940f, 0.963776f, 0.970031f, 0.975702f,
+ 0.980785f, 0.985278f, 0.989177f, 0.992480f, 0.995185f, 0.997290f, 0.998795f, 0.999699f
+};
+
+static const float cosTable512[256] = {
+ 1.000000f, 0.999925f, 0.999699f, 0.999322f, 0.998795f, 0.998118f, 0.997290f, 0.996313f,
+ 0.995185f, 0.993907f, 0.992480f, 0.990903f, 0.989177f, 0.987301f, 0.985278f, 0.983105f,
+ 0.980785f, 0.978317f, 0.975702f, 0.972940f, 0.970031f, 0.966976f, 0.963776f, 0.960431f,
+ 0.956940f, 0.953306f, 0.949528f, 0.945607f, 0.941544f, 0.937339f, 0.932993f, 0.928506f,
+ 0.923880f, 0.919114f, 0.914210f, 0.909168f, 0.903989f, 0.898674f, 0.893224f, 0.887640f,
+ 0.881921f, 0.876070f, 0.870087f, 0.863973f, 0.857729f, 0.851355f, 0.844854f, 0.838225f,
+ 0.831470f, 0.824589f, 0.817585f, 0.810457f, 0.803208f, 0.795837f, 0.788346f, 0.780737f,
+ 0.773010f, 0.765167f, 0.757209f, 0.749136f, 0.740951f, 0.732654f, 0.724247f, 0.715731f,
+ 0.707107f, 0.698376f, 0.689541f, 0.680601f, 0.671559f, 0.662416f, 0.653173f, 0.643832f,
+ 0.634393f, 0.624860f, 0.615232f, 0.605511f, 0.595699f, 0.585798f, 0.575808f, 0.565732f,
+ 0.555570f, 0.545325f, 0.534998f, 0.524590f, 0.514103f, 0.503538f, 0.492898f, 0.482184f,
+ 0.471397f, 0.460539f, 0.449611f, 0.438616f, 0.427555f, 0.416430f, 0.405241f, 0.393992f,
+ 0.382683f, 0.371317f, 0.359895f, 0.348419f, 0.336890f, 0.325310f, 0.313682f, 0.302006f,
+ 0.290285f, 0.278520f, 0.266713f, 0.254866f, 0.242980f, 0.231058f, 0.219101f, 0.207111f,
+ 0.195090f, 0.183040f, 0.170962f, 0.158858f, 0.146730f, 0.134581f, 0.122411f, 0.110222f,
+ 0.098017f, 0.085797f, 0.073565f, 0.061321f, 0.049068f, 0.036807f, 0.024541f, 0.012272f,
+ 0.000000f, 0.012272f, 0.024541f, 0.036807f, 0.049068f, 0.061321f, 0.073565f, 0.085797f,
+ 0.098017f, 0.110222f, 0.122411f, 0.134581f, 0.146730f, 0.158858f, 0.170962f, 0.183040f,
+ 0.195090f, 0.207111f, 0.219101f, 0.231058f, 0.242980f, 0.254866f, 0.266713f, 0.278520f,
+ 0.290285f, 0.302006f, 0.313682f, 0.325310f, 0.336890f, 0.348419f, 0.359895f, 0.371317f,
+ 0.382683f, 0.393992f, 0.405241f, 0.416430f, 0.427555f, 0.438616f, 0.449611f, 0.460539f,
+ 0.471397f, 0.482184f, 0.492898f, 0.503538f, 0.514103f, 0.524590f, 0.534998f, 0.545325f,
+ 0.555570f, 0.565732f, 0.575808f, 0.585798f, 0.595699f, 0.605511f, 0.615232f, 0.624860f,
+ 0.634393f, 0.643832f, 0.653173f, 0.662416f, 0.671559f, 0.680601f, 0.689541f, 0.698376f,
+ 0.707107f, 0.715731f, 0.724247f, 0.732654f, 0.740951f, 0.749136f, 0.757209f, 0.765167f,
+ 0.773010f, 0.780737f, 0.788346f, 0.795837f, 0.803208f, 0.810457f, 0.817585f, 0.824589f,
+ 0.831470f, 0.838225f, 0.844854f, 0.851355f, 0.857729f, 0.863973f, 0.870087f, 0.876070f,
+ 0.881921f, 0.887640f, 0.893224f, 0.898674f, 0.903989f, 0.909168f, 0.914210f, 0.919114f,
+ 0.923880f, 0.928506f, 0.932993f, 0.937339f, 0.941544f, 0.945607f, 0.949528f, 0.953306f,
+ 0.956940f, 0.960431f, 0.963776f, 0.966976f, 0.970031f, 0.972940f, 0.975702f, 0.978317f,
+ 0.980785f, 0.983105f, 0.985278f, 0.987301f, 0.989177f, 0.990903f, 0.992480f, 0.993907f,
+ 0.995185f, 0.996313f, 0.997290f, 0.998118f, 0.998795f, 0.999322f, 0.999699f, 0.999925f
+};
+
+static const float cosTable1024[512] = {
+ 1.000000f, 0.999981f, 0.999925f, 0.999831f, 0.999699f, 0.999529f, 0.999322f, 0.999078f,
+ 0.998795f, 0.998476f, 0.998118f, 0.997723f, 0.997290f, 0.996820f, 0.996313f, 0.995767f,
+ 0.995185f, 0.994565f, 0.993907f, 0.993212f, 0.992480f, 0.991710f, 0.990903f, 0.990058f,
+ 0.989177f, 0.988258f, 0.987301f, 0.986308f, 0.985278f, 0.984210f, 0.983105f, 0.981964f,
+ 0.980785f, 0.979570f, 0.978317f, 0.977028f, 0.975702f, 0.974339f, 0.972940f, 0.971504f,
+ 0.970031f, 0.968522f, 0.966976f, 0.965394f, 0.963776f, 0.962121f, 0.960431f, 0.958703f,
+ 0.956940f, 0.955141f, 0.953306f, 0.951435f, 0.949528f, 0.947586f, 0.945607f, 0.943593f,
+ 0.941544f, 0.939459f, 0.937339f, 0.935184f, 0.932993f, 0.930767f, 0.928506f, 0.926210f,
+ 0.923880f, 0.921514f, 0.919114f, 0.916679f, 0.914210f, 0.911706f, 0.909168f, 0.906596f,
+ 0.903989f, 0.901349f, 0.898674f, 0.895966f, 0.893224f, 0.890449f, 0.887640f, 0.884797f,
+ 0.881921f, 0.879012f, 0.876070f, 0.873095f, 0.870087f, 0.867046f, 0.863973f, 0.860867f,
+ 0.857729f, 0.854558f, 0.851355f, 0.848120f, 0.844854f, 0.841555f, 0.838225f, 0.834863f,
+ 0.831470f, 0.828045f, 0.824589f, 0.821102f, 0.817585f, 0.814036f, 0.810457f, 0.806848f,
+ 0.803208f, 0.799537f, 0.795837f, 0.792107f, 0.788346f, 0.784557f, 0.780737f, 0.776888f,
+ 0.773010f, 0.769103f, 0.765167f, 0.761202f, 0.757209f, 0.753187f, 0.749136f, 0.745058f,
+ 0.740951f, 0.736817f, 0.732654f, 0.728464f, 0.724247f, 0.720003f, 0.715731f, 0.711432f,
+ 0.707107f, 0.702755f, 0.698376f, 0.693971f, 0.689541f, 0.685084f, 0.680601f, 0.676093f,
+ 0.671559f, 0.667000f, 0.662416f, 0.657807f, 0.653173f, 0.648514f, 0.643832f, 0.639124f,
+ 0.634393f, 0.629638f, 0.624860f, 0.620057f, 0.615232f, 0.610383f, 0.605511f, 0.600616f,
+ 0.595699f, 0.590760f, 0.585798f, 0.580814f, 0.575808f, 0.570781f, 0.565732f, 0.560662f,
+ 0.555570f, 0.550458f, 0.545325f, 0.540171f, 0.534998f, 0.529804f, 0.524590f, 0.519356f,
+ 0.514103f, 0.508830f, 0.503538f, 0.498228f, 0.492898f, 0.487550f, 0.482184f, 0.476799f,
+ 0.471397f, 0.465977f, 0.460539f, 0.455084f, 0.449611f, 0.444122f, 0.438616f, 0.433094f,
+ 0.427555f, 0.422000f, 0.416430f, 0.410843f, 0.405241f, 0.399624f, 0.393992f, 0.388345f,
+ 0.382683f, 0.377007f, 0.371317f, 0.365613f, 0.359895f, 0.354164f, 0.348419f, 0.342661f,
+ 0.336890f, 0.331106f, 0.325310f, 0.319502f, 0.313682f, 0.307850f, 0.302006f, 0.296151f,
+ 0.290285f, 0.284408f, 0.278520f, 0.272621f, 0.266713f, 0.260794f, 0.254866f, 0.248928f,
+ 0.242980f, 0.237024f, 0.231058f, 0.225084f, 0.219101f, 0.213110f, 0.207111f, 0.201105f,
+ 0.195090f, 0.189069f, 0.183040f, 0.177004f, 0.170962f, 0.164913f, 0.158858f, 0.152797f,
+ 0.146730f, 0.140658f, 0.134581f, 0.128498f, 0.122411f, 0.116319f, 0.110222f, 0.104122f,
+ 0.098017f, 0.091909f, 0.085797f, 0.079682f, 0.073565f, 0.067444f, 0.061321f, 0.055195f,
+ 0.049068f, 0.042938f, 0.036807f, 0.030675f, 0.024541f, 0.018407f, 0.012272f, 0.006136f,
+ 0.000000f, 0.006136f, 0.012272f, 0.018407f, 0.024541f, 0.030675f, 0.036807f, 0.042938f,
+ 0.049068f, 0.055195f, 0.061321f, 0.067444f, 0.073565f, 0.079682f, 0.085797f, 0.091909f,
+ 0.098017f, 0.104122f, 0.110222f, 0.116319f, 0.122411f, 0.128498f, 0.134581f, 0.140658f,
+ 0.146730f, 0.152797f, 0.158858f, 0.164913f, 0.170962f, 0.177004f, 0.183040f, 0.189069f,
+ 0.195090f, 0.201105f, 0.207111f, 0.213110f, 0.219101f, 0.225084f, 0.231058f, 0.237024f,
+ 0.242980f, 0.248928f, 0.254866f, 0.260794f, 0.266713f, 0.272621f, 0.278520f, 0.284408f,
+ 0.290285f, 0.296151f, 0.302006f, 0.307850f, 0.313682f, 0.319502f, 0.325310f, 0.331106f,
+ 0.336890f, 0.342661f, 0.348419f, 0.354164f, 0.359895f, 0.365613f, 0.371317f, 0.377007f,
+ 0.382683f, 0.388345f, 0.393992f, 0.399624f, 0.405241f, 0.410843f, 0.416430f, 0.422000f,
+ 0.427555f, 0.433094f, 0.438616f, 0.444122f, 0.449611f, 0.455084f, 0.460539f, 0.465977f,
+ 0.471397f, 0.476799f, 0.482184f, 0.487550f, 0.492898f, 0.498228f, 0.503538f, 0.508830f,
+ 0.514103f, 0.519356f, 0.524590f, 0.529804f, 0.534998f, 0.540171f, 0.545325f, 0.550458f,
+ 0.555570f, 0.560662f, 0.565732f, 0.570781f, 0.575808f, 0.580814f, 0.585798f, 0.590760f,
+ 0.595699f, 0.600616f, 0.605511f, 0.610383f, 0.615232f, 0.620057f, 0.624860f, 0.629638f,
+ 0.634393f, 0.639124f, 0.643832f, 0.648514f, 0.653173f, 0.657807f, 0.662416f, 0.667000f,
+ 0.671559f, 0.676093f, 0.680601f, 0.685084f, 0.689541f, 0.693971f, 0.698376f, 0.702755f,
+ 0.707107f, 0.711432f, 0.715731f, 0.720003f, 0.724247f, 0.728464f, 0.732654f, 0.736817f,
+ 0.740951f, 0.745058f, 0.749136f, 0.753187f, 0.757209f, 0.761202f, 0.765167f, 0.769103f,
+ 0.773010f, 0.776888f, 0.780737f, 0.784557f, 0.788346f, 0.792107f, 0.795837f, 0.799537f,
+ 0.803208f, 0.806848f, 0.810457f, 0.814036f, 0.817585f, 0.821102f, 0.824589f, 0.828045f,
+ 0.831470f, 0.834863f, 0.838225f, 0.841555f, 0.844854f, 0.848120f, 0.851355f, 0.854558f,
+ 0.857729f, 0.860867f, 0.863973f, 0.867046f, 0.870087f, 0.873095f, 0.876070f, 0.879012f,
+ 0.881921f, 0.884797f, 0.887640f, 0.890449f, 0.893224f, 0.895966f, 0.898674f, 0.901349f,
+ 0.903989f, 0.906596f, 0.909168f, 0.911706f, 0.914210f, 0.916679f, 0.919114f, 0.921514f,
+ 0.923880f, 0.926210f, 0.928506f, 0.930767f, 0.932993f, 0.935184f, 0.937339f, 0.939459f,
+ 0.941544f, 0.943593f, 0.945607f, 0.947586f, 0.949528f, 0.951435f, 0.953306f, 0.955141f,
+ 0.956940f, 0.958703f, 0.960431f, 0.962121f, 0.963776f, 0.965394f, 0.966976f, 0.968522f,
+ 0.970031f, 0.971504f, 0.972940f, 0.974339f, 0.975702f, 0.977028f, 0.978317f, 0.979570f,
+ 0.980785f, 0.981964f, 0.983105f, 0.984210f, 0.985278f, 0.986308f, 0.987301f, 0.988258f,
+ 0.989177f, 0.990058f, 0.990903f, 0.991710f, 0.992480f, 0.993212f, 0.993907f, 0.994565f,
+ 0.995185f, 0.995767f, 0.996313f, 0.996820f, 0.997290f, 0.997723f, 0.998118f, 0.998476f,
+ 0.998795f, 0.999078f, 0.999322f, 0.999529f, 0.999699f, 0.999831f, 0.999925f, 0.999981f
+};
+
+static const float cosTable2048[1024] = {
+ 1.000000f, 0.999995f, 0.999981f, 0.999958f, 0.999925f, 0.999882f, 0.999831f, 0.999769f,
+ 0.999699f, 0.999619f, 0.999529f, 0.999431f, 0.999322f, 0.999205f, 0.999078f, 0.998941f,
+ 0.998795f, 0.998640f, 0.998476f, 0.998302f, 0.998118f, 0.997925f, 0.997723f, 0.997511f,
+ 0.997290f, 0.997060f, 0.996820f, 0.996571f, 0.996313f, 0.996045f, 0.995767f, 0.995481f,
+ 0.995185f, 0.994879f, 0.994565f, 0.994240f, 0.993907f, 0.993564f, 0.993212f, 0.992850f,
+ 0.992480f, 0.992099f, 0.991710f, 0.991311f, 0.990903f, 0.990485f, 0.990058f, 0.989622f,
+ 0.989177f, 0.988722f, 0.988258f, 0.987784f, 0.987301f, 0.986809f, 0.986308f, 0.985798f,
+ 0.985278f, 0.984748f, 0.984210f, 0.983662f, 0.983105f, 0.982539f, 0.981964f, 0.981379f,
+ 0.980785f, 0.980182f, 0.979570f, 0.978948f, 0.978317f, 0.977677f, 0.977028f, 0.976370f,
+ 0.975702f, 0.975025f, 0.974339f, 0.973644f, 0.972940f, 0.972227f, 0.971504f, 0.970772f,
+ 0.970031f, 0.969281f, 0.968522f, 0.967754f, 0.966976f, 0.966190f, 0.965394f, 0.964590f,
+ 0.963776f, 0.962953f, 0.962121f, 0.961280f, 0.960431f, 0.959572f, 0.958703f, 0.957826f,
+ 0.956940f, 0.956045f, 0.955141f, 0.954228f, 0.953306f, 0.952375f, 0.951435f, 0.950486f,
+ 0.949528f, 0.948561f, 0.947586f, 0.946601f, 0.945607f, 0.944605f, 0.943593f, 0.942573f,
+ 0.941544f, 0.940506f, 0.939459f, 0.938404f, 0.937339f, 0.936266f, 0.935184f, 0.934093f,
+ 0.932993f, 0.931884f, 0.930767f, 0.929641f, 0.928506f, 0.927363f, 0.926210f, 0.925049f,
+ 0.923880f, 0.922701f, 0.921514f, 0.920318f, 0.919114f, 0.917901f, 0.916679f, 0.915449f,
+ 0.914210f, 0.912962f, 0.911706f, 0.910441f, 0.909168f, 0.907886f, 0.906596f, 0.905297f,
+ 0.903989f, 0.902673f, 0.901349f, 0.900016f, 0.898674f, 0.897325f, 0.895966f, 0.894599f,
+ 0.893224f, 0.891841f, 0.890449f, 0.889048f, 0.887640f, 0.886223f, 0.884797f, 0.883363f,
+ 0.881921f, 0.880471f, 0.879012f, 0.877545f, 0.876070f, 0.874587f, 0.873095f, 0.871595f,
+ 0.870087f, 0.868571f, 0.867046f, 0.865514f, 0.863973f, 0.862424f, 0.860867f, 0.859302f,
+ 0.857729f, 0.856147f, 0.854558f, 0.852961f, 0.851355f, 0.849742f, 0.848120f, 0.846491f,
+ 0.844854f, 0.843208f, 0.841555f, 0.839894f, 0.838225f, 0.836548f, 0.834863f, 0.833170f,
+ 0.831470f, 0.829761f, 0.828045f, 0.826321f, 0.824589f, 0.822850f, 0.821102f, 0.819348f,
+ 0.817585f, 0.815814f, 0.814036f, 0.812251f, 0.810457f, 0.808656f, 0.806848f, 0.805031f,
+ 0.803208f, 0.801376f, 0.799537f, 0.797691f, 0.795837f, 0.793975f, 0.792107f, 0.790230f,
+ 0.788346f, 0.786455f, 0.784557f, 0.782651f, 0.780737f, 0.778817f, 0.776888f, 0.774953f,
+ 0.773010f, 0.771061f, 0.769103f, 0.767139f, 0.765167f, 0.763188f, 0.761202f, 0.759209f,
+ 0.757209f, 0.755201f, 0.753187f, 0.751165f, 0.749136f, 0.747101f, 0.745058f, 0.743008f,
+ 0.740951f, 0.738887f, 0.736817f, 0.734739f, 0.732654f, 0.730563f, 0.728464f, 0.726359f,
+ 0.724247f, 0.722128f, 0.720003f, 0.717870f, 0.715731f, 0.713585f, 0.711432f, 0.709273f,
+ 0.707107f, 0.704934f, 0.702755f, 0.700569f, 0.698376f, 0.696177f, 0.693971f, 0.691759f,
+ 0.689541f, 0.687315f, 0.685084f, 0.682846f, 0.680601f, 0.678350f, 0.676093f, 0.673829f,
+ 0.671559f, 0.669283f, 0.667000f, 0.664711f, 0.662416f, 0.660114f, 0.657807f, 0.655493f,
+ 0.653173f, 0.650847f, 0.648514f, 0.646176f, 0.643832f, 0.641481f, 0.639124f, 0.636762f,
+ 0.634393f, 0.632019f, 0.629638f, 0.627252f, 0.624860f, 0.622461f, 0.620057f, 0.617647f,
+ 0.615232f, 0.612810f, 0.610383f, 0.607950f, 0.605511f, 0.603067f, 0.600616f, 0.598161f,
+ 0.595699f, 0.593232f, 0.590760f, 0.588282f, 0.585798f, 0.583309f, 0.580814f, 0.578314f,
+ 0.575808f, 0.573297f, 0.570781f, 0.568259f, 0.565732f, 0.563199f, 0.560662f, 0.558119f,
+ 0.555570f, 0.553017f, 0.550458f, 0.547894f, 0.545325f, 0.542751f, 0.540171f, 0.537587f,
+ 0.534998f, 0.532403f, 0.529804f, 0.527199f, 0.524590f, 0.521975f, 0.519356f, 0.516732f,
+ 0.514103f, 0.511469f, 0.508830f, 0.506187f, 0.503538f, 0.500885f, 0.498228f, 0.495565f,
+ 0.492898f, 0.490226f, 0.487550f, 0.484869f, 0.482184f, 0.479494f, 0.476799f, 0.474100f,
+ 0.471397f, 0.468689f, 0.465977f, 0.463260f, 0.460539f, 0.457813f, 0.455084f, 0.452350f,
+ 0.449611f, 0.446869f, 0.444122f, 0.441371f, 0.438616f, 0.435857f, 0.433094f, 0.430326f,
+ 0.427555f, 0.424780f, 0.422000f, 0.419217f, 0.416430f, 0.413638f, 0.410843f, 0.408044f,
+ 0.405241f, 0.402435f, 0.399624f, 0.396810f, 0.393992f, 0.391170f, 0.388345f, 0.385516f,
+ 0.382683f, 0.379847f, 0.377007f, 0.374164f, 0.371317f, 0.368467f, 0.365613f, 0.362756f,
+ 0.359895f, 0.357031f, 0.354164f, 0.351293f, 0.348419f, 0.345541f, 0.342661f, 0.339777f,
+ 0.336890f, 0.334000f, 0.331106f, 0.328210f, 0.325310f, 0.322408f, 0.319502f, 0.316593f,
+ 0.313682f, 0.310767f, 0.307850f, 0.304929f, 0.302006f, 0.299080f, 0.296151f, 0.293219f,
+ 0.290285f, 0.287347f, 0.284408f, 0.281465f, 0.278520f, 0.275572f, 0.272621f, 0.269668f,
+ 0.266713f, 0.263755f, 0.260794f, 0.257831f, 0.254866f, 0.251898f, 0.248928f, 0.245955f,
+ 0.242980f, 0.240003f, 0.237024f, 0.234042f, 0.231058f, 0.228072f, 0.225084f, 0.222094f,
+ 0.219101f, 0.216107f, 0.213110f, 0.210112f, 0.207111f, 0.204109f, 0.201105f, 0.198098f,
+ 0.195090f, 0.192080f, 0.189069f, 0.186055f, 0.183040f, 0.180023f, 0.177004f, 0.173984f,
+ 0.170962f, 0.167938f, 0.164913f, 0.161886f, 0.158858f, 0.155828f, 0.152797f, 0.149765f,
+ 0.146730f, 0.143695f, 0.140658f, 0.137620f, 0.134581f, 0.131540f, 0.128498f, 0.125455f,
+ 0.122411f, 0.119365f, 0.116319f, 0.113271f, 0.110222f, 0.107172f, 0.104122f, 0.101070f,
+ 0.098017f, 0.094963f, 0.091909f, 0.088854f, 0.085797f, 0.082740f, 0.079682f, 0.076624f,
+ 0.073565f, 0.070505f, 0.067444f, 0.064383f, 0.061321f, 0.058258f, 0.055195f, 0.052132f,
+ 0.049068f, 0.046003f, 0.042938f, 0.039873f, 0.036807f, 0.033741f, 0.030675f, 0.027608f,
+ 0.024541f, 0.021474f, 0.018407f, 0.015339f, 0.012272f, 0.009204f, 0.006136f, 0.003068f,
+ 0.000000f, 0.003068f, 0.006136f, 0.009204f, 0.012272f, 0.015339f, 0.018407f, 0.021474f,
+ 0.024541f, 0.027608f, 0.030675f, 0.033741f, 0.036807f, 0.039873f, 0.042938f, 0.046003f,
+ 0.049068f, 0.052132f, 0.055195f, 0.058258f, 0.061321f, 0.064383f, 0.067444f, 0.070505f,
+ 0.073565f, 0.076624f, 0.079682f, 0.082740f, 0.085797f, 0.088854f, 0.091909f, 0.094963f,
+ 0.098017f, 0.101070f, 0.104122f, 0.107172f, 0.110222f, 0.113271f, 0.116319f, 0.119365f,
+ 0.122411f, 0.125455f, 0.128498f, 0.131540f, 0.134581f, 0.137620f, 0.140658f, 0.143695f,
+ 0.146730f, 0.149765f, 0.152797f, 0.155828f, 0.158858f, 0.161886f, 0.164913f, 0.167938f,
+ 0.170962f, 0.173984f, 0.177004f, 0.180023f, 0.183040f, 0.186055f, 0.189069f, 0.192080f,
+ 0.195090f, 0.198098f, 0.201105f, 0.204109f, 0.207111f, 0.210112f, 0.213110f, 0.216107f,
+ 0.219101f, 0.222094f, 0.225084f, 0.228072f, 0.231058f, 0.234042f, 0.237024f, 0.240003f,
+ 0.242980f, 0.245955f, 0.248928f, 0.251898f, 0.254866f, 0.257831f, 0.260794f, 0.263755f,
+ 0.266713f, 0.269668f, 0.272621f, 0.275572f, 0.278520f, 0.281465f, 0.284408f, 0.287347f,
+ 0.290285f, 0.293219f, 0.296151f, 0.299080f, 0.302006f, 0.304929f, 0.307850f, 0.310767f,
+ 0.313682f, 0.316593f, 0.319502f, 0.322408f, 0.325310f, 0.328210f, 0.331106f, 0.334000f,
+ 0.336890f, 0.339777f, 0.342661f, 0.345541f, 0.348419f, 0.351293f, 0.354164f, 0.357031f,
+ 0.359895f, 0.362756f, 0.365613f, 0.368467f, 0.371317f, 0.374164f, 0.377007f, 0.379847f,
+ 0.382683f, 0.385516f, 0.388345f, 0.391170f, 0.393992f, 0.396810f, 0.399624f, 0.402435f,
+ 0.405241f, 0.408044f, 0.410843f, 0.413638f, 0.416430f, 0.419217f, 0.422000f, 0.424780f,
+ 0.427555f, 0.430326f, 0.433094f, 0.435857f, 0.438616f, 0.441371f, 0.444122f, 0.446869f,
+ 0.449611f, 0.452350f, 0.455084f, 0.457813f, 0.460539f, 0.463260f, 0.465977f, 0.468689f,
+ 0.471397f, 0.474100f, 0.476799f, 0.479494f, 0.482184f, 0.484869f, 0.487550f, 0.490226f,
+ 0.492898f, 0.495565f, 0.498228f, 0.500885f, 0.503538f, 0.506187f, 0.508830f, 0.511469f,
+ 0.514103f, 0.516732f, 0.519356f, 0.521975f, 0.524590f, 0.527199f, 0.529804f, 0.532403f,
+ 0.534998f, 0.537587f, 0.540171f, 0.542751f, 0.545325f, 0.547894f, 0.550458f, 0.553017f,
+ 0.555570f, 0.558119f, 0.560662f, 0.563199f, 0.565732f, 0.568259f, 0.570781f, 0.573297f,
+ 0.575808f, 0.578314f, 0.580814f, 0.583309f, 0.585798f, 0.588282f, 0.590760f, 0.593232f,
+ 0.595699f, 0.598161f, 0.600616f, 0.603067f, 0.605511f, 0.607950f, 0.610383f, 0.612810f,
+ 0.615232f, 0.617647f, 0.620057f, 0.622461f, 0.624860f, 0.627252f, 0.629638f, 0.632019f,
+ 0.634393f, 0.636762f, 0.639124f, 0.641481f, 0.643832f, 0.646176f, 0.648514f, 0.650847f,
+ 0.653173f, 0.655493f, 0.657807f, 0.660114f, 0.662416f, 0.664711f, 0.667000f, 0.669283f,
+ 0.671559f, 0.673829f, 0.676093f, 0.678350f, 0.680601f, 0.682846f, 0.685084f, 0.687315f,
+ 0.689541f, 0.691759f, 0.693971f, 0.696177f, 0.698376f, 0.700569f, 0.702755f, 0.704934f,
+ 0.707107f, 0.709273f, 0.711432f, 0.713585f, 0.715731f, 0.717870f, 0.720003f, 0.722128f,
+ 0.724247f, 0.726359f, 0.728464f, 0.730563f, 0.732654f, 0.734739f, 0.736817f, 0.738887f,
+ 0.740951f, 0.743008f, 0.745058f, 0.747101f, 0.749136f, 0.751165f, 0.753187f, 0.755201f,
+ 0.757209f, 0.759209f, 0.761202f, 0.763188f, 0.765167f, 0.767139f, 0.769103f, 0.771061f,
+ 0.773010f, 0.774953f, 0.776888f, 0.778817f, 0.780737f, 0.782651f, 0.784557f, 0.786455f,
+ 0.788346f, 0.790230f, 0.792107f, 0.793975f, 0.795837f, 0.797691f, 0.799537f, 0.801376f,
+ 0.803208f, 0.805031f, 0.806848f, 0.808656f, 0.810457f, 0.812251f, 0.814036f, 0.815814f,
+ 0.817585f, 0.819348f, 0.821102f, 0.822850f, 0.824589f, 0.826321f, 0.828045f, 0.829761f,
+ 0.831470f, 0.833170f, 0.834863f, 0.836548f, 0.838225f, 0.839894f, 0.841555f, 0.843208f,
+ 0.844854f, 0.846491f, 0.848120f, 0.849742f, 0.851355f, 0.852961f, 0.854558f, 0.856147f,
+ 0.857729f, 0.859302f, 0.860867f, 0.862424f, 0.863973f, 0.865514f, 0.867046f, 0.868571f,
+ 0.870087f, 0.871595f, 0.873095f, 0.874587f, 0.876070f, 0.877545f, 0.879012f, 0.880471f,
+ 0.881921f, 0.883363f, 0.884797f, 0.886223f, 0.887640f, 0.889048f, 0.890449f, 0.891841f,
+ 0.893224f, 0.894599f, 0.895966f, 0.897325f, 0.898674f, 0.900016f, 0.901349f, 0.902673f,
+ 0.903989f, 0.905297f, 0.906596f, 0.907886f, 0.909168f, 0.910441f, 0.911706f, 0.912962f,
+ 0.914210f, 0.915449f, 0.916679f, 0.917901f, 0.919114f, 0.920318f, 0.921514f, 0.922701f,
+ 0.923880f, 0.925049f, 0.926210f, 0.927363f, 0.928506f, 0.929641f, 0.930767f, 0.931884f,
+ 0.932993f, 0.934093f, 0.935184f, 0.936266f, 0.937339f, 0.938404f, 0.939459f, 0.940506f,
+ 0.941544f, 0.942573f, 0.943593f, 0.944605f, 0.945607f, 0.946601f, 0.947586f, 0.948561f,
+ 0.949528f, 0.950486f, 0.951435f, 0.952375f, 0.953306f, 0.954228f, 0.955141f, 0.956045f,
+ 0.956940f, 0.957826f, 0.958703f, 0.959572f, 0.960431f, 0.961280f, 0.962121f, 0.962953f,
+ 0.963776f, 0.964590f, 0.965394f, 0.966190f, 0.966976f, 0.967754f, 0.968522f, 0.969281f,
+ 0.970031f, 0.970772f, 0.971504f, 0.972227f, 0.972940f, 0.973644f, 0.974339f, 0.975025f,
+ 0.975702f, 0.976370f, 0.977028f, 0.977677f, 0.978317f, 0.978948f, 0.979570f, 0.980182f,
+ 0.980785f, 0.981379f, 0.981964f, 0.982539f, 0.983105f, 0.983662f, 0.984210f, 0.984748f,
+ 0.985278f, 0.985798f, 0.986308f, 0.986809f, 0.987301f, 0.987784f, 0.988258f, 0.988722f,
+ 0.989177f, 0.989622f, 0.990058f, 0.990485f, 0.990903f, 0.991311f, 0.991710f, 0.992099f,
+ 0.992480f, 0.992850f, 0.993212f, 0.993564f, 0.993907f, 0.994240f, 0.994565f, 0.994879f,
+ 0.995185f, 0.995481f, 0.995767f, 0.996045f, 0.996313f, 0.996571f, 0.996820f, 0.997060f,
+ 0.997290f, 0.997511f, 0.997723f, 0.997925f, 0.998118f, 0.998302f, 0.998476f, 0.998640f,
+ 0.998795f, 0.998941f, 0.999078f, 0.999205f, 0.999322f, 0.999431f, 0.999529f, 0.999619f,
+ 0.999699f, 0.999769f, 0.999831f, 0.999882f, 0.999925f, 0.999958f, 0.999981f, 0.999995f
+};
+
+static const float cosTable4096[2048] = {
+ 1.000000f, 0.999999f, 0.999995f, 0.999989f, 0.999981f, 0.999971f, 0.999958f, 0.999942f,
+ 0.999925f, 0.999905f, 0.999882f, 0.999858f, 0.999831f, 0.999801f, 0.999769f, 0.999735f,
+ 0.999699f, 0.999660f, 0.999619f, 0.999575f, 0.999529f, 0.999481f, 0.999431f, 0.999378f,
+ 0.999322f, 0.999265f, 0.999205f, 0.999142f, 0.999078f, 0.999011f, 0.998941f, 0.998870f,
+ 0.998795f, 0.998719f, 0.998640f, 0.998559f, 0.998476f, 0.998390f, 0.998302f, 0.998211f,
+ 0.998118f, 0.998023f, 0.997925f, 0.997825f, 0.997723f, 0.997618f, 0.997511f, 0.997402f,
+ 0.997290f, 0.997176f, 0.997060f, 0.996941f, 0.996820f, 0.996697f, 0.996571f, 0.996443f,
+ 0.996313f, 0.996180f, 0.996045f, 0.995907f, 0.995767f, 0.995625f, 0.995481f, 0.995334f,
+ 0.995185f, 0.995033f, 0.994879f, 0.994723f, 0.994565f, 0.994404f, 0.994240f, 0.994075f,
+ 0.993907f, 0.993737f, 0.993564f, 0.993389f, 0.993212f, 0.993032f, 0.992850f, 0.992666f,
+ 0.992480f, 0.992291f, 0.992099f, 0.991906f, 0.991710f, 0.991511f, 0.991311f, 0.991108f,
+ 0.990903f, 0.990695f, 0.990485f, 0.990273f, 0.990058f, 0.989841f, 0.989622f, 0.989400f,
+ 0.989177f, 0.988950f, 0.988722f, 0.988491f, 0.988258f, 0.988022f, 0.987784f, 0.987544f,
+ 0.987301f, 0.987057f, 0.986809f, 0.986560f, 0.986308f, 0.986054f, 0.985798f, 0.985539f,
+ 0.985278f, 0.985014f, 0.984748f, 0.984480f, 0.984210f, 0.983937f, 0.983662f, 0.983385f,
+ 0.983105f, 0.982824f, 0.982539f, 0.982253f, 0.981964f, 0.981673f, 0.981379f, 0.981083f,
+ 0.980785f, 0.980485f, 0.980182f, 0.979877f, 0.979570f, 0.979260f, 0.978948f, 0.978634f,
+ 0.978317f, 0.977998f, 0.977677f, 0.977354f, 0.977028f, 0.976700f, 0.976370f, 0.976037f,
+ 0.975702f, 0.975365f, 0.975025f, 0.974684f, 0.974339f, 0.973993f, 0.973644f, 0.973293f,
+ 0.972940f, 0.972584f, 0.972227f, 0.971866f, 0.971504f, 0.971139f, 0.970772f, 0.970403f,
+ 0.970031f, 0.969657f, 0.969281f, 0.968903f, 0.968522f, 0.968139f, 0.967754f, 0.967366f,
+ 0.966976f, 0.966584f, 0.966190f, 0.965793f, 0.965394f, 0.964993f, 0.964590f, 0.964184f,
+ 0.963776f, 0.963366f, 0.962953f, 0.962538f, 0.962121f, 0.961702f, 0.961280f, 0.960857f,
+ 0.960431f, 0.960002f, 0.959572f, 0.959139f, 0.958703f, 0.958266f, 0.957826f, 0.957385f,
+ 0.956940f, 0.956494f, 0.956045f, 0.955594f, 0.955141f, 0.954686f, 0.954228f, 0.953768f,
+ 0.953306f, 0.952842f, 0.952375f, 0.951906f, 0.951435f, 0.950962f, 0.950486f, 0.950008f,
+ 0.949528f, 0.949046f, 0.948561f, 0.948075f, 0.947586f, 0.947094f, 0.946601f, 0.946105f,
+ 0.945607f, 0.945107f, 0.944605f, 0.944100f, 0.943593f, 0.943084f, 0.942573f, 0.942060f,
+ 0.941544f, 0.941026f, 0.940506f, 0.939984f, 0.939459f, 0.938932f, 0.938404f, 0.937872f,
+ 0.937339f, 0.936803f, 0.936266f, 0.935726f, 0.935184f, 0.934639f, 0.934093f, 0.933544f,
+ 0.932993f, 0.932440f, 0.931884f, 0.931327f, 0.930767f, 0.930205f, 0.929641f, 0.929075f,
+ 0.928506f, 0.927935f, 0.927363f, 0.926787f, 0.926210f, 0.925631f, 0.925049f, 0.924465f,
+ 0.923880f, 0.923291f, 0.922701f, 0.922109f, 0.921514f, 0.920917f, 0.920318f, 0.919717f,
+ 0.919114f, 0.918508f, 0.917901f, 0.917291f, 0.916679f, 0.916065f, 0.915449f, 0.914830f,
+ 0.914210f, 0.913587f, 0.912962f, 0.912335f, 0.911706f, 0.911075f, 0.910441f, 0.909806f,
+ 0.909168f, 0.908528f, 0.907886f, 0.907242f, 0.906596f, 0.905947f, 0.905297f, 0.904644f,
+ 0.903989f, 0.903332f, 0.902673f, 0.902012f, 0.901349f, 0.900683f, 0.900016f, 0.899346f,
+ 0.898674f, 0.898001f, 0.897325f, 0.896646f, 0.895966f, 0.895284f, 0.894599f, 0.893913f,
+ 0.893224f, 0.892534f, 0.891841f, 0.891146f, 0.890449f, 0.889750f, 0.889048f, 0.888345f,
+ 0.887640f, 0.886932f, 0.886223f, 0.885511f, 0.884797f, 0.884081f, 0.883363f, 0.882643f,
+ 0.881921f, 0.881197f, 0.880471f, 0.879743f, 0.879012f, 0.878280f, 0.877545f, 0.876809f,
+ 0.876070f, 0.875329f, 0.874587f, 0.873842f, 0.873095f, 0.872346f, 0.871595f, 0.870842f,
+ 0.870087f, 0.869330f, 0.868571f, 0.867809f, 0.867046f, 0.866281f, 0.865514f, 0.864744f,
+ 0.863973f, 0.863199f, 0.862424f, 0.861646f, 0.860867f, 0.860085f, 0.859302f, 0.858516f,
+ 0.857729f, 0.856939f, 0.856147f, 0.855354f, 0.854558f, 0.853760f, 0.852961f, 0.852159f,
+ 0.851355f, 0.850549f, 0.849742f, 0.848932f, 0.848120f, 0.847307f, 0.846491f, 0.845673f,
+ 0.844854f, 0.844032f, 0.843208f, 0.842383f, 0.841555f, 0.840725f, 0.839894f, 0.839060f,
+ 0.838225f, 0.837387f, 0.836548f, 0.835706f, 0.834863f, 0.834018f, 0.833170f, 0.832321f,
+ 0.831470f, 0.830616f, 0.829761f, 0.828904f, 0.828045f, 0.827184f, 0.826321f, 0.825456f,
+ 0.824589f, 0.823721f, 0.822850f, 0.821977f, 0.821102f, 0.820226f, 0.819348f, 0.818467f,
+ 0.817585f, 0.816701f, 0.815814f, 0.814926f, 0.814036f, 0.813144f, 0.812251f, 0.811355f,
+ 0.810457f, 0.809558f, 0.808656f, 0.807753f, 0.806848f, 0.805940f, 0.805031f, 0.804120f,
+ 0.803208f, 0.802293f, 0.801376f, 0.800458f, 0.799537f, 0.798615f, 0.797691f, 0.796765f,
+ 0.795837f, 0.794907f, 0.793975f, 0.793042f, 0.792107f, 0.791169f, 0.790230f, 0.789289f,
+ 0.788346f, 0.787402f, 0.786455f, 0.785507f, 0.784557f, 0.783605f, 0.782651f, 0.781695f,
+ 0.780737f, 0.779778f, 0.778817f, 0.777853f, 0.776888f, 0.775922f, 0.774953f, 0.773983f,
+ 0.773010f, 0.772036f, 0.771061f, 0.770083f, 0.769103f, 0.768122f, 0.767139f, 0.766154f,
+ 0.765167f, 0.764179f, 0.763188f, 0.762196f, 0.761202f, 0.760207f, 0.759209f, 0.758210f,
+ 0.757209f, 0.756206f, 0.755201f, 0.754195f, 0.753187f, 0.752177f, 0.751165f, 0.750152f,
+ 0.749136f, 0.748119f, 0.747101f, 0.746080f, 0.745058f, 0.744034f, 0.743008f, 0.741980f,
+ 0.740951f, 0.739920f, 0.738887f, 0.737853f, 0.736817f, 0.735779f, 0.734739f, 0.733697f,
+ 0.732654f, 0.731609f, 0.730563f, 0.729514f, 0.728464f, 0.727413f, 0.726359f, 0.725304f,
+ 0.724247f, 0.723188f, 0.722128f, 0.721066f, 0.720003f, 0.718937f, 0.717870f, 0.716801f,
+ 0.715731f, 0.714659f, 0.713585f, 0.712509f, 0.711432f, 0.710353f, 0.709273f, 0.708191f,
+ 0.707107f, 0.706021f, 0.704934f, 0.703845f, 0.702755f, 0.701663f, 0.700569f, 0.699473f,
+ 0.698376f, 0.697277f, 0.696177f, 0.695075f, 0.693971f, 0.692866f, 0.691759f, 0.690651f,
+ 0.689541f, 0.688429f, 0.687315f, 0.686200f, 0.685084f, 0.683965f, 0.682846f, 0.681724f,
+ 0.680601f, 0.679476f, 0.678350f, 0.677222f, 0.676093f, 0.674962f, 0.673829f, 0.672695f,
+ 0.671559f, 0.670422f, 0.669283f, 0.668142f, 0.667000f, 0.665856f, 0.664711f, 0.663564f,
+ 0.662416f, 0.661266f, 0.660114f, 0.658961f, 0.657807f, 0.656651f, 0.655493f, 0.654334f,
+ 0.653173f, 0.652011f, 0.650847f, 0.649681f, 0.648514f, 0.647346f, 0.646176f, 0.645005f,
+ 0.643832f, 0.642657f, 0.641481f, 0.640303f, 0.639124f, 0.637944f, 0.636762f, 0.635578f,
+ 0.634393f, 0.633207f, 0.632019f, 0.630829f, 0.629638f, 0.628446f, 0.627252f, 0.626056f,
+ 0.624860f, 0.623661f, 0.622461f, 0.621260f, 0.620057f, 0.618853f, 0.617647f, 0.616440f,
+ 0.615232f, 0.614022f, 0.612810f, 0.611597f, 0.610383f, 0.609167f, 0.607950f, 0.606731f,
+ 0.605511f, 0.604290f, 0.603067f, 0.601842f, 0.600616f, 0.599389f, 0.598161f, 0.596931f,
+ 0.595699f, 0.594467f, 0.593232f, 0.591997f, 0.590760f, 0.589521f, 0.588282f, 0.587040f,
+ 0.585798f, 0.584554f, 0.583309f, 0.582062f, 0.580814f, 0.579565f, 0.578314f, 0.577062f,
+ 0.575808f, 0.574553f, 0.573297f, 0.572040f, 0.570781f, 0.569521f, 0.568259f, 0.566996f,
+ 0.565732f, 0.564466f, 0.563199f, 0.561931f, 0.560662f, 0.559391f, 0.558119f, 0.556845f,
+ 0.555570f, 0.554294f, 0.553017f, 0.551738f, 0.550458f, 0.549177f, 0.547894f, 0.546610f,
+ 0.545325f, 0.544039f, 0.542751f, 0.541462f, 0.540171f, 0.538880f, 0.537587f, 0.536293f,
+ 0.534998f, 0.533701f, 0.532403f, 0.531104f, 0.529804f, 0.528502f, 0.527199f, 0.525895f,
+ 0.524590f, 0.523283f, 0.521975f, 0.520666f, 0.519356f, 0.518045f, 0.516732f, 0.515418f,
+ 0.514103f, 0.512786f, 0.511469f, 0.510150f, 0.508830f, 0.507509f, 0.506187f, 0.504863f,
+ 0.503538f, 0.502212f, 0.500885f, 0.499557f, 0.498228f, 0.496897f, 0.495565f, 0.494232f,
+ 0.492898f, 0.491563f, 0.490226f, 0.488889f, 0.487550f, 0.486210f, 0.484869f, 0.483527f,
+ 0.482184f, 0.480839f, 0.479494f, 0.478147f, 0.476799f, 0.475450f, 0.474100f, 0.472749f,
+ 0.471397f, 0.470043f, 0.468689f, 0.467333f, 0.465977f, 0.464619f, 0.463260f, 0.461900f,
+ 0.460539f, 0.459177f, 0.457813f, 0.456449f, 0.455084f, 0.453717f, 0.452350f, 0.450981f,
+ 0.449611f, 0.448241f, 0.446869f, 0.445496f, 0.444122f, 0.442747f, 0.441371f, 0.439994f,
+ 0.438616f, 0.437237f, 0.435857f, 0.434476f, 0.433094f, 0.431711f, 0.430326f, 0.428941f,
+ 0.427555f, 0.426168f, 0.424780f, 0.423390f, 0.422000f, 0.420609f, 0.419217f, 0.417824f,
+ 0.416430f, 0.415034f, 0.413638f, 0.412241f, 0.410843f, 0.409444f, 0.408044f, 0.406643f,
+ 0.405241f, 0.403838f, 0.402435f, 0.401030f, 0.399624f, 0.398218f, 0.396810f, 0.395401f,
+ 0.393992f, 0.392582f, 0.391170f, 0.389758f, 0.388345f, 0.386931f, 0.385516f, 0.384100f,
+ 0.382683f, 0.381266f, 0.379847f, 0.378428f, 0.377007f, 0.375586f, 0.374164f, 0.372741f,
+ 0.371317f, 0.369892f, 0.368467f, 0.367040f, 0.365613f, 0.364185f, 0.362756f, 0.361326f,
+ 0.359895f, 0.358463f, 0.357031f, 0.355598f, 0.354164f, 0.352729f, 0.351293f, 0.349856f,
+ 0.348419f, 0.346980f, 0.345541f, 0.344101f, 0.342661f, 0.341219f, 0.339777f, 0.338334f,
+ 0.336890f, 0.335445f, 0.334000f, 0.332553f, 0.331106f, 0.329658f, 0.328210f, 0.326760f,
+ 0.325310f, 0.323859f, 0.322408f, 0.320955f, 0.319502f, 0.318048f, 0.316593f, 0.315138f,
+ 0.313682f, 0.312225f, 0.310767f, 0.309309f, 0.307850f, 0.306390f, 0.304929f, 0.303468f,
+ 0.302006f, 0.300543f, 0.299080f, 0.297616f, 0.296151f, 0.294685f, 0.293219f, 0.291752f,
+ 0.290285f, 0.288816f, 0.287347f, 0.285878f, 0.284408f, 0.282937f, 0.281465f, 0.279993f,
+ 0.278520f, 0.277046f, 0.275572f, 0.274097f, 0.272621f, 0.271145f, 0.269668f, 0.268191f,
+ 0.266713f, 0.265234f, 0.263755f, 0.262275f, 0.260794f, 0.259313f, 0.257831f, 0.256349f,
+ 0.254866f, 0.253382f, 0.251898f, 0.250413f, 0.248928f, 0.247442f, 0.245955f, 0.244468f,
+ 0.242980f, 0.241492f, 0.240003f, 0.238514f, 0.237024f, 0.235533f, 0.234042f, 0.232550f,
+ 0.231058f, 0.229565f, 0.228072f, 0.226578f, 0.225084f, 0.223589f, 0.222094f, 0.220598f,
+ 0.219101f, 0.217604f, 0.216107f, 0.214609f, 0.213110f, 0.211611f, 0.210112f, 0.208612f,
+ 0.207111f, 0.205610f, 0.204109f, 0.202607f, 0.201105f, 0.199602f, 0.198098f, 0.196595f,
+ 0.195090f, 0.193586f, 0.192080f, 0.190575f, 0.189069f, 0.187562f, 0.186055f, 0.184548f,
+ 0.183040f, 0.181532f, 0.180023f, 0.178514f, 0.177004f, 0.175494f, 0.173984f, 0.172473f,
+ 0.170962f, 0.169450f, 0.167938f, 0.166426f, 0.164913f, 0.163400f, 0.161886f, 0.160372f,
+ 0.158858f, 0.157343f, 0.155828f, 0.154313f, 0.152797f, 0.151281f, 0.149765f, 0.148248f,
+ 0.146730f, 0.145213f, 0.143695f, 0.142177f, 0.140658f, 0.139139f, 0.137620f, 0.136101f,
+ 0.134581f, 0.133061f, 0.131540f, 0.130019f, 0.128498f, 0.126977f, 0.125455f, 0.123933f,
+ 0.122411f, 0.120888f, 0.119365f, 0.117842f, 0.116319f, 0.114795f, 0.113271f, 0.111747f,
+ 0.110222f, 0.108697f, 0.107172f, 0.105647f, 0.104122f, 0.102596f, 0.101070f, 0.099544f,
+ 0.098017f, 0.096490f, 0.094963f, 0.093436f, 0.091909f, 0.090381f, 0.088854f, 0.087326f,
+ 0.085797f, 0.084269f, 0.082740f, 0.081211f, 0.079682f, 0.078153f, 0.076624f, 0.075094f,
+ 0.073565f, 0.072035f, 0.070505f, 0.068974f, 0.067444f, 0.065913f, 0.064383f, 0.062852f,
+ 0.061321f, 0.059790f, 0.058258f, 0.056727f, 0.055195f, 0.053664f, 0.052132f, 0.050600f,
+ 0.049068f, 0.047535f, 0.046003f, 0.044471f, 0.042938f, 0.041406f, 0.039873f, 0.038340f,
+ 0.036807f, 0.035274f, 0.033741f, 0.032208f, 0.030675f, 0.029142f, 0.027608f, 0.026075f,
+ 0.024541f, 0.023008f, 0.021474f, 0.019940f, 0.018407f, 0.016873f, 0.015339f, 0.013805f,
+ 0.012272f, 0.010738f, 0.009204f, 0.007670f, 0.006136f, 0.004602f, 0.003068f, 0.001534f,
+ 0.000000f, 0.001534f, 0.003068f, 0.004602f, 0.006136f, 0.007670f, 0.009204f, 0.010738f,
+ 0.012272f, 0.013805f, 0.015339f, 0.016873f, 0.018407f, 0.019940f, 0.021474f, 0.023008f,
+ 0.024541f, 0.026075f, 0.027608f, 0.029142f, 0.030675f, 0.032208f, 0.033741f, 0.035274f,
+ 0.036807f, 0.038340f, 0.039873f, 0.041406f, 0.042938f, 0.044471f, 0.046003f, 0.047535f,
+ 0.049068f, 0.050600f, 0.052132f, 0.053664f, 0.055195f, 0.056727f, 0.058258f, 0.059790f,
+ 0.061321f, 0.062852f, 0.064383f, 0.065913f, 0.067444f, 0.068974f, 0.070505f, 0.072035f,
+ 0.073565f, 0.075094f, 0.076624f, 0.078153f, 0.079682f, 0.081211f, 0.082740f, 0.084269f,
+ 0.085797f, 0.087326f, 0.088854f, 0.090381f, 0.091909f, 0.093436f, 0.094963f, 0.096490f,
+ 0.098017f, 0.099544f, 0.101070f, 0.102596f, 0.104122f, 0.105647f, 0.107172f, 0.108697f,
+ 0.110222f, 0.111747f, 0.113271f, 0.114795f, 0.116319f, 0.117842f, 0.119365f, 0.120888f,
+ 0.122411f, 0.123933f, 0.125455f, 0.126977f, 0.128498f, 0.130019f, 0.131540f, 0.133061f,
+ 0.134581f, 0.136101f, 0.137620f, 0.139139f, 0.140658f, 0.142177f, 0.143695f, 0.145213f,
+ 0.146730f, 0.148248f, 0.149765f, 0.151281f, 0.152797f, 0.154313f, 0.155828f, 0.157343f,
+ 0.158858f, 0.160372f, 0.161886f, 0.163400f, 0.164913f, 0.166426f, 0.167938f, 0.169450f,
+ 0.170962f, 0.172473f, 0.173984f, 0.175494f, 0.177004f, 0.178514f, 0.180023f, 0.181532f,
+ 0.183040f, 0.184548f, 0.186055f, 0.187562f, 0.189069f, 0.190575f, 0.192080f, 0.193586f,
+ 0.195090f, 0.196595f, 0.198098f, 0.199602f, 0.201105f, 0.202607f, 0.204109f, 0.205610f,
+ 0.207111f, 0.208612f, 0.210112f, 0.211611f, 0.213110f, 0.214609f, 0.216107f, 0.217604f,
+ 0.219101f, 0.220598f, 0.222094f, 0.223589f, 0.225084f, 0.226578f, 0.228072f, 0.229565f,
+ 0.231058f, 0.232550f, 0.234042f, 0.235533f, 0.237024f, 0.238514f, 0.240003f, 0.241492f,
+ 0.242980f, 0.244468f, 0.245955f, 0.247442f, 0.248928f, 0.250413f, 0.251898f, 0.253382f,
+ 0.254866f, 0.256349f, 0.257831f, 0.259313f, 0.260794f, 0.262275f, 0.263755f, 0.265234f,
+ 0.266713f, 0.268191f, 0.269668f, 0.271145f, 0.272621f, 0.274097f, 0.275572f, 0.277046f,
+ 0.278520f, 0.279993f, 0.281465f, 0.282937f, 0.284408f, 0.285878f, 0.287347f, 0.288816f,
+ 0.290285f, 0.291752f, 0.293219f, 0.294685f, 0.296151f, 0.297616f, 0.299080f, 0.300543f,
+ 0.302006f, 0.303468f, 0.304929f, 0.306390f, 0.307850f, 0.309309f, 0.310767f, 0.312225f,
+ 0.313682f, 0.315138f, 0.316593f, 0.318048f, 0.319502f, 0.320955f, 0.322408f, 0.323859f,
+ 0.325310f, 0.326760f, 0.328210f, 0.329658f, 0.331106f, 0.332553f, 0.334000f, 0.335445f,
+ 0.336890f, 0.338334f, 0.339777f, 0.341219f, 0.342661f, 0.344101f, 0.345541f, 0.346980f,
+ 0.348419f, 0.349856f, 0.351293f, 0.352729f, 0.354164f, 0.355598f, 0.357031f, 0.358463f,
+ 0.359895f, 0.361326f, 0.362756f, 0.364185f, 0.365613f, 0.367040f, 0.368467f, 0.369892f,
+ 0.371317f, 0.372741f, 0.374164f, 0.375586f, 0.377007f, 0.378428f, 0.379847f, 0.381266f,
+ 0.382683f, 0.384100f, 0.385516f, 0.386931f, 0.388345f, 0.389758f, 0.391170f, 0.392582f,
+ 0.393992f, 0.395401f, 0.396810f, 0.398218f, 0.399624f, 0.401030f, 0.402435f, 0.403838f,
+ 0.405241f, 0.406643f, 0.408044f, 0.409444f, 0.410843f, 0.412241f, 0.413638f, 0.415034f,
+ 0.416430f, 0.417824f, 0.419217f, 0.420609f, 0.422000f, 0.423390f, 0.424780f, 0.426168f,
+ 0.427555f, 0.428941f, 0.430326f, 0.431711f, 0.433094f, 0.434476f, 0.435857f, 0.437237f,
+ 0.438616f, 0.439994f, 0.441371f, 0.442747f, 0.444122f, 0.445496f, 0.446869f, 0.448241f,
+ 0.449611f, 0.450981f, 0.452350f, 0.453717f, 0.455084f, 0.456449f, 0.457813f, 0.459177f,
+ 0.460539f, 0.461900f, 0.463260f, 0.464619f, 0.465977f, 0.467333f, 0.468689f, 0.470043f,
+ 0.471397f, 0.472749f, 0.474100f, 0.475450f, 0.476799f, 0.478147f, 0.479494f, 0.480839f,
+ 0.482184f, 0.483527f, 0.484869f, 0.486210f, 0.487550f, 0.488889f, 0.490226f, 0.491563f,
+ 0.492898f, 0.494232f, 0.495565f, 0.496897f, 0.498228f, 0.499557f, 0.500885f, 0.502212f,
+ 0.503538f, 0.504863f, 0.506187f, 0.507509f, 0.508830f, 0.510150f, 0.511469f, 0.512786f,
+ 0.514103f, 0.515418f, 0.516732f, 0.518045f, 0.519356f, 0.520666f, 0.521975f, 0.523283f,
+ 0.524590f, 0.525895f, 0.527199f, 0.528502f, 0.529804f, 0.531104f, 0.532403f, 0.533701f,
+ 0.534998f, 0.536293f, 0.537587f, 0.538880f, 0.540171f, 0.541462f, 0.542751f, 0.544039f,
+ 0.545325f, 0.546610f, 0.547894f, 0.549177f, 0.550458f, 0.551738f, 0.553017f, 0.554294f,
+ 0.555570f, 0.556845f, 0.558119f, 0.559391f, 0.560662f, 0.561931f, 0.563199f, 0.564466f,
+ 0.565732f, 0.566996f, 0.568259f, 0.569521f, 0.570781f, 0.572040f, 0.573297f, 0.574553f,
+ 0.575808f, 0.577062f, 0.578314f, 0.579565f, 0.580814f, 0.582062f, 0.583309f, 0.584554f,
+ 0.585798f, 0.587040f, 0.588282f, 0.589521f, 0.590760f, 0.591997f, 0.593232f, 0.594467f,
+ 0.595699f, 0.596931f, 0.598161f, 0.599389f, 0.600616f, 0.601842f, 0.603067f, 0.604290f,
+ 0.605511f, 0.606731f, 0.607950f, 0.609167f, 0.610383f, 0.611597f, 0.612810f, 0.614022f,
+ 0.615232f, 0.616440f, 0.617647f, 0.618853f, 0.620057f, 0.621260f, 0.622461f, 0.623661f,
+ 0.624860f, 0.626056f, 0.627252f, 0.628446f, 0.629638f, 0.630829f, 0.632019f, 0.633207f,
+ 0.634393f, 0.635578f, 0.636762f, 0.637944f, 0.639124f, 0.640303f, 0.641481f, 0.642657f,
+ 0.643832f, 0.645005f, 0.646176f, 0.647346f, 0.648514f, 0.649681f, 0.650847f, 0.652011f,
+ 0.653173f, 0.654334f, 0.655493f, 0.656651f, 0.657807f, 0.658961f, 0.660114f, 0.661266f,
+ 0.662416f, 0.663564f, 0.664711f, 0.665856f, 0.667000f, 0.668142f, 0.669283f, 0.670422f,
+ 0.671559f, 0.672695f, 0.673829f, 0.674962f, 0.676093f, 0.677222f, 0.678350f, 0.679476f,
+ 0.680601f, 0.681724f, 0.682846f, 0.683965f, 0.685084f, 0.686200f, 0.687315f, 0.688429f,
+ 0.689541f, 0.690651f, 0.691759f, 0.692866f, 0.693971f, 0.695075f, 0.696177f, 0.697277f,
+ 0.698376f, 0.699473f, 0.700569f, 0.701663f, 0.702755f, 0.703845f, 0.704934f, 0.706021f,
+ 0.707107f, 0.708191f, 0.709273f, 0.710353f, 0.711432f, 0.712509f, 0.713585f, 0.714659f,
+ 0.715731f, 0.716801f, 0.717870f, 0.718937f, 0.720003f, 0.721066f, 0.722128f, 0.723188f,
+ 0.724247f, 0.725304f, 0.726359f, 0.727413f, 0.728464f, 0.729514f, 0.730563f, 0.731609f,
+ 0.732654f, 0.733697f, 0.734739f, 0.735779f, 0.736817f, 0.737853f, 0.738887f, 0.739920f,
+ 0.740951f, 0.741980f, 0.743008f, 0.744034f, 0.745058f, 0.746080f, 0.747101f, 0.748119f,
+ 0.749136f, 0.750152f, 0.751165f, 0.752177f, 0.753187f, 0.754195f, 0.755201f, 0.756206f,
+ 0.757209f, 0.758210f, 0.759209f, 0.760207f, 0.761202f, 0.762196f, 0.763188f, 0.764179f,
+ 0.765167f, 0.766154f, 0.767139f, 0.768122f, 0.769103f, 0.770083f, 0.771061f, 0.772036f,
+ 0.773010f, 0.773983f, 0.774953f, 0.775922f, 0.776888f, 0.777853f, 0.778817f, 0.779778f,
+ 0.780737f, 0.781695f, 0.782651f, 0.783605f, 0.784557f, 0.785507f, 0.786455f, 0.787402f,
+ 0.788346f, 0.789289f, 0.790230f, 0.791169f, 0.792107f, 0.793042f, 0.793975f, 0.794907f,
+ 0.795837f, 0.796765f, 0.797691f, 0.798615f, 0.799537f, 0.800458f, 0.801376f, 0.802293f,
+ 0.803208f, 0.804120f, 0.805031f, 0.805940f, 0.806848f, 0.807753f, 0.808656f, 0.809558f,
+ 0.810457f, 0.811355f, 0.812251f, 0.813144f, 0.814036f, 0.814926f, 0.815814f, 0.816701f,
+ 0.817585f, 0.818467f, 0.819348f, 0.820226f, 0.821102f, 0.821977f, 0.822850f, 0.823721f,
+ 0.824589f, 0.825456f, 0.826321f, 0.827184f, 0.828045f, 0.828904f, 0.829761f, 0.830616f,
+ 0.831470f, 0.832321f, 0.833170f, 0.834018f, 0.834863f, 0.835706f, 0.836548f, 0.837387f,
+ 0.838225f, 0.839060f, 0.839894f, 0.840725f, 0.841555f, 0.842383f, 0.843208f, 0.844032f,
+ 0.844854f, 0.845673f, 0.846491f, 0.847307f, 0.848120f, 0.848932f, 0.849742f, 0.850549f,
+ 0.851355f, 0.852159f, 0.852961f, 0.853760f, 0.854558f, 0.855354f, 0.856147f, 0.856939f,
+ 0.857729f, 0.858516f, 0.859302f, 0.860085f, 0.860867f, 0.861646f, 0.862424f, 0.863199f,
+ 0.863973f, 0.864744f, 0.865514f, 0.866281f, 0.867046f, 0.867809f, 0.868571f, 0.869330f,
+ 0.870087f, 0.870842f, 0.871595f, 0.872346f, 0.873095f, 0.873842f, 0.874587f, 0.875329f,
+ 0.876070f, 0.876809f, 0.877545f, 0.878280f, 0.879012f, 0.879743f, 0.880471f, 0.881197f,
+ 0.881921f, 0.882643f, 0.883363f, 0.884081f, 0.884797f, 0.885511f, 0.886223f, 0.886932f,
+ 0.887640f, 0.888345f, 0.889048f, 0.889750f, 0.890449f, 0.891146f, 0.891841f, 0.892534f,
+ 0.893224f, 0.893913f, 0.894599f, 0.895284f, 0.895966f, 0.896646f, 0.897325f, 0.898001f,
+ 0.898674f, 0.899346f, 0.900016f, 0.900683f, 0.901349f, 0.902012f, 0.902673f, 0.903332f,
+ 0.903989f, 0.904644f, 0.905297f, 0.905947f, 0.906596f, 0.907242f, 0.907886f, 0.908528f,
+ 0.909168f, 0.909806f, 0.910441f, 0.911075f, 0.911706f, 0.912335f, 0.912962f, 0.913587f,
+ 0.914210f, 0.914830f, 0.915449f, 0.916065f, 0.916679f, 0.917291f, 0.917901f, 0.918508f,
+ 0.919114f, 0.919717f, 0.920318f, 0.920917f, 0.921514f, 0.922109f, 0.922701f, 0.923291f,
+ 0.923880f, 0.924465f, 0.925049f, 0.925631f, 0.926210f, 0.926787f, 0.927363f, 0.927935f,
+ 0.928506f, 0.929075f, 0.929641f, 0.930205f, 0.930767f, 0.931327f, 0.931884f, 0.932440f,
+ 0.932993f, 0.933544f, 0.934093f, 0.934639f, 0.935184f, 0.935726f, 0.936266f, 0.936803f,
+ 0.937339f, 0.937872f, 0.938404f, 0.938932f, 0.939459f, 0.939984f, 0.940506f, 0.941026f,
+ 0.941544f, 0.942060f, 0.942573f, 0.943084f, 0.943593f, 0.944100f, 0.944605f, 0.945107f,
+ 0.945607f, 0.946105f, 0.946601f, 0.947094f, 0.947586f, 0.948075f, 0.948561f, 0.949046f,
+ 0.949528f, 0.950008f, 0.950486f, 0.950962f, 0.951435f, 0.951906f, 0.952375f, 0.952842f,
+ 0.953306f, 0.953768f, 0.954228f, 0.954686f, 0.955141f, 0.955594f, 0.956045f, 0.956494f,
+ 0.956940f, 0.957385f, 0.957826f, 0.958266f, 0.958703f, 0.959139f, 0.959572f, 0.960002f,
+ 0.960431f, 0.960857f, 0.961280f, 0.961702f, 0.962121f, 0.962538f, 0.962953f, 0.963366f,
+ 0.963776f, 0.964184f, 0.964590f, 0.964993f, 0.965394f, 0.965793f, 0.966190f, 0.966584f,
+ 0.966976f, 0.967366f, 0.967754f, 0.968139f, 0.968522f, 0.968903f, 0.969281f, 0.969657f,
+ 0.970031f, 0.970403f, 0.970772f, 0.971139f, 0.971504f, 0.971866f, 0.972227f, 0.972584f,
+ 0.972940f, 0.973293f, 0.973644f, 0.973993f, 0.974339f, 0.974684f, 0.975025f, 0.975365f,
+ 0.975702f, 0.976037f, 0.976370f, 0.976700f, 0.977028f, 0.977354f, 0.977677f, 0.977998f,
+ 0.978317f, 0.978634f, 0.978948f, 0.979260f, 0.979570f, 0.979877f, 0.980182f, 0.980485f,
+ 0.980785f, 0.981083f, 0.981379f, 0.981673f, 0.981964f, 0.982253f, 0.982539f, 0.982824f,
+ 0.983105f, 0.983385f, 0.983662f, 0.983937f, 0.984210f, 0.984480f, 0.984748f, 0.985014f,
+ 0.985278f, 0.985539f, 0.985798f, 0.986054f, 0.986308f, 0.986560f, 0.986809f, 0.987057f,
+ 0.987301f, 0.987544f, 0.987784f, 0.988022f, 0.988258f, 0.988491f, 0.988722f, 0.988950f,
+ 0.989177f, 0.989400f, 0.989622f, 0.989841f, 0.990058f, 0.990273f, 0.990485f, 0.990695f,
+ 0.990903f, 0.991108f, 0.991311f, 0.991511f, 0.991710f, 0.991906f, 0.992099f, 0.992291f,
+ 0.992480f, 0.992666f, 0.992850f, 0.993032f, 0.993212f, 0.993389f, 0.993564f, 0.993737f,
+ 0.993907f, 0.994075f, 0.994240f, 0.994404f, 0.994565f, 0.994723f, 0.994879f, 0.995033f,
+ 0.995185f, 0.995334f, 0.995481f, 0.995625f, 0.995767f, 0.995907f, 0.996045f, 0.996180f,
+ 0.996313f, 0.996443f, 0.996571f, 0.996697f, 0.996820f, 0.996941f, 0.997060f, 0.997176f,
+ 0.997290f, 0.997402f, 0.997511f, 0.997618f, 0.997723f, 0.997825f, 0.997925f, 0.998023f,
+ 0.998118f, 0.998211f, 0.998302f, 0.998390f, 0.998476f, 0.998559f, 0.998640f, 0.998719f,
+ 0.998795f, 0.998870f, 0.998941f, 0.999011f, 0.999078f, 0.999142f, 0.999205f, 0.999265f,
+ 0.999322f, 0.999378f, 0.999431f, 0.999481f, 0.999529f, 0.999575f, 0.999619f, 0.999660f,
+ 0.999699f, 0.999735f, 0.999769f, 0.999801f, 0.999831f, 0.999858f, 0.999882f, 0.999905f,
+ 0.999925f, 0.999942f, 0.999958f, 0.999971f, 0.999981f, 0.999989f, 0.999995f, 0.999999f
+};
+
+static const float cosTable8192[4096] = {
+ 1.000000f, 1.000000f, 0.999999f, 0.999997f, 0.999995f, 0.999993f, 0.999989f, 0.999986f,
+ 0.999981f, 0.999976f, 0.999971f, 0.999964f, 0.999958f, 0.999950f, 0.999942f, 0.999934f,
+ 0.999925f, 0.999915f, 0.999905f, 0.999894f, 0.999882f, 0.999870f, 0.999858f, 0.999844f,
+ 0.999831f, 0.999816f, 0.999801f, 0.999786f, 0.999769f, 0.999753f, 0.999735f, 0.999717f,
+ 0.999699f, 0.999680f, 0.999660f, 0.999640f, 0.999619f, 0.999597f, 0.999575f, 0.999553f,
+ 0.999529f, 0.999506f, 0.999481f, 0.999456f, 0.999431f, 0.999404f, 0.999378f, 0.999350f,
+ 0.999322f, 0.999294f, 0.999265f, 0.999235f, 0.999205f, 0.999174f, 0.999142f, 0.999110f,
+ 0.999078f, 0.999044f, 0.999011f, 0.998976f, 0.998941f, 0.998906f, 0.998870f, 0.998833f,
+ 0.998795f, 0.998758f, 0.998719f, 0.998680f, 0.998640f, 0.998600f, 0.998559f, 0.998518f,
+ 0.998476f, 0.998433f, 0.998390f, 0.998346f, 0.998302f, 0.998257f, 0.998211f, 0.998165f,
+ 0.998118f, 0.998071f, 0.998023f, 0.997974f, 0.997925f, 0.997876f, 0.997825f, 0.997774f,
+ 0.997723f, 0.997671f, 0.997618f, 0.997565f, 0.997511f, 0.997457f, 0.997402f, 0.997347f,
+ 0.997290f, 0.997234f, 0.997176f, 0.997119f, 0.997060f, 0.997001f, 0.996941f, 0.996881f,
+ 0.996820f, 0.996759f, 0.996697f, 0.996634f, 0.996571f, 0.996507f, 0.996443f, 0.996378f,
+ 0.996313f, 0.996247f, 0.996180f, 0.996113f, 0.996045f, 0.995976f, 0.995907f, 0.995838f,
+ 0.995767f, 0.995697f, 0.995625f, 0.995553f, 0.995481f, 0.995408f, 0.995334f, 0.995260f,
+ 0.995185f, 0.995109f, 0.995033f, 0.994957f, 0.994879f, 0.994802f, 0.994723f, 0.994644f,
+ 0.994565f, 0.994484f, 0.994404f, 0.994322f, 0.994240f, 0.994158f, 0.994075f, 0.993991f,
+ 0.993907f, 0.993822f, 0.993737f, 0.993651f, 0.993564f, 0.993477f, 0.993389f, 0.993301f,
+ 0.993212f, 0.993122f, 0.993032f, 0.992942f, 0.992850f, 0.992759f, 0.992666f, 0.992573f,
+ 0.992480f, 0.992385f, 0.992291f, 0.992195f, 0.992099f, 0.992003f, 0.991906f, 0.991808f,
+ 0.991710f, 0.991611f, 0.991511f, 0.991411f, 0.991311f, 0.991210f, 0.991108f, 0.991006f,
+ 0.990903f, 0.990799f, 0.990695f, 0.990590f, 0.990485f, 0.990379f, 0.990273f, 0.990166f,
+ 0.990058f, 0.989950f, 0.989841f, 0.989732f, 0.989622f, 0.989511f, 0.989400f, 0.989289f,
+ 0.989177f, 0.989064f, 0.988950f, 0.988836f, 0.988722f, 0.988607f, 0.988491f, 0.988374f,
+ 0.988258f, 0.988140f, 0.988022f, 0.987903f, 0.987784f, 0.987664f, 0.987544f, 0.987423f,
+ 0.987301f, 0.987179f, 0.987057f, 0.986933f, 0.986809f, 0.986685f, 0.986560f, 0.986434f,
+ 0.986308f, 0.986181f, 0.986054f, 0.985926f, 0.985798f, 0.985668f, 0.985539f, 0.985408f,
+ 0.985278f, 0.985146f, 0.985014f, 0.984882f, 0.984748f, 0.984615f, 0.984480f, 0.984346f,
+ 0.984210f, 0.984074f, 0.983937f, 0.983800f, 0.983662f, 0.983524f, 0.983385f, 0.983246f,
+ 0.983105f, 0.982965f, 0.982824f, 0.982682f, 0.982539f, 0.982396f, 0.982253f, 0.982109f,
+ 0.981964f, 0.981819f, 0.981673f, 0.981526f, 0.981379f, 0.981232f, 0.981083f, 0.980935f,
+ 0.980785f, 0.980635f, 0.980485f, 0.980334f, 0.980182f, 0.980030f, 0.979877f, 0.979724f,
+ 0.979570f, 0.979415f, 0.979260f, 0.979104f, 0.978948f, 0.978791f, 0.978634f, 0.978476f,
+ 0.978317f, 0.978158f, 0.977998f, 0.977838f, 0.977677f, 0.977516f, 0.977354f, 0.977191f,
+ 0.977028f, 0.976864f, 0.976700f, 0.976535f, 0.976370f, 0.976204f, 0.976037f, 0.975870f,
+ 0.975702f, 0.975534f, 0.975365f, 0.975195f, 0.975025f, 0.974855f, 0.974684f, 0.974512f,
+ 0.974339f, 0.974166f, 0.973993f, 0.973819f, 0.973644f, 0.973469f, 0.973293f, 0.973117f,
+ 0.972940f, 0.972762f, 0.972584f, 0.972406f, 0.972227f, 0.972047f, 0.971866f, 0.971685f,
+ 0.971504f, 0.971322f, 0.971139f, 0.970956f, 0.970772f, 0.970588f, 0.970403f, 0.970217f,
+ 0.970031f, 0.969845f, 0.969657f, 0.969470f, 0.969281f, 0.969092f, 0.968903f, 0.968713f,
+ 0.968522f, 0.968331f, 0.968139f, 0.967947f, 0.967754f, 0.967560f, 0.967366f, 0.967172f,
+ 0.966976f, 0.966781f, 0.966584f, 0.966387f, 0.966190f, 0.965992f, 0.965793f, 0.965594f,
+ 0.965394f, 0.965194f, 0.964993f, 0.964792f, 0.964590f, 0.964387f, 0.964184f, 0.963980f,
+ 0.963776f, 0.963571f, 0.963366f, 0.963160f, 0.962953f, 0.962746f, 0.962538f, 0.962330f,
+ 0.962121f, 0.961912f, 0.961702f, 0.961492f, 0.961280f, 0.961069f, 0.960857f, 0.960644f,
+ 0.960431f, 0.960217f, 0.960002f, 0.959787f, 0.959572f, 0.959355f, 0.959139f, 0.958921f,
+ 0.958703f, 0.958485f, 0.958266f, 0.958046f, 0.957826f, 0.957606f, 0.957385f, 0.957163f,
+ 0.956940f, 0.956717f, 0.956494f, 0.956270f, 0.956045f, 0.955820f, 0.955594f, 0.955368f,
+ 0.955141f, 0.954914f, 0.954686f, 0.954457f, 0.954228f, 0.953998f, 0.953768f, 0.953537f,
+ 0.953306f, 0.953074f, 0.952842f, 0.952609f, 0.952375f, 0.952141f, 0.951906f, 0.951671f,
+ 0.951435f, 0.951199f, 0.950962f, 0.950724f, 0.950486f, 0.950247f, 0.950008f, 0.949768f,
+ 0.949528f, 0.949287f, 0.949046f, 0.948804f, 0.948561f, 0.948318f, 0.948075f, 0.947830f,
+ 0.947586f, 0.947340f, 0.947094f, 0.946848f, 0.946601f, 0.946353f, 0.946105f, 0.945857f,
+ 0.945607f, 0.945358f, 0.945107f, 0.944856f, 0.944605f, 0.944353f, 0.944100f, 0.943847f,
+ 0.943593f, 0.943339f, 0.943084f, 0.942829f, 0.942573f, 0.942317f, 0.942060f, 0.941802f,
+ 0.941544f, 0.941285f, 0.941026f, 0.940766f, 0.940506f, 0.940245f, 0.939984f, 0.939722f,
+ 0.939459f, 0.939196f, 0.938932f, 0.938668f, 0.938404f, 0.938138f, 0.937872f, 0.937606f,
+ 0.937339f, 0.937072f, 0.936803f, 0.936535f, 0.936266f, 0.935996f, 0.935726f, 0.935455f,
+ 0.935184f, 0.934912f, 0.934639f, 0.934366f, 0.934093f, 0.933818f, 0.933544f, 0.933269f,
+ 0.932993f, 0.932716f, 0.932440f, 0.932162f, 0.931884f, 0.931606f, 0.931327f, 0.931047f,
+ 0.930767f, 0.930486f, 0.930205f, 0.929923f, 0.929641f, 0.929358f, 0.929075f, 0.928791f,
+ 0.928506f, 0.928221f, 0.927935f, 0.927649f, 0.927363f, 0.927075f, 0.926787f, 0.926499f,
+ 0.926210f, 0.925921f, 0.925631f, 0.925340f, 0.925049f, 0.924758f, 0.924465f, 0.924173f,
+ 0.923880f, 0.923586f, 0.923291f, 0.922997f, 0.922701f, 0.922405f, 0.922109f, 0.921812f,
+ 0.921514f, 0.921216f, 0.920917f, 0.920618f, 0.920318f, 0.920018f, 0.919717f, 0.919416f,
+ 0.919114f, 0.918811f, 0.918508f, 0.918205f, 0.917901f, 0.917596f, 0.917291f, 0.916985f,
+ 0.916679f, 0.916372f, 0.916065f, 0.915757f, 0.915449f, 0.915140f, 0.914830f, 0.914520f,
+ 0.914210f, 0.913899f, 0.913587f, 0.913275f, 0.912962f, 0.912649f, 0.912335f, 0.912021f,
+ 0.911706f, 0.911391f, 0.911075f, 0.910758f, 0.910441f, 0.910124f, 0.909806f, 0.909487f,
+ 0.909168f, 0.908848f, 0.908528f, 0.908207f, 0.907886f, 0.907564f, 0.907242f, 0.906919f,
+ 0.906596f, 0.906272f, 0.905947f, 0.905622f, 0.905297f, 0.904971f, 0.904644f, 0.904317f,
+ 0.903989f, 0.903661f, 0.903332f, 0.903003f, 0.902673f, 0.902343f, 0.902012f, 0.901681f,
+ 0.901349f, 0.901016f, 0.900683f, 0.900350f, 0.900016f, 0.899681f, 0.899346f, 0.899011f,
+ 0.898674f, 0.898338f, 0.898001f, 0.897663f, 0.897325f, 0.896986f, 0.896646f, 0.896307f,
+ 0.895966f, 0.895625f, 0.895284f, 0.894942f, 0.894599f, 0.894256f, 0.893913f, 0.893569f,
+ 0.893224f, 0.892879f, 0.892534f, 0.892187f, 0.891841f, 0.891493f, 0.891146f, 0.890797f,
+ 0.890449f, 0.890099f, 0.889750f, 0.889399f, 0.889048f, 0.888697f, 0.888345f, 0.887993f,
+ 0.887640f, 0.887286f, 0.886932f, 0.886578f, 0.886223f, 0.885867f, 0.885511f, 0.885154f,
+ 0.884797f, 0.884439f, 0.884081f, 0.883723f, 0.883363f, 0.883004f, 0.882643f, 0.882283f,
+ 0.881921f, 0.881559f, 0.881197f, 0.880834f, 0.880471f, 0.880107f, 0.879743f, 0.879378f,
+ 0.879012f, 0.878646f, 0.878280f, 0.877913f, 0.877545f, 0.877177f, 0.876809f, 0.876440f,
+ 0.876070f, 0.875700f, 0.875329f, 0.874958f, 0.874587f, 0.874215f, 0.873842f, 0.873469f,
+ 0.873095f, 0.872721f, 0.872346f, 0.871971f, 0.871595f, 0.871219f, 0.870842f, 0.870465f,
+ 0.870087f, 0.869709f, 0.869330f, 0.868951f, 0.868571f, 0.868190f, 0.867809f, 0.867428f,
+ 0.867046f, 0.866664f, 0.866281f, 0.865898f, 0.865514f, 0.865129f, 0.864744f, 0.864359f,
+ 0.863973f, 0.863586f, 0.863199f, 0.862812f, 0.862424f, 0.862035f, 0.861646f, 0.861257f,
+ 0.860867f, 0.860476f, 0.860085f, 0.859694f, 0.859302f, 0.858909f, 0.858516f, 0.858123f,
+ 0.857729f, 0.857334f, 0.856939f, 0.856543f, 0.856147f, 0.855751f, 0.855354f, 0.854956f,
+ 0.854558f, 0.854159f, 0.853760f, 0.853361f, 0.852961f, 0.852560f, 0.852159f, 0.851757f,
+ 0.851355f, 0.850953f, 0.850549f, 0.850146f, 0.849742f, 0.849337f, 0.848932f, 0.848526f,
+ 0.848120f, 0.847714f, 0.847307f, 0.846899f, 0.846491f, 0.846082f, 0.845673f, 0.845264f,
+ 0.844854f, 0.844443f, 0.844032f, 0.843620f, 0.843208f, 0.842796f, 0.842383f, 0.841969f,
+ 0.841555f, 0.841140f, 0.840725f, 0.840310f, 0.839894f, 0.839477f, 0.839060f, 0.838643f,
+ 0.838225f, 0.837806f, 0.837387f, 0.836968f, 0.836548f, 0.836127f, 0.835706f, 0.835285f,
+ 0.834863f, 0.834440f, 0.834018f, 0.833594f, 0.833170f, 0.832746f, 0.832321f, 0.831895f,
+ 0.831470f, 0.831043f, 0.830616f, 0.830189f, 0.829761f, 0.829333f, 0.828904f, 0.828475f,
+ 0.828045f, 0.827615f, 0.827184f, 0.826753f, 0.826321f, 0.825889f, 0.825456f, 0.825023f,
+ 0.824589f, 0.824155f, 0.823721f, 0.823285f, 0.822850f, 0.822414f, 0.821977f, 0.821540f,
+ 0.821102f, 0.820664f, 0.820226f, 0.819787f, 0.819348f, 0.818908f, 0.818467f, 0.818026f,
+ 0.817585f, 0.817143f, 0.816701f, 0.816258f, 0.815814f, 0.815371f, 0.814926f, 0.814482f,
+ 0.814036f, 0.813591f, 0.813144f, 0.812698f, 0.812251f, 0.811803f, 0.811355f, 0.810906f,
+ 0.810457f, 0.810008f, 0.809558f, 0.809107f, 0.808656f, 0.808205f, 0.807753f, 0.807300f,
+ 0.806848f, 0.806394f, 0.805940f, 0.805486f, 0.805031f, 0.804576f, 0.804120f, 0.803664f,
+ 0.803208f, 0.802750f, 0.802293f, 0.801835f, 0.801376f, 0.800917f, 0.800458f, 0.799998f,
+ 0.799537f, 0.799076f, 0.798615f, 0.798153f, 0.797691f, 0.797228f, 0.796765f, 0.796301f,
+ 0.795837f, 0.795372f, 0.794907f, 0.794442f, 0.793975f, 0.793509f, 0.793042f, 0.792575f,
+ 0.792107f, 0.791638f, 0.791169f, 0.790700f, 0.790230f, 0.789760f, 0.789289f, 0.788818f,
+ 0.788346f, 0.787874f, 0.787402f, 0.786929f, 0.786455f, 0.785981f, 0.785507f, 0.785032f,
+ 0.784557f, 0.784081f, 0.783605f, 0.783128f, 0.782651f, 0.782173f, 0.781695f, 0.781216f,
+ 0.780737f, 0.780258f, 0.779778f, 0.779297f, 0.778817f, 0.778335f, 0.777853f, 0.777371f,
+ 0.776888f, 0.776405f, 0.775922f, 0.775438f, 0.774953f, 0.774468f, 0.773983f, 0.773497f,
+ 0.773010f, 0.772524f, 0.772036f, 0.771549f, 0.771061f, 0.770572f, 0.770083f, 0.769593f,
+ 0.769103f, 0.768613f, 0.768122f, 0.767631f, 0.767139f, 0.766647f, 0.766154f, 0.765661f,
+ 0.765167f, 0.764673f, 0.764179f, 0.763684f, 0.763188f, 0.762693f, 0.762196f, 0.761700f,
+ 0.761202f, 0.760705f, 0.760207f, 0.759708f, 0.759209f, 0.758710f, 0.758210f, 0.757710f,
+ 0.757209f, 0.756708f, 0.756206f, 0.755704f, 0.755201f, 0.754698f, 0.754195f, 0.753691f,
+ 0.753187f, 0.752682f, 0.752177f, 0.751671f, 0.751165f, 0.750659f, 0.750152f, 0.749644f,
+ 0.749136f, 0.748628f, 0.748119f, 0.747610f, 0.747101f, 0.746591f, 0.746080f, 0.745569f,
+ 0.745058f, 0.744546f, 0.744034f, 0.743521f, 0.743008f, 0.742494f, 0.741980f, 0.741466f,
+ 0.740951f, 0.740436f, 0.739920f, 0.739404f, 0.738887f, 0.738370f, 0.737853f, 0.737335f,
+ 0.736817f, 0.736298f, 0.735779f, 0.735259f, 0.734739f, 0.734218f, 0.733697f, 0.733176f,
+ 0.732654f, 0.732132f, 0.731609f, 0.731086f, 0.730563f, 0.730039f, 0.729514f, 0.728990f,
+ 0.728464f, 0.727939f, 0.727413f, 0.726886f, 0.726359f, 0.725832f, 0.725304f, 0.724776f,
+ 0.724247f, 0.723718f, 0.723188f, 0.722659f, 0.722128f, 0.721597f, 0.721066f, 0.720535f,
+ 0.720003f, 0.719470f, 0.718937f, 0.718404f, 0.717870f, 0.717336f, 0.716801f, 0.716266f,
+ 0.715731f, 0.715195f, 0.714659f, 0.714122f, 0.713585f, 0.713047f, 0.712509f, 0.711971f,
+ 0.711432f, 0.710893f, 0.710353f, 0.709813f, 0.709273f, 0.708732f, 0.708191f, 0.707649f,
+ 0.707107f, 0.706564f, 0.706021f, 0.705478f, 0.704934f, 0.704390f, 0.703845f, 0.703300f,
+ 0.702755f, 0.702209f, 0.701663f, 0.701116f, 0.700569f, 0.700021f, 0.699473f, 0.698925f,
+ 0.698376f, 0.697827f, 0.697277f, 0.696728f, 0.696177f, 0.695626f, 0.695075f, 0.694524f,
+ 0.693971f, 0.693419f, 0.692866f, 0.692313f, 0.691759f, 0.691205f, 0.690651f, 0.690096f,
+ 0.689541f, 0.688985f, 0.688429f, 0.687872f, 0.687315f, 0.686758f, 0.686200f, 0.685642f,
+ 0.685084f, 0.684525f, 0.683965f, 0.683406f, 0.682846f, 0.682285f, 0.681724f, 0.681163f,
+ 0.680601f, 0.680039f, 0.679476f, 0.678913f, 0.678350f, 0.677786f, 0.677222f, 0.676658f,
+ 0.676093f, 0.675527f, 0.674962f, 0.674396f, 0.673829f, 0.673262f, 0.672695f, 0.672127f,
+ 0.671559f, 0.670990f, 0.670422f, 0.669852f, 0.669283f, 0.668712f, 0.668142f, 0.667571f,
+ 0.667000f, 0.666428f, 0.665856f, 0.665284f, 0.664711f, 0.664138f, 0.663564f, 0.662990f,
+ 0.662416f, 0.661841f, 0.661266f, 0.660690f, 0.660114f, 0.659538f, 0.658961f, 0.658384f,
+ 0.657807f, 0.657229f, 0.656651f, 0.656072f, 0.655493f, 0.654913f, 0.654334f, 0.653753f,
+ 0.653173f, 0.652592f, 0.652011f, 0.651429f, 0.650847f, 0.650264f, 0.649681f, 0.649098f,
+ 0.648514f, 0.647930f, 0.647346f, 0.646761f, 0.646176f, 0.645590f, 0.645005f, 0.644418f,
+ 0.643832f, 0.643245f, 0.642657f, 0.642069f, 0.641481f, 0.640892f, 0.640303f, 0.639714f,
+ 0.639124f, 0.638534f, 0.637944f, 0.637353f, 0.636762f, 0.636170f, 0.635578f, 0.634986f,
+ 0.634393f, 0.633800f, 0.633207f, 0.632613f, 0.632019f, 0.631424f, 0.630829f, 0.630234f,
+ 0.629638f, 0.629042f, 0.628446f, 0.627849f, 0.627252f, 0.626654f, 0.626056f, 0.625458f,
+ 0.624860f, 0.624260f, 0.623661f, 0.623061f, 0.622461f, 0.621861f, 0.621260f, 0.620659f,
+ 0.620057f, 0.619455f, 0.618853f, 0.618250f, 0.617647f, 0.617044f, 0.616440f, 0.615836f,
+ 0.615232f, 0.614627f, 0.614022f, 0.613416f, 0.612810f, 0.612204f, 0.611597f, 0.610990f,
+ 0.610383f, 0.609775f, 0.609167f, 0.608559f, 0.607950f, 0.607341f, 0.606731f, 0.606121f,
+ 0.605511f, 0.604900f, 0.604290f, 0.603678f, 0.603067f, 0.602455f, 0.601842f, 0.601230f,
+ 0.600616f, 0.600003f, 0.599389f, 0.598775f, 0.598161f, 0.597546f, 0.596931f, 0.596315f,
+ 0.595699f, 0.595083f, 0.594467f, 0.593850f, 0.593232f, 0.592615f, 0.591997f, 0.591378f,
+ 0.590760f, 0.590141f, 0.589521f, 0.588902f, 0.588282f, 0.587661f, 0.587040f, 0.586419f,
+ 0.585798f, 0.585176f, 0.584554f, 0.583931f, 0.583309f, 0.582685f, 0.582062f, 0.581438f,
+ 0.580814f, 0.580189f, 0.579565f, 0.578939f, 0.578314f, 0.577688f, 0.577062f, 0.576435f,
+ 0.575808f, 0.575181f, 0.574553f, 0.573925f, 0.573297f, 0.572669f, 0.572040f, 0.571410f,
+ 0.570781f, 0.570151f, 0.569521f, 0.568890f, 0.568259f, 0.567628f, 0.566996f, 0.566364f,
+ 0.565732f, 0.565099f, 0.564466f, 0.563833f, 0.563199f, 0.562565f, 0.561931f, 0.561297f,
+ 0.560662f, 0.560026f, 0.559391f, 0.558755f, 0.558119f, 0.557482f, 0.556845f, 0.556208f,
+ 0.555570f, 0.554932f, 0.554294f, 0.553656f, 0.553017f, 0.552378f, 0.551738f, 0.551098f,
+ 0.550458f, 0.549818f, 0.549177f, 0.548536f, 0.547894f, 0.547252f, 0.546610f, 0.545968f,
+ 0.545325f, 0.544682f, 0.544039f, 0.543395f, 0.542751f, 0.542106f, 0.541462f, 0.540817f,
+ 0.540171f, 0.539526f, 0.538880f, 0.538234f, 0.537587f, 0.536940f, 0.536293f, 0.535645f,
+ 0.534998f, 0.534349f, 0.533701f, 0.533052f, 0.532403f, 0.531754f, 0.531104f, 0.530454f,
+ 0.529804f, 0.529153f, 0.528502f, 0.527851f, 0.527199f, 0.526547f, 0.525895f, 0.525243f,
+ 0.524590f, 0.523937f, 0.523283f, 0.522629f, 0.521975f, 0.521321f, 0.520666f, 0.520011f,
+ 0.519356f, 0.518700f, 0.518045f, 0.517388f, 0.516732f, 0.516075f, 0.515418f, 0.514760f,
+ 0.514103f, 0.513445f, 0.512786f, 0.512128f, 0.511469f, 0.510810f, 0.510150f, 0.509490f,
+ 0.508830f, 0.508170f, 0.507509f, 0.506848f, 0.506187f, 0.505525f, 0.504863f, 0.504201f,
+ 0.503538f, 0.502876f, 0.502212f, 0.501549f, 0.500885f, 0.500221f, 0.499557f, 0.498893f,
+ 0.498228f, 0.497562f, 0.496897f, 0.496231f, 0.495565f, 0.494899f, 0.494232f, 0.493565f,
+ 0.492898f, 0.492231f, 0.491563f, 0.490895f, 0.490226f, 0.489558f, 0.488889f, 0.488220f,
+ 0.487550f, 0.486880f, 0.486210f, 0.485540f, 0.484869f, 0.484198f, 0.483527f, 0.482856f,
+ 0.482184f, 0.481512f, 0.480839f, 0.480167f, 0.479494f, 0.478821f, 0.478147f, 0.477473f,
+ 0.476799f, 0.476125f, 0.475450f, 0.474775f, 0.474100f, 0.473425f, 0.472749f, 0.472073f,
+ 0.471397f, 0.470720f, 0.470043f, 0.469366f, 0.468689f, 0.468011f, 0.467333f, 0.466655f,
+ 0.465977f, 0.465298f, 0.464619f, 0.463939f, 0.463260f, 0.462580f, 0.461900f, 0.461219f,
+ 0.460539f, 0.459858f, 0.459177f, 0.458495f, 0.457813f, 0.457131f, 0.456449f, 0.455766f,
+ 0.455084f, 0.454400f, 0.453717f, 0.453033f, 0.452350f, 0.451665f, 0.450981f, 0.450296f,
+ 0.449611f, 0.448926f, 0.448241f, 0.447555f, 0.446869f, 0.446183f, 0.445496f, 0.444809f,
+ 0.444122f, 0.443435f, 0.442747f, 0.442059f, 0.441371f, 0.440683f, 0.439994f, 0.439305f,
+ 0.438616f, 0.437927f, 0.437237f, 0.436547f, 0.435857f, 0.435167f, 0.434476f, 0.433785f,
+ 0.433094f, 0.432402f, 0.431711f, 0.431019f, 0.430326f, 0.429634f, 0.428941f, 0.428248f,
+ 0.427555f, 0.426862f, 0.426168f, 0.425474f, 0.424780f, 0.424085f, 0.423390f, 0.422695f,
+ 0.422000f, 0.421305f, 0.420609f, 0.419913f, 0.419217f, 0.418520f, 0.417824f, 0.417127f,
+ 0.416430f, 0.415732f, 0.415034f, 0.414337f, 0.413638f, 0.412940f, 0.412241f, 0.411542f,
+ 0.410843f, 0.410144f, 0.409444f, 0.408744f, 0.408044f, 0.407344f, 0.406643f, 0.405942f,
+ 0.405241f, 0.404540f, 0.403838f, 0.403137f, 0.402435f, 0.401732f, 0.401030f, 0.400327f,
+ 0.399624f, 0.398921f, 0.398218f, 0.397514f, 0.396810f, 0.396106f, 0.395401f, 0.394697f,
+ 0.393992f, 0.393287f, 0.392582f, 0.391876f, 0.391170f, 0.390464f, 0.389758f, 0.389052f,
+ 0.388345f, 0.387638f, 0.386931f, 0.386224f, 0.385516f, 0.384808f, 0.384100f, 0.383392f,
+ 0.382683f, 0.381975f, 0.381266f, 0.380557f, 0.379847f, 0.379138f, 0.378428f, 0.377718f,
+ 0.377007f, 0.376297f, 0.375586f, 0.374875f, 0.374164f, 0.373453f, 0.372741f, 0.372029f,
+ 0.371317f, 0.370605f, 0.369892f, 0.369180f, 0.368467f, 0.367754f, 0.367040f, 0.366327f,
+ 0.365613f, 0.364899f, 0.364185f, 0.363470f, 0.362756f, 0.362041f, 0.361326f, 0.360611f,
+ 0.359895f, 0.359179f, 0.358463f, 0.357747f, 0.357031f, 0.356314f, 0.355598f, 0.354881f,
+ 0.354164f, 0.353446f, 0.352729f, 0.352011f, 0.351293f, 0.350575f, 0.349856f, 0.349138f,
+ 0.348419f, 0.347700f, 0.346980f, 0.346261f, 0.345541f, 0.344821f, 0.344101f, 0.343381f,
+ 0.342661f, 0.341940f, 0.341219f, 0.340498f, 0.339777f, 0.339055f, 0.338334f, 0.337612f,
+ 0.336890f, 0.336168f, 0.335445f, 0.334722f, 0.334000f, 0.333277f, 0.332553f, 0.331830f,
+ 0.331106f, 0.330382f, 0.329658f, 0.328934f, 0.328210f, 0.327485f, 0.326760f, 0.326035f,
+ 0.325310f, 0.324585f, 0.323859f, 0.323134f, 0.322408f, 0.321682f, 0.320955f, 0.320229f,
+ 0.319502f, 0.318775f, 0.318048f, 0.317321f, 0.316593f, 0.315866f, 0.315138f, 0.314410f,
+ 0.313682f, 0.312953f, 0.312225f, 0.311496f, 0.310767f, 0.310038f, 0.309309f, 0.308579f,
+ 0.307850f, 0.307120f, 0.306390f, 0.305660f, 0.304929f, 0.304199f, 0.303468f, 0.302737f,
+ 0.302006f, 0.301275f, 0.300543f, 0.299812f, 0.299080f, 0.298348f, 0.297616f, 0.296883f,
+ 0.296151f, 0.295418f, 0.294685f, 0.293952f, 0.293219f, 0.292486f, 0.291752f, 0.291019f,
+ 0.290285f, 0.289551f, 0.288816f, 0.288082f, 0.287347f, 0.286613f, 0.285878f, 0.285143f,
+ 0.284408f, 0.283672f, 0.282937f, 0.282201f, 0.281465f, 0.280729f, 0.279993f, 0.279256f,
+ 0.278520f, 0.277783f, 0.277046f, 0.276309f, 0.275572f, 0.274834f, 0.274097f, 0.273359f,
+ 0.272621f, 0.271883f, 0.271145f, 0.270407f, 0.269668f, 0.268930f, 0.268191f, 0.267452f,
+ 0.266713f, 0.265973f, 0.265234f, 0.264494f, 0.263755f, 0.263015f, 0.262275f, 0.261534f,
+ 0.260794f, 0.260054f, 0.259313f, 0.258572f, 0.257831f, 0.257090f, 0.256349f, 0.255607f,
+ 0.254866f, 0.254124f, 0.253382f, 0.252640f, 0.251898f, 0.251155f, 0.250413f, 0.249670f,
+ 0.248928f, 0.248185f, 0.247442f, 0.246698f, 0.245955f, 0.245212f, 0.244468f, 0.243724f,
+ 0.242980f, 0.242236f, 0.241492f, 0.240748f, 0.240003f, 0.239258f, 0.238514f, 0.237769f,
+ 0.237024f, 0.236278f, 0.235533f, 0.234788f, 0.234042f, 0.233296f, 0.232550f, 0.231804f,
+ 0.231058f, 0.230312f, 0.229565f, 0.228819f, 0.228072f, 0.227325f, 0.226578f, 0.225831f,
+ 0.225084f, 0.224337f, 0.223589f, 0.222841f, 0.222094f, 0.221346f, 0.220598f, 0.219850f,
+ 0.219101f, 0.218353f, 0.217604f, 0.216856f, 0.216107f, 0.215358f, 0.214609f, 0.213860f,
+ 0.213110f, 0.212361f, 0.211611f, 0.210862f, 0.210112f, 0.209362f, 0.208612f, 0.207862f,
+ 0.207111f, 0.206361f, 0.205610f, 0.204860f, 0.204109f, 0.203358f, 0.202607f, 0.201856f,
+ 0.201105f, 0.200353f, 0.199602f, 0.198850f, 0.198098f, 0.197347f, 0.196595f, 0.195843f,
+ 0.195090f, 0.194338f, 0.193586f, 0.192833f, 0.192080f, 0.191328f, 0.190575f, 0.189822f,
+ 0.189069f, 0.188315f, 0.187562f, 0.186809f, 0.186055f, 0.185301f, 0.184548f, 0.183794f,
+ 0.183040f, 0.182286f, 0.181532f, 0.180777f, 0.180023f, 0.179268f, 0.178514f, 0.177759f,
+ 0.177004f, 0.176249f, 0.175494f, 0.174739f, 0.173984f, 0.173229f, 0.172473f, 0.171718f,
+ 0.170962f, 0.170206f, 0.169450f, 0.168694f, 0.167938f, 0.167182f, 0.166426f, 0.165670f,
+ 0.164913f, 0.164157f, 0.163400f, 0.162643f, 0.161886f, 0.161129f, 0.160372f, 0.159615f,
+ 0.158858f, 0.158101f, 0.157343f, 0.156586f, 0.155828f, 0.155071f, 0.154313f, 0.153555f,
+ 0.152797f, 0.152039f, 0.151281f, 0.150523f, 0.149765f, 0.149006f, 0.148248f, 0.147489f,
+ 0.146730f, 0.145972f, 0.145213f, 0.144454f, 0.143695f, 0.142936f, 0.142177f, 0.141418f,
+ 0.140658f, 0.139899f, 0.139139f, 0.138380f, 0.137620f, 0.136860f, 0.136101f, 0.135341f,
+ 0.134581f, 0.133821f, 0.133061f, 0.132300f, 0.131540f, 0.130780f, 0.130019f, 0.129259f,
+ 0.128498f, 0.127737f, 0.126977f, 0.126216f, 0.125455f, 0.124694f, 0.123933f, 0.123172f,
+ 0.122411f, 0.121649f, 0.120888f, 0.120127f, 0.119365f, 0.118604f, 0.117842f, 0.117080f,
+ 0.116319f, 0.115557f, 0.114795f, 0.114033f, 0.113271f, 0.112509f, 0.111747f, 0.110984f,
+ 0.110222f, 0.109460f, 0.108697f, 0.107935f, 0.107172f, 0.106410f, 0.105647f, 0.104884f,
+ 0.104122f, 0.103359f, 0.102596f, 0.101833f, 0.101070f, 0.100307f, 0.099544f, 0.098780f,
+ 0.098017f, 0.097254f, 0.096490f, 0.095727f, 0.094963f, 0.094200f, 0.093436f, 0.092673f,
+ 0.091909f, 0.091145f, 0.090381f, 0.089617f, 0.088854f, 0.088090f, 0.087326f, 0.086561f,
+ 0.085797f, 0.085033f, 0.084269f, 0.083505f, 0.082740f, 0.081976f, 0.081211f, 0.080447f,
+ 0.079682f, 0.078918f, 0.078153f, 0.077389f, 0.076624f, 0.075859f, 0.075094f, 0.074329f,
+ 0.073565f, 0.072800f, 0.072035f, 0.071270f, 0.070505f, 0.069739f, 0.068974f, 0.068209f,
+ 0.067444f, 0.066679f, 0.065913f, 0.065148f, 0.064383f, 0.063617f, 0.062852f, 0.062086f,
+ 0.061321f, 0.060555f, 0.059790f, 0.059024f, 0.058258f, 0.057493f, 0.056727f, 0.055961f,
+ 0.055195f, 0.054429f, 0.053664f, 0.052898f, 0.052132f, 0.051366f, 0.050600f, 0.049834f,
+ 0.049068f, 0.048302f, 0.047535f, 0.046769f, 0.046003f, 0.045237f, 0.044471f, 0.043705f,
+ 0.042938f, 0.042172f, 0.041406f, 0.040639f, 0.039873f, 0.039107f, 0.038340f, 0.037574f,
+ 0.036807f, 0.036041f, 0.035274f, 0.034508f, 0.033741f, 0.032975f, 0.032208f, 0.031441f,
+ 0.030675f, 0.029908f, 0.029142f, 0.028375f, 0.027608f, 0.026841f, 0.026075f, 0.025308f,
+ 0.024541f, 0.023774f, 0.023008f, 0.022241f, 0.021474f, 0.020707f, 0.019940f, 0.019174f,
+ 0.018407f, 0.017640f, 0.016873f, 0.016106f, 0.015339f, 0.014572f, 0.013805f, 0.013038f,
+ 0.012272f, 0.011505f, 0.010738f, 0.009971f, 0.009204f, 0.008437f, 0.007670f, 0.006903f,
+ 0.006136f, 0.005369f, 0.004602f, 0.003835f, 0.003068f, 0.002301f, 0.001534f, 0.000767f,
+ 0.000000f, 0.000767f, 0.001534f, 0.002301f, 0.003068f, 0.003835f, 0.004602f, 0.005369f,
+ 0.006136f, 0.006903f, 0.007670f, 0.008437f, 0.009204f, 0.009971f, 0.010738f, 0.011505f,
+ 0.012272f, 0.013038f, 0.013805f, 0.014572f, 0.015339f, 0.016106f, 0.016873f, 0.017640f,
+ 0.018407f, 0.019174f, 0.019940f, 0.020707f, 0.021474f, 0.022241f, 0.023008f, 0.023774f,
+ 0.024541f, 0.025308f, 0.026075f, 0.026841f, 0.027608f, 0.028375f, 0.029142f, 0.029908f,
+ 0.030675f, 0.031441f, 0.032208f, 0.032975f, 0.033741f, 0.034508f, 0.035274f, 0.036041f,
+ 0.036807f, 0.037574f, 0.038340f, 0.039107f, 0.039873f, 0.040639f, 0.041406f, 0.042172f,
+ 0.042938f, 0.043705f, 0.044471f, 0.045237f, 0.046003f, 0.046769f, 0.047535f, 0.048302f,
+ 0.049068f, 0.049834f, 0.050600f, 0.051366f, 0.052132f, 0.052898f, 0.053664f, 0.054429f,
+ 0.055195f, 0.055961f, 0.056727f, 0.057493f, 0.058258f, 0.059024f, 0.059790f, 0.060555f,
+ 0.061321f, 0.062086f, 0.062852f, 0.063617f, 0.064383f, 0.065148f, 0.065913f, 0.066679f,
+ 0.067444f, 0.068209f, 0.068974f, 0.069739f, 0.070505f, 0.071270f, 0.072035f, 0.072800f,
+ 0.073565f, 0.074329f, 0.075094f, 0.075859f, 0.076624f, 0.077389f, 0.078153f, 0.078918f,
+ 0.079682f, 0.080447f, 0.081211f, 0.081976f, 0.082740f, 0.083505f, 0.084269f, 0.085033f,
+ 0.085797f, 0.086561f, 0.087326f, 0.088090f, 0.088854f, 0.089617f, 0.090381f, 0.091145f,
+ 0.091909f, 0.092673f, 0.093436f, 0.094200f, 0.094963f, 0.095727f, 0.096490f, 0.097254f,
+ 0.098017f, 0.098780f, 0.099544f, 0.100307f, 0.101070f, 0.101833f, 0.102596f, 0.103359f,
+ 0.104122f, 0.104884f, 0.105647f, 0.106410f, 0.107172f, 0.107935f, 0.108697f, 0.109460f,
+ 0.110222f, 0.110984f, 0.111747f, 0.112509f, 0.113271f, 0.114033f, 0.114795f, 0.115557f,
+ 0.116319f, 0.117080f, 0.117842f, 0.118604f, 0.119365f, 0.120127f, 0.120888f, 0.121649f,
+ 0.122411f, 0.123172f, 0.123933f, 0.124694f, 0.125455f, 0.126216f, 0.126977f, 0.127737f,
+ 0.128498f, 0.129259f, 0.130019f, 0.130780f, 0.131540f, 0.132300f, 0.133061f, 0.133821f,
+ 0.134581f, 0.135341f, 0.136101f, 0.136860f, 0.137620f, 0.138380f, 0.139139f, 0.139899f,
+ 0.140658f, 0.141418f, 0.142177f, 0.142936f, 0.143695f, 0.144454f, 0.145213f, 0.145972f,
+ 0.146730f, 0.147489f, 0.148248f, 0.149006f, 0.149765f, 0.150523f, 0.151281f, 0.152039f,
+ 0.152797f, 0.153555f, 0.154313f, 0.155071f, 0.155828f, 0.156586f, 0.157343f, 0.158101f,
+ 0.158858f, 0.159615f, 0.160372f, 0.161129f, 0.161886f, 0.162643f, 0.163400f, 0.164157f,
+ 0.164913f, 0.165670f, 0.166426f, 0.167182f, 0.167938f, 0.168694f, 0.169450f, 0.170206f,
+ 0.170962f, 0.171718f, 0.172473f, 0.173229f, 0.173984f, 0.174739f, 0.175494f, 0.176249f,
+ 0.177004f, 0.177759f, 0.178514f, 0.179268f, 0.180023f, 0.180777f, 0.181532f, 0.182286f,
+ 0.183040f, 0.183794f, 0.184548f, 0.185301f, 0.186055f, 0.186809f, 0.187562f, 0.188315f,
+ 0.189069f, 0.189822f, 0.190575f, 0.191328f, 0.192080f, 0.192833f, 0.193586f, 0.194338f,
+ 0.195090f, 0.195843f, 0.196595f, 0.197347f, 0.198098f, 0.198850f, 0.199602f, 0.200353f,
+ 0.201105f, 0.201856f, 0.202607f, 0.203358f, 0.204109f, 0.204860f, 0.205610f, 0.206361f,
+ 0.207111f, 0.207862f, 0.208612f, 0.209362f, 0.210112f, 0.210862f, 0.211611f, 0.212361f,
+ 0.213110f, 0.213860f, 0.214609f, 0.215358f, 0.216107f, 0.216856f, 0.217604f, 0.218353f,
+ 0.219101f, 0.219850f, 0.220598f, 0.221346f, 0.222094f, 0.222841f, 0.223589f, 0.224337f,
+ 0.225084f, 0.225831f, 0.226578f, 0.227325f, 0.228072f, 0.228819f, 0.229565f, 0.230312f,
+ 0.231058f, 0.231804f, 0.232550f, 0.233296f, 0.234042f, 0.234788f, 0.235533f, 0.236278f,
+ 0.237024f, 0.237769f, 0.238514f, 0.239258f, 0.240003f, 0.240748f, 0.241492f, 0.242236f,
+ 0.242980f, 0.243724f, 0.244468f, 0.245212f, 0.245955f, 0.246698f, 0.247442f, 0.248185f,
+ 0.248928f, 0.249670f, 0.250413f, 0.251155f, 0.251898f, 0.252640f, 0.253382f, 0.254124f,
+ 0.254866f, 0.255607f, 0.256349f, 0.257090f, 0.257831f, 0.258572f, 0.259313f, 0.260054f,
+ 0.260794f, 0.261534f, 0.262275f, 0.263015f, 0.263755f, 0.264494f, 0.265234f, 0.265973f,
+ 0.266713f, 0.267452f, 0.268191f, 0.268930f, 0.269668f, 0.270407f, 0.271145f, 0.271883f,
+ 0.272621f, 0.273359f, 0.274097f, 0.274834f, 0.275572f, 0.276309f, 0.277046f, 0.277783f,
+ 0.278520f, 0.279256f, 0.279993f, 0.280729f, 0.281465f, 0.282201f, 0.282937f, 0.283672f,
+ 0.284408f, 0.285143f, 0.285878f, 0.286613f, 0.287347f, 0.288082f, 0.288816f, 0.289551f,
+ 0.290285f, 0.291019f, 0.291752f, 0.292486f, 0.293219f, 0.293952f, 0.294685f, 0.295418f,
+ 0.296151f, 0.296883f, 0.297616f, 0.298348f, 0.299080f, 0.299812f, 0.300543f, 0.301275f,
+ 0.302006f, 0.302737f, 0.303468f, 0.304199f, 0.304929f, 0.305660f, 0.306390f, 0.307120f,
+ 0.307850f, 0.308579f, 0.309309f, 0.310038f, 0.310767f, 0.311496f, 0.312225f, 0.312953f,
+ 0.313682f, 0.314410f, 0.315138f, 0.315866f, 0.316593f, 0.317321f, 0.318048f, 0.318775f,
+ 0.319502f, 0.320229f, 0.320955f, 0.321682f, 0.322408f, 0.323134f, 0.323859f, 0.324585f,
+ 0.325310f, 0.326035f, 0.326760f, 0.327485f, 0.328210f, 0.328934f, 0.329658f, 0.330382f,
+ 0.331106f, 0.331830f, 0.332553f, 0.333277f, 0.334000f, 0.334722f, 0.335445f, 0.336168f,
+ 0.336890f, 0.337612f, 0.338334f, 0.339055f, 0.339777f, 0.340498f, 0.341219f, 0.341940f,
+ 0.342661f, 0.343381f, 0.344101f, 0.344821f, 0.345541f, 0.346261f, 0.346980f, 0.347700f,
+ 0.348419f, 0.349138f, 0.349856f, 0.350575f, 0.351293f, 0.352011f, 0.352729f, 0.353446f,
+ 0.354164f, 0.354881f, 0.355598f, 0.356314f, 0.357031f, 0.357747f, 0.358463f, 0.359179f,
+ 0.359895f, 0.360611f, 0.361326f, 0.362041f, 0.362756f, 0.363470f, 0.364185f, 0.364899f,
+ 0.365613f, 0.366327f, 0.367040f, 0.367754f, 0.368467f, 0.369180f, 0.369892f, 0.370605f,
+ 0.371317f, 0.372029f, 0.372741f, 0.373453f, 0.374164f, 0.374875f, 0.375586f, 0.376297f,
+ 0.377007f, 0.377718f, 0.378428f, 0.379138f, 0.379847f, 0.380557f, 0.381266f, 0.381975f,
+ 0.382683f, 0.383392f, 0.384100f, 0.384808f, 0.385516f, 0.386224f, 0.386931f, 0.387638f,
+ 0.388345f, 0.389052f, 0.389758f, 0.390464f, 0.391170f, 0.391876f, 0.392582f, 0.393287f,
+ 0.393992f, 0.394697f, 0.395401f, 0.396106f, 0.396810f, 0.397514f, 0.398218f, 0.398921f,
+ 0.399624f, 0.400327f, 0.401030f, 0.401732f, 0.402435f, 0.403137f, 0.403838f, 0.404540f,
+ 0.405241f, 0.405942f, 0.406643f, 0.407344f, 0.408044f, 0.408744f, 0.409444f, 0.410144f,
+ 0.410843f, 0.411542f, 0.412241f, 0.412940f, 0.413638f, 0.414337f, 0.415034f, 0.415732f,
+ 0.416430f, 0.417127f, 0.417824f, 0.418520f, 0.419217f, 0.419913f, 0.420609f, 0.421305f,
+ 0.422000f, 0.422695f, 0.423390f, 0.424085f, 0.424780f, 0.425474f, 0.426168f, 0.426862f,
+ 0.427555f, 0.428248f, 0.428941f, 0.429634f, 0.430326f, 0.431019f, 0.431711f, 0.432402f,
+ 0.433094f, 0.433785f, 0.434476f, 0.435167f, 0.435857f, 0.436547f, 0.437237f, 0.437927f,
+ 0.438616f, 0.439305f, 0.439994f, 0.440683f, 0.441371f, 0.442059f, 0.442747f, 0.443435f,
+ 0.444122f, 0.444809f, 0.445496f, 0.446183f, 0.446869f, 0.447555f, 0.448241f, 0.448926f,
+ 0.449611f, 0.450296f, 0.450981f, 0.451665f, 0.452350f, 0.453033f, 0.453717f, 0.454400f,
+ 0.455084f, 0.455766f, 0.456449f, 0.457131f, 0.457813f, 0.458495f, 0.459177f, 0.459858f,
+ 0.460539f, 0.461219f, 0.461900f, 0.462580f, 0.463260f, 0.463939f, 0.464619f, 0.465298f,
+ 0.465977f, 0.466655f, 0.467333f, 0.468011f, 0.468689f, 0.469366f, 0.470043f, 0.470720f,
+ 0.471397f, 0.472073f, 0.472749f, 0.473425f, 0.474100f, 0.474775f, 0.475450f, 0.476125f,
+ 0.476799f, 0.477473f, 0.478147f, 0.478821f, 0.479494f, 0.480167f, 0.480839f, 0.481512f,
+ 0.482184f, 0.482856f, 0.483527f, 0.484198f, 0.484869f, 0.485540f, 0.486210f, 0.486880f,
+ 0.487550f, 0.488220f, 0.488889f, 0.489558f, 0.490226f, 0.490895f, 0.491563f, 0.492231f,
+ 0.492898f, 0.493565f, 0.494232f, 0.494899f, 0.495565f, 0.496231f, 0.496897f, 0.497562f,
+ 0.498228f, 0.498893f, 0.499557f, 0.500221f, 0.500885f, 0.501549f, 0.502212f, 0.502876f,
+ 0.503538f, 0.504201f, 0.504863f, 0.505525f, 0.506187f, 0.506848f, 0.507509f, 0.508170f,
+ 0.508830f, 0.509490f, 0.510150f, 0.510810f, 0.511469f, 0.512128f, 0.512786f, 0.513445f,
+ 0.514103f, 0.514760f, 0.515418f, 0.516075f, 0.516732f, 0.517388f, 0.518045f, 0.518700f,
+ 0.519356f, 0.520011f, 0.520666f, 0.521321f, 0.521975f, 0.522629f, 0.523283f, 0.523937f,
+ 0.524590f, 0.525243f, 0.525895f, 0.526547f, 0.527199f, 0.527851f, 0.528502f, 0.529153f,
+ 0.529804f, 0.530454f, 0.531104f, 0.531754f, 0.532403f, 0.533052f, 0.533701f, 0.534349f,
+ 0.534998f, 0.535645f, 0.536293f, 0.536940f, 0.537587f, 0.538234f, 0.538880f, 0.539526f,
+ 0.540171f, 0.540817f, 0.541462f, 0.542106f, 0.542751f, 0.543395f, 0.544039f, 0.544682f,
+ 0.545325f, 0.545968f, 0.546610f, 0.547252f, 0.547894f, 0.548536f, 0.549177f, 0.549818f,
+ 0.550458f, 0.551098f, 0.551738f, 0.552378f, 0.553017f, 0.553656f, 0.554294f, 0.554932f,
+ 0.555570f, 0.556208f, 0.556845f, 0.557482f, 0.558119f, 0.558755f, 0.559391f, 0.560026f,
+ 0.560662f, 0.561297f, 0.561931f, 0.562565f, 0.563199f, 0.563833f, 0.564466f, 0.565099f,
+ 0.565732f, 0.566364f, 0.566996f, 0.567628f, 0.568259f, 0.568890f, 0.569521f, 0.570151f,
+ 0.570781f, 0.571410f, 0.572040f, 0.572669f, 0.573297f, 0.573925f, 0.574553f, 0.575181f,
+ 0.575808f, 0.576435f, 0.577062f, 0.577688f, 0.578314f, 0.578939f, 0.579565f, 0.580189f,
+ 0.580814f, 0.581438f, 0.582062f, 0.582685f, 0.583309f, 0.583931f, 0.584554f, 0.585176f,
+ 0.585798f, 0.586419f, 0.587040f, 0.587661f, 0.588282f, 0.588902f, 0.589521f, 0.590141f,
+ 0.590760f, 0.591378f, 0.591997f, 0.592615f, 0.593232f, 0.593850f, 0.594467f, 0.595083f,
+ 0.595699f, 0.596315f, 0.596931f, 0.597546f, 0.598161f, 0.598775f, 0.599389f, 0.600003f,
+ 0.600616f, 0.601230f, 0.601842f, 0.602455f, 0.603067f, 0.603678f, 0.604290f, 0.604900f,
+ 0.605511f, 0.606121f, 0.606731f, 0.607341f, 0.607950f, 0.608559f, 0.609167f, 0.609775f,
+ 0.610383f, 0.610990f, 0.611597f, 0.612204f, 0.612810f, 0.613416f, 0.614022f, 0.614627f,
+ 0.615232f, 0.615836f, 0.616440f, 0.617044f, 0.617647f, 0.618250f, 0.618853f, 0.619455f,
+ 0.620057f, 0.620659f, 0.621260f, 0.621861f, 0.622461f, 0.623061f, 0.623661f, 0.624260f,
+ 0.624860f, 0.625458f, 0.626056f, 0.626654f, 0.627252f, 0.627849f, 0.628446f, 0.629042f,
+ 0.629638f, 0.630234f, 0.630829f, 0.631424f, 0.632019f, 0.632613f, 0.633207f, 0.633800f,
+ 0.634393f, 0.634986f, 0.635578f, 0.636170f, 0.636762f, 0.637353f, 0.637944f, 0.638534f,
+ 0.639124f, 0.639714f, 0.640303f, 0.640892f, 0.641481f, 0.642069f, 0.642657f, 0.643245f,
+ 0.643832f, 0.644418f, 0.645005f, 0.645590f, 0.646176f, 0.646761f, 0.647346f, 0.647930f,
+ 0.648514f, 0.649098f, 0.649681f, 0.650264f, 0.650847f, 0.651429f, 0.652011f, 0.652592f,
+ 0.653173f, 0.653753f, 0.654334f, 0.654913f, 0.655493f, 0.656072f, 0.656651f, 0.657229f,
+ 0.657807f, 0.658384f, 0.658961f, 0.659538f, 0.660114f, 0.660690f, 0.661266f, 0.661841f,
+ 0.662416f, 0.662990f, 0.663564f, 0.664138f, 0.664711f, 0.665284f, 0.665856f, 0.666428f,
+ 0.667000f, 0.667571f, 0.668142f, 0.668712f, 0.669283f, 0.669852f, 0.670422f, 0.670990f,
+ 0.671559f, 0.672127f, 0.672695f, 0.673262f, 0.673829f, 0.674396f, 0.674962f, 0.675527f,
+ 0.676093f, 0.676658f, 0.677222f, 0.677786f, 0.678350f, 0.678913f, 0.679476f, 0.680039f,
+ 0.680601f, 0.681163f, 0.681724f, 0.682285f, 0.682846f, 0.683406f, 0.683965f, 0.684525f,
+ 0.685084f, 0.685642f, 0.686200f, 0.686758f, 0.687315f, 0.687872f, 0.688429f, 0.688985f,
+ 0.689541f, 0.690096f, 0.690651f, 0.691205f, 0.691759f, 0.692313f, 0.692866f, 0.693419f,
+ 0.693971f, 0.694524f, 0.695075f, 0.695626f, 0.696177f, 0.696728f, 0.697277f, 0.697827f,
+ 0.698376f, 0.698925f, 0.699473f, 0.700021f, 0.700569f, 0.701116f, 0.701663f, 0.702209f,
+ 0.702755f, 0.703300f, 0.703845f, 0.704390f, 0.704934f, 0.705478f, 0.706021f, 0.706564f,
+ 0.707107f, 0.707649f, 0.708191f, 0.708732f, 0.709273f, 0.709813f, 0.710353f, 0.710893f,
+ 0.711432f, 0.711971f, 0.712509f, 0.713047f, 0.713585f, 0.714122f, 0.714659f, 0.715195f,
+ 0.715731f, 0.716266f, 0.716801f, 0.717336f, 0.717870f, 0.718404f, 0.718937f, 0.719470f,
+ 0.720003f, 0.720535f, 0.721066f, 0.721597f, 0.722128f, 0.722659f, 0.723188f, 0.723718f,
+ 0.724247f, 0.724776f, 0.725304f, 0.725832f, 0.726359f, 0.726886f, 0.727413f, 0.727939f,
+ 0.728464f, 0.728990f, 0.729514f, 0.730039f, 0.730563f, 0.731086f, 0.731609f, 0.732132f,
+ 0.732654f, 0.733176f, 0.733697f, 0.734218f, 0.734739f, 0.735259f, 0.735779f, 0.736298f,
+ 0.736817f, 0.737335f, 0.737853f, 0.738370f, 0.738887f, 0.739404f, 0.739920f, 0.740436f,
+ 0.740951f, 0.741466f, 0.741980f, 0.742494f, 0.743008f, 0.743521f, 0.744034f, 0.744546f,
+ 0.745058f, 0.745569f, 0.746080f, 0.746591f, 0.747101f, 0.747610f, 0.748119f, 0.748628f,
+ 0.749136f, 0.749644f, 0.750152f, 0.750659f, 0.751165f, 0.751671f, 0.752177f, 0.752682f,
+ 0.753187f, 0.753691f, 0.754195f, 0.754698f, 0.755201f, 0.755704f, 0.756206f, 0.756708f,
+ 0.757209f, 0.757710f, 0.758210f, 0.758710f, 0.759209f, 0.759708f, 0.760207f, 0.760705f,
+ 0.761202f, 0.761700f, 0.762196f, 0.762693f, 0.763188f, 0.763684f, 0.764179f, 0.764673f,
+ 0.765167f, 0.765661f, 0.766154f, 0.766647f, 0.767139f, 0.767631f, 0.768122f, 0.768613f,
+ 0.769103f, 0.769593f, 0.770083f, 0.770572f, 0.771061f, 0.771549f, 0.772036f, 0.772524f,
+ 0.773010f, 0.773497f, 0.773983f, 0.774468f, 0.774953f, 0.775438f, 0.775922f, 0.776405f,
+ 0.776888f, 0.777371f, 0.777853f, 0.778335f, 0.778817f, 0.779297f, 0.779778f, 0.780258f,
+ 0.780737f, 0.781216f, 0.781695f, 0.782173f, 0.782651f, 0.783128f, 0.783605f, 0.784081f,
+ 0.784557f, 0.785032f, 0.785507f, 0.785981f, 0.786455f, 0.786929f, 0.787402f, 0.787874f,
+ 0.788346f, 0.788818f, 0.789289f, 0.789760f, 0.790230f, 0.790700f, 0.791169f, 0.791638f,
+ 0.792107f, 0.792575f, 0.793042f, 0.793509f, 0.793975f, 0.794442f, 0.794907f, 0.795372f,
+ 0.795837f, 0.796301f, 0.796765f, 0.797228f, 0.797691f, 0.798153f, 0.798615f, 0.799076f,
+ 0.799537f, 0.799998f, 0.800458f, 0.800917f, 0.801376f, 0.801835f, 0.802293f, 0.802750f,
+ 0.803208f, 0.803664f, 0.804120f, 0.804576f, 0.805031f, 0.805486f, 0.805940f, 0.806394f,
+ 0.806848f, 0.807300f, 0.807753f, 0.808205f, 0.808656f, 0.809107f, 0.809558f, 0.810008f,
+ 0.810457f, 0.810906f, 0.811355f, 0.811803f, 0.812251f, 0.812698f, 0.813144f, 0.813591f,
+ 0.814036f, 0.814482f, 0.814926f, 0.815371f, 0.815814f, 0.816258f, 0.816701f, 0.817143f,
+ 0.817585f, 0.818026f, 0.818467f, 0.818908f, 0.819348f, 0.819787f, 0.820226f, 0.820664f,
+ 0.821102f, 0.821540f, 0.821977f, 0.822414f, 0.822850f, 0.823285f, 0.823721f, 0.824155f,
+ 0.824589f, 0.825023f, 0.825456f, 0.825889f, 0.826321f, 0.826753f, 0.827184f, 0.827615f,
+ 0.828045f, 0.828475f, 0.828904f, 0.829333f, 0.829761f, 0.830189f, 0.830616f, 0.831043f,
+ 0.831470f, 0.831895f, 0.832321f, 0.832746f, 0.833170f, 0.833594f, 0.834018f, 0.834440f,
+ 0.834863f, 0.835285f, 0.835706f, 0.836127f, 0.836548f, 0.836968f, 0.837387f, 0.837806f,
+ 0.838225f, 0.838643f, 0.839060f, 0.839477f, 0.839894f, 0.840310f, 0.840725f, 0.841140f,
+ 0.841555f, 0.841969f, 0.842383f, 0.842796f, 0.843208f, 0.843620f, 0.844032f, 0.844443f,
+ 0.844854f, 0.845264f, 0.845673f, 0.846082f, 0.846491f, 0.846899f, 0.847307f, 0.847714f,
+ 0.848120f, 0.848526f, 0.848932f, 0.849337f, 0.849742f, 0.850146f, 0.850549f, 0.850953f,
+ 0.851355f, 0.851757f, 0.852159f, 0.852560f, 0.852961f, 0.853361f, 0.853760f, 0.854159f,
+ 0.854558f, 0.854956f, 0.855354f, 0.855751f, 0.856147f, 0.856543f, 0.856939f, 0.857334f,
+ 0.857729f, 0.858123f, 0.858516f, 0.858909f, 0.859302f, 0.859694f, 0.860085f, 0.860476f,
+ 0.860867f, 0.861257f, 0.861646f, 0.862035f, 0.862424f, 0.862812f, 0.863199f, 0.863586f,
+ 0.863973f, 0.864359f, 0.864744f, 0.865129f, 0.865514f, 0.865898f, 0.866281f, 0.866664f,
+ 0.867046f, 0.867428f, 0.867809f, 0.868190f, 0.868571f, 0.868951f, 0.869330f, 0.869709f,
+ 0.870087f, 0.870465f, 0.870842f, 0.871219f, 0.871595f, 0.871971f, 0.872346f, 0.872721f,
+ 0.873095f, 0.873469f, 0.873842f, 0.874215f, 0.874587f, 0.874958f, 0.875329f, 0.875700f,
+ 0.876070f, 0.876440f, 0.876809f, 0.877177f, 0.877545f, 0.877913f, 0.878280f, 0.878646f,
+ 0.879012f, 0.879378f, 0.879743f, 0.880107f, 0.880471f, 0.880834f, 0.881197f, 0.881559f,
+ 0.881921f, 0.882283f, 0.882643f, 0.883004f, 0.883363f, 0.883723f, 0.884081f, 0.884439f,
+ 0.884797f, 0.885154f, 0.885511f, 0.885867f, 0.886223f, 0.886578f, 0.886932f, 0.887286f,
+ 0.887640f, 0.887993f, 0.888345f, 0.888697f, 0.889048f, 0.889399f, 0.889750f, 0.890099f,
+ 0.890449f, 0.890797f, 0.891146f, 0.891493f, 0.891841f, 0.892187f, 0.892534f, 0.892879f,
+ 0.893224f, 0.893569f, 0.893913f, 0.894256f, 0.894599f, 0.894942f, 0.895284f, 0.895625f,
+ 0.895966f, 0.896307f, 0.896646f, 0.896986f, 0.897325f, 0.897663f, 0.898001f, 0.898338f,
+ 0.898674f, 0.899011f, 0.899346f, 0.899681f, 0.900016f, 0.900350f, 0.900683f, 0.901016f,
+ 0.901349f, 0.901681f, 0.902012f, 0.902343f, 0.902673f, 0.903003f, 0.903332f, 0.903661f,
+ 0.903989f, 0.904317f, 0.904644f, 0.904971f, 0.905297f, 0.905622f, 0.905947f, 0.906272f,
+ 0.906596f, 0.906919f, 0.907242f, 0.907564f, 0.907886f, 0.908207f, 0.908528f, 0.908848f,
+ 0.909168f, 0.909487f, 0.909806f, 0.910124f, 0.910441f, 0.910758f, 0.911075f, 0.911391f,
+ 0.911706f, 0.912021f, 0.912335f, 0.912649f, 0.912962f, 0.913275f, 0.913587f, 0.913899f,
+ 0.914210f, 0.914520f, 0.914830f, 0.915140f, 0.915449f, 0.915757f, 0.916065f, 0.916372f,
+ 0.916679f, 0.916985f, 0.917291f, 0.917596f, 0.917901f, 0.918205f, 0.918508f, 0.918811f,
+ 0.919114f, 0.919416f, 0.919717f, 0.920018f, 0.920318f, 0.920618f, 0.920917f, 0.921216f,
+ 0.921514f, 0.921812f, 0.922109f, 0.922405f, 0.922701f, 0.922997f, 0.923291f, 0.923586f,
+ 0.923880f, 0.924173f, 0.924465f, 0.924758f, 0.925049f, 0.925340f, 0.925631f, 0.925921f,
+ 0.926210f, 0.926499f, 0.926787f, 0.927075f, 0.927363f, 0.927649f, 0.927935f, 0.928221f,
+ 0.928506f, 0.928791f, 0.929075f, 0.929358f, 0.929641f, 0.929923f, 0.930205f, 0.930486f,
+ 0.930767f, 0.931047f, 0.931327f, 0.931606f, 0.931884f, 0.932162f, 0.932440f, 0.932716f,
+ 0.932993f, 0.933269f, 0.933544f, 0.933818f, 0.934093f, 0.934366f, 0.934639f, 0.934912f,
+ 0.935184f, 0.935455f, 0.935726f, 0.935996f, 0.936266f, 0.936535f, 0.936803f, 0.937072f,
+ 0.937339f, 0.937606f, 0.937872f, 0.938138f, 0.938404f, 0.938668f, 0.938932f, 0.939196f,
+ 0.939459f, 0.939722f, 0.939984f, 0.940245f, 0.940506f, 0.940766f, 0.941026f, 0.941285f,
+ 0.941544f, 0.941802f, 0.942060f, 0.942317f, 0.942573f, 0.942829f, 0.943084f, 0.943339f,
+ 0.943593f, 0.943847f, 0.944100f, 0.944353f, 0.944605f, 0.944856f, 0.945107f, 0.945358f,
+ 0.945607f, 0.945857f, 0.946105f, 0.946353f, 0.946601f, 0.946848f, 0.947094f, 0.947340f,
+ 0.947586f, 0.947830f, 0.948075f, 0.948318f, 0.948561f, 0.948804f, 0.949046f, 0.949287f,
+ 0.949528f, 0.949768f, 0.950008f, 0.950247f, 0.950486f, 0.950724f, 0.950962f, 0.951199f,
+ 0.951435f, 0.951671f, 0.951906f, 0.952141f, 0.952375f, 0.952609f, 0.952842f, 0.953074f,
+ 0.953306f, 0.953537f, 0.953768f, 0.953998f, 0.954228f, 0.954457f, 0.954686f, 0.954914f,
+ 0.955141f, 0.955368f, 0.955594f, 0.955820f, 0.956045f, 0.956270f, 0.956494f, 0.956717f,
+ 0.956940f, 0.957163f, 0.957385f, 0.957606f, 0.957826f, 0.958046f, 0.958266f, 0.958485f,
+ 0.958703f, 0.958921f, 0.959139f, 0.959355f, 0.959572f, 0.959787f, 0.960002f, 0.960217f,
+ 0.960431f, 0.960644f, 0.960857f, 0.961069f, 0.961280f, 0.961492f, 0.961702f, 0.961912f,
+ 0.962121f, 0.962330f, 0.962538f, 0.962746f, 0.962953f, 0.963160f, 0.963366f, 0.963571f,
+ 0.963776f, 0.963980f, 0.964184f, 0.964387f, 0.964590f, 0.964792f, 0.964993f, 0.965194f,
+ 0.965394f, 0.965594f, 0.965793f, 0.965992f, 0.966190f, 0.966387f, 0.966584f, 0.966781f,
+ 0.966976f, 0.967172f, 0.967366f, 0.967560f, 0.967754f, 0.967947f, 0.968139f, 0.968331f,
+ 0.968522f, 0.968713f, 0.968903f, 0.969092f, 0.969281f, 0.969470f, 0.969657f, 0.969845f,
+ 0.970031f, 0.970217f, 0.970403f, 0.970588f, 0.970772f, 0.970956f, 0.971139f, 0.971322f,
+ 0.971504f, 0.971685f, 0.971866f, 0.972047f, 0.972227f, 0.972406f, 0.972584f, 0.972762f,
+ 0.972940f, 0.973117f, 0.973293f, 0.973469f, 0.973644f, 0.973819f, 0.973993f, 0.974166f,
+ 0.974339f, 0.974512f, 0.974684f, 0.974855f, 0.975025f, 0.975195f, 0.975365f, 0.975534f,
+ 0.975702f, 0.975870f, 0.976037f, 0.976204f, 0.976370f, 0.976535f, 0.976700f, 0.976864f,
+ 0.977028f, 0.977191f, 0.977354f, 0.977516f, 0.977677f, 0.977838f, 0.977998f, 0.978158f,
+ 0.978317f, 0.978476f, 0.978634f, 0.978791f, 0.978948f, 0.979104f, 0.979260f, 0.979415f,
+ 0.979570f, 0.979724f, 0.979877f, 0.980030f, 0.980182f, 0.980334f, 0.980485f, 0.980635f,
+ 0.980785f, 0.980935f, 0.981083f, 0.981232f, 0.981379f, 0.981526f, 0.981673f, 0.981819f,
+ 0.981964f, 0.982109f, 0.982253f, 0.982396f, 0.982539f, 0.982682f, 0.982824f, 0.982965f,
+ 0.983105f, 0.983246f, 0.983385f, 0.983524f, 0.983662f, 0.983800f, 0.983937f, 0.984074f,
+ 0.984210f, 0.984346f, 0.984480f, 0.984615f, 0.984748f, 0.984882f, 0.985014f, 0.985146f,
+ 0.985278f, 0.985408f, 0.985539f, 0.985668f, 0.985798f, 0.985926f, 0.986054f, 0.986181f,
+ 0.986308f, 0.986434f, 0.986560f, 0.986685f, 0.986809f, 0.986933f, 0.987057f, 0.987179f,
+ 0.987301f, 0.987423f, 0.987544f, 0.987664f, 0.987784f, 0.987903f, 0.988022f, 0.988140f,
+ 0.988258f, 0.988374f, 0.988491f, 0.988607f, 0.988722f, 0.988836f, 0.988950f, 0.989064f,
+ 0.989177f, 0.989289f, 0.989400f, 0.989511f, 0.989622f, 0.989732f, 0.989841f, 0.989950f,
+ 0.990058f, 0.990166f, 0.990273f, 0.990379f, 0.990485f, 0.990590f, 0.990695f, 0.990799f,
+ 0.990903f, 0.991006f, 0.991108f, 0.991210f, 0.991311f, 0.991411f, 0.991511f, 0.991611f,
+ 0.991710f, 0.991808f, 0.991906f, 0.992003f, 0.992099f, 0.992195f, 0.992291f, 0.992385f,
+ 0.992480f, 0.992573f, 0.992666f, 0.992759f, 0.992850f, 0.992942f, 0.993032f, 0.993122f,
+ 0.993212f, 0.993301f, 0.993389f, 0.993477f, 0.993564f, 0.993651f, 0.993737f, 0.993822f,
+ 0.993907f, 0.993991f, 0.994075f, 0.994158f, 0.994240f, 0.994322f, 0.994404f, 0.994484f,
+ 0.994565f, 0.994644f, 0.994723f, 0.994802f, 0.994879f, 0.994957f, 0.995033f, 0.995109f,
+ 0.995185f, 0.995260f, 0.995334f, 0.995408f, 0.995481f, 0.995553f, 0.995625f, 0.995697f,
+ 0.995767f, 0.995838f, 0.995907f, 0.995976f, 0.996045f, 0.996113f, 0.996180f, 0.996247f,
+ 0.996313f, 0.996378f, 0.996443f, 0.996507f, 0.996571f, 0.996634f, 0.996697f, 0.996759f,
+ 0.996820f, 0.996881f, 0.996941f, 0.997001f, 0.997060f, 0.997119f, 0.997176f, 0.997234f,
+ 0.997290f, 0.997347f, 0.997402f, 0.997457f, 0.997511f, 0.997565f, 0.997618f, 0.997671f,
+ 0.997723f, 0.997774f, 0.997825f, 0.997876f, 0.997925f, 0.997974f, 0.998023f, 0.998071f,
+ 0.998118f, 0.998165f, 0.998211f, 0.998257f, 0.998302f, 0.998346f, 0.998390f, 0.998433f,
+ 0.998476f, 0.998518f, 0.998559f, 0.998600f, 0.998640f, 0.998680f, 0.998719f, 0.998758f,
+ 0.998795f, 0.998833f, 0.998870f, 0.998906f, 0.998941f, 0.998976f, 0.999011f, 0.999044f,
+ 0.999078f, 0.999110f, 0.999142f, 0.999174f, 0.999205f, 0.999235f, 0.999265f, 0.999294f,
+ 0.999322f, 0.999350f, 0.999378f, 0.999404f, 0.999431f, 0.999456f, 0.999481f, 0.999506f,
+ 0.999529f, 0.999553f, 0.999575f, 0.999597f, 0.999619f, 0.999640f, 0.999660f, 0.999680f,
+ 0.999699f, 0.999717f, 0.999735f, 0.999753f, 0.999769f, 0.999786f, 0.999801f, 0.999816f,
+ 0.999831f, 0.999844f, 0.999858f, 0.999870f, 0.999882f, 0.999894f, 0.999905f, 0.999915f,
+ 0.999925f, 0.999934f, 0.999942f, 0.999950f, 0.999958f, 0.999964f, 0.999971f, 0.999976f,
+ 0.999981f, 0.999986f, 0.999989f, 0.999993f, 0.999995f, 0.999997f, 0.999999f, 1.000000
+};
+
+static const float cosTable16384[8192] = {
+ 1.000000f, 1.000000f, 1.000000f, 0.999999f, 0.999999f, 0.999998f, 0.999997f, 0.999996f,
+ 0.999995f, 0.999994f, 0.999993f, 0.999991f, 0.999989f, 0.999988f, 0.999986f, 0.999983f,
+ 0.999981f, 0.999979f, 0.999976f, 0.999973f, 0.999971f, 0.999968f, 0.999964f, 0.999961f,
+ 0.999958f, 0.999954f, 0.999950f, 0.999946f, 0.999942f, 0.999938f, 0.999934f, 0.999929f,
+ 0.999925f, 0.999920f, 0.999915f, 0.999910f, 0.999905f, 0.999899f, 0.999894f, 0.999888f,
+ 0.999882f, 0.999876f, 0.999870f, 0.999864f, 0.999858f, 0.999851f, 0.999844f, 0.999838f,
+ 0.999831f, 0.999823f, 0.999816f, 0.999809f, 0.999801f, 0.999793f, 0.999786f, 0.999778f,
+ 0.999769f, 0.999761f, 0.999753f, 0.999744f, 0.999735f, 0.999726f, 0.999717f, 0.999708f,
+ 0.999699f, 0.999689f, 0.999680f, 0.999670f, 0.999660f, 0.999650f, 0.999640f, 0.999629f,
+ 0.999619f, 0.999608f, 0.999597f, 0.999586f, 0.999575f, 0.999564f, 0.999553f, 0.999541f,
+ 0.999529f, 0.999518f, 0.999506f, 0.999493f, 0.999481f, 0.999469f, 0.999456f, 0.999443f,
+ 0.999431f, 0.999418f, 0.999404f, 0.999391f, 0.999378f, 0.999364f, 0.999350f, 0.999336f,
+ 0.999322f, 0.999308f, 0.999294f, 0.999279f, 0.999265f, 0.999250f, 0.999235f, 0.999220f,
+ 0.999205f, 0.999189f, 0.999174f, 0.999158f, 0.999142f, 0.999126f, 0.999110f, 0.999094f,
+ 0.999078f, 0.999061f, 0.999044f, 0.999028f, 0.999011f, 0.998994f, 0.998976f, 0.998959f,
+ 0.998941f, 0.998924f, 0.998906f, 0.998888f, 0.998870f, 0.998851f, 0.998833f, 0.998814f,
+ 0.998795f, 0.998777f, 0.998758f, 0.998738f, 0.998719f, 0.998700f, 0.998680f, 0.998660f,
+ 0.998640f, 0.998620f, 0.998600f, 0.998580f, 0.998559f, 0.998538f, 0.998518f, 0.998497f,
+ 0.998476f, 0.998454f, 0.998433f, 0.998411f, 0.998390f, 0.998368f, 0.998346f, 0.998324f,
+ 0.998302f, 0.998279f, 0.998257f, 0.998234f, 0.998211f, 0.998188f, 0.998165f, 0.998142f,
+ 0.998118f, 0.998094f, 0.998071f, 0.998047f, 0.998023f, 0.997999f, 0.997974f, 0.997950f,
+ 0.997925f, 0.997901f, 0.997876f, 0.997851f, 0.997825f, 0.997800f, 0.997774f, 0.997749f,
+ 0.997723f, 0.997697f, 0.997671f, 0.997645f, 0.997618f, 0.997592f, 0.997565f, 0.997538f,
+ 0.997511f, 0.997484f, 0.997457f, 0.997430f, 0.997402f, 0.997374f, 0.997347f, 0.997319f,
+ 0.997290f, 0.997262f, 0.997234f, 0.997205f, 0.997176f, 0.997148f, 0.997119f, 0.997089f,
+ 0.997060f, 0.997031f, 0.997001f, 0.996971f, 0.996941f, 0.996911f, 0.996881f, 0.996851f,
+ 0.996820f, 0.996790f, 0.996759f, 0.996728f, 0.996697f, 0.996666f, 0.996634f, 0.996603f,
+ 0.996571f, 0.996539f, 0.996507f, 0.996475f, 0.996443f, 0.996411f, 0.996378f, 0.996345f,
+ 0.996313f, 0.996280f, 0.996247f, 0.996213f, 0.996180f, 0.996146f, 0.996113f, 0.996079f,
+ 0.996045f, 0.996011f, 0.995976f, 0.995942f, 0.995907f, 0.995872f, 0.995838f, 0.995803f,
+ 0.995767f, 0.995732f, 0.995697f, 0.995661f, 0.995625f, 0.995589f, 0.995553f, 0.995517f,
+ 0.995481f, 0.995444f, 0.995408f, 0.995371f, 0.995334f, 0.995297f, 0.995260f, 0.995222f,
+ 0.995185f, 0.995147f, 0.995109f, 0.995071f, 0.995033f, 0.994995f, 0.994957f, 0.994918f,
+ 0.994879f, 0.994841f, 0.994802f, 0.994762f, 0.994723f, 0.994684f, 0.994644f, 0.994604f,
+ 0.994565f, 0.994525f, 0.994484f, 0.994444f, 0.994404f, 0.994363f, 0.994322f, 0.994281f,
+ 0.994240f, 0.994199f, 0.994158f, 0.994116f, 0.994075f, 0.994033f, 0.993991f, 0.993949f,
+ 0.993907f, 0.993865f, 0.993822f, 0.993779f, 0.993737f, 0.993694f, 0.993651f, 0.993608f,
+ 0.993564f, 0.993521f, 0.993477f, 0.993433f, 0.993389f, 0.993345f, 0.993301f, 0.993257f,
+ 0.993212f, 0.993167f, 0.993122f, 0.993077f, 0.993032f, 0.992987f, 0.992942f, 0.992896f,
+ 0.992850f, 0.992805f, 0.992759f, 0.992712f, 0.992666f, 0.992620f, 0.992573f, 0.992526f,
+ 0.992480f, 0.992433f, 0.992385f, 0.992338f, 0.992291f, 0.992243f, 0.992195f, 0.992147f,
+ 0.992099f, 0.992051f, 0.992003f, 0.991954f, 0.991906f, 0.991857f, 0.991808f, 0.991759f,
+ 0.991710f, 0.991660f, 0.991611f, 0.991561f, 0.991511f, 0.991462f, 0.991411f, 0.991361f,
+ 0.991311f, 0.991260f, 0.991210f, 0.991159f, 0.991108f, 0.991057f, 0.991006f, 0.990954f,
+ 0.990903f, 0.990851f, 0.990799f, 0.990747f, 0.990695f, 0.990643f, 0.990590f, 0.990538f,
+ 0.990485f, 0.990432f, 0.990379f, 0.990326f, 0.990273f, 0.990219f, 0.990166f, 0.990112f,
+ 0.990058f, 0.990004f, 0.989950f, 0.989896f, 0.989841f, 0.989787f, 0.989732f, 0.989677f,
+ 0.989622f, 0.989567f, 0.989511f, 0.989456f, 0.989400f, 0.989345f, 0.989289f, 0.989233f,
+ 0.989177f, 0.989120f, 0.989064f, 0.989007f, 0.988950f, 0.988893f, 0.988836f, 0.988779f,
+ 0.988722f, 0.988664f, 0.988607f, 0.988549f, 0.988491f, 0.988433f, 0.988374f, 0.988316f,
+ 0.988258f, 0.988199f, 0.988140f, 0.988081f, 0.988022f, 0.987963f, 0.987903f, 0.987844f,
+ 0.987784f, 0.987724f, 0.987664f, 0.987604f, 0.987544f, 0.987484f, 0.987423f, 0.987362f,
+ 0.987301f, 0.987240f, 0.987179f, 0.987118f, 0.987057f, 0.986995f, 0.986933f, 0.986871f,
+ 0.986809f, 0.986747f, 0.986685f, 0.986623f, 0.986560f, 0.986497f, 0.986434f, 0.986371f,
+ 0.986308f, 0.986245f, 0.986181f, 0.986118f, 0.986054f, 0.985990f, 0.985926f, 0.985862f,
+ 0.985798f, 0.985733f, 0.985668f, 0.985604f, 0.985539f, 0.985474f, 0.985408f, 0.985343f,
+ 0.985278f, 0.985212f, 0.985146f, 0.985080f, 0.985014f, 0.984948f, 0.984882f, 0.984815f,
+ 0.984748f, 0.984682f, 0.984615f, 0.984548f, 0.984480f, 0.984413f, 0.984346f, 0.984278f,
+ 0.984210f, 0.984142f, 0.984074f, 0.984006f, 0.983937f, 0.983869f, 0.983800f, 0.983731f,
+ 0.983662f, 0.983593f, 0.983524f, 0.983455f, 0.983385f, 0.983315f, 0.983246f, 0.983176f,
+ 0.983105f, 0.983035f, 0.982965f, 0.982894f, 0.982824f, 0.982753f, 0.982682f, 0.982611f,
+ 0.982539f, 0.982468f, 0.982396f, 0.982325f, 0.982253f, 0.982181f, 0.982109f, 0.982036f,
+ 0.981964f, 0.981891f, 0.981819f, 0.981746f, 0.981673f, 0.981600f, 0.981526f, 0.981453f,
+ 0.981379f, 0.981305f, 0.981232f, 0.981158f, 0.981083f, 0.981009f, 0.980935f, 0.980860f,
+ 0.980785f, 0.980710f, 0.980635f, 0.980560f, 0.980485f, 0.980409f, 0.980334f, 0.980258f,
+ 0.980182f, 0.980106f, 0.980030f, 0.979954f, 0.979877f, 0.979800f, 0.979724f, 0.979647f,
+ 0.979570f, 0.979493f, 0.979415f, 0.979338f, 0.979260f, 0.979182f, 0.979104f, 0.979026f,
+ 0.978948f, 0.978870f, 0.978791f, 0.978713f, 0.978634f, 0.978555f, 0.978476f, 0.978397f,
+ 0.978317f, 0.978238f, 0.978158f, 0.978078f, 0.977998f, 0.977918f, 0.977838f, 0.977758f,
+ 0.977677f, 0.977597f, 0.977516f, 0.977435f, 0.977354f, 0.977273f, 0.977191f, 0.977110f,
+ 0.977028f, 0.976946f, 0.976864f, 0.976782f, 0.976700f, 0.976618f, 0.976535f, 0.976453f,
+ 0.976370f, 0.976287f, 0.976204f, 0.976120f, 0.976037f, 0.975954f, 0.975870f, 0.975786f,
+ 0.975702f, 0.975618f, 0.975534f, 0.975449f, 0.975365f, 0.975280f, 0.975195f, 0.975110f,
+ 0.975025f, 0.974940f, 0.974855f, 0.974769f, 0.974684f, 0.974598f, 0.974512f, 0.974426f,
+ 0.974339f, 0.974253f, 0.974166f, 0.974080f, 0.973993f, 0.973906f, 0.973819f, 0.973732f,
+ 0.973644f, 0.973557f, 0.973469f, 0.973381f, 0.973293f, 0.973205f, 0.973117f, 0.973028f,
+ 0.972940f, 0.972851f, 0.972762f, 0.972673f, 0.972584f, 0.972495f, 0.972406f, 0.972316f,
+ 0.972227f, 0.972137f, 0.972047f, 0.971957f, 0.971866f, 0.971776f, 0.971685f, 0.971595f,
+ 0.971504f, 0.971413f, 0.971322f, 0.971231f, 0.971139f, 0.971048f, 0.970956f, 0.970864f,
+ 0.970772f, 0.970680f, 0.970588f, 0.970495f, 0.970403f, 0.970310f, 0.970217f, 0.970124f,
+ 0.970031f, 0.969938f, 0.969845f, 0.969751f, 0.969657f, 0.969564f, 0.969470f, 0.969375f,
+ 0.969281f, 0.969187f, 0.969092f, 0.968998f, 0.968903f, 0.968808f, 0.968713f, 0.968617f,
+ 0.968522f, 0.968427f, 0.968331f, 0.968235f, 0.968139f, 0.968043f, 0.967947f, 0.967850f,
+ 0.967754f, 0.967657f, 0.967560f, 0.967463f, 0.967366f, 0.967269f, 0.967172f, 0.967074f,
+ 0.966976f, 0.966879f, 0.966781f, 0.966683f, 0.966584f, 0.966486f, 0.966387f, 0.966289f,
+ 0.966190f, 0.966091f, 0.965992f, 0.965893f, 0.965793f, 0.965694f, 0.965594f, 0.965494f,
+ 0.965394f, 0.965294f, 0.965194f, 0.965094f, 0.964993f, 0.964893f, 0.964792f, 0.964691f,
+ 0.964590f, 0.964489f, 0.964387f, 0.964286f, 0.964184f, 0.964082f, 0.963980f, 0.963878f,
+ 0.963776f, 0.963674f, 0.963571f, 0.963469f, 0.963366f, 0.963263f, 0.963160f, 0.963057f,
+ 0.962953f, 0.962850f, 0.962746f, 0.962642f, 0.962538f, 0.962434f, 0.962330f, 0.962226f,
+ 0.962121f, 0.962017f, 0.961912f, 0.961807f, 0.961702f, 0.961597f, 0.961492f, 0.961386f,
+ 0.961280f, 0.961175f, 0.961069f, 0.960963f, 0.960857f, 0.960750f, 0.960644f, 0.960537f,
+ 0.960431f, 0.960324f, 0.960217f, 0.960109f, 0.960002f, 0.959895f, 0.959787f, 0.959679f,
+ 0.959572f, 0.959463f, 0.959355f, 0.959247f, 0.959139f, 0.959030f, 0.958921f, 0.958812f,
+ 0.958703f, 0.958594f, 0.958485f, 0.958376f, 0.958266f, 0.958156f, 0.958046f, 0.957937f,
+ 0.957826f, 0.957716f, 0.957606f, 0.957495f, 0.957385f, 0.957274f, 0.957163f, 0.957052f,
+ 0.956940f, 0.956829f, 0.956717f, 0.956606f, 0.956494f, 0.956382f, 0.956270f, 0.956158f,
+ 0.956045f, 0.955933f, 0.955820f, 0.955707f, 0.955594f, 0.955481f, 0.955368f, 0.955255f,
+ 0.955141f, 0.955028f, 0.954914f, 0.954800f, 0.954686f, 0.954572f, 0.954457f, 0.954343f,
+ 0.954228f, 0.954113f, 0.953998f, 0.953883f, 0.953768f, 0.953653f, 0.953537f, 0.953422f,
+ 0.953306f, 0.953190f, 0.953074f, 0.952958f, 0.952842f, 0.952725f, 0.952609f, 0.952492f,
+ 0.952375f, 0.952258f, 0.952141f, 0.952024f, 0.951906f, 0.951789f, 0.951671f, 0.951553f,
+ 0.951435f, 0.951317f, 0.951199f, 0.951080f, 0.950962f, 0.950843f, 0.950724f, 0.950605f,
+ 0.950486f, 0.950367f, 0.950247f, 0.950128f, 0.950008f, 0.949888f, 0.949768f, 0.949648f,
+ 0.949528f, 0.949408f, 0.949287f, 0.949167f, 0.949046f, 0.948925f, 0.948804f, 0.948683f,
+ 0.948561f, 0.948440f, 0.948318f, 0.948196f, 0.948075f, 0.947953f, 0.947830f, 0.947708f,
+ 0.947586f, 0.947463f, 0.947340f, 0.947217f, 0.947094f, 0.946971f, 0.946848f, 0.946724f,
+ 0.946601f, 0.946477f, 0.946353f, 0.946229f, 0.946105f, 0.945981f, 0.945857f, 0.945732f,
+ 0.945607f, 0.945482f, 0.945358f, 0.945232f, 0.945107f, 0.944982f, 0.944856f, 0.944731f,
+ 0.944605f, 0.944479f, 0.944353f, 0.944227f, 0.944100f, 0.943974f, 0.943847f, 0.943720f,
+ 0.943593f, 0.943466f, 0.943339f, 0.943212f, 0.943084f, 0.942957f, 0.942829f, 0.942701f,
+ 0.942573f, 0.942445f, 0.942317f, 0.942188f, 0.942060f, 0.941931f, 0.941802f, 0.941673f,
+ 0.941544f, 0.941415f, 0.941285f, 0.941156f, 0.941026f, 0.940896f, 0.940766f, 0.940636f,
+ 0.940506f, 0.940376f, 0.940245f, 0.940115f, 0.939984f, 0.939853f, 0.939722f, 0.939591f,
+ 0.939459f, 0.939328f, 0.939196f, 0.939064f, 0.938932f, 0.938800f, 0.938668f, 0.938536f,
+ 0.938404f, 0.938271f, 0.938138f, 0.938005f, 0.937872f, 0.937739f, 0.937606f, 0.937473f,
+ 0.937339f, 0.937205f, 0.937072f, 0.936938f, 0.936803f, 0.936669f, 0.936535f, 0.936400f,
+ 0.936266f, 0.936131f, 0.935996f, 0.935861f, 0.935726f, 0.935590f, 0.935455f, 0.935319f,
+ 0.935184f, 0.935048f, 0.934912f, 0.934775f, 0.934639f, 0.934503f, 0.934366f, 0.934229f,
+ 0.934093f, 0.933956f, 0.933818f, 0.933681f, 0.933544f, 0.933406f, 0.933269f, 0.933131f,
+ 0.932993f, 0.932855f, 0.932716f, 0.932578f, 0.932440f, 0.932301f, 0.932162f, 0.932023f,
+ 0.931884f, 0.931745f, 0.931606f, 0.931466f, 0.931327f, 0.931187f, 0.931047f, 0.930907f,
+ 0.930767f, 0.930627f, 0.930486f, 0.930346f, 0.930205f, 0.930064f, 0.929923f, 0.929782f,
+ 0.929641f, 0.929500f, 0.929358f, 0.929216f, 0.929075f, 0.928933f, 0.928791f, 0.928648f,
+ 0.928506f, 0.928364f, 0.928221f, 0.928078f, 0.927935f, 0.927792f, 0.927649f, 0.927506f,
+ 0.927363f, 0.927219f, 0.927075f, 0.926931f, 0.926787f, 0.926643f, 0.926499f, 0.926355f,
+ 0.926210f, 0.926066f, 0.925921f, 0.925776f, 0.925631f, 0.925486f, 0.925340f, 0.925195f,
+ 0.925049f, 0.924904f, 0.924758f, 0.924612f, 0.924465f, 0.924319f, 0.924173f, 0.924026f,
+ 0.923880f, 0.923733f, 0.923586f, 0.923439f, 0.923291f, 0.923144f, 0.922997f, 0.922849f,
+ 0.922701f, 0.922553f, 0.922405f, 0.922257f, 0.922109f, 0.921960f, 0.921812f, 0.921663f,
+ 0.921514f, 0.921365f, 0.921216f, 0.921067f, 0.920917f, 0.920768f, 0.920618f, 0.920468f,
+ 0.920318f, 0.920168f, 0.920018f, 0.919868f, 0.919717f, 0.919567f, 0.919416f, 0.919265f,
+ 0.919114f, 0.918963f, 0.918811f, 0.918660f, 0.918508f, 0.918357f, 0.918205f, 0.918053f,
+ 0.917901f, 0.917749f, 0.917596f, 0.917444f, 0.917291f, 0.917138f, 0.916985f, 0.916832f,
+ 0.916679f, 0.916526f, 0.916372f, 0.916219f, 0.916065f, 0.915911f, 0.915757f, 0.915603f,
+ 0.915449f, 0.915294f, 0.915140f, 0.914985f, 0.914830f, 0.914675f, 0.914520f, 0.914365f,
+ 0.914210f, 0.914054f, 0.913899f, 0.913743f, 0.913587f, 0.913431f, 0.913275f, 0.913119f,
+ 0.912962f, 0.912806f, 0.912649f, 0.912492f, 0.912335f, 0.912178f, 0.912021f, 0.911864f,
+ 0.911706f, 0.911548f, 0.911391f, 0.911233f, 0.911075f, 0.910917f, 0.910758f, 0.910600f,
+ 0.910441f, 0.910283f, 0.910124f, 0.909965f, 0.909806f, 0.909646f, 0.909487f, 0.909328f,
+ 0.909168f, 0.909008f, 0.908848f, 0.908688f, 0.908528f, 0.908368f, 0.908207f, 0.908047f,
+ 0.907886f, 0.907725f, 0.907564f, 0.907403f, 0.907242f, 0.907081f, 0.906919f, 0.906757f,
+ 0.906596f, 0.906434f, 0.906272f, 0.906110f, 0.905947f, 0.905785f, 0.905622f, 0.905460f,
+ 0.905297f, 0.905134f, 0.904971f, 0.904807f, 0.904644f, 0.904481f, 0.904317f, 0.904153f,
+ 0.903989f, 0.903825f, 0.903661f, 0.903497f, 0.903332f, 0.903168f, 0.903003f, 0.902838f,
+ 0.902673f, 0.902508f, 0.902343f, 0.902178f, 0.902012f, 0.901847f, 0.901681f, 0.901515f,
+ 0.901349f, 0.901183f, 0.901016f, 0.900850f, 0.900683f, 0.900517f, 0.900350f, 0.900183f,
+ 0.900016f, 0.899849f, 0.899681f, 0.899514f, 0.899346f, 0.899179f, 0.899011f, 0.898843f,
+ 0.898674f, 0.898506f, 0.898338f, 0.898169f, 0.898001f, 0.897832f, 0.897663f, 0.897494f,
+ 0.897325f, 0.897155f, 0.896986f, 0.896816f, 0.896646f, 0.896477f, 0.896307f, 0.896137f,
+ 0.895966f, 0.895796f, 0.895625f, 0.895455f, 0.895284f, 0.895113f, 0.894942f, 0.894771f,
+ 0.894599f, 0.894428f, 0.894256f, 0.894085f, 0.893913f, 0.893741f, 0.893569f, 0.893397f,
+ 0.893224f, 0.893052f, 0.892879f, 0.892706f, 0.892534f, 0.892361f, 0.892187f, 0.892014f,
+ 0.891841f, 0.891667f, 0.891493f, 0.891320f, 0.891146f, 0.890972f, 0.890797f, 0.890623f,
+ 0.890449f, 0.890274f, 0.890099f, 0.889925f, 0.889750f, 0.889574f, 0.889399f, 0.889224f,
+ 0.889048f, 0.888873f, 0.888697f, 0.888521f, 0.888345f, 0.888169f, 0.887993f, 0.887816f,
+ 0.887640f, 0.887463f, 0.887286f, 0.887109f, 0.886932f, 0.886755f, 0.886578f, 0.886400f,
+ 0.886223f, 0.886045f, 0.885867f, 0.885689f, 0.885511f, 0.885333f, 0.885154f, 0.884976f,
+ 0.884797f, 0.884618f, 0.884439f, 0.884260f, 0.884081f, 0.883902f, 0.883723f, 0.883543f,
+ 0.883363f, 0.883184f, 0.883004f, 0.882824f, 0.882643f, 0.882463f, 0.882283f, 0.882102f,
+ 0.881921f, 0.881740f, 0.881559f, 0.881378f, 0.881197f, 0.881016f, 0.880834f, 0.880653f,
+ 0.880471f, 0.880289f, 0.880107f, 0.879925f, 0.879743f, 0.879560f, 0.879378f, 0.879195f,
+ 0.879012f, 0.878829f, 0.878646f, 0.878463f, 0.878280f, 0.878096f, 0.877913f, 0.877729f,
+ 0.877545f, 0.877361f, 0.877177f, 0.876993f, 0.876809f, 0.876624f, 0.876440f, 0.876255f,
+ 0.876070f, 0.875885f, 0.875700f, 0.875515f, 0.875329f, 0.875144f, 0.874958f, 0.874773f,
+ 0.874587f, 0.874401f, 0.874215f, 0.874028f, 0.873842f, 0.873655f, 0.873469f, 0.873282f,
+ 0.873095f, 0.872908f, 0.872721f, 0.872534f, 0.872346f, 0.872159f, 0.871971f, 0.871783f,
+ 0.871595f, 0.871407f, 0.871219f, 0.871031f, 0.870842f, 0.870654f, 0.870465f, 0.870276f,
+ 0.870087f, 0.869898f, 0.869709f, 0.869519f, 0.869330f, 0.869140f, 0.868951f, 0.868761f,
+ 0.868571f, 0.868381f, 0.868190f, 0.868000f, 0.867809f, 0.867619f, 0.867428f, 0.867237f,
+ 0.867046f, 0.866855f, 0.866664f, 0.866472f, 0.866281f, 0.866089f, 0.865898f, 0.865706f,
+ 0.865514f, 0.865321f, 0.865129f, 0.864937f, 0.864744f, 0.864552f, 0.864359f, 0.864166f,
+ 0.863973f, 0.863780f, 0.863586f, 0.863393f, 0.863199f, 0.863006f, 0.862812f, 0.862618f,
+ 0.862424f, 0.862230f, 0.862035f, 0.861841f, 0.861646f, 0.861452f, 0.861257f, 0.861062f,
+ 0.860867f, 0.860672f, 0.860476f, 0.860281f, 0.860085f, 0.859890f, 0.859694f, 0.859498f,
+ 0.859302f, 0.859106f, 0.858909f, 0.858713f, 0.858516f, 0.858320f, 0.858123f, 0.857926f,
+ 0.857729f, 0.857531f, 0.857334f, 0.857137f, 0.856939f, 0.856741f, 0.856543f, 0.856345f,
+ 0.856147f, 0.855949f, 0.855751f, 0.855552f, 0.855354f, 0.855155f, 0.854956f, 0.854757f,
+ 0.854558f, 0.854359f, 0.854159f, 0.853960f, 0.853760f, 0.853561f, 0.853361f, 0.853161f,
+ 0.852961f, 0.852760f, 0.852560f, 0.852360f, 0.852159f, 0.851958f, 0.851757f, 0.851556f,
+ 0.851355f, 0.851154f, 0.850953f, 0.850751f, 0.850549f, 0.850348f, 0.850146f, 0.849944f,
+ 0.849742f, 0.849540f, 0.849337f, 0.849135f, 0.848932f, 0.848729f, 0.848526f, 0.848323f,
+ 0.848120f, 0.847917f, 0.847714f, 0.847510f, 0.847307f, 0.847103f, 0.846899f, 0.846695f,
+ 0.846491f, 0.846287f, 0.846082f, 0.845878f, 0.845673f, 0.845469f, 0.845264f, 0.845059f,
+ 0.844854f, 0.844648f, 0.844443f, 0.844238f, 0.844032f, 0.843826f, 0.843620f, 0.843414f,
+ 0.843208f, 0.843002f, 0.842796f, 0.842589f, 0.842383f, 0.842176f, 0.841969f, 0.841762f,
+ 0.841555f, 0.841348f, 0.841140f, 0.840933f, 0.840725f, 0.840518f, 0.840310f, 0.840102f,
+ 0.839894f, 0.839686f, 0.839477f, 0.839269f, 0.839060f, 0.838852f, 0.838643f, 0.838434f,
+ 0.838225f, 0.838015f, 0.837806f, 0.837597f, 0.837387f, 0.837178f, 0.836968f, 0.836758f,
+ 0.836548f, 0.836338f, 0.836127f, 0.835917f, 0.835706f, 0.835496f, 0.835285f, 0.835074f,
+ 0.834863f, 0.834652f, 0.834440f, 0.834229f, 0.834018f, 0.833806f, 0.833594f, 0.833382f,
+ 0.833170f, 0.832958f, 0.832746f, 0.832533f, 0.832321f, 0.832108f, 0.831895f, 0.831683f,
+ 0.831470f, 0.831257f, 0.831043f, 0.830830f, 0.830616f, 0.830403f, 0.830189f, 0.829975f,
+ 0.829761f, 0.829547f, 0.829333f, 0.829119f, 0.828904f, 0.828690f, 0.828475f, 0.828260f,
+ 0.828045f, 0.827830f, 0.827615f, 0.827399f, 0.827184f, 0.826968f, 0.826753f, 0.826537f,
+ 0.826321f, 0.826105f, 0.825889f, 0.825673f, 0.825456f, 0.825240f, 0.825023f, 0.824806f,
+ 0.824589f, 0.824372f, 0.824155f, 0.823938f, 0.823721f, 0.823503f, 0.823285f, 0.823068f,
+ 0.822850f, 0.822632f, 0.822414f, 0.822195f, 0.821977f, 0.821759f, 0.821540f, 0.821321f,
+ 0.821102f, 0.820884f, 0.820664f, 0.820445f, 0.820226f, 0.820007f, 0.819787f, 0.819567f,
+ 0.819348f, 0.819128f, 0.818908f, 0.818687f, 0.818467f, 0.818247f, 0.818026f, 0.817806f,
+ 0.817585f, 0.817364f, 0.817143f, 0.816922f, 0.816701f, 0.816479f, 0.816258f, 0.816036f,
+ 0.815814f, 0.815593f, 0.815371f, 0.815149f, 0.814926f, 0.814704f, 0.814482f, 0.814259f,
+ 0.814036f, 0.813814f, 0.813591f, 0.813368f, 0.813144f, 0.812921f, 0.812698f, 0.812474f,
+ 0.812251f, 0.812027f, 0.811803f, 0.811579f, 0.811355f, 0.811131f, 0.810906f, 0.810682f,
+ 0.810457f, 0.810232f, 0.810008f, 0.809783f, 0.809558f, 0.809332f, 0.809107f, 0.808882f,
+ 0.808656f, 0.808430f, 0.808205f, 0.807979f, 0.807753f, 0.807527f, 0.807300f, 0.807074f,
+ 0.806848f, 0.806621f, 0.806394f, 0.806167f, 0.805940f, 0.805713f, 0.805486f, 0.805259f,
+ 0.805031f, 0.804804f, 0.804576f, 0.804348f, 0.804120f, 0.803892f, 0.803664f, 0.803436f,
+ 0.803208f, 0.802979f, 0.802750f, 0.802522f, 0.802293f, 0.802064f, 0.801835f, 0.801606f,
+ 0.801376f, 0.801147f, 0.800917f, 0.800687f, 0.800458f, 0.800228f, 0.799998f, 0.799768f,
+ 0.799537f, 0.799307f, 0.799076f, 0.798846f, 0.798615f, 0.798384f, 0.798153f, 0.797922f,
+ 0.797691f, 0.797459f, 0.797228f, 0.796996f, 0.796765f, 0.796533f, 0.796301f, 0.796069f,
+ 0.795837f, 0.795605f, 0.795372f, 0.795140f, 0.794907f, 0.794674f, 0.794442f, 0.794209f,
+ 0.793975f, 0.793742f, 0.793509f, 0.793276f, 0.793042f, 0.792808f, 0.792575f, 0.792341f,
+ 0.792107f, 0.791872f, 0.791638f, 0.791404f, 0.791169f, 0.790935f, 0.790700f, 0.790465f,
+ 0.790230f, 0.789995f, 0.789760f, 0.789525f, 0.789289f, 0.789054f, 0.788818f, 0.788582f,
+ 0.788346f, 0.788110f, 0.787874f, 0.787638f, 0.787402f, 0.787165f, 0.786929f, 0.786692f,
+ 0.786455f, 0.786218f, 0.785981f, 0.785744f, 0.785507f, 0.785269f, 0.785032f, 0.784794f,
+ 0.784557f, 0.784319f, 0.784081f, 0.783843f, 0.783605f, 0.783366f, 0.783128f, 0.782889f,
+ 0.782651f, 0.782412f, 0.782173f, 0.781934f, 0.781695f, 0.781456f, 0.781216f, 0.780977f,
+ 0.780737f, 0.780498f, 0.780258f, 0.780018f, 0.779778f, 0.779538f, 0.779297f, 0.779057f,
+ 0.778817f, 0.778576f, 0.778335f, 0.778094f, 0.777853f, 0.777612f, 0.777371f, 0.777130f,
+ 0.776888f, 0.776647f, 0.776405f, 0.776164f, 0.775922f, 0.775680f, 0.775438f, 0.775195f,
+ 0.774953f, 0.774711f, 0.774468f, 0.774225f, 0.773983f, 0.773740f, 0.773497f, 0.773254f,
+ 0.773010f, 0.772767f, 0.772524f, 0.772280f, 0.772036f, 0.771793f, 0.771549f, 0.771305f,
+ 0.771061f, 0.770816f, 0.770572f, 0.770327f, 0.770083f, 0.769838f, 0.769593f, 0.769348f,
+ 0.769103f, 0.768858f, 0.768613f, 0.768368f, 0.768122f, 0.767876f, 0.767631f, 0.767385f,
+ 0.767139f, 0.766893f, 0.766647f, 0.766400f, 0.766154f, 0.765907f, 0.765661f, 0.765414f,
+ 0.765167f, 0.764920f, 0.764673f, 0.764426f, 0.764179f, 0.763931f, 0.763684f, 0.763436f,
+ 0.763188f, 0.762941f, 0.762693f, 0.762444f, 0.762196f, 0.761948f, 0.761700f, 0.761451f,
+ 0.761202f, 0.760954f, 0.760705f, 0.760456f, 0.760207f, 0.759957f, 0.759708f, 0.759459f,
+ 0.759209f, 0.758960f, 0.758710f, 0.758460f, 0.758210f, 0.757960f, 0.757710f, 0.757459f,
+ 0.757209f, 0.756958f, 0.756708f, 0.756457f, 0.756206f, 0.755955f, 0.755704f, 0.755453f,
+ 0.755201f, 0.754950f, 0.754698f, 0.754447f, 0.754195f, 0.753943f, 0.753691f, 0.753439f,
+ 0.753187f, 0.752934f, 0.752682f, 0.752429f, 0.752177f, 0.751924f, 0.751671f, 0.751418f,
+ 0.751165f, 0.750912f, 0.750659f, 0.750405f, 0.750152f, 0.749898f, 0.749644f, 0.749390f,
+ 0.749136f, 0.748882f, 0.748628f, 0.748374f, 0.748119f, 0.747865f, 0.747610f, 0.747355f,
+ 0.747101f, 0.746846f, 0.746591f, 0.746335f, 0.746080f, 0.745825f, 0.745569f, 0.745314f,
+ 0.745058f, 0.744802f, 0.744546f, 0.744290f, 0.744034f, 0.743777f, 0.743521f, 0.743265f,
+ 0.743008f, 0.742751f, 0.742494f, 0.742237f, 0.741980f, 0.741723f, 0.741466f, 0.741209f,
+ 0.740951f, 0.740694f, 0.740436f, 0.740178f, 0.739920f, 0.739662f, 0.739404f, 0.739146f,
+ 0.738887f, 0.738629f, 0.738370f, 0.738112f, 0.737853f, 0.737594f, 0.737335f, 0.737076f,
+ 0.736817f, 0.736557f, 0.736298f, 0.736038f, 0.735779f, 0.735519f, 0.735259f, 0.734999f,
+ 0.734739f, 0.734479f, 0.734218f, 0.733958f, 0.733697f, 0.733437f, 0.733176f, 0.732915f,
+ 0.732654f, 0.732393f, 0.732132f, 0.731871f, 0.731609f, 0.731348f, 0.731086f, 0.730825f,
+ 0.730563f, 0.730301f, 0.730039f, 0.729777f, 0.729514f, 0.729252f, 0.728990f, 0.728727f,
+ 0.728464f, 0.728202f, 0.727939f, 0.727676f, 0.727413f, 0.727149f, 0.726886f, 0.726623f,
+ 0.726359f, 0.726095f, 0.725832f, 0.725568f, 0.725304f, 0.725040f, 0.724776f, 0.724511f,
+ 0.724247f, 0.723983f, 0.723718f, 0.723453f, 0.723188f, 0.722924f, 0.722659f, 0.722393f,
+ 0.722128f, 0.721863f, 0.721597f, 0.721332f, 0.721066f, 0.720800f, 0.720535f, 0.720269f,
+ 0.720003f, 0.719736f, 0.719470f, 0.719204f, 0.718937f, 0.718670f, 0.718404f, 0.718137f,
+ 0.717870f, 0.717603f, 0.717336f, 0.717069f, 0.716801f, 0.716534f, 0.716266f, 0.715999f,
+ 0.715731f, 0.715463f, 0.715195f, 0.714927f, 0.714659f, 0.714390f, 0.714122f, 0.713853f,
+ 0.713585f, 0.713316f, 0.713047f, 0.712778f, 0.712509f, 0.712240f, 0.711971f, 0.711702f,
+ 0.711432f, 0.711163f, 0.710893f, 0.710623f, 0.710353f, 0.710083f, 0.709813f, 0.709543f,
+ 0.709273f, 0.709002f, 0.708732f, 0.708461f, 0.708191f, 0.707920f, 0.707649f, 0.707378f,
+ 0.707107f, 0.706836f, 0.706564f, 0.706293f, 0.706021f, 0.705750f, 0.705478f, 0.705206f,
+ 0.704934f, 0.704662f, 0.704390f, 0.704118f, 0.703845f, 0.703573f, 0.703300f, 0.703028f,
+ 0.702755f, 0.702482f, 0.702209f, 0.701936f, 0.701663f, 0.701389f, 0.701116f, 0.700842f,
+ 0.700569f, 0.700295f, 0.700021f, 0.699747f, 0.699473f, 0.699199f, 0.698925f, 0.698651f,
+ 0.698376f, 0.698102f, 0.697827f, 0.697552f, 0.697277f, 0.697003f, 0.696728f, 0.696452f,
+ 0.696177f, 0.695902f, 0.695626f, 0.695351f, 0.695075f, 0.694799f, 0.694524f, 0.694248f,
+ 0.693971f, 0.693695f, 0.693419f, 0.693143f, 0.692866f, 0.692590f, 0.692313f, 0.692036f,
+ 0.691759f, 0.691482f, 0.691205f, 0.690928f, 0.690651f, 0.690373f, 0.690096f, 0.689818f,
+ 0.689541f, 0.689263f, 0.688985f, 0.688707f, 0.688429f, 0.688151f, 0.687872f, 0.687594f,
+ 0.687315f, 0.687037f, 0.686758f, 0.686479f, 0.686200f, 0.685921f, 0.685642f, 0.685363f,
+ 0.685084f, 0.684804f, 0.684525f, 0.684245f, 0.683965f, 0.683686f, 0.683406f, 0.683126f,
+ 0.682846f, 0.682565f, 0.682285f, 0.682005f, 0.681724f, 0.681443f, 0.681163f, 0.680882f,
+ 0.680601f, 0.680320f, 0.680039f, 0.679758f, 0.679476f, 0.679195f, 0.678913f, 0.678632f,
+ 0.678350f, 0.678068f, 0.677786f, 0.677504f, 0.677222f, 0.676940f, 0.676658f, 0.676375f,
+ 0.676093f, 0.675810f, 0.675527f, 0.675245f, 0.674962f, 0.674679f, 0.674396f, 0.674112f,
+ 0.673829f, 0.673546f, 0.673262f, 0.672978f, 0.672695f, 0.672411f, 0.672127f, 0.671843f,
+ 0.671559f, 0.671275f, 0.670990f, 0.670706f, 0.670422f, 0.670137f, 0.669852f, 0.669567f,
+ 0.669283f, 0.668998f, 0.668712f, 0.668427f, 0.668142f, 0.667857f, 0.667571f, 0.667286f,
+ 0.667000f, 0.666714f, 0.666428f, 0.666142f, 0.665856f, 0.665570f, 0.665284f, 0.664997f,
+ 0.664711f, 0.664424f, 0.664138f, 0.663851f, 0.663564f, 0.663277f, 0.662990f, 0.662703f,
+ 0.662416f, 0.662128f, 0.661841f, 0.661553f, 0.661266f, 0.660978f, 0.660690f, 0.660402f,
+ 0.660114f, 0.659826f, 0.659538f, 0.659250f, 0.658961f, 0.658673f, 0.658384f, 0.658095f,
+ 0.657807f, 0.657518f, 0.657229f, 0.656940f, 0.656651f, 0.656361f, 0.656072f, 0.655782f,
+ 0.655493f, 0.655203f, 0.654913f, 0.654624f, 0.654334f, 0.654044f, 0.653753f, 0.653463f,
+ 0.653173f, 0.652882f, 0.652592f, 0.652301f, 0.652011f, 0.651720f, 0.651429f, 0.651138f,
+ 0.650847f, 0.650555f, 0.650264f, 0.649973f, 0.649681f, 0.649390f, 0.649098f, 0.648806f,
+ 0.648514f, 0.648222f, 0.647930f, 0.647638f, 0.647346f, 0.647054f, 0.646761f, 0.646469f,
+ 0.646176f, 0.645883f, 0.645590f, 0.645298f, 0.645005f, 0.644711f, 0.644418f, 0.644125f,
+ 0.643832f, 0.643538f, 0.643245f, 0.642951f, 0.642657f, 0.642363f, 0.642069f, 0.641775f,
+ 0.641481f, 0.641187f, 0.640892f, 0.640598f, 0.640303f, 0.640009f, 0.639714f, 0.639419f,
+ 0.639124f, 0.638829f, 0.638534f, 0.638239f, 0.637944f, 0.637649f, 0.637353f, 0.637057f,
+ 0.636762f, 0.636466f, 0.636170f, 0.635874f, 0.635578f, 0.635282f, 0.634986f, 0.634690f,
+ 0.634393f, 0.634097f, 0.633800f, 0.633504f, 0.633207f, 0.632910f, 0.632613f, 0.632316f,
+ 0.632019f, 0.631721f, 0.631424f, 0.631127f, 0.630829f, 0.630532f, 0.630234f, 0.629936f,
+ 0.629638f, 0.629340f, 0.629042f, 0.628744f, 0.628446f, 0.628147f, 0.627849f, 0.627550f,
+ 0.627252f, 0.626953f, 0.626654f, 0.626355f, 0.626056f, 0.625757f, 0.625458f, 0.625159f,
+ 0.624860f, 0.624560f, 0.624260f, 0.623961f, 0.623661f, 0.623361f, 0.623061f, 0.622761f,
+ 0.622461f, 0.622161f, 0.621861f, 0.621560f, 0.621260f, 0.620959f, 0.620659f, 0.620358f,
+ 0.620057f, 0.619756f, 0.619455f, 0.619154f, 0.618853f, 0.618552f, 0.618250f, 0.617949f,
+ 0.617647f, 0.617346f, 0.617044f, 0.616742f, 0.616440f, 0.616138f, 0.615836f, 0.615534f,
+ 0.615232f, 0.614929f, 0.614627f, 0.614324f, 0.614022f, 0.613719f, 0.613416f, 0.613113f,
+ 0.612810f, 0.612507f, 0.612204f, 0.611901f, 0.611597f, 0.611294f, 0.610990f, 0.610687f,
+ 0.610383f, 0.610079f, 0.609775f, 0.609471f, 0.609167f, 0.608863f, 0.608559f, 0.608254f,
+ 0.607950f, 0.607645f, 0.607341f, 0.607036f, 0.606731f, 0.606426f, 0.606121f, 0.605816f,
+ 0.605511f, 0.605206f, 0.604900f, 0.604595f, 0.604290f, 0.603984f, 0.603678f, 0.603372f,
+ 0.603067f, 0.602761f, 0.602455f, 0.602148f, 0.601842f, 0.601536f, 0.601230f, 0.600923f,
+ 0.600616f, 0.600310f, 0.600003f, 0.599696f, 0.599389f, 0.599082f, 0.598775f, 0.598468f,
+ 0.598161f, 0.597853f, 0.597546f, 0.597238f, 0.596931f, 0.596623f, 0.596315f, 0.596007f,
+ 0.595699f, 0.595391f, 0.595083f, 0.594775f, 0.594467f, 0.594158f, 0.593850f, 0.593541f,
+ 0.593232f, 0.592924f, 0.592615f, 0.592306f, 0.591997f, 0.591688f, 0.591378f, 0.591069f,
+ 0.590760f, 0.590450f, 0.590141f, 0.589831f, 0.589521f, 0.589212f, 0.588902f, 0.588592f,
+ 0.588282f, 0.587971f, 0.587661f, 0.587351f, 0.587040f, 0.586730f, 0.586419f, 0.586109f,
+ 0.585798f, 0.585487f, 0.585176f, 0.584865f, 0.584554f, 0.584243f, 0.583931f, 0.583620f,
+ 0.583309f, 0.582997f, 0.582685f, 0.582374f, 0.582062f, 0.581750f, 0.581438f, 0.581126f,
+ 0.580814f, 0.580502f, 0.580189f, 0.579877f, 0.579565f, 0.579252f, 0.578939f, 0.578627f,
+ 0.578314f, 0.578001f, 0.577688f, 0.577375f, 0.577062f, 0.576748f, 0.576435f, 0.576122f,
+ 0.575808f, 0.575495f, 0.575181f, 0.574867f, 0.574553f, 0.574239f, 0.573925f, 0.573611f,
+ 0.573297f, 0.572983f, 0.572669f, 0.572354f, 0.572040f, 0.571725f, 0.571410f, 0.571096f,
+ 0.570781f, 0.570466f, 0.570151f, 0.569836f, 0.569521f, 0.569205f, 0.568890f, 0.568574f,
+ 0.568259f, 0.567943f, 0.567628f, 0.567312f, 0.566996f, 0.566680f, 0.566364f, 0.566048f,
+ 0.565732f, 0.565416f, 0.565099f, 0.564783f, 0.564466f, 0.564150f, 0.563833f, 0.563516f,
+ 0.563199f, 0.562882f, 0.562565f, 0.562248f, 0.561931f, 0.561614f, 0.561297f, 0.560979f,
+ 0.560662f, 0.560344f, 0.560026f, 0.559709f, 0.559391f, 0.559073f, 0.558755f, 0.558437f,
+ 0.558119f, 0.557800f, 0.557482f, 0.557164f, 0.556845f, 0.556526f, 0.556208f, 0.555889f,
+ 0.555570f, 0.555251f, 0.554932f, 0.554613f, 0.554294f, 0.553975f, 0.553656f, 0.553336f,
+ 0.553017f, 0.552697f, 0.552378f, 0.552058f, 0.551738f, 0.551418f, 0.551098f, 0.550778f,
+ 0.550458f, 0.550138f, 0.549818f, 0.549497f, 0.549177f, 0.548856f, 0.548536f, 0.548215f,
+ 0.547894f, 0.547573f, 0.547252f, 0.546931f, 0.546610f, 0.546289f, 0.545968f, 0.545646f,
+ 0.545325f, 0.545003f, 0.544682f, 0.544360f, 0.544039f, 0.543717f, 0.543395f, 0.543073f,
+ 0.542751f, 0.542429f, 0.542106f, 0.541784f, 0.541462f, 0.541139f, 0.540817f, 0.540494f,
+ 0.540171f, 0.539849f, 0.539526f, 0.539203f, 0.538880f, 0.538557f, 0.538234f, 0.537910f,
+ 0.537587f, 0.537264f, 0.536940f, 0.536617f, 0.536293f, 0.535969f, 0.535645f, 0.535322f,
+ 0.534998f, 0.534674f, 0.534349f, 0.534025f, 0.533701f, 0.533377f, 0.533052f, 0.532728f,
+ 0.532403f, 0.532078f, 0.531754f, 0.531429f, 0.531104f, 0.530779f, 0.530454f, 0.530129f,
+ 0.529804f, 0.529478f, 0.529153f, 0.528828f, 0.528502f, 0.528176f, 0.527851f, 0.527525f,
+ 0.527199f, 0.526873f, 0.526547f, 0.526221f, 0.525895f, 0.525569f, 0.525243f, 0.524916f,
+ 0.524590f, 0.524263f, 0.523937f, 0.523610f, 0.523283f, 0.522956f, 0.522629f, 0.522302f,
+ 0.521975f, 0.521648f, 0.521321f, 0.520994f, 0.520666f, 0.520339f, 0.520011f, 0.519684f,
+ 0.519356f, 0.519028f, 0.518700f, 0.518372f, 0.518045f, 0.517716f, 0.517388f, 0.517060f,
+ 0.516732f, 0.516403f, 0.516075f, 0.515746f, 0.515418f, 0.515089f, 0.514760f, 0.514432f,
+ 0.514103f, 0.513774f, 0.513445f, 0.513116f, 0.512786f, 0.512457f, 0.512128f, 0.511798f,
+ 0.511469f, 0.511139f, 0.510810f, 0.510480f, 0.510150f, 0.509820f, 0.509490f, 0.509160f,
+ 0.508830f, 0.508500f, 0.508170f, 0.507839f, 0.507509f, 0.507179f, 0.506848f, 0.506517f,
+ 0.506187f, 0.505856f, 0.505525f, 0.505194f, 0.504863f, 0.504532f, 0.504201f, 0.503870f,
+ 0.503538f, 0.503207f, 0.502876f, 0.502544f, 0.502212f, 0.501881f, 0.501549f, 0.501217f,
+ 0.500885f, 0.500553f, 0.500221f, 0.499889f, 0.499557f, 0.499225f, 0.498893f, 0.498560f,
+ 0.498228f, 0.497895f, 0.497562f, 0.497230f, 0.496897f, 0.496564f, 0.496231f, 0.495898f,
+ 0.495565f, 0.495232f, 0.494899f, 0.494566f, 0.494232f, 0.493899f, 0.493565f, 0.493232f,
+ 0.492898f, 0.492564f, 0.492231f, 0.491897f, 0.491563f, 0.491229f, 0.490895f, 0.490561f,
+ 0.490226f, 0.489892f, 0.489558f, 0.489223f, 0.488889f, 0.488554f, 0.488220f, 0.487885f,
+ 0.487550f, 0.487215f, 0.486880f, 0.486545f, 0.486210f, 0.485875f, 0.485540f, 0.485205f,
+ 0.484869f, 0.484534f, 0.484198f, 0.483863f, 0.483527f, 0.483191f, 0.482856f, 0.482520f,
+ 0.482184f, 0.481848f, 0.481512f, 0.481176f, 0.480839f, 0.480503f, 0.480167f, 0.479830f,
+ 0.479494f, 0.479157f, 0.478821f, 0.478484f, 0.478147f, 0.477810f, 0.477473f, 0.477136f,
+ 0.476799f, 0.476462f, 0.476125f, 0.475788f, 0.475450f, 0.475113f, 0.474775f, 0.474438f,
+ 0.474100f, 0.473763f, 0.473425f, 0.473087f, 0.472749f, 0.472411f, 0.472073f, 0.471735f,
+ 0.471397f, 0.471058f, 0.470720f, 0.470382f, 0.470043f, 0.469705f, 0.469366f, 0.469028f,
+ 0.468689f, 0.468350f, 0.468011f, 0.467672f, 0.467333f, 0.466994f, 0.466655f, 0.466316f,
+ 0.465977f, 0.465637f, 0.465298f, 0.464958f, 0.464619f, 0.464279f, 0.463939f, 0.463600f,
+ 0.463260f, 0.462920f, 0.462580f, 0.462240f, 0.461900f, 0.461560f, 0.461219f, 0.460879f,
+ 0.460539f, 0.460198f, 0.459858f, 0.459517f, 0.459177f, 0.458836f, 0.458495f, 0.458154f,
+ 0.457813f, 0.457472f, 0.457131f, 0.456790f, 0.456449f, 0.456108f, 0.455766f, 0.455425f,
+ 0.455084f, 0.454742f, 0.454400f, 0.454059f, 0.453717f, 0.453375f, 0.453033f, 0.452692f,
+ 0.452350f, 0.452008f, 0.451665f, 0.451323f, 0.450981f, 0.450639f, 0.450296f, 0.449954f,
+ 0.449611f, 0.449269f, 0.448926f, 0.448583f, 0.448241f, 0.447898f, 0.447555f, 0.447212f,
+ 0.446869f, 0.446526f, 0.446183f, 0.445839f, 0.445496f, 0.445153f, 0.444809f, 0.444466f,
+ 0.444122f, 0.443779f, 0.443435f, 0.443091f, 0.442747f, 0.442403f, 0.442059f, 0.441715f,
+ 0.441371f, 0.441027f, 0.440683f, 0.440339f, 0.439994f, 0.439650f, 0.439305f, 0.438961f,
+ 0.438616f, 0.438272f, 0.437927f, 0.437582f, 0.437237f, 0.436892f, 0.436547f, 0.436202f,
+ 0.435857f, 0.435512f, 0.435167f, 0.434821f, 0.434476f, 0.434131f, 0.433785f, 0.433439f,
+ 0.433094f, 0.432748f, 0.432402f, 0.432057f, 0.431711f, 0.431365f, 0.431019f, 0.430673f,
+ 0.430326f, 0.429980f, 0.429634f, 0.429288f, 0.428941f, 0.428595f, 0.428248f, 0.427902f,
+ 0.427555f, 0.427208f, 0.426862f, 0.426515f, 0.426168f, 0.425821f, 0.425474f, 0.425127f,
+ 0.424780f, 0.424432f, 0.424085f, 0.423738f, 0.423390f, 0.423043f, 0.422695f, 0.422348f,
+ 0.422000f, 0.421653f, 0.421305f, 0.420957f, 0.420609f, 0.420261f, 0.419913f, 0.419565f,
+ 0.419217f, 0.418869f, 0.418520f, 0.418172f, 0.417824f, 0.417475f, 0.417127f, 0.416778f,
+ 0.416430f, 0.416081f, 0.415732f, 0.415383f, 0.415034f, 0.414685f, 0.414337f, 0.413987f,
+ 0.413638f, 0.413289f, 0.412940f, 0.412591f, 0.412241f, 0.411892f, 0.411542f, 0.411193f,
+ 0.410843f, 0.410493f, 0.410144f, 0.409794f, 0.409444f, 0.409094f, 0.408744f, 0.408394f,
+ 0.408044f, 0.407694f, 0.407344f, 0.406994f, 0.406643f, 0.406293f, 0.405942f, 0.405592f,
+ 0.405241f, 0.404891f, 0.404540f, 0.404189f, 0.403838f, 0.403488f, 0.403137f, 0.402786f,
+ 0.402435f, 0.402084f, 0.401732f, 0.401381f, 0.401030f, 0.400679f, 0.400327f, 0.399976f,
+ 0.399624f, 0.399273f, 0.398921f, 0.398569f, 0.398218f, 0.397866f, 0.397514f, 0.397162f,
+ 0.396810f, 0.396458f, 0.396106f, 0.395754f, 0.395401f, 0.395049f, 0.394697f, 0.394344f,
+ 0.393992f, 0.393640f, 0.393287f, 0.392934f, 0.392582f, 0.392229f, 0.391876f, 0.391523f,
+ 0.391170f, 0.390817f, 0.390464f, 0.390111f, 0.389758f, 0.389405f, 0.389052f, 0.388698f,
+ 0.388345f, 0.387992f, 0.387638f, 0.387285f, 0.386931f, 0.386577f, 0.386224f, 0.385870f,
+ 0.385516f, 0.385162f, 0.384808f, 0.384454f, 0.384100f, 0.383746f, 0.383392f, 0.383038f,
+ 0.382683f, 0.382329f, 0.381975f, 0.381620f, 0.381266f, 0.380911f, 0.380557f, 0.380202f,
+ 0.379847f, 0.379492f, 0.379138f, 0.378783f, 0.378428f, 0.378073f, 0.377718f, 0.377363f,
+ 0.377007f, 0.376652f, 0.376297f, 0.375942f, 0.375586f, 0.375231f, 0.374875f, 0.374520f,
+ 0.374164f, 0.373808f, 0.373453f, 0.373097f, 0.372741f, 0.372385f, 0.372029f, 0.371673f,
+ 0.371317f, 0.370961f, 0.370605f, 0.370249f, 0.369892f, 0.369536f, 0.369180f, 0.368823f,
+ 0.368467f, 0.368110f, 0.367754f, 0.367397f, 0.367040f, 0.366684f, 0.366327f, 0.365970f,
+ 0.365613f, 0.365256f, 0.364899f, 0.364542f, 0.364185f, 0.363828f, 0.363470f, 0.363113f,
+ 0.362756f, 0.362398f, 0.362041f, 0.361683f, 0.361326f, 0.360968f, 0.360611f, 0.360253f,
+ 0.359895f, 0.359537f, 0.359179f, 0.358821f, 0.358463f, 0.358105f, 0.357747f, 0.357389f,
+ 0.357031f, 0.356673f, 0.356314f, 0.355956f, 0.355598f, 0.355239f, 0.354881f, 0.354522f,
+ 0.354164f, 0.353805f, 0.353446f, 0.353087f, 0.352729f, 0.352370f, 0.352011f, 0.351652f,
+ 0.351293f, 0.350934f, 0.350575f, 0.350215f, 0.349856f, 0.349497f, 0.349138f, 0.348778f,
+ 0.348419f, 0.348059f, 0.347700f, 0.347340f, 0.346980f, 0.346621f, 0.346261f, 0.345901f,
+ 0.345541f, 0.345181f, 0.344821f, 0.344461f, 0.344101f, 0.343741f, 0.343381f, 0.343021f,
+ 0.342661f, 0.342300f, 0.341940f, 0.341580f, 0.341219f, 0.340859f, 0.340498f, 0.340138f,
+ 0.339777f, 0.339416f, 0.339055f, 0.338695f, 0.338334f, 0.337973f, 0.337612f, 0.337251f,
+ 0.336890f, 0.336529f, 0.336168f, 0.335806f, 0.335445f, 0.335084f, 0.334722f, 0.334361f,
+ 0.334000f, 0.333638f, 0.333277f, 0.332915f, 0.332553f, 0.332192f, 0.331830f, 0.331468f,
+ 0.331106f, 0.330744f, 0.330382f, 0.330020f, 0.329658f, 0.329296f, 0.328934f, 0.328572f,
+ 0.328210f, 0.327848f, 0.327485f, 0.327123f, 0.326760f, 0.326398f, 0.326035f, 0.325673f,
+ 0.325310f, 0.324948f, 0.324585f, 0.324222f, 0.323859f, 0.323497f, 0.323134f, 0.322771f,
+ 0.322408f, 0.322045f, 0.321682f, 0.321318f, 0.320955f, 0.320592f, 0.320229f, 0.319865f,
+ 0.319502f, 0.319139f, 0.318775f, 0.318412f, 0.318048f, 0.317684f, 0.317321f, 0.316957f,
+ 0.316593f, 0.316230f, 0.315866f, 0.315502f, 0.315138f, 0.314774f, 0.314410f, 0.314046f,
+ 0.313682f, 0.313318f, 0.312953f, 0.312589f, 0.312225f, 0.311860f, 0.311496f, 0.311132f,
+ 0.310767f, 0.310403f, 0.310038f, 0.309673f, 0.309309f, 0.308944f, 0.308579f, 0.308214f,
+ 0.307850f, 0.307485f, 0.307120f, 0.306755f, 0.306390f, 0.306025f, 0.305660f, 0.305294f,
+ 0.304929f, 0.304564f, 0.304199f, 0.303833f, 0.303468f, 0.303103f, 0.302737f, 0.302372f,
+ 0.302006f, 0.301640f, 0.301275f, 0.300909f, 0.300543f, 0.300177f, 0.299812f, 0.299446f,
+ 0.299080f, 0.298714f, 0.298348f, 0.297982f, 0.297616f, 0.297250f, 0.296883f, 0.296517f,
+ 0.296151f, 0.295785f, 0.295418f, 0.295052f, 0.294685f, 0.294319f, 0.293952f, 0.293586f,
+ 0.293219f, 0.292852f, 0.292486f, 0.292119f, 0.291752f, 0.291385f, 0.291019f, 0.290652f,
+ 0.290285f, 0.289918f, 0.289551f, 0.289184f, 0.288816f, 0.288449f, 0.288082f, 0.287715f,
+ 0.287347f, 0.286980f, 0.286613f, 0.286245f, 0.285878f, 0.285510f, 0.285143f, 0.284775f,
+ 0.284408f, 0.284040f, 0.283672f, 0.283304f, 0.282937f, 0.282569f, 0.282201f, 0.281833f,
+ 0.281465f, 0.281097f, 0.280729f, 0.280361f, 0.279993f, 0.279624f, 0.279256f, 0.278888f,
+ 0.278520f, 0.278151f, 0.277783f, 0.277415f, 0.277046f, 0.276678f, 0.276309f, 0.275940f,
+ 0.275572f, 0.275203f, 0.274834f, 0.274466f, 0.274097f, 0.273728f, 0.273359f, 0.272990f,
+ 0.272621f, 0.272252f, 0.271883f, 0.271514f, 0.271145f, 0.270776f, 0.270407f, 0.270038f,
+ 0.269668f, 0.269299f, 0.268930f, 0.268560f, 0.268191f, 0.267821f, 0.267452f, 0.267082f,
+ 0.266713f, 0.266343f, 0.265973f, 0.265604f, 0.265234f, 0.264864f, 0.264494f, 0.264125f,
+ 0.263755f, 0.263385f, 0.263015f, 0.262645f, 0.262275f, 0.261905f, 0.261534f, 0.261164f,
+ 0.260794f, 0.260424f, 0.260054f, 0.259683f, 0.259313f, 0.258943f, 0.258572f, 0.258202f,
+ 0.257831f, 0.257461f, 0.257090f, 0.256719f, 0.256349f, 0.255978f, 0.255607f, 0.255236f,
+ 0.254866f, 0.254495f, 0.254124f, 0.253753f, 0.253382f, 0.253011f, 0.252640f, 0.252269f,
+ 0.251898f, 0.251527f, 0.251155f, 0.250784f, 0.250413f, 0.250042f, 0.249670f, 0.249299f,
+ 0.248928f, 0.248556f, 0.248185f, 0.247813f, 0.247442f, 0.247070f, 0.246698f, 0.246327f,
+ 0.245955f, 0.245583f, 0.245212f, 0.244840f, 0.244468f, 0.244096f, 0.243724f, 0.243352f,
+ 0.242980f, 0.242608f, 0.242236f, 0.241864f, 0.241492f, 0.241120f, 0.240748f, 0.240375f,
+ 0.240003f, 0.239631f, 0.239258f, 0.238886f, 0.238514f, 0.238141f, 0.237769f, 0.237396f,
+ 0.237024f, 0.236651f, 0.236278f, 0.235906f, 0.235533f, 0.235160f, 0.234788f, 0.234415f,
+ 0.234042f, 0.233669f, 0.233296f, 0.232923f, 0.232550f, 0.232177f, 0.231804f, 0.231431f,
+ 0.231058f, 0.230685f, 0.230312f, 0.229939f, 0.229565f, 0.229192f, 0.228819f, 0.228445f,
+ 0.228072f, 0.227699f, 0.227325f, 0.226952f, 0.226578f, 0.226205f, 0.225831f, 0.225458f,
+ 0.225084f, 0.224710f, 0.224337f, 0.223963f, 0.223589f, 0.223215f, 0.222841f, 0.222468f,
+ 0.222094f, 0.221720f, 0.221346f, 0.220972f, 0.220598f, 0.220224f, 0.219850f, 0.219475f,
+ 0.219101f, 0.218727f, 0.218353f, 0.217979f, 0.217604f, 0.217230f, 0.216856f, 0.216481f,
+ 0.216107f, 0.215732f, 0.215358f, 0.214983f, 0.214609f, 0.214234f, 0.213860f, 0.213485f,
+ 0.213110f, 0.212736f, 0.212361f, 0.211986f, 0.211611f, 0.211237f, 0.210862f, 0.210487f,
+ 0.210112f, 0.209737f, 0.209362f, 0.208987f, 0.208612f, 0.208237f, 0.207862f, 0.207487f,
+ 0.207111f, 0.206736f, 0.206361f, 0.205986f, 0.205610f, 0.205235f, 0.204860f, 0.204484f,
+ 0.204109f, 0.203734f, 0.203358f, 0.202983f, 0.202607f, 0.202231f, 0.201856f, 0.201480f,
+ 0.201105f, 0.200729f, 0.200353f, 0.199978f, 0.199602f, 0.199226f, 0.198850f, 0.198474f,
+ 0.198098f, 0.197722f, 0.197347f, 0.196971f, 0.196595f, 0.196219f, 0.195843f, 0.195466f,
+ 0.195090f, 0.194714f, 0.194338f, 0.193962f, 0.193586f, 0.193209f, 0.192833f, 0.192457f,
+ 0.192080f, 0.191704f, 0.191328f, 0.190951f, 0.190575f, 0.190198f, 0.189822f, 0.189445f,
+ 0.189069f, 0.188692f, 0.188315f, 0.187939f, 0.187562f, 0.187185f, 0.186809f, 0.186432f,
+ 0.186055f, 0.185678f, 0.185301f, 0.184925f, 0.184548f, 0.184171f, 0.183794f, 0.183417f,
+ 0.183040f, 0.182663f, 0.182286f, 0.181909f, 0.181532f, 0.181154f, 0.180777f, 0.180400f,
+ 0.180023f, 0.179646f, 0.179268f, 0.178891f, 0.178514f, 0.178136f, 0.177759f, 0.177382f,
+ 0.177004f, 0.176627f, 0.176249f, 0.175872f, 0.175494f, 0.175117f, 0.174739f, 0.174362f,
+ 0.173984f, 0.173606f, 0.173229f, 0.172851f, 0.172473f, 0.172095f, 0.171718f, 0.171340f,
+ 0.170962f, 0.170584f, 0.170206f, 0.169828f, 0.169450f, 0.169072f, 0.168694f, 0.168316f,
+ 0.167938f, 0.167560f, 0.167182f, 0.166804f, 0.166426f, 0.166048f, 0.165670f, 0.165291f,
+ 0.164913f, 0.164535f, 0.164157f, 0.163778f, 0.163400f, 0.163022f, 0.162643f, 0.162265f,
+ 0.161886f, 0.161508f, 0.161129f, 0.160751f, 0.160372f, 0.159994f, 0.159615f, 0.159237f,
+ 0.158858f, 0.158480f, 0.158101f, 0.157722f, 0.157343f, 0.156965f, 0.156586f, 0.156207f,
+ 0.155828f, 0.155450f, 0.155071f, 0.154692f, 0.154313f, 0.153934f, 0.153555f, 0.153176f,
+ 0.152797f, 0.152418f, 0.152039f, 0.151660f, 0.151281f, 0.150902f, 0.150523f, 0.150144f,
+ 0.149765f, 0.149385f, 0.149006f, 0.148627f, 0.148248f, 0.147868f, 0.147489f, 0.147110f,
+ 0.146730f, 0.146351f, 0.145972f, 0.145592f, 0.145213f, 0.144833f, 0.144454f, 0.144075f,
+ 0.143695f, 0.143316f, 0.142936f, 0.142556f, 0.142177f, 0.141797f, 0.141418f, 0.141038f,
+ 0.140658f, 0.140279f, 0.139899f, 0.139519f, 0.139139f, 0.138760f, 0.138380f, 0.138000f,
+ 0.137620f, 0.137240f, 0.136860f, 0.136480f, 0.136101f, 0.135721f, 0.135341f, 0.134961f,
+ 0.134581f, 0.134201f, 0.133821f, 0.133441f, 0.133061f, 0.132680f, 0.132300f, 0.131920f,
+ 0.131540f, 0.131160f, 0.130780f, 0.130399f, 0.130019f, 0.129639f, 0.129259f, 0.128878f,
+ 0.128498f, 0.128118f, 0.127737f, 0.127357f, 0.126977f, 0.126596f, 0.126216f, 0.125835f,
+ 0.125455f, 0.125075f, 0.124694f, 0.124314f, 0.123933f, 0.123552f, 0.123172f, 0.122791f,
+ 0.122411f, 0.122030f, 0.121649f, 0.121269f, 0.120888f, 0.120507f, 0.120127f, 0.119746f,
+ 0.119365f, 0.118984f, 0.118604f, 0.118223f, 0.117842f, 0.117461f, 0.117080f, 0.116700f,
+ 0.116319f, 0.115938f, 0.115557f, 0.115176f, 0.114795f, 0.114414f, 0.114033f, 0.113652f,
+ 0.113271f, 0.112890f, 0.112509f, 0.112128f, 0.111747f, 0.111366f, 0.110984f, 0.110603f,
+ 0.110222f, 0.109841f, 0.109460f, 0.109079f, 0.108697f, 0.108316f, 0.107935f, 0.107554f,
+ 0.107172f, 0.106791f, 0.106410f, 0.106028f, 0.105647f, 0.105266f, 0.104884f, 0.104503f,
+ 0.104122f, 0.103740f, 0.103359f, 0.102977f, 0.102596f, 0.102214f, 0.101833f, 0.101451f,
+ 0.101070f, 0.100688f, 0.100307f, 0.099925f, 0.099544f, 0.099162f, 0.098780f, 0.098399f,
+ 0.098017f, 0.097635f, 0.097254f, 0.096872f, 0.096490f, 0.096109f, 0.095727f, 0.095345f,
+ 0.094963f, 0.094582f, 0.094200f, 0.093818f, 0.093436f, 0.093055f, 0.092673f, 0.092291f,
+ 0.091909f, 0.091527f, 0.091145f, 0.090763f, 0.090381f, 0.089999f, 0.089617f, 0.089236f,
+ 0.088854f, 0.088472f, 0.088090f, 0.087708f, 0.087326f, 0.086943f, 0.086561f, 0.086179f,
+ 0.085797f, 0.085415f, 0.085033f, 0.084651f, 0.084269f, 0.083887f, 0.083505f, 0.083122f,
+ 0.082740f, 0.082358f, 0.081976f, 0.081594f, 0.081211f, 0.080829f, 0.080447f, 0.080065f,
+ 0.079682f, 0.079300f, 0.078918f, 0.078536f, 0.078153f, 0.077771f, 0.077389f, 0.077006f,
+ 0.076624f, 0.076241f, 0.075859f, 0.075477f, 0.075094f, 0.074712f, 0.074329f, 0.073947f,
+ 0.073565f, 0.073182f, 0.072800f, 0.072417f, 0.072035f, 0.071652f, 0.071270f, 0.070887f,
+ 0.070505f, 0.070122f, 0.069739f, 0.069357f, 0.068974f, 0.068592f, 0.068209f, 0.067827f,
+ 0.067444f, 0.067061f, 0.066679f, 0.066296f, 0.065913f, 0.065531f, 0.065148f, 0.064765f,
+ 0.064383f, 0.064000f, 0.063617f, 0.063234f, 0.062852f, 0.062469f, 0.062086f, 0.061704f,
+ 0.061321f, 0.060938f, 0.060555f, 0.060172f, 0.059790f, 0.059407f, 0.059024f, 0.058641f,
+ 0.058258f, 0.057875f, 0.057493f, 0.057110f, 0.056727f, 0.056344f, 0.055961f, 0.055578f,
+ 0.055195f, 0.054812f, 0.054429f, 0.054046f, 0.053664f, 0.053281f, 0.052898f, 0.052515f,
+ 0.052132f, 0.051749f, 0.051366f, 0.050983f, 0.050600f, 0.050217f, 0.049834f, 0.049451f,
+ 0.049068f, 0.048685f, 0.048302f, 0.047919f, 0.047535f, 0.047152f, 0.046769f, 0.046386f,
+ 0.046003f, 0.045620f, 0.045237f, 0.044854f, 0.044471f, 0.044088f, 0.043705f, 0.043321f,
+ 0.042938f, 0.042555f, 0.042172f, 0.041789f, 0.041406f, 0.041022f, 0.040639f, 0.040256f,
+ 0.039873f, 0.039490f, 0.039107f, 0.038723f, 0.038340f, 0.037957f, 0.037574f, 0.037190f,
+ 0.036807f, 0.036424f, 0.036041f, 0.035657f, 0.035274f, 0.034891f, 0.034508f, 0.034124f,
+ 0.033741f, 0.033358f, 0.032975f, 0.032591f, 0.032208f, 0.031825f, 0.031441f, 0.031058f,
+ 0.030675f, 0.030291f, 0.029908f, 0.029525f, 0.029142f, 0.028758f, 0.028375f, 0.027991f,
+ 0.027608f, 0.027225f, 0.026841f, 0.026458f, 0.026075f, 0.025691f, 0.025308f, 0.024925f,
+ 0.024541f, 0.024158f, 0.023774f, 0.023391f, 0.023008f, 0.022624f, 0.022241f, 0.021857f,
+ 0.021474f, 0.021091f, 0.020707f, 0.020324f, 0.019940f, 0.019557f, 0.019174f, 0.018790f,
+ 0.018407f, 0.018023f, 0.017640f, 0.017256f, 0.016873f, 0.016490f, 0.016106f, 0.015723f,
+ 0.015339f, 0.014956f, 0.014572f, 0.014189f, 0.013805f, 0.013422f, 0.013038f, 0.012655f,
+ 0.012272f, 0.011888f, 0.011505f, 0.011121f, 0.010738f, 0.010354f, 0.009971f, 0.009587f,
+ 0.009204f, 0.008820f, 0.008437f, 0.008053f, 0.007670f, 0.007286f, 0.006903f, 0.006519f,
+ 0.006136f, 0.005752f, 0.005369f, 0.004985f, 0.004602f, 0.004218f, 0.003835f, 0.003451f,
+ 0.003068f, 0.002684f, 0.002301f, 0.001917f, 0.001534f, 0.001150f, 0.000767f, 0.000383f,
+ 0.000000f, 0.000383f, 0.000767f, 0.001150f, 0.001534f, 0.001917f, 0.002301f, 0.002684f,
+ 0.003068f, 0.003451f, 0.003835f, 0.004218f, 0.004602f, 0.004985f, 0.005369f, 0.005752f,
+ 0.006136f, 0.006519f, 0.006903f, 0.007286f, 0.007670f, 0.008053f, 0.008437f, 0.008820f,
+ 0.009204f, 0.009587f, 0.009971f, 0.010354f, 0.010738f, 0.011121f, 0.011505f, 0.011888f,
+ 0.012272f, 0.012655f, 0.013038f, 0.013422f, 0.013805f, 0.014189f, 0.014572f, 0.014956f,
+ 0.015339f, 0.015723f, 0.016106f, 0.016490f, 0.016873f, 0.017256f, 0.017640f, 0.018023f,
+ 0.018407f, 0.018790f, 0.019174f, 0.019557f, 0.019940f, 0.020324f, 0.020707f, 0.021091f,
+ 0.021474f, 0.021857f, 0.022241f, 0.022624f, 0.023008f, 0.023391f, 0.023774f, 0.024158f,
+ 0.024541f, 0.024925f, 0.025308f, 0.025691f, 0.026075f, 0.026458f, 0.026841f, 0.027225f,
+ 0.027608f, 0.027991f, 0.028375f, 0.028758f, 0.029142f, 0.029525f, 0.029908f, 0.030291f,
+ 0.030675f, 0.031058f, 0.031441f, 0.031825f, 0.032208f, 0.032591f, 0.032975f, 0.033358f,
+ 0.033741f, 0.034124f, 0.034508f, 0.034891f, 0.035274f, 0.035657f, 0.036041f, 0.036424f,
+ 0.036807f, 0.037190f, 0.037574f, 0.037957f, 0.038340f, 0.038723f, 0.039107f, 0.039490f,
+ 0.039873f, 0.040256f, 0.040639f, 0.041022f, 0.041406f, 0.041789f, 0.042172f, 0.042555f,
+ 0.042938f, 0.043321f, 0.043705f, 0.044088f, 0.044471f, 0.044854f, 0.045237f, 0.045620f,
+ 0.046003f, 0.046386f, 0.046769f, 0.047152f, 0.047535f, 0.047919f, 0.048302f, 0.048685f,
+ 0.049068f, 0.049451f, 0.049834f, 0.050217f, 0.050600f, 0.050983f, 0.051366f, 0.051749f,
+ 0.052132f, 0.052515f, 0.052898f, 0.053281f, 0.053664f, 0.054046f, 0.054429f, 0.054812f,
+ 0.055195f, 0.055578f, 0.055961f, 0.056344f, 0.056727f, 0.057110f, 0.057493f, 0.057875f,
+ 0.058258f, 0.058641f, 0.059024f, 0.059407f, 0.059790f, 0.060172f, 0.060555f, 0.060938f,
+ 0.061321f, 0.061704f, 0.062086f, 0.062469f, 0.062852f, 0.063234f, 0.063617f, 0.064000f,
+ 0.064383f, 0.064765f, 0.065148f, 0.065531f, 0.065913f, 0.066296f, 0.066679f, 0.067061f,
+ 0.067444f, 0.067827f, 0.068209f, 0.068592f, 0.068974f, 0.069357f, 0.069739f, 0.070122f,
+ 0.070505f, 0.070887f, 0.071270f, 0.071652f, 0.072035f, 0.072417f, 0.072800f, 0.073182f,
+ 0.073565f, 0.073947f, 0.074329f, 0.074712f, 0.075094f, 0.075477f, 0.075859f, 0.076241f,
+ 0.076624f, 0.077006f, 0.077389f, 0.077771f, 0.078153f, 0.078536f, 0.078918f, 0.079300f,
+ 0.079682f, 0.080065f, 0.080447f, 0.080829f, 0.081211f, 0.081594f, 0.081976f, 0.082358f,
+ 0.082740f, 0.083122f, 0.083505f, 0.083887f, 0.084269f, 0.084651f, 0.085033f, 0.085415f,
+ 0.085797f, 0.086179f, 0.086561f, 0.086943f, 0.087326f, 0.087708f, 0.088090f, 0.088472f,
+ 0.088854f, 0.089236f, 0.089617f, 0.089999f, 0.090381f, 0.090763f, 0.091145f, 0.091527f,
+ 0.091909f, 0.092291f, 0.092673f, 0.093055f, 0.093436f, 0.093818f, 0.094200f, 0.094582f,
+ 0.094963f, 0.095345f, 0.095727f, 0.096109f, 0.096490f, 0.096872f, 0.097254f, 0.097635f,
+ 0.098017f, 0.098399f, 0.098780f, 0.099162f, 0.099544f, 0.099925f, 0.100307f, 0.100688f,
+ 0.101070f, 0.101451f, 0.101833f, 0.102214f, 0.102596f, 0.102977f, 0.103359f, 0.103740f,
+ 0.104122f, 0.104503f, 0.104884f, 0.105266f, 0.105647f, 0.106028f, 0.106410f, 0.106791f,
+ 0.107172f, 0.107554f, 0.107935f, 0.108316f, 0.108697f, 0.109079f, 0.109460f, 0.109841f,
+ 0.110222f, 0.110603f, 0.110984f, 0.111366f, 0.111747f, 0.112128f, 0.112509f, 0.112890f,
+ 0.113271f, 0.113652f, 0.114033f, 0.114414f, 0.114795f, 0.115176f, 0.115557f, 0.115938f,
+ 0.116319f, 0.116700f, 0.117080f, 0.117461f, 0.117842f, 0.118223f, 0.118604f, 0.118984f,
+ 0.119365f, 0.119746f, 0.120127f, 0.120507f, 0.120888f, 0.121269f, 0.121649f, 0.122030f,
+ 0.122411f, 0.122791f, 0.123172f, 0.123552f, 0.123933f, 0.124314f, 0.124694f, 0.125075f,
+ 0.125455f, 0.125835f, 0.126216f, 0.126596f, 0.126977f, 0.127357f, 0.127737f, 0.128118f,
+ 0.128498f, 0.128878f, 0.129259f, 0.129639f, 0.130019f, 0.130399f, 0.130780f, 0.131160f,
+ 0.131540f, 0.131920f, 0.132300f, 0.132680f, 0.133061f, 0.133441f, 0.133821f, 0.134201f,
+ 0.134581f, 0.134961f, 0.135341f, 0.135721f, 0.136101f, 0.136480f, 0.136860f, 0.137240f,
+ 0.137620f, 0.138000f, 0.138380f, 0.138760f, 0.139139f, 0.139519f, 0.139899f, 0.140279f,
+ 0.140658f, 0.141038f, 0.141418f, 0.141797f, 0.142177f, 0.142556f, 0.142936f, 0.143316f,
+ 0.143695f, 0.144075f, 0.144454f, 0.144833f, 0.145213f, 0.145592f, 0.145972f, 0.146351f,
+ 0.146730f, 0.147110f, 0.147489f, 0.147868f, 0.148248f, 0.148627f, 0.149006f, 0.149385f,
+ 0.149765f, 0.150144f, 0.150523f, 0.150902f, 0.151281f, 0.151660f, 0.152039f, 0.152418f,
+ 0.152797f, 0.153176f, 0.153555f, 0.153934f, 0.154313f, 0.154692f, 0.155071f, 0.155450f,
+ 0.155828f, 0.156207f, 0.156586f, 0.156965f, 0.157343f, 0.157722f, 0.158101f, 0.158480f,
+ 0.158858f, 0.159237f, 0.159615f, 0.159994f, 0.160372f, 0.160751f, 0.161129f, 0.161508f,
+ 0.161886f, 0.162265f, 0.162643f, 0.163022f, 0.163400f, 0.163778f, 0.164157f, 0.164535f,
+ 0.164913f, 0.165291f, 0.165670f, 0.166048f, 0.166426f, 0.166804f, 0.167182f, 0.167560f,
+ 0.167938f, 0.168316f, 0.168694f, 0.169072f, 0.169450f, 0.169828f, 0.170206f, 0.170584f,
+ 0.170962f, 0.171340f, 0.171718f, 0.172095f, 0.172473f, 0.172851f, 0.173229f, 0.173606f,
+ 0.173984f, 0.174362f, 0.174739f, 0.175117f, 0.175494f, 0.175872f, 0.176249f, 0.176627f,
+ 0.177004f, 0.177382f, 0.177759f, 0.178136f, 0.178514f, 0.178891f, 0.179268f, 0.179646f,
+ 0.180023f, 0.180400f, 0.180777f, 0.181154f, 0.181532f, 0.181909f, 0.182286f, 0.182663f,
+ 0.183040f, 0.183417f, 0.183794f, 0.184171f, 0.184548f, 0.184925f, 0.185301f, 0.185678f,
+ 0.186055f, 0.186432f, 0.186809f, 0.187185f, 0.187562f, 0.187939f, 0.188315f, 0.188692f,
+ 0.189069f, 0.189445f, 0.189822f, 0.190198f, 0.190575f, 0.190951f, 0.191328f, 0.191704f,
+ 0.192080f, 0.192457f, 0.192833f, 0.193209f, 0.193586f, 0.193962f, 0.194338f, 0.194714f,
+ 0.195090f, 0.195466f, 0.195843f, 0.196219f, 0.196595f, 0.196971f, 0.197347f, 0.197722f,
+ 0.198098f, 0.198474f, 0.198850f, 0.199226f, 0.199602f, 0.199978f, 0.200353f, 0.200729f,
+ 0.201105f, 0.201480f, 0.201856f, 0.202231f, 0.202607f, 0.202983f, 0.203358f, 0.203734f,
+ 0.204109f, 0.204484f, 0.204860f, 0.205235f, 0.205610f, 0.205986f, 0.206361f, 0.206736f,
+ 0.207111f, 0.207487f, 0.207862f, 0.208237f, 0.208612f, 0.208987f, 0.209362f, 0.209737f,
+ 0.210112f, 0.210487f, 0.210862f, 0.211237f, 0.211611f, 0.211986f, 0.212361f, 0.212736f,
+ 0.213110f, 0.213485f, 0.213860f, 0.214234f, 0.214609f, 0.214983f, 0.215358f, 0.215732f,
+ 0.216107f, 0.216481f, 0.216856f, 0.217230f, 0.217604f, 0.217979f, 0.218353f, 0.218727f,
+ 0.219101f, 0.219475f, 0.219850f, 0.220224f, 0.220598f, 0.220972f, 0.221346f, 0.221720f,
+ 0.222094f, 0.222468f, 0.222841f, 0.223215f, 0.223589f, 0.223963f, 0.224337f, 0.224710f,
+ 0.225084f, 0.225458f, 0.225831f, 0.226205f, 0.226578f, 0.226952f, 0.227325f, 0.227699f,
+ 0.228072f, 0.228445f, 0.228819f, 0.229192f, 0.229565f, 0.229939f, 0.230312f, 0.230685f,
+ 0.231058f, 0.231431f, 0.231804f, 0.232177f, 0.232550f, 0.232923f, 0.233296f, 0.233669f,
+ 0.234042f, 0.234415f, 0.234788f, 0.235160f, 0.235533f, 0.235906f, 0.236278f, 0.236651f,
+ 0.237024f, 0.237396f, 0.237769f, 0.238141f, 0.238514f, 0.238886f, 0.239258f, 0.239631f,
+ 0.240003f, 0.240375f, 0.240748f, 0.241120f, 0.241492f, 0.241864f, 0.242236f, 0.242608f,
+ 0.242980f, 0.243352f, 0.243724f, 0.244096f, 0.244468f, 0.244840f, 0.245212f, 0.245583f,
+ 0.245955f, 0.246327f, 0.246698f, 0.247070f, 0.247442f, 0.247813f, 0.248185f, 0.248556f,
+ 0.248928f, 0.249299f, 0.249670f, 0.250042f, 0.250413f, 0.250784f, 0.251155f, 0.251527f,
+ 0.251898f, 0.252269f, 0.252640f, 0.253011f, 0.253382f, 0.253753f, 0.254124f, 0.254495f,
+ 0.254866f, 0.255236f, 0.255607f, 0.255978f, 0.256349f, 0.256719f, 0.257090f, 0.257461f,
+ 0.257831f, 0.258202f, 0.258572f, 0.258943f, 0.259313f, 0.259683f, 0.260054f, 0.260424f,
+ 0.260794f, 0.261164f, 0.261534f, 0.261905f, 0.262275f, 0.262645f, 0.263015f, 0.263385f,
+ 0.263755f, 0.264125f, 0.264494f, 0.264864f, 0.265234f, 0.265604f, 0.265973f, 0.266343f,
+ 0.266713f, 0.267082f, 0.267452f, 0.267821f, 0.268191f, 0.268560f, 0.268930f, 0.269299f,
+ 0.269668f, 0.270038f, 0.270407f, 0.270776f, 0.271145f, 0.271514f, 0.271883f, 0.272252f,
+ 0.272621f, 0.272990f, 0.273359f, 0.273728f, 0.274097f, 0.274466f, 0.274834f, 0.275203f,
+ 0.275572f, 0.275940f, 0.276309f, 0.276678f, 0.277046f, 0.277415f, 0.277783f, 0.278151f,
+ 0.278520f, 0.278888f, 0.279256f, 0.279624f, 0.279993f, 0.280361f, 0.280729f, 0.281097f,
+ 0.281465f, 0.281833f, 0.282201f, 0.282569f, 0.282937f, 0.283304f, 0.283672f, 0.284040f,
+ 0.284408f, 0.284775f, 0.285143f, 0.285510f, 0.285878f, 0.286245f, 0.286613f, 0.286980f,
+ 0.287347f, 0.287715f, 0.288082f, 0.288449f, 0.288816f, 0.289184f, 0.289551f, 0.289918f,
+ 0.290285f, 0.290652f, 0.291019f, 0.291385f, 0.291752f, 0.292119f, 0.292486f, 0.292852f,
+ 0.293219f, 0.293586f, 0.293952f, 0.294319f, 0.294685f, 0.295052f, 0.295418f, 0.295785f,
+ 0.296151f, 0.296517f, 0.296883f, 0.297250f, 0.297616f, 0.297982f, 0.298348f, 0.298714f,
+ 0.299080f, 0.299446f, 0.299812f, 0.300177f, 0.300543f, 0.300909f, 0.301275f, 0.301640f,
+ 0.302006f, 0.302372f, 0.302737f, 0.303103f, 0.303468f, 0.303833f, 0.304199f, 0.304564f,
+ 0.304929f, 0.305294f, 0.305660f, 0.306025f, 0.306390f, 0.306755f, 0.307120f, 0.307485f,
+ 0.307850f, 0.308214f, 0.308579f, 0.308944f, 0.309309f, 0.309673f, 0.310038f, 0.310403f,
+ 0.310767f, 0.311132f, 0.311496f, 0.311860f, 0.312225f, 0.312589f, 0.312953f, 0.313318f,
+ 0.313682f, 0.314046f, 0.314410f, 0.314774f, 0.315138f, 0.315502f, 0.315866f, 0.316230f,
+ 0.316593f, 0.316957f, 0.317321f, 0.317684f, 0.318048f, 0.318412f, 0.318775f, 0.319139f,
+ 0.319502f, 0.319865f, 0.320229f, 0.320592f, 0.320955f, 0.321318f, 0.321682f, 0.322045f,
+ 0.322408f, 0.322771f, 0.323134f, 0.323497f, 0.323859f, 0.324222f, 0.324585f, 0.324948f,
+ 0.325310f, 0.325673f, 0.326035f, 0.326398f, 0.326760f, 0.327123f, 0.327485f, 0.327848f,
+ 0.328210f, 0.328572f, 0.328934f, 0.329296f, 0.329658f, 0.330020f, 0.330382f, 0.330744f,
+ 0.331106f, 0.331468f, 0.331830f, 0.332192f, 0.332553f, 0.332915f, 0.333277f, 0.333638f,
+ 0.334000f, 0.334361f, 0.334722f, 0.335084f, 0.335445f, 0.335806f, 0.336168f, 0.336529f,
+ 0.336890f, 0.337251f, 0.337612f, 0.337973f, 0.338334f, 0.338695f, 0.339055f, 0.339416f,
+ 0.339777f, 0.340138f, 0.340498f, 0.340859f, 0.341219f, 0.341580f, 0.341940f, 0.342300f,
+ 0.342661f, 0.343021f, 0.343381f, 0.343741f, 0.344101f, 0.344461f, 0.344821f, 0.345181f,
+ 0.345541f, 0.345901f, 0.346261f, 0.346621f, 0.346980f, 0.347340f, 0.347700f, 0.348059f,
+ 0.348419f, 0.348778f, 0.349138f, 0.349497f, 0.349856f, 0.350215f, 0.350575f, 0.350934f,
+ 0.351293f, 0.351652f, 0.352011f, 0.352370f, 0.352729f, 0.353087f, 0.353446f, 0.353805f,
+ 0.354164f, 0.354522f, 0.354881f, 0.355239f, 0.355598f, 0.355956f, 0.356314f, 0.356673f,
+ 0.357031f, 0.357389f, 0.357747f, 0.358105f, 0.358463f, 0.358821f, 0.359179f, 0.359537f,
+ 0.359895f, 0.360253f, 0.360611f, 0.360968f, 0.361326f, 0.361683f, 0.362041f, 0.362398f,
+ 0.362756f, 0.363113f, 0.363470f, 0.363828f, 0.364185f, 0.364542f, 0.364899f, 0.365256f,
+ 0.365613f, 0.365970f, 0.366327f, 0.366684f, 0.367040f, 0.367397f, 0.367754f, 0.368110f,
+ 0.368467f, 0.368823f, 0.369180f, 0.369536f, 0.369892f, 0.370249f, 0.370605f, 0.370961f,
+ 0.371317f, 0.371673f, 0.372029f, 0.372385f, 0.372741f, 0.373097f, 0.373453f, 0.373808f,
+ 0.374164f, 0.374520f, 0.374875f, 0.375231f, 0.375586f, 0.375942f, 0.376297f, 0.376652f,
+ 0.377007f, 0.377363f, 0.377718f, 0.378073f, 0.378428f, 0.378783f, 0.379138f, 0.379492f,
+ 0.379847f, 0.380202f, 0.380557f, 0.380911f, 0.381266f, 0.381620f, 0.381975f, 0.382329f,
+ 0.382683f, 0.383038f, 0.383392f, 0.383746f, 0.384100f, 0.384454f, 0.384808f, 0.385162f,
+ 0.385516f, 0.385870f, 0.386224f, 0.386577f, 0.386931f, 0.387285f, 0.387638f, 0.387992f,
+ 0.388345f, 0.388698f, 0.389052f, 0.389405f, 0.389758f, 0.390111f, 0.390464f, 0.390817f,
+ 0.391170f, 0.391523f, 0.391876f, 0.392229f, 0.392582f, 0.392934f, 0.393287f, 0.393640f,
+ 0.393992f, 0.394344f, 0.394697f, 0.395049f, 0.395401f, 0.395754f, 0.396106f, 0.396458f,
+ 0.396810f, 0.397162f, 0.397514f, 0.397866f, 0.398218f, 0.398569f, 0.398921f, 0.399273f,
+ 0.399624f, 0.399976f, 0.400327f, 0.400679f, 0.401030f, 0.401381f, 0.401732f, 0.402084f,
+ 0.402435f, 0.402786f, 0.403137f, 0.403488f, 0.403838f, 0.404189f, 0.404540f, 0.404891f,
+ 0.405241f, 0.405592f, 0.405942f, 0.406293f, 0.406643f, 0.406994f, 0.407344f, 0.407694f,
+ 0.408044f, 0.408394f, 0.408744f, 0.409094f, 0.409444f, 0.409794f, 0.410144f, 0.410493f,
+ 0.410843f, 0.411193f, 0.411542f, 0.411892f, 0.412241f, 0.412591f, 0.412940f, 0.413289f,
+ 0.413638f, 0.413987f, 0.414337f, 0.414685f, 0.415034f, 0.415383f, 0.415732f, 0.416081f,
+ 0.416430f, 0.416778f, 0.417127f, 0.417475f, 0.417824f, 0.418172f, 0.418520f, 0.418869f,
+ 0.419217f, 0.419565f, 0.419913f, 0.420261f, 0.420609f, 0.420957f, 0.421305f, 0.421653f,
+ 0.422000f, 0.422348f, 0.422695f, 0.423043f, 0.423390f, 0.423738f, 0.424085f, 0.424432f,
+ 0.424780f, 0.425127f, 0.425474f, 0.425821f, 0.426168f, 0.426515f, 0.426862f, 0.427208f,
+ 0.427555f, 0.427902f, 0.428248f, 0.428595f, 0.428941f, 0.429288f, 0.429634f, 0.429980f,
+ 0.430326f, 0.430673f, 0.431019f, 0.431365f, 0.431711f, 0.432057f, 0.432402f, 0.432748f,
+ 0.433094f, 0.433439f, 0.433785f, 0.434131f, 0.434476f, 0.434821f, 0.435167f, 0.435512f,
+ 0.435857f, 0.436202f, 0.436547f, 0.436892f, 0.437237f, 0.437582f, 0.437927f, 0.438272f,
+ 0.438616f, 0.438961f, 0.439305f, 0.439650f, 0.439994f, 0.440339f, 0.440683f, 0.441027f,
+ 0.441371f, 0.441715f, 0.442059f, 0.442403f, 0.442747f, 0.443091f, 0.443435f, 0.443779f,
+ 0.444122f, 0.444466f, 0.444809f, 0.445153f, 0.445496f, 0.445839f, 0.446183f, 0.446526f,
+ 0.446869f, 0.447212f, 0.447555f, 0.447898f, 0.448241f, 0.448583f, 0.448926f, 0.449269f,
+ 0.449611f, 0.449954f, 0.450296f, 0.450639f, 0.450981f, 0.451323f, 0.451665f, 0.452008f,
+ 0.452350f, 0.452692f, 0.453033f, 0.453375f, 0.453717f, 0.454059f, 0.454400f, 0.454742f,
+ 0.455084f, 0.455425f, 0.455766f, 0.456108f, 0.456449f, 0.456790f, 0.457131f, 0.457472f,
+ 0.457813f, 0.458154f, 0.458495f, 0.458836f, 0.459177f, 0.459517f, 0.459858f, 0.460198f,
+ 0.460539f, 0.460879f, 0.461219f, 0.461560f, 0.461900f, 0.462240f, 0.462580f, 0.462920f,
+ 0.463260f, 0.463600f, 0.463939f, 0.464279f, 0.464619f, 0.464958f, 0.465298f, 0.465637f,
+ 0.465977f, 0.466316f, 0.466655f, 0.466994f, 0.467333f, 0.467672f, 0.468011f, 0.468350f,
+ 0.468689f, 0.469028f, 0.469366f, 0.469705f, 0.470043f, 0.470382f, 0.470720f, 0.471058f,
+ 0.471397f, 0.471735f, 0.472073f, 0.472411f, 0.472749f, 0.473087f, 0.473425f, 0.473763f,
+ 0.474100f, 0.474438f, 0.474775f, 0.475113f, 0.475450f, 0.475788f, 0.476125f, 0.476462f,
+ 0.476799f, 0.477136f, 0.477473f, 0.477810f, 0.478147f, 0.478484f, 0.478821f, 0.479157f,
+ 0.479494f, 0.479830f, 0.480167f, 0.480503f, 0.480839f, 0.481176f, 0.481512f, 0.481848f,
+ 0.482184f, 0.482520f, 0.482856f, 0.483191f, 0.483527f, 0.483863f, 0.484198f, 0.484534f,
+ 0.484869f, 0.485205f, 0.485540f, 0.485875f, 0.486210f, 0.486545f, 0.486880f, 0.487215f,
+ 0.487550f, 0.487885f, 0.488220f, 0.488554f, 0.488889f, 0.489223f, 0.489558f, 0.489892f,
+ 0.490226f, 0.490561f, 0.490895f, 0.491229f, 0.491563f, 0.491897f, 0.492231f, 0.492564f,
+ 0.492898f, 0.493232f, 0.493565f, 0.493899f, 0.494232f, 0.494566f, 0.494899f, 0.495232f,
+ 0.495565f, 0.495898f, 0.496231f, 0.496564f, 0.496897f, 0.497230f, 0.497562f, 0.497895f,
+ 0.498228f, 0.498560f, 0.498893f, 0.499225f, 0.499557f, 0.499889f, 0.500221f, 0.500553f,
+ 0.500885f, 0.501217f, 0.501549f, 0.501881f, 0.502212f, 0.502544f, 0.502876f, 0.503207f,
+ 0.503538f, 0.503870f, 0.504201f, 0.504532f, 0.504863f, 0.505194f, 0.505525f, 0.505856f,
+ 0.506187f, 0.506517f, 0.506848f, 0.507179f, 0.507509f, 0.507839f, 0.508170f, 0.508500f,
+ 0.508830f, 0.509160f, 0.509490f, 0.509820f, 0.510150f, 0.510480f, 0.510810f, 0.511139f,
+ 0.511469f, 0.511798f, 0.512128f, 0.512457f, 0.512786f, 0.513116f, 0.513445f, 0.513774f,
+ 0.514103f, 0.514432f, 0.514760f, 0.515089f, 0.515418f, 0.515746f, 0.516075f, 0.516403f,
+ 0.516732f, 0.517060f, 0.517388f, 0.517716f, 0.518045f, 0.518372f, 0.518700f, 0.519028f,
+ 0.519356f, 0.519684f, 0.520011f, 0.520339f, 0.520666f, 0.520994f, 0.521321f, 0.521648f,
+ 0.521975f, 0.522302f, 0.522629f, 0.522956f, 0.523283f, 0.523610f, 0.523937f, 0.524263f,
+ 0.524590f, 0.524916f, 0.525243f, 0.525569f, 0.525895f, 0.526221f, 0.526547f, 0.526873f,
+ 0.527199f, 0.527525f, 0.527851f, 0.528176f, 0.528502f, 0.528828f, 0.529153f, 0.529478f,
+ 0.529804f, 0.530129f, 0.530454f, 0.530779f, 0.531104f, 0.531429f, 0.531754f, 0.532078f,
+ 0.532403f, 0.532728f, 0.533052f, 0.533377f, 0.533701f, 0.534025f, 0.534349f, 0.534674f,
+ 0.534998f, 0.535322f, 0.535645f, 0.535969f, 0.536293f, 0.536617f, 0.536940f, 0.537264f,
+ 0.537587f, 0.537910f, 0.538234f, 0.538557f, 0.538880f, 0.539203f, 0.539526f, 0.539849f,
+ 0.540171f, 0.540494f, 0.540817f, 0.541139f, 0.541462f, 0.541784f, 0.542106f, 0.542429f,
+ 0.542751f, 0.543073f, 0.543395f, 0.543717f, 0.544039f, 0.544360f, 0.544682f, 0.545003f,
+ 0.545325f, 0.545646f, 0.545968f, 0.546289f, 0.546610f, 0.546931f, 0.547252f, 0.547573f,
+ 0.547894f, 0.548215f, 0.548536f, 0.548856f, 0.549177f, 0.549497f, 0.549818f, 0.550138f,
+ 0.550458f, 0.550778f, 0.551098f, 0.551418f, 0.551738f, 0.552058f, 0.552378f, 0.552697f,
+ 0.553017f, 0.553336f, 0.553656f, 0.553975f, 0.554294f, 0.554613f, 0.554932f, 0.555251f,
+ 0.555570f, 0.555889f, 0.556208f, 0.556526f, 0.556845f, 0.557164f, 0.557482f, 0.557800f,
+ 0.558119f, 0.558437f, 0.558755f, 0.559073f, 0.559391f, 0.559709f, 0.560026f, 0.560344f,
+ 0.560662f, 0.560979f, 0.561297f, 0.561614f, 0.561931f, 0.562248f, 0.562565f, 0.562882f,
+ 0.563199f, 0.563516f, 0.563833f, 0.564150f, 0.564466f, 0.564783f, 0.565099f, 0.565416f,
+ 0.565732f, 0.566048f, 0.566364f, 0.566680f, 0.566996f, 0.567312f, 0.567628f, 0.567943f,
+ 0.568259f, 0.568574f, 0.568890f, 0.569205f, 0.569521f, 0.569836f, 0.570151f, 0.570466f,
+ 0.570781f, 0.571096f, 0.571410f, 0.571725f, 0.572040f, 0.572354f, 0.572669f, 0.572983f,
+ 0.573297f, 0.573611f, 0.573925f, 0.574239f, 0.574553f, 0.574867f, 0.575181f, 0.575495f,
+ 0.575808f, 0.576122f, 0.576435f, 0.576748f, 0.577062f, 0.577375f, 0.577688f, 0.578001f,
+ 0.578314f, 0.578627f, 0.578939f, 0.579252f, 0.579565f, 0.579877f, 0.580189f, 0.580502f,
+ 0.580814f, 0.581126f, 0.581438f, 0.581750f, 0.582062f, 0.582374f, 0.582685f, 0.582997f,
+ 0.583309f, 0.583620f, 0.583931f, 0.584243f, 0.584554f, 0.584865f, 0.585176f, 0.585487f,
+ 0.585798f, 0.586109f, 0.586419f, 0.586730f, 0.587040f, 0.587351f, 0.587661f, 0.587971f,
+ 0.588282f, 0.588592f, 0.588902f, 0.589212f, 0.589521f, 0.589831f, 0.590141f, 0.590450f,
+ 0.590760f, 0.591069f, 0.591378f, 0.591688f, 0.591997f, 0.592306f, 0.592615f, 0.592924f,
+ 0.593232f, 0.593541f, 0.593850f, 0.594158f, 0.594467f, 0.594775f, 0.595083f, 0.595391f,
+ 0.595699f, 0.596007f, 0.596315f, 0.596623f, 0.596931f, 0.597238f, 0.597546f, 0.597853f,
+ 0.598161f, 0.598468f, 0.598775f, 0.599082f, 0.599389f, 0.599696f, 0.600003f, 0.600310f,
+ 0.600616f, 0.600923f, 0.601230f, 0.601536f, 0.601842f, 0.602148f, 0.602455f, 0.602761f,
+ 0.603067f, 0.603372f, 0.603678f, 0.603984f, 0.604290f, 0.604595f, 0.604900f, 0.605206f,
+ 0.605511f, 0.605816f, 0.606121f, 0.606426f, 0.606731f, 0.607036f, 0.607341f, 0.607645f,
+ 0.607950f, 0.608254f, 0.608559f, 0.608863f, 0.609167f, 0.609471f, 0.609775f, 0.610079f,
+ 0.610383f, 0.610687f, 0.610990f, 0.611294f, 0.611597f, 0.611901f, 0.612204f, 0.612507f,
+ 0.612810f, 0.613113f, 0.613416f, 0.613719f, 0.614022f, 0.614324f, 0.614627f, 0.614929f,
+ 0.615232f, 0.615534f, 0.615836f, 0.616138f, 0.616440f, 0.616742f, 0.617044f, 0.617346f,
+ 0.617647f, 0.617949f, 0.618250f, 0.618552f, 0.618853f, 0.619154f, 0.619455f, 0.619756f,
+ 0.620057f, 0.620358f, 0.620659f, 0.620959f, 0.621260f, 0.621560f, 0.621861f, 0.622161f,
+ 0.622461f, 0.622761f, 0.623061f, 0.623361f, 0.623661f, 0.623961f, 0.624260f, 0.624560f,
+ 0.624860f, 0.625159f, 0.625458f, 0.625757f, 0.626056f, 0.626355f, 0.626654f, 0.626953f,
+ 0.627252f, 0.627550f, 0.627849f, 0.628147f, 0.628446f, 0.628744f, 0.629042f, 0.629340f,
+ 0.629638f, 0.629936f, 0.630234f, 0.630532f, 0.630829f, 0.631127f, 0.631424f, 0.631721f,
+ 0.632019f, 0.632316f, 0.632613f, 0.632910f, 0.633207f, 0.633504f, 0.633800f, 0.634097f,
+ 0.634393f, 0.634690f, 0.634986f, 0.635282f, 0.635578f, 0.635874f, 0.636170f, 0.636466f,
+ 0.636762f, 0.637057f, 0.637353f, 0.637649f, 0.637944f, 0.638239f, 0.638534f, 0.638829f,
+ 0.639124f, 0.639419f, 0.639714f, 0.640009f, 0.640303f, 0.640598f, 0.640892f, 0.641187f,
+ 0.641481f, 0.641775f, 0.642069f, 0.642363f, 0.642657f, 0.642951f, 0.643245f, 0.643538f,
+ 0.643832f, 0.644125f, 0.644418f, 0.644711f, 0.645005f, 0.645298f, 0.645590f, 0.645883f,
+ 0.646176f, 0.646469f, 0.646761f, 0.647054f, 0.647346f, 0.647638f, 0.647930f, 0.648222f,
+ 0.648514f, 0.648806f, 0.649098f, 0.649390f, 0.649681f, 0.649973f, 0.650264f, 0.650555f,
+ 0.650847f, 0.651138f, 0.651429f, 0.651720f, 0.652011f, 0.652301f, 0.652592f, 0.652882f,
+ 0.653173f, 0.653463f, 0.653753f, 0.654044f, 0.654334f, 0.654624f, 0.654913f, 0.655203f,
+ 0.655493f, 0.655782f, 0.656072f, 0.656361f, 0.656651f, 0.656940f, 0.657229f, 0.657518f,
+ 0.657807f, 0.658095f, 0.658384f, 0.658673f, 0.658961f, 0.659250f, 0.659538f, 0.659826f,
+ 0.660114f, 0.660402f, 0.660690f, 0.660978f, 0.661266f, 0.661553f, 0.661841f, 0.662128f,
+ 0.662416f, 0.662703f, 0.662990f, 0.663277f, 0.663564f, 0.663851f, 0.664138f, 0.664424f,
+ 0.664711f, 0.664997f, 0.665284f, 0.665570f, 0.665856f, 0.666142f, 0.666428f, 0.666714f,
+ 0.667000f, 0.667286f, 0.667571f, 0.667857f, 0.668142f, 0.668427f, 0.668712f, 0.668998f,
+ 0.669283f, 0.669567f, 0.669852f, 0.670137f, 0.670422f, 0.670706f, 0.670990f, 0.671275f,
+ 0.671559f, 0.671843f, 0.672127f, 0.672411f, 0.672695f, 0.672978f, 0.673262f, 0.673546f,
+ 0.673829f, 0.674112f, 0.674396f, 0.674679f, 0.674962f, 0.675245f, 0.675527f, 0.675810f,
+ 0.676093f, 0.676375f, 0.676658f, 0.676940f, 0.677222f, 0.677504f, 0.677786f, 0.678068f,
+ 0.678350f, 0.678632f, 0.678913f, 0.679195f, 0.679476f, 0.679758f, 0.680039f, 0.680320f,
+ 0.680601f, 0.680882f, 0.681163f, 0.681443f, 0.681724f, 0.682005f, 0.682285f, 0.682565f,
+ 0.682846f, 0.683126f, 0.683406f, 0.683686f, 0.683965f, 0.684245f, 0.684525f, 0.684804f,
+ 0.685084f, 0.685363f, 0.685642f, 0.685921f, 0.686200f, 0.686479f, 0.686758f, 0.687037f,
+ 0.687315f, 0.687594f, 0.687872f, 0.688151f, 0.688429f, 0.688707f, 0.688985f, 0.689263f,
+ 0.689541f, 0.689818f, 0.690096f, 0.690373f, 0.690651f, 0.690928f, 0.691205f, 0.691482f,
+ 0.691759f, 0.692036f, 0.692313f, 0.692590f, 0.692866f, 0.693143f, 0.693419f, 0.693695f,
+ 0.693971f, 0.694248f, 0.694524f, 0.694799f, 0.695075f, 0.695351f, 0.695626f, 0.695902f,
+ 0.696177f, 0.696452f, 0.696728f, 0.697003f, 0.697277f, 0.697552f, 0.697827f, 0.698102f,
+ 0.698376f, 0.698651f, 0.698925f, 0.699199f, 0.699473f, 0.699747f, 0.700021f, 0.700295f,
+ 0.700569f, 0.700842f, 0.701116f, 0.701389f, 0.701663f, 0.701936f, 0.702209f, 0.702482f,
+ 0.702755f, 0.703028f, 0.703300f, 0.703573f, 0.703845f, 0.704118f, 0.704390f, 0.704662f,
+ 0.704934f, 0.705206f, 0.705478f, 0.705750f, 0.706021f, 0.706293f, 0.706564f, 0.706836f,
+ 0.707107f, 0.707378f, 0.707649f, 0.707920f, 0.708191f, 0.708461f, 0.708732f, 0.709002f,
+ 0.709273f, 0.709543f, 0.709813f, 0.710083f, 0.710353f, 0.710623f, 0.710893f, 0.711163f,
+ 0.711432f, 0.711702f, 0.711971f, 0.712240f, 0.712509f, 0.712778f, 0.713047f, 0.713316f,
+ 0.713585f, 0.713853f, 0.714122f, 0.714390f, 0.714659f, 0.714927f, 0.715195f, 0.715463f,
+ 0.715731f, 0.715999f, 0.716266f, 0.716534f, 0.716801f, 0.717069f, 0.717336f, 0.717603f,
+ 0.717870f, 0.718137f, 0.718404f, 0.718670f, 0.718937f, 0.719204f, 0.719470f, 0.719736f,
+ 0.720003f, 0.720269f, 0.720535f, 0.720800f, 0.721066f, 0.721332f, 0.721597f, 0.721863f,
+ 0.722128f, 0.722393f, 0.722659f, 0.722924f, 0.723188f, 0.723453f, 0.723718f, 0.723983f,
+ 0.724247f, 0.724511f, 0.724776f, 0.725040f, 0.725304f, 0.725568f, 0.725832f, 0.726095f,
+ 0.726359f, 0.726623f, 0.726886f, 0.727149f, 0.727413f, 0.727676f, 0.727939f, 0.728202f,
+ 0.728464f, 0.728727f, 0.728990f, 0.729252f, 0.729514f, 0.729777f, 0.730039f, 0.730301f,
+ 0.730563f, 0.730825f, 0.731086f, 0.731348f, 0.731609f, 0.731871f, 0.732132f, 0.732393f,
+ 0.732654f, 0.732915f, 0.733176f, 0.733437f, 0.733697f, 0.733958f, 0.734218f, 0.734479f,
+ 0.734739f, 0.734999f, 0.735259f, 0.735519f, 0.735779f, 0.736038f, 0.736298f, 0.736557f,
+ 0.736817f, 0.737076f, 0.737335f, 0.737594f, 0.737853f, 0.738112f, 0.738370f, 0.738629f,
+ 0.738887f, 0.739146f, 0.739404f, 0.739662f, 0.739920f, 0.740178f, 0.740436f, 0.740694f,
+ 0.740951f, 0.741209f, 0.741466f, 0.741723f, 0.741980f, 0.742237f, 0.742494f, 0.742751f,
+ 0.743008f, 0.743265f, 0.743521f, 0.743777f, 0.744034f, 0.744290f, 0.744546f, 0.744802f,
+ 0.745058f, 0.745314f, 0.745569f, 0.745825f, 0.746080f, 0.746335f, 0.746591f, 0.746846f,
+ 0.747101f, 0.747355f, 0.747610f, 0.747865f, 0.748119f, 0.748374f, 0.748628f, 0.748882f,
+ 0.749136f, 0.749390f, 0.749644f, 0.749898f, 0.750152f, 0.750405f, 0.750659f, 0.750912f,
+ 0.751165f, 0.751418f, 0.751671f, 0.751924f, 0.752177f, 0.752429f, 0.752682f, 0.752934f,
+ 0.753187f, 0.753439f, 0.753691f, 0.753943f, 0.754195f, 0.754447f, 0.754698f, 0.754950f,
+ 0.755201f, 0.755453f, 0.755704f, 0.755955f, 0.756206f, 0.756457f, 0.756708f, 0.756958f,
+ 0.757209f, 0.757459f, 0.757710f, 0.757960f, 0.758210f, 0.758460f, 0.758710f, 0.758960f,
+ 0.759209f, 0.759459f, 0.759708f, 0.759957f, 0.760207f, 0.760456f, 0.760705f, 0.760954f,
+ 0.761202f, 0.761451f, 0.761700f, 0.761948f, 0.762196f, 0.762444f, 0.762693f, 0.762941f,
+ 0.763188f, 0.763436f, 0.763684f, 0.763931f, 0.764179f, 0.764426f, 0.764673f, 0.764920f,
+ 0.765167f, 0.765414f, 0.765661f, 0.765907f, 0.766154f, 0.766400f, 0.766647f, 0.766893f,
+ 0.767139f, 0.767385f, 0.767631f, 0.767876f, 0.768122f, 0.768368f, 0.768613f, 0.768858f,
+ 0.769103f, 0.769348f, 0.769593f, 0.769838f, 0.770083f, 0.770327f, 0.770572f, 0.770816f,
+ 0.771061f, 0.771305f, 0.771549f, 0.771793f, 0.772036f, 0.772280f, 0.772524f, 0.772767f,
+ 0.773010f, 0.773254f, 0.773497f, 0.773740f, 0.773983f, 0.774225f, 0.774468f, 0.774711f,
+ 0.774953f, 0.775195f, 0.775438f, 0.775680f, 0.775922f, 0.776164f, 0.776405f, 0.776647f,
+ 0.776888f, 0.777130f, 0.777371f, 0.777612f, 0.777853f, 0.778094f, 0.778335f, 0.778576f,
+ 0.778817f, 0.779057f, 0.779297f, 0.779538f, 0.779778f, 0.780018f, 0.780258f, 0.780498f,
+ 0.780737f, 0.780977f, 0.781216f, 0.781456f, 0.781695f, 0.781934f, 0.782173f, 0.782412f,
+ 0.782651f, 0.782889f, 0.783128f, 0.783366f, 0.783605f, 0.783843f, 0.784081f, 0.784319f,
+ 0.784557f, 0.784794f, 0.785032f, 0.785269f, 0.785507f, 0.785744f, 0.785981f, 0.786218f,
+ 0.786455f, 0.786692f, 0.786929f, 0.787165f, 0.787402f, 0.787638f, 0.787874f, 0.788110f,
+ 0.788346f, 0.788582f, 0.788818f, 0.789054f, 0.789289f, 0.789525f, 0.789760f, 0.789995f,
+ 0.790230f, 0.790465f, 0.790700f, 0.790935f, 0.791169f, 0.791404f, 0.791638f, 0.791872f,
+ 0.792107f, 0.792341f, 0.792575f, 0.792808f, 0.793042f, 0.793276f, 0.793509f, 0.793742f,
+ 0.793975f, 0.794209f, 0.794442f, 0.794674f, 0.794907f, 0.795140f, 0.795372f, 0.795605f,
+ 0.795837f, 0.796069f, 0.796301f, 0.796533f, 0.796765f, 0.796996f, 0.797228f, 0.797459f,
+ 0.797691f, 0.797922f, 0.798153f, 0.798384f, 0.798615f, 0.798846f, 0.799076f, 0.799307f,
+ 0.799537f, 0.799768f, 0.799998f, 0.800228f, 0.800458f, 0.800687f, 0.800917f, 0.801147f,
+ 0.801376f, 0.801606f, 0.801835f, 0.802064f, 0.802293f, 0.802522f, 0.802750f, 0.802979f,
+ 0.803208f, 0.803436f, 0.803664f, 0.803892f, 0.804120f, 0.804348f, 0.804576f, 0.804804f,
+ 0.805031f, 0.805259f, 0.805486f, 0.805713f, 0.805940f, 0.806167f, 0.806394f, 0.806621f,
+ 0.806848f, 0.807074f, 0.807300f, 0.807527f, 0.807753f, 0.807979f, 0.808205f, 0.808430f,
+ 0.808656f, 0.808882f, 0.809107f, 0.809332f, 0.809558f, 0.809783f, 0.810008f, 0.810232f,
+ 0.810457f, 0.810682f, 0.810906f, 0.811131f, 0.811355f, 0.811579f, 0.811803f, 0.812027f,
+ 0.812251f, 0.812474f, 0.812698f, 0.812921f, 0.813144f, 0.813368f, 0.813591f, 0.813814f,
+ 0.814036f, 0.814259f, 0.814482f, 0.814704f, 0.814926f, 0.815149f, 0.815371f, 0.815593f,
+ 0.815814f, 0.816036f, 0.816258f, 0.816479f, 0.816701f, 0.816922f, 0.817143f, 0.817364f,
+ 0.817585f, 0.817806f, 0.818026f, 0.818247f, 0.818467f, 0.818687f, 0.818908f, 0.819128f,
+ 0.819348f, 0.819567f, 0.819787f, 0.820007f, 0.820226f, 0.820445f, 0.820664f, 0.820884f,
+ 0.821102f, 0.821321f, 0.821540f, 0.821759f, 0.821977f, 0.822195f, 0.822414f, 0.822632f,
+ 0.822850f, 0.823068f, 0.823285f, 0.823503f, 0.823721f, 0.823938f, 0.824155f, 0.824372f,
+ 0.824589f, 0.824806f, 0.825023f, 0.825240f, 0.825456f, 0.825673f, 0.825889f, 0.826105f,
+ 0.826321f, 0.826537f, 0.826753f, 0.826968f, 0.827184f, 0.827399f, 0.827615f, 0.827830f,
+ 0.828045f, 0.828260f, 0.828475f, 0.828690f, 0.828904f, 0.829119f, 0.829333f, 0.829547f,
+ 0.829761f, 0.829975f, 0.830189f, 0.830403f, 0.830616f, 0.830830f, 0.831043f, 0.831257f,
+ 0.831470f, 0.831683f, 0.831895f, 0.832108f, 0.832321f, 0.832533f, 0.832746f, 0.832958f,
+ 0.833170f, 0.833382f, 0.833594f, 0.833806f, 0.834018f, 0.834229f, 0.834440f, 0.834652f,
+ 0.834863f, 0.835074f, 0.835285f, 0.835496f, 0.835706f, 0.835917f, 0.836127f, 0.836338f,
+ 0.836548f, 0.836758f, 0.836968f, 0.837178f, 0.837387f, 0.837597f, 0.837806f, 0.838015f,
+ 0.838225f, 0.838434f, 0.838643f, 0.838852f, 0.839060f, 0.839269f, 0.839477f, 0.839686f,
+ 0.839894f, 0.840102f, 0.840310f, 0.840518f, 0.840725f, 0.840933f, 0.841140f, 0.841348f,
+ 0.841555f, 0.841762f, 0.841969f, 0.842176f, 0.842383f, 0.842589f, 0.842796f, 0.843002f,
+ 0.843208f, 0.843414f, 0.843620f, 0.843826f, 0.844032f, 0.844238f, 0.844443f, 0.844648f,
+ 0.844854f, 0.845059f, 0.845264f, 0.845469f, 0.845673f, 0.845878f, 0.846082f, 0.846287f,
+ 0.846491f, 0.846695f, 0.846899f, 0.847103f, 0.847307f, 0.847510f, 0.847714f, 0.847917f,
+ 0.848120f, 0.848323f, 0.848526f, 0.848729f, 0.848932f, 0.849135f, 0.849337f, 0.849540f,
+ 0.849742f, 0.849944f, 0.850146f, 0.850348f, 0.850549f, 0.850751f, 0.850953f, 0.851154f,
+ 0.851355f, 0.851556f, 0.851757f, 0.851958f, 0.852159f, 0.852360f, 0.852560f, 0.852760f,
+ 0.852961f, 0.853161f, 0.853361f, 0.853561f, 0.853760f, 0.853960f, 0.854159f, 0.854359f,
+ 0.854558f, 0.854757f, 0.854956f, 0.855155f, 0.855354f, 0.855552f, 0.855751f, 0.855949f,
+ 0.856147f, 0.856345f, 0.856543f, 0.856741f, 0.856939f, 0.857137f, 0.857334f, 0.857531f,
+ 0.857729f, 0.857926f, 0.858123f, 0.858320f, 0.858516f, 0.858713f, 0.858909f, 0.859106f,
+ 0.859302f, 0.859498f, 0.859694f, 0.859890f, 0.860085f, 0.860281f, 0.860476f, 0.860672f,
+ 0.860867f, 0.861062f, 0.861257f, 0.861452f, 0.861646f, 0.861841f, 0.862035f, 0.862230f,
+ 0.862424f, 0.862618f, 0.862812f, 0.863006f, 0.863199f, 0.863393f, 0.863586f, 0.863780f,
+ 0.863973f, 0.864166f, 0.864359f, 0.864552f, 0.864744f, 0.864937f, 0.865129f, 0.865321f,
+ 0.865514f, 0.865706f, 0.865898f, 0.866089f, 0.866281f, 0.866472f, 0.866664f, 0.866855f,
+ 0.867046f, 0.867237f, 0.867428f, 0.867619f, 0.867809f, 0.868000f, 0.868190f, 0.868381f,
+ 0.868571f, 0.868761f, 0.868951f, 0.869140f, 0.869330f, 0.869519f, 0.869709f, 0.869898f,
+ 0.870087f, 0.870276f, 0.870465f, 0.870654f, 0.870842f, 0.871031f, 0.871219f, 0.871407f,
+ 0.871595f, 0.871783f, 0.871971f, 0.872159f, 0.872346f, 0.872534f, 0.872721f, 0.872908f,
+ 0.873095f, 0.873282f, 0.873469f, 0.873655f, 0.873842f, 0.874028f, 0.874215f, 0.874401f,
+ 0.874587f, 0.874773f, 0.874958f, 0.875144f, 0.875329f, 0.875515f, 0.875700f, 0.875885f,
+ 0.876070f, 0.876255f, 0.876440f, 0.876624f, 0.876809f, 0.876993f, 0.877177f, 0.877361f,
+ 0.877545f, 0.877729f, 0.877913f, 0.878096f, 0.878280f, 0.878463f, 0.878646f, 0.878829f,
+ 0.879012f, 0.879195f, 0.879378f, 0.879560f, 0.879743f, 0.879925f, 0.880107f, 0.880289f,
+ 0.880471f, 0.880653f, 0.880834f, 0.881016f, 0.881197f, 0.881378f, 0.881559f, 0.881740f,
+ 0.881921f, 0.882102f, 0.882283f, 0.882463f, 0.882643f, 0.882824f, 0.883004f, 0.883184f,
+ 0.883363f, 0.883543f, 0.883723f, 0.883902f, 0.884081f, 0.884260f, 0.884439f, 0.884618f,
+ 0.884797f, 0.884976f, 0.885154f, 0.885333f, 0.885511f, 0.885689f, 0.885867f, 0.886045f,
+ 0.886223f, 0.886400f, 0.886578f, 0.886755f, 0.886932f, 0.887109f, 0.887286f, 0.887463f,
+ 0.887640f, 0.887816f, 0.887993f, 0.888169f, 0.888345f, 0.888521f, 0.888697f, 0.888873f,
+ 0.889048f, 0.889224f, 0.889399f, 0.889574f, 0.889750f, 0.889925f, 0.890099f, 0.890274f,
+ 0.890449f, 0.890623f, 0.890797f, 0.890972f, 0.891146f, 0.891320f, 0.891493f, 0.891667f,
+ 0.891841f, 0.892014f, 0.892187f, 0.892361f, 0.892534f, 0.892706f, 0.892879f, 0.893052f,
+ 0.893224f, 0.893397f, 0.893569f, 0.893741f, 0.893913f, 0.894085f, 0.894256f, 0.894428f,
+ 0.894599f, 0.894771f, 0.894942f, 0.895113f, 0.895284f, 0.895455f, 0.895625f, 0.895796f,
+ 0.895966f, 0.896137f, 0.896307f, 0.896477f, 0.896646f, 0.896816f, 0.896986f, 0.897155f,
+ 0.897325f, 0.897494f, 0.897663f, 0.897832f, 0.898001f, 0.898169f, 0.898338f, 0.898506f,
+ 0.898674f, 0.898843f, 0.899011f, 0.899179f, 0.899346f, 0.899514f, 0.899681f, 0.899849f,
+ 0.900016f, 0.900183f, 0.900350f, 0.900517f, 0.900683f, 0.900850f, 0.901016f, 0.901183f,
+ 0.901349f, 0.901515f, 0.901681f, 0.901847f, 0.902012f, 0.902178f, 0.902343f, 0.902508f,
+ 0.902673f, 0.902838f, 0.903003f, 0.903168f, 0.903332f, 0.903497f, 0.903661f, 0.903825f,
+ 0.903989f, 0.904153f, 0.904317f, 0.904481f, 0.904644f, 0.904807f, 0.904971f, 0.905134f,
+ 0.905297f, 0.905460f, 0.905622f, 0.905785f, 0.905947f, 0.906110f, 0.906272f, 0.906434f,
+ 0.906596f, 0.906757f, 0.906919f, 0.907081f, 0.907242f, 0.907403f, 0.907564f, 0.907725f,
+ 0.907886f, 0.908047f, 0.908207f, 0.908368f, 0.908528f, 0.908688f, 0.908848f, 0.909008f,
+ 0.909168f, 0.909328f, 0.909487f, 0.909646f, 0.909806f, 0.909965f, 0.910124f, 0.910283f,
+ 0.910441f, 0.910600f, 0.910758f, 0.910917f, 0.911075f, 0.911233f, 0.911391f, 0.911548f,
+ 0.911706f, 0.911864f, 0.912021f, 0.912178f, 0.912335f, 0.912492f, 0.912649f, 0.912806f,
+ 0.912962f, 0.913119f, 0.913275f, 0.913431f, 0.913587f, 0.913743f, 0.913899f, 0.914054f,
+ 0.914210f, 0.914365f, 0.914520f, 0.914675f, 0.914830f, 0.914985f, 0.915140f, 0.915294f,
+ 0.915449f, 0.915603f, 0.915757f, 0.915911f, 0.916065f, 0.916219f, 0.916372f, 0.916526f,
+ 0.916679f, 0.916832f, 0.916985f, 0.917138f, 0.917291f, 0.917444f, 0.917596f, 0.917749f,
+ 0.917901f, 0.918053f, 0.918205f, 0.918357f, 0.918508f, 0.918660f, 0.918811f, 0.918963f,
+ 0.919114f, 0.919265f, 0.919416f, 0.919567f, 0.919717f, 0.919868f, 0.920018f, 0.920168f,
+ 0.920318f, 0.920468f, 0.920618f, 0.920768f, 0.920917f, 0.921067f, 0.921216f, 0.921365f,
+ 0.921514f, 0.921663f, 0.921812f, 0.921960f, 0.922109f, 0.922257f, 0.922405f, 0.922553f,
+ 0.922701f, 0.922849f, 0.922997f, 0.923144f, 0.923291f, 0.923439f, 0.923586f, 0.923733f,
+ 0.923880f, 0.924026f, 0.924173f, 0.924319f, 0.924465f, 0.924612f, 0.924758f, 0.924904f,
+ 0.925049f, 0.925195f, 0.925340f, 0.925486f, 0.925631f, 0.925776f, 0.925921f, 0.926066f,
+ 0.926210f, 0.926355f, 0.926499f, 0.926643f, 0.926787f, 0.926931f, 0.927075f, 0.927219f,
+ 0.927363f, 0.927506f, 0.927649f, 0.927792f, 0.927935f, 0.928078f, 0.928221f, 0.928364f,
+ 0.928506f, 0.928648f, 0.928791f, 0.928933f, 0.929075f, 0.929216f, 0.929358f, 0.929500f,
+ 0.929641f, 0.929782f, 0.929923f, 0.930064f, 0.930205f, 0.930346f, 0.930486f, 0.930627f,
+ 0.930767f, 0.930907f, 0.931047f, 0.931187f, 0.931327f, 0.931466f, 0.931606f, 0.931745f,
+ 0.931884f, 0.932023f, 0.932162f, 0.932301f, 0.932440f, 0.932578f, 0.932716f, 0.932855f,
+ 0.932993f, 0.933131f, 0.933269f, 0.933406f, 0.933544f, 0.933681f, 0.933818f, 0.933956f,
+ 0.934093f, 0.934229f, 0.934366f, 0.934503f, 0.934639f, 0.934775f, 0.934912f, 0.935048f,
+ 0.935184f, 0.935319f, 0.935455f, 0.935590f, 0.935726f, 0.935861f, 0.935996f, 0.936131f,
+ 0.936266f, 0.936400f, 0.936535f, 0.936669f, 0.936803f, 0.936938f, 0.937072f, 0.937205f,
+ 0.937339f, 0.937473f, 0.937606f, 0.937739f, 0.937872f, 0.938005f, 0.938138f, 0.938271f,
+ 0.938404f, 0.938536f, 0.938668f, 0.938800f, 0.938932f, 0.939064f, 0.939196f, 0.939328f,
+ 0.939459f, 0.939591f, 0.939722f, 0.939853f, 0.939984f, 0.940115f, 0.940245f, 0.940376f,
+ 0.940506f, 0.940636f, 0.940766f, 0.940896f, 0.941026f, 0.941156f, 0.941285f, 0.941415f,
+ 0.941544f, 0.941673f, 0.941802f, 0.941931f, 0.942060f, 0.942188f, 0.942317f, 0.942445f,
+ 0.942573f, 0.942701f, 0.942829f, 0.942957f, 0.943084f, 0.943212f, 0.943339f, 0.943466f,
+ 0.943593f, 0.943720f, 0.943847f, 0.943974f, 0.944100f, 0.944227f, 0.944353f, 0.944479f,
+ 0.944605f, 0.944731f, 0.944856f, 0.944982f, 0.945107f, 0.945232f, 0.945358f, 0.945482f,
+ 0.945607f, 0.945732f, 0.945857f, 0.945981f, 0.946105f, 0.946229f, 0.946353f, 0.946477f,
+ 0.946601f, 0.946724f, 0.946848f, 0.946971f, 0.947094f, 0.947217f, 0.947340f, 0.947463f,
+ 0.947586f, 0.947708f, 0.947830f, 0.947953f, 0.948075f, 0.948196f, 0.948318f, 0.948440f,
+ 0.948561f, 0.948683f, 0.948804f, 0.948925f, 0.949046f, 0.949167f, 0.949287f, 0.949408f,
+ 0.949528f, 0.949648f, 0.949768f, 0.949888f, 0.950008f, 0.950128f, 0.950247f, 0.950367f,
+ 0.950486f, 0.950605f, 0.950724f, 0.950843f, 0.950962f, 0.951080f, 0.951199f, 0.951317f,
+ 0.951435f, 0.951553f, 0.951671f, 0.951789f, 0.951906f, 0.952024f, 0.952141f, 0.952258f,
+ 0.952375f, 0.952492f, 0.952609f, 0.952725f, 0.952842f, 0.952958f, 0.953074f, 0.953190f,
+ 0.953306f, 0.953422f, 0.953537f, 0.953653f, 0.953768f, 0.953883f, 0.953998f, 0.954113f,
+ 0.954228f, 0.954343f, 0.954457f, 0.954572f, 0.954686f, 0.954800f, 0.954914f, 0.955028f,
+ 0.955141f, 0.955255f, 0.955368f, 0.955481f, 0.955594f, 0.955707f, 0.955820f, 0.955933f,
+ 0.956045f, 0.956158f, 0.956270f, 0.956382f, 0.956494f, 0.956606f, 0.956717f, 0.956829f,
+ 0.956940f, 0.957052f, 0.957163f, 0.957274f, 0.957385f, 0.957495f, 0.957606f, 0.957716f,
+ 0.957826f, 0.957937f, 0.958046f, 0.958156f, 0.958266f, 0.958376f, 0.958485f, 0.958594f,
+ 0.958703f, 0.958812f, 0.958921f, 0.959030f, 0.959139f, 0.959247f, 0.959355f, 0.959463f,
+ 0.959572f, 0.959679f, 0.959787f, 0.959895f, 0.960002f, 0.960109f, 0.960217f, 0.960324f,
+ 0.960431f, 0.960537f, 0.960644f, 0.960750f, 0.960857f, 0.960963f, 0.961069f, 0.961175f,
+ 0.961280f, 0.961386f, 0.961492f, 0.961597f, 0.961702f, 0.961807f, 0.961912f, 0.962017f,
+ 0.962121f, 0.962226f, 0.962330f, 0.962434f, 0.962538f, 0.962642f, 0.962746f, 0.962850f,
+ 0.962953f, 0.963057f, 0.963160f, 0.963263f, 0.963366f, 0.963469f, 0.963571f, 0.963674f,
+ 0.963776f, 0.963878f, 0.963980f, 0.964082f, 0.964184f, 0.964286f, 0.964387f, 0.964489f,
+ 0.964590f, 0.964691f, 0.964792f, 0.964893f, 0.964993f, 0.965094f, 0.965194f, 0.965294f,
+ 0.965394f, 0.965494f, 0.965594f, 0.965694f, 0.965793f, 0.965893f, 0.965992f, 0.966091f,
+ 0.966190f, 0.966289f, 0.966387f, 0.966486f, 0.966584f, 0.966683f, 0.966781f, 0.966879f,
+ 0.966976f, 0.967074f, 0.967172f, 0.967269f, 0.967366f, 0.967463f, 0.967560f, 0.967657f,
+ 0.967754f, 0.967850f, 0.967947f, 0.968043f, 0.968139f, 0.968235f, 0.968331f, 0.968427f,
+ 0.968522f, 0.968617f, 0.968713f, 0.968808f, 0.968903f, 0.968998f, 0.969092f, 0.969187f,
+ 0.969281f, 0.969375f, 0.969470f, 0.969564f, 0.969657f, 0.969751f, 0.969845f, 0.969938f,
+ 0.970031f, 0.970124f, 0.970217f, 0.970310f, 0.970403f, 0.970495f, 0.970588f, 0.970680f,
+ 0.970772f, 0.970864f, 0.970956f, 0.971048f, 0.971139f, 0.971231f, 0.971322f, 0.971413f,
+ 0.971504f, 0.971595f, 0.971685f, 0.971776f, 0.971866f, 0.971957f, 0.972047f, 0.972137f,
+ 0.972227f, 0.972316f, 0.972406f, 0.972495f, 0.972584f, 0.972673f, 0.972762f, 0.972851f,
+ 0.972940f, 0.973028f, 0.973117f, 0.973205f, 0.973293f, 0.973381f, 0.973469f, 0.973557f,
+ 0.973644f, 0.973732f, 0.973819f, 0.973906f, 0.973993f, 0.974080f, 0.974166f, 0.974253f,
+ 0.974339f, 0.974426f, 0.974512f, 0.974598f, 0.974684f, 0.974769f, 0.974855f, 0.974940f,
+ 0.975025f, 0.975110f, 0.975195f, 0.975280f, 0.975365f, 0.975449f, 0.975534f, 0.975618f,
+ 0.975702f, 0.975786f, 0.975870f, 0.975954f, 0.976037f, 0.976120f, 0.976204f, 0.976287f,
+ 0.976370f, 0.976453f, 0.976535f, 0.976618f, 0.976700f, 0.976782f, 0.976864f, 0.976946f,
+ 0.977028f, 0.977110f, 0.977191f, 0.977273f, 0.977354f, 0.977435f, 0.977516f, 0.977597f,
+ 0.977677f, 0.977758f, 0.977838f, 0.977918f, 0.977998f, 0.978078f, 0.978158f, 0.978238f,
+ 0.978317f, 0.978397f, 0.978476f, 0.978555f, 0.978634f, 0.978713f, 0.978791f, 0.978870f,
+ 0.978948f, 0.979026f, 0.979104f, 0.979182f, 0.979260f, 0.979338f, 0.979415f, 0.979493f,
+ 0.979570f, 0.979647f, 0.979724f, 0.979800f, 0.979877f, 0.979954f, 0.980030f, 0.980106f,
+ 0.980182f, 0.980258f, 0.980334f, 0.980409f, 0.980485f, 0.980560f, 0.980635f, 0.980710f,
+ 0.980785f, 0.980860f, 0.980935f, 0.981009f, 0.981083f, 0.981158f, 0.981232f, 0.981305f,
+ 0.981379f, 0.981453f, 0.981526f, 0.981600f, 0.981673f, 0.981746f, 0.981819f, 0.981891f,
+ 0.981964f, 0.982036f, 0.982109f, 0.982181f, 0.982253f, 0.982325f, 0.982396f, 0.982468f,
+ 0.982539f, 0.982611f, 0.982682f, 0.982753f, 0.982824f, 0.982894f, 0.982965f, 0.983035f,
+ 0.983105f, 0.983176f, 0.983246f, 0.983315f, 0.983385f, 0.983455f, 0.983524f, 0.983593f,
+ 0.983662f, 0.983731f, 0.983800f, 0.983869f, 0.983937f, 0.984006f, 0.984074f, 0.984142f,
+ 0.984210f, 0.984278f, 0.984346f, 0.984413f, 0.984480f, 0.984548f, 0.984615f, 0.984682f,
+ 0.984748f, 0.984815f, 0.984882f, 0.984948f, 0.985014f, 0.985080f, 0.985146f, 0.985212f,
+ 0.985278f, 0.985343f, 0.985408f, 0.985474f, 0.985539f, 0.985604f, 0.985668f, 0.985733f,
+ 0.985798f, 0.985862f, 0.985926f, 0.985990f, 0.986054f, 0.986118f, 0.986181f, 0.986245f,
+ 0.986308f, 0.986371f, 0.986434f, 0.986497f, 0.986560f, 0.986623f, 0.986685f, 0.986747f,
+ 0.986809f, 0.986871f, 0.986933f, 0.986995f, 0.987057f, 0.987118f, 0.987179f, 0.987240f,
+ 0.987301f, 0.987362f, 0.987423f, 0.987484f, 0.987544f, 0.987604f, 0.987664f, 0.987724f,
+ 0.987784f, 0.987844f, 0.987903f, 0.987963f, 0.988022f, 0.988081f, 0.988140f, 0.988199f,
+ 0.988258f, 0.988316f, 0.988374f, 0.988433f, 0.988491f, 0.988549f, 0.988607f, 0.988664f,
+ 0.988722f, 0.988779f, 0.988836f, 0.988893f, 0.988950f, 0.989007f, 0.989064f, 0.989120f,
+ 0.989177f, 0.989233f, 0.989289f, 0.989345f, 0.989400f, 0.989456f, 0.989511f, 0.989567f,
+ 0.989622f, 0.989677f, 0.989732f, 0.989787f, 0.989841f, 0.989896f, 0.989950f, 0.990004f,
+ 0.990058f, 0.990112f, 0.990166f, 0.990219f, 0.990273f, 0.990326f, 0.990379f, 0.990432f,
+ 0.990485f, 0.990538f, 0.990590f, 0.990643f, 0.990695f, 0.990747f, 0.990799f, 0.990851f,
+ 0.990903f, 0.990954f, 0.991006f, 0.991057f, 0.991108f, 0.991159f, 0.991210f, 0.991260f,
+ 0.991311f, 0.991361f, 0.991411f, 0.991462f, 0.991511f, 0.991561f, 0.991611f, 0.991660f,
+ 0.991710f, 0.991759f, 0.991808f, 0.991857f, 0.991906f, 0.991954f, 0.992003f, 0.992051f,
+ 0.992099f, 0.992147f, 0.992195f, 0.992243f, 0.992291f, 0.992338f, 0.992385f, 0.992433f,
+ 0.992480f, 0.992526f, 0.992573f, 0.992620f, 0.992666f, 0.992712f, 0.992759f, 0.992805f,
+ 0.992850f, 0.992896f, 0.992942f, 0.992987f, 0.993032f, 0.993077f, 0.993122f, 0.993167f,
+ 0.993212f, 0.993257f, 0.993301f, 0.993345f, 0.993389f, 0.993433f, 0.993477f, 0.993521f,
+ 0.993564f, 0.993608f, 0.993651f, 0.993694f, 0.993737f, 0.993779f, 0.993822f, 0.993865f,
+ 0.993907f, 0.993949f, 0.993991f, 0.994033f, 0.994075f, 0.994116f, 0.994158f, 0.994199f,
+ 0.994240f, 0.994281f, 0.994322f, 0.994363f, 0.994404f, 0.994444f, 0.994484f, 0.994525f,
+ 0.994565f, 0.994604f, 0.994644f, 0.994684f, 0.994723f, 0.994762f, 0.994802f, 0.994841f,
+ 0.994879f, 0.994918f, 0.994957f, 0.994995f, 0.995033f, 0.995071f, 0.995109f, 0.995147f,
+ 0.995185f, 0.995222f, 0.995260f, 0.995297f, 0.995334f, 0.995371f, 0.995408f, 0.995444f,
+ 0.995481f, 0.995517f, 0.995553f, 0.995589f, 0.995625f, 0.995661f, 0.995697f, 0.995732f,
+ 0.995767f, 0.995803f, 0.995838f, 0.995872f, 0.995907f, 0.995942f, 0.995976f, 0.996011f,
+ 0.996045f, 0.996079f, 0.996113f, 0.996146f, 0.996180f, 0.996213f, 0.996247f, 0.996280f,
+ 0.996313f, 0.996345f, 0.996378f, 0.996411f, 0.996443f, 0.996475f, 0.996507f, 0.996539f,
+ 0.996571f, 0.996603f, 0.996634f, 0.996666f, 0.996697f, 0.996728f, 0.996759f, 0.996790f,
+ 0.996820f, 0.996851f, 0.996881f, 0.996911f, 0.996941f, 0.996971f, 0.997001f, 0.997031f,
+ 0.997060f, 0.997089f, 0.997119f, 0.997148f, 0.997176f, 0.997205f, 0.997234f, 0.997262f,
+ 0.997290f, 0.997319f, 0.997347f, 0.997374f, 0.997402f, 0.997430f, 0.997457f, 0.997484f,
+ 0.997511f, 0.997538f, 0.997565f, 0.997592f, 0.997618f, 0.997645f, 0.997671f, 0.997697f,
+ 0.997723f, 0.997749f, 0.997774f, 0.997800f, 0.997825f, 0.997851f, 0.997876f, 0.997901f,
+ 0.997925f, 0.997950f, 0.997974f, 0.997999f, 0.998023f, 0.998047f, 0.998071f, 0.998094f,
+ 0.998118f, 0.998142f, 0.998165f, 0.998188f, 0.998211f, 0.998234f, 0.998257f, 0.998279f,
+ 0.998302f, 0.998324f, 0.998346f, 0.998368f, 0.998390f, 0.998411f, 0.998433f, 0.998454f,
+ 0.998476f, 0.998497f, 0.998518f, 0.998538f, 0.998559f, 0.998580f, 0.998600f, 0.998620f,
+ 0.998640f, 0.998660f, 0.998680f, 0.998700f, 0.998719f, 0.998738f, 0.998758f, 0.998777f,
+ 0.998795f, 0.998814f, 0.998833f, 0.998851f, 0.998870f, 0.998888f, 0.998906f, 0.998924f,
+ 0.998941f, 0.998959f, 0.998976f, 0.998994f, 0.999011f, 0.999028f, 0.999044f, 0.999061f,
+ 0.999078f, 0.999094f, 0.999110f, 0.999126f, 0.999142f, 0.999158f, 0.999174f, 0.999189f,
+ 0.999205f, 0.999220f, 0.999235f, 0.999250f, 0.999265f, 0.999279f, 0.999294f, 0.999308f,
+ 0.999322f, 0.999336f, 0.999350f, 0.999364f, 0.999378f, 0.999391f, 0.999404f, 0.999418f,
+ 0.999431f, 0.999443f, 0.999456f, 0.999469f, 0.999481f, 0.999493f, 0.999506f, 0.999518f,
+ 0.999529f, 0.999541f, 0.999553f, 0.999564f, 0.999575f, 0.999586f, 0.999597f, 0.999608f,
+ 0.999619f, 0.999629f, 0.999640f, 0.999650f, 0.999660f, 0.999670f, 0.999680f, 0.999689f,
+ 0.999699f, 0.999708f, 0.999717f, 0.999726f, 0.999735f, 0.999744f, 0.999753f, 0.999761f,
+ 0.999769f, 0.999778f, 0.999786f, 0.999793f, 0.999801f, 0.999809f, 0.999816f, 0.999823f,
+ 0.999831f, 0.999838f, 0.999844f, 0.999851f, 0.999858f, 0.999864f, 0.999870f, 0.999876f,
+ 0.999882f, 0.999888f, 0.999894f, 0.999899f, 0.999905f, 0.999910f, 0.999915f, 0.999920f,
+ 0.999925f, 0.999929f, 0.999934f, 0.999938f, 0.999942f, 0.999946f, 0.999950f, 0.999954f,
+ 0.999958f, 0.999961f, 0.999964f, 0.999968f, 0.999971f, 0.999973f, 0.999976f, 0.999979f,
+ 0.999981f, 0.999983f, 0.999986f, 0.999988f, 0.999989f, 0.999991f, 0.999993f, 0.999994f,
+ 0.999995f, 0.999996f, 0.999997f, 0.999998f, 0.999999f, 0.999999f, 1.000000f, 1.000000
+};
+
+static const float cosTable32768[16384] = {
+ 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 0.999999f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999998f, 0.999998f, 0.999997f, 0.999997f, 0.999996f, 0.999996f,
+ 0.999995f, 0.999995f, 0.999994f, 0.999993f, 0.999993f, 0.999992f, 0.999991f, 0.999990f,
+ 0.999989f, 0.999988f, 0.999988f, 0.999987f, 0.999986f, 0.999985f, 0.999983f, 0.999982f,
+ 0.999981f, 0.999980f, 0.999979f, 0.999977f, 0.999976f, 0.999975f, 0.999973f, 0.999972f,
+ 0.999971f, 0.999969f, 0.999968f, 0.999966f, 0.999964f, 0.999963f, 0.999961f, 0.999959f,
+ 0.999958f, 0.999956f, 0.999954f, 0.999952f, 0.999950f, 0.999948f, 0.999946f, 0.999944f,
+ 0.999942f, 0.999940f, 0.999938f, 0.999936f, 0.999934f, 0.999932f, 0.999929f, 0.999927f,
+ 0.999925f, 0.999922f, 0.999920f, 0.999917f, 0.999915f, 0.999913f, 0.999910f, 0.999907f,
+ 0.999905f, 0.999902f, 0.999899f, 0.999897f, 0.999894f, 0.999891f, 0.999888f, 0.999885f,
+ 0.999882f, 0.999879f, 0.999876f, 0.999873f, 0.999870f, 0.999867f, 0.999864f, 0.999861f,
+ 0.999858f, 0.999854f, 0.999851f, 0.999848f, 0.999844f, 0.999841f, 0.999838f, 0.999834f,
+ 0.999831f, 0.999827f, 0.999823f, 0.999820f, 0.999816f, 0.999812f, 0.999809f, 0.999805f,
+ 0.999801f, 0.999797f, 0.999793f, 0.999790f, 0.999786f, 0.999782f, 0.999778f, 0.999774f,
+ 0.999769f, 0.999765f, 0.999761f, 0.999757f, 0.999753f, 0.999748f, 0.999744f, 0.999740f,
+ 0.999735f, 0.999731f, 0.999726f, 0.999722f, 0.999717f, 0.999713f, 0.999708f, 0.999704f,
+ 0.999699f, 0.999694f, 0.999689f, 0.999685f, 0.999680f, 0.999675f, 0.999670f, 0.999665f,
+ 0.999660f, 0.999655f, 0.999650f, 0.999645f, 0.999640f, 0.999635f, 0.999629f, 0.999624f,
+ 0.999619f, 0.999614f, 0.999608f, 0.999603f, 0.999597f, 0.999592f, 0.999586f, 0.999581f,
+ 0.999575f, 0.999570f, 0.999564f, 0.999558f, 0.999553f, 0.999547f, 0.999541f, 0.999535f,
+ 0.999529f, 0.999524f, 0.999518f, 0.999512f, 0.999506f, 0.999500f, 0.999493f, 0.999487f,
+ 0.999481f, 0.999475f, 0.999469f, 0.999462f, 0.999456f, 0.999450f, 0.999443f, 0.999437f,
+ 0.999431f, 0.999424f, 0.999418f, 0.999411f, 0.999404f, 0.999398f, 0.999391f, 0.999384f,
+ 0.999378f, 0.999371f, 0.999364f, 0.999357f, 0.999350f, 0.999343f, 0.999336f, 0.999329f,
+ 0.999322f, 0.999315f, 0.999308f, 0.999301f, 0.999294f, 0.999287f, 0.999279f, 0.999272f,
+ 0.999265f, 0.999257f, 0.999250f, 0.999243f, 0.999235f, 0.999228f, 0.999220f, 0.999212f,
+ 0.999205f, 0.999197f, 0.999189f, 0.999182f, 0.999174f, 0.999166f, 0.999158f, 0.999150f,
+ 0.999142f, 0.999134f, 0.999126f, 0.999118f, 0.999110f, 0.999102f, 0.999094f, 0.999086f,
+ 0.999078f, 0.999069f, 0.999061f, 0.999053f, 0.999044f, 0.999036f, 0.999028f, 0.999019f,
+ 0.999011f, 0.999002f, 0.998994f, 0.998985f, 0.998976f, 0.998968f, 0.998959f, 0.998950f,
+ 0.998941f, 0.998932f, 0.998924f, 0.998915f, 0.998906f, 0.998897f, 0.998888f, 0.998879f,
+ 0.998870f, 0.998860f, 0.998851f, 0.998842f, 0.998833f, 0.998824f, 0.998814f, 0.998805f,
+ 0.998795f, 0.998786f, 0.998777f, 0.998767f, 0.998758f, 0.998748f, 0.998738f, 0.998729f,
+ 0.998719f, 0.998709f, 0.998700f, 0.998690f, 0.998680f, 0.998670f, 0.998660f, 0.998650f,
+ 0.998640f, 0.998630f, 0.998620f, 0.998610f, 0.998600f, 0.998590f, 0.998580f, 0.998569f,
+ 0.998559f, 0.998549f, 0.998538f, 0.998528f, 0.998518f, 0.998507f, 0.998497f, 0.998486f,
+ 0.998476f, 0.998465f, 0.998454f, 0.998444f, 0.998433f, 0.998422f, 0.998411f, 0.998401f,
+ 0.998390f, 0.998379f, 0.998368f, 0.998357f, 0.998346f, 0.998335f, 0.998324f, 0.998313f,
+ 0.998302f, 0.998290f, 0.998279f, 0.998268f, 0.998257f, 0.998245f, 0.998234f, 0.998222f,
+ 0.998211f, 0.998200f, 0.998188f, 0.998176f, 0.998165f, 0.998153f, 0.998142f, 0.998130f,
+ 0.998118f, 0.998106f, 0.998094f, 0.998083f, 0.998071f, 0.998059f, 0.998047f, 0.998035f,
+ 0.998023f, 0.998011f, 0.997999f, 0.997987f, 0.997974f, 0.997962f, 0.997950f, 0.997938f,
+ 0.997925f, 0.997913f, 0.997901f, 0.997888f, 0.997876f, 0.997863f, 0.997851f, 0.997838f,
+ 0.997825f, 0.997813f, 0.997800f, 0.997787f, 0.997774f, 0.997762f, 0.997749f, 0.997736f,
+ 0.997723f, 0.997710f, 0.997697f, 0.997684f, 0.997671f, 0.997658f, 0.997645f, 0.997632f,
+ 0.997618f, 0.997605f, 0.997592f, 0.997579f, 0.997565f, 0.997552f, 0.997538f, 0.997525f,
+ 0.997511f, 0.997498f, 0.997484f, 0.997471f, 0.997457f, 0.997443f, 0.997430f, 0.997416f,
+ 0.997402f, 0.997388f, 0.997374f, 0.997361f, 0.997347f, 0.997333f, 0.997319f, 0.997305f,
+ 0.997290f, 0.997276f, 0.997262f, 0.997248f, 0.997234f, 0.997219f, 0.997205f, 0.997191f,
+ 0.997176f, 0.997162f, 0.997148f, 0.997133f, 0.997119f, 0.997104f, 0.997089f, 0.997075f,
+ 0.997060f, 0.997045f, 0.997031f, 0.997016f, 0.997001f, 0.996986f, 0.996971f, 0.996956f,
+ 0.996941f, 0.996926f, 0.996911f, 0.996896f, 0.996881f, 0.996866f, 0.996851f, 0.996836f,
+ 0.996820f, 0.996805f, 0.996790f, 0.996774f, 0.996759f, 0.996743f, 0.996728f, 0.996712f,
+ 0.996697f, 0.996681f, 0.996666f, 0.996650f, 0.996634f, 0.996619f, 0.996603f, 0.996587f,
+ 0.996571f, 0.996555f, 0.996539f, 0.996523f, 0.996507f, 0.996491f, 0.996475f, 0.996459f,
+ 0.996443f, 0.996427f, 0.996411f, 0.996394f, 0.996378f, 0.996362f, 0.996345f, 0.996329f,
+ 0.996313f, 0.996296f, 0.996280f, 0.996263f, 0.996247f, 0.996230f, 0.996213f, 0.996197f,
+ 0.996180f, 0.996163f, 0.996146f, 0.996129f, 0.996113f, 0.996096f, 0.996079f, 0.996062f,
+ 0.996045f, 0.996028f, 0.996011f, 0.995993f, 0.995976f, 0.995959f, 0.995942f, 0.995925f,
+ 0.995907f, 0.995890f, 0.995872f, 0.995855f, 0.995838f, 0.995820f, 0.995803f, 0.995785f,
+ 0.995767f, 0.995750f, 0.995732f, 0.995714f, 0.995697f, 0.995679f, 0.995661f, 0.995643f,
+ 0.995625f, 0.995607f, 0.995589f, 0.995571f, 0.995553f, 0.995535f, 0.995517f, 0.995499f,
+ 0.995481f, 0.995463f, 0.995444f, 0.995426f, 0.995408f, 0.995389f, 0.995371f, 0.995352f,
+ 0.995334f, 0.995315f, 0.995297f, 0.995278f, 0.995260f, 0.995241f, 0.995222f, 0.995203f,
+ 0.995185f, 0.995166f, 0.995147f, 0.995128f, 0.995109f, 0.995090f, 0.995071f, 0.995052f,
+ 0.995033f, 0.995014f, 0.994995f, 0.994976f, 0.994957f, 0.994937f, 0.994918f, 0.994899f,
+ 0.994879f, 0.994860f, 0.994841f, 0.994821f, 0.994802f, 0.994782f, 0.994762f, 0.994743f,
+ 0.994723f, 0.994703f, 0.994684f, 0.994664f, 0.994644f, 0.994624f, 0.994604f, 0.994585f,
+ 0.994565f, 0.994545f, 0.994525f, 0.994505f, 0.994484f, 0.994464f, 0.994444f, 0.994424f,
+ 0.994404f, 0.994383f, 0.994363f, 0.994343f, 0.994322f, 0.994302f, 0.994281f, 0.994261f,
+ 0.994240f, 0.994220f, 0.994199f, 0.994179f, 0.994158f, 0.994137f, 0.994116f, 0.994096f,
+ 0.994075f, 0.994054f, 0.994033f, 0.994012f, 0.993991f, 0.993970f, 0.993949f, 0.993928f,
+ 0.993907f, 0.993886f, 0.993865f, 0.993843f, 0.993822f, 0.993801f, 0.993779f, 0.993758f,
+ 0.993737f, 0.993715f, 0.993694f, 0.993672f, 0.993651f, 0.993629f, 0.993608f, 0.993586f,
+ 0.993564f, 0.993542f, 0.993521f, 0.993499f, 0.993477f, 0.993455f, 0.993433f, 0.993411f,
+ 0.993389f, 0.993367f, 0.993345f, 0.993323f, 0.993301f, 0.993279f, 0.993257f, 0.993234f,
+ 0.993212f, 0.993190f, 0.993167f, 0.993145f, 0.993122f, 0.993100f, 0.993077f, 0.993055f,
+ 0.993032f, 0.993010f, 0.992987f, 0.992964f, 0.992942f, 0.992919f, 0.992896f, 0.992873f,
+ 0.992850f, 0.992828f, 0.992805f, 0.992782f, 0.992759f, 0.992736f, 0.992712f, 0.992689f,
+ 0.992666f, 0.992643f, 0.992620f, 0.992596f, 0.992573f, 0.992550f, 0.992526f, 0.992503f,
+ 0.992480f, 0.992456f, 0.992433f, 0.992409f, 0.992385f, 0.992362f, 0.992338f, 0.992314f,
+ 0.992291f, 0.992267f, 0.992243f, 0.992219f, 0.992195f, 0.992171f, 0.992147f, 0.992123f,
+ 0.992099f, 0.992075f, 0.992051f, 0.992027f, 0.992003f, 0.991979f, 0.991954f, 0.991930f,
+ 0.991906f, 0.991881f, 0.991857f, 0.991832f, 0.991808f, 0.991783f, 0.991759f, 0.991734f,
+ 0.991710f, 0.991685f, 0.991660f, 0.991636f, 0.991611f, 0.991586f, 0.991561f, 0.991536f,
+ 0.991511f, 0.991487f, 0.991462f, 0.991437f, 0.991411f, 0.991386f, 0.991361f, 0.991336f,
+ 0.991311f, 0.991286f, 0.991260f, 0.991235f, 0.991210f, 0.991184f, 0.991159f, 0.991133f,
+ 0.991108f, 0.991082f, 0.991057f, 0.991031f, 0.991006f, 0.990980f, 0.990954f, 0.990928f,
+ 0.990903f, 0.990877f, 0.990851f, 0.990825f, 0.990799f, 0.990773f, 0.990747f, 0.990721f,
+ 0.990695f, 0.990669f, 0.990643f, 0.990617f, 0.990590f, 0.990564f, 0.990538f, 0.990511f,
+ 0.990485f, 0.990459f, 0.990432f, 0.990406f, 0.990379f, 0.990353f, 0.990326f, 0.990299f,
+ 0.990273f, 0.990246f, 0.990219f, 0.990193f, 0.990166f, 0.990139f, 0.990112f, 0.990085f,
+ 0.990058f, 0.990031f, 0.990004f, 0.989977f, 0.989950f, 0.989923f, 0.989896f, 0.989869f,
+ 0.989841f, 0.989814f, 0.989787f, 0.989759f, 0.989732f, 0.989704f, 0.989677f, 0.989650f,
+ 0.989622f, 0.989594f, 0.989567f, 0.989539f, 0.989511f, 0.989484f, 0.989456f, 0.989428f,
+ 0.989400f, 0.989373f, 0.989345f, 0.989317f, 0.989289f, 0.989261f, 0.989233f, 0.989205f,
+ 0.989177f, 0.989148f, 0.989120f, 0.989092f, 0.989064f, 0.989035f, 0.989007f, 0.988979f,
+ 0.988950f, 0.988922f, 0.988893f, 0.988865f, 0.988836f, 0.988808f, 0.988779f, 0.988750f,
+ 0.988722f, 0.988693f, 0.988664f, 0.988635f, 0.988607f, 0.988578f, 0.988549f, 0.988520f,
+ 0.988491f, 0.988462f, 0.988433f, 0.988404f, 0.988374f, 0.988345f, 0.988316f, 0.988287f,
+ 0.988258f, 0.988228f, 0.988199f, 0.988169f, 0.988140f, 0.988111f, 0.988081f, 0.988052f,
+ 0.988022f, 0.987992f, 0.987963f, 0.987933f, 0.987903f, 0.987874f, 0.987844f, 0.987814f,
+ 0.987784f, 0.987754f, 0.987724f, 0.987694f, 0.987664f, 0.987634f, 0.987604f, 0.987574f,
+ 0.987544f, 0.987514f, 0.987484f, 0.987453f, 0.987423f, 0.987393f, 0.987362f, 0.987332f,
+ 0.987301f, 0.987271f, 0.987240f, 0.987210f, 0.987179f, 0.987149f, 0.987118f, 0.987087f,
+ 0.987057f, 0.987026f, 0.986995f, 0.986964f, 0.986933f, 0.986902f, 0.986871f, 0.986840f,
+ 0.986809f, 0.986778f, 0.986747f, 0.986716f, 0.986685f, 0.986654f, 0.986623f, 0.986591f,
+ 0.986560f, 0.986529f, 0.986497f, 0.986466f, 0.986434f, 0.986403f, 0.986371f, 0.986340f,
+ 0.986308f, 0.986276f, 0.986245f, 0.986213f, 0.986181f, 0.986150f, 0.986118f, 0.986086f,
+ 0.986054f, 0.986022f, 0.985990f, 0.985958f, 0.985926f, 0.985894f, 0.985862f, 0.985830f,
+ 0.985798f, 0.985765f, 0.985733f, 0.985701f, 0.985668f, 0.985636f, 0.985604f, 0.985571f,
+ 0.985539f, 0.985506f, 0.985474f, 0.985441f, 0.985408f, 0.985376f, 0.985343f, 0.985310f,
+ 0.985278f, 0.985245f, 0.985212f, 0.985179f, 0.985146f, 0.985113f, 0.985080f, 0.985047f,
+ 0.985014f, 0.984981f, 0.984948f, 0.984915f, 0.984882f, 0.984848f, 0.984815f, 0.984782f,
+ 0.984748f, 0.984715f, 0.984682f, 0.984648f, 0.984615f, 0.984581f, 0.984548f, 0.984514f,
+ 0.984480f, 0.984447f, 0.984413f, 0.984379f, 0.984346f, 0.984312f, 0.984278f, 0.984244f,
+ 0.984210f, 0.984176f, 0.984142f, 0.984108f, 0.984074f, 0.984040f, 0.984006f, 0.983972f,
+ 0.983937f, 0.983903f, 0.983869f, 0.983835f, 0.983800f, 0.983766f, 0.983731f, 0.983697f,
+ 0.983662f, 0.983628f, 0.983593f, 0.983559f, 0.983524f, 0.983489f, 0.983455f, 0.983420f,
+ 0.983385f, 0.983350f, 0.983315f, 0.983281f, 0.983246f, 0.983211f, 0.983176f, 0.983141f,
+ 0.983105f, 0.983070f, 0.983035f, 0.983000f, 0.982965f, 0.982930f, 0.982894f, 0.982859f,
+ 0.982824f, 0.982788f, 0.982753f, 0.982717f, 0.982682f, 0.982646f, 0.982611f, 0.982575f,
+ 0.982539f, 0.982504f, 0.982468f, 0.982432f, 0.982396f, 0.982360f, 0.982325f, 0.982289f,
+ 0.982253f, 0.982217f, 0.982181f, 0.982145f, 0.982109f, 0.982072f, 0.982036f, 0.982000f,
+ 0.981964f, 0.981928f, 0.981891f, 0.981855f, 0.981819f, 0.981782f, 0.981746f, 0.981709f,
+ 0.981673f, 0.981636f, 0.981600f, 0.981563f, 0.981526f, 0.981490f, 0.981453f, 0.981416f,
+ 0.981379f, 0.981342f, 0.981305f, 0.981269f, 0.981232f, 0.981195f, 0.981158f, 0.981120f,
+ 0.981083f, 0.981046f, 0.981009f, 0.980972f, 0.980935f, 0.980897f, 0.980860f, 0.980823f,
+ 0.980785f, 0.980748f, 0.980710f, 0.980673f, 0.980635f, 0.980598f, 0.980560f, 0.980523f,
+ 0.980485f, 0.980447f, 0.980409f, 0.980372f, 0.980334f, 0.980296f, 0.980258f, 0.980220f,
+ 0.980182f, 0.980144f, 0.980106f, 0.980068f, 0.980030f, 0.979992f, 0.979954f, 0.979915f,
+ 0.979877f, 0.979839f, 0.979800f, 0.979762f, 0.979724f, 0.979685f, 0.979647f, 0.979608f,
+ 0.979570f, 0.979531f, 0.979493f, 0.979454f, 0.979415f, 0.979376f, 0.979338f, 0.979299f,
+ 0.979260f, 0.979221f, 0.979182f, 0.979143f, 0.979104f, 0.979065f, 0.979026f, 0.978987f,
+ 0.978948f, 0.978909f, 0.978870f, 0.978831f, 0.978791f, 0.978752f, 0.978713f, 0.978673f,
+ 0.978634f, 0.978594f, 0.978555f, 0.978516f, 0.978476f, 0.978436f, 0.978397f, 0.978357f,
+ 0.978317f, 0.978278f, 0.978238f, 0.978198f, 0.978158f, 0.978118f, 0.978078f, 0.978038f,
+ 0.977998f, 0.977959f, 0.977918f, 0.977878f, 0.977838f, 0.977798f, 0.977758f, 0.977718f,
+ 0.977677f, 0.977637f, 0.977597f, 0.977556f, 0.977516f, 0.977475f, 0.977435f, 0.977394f,
+ 0.977354f, 0.977313f, 0.977273f, 0.977232f, 0.977191f, 0.977151f, 0.977110f, 0.977069f,
+ 0.977028f, 0.976987f, 0.976946f, 0.976905f, 0.976864f, 0.976823f, 0.976782f, 0.976741f,
+ 0.976700f, 0.976659f, 0.976618f, 0.976576f, 0.976535f, 0.976494f, 0.976453f, 0.976411f,
+ 0.976370f, 0.976328f, 0.976287f, 0.976245f, 0.976204f, 0.976162f, 0.976120f, 0.976079f,
+ 0.976037f, 0.975995f, 0.975954f, 0.975912f, 0.975870f, 0.975828f, 0.975786f, 0.975744f,
+ 0.975702f, 0.975660f, 0.975618f, 0.975576f, 0.975534f, 0.975492f, 0.975449f, 0.975407f,
+ 0.975365f, 0.975323f, 0.975280f, 0.975238f, 0.975195f, 0.975153f, 0.975110f, 0.975068f,
+ 0.975025f, 0.974983f, 0.974940f, 0.974897f, 0.974855f, 0.974812f, 0.974769f, 0.974726f,
+ 0.974684f, 0.974641f, 0.974598f, 0.974555f, 0.974512f, 0.974469f, 0.974426f, 0.974383f,
+ 0.974339f, 0.974296f, 0.974253f, 0.974210f, 0.974166f, 0.974123f, 0.974080f, 0.974036f,
+ 0.973993f, 0.973949f, 0.973906f, 0.973862f, 0.973819f, 0.973775f, 0.973732f, 0.973688f,
+ 0.973644f, 0.973601f, 0.973557f, 0.973513f, 0.973469f, 0.973425f, 0.973381f, 0.973337f,
+ 0.973293f, 0.973249f, 0.973205f, 0.973161f, 0.973117f, 0.973073f, 0.973028f, 0.972984f,
+ 0.972940f, 0.972896f, 0.972851f, 0.972807f, 0.972762f, 0.972718f, 0.972673f, 0.972629f,
+ 0.972584f, 0.972540f, 0.972495f, 0.972450f, 0.972406f, 0.972361f, 0.972316f, 0.972271f,
+ 0.972227f, 0.972182f, 0.972137f, 0.972092f, 0.972047f, 0.972002f, 0.971957f, 0.971911f,
+ 0.971866f, 0.971821f, 0.971776f, 0.971731f, 0.971685f, 0.971640f, 0.971595f, 0.971549f,
+ 0.971504f, 0.971458f, 0.971413f, 0.971367f, 0.971322f, 0.971276f, 0.971231f, 0.971185f,
+ 0.971139f, 0.971093f, 0.971048f, 0.971002f, 0.970956f, 0.970910f, 0.970864f, 0.970818f,
+ 0.970772f, 0.970726f, 0.970680f, 0.970634f, 0.970588f, 0.970542f, 0.970495f, 0.970449f,
+ 0.970403f, 0.970357f, 0.970310f, 0.970264f, 0.970217f, 0.970171f, 0.970124f, 0.970078f,
+ 0.970031f, 0.969985f, 0.969938f, 0.969891f, 0.969845f, 0.969798f, 0.969751f, 0.969704f,
+ 0.969657f, 0.969611f, 0.969564f, 0.969517f, 0.969470f, 0.969423f, 0.969375f, 0.969328f,
+ 0.969281f, 0.969234f, 0.969187f, 0.969140f, 0.969092f, 0.969045f, 0.968998f, 0.968950f,
+ 0.968903f, 0.968855f, 0.968808f, 0.968760f, 0.968713f, 0.968665f, 0.968617f, 0.968570f,
+ 0.968522f, 0.968474f, 0.968427f, 0.968379f, 0.968331f, 0.968283f, 0.968235f, 0.968187f,
+ 0.968139f, 0.968091f, 0.968043f, 0.967995f, 0.967947f, 0.967899f, 0.967850f, 0.967802f,
+ 0.967754f, 0.967706f, 0.967657f, 0.967609f, 0.967560f, 0.967512f, 0.967463f, 0.967415f,
+ 0.967366f, 0.967318f, 0.967269f, 0.967220f, 0.967172f, 0.967123f, 0.967074f, 0.967025f,
+ 0.966976f, 0.966928f, 0.966879f, 0.966830f, 0.966781f, 0.966732f, 0.966683f, 0.966633f,
+ 0.966584f, 0.966535f, 0.966486f, 0.966437f, 0.966387f, 0.966338f, 0.966289f, 0.966239f,
+ 0.966190f, 0.966141f, 0.966091f, 0.966042f, 0.965992f, 0.965942f, 0.965893f, 0.965843f,
+ 0.965793f, 0.965744f, 0.965694f, 0.965644f, 0.965594f, 0.965544f, 0.965494f, 0.965444f,
+ 0.965394f, 0.965344f, 0.965294f, 0.965244f, 0.965194f, 0.965144f, 0.965094f, 0.965044f,
+ 0.964993f, 0.964943f, 0.964893f, 0.964842f, 0.964792f, 0.964741f, 0.964691f, 0.964640f,
+ 0.964590f, 0.964539f, 0.964489f, 0.964438f, 0.964387f, 0.964336f, 0.964286f, 0.964235f,
+ 0.964184f, 0.964133f, 0.964082f, 0.964031f, 0.963980f, 0.963929f, 0.963878f, 0.963827f,
+ 0.963776f, 0.963725f, 0.963674f, 0.963623f, 0.963571f, 0.963520f, 0.963469f, 0.963417f,
+ 0.963366f, 0.963314f, 0.963263f, 0.963211f, 0.963160f, 0.963108f, 0.963057f, 0.963005f,
+ 0.962953f, 0.962902f, 0.962850f, 0.962798f, 0.962746f, 0.962694f, 0.962642f, 0.962590f,
+ 0.962538f, 0.962486f, 0.962434f, 0.962382f, 0.962330f, 0.962278f, 0.962226f, 0.962174f,
+ 0.962121f, 0.962069f, 0.962017f, 0.961964f, 0.961912f, 0.961860f, 0.961807f, 0.961755f,
+ 0.961702f, 0.961649f, 0.961597f, 0.961544f, 0.961492f, 0.961439f, 0.961386f, 0.961333f,
+ 0.961280f, 0.961228f, 0.961175f, 0.961122f, 0.961069f, 0.961016f, 0.960963f, 0.960910f,
+ 0.960857f, 0.960804f, 0.960750f, 0.960697f, 0.960644f, 0.960591f, 0.960537f, 0.960484f,
+ 0.960431f, 0.960377f, 0.960324f, 0.960270f, 0.960217f, 0.960163f, 0.960109f, 0.960056f,
+ 0.960002f, 0.959948f, 0.959895f, 0.959841f, 0.959787f, 0.959733f, 0.959679f, 0.959625f,
+ 0.959572f, 0.959518f, 0.959463f, 0.959409f, 0.959355f, 0.959301f, 0.959247f, 0.959193f,
+ 0.959139f, 0.959084f, 0.959030f, 0.958976f, 0.958921f, 0.958867f, 0.958812f, 0.958758f,
+ 0.958703f, 0.958649f, 0.958594f, 0.958540f, 0.958485f, 0.958430f, 0.958376f, 0.958321f,
+ 0.958266f, 0.958211f, 0.958156f, 0.958101f, 0.958046f, 0.957992f, 0.957937f, 0.957882f,
+ 0.957826f, 0.957771f, 0.957716f, 0.957661f, 0.957606f, 0.957550f, 0.957495f, 0.957440f,
+ 0.957385f, 0.957329f, 0.957274f, 0.957218f, 0.957163f, 0.957107f, 0.957052f, 0.956996f,
+ 0.956940f, 0.956885f, 0.956829f, 0.956773f, 0.956717f, 0.956662f, 0.956606f, 0.956550f,
+ 0.956494f, 0.956438f, 0.956382f, 0.956326f, 0.956270f, 0.956214f, 0.956158f, 0.956101f,
+ 0.956045f, 0.955989f, 0.955933f, 0.955876f, 0.955820f, 0.955764f, 0.955707f, 0.955651f,
+ 0.955594f, 0.955538f, 0.955481f, 0.955425f, 0.955368f, 0.955311f, 0.955255f, 0.955198f,
+ 0.955141f, 0.955084f, 0.955028f, 0.954971f, 0.954914f, 0.954857f, 0.954800f, 0.954743f,
+ 0.954686f, 0.954629f, 0.954572f, 0.954514f, 0.954457f, 0.954400f, 0.954343f, 0.954285f,
+ 0.954228f, 0.954171f, 0.954113f, 0.954056f, 0.953998f, 0.953941f, 0.953883f, 0.953826f,
+ 0.953768f, 0.953711f, 0.953653f, 0.953595f, 0.953537f, 0.953480f, 0.953422f, 0.953364f,
+ 0.953306f, 0.953248f, 0.953190f, 0.953132f, 0.953074f, 0.953016f, 0.952958f, 0.952900f,
+ 0.952842f, 0.952783f, 0.952725f, 0.952667f, 0.952609f, 0.952550f, 0.952492f, 0.952433f,
+ 0.952375f, 0.952317f, 0.952258f, 0.952199f, 0.952141f, 0.952082f, 0.952024f, 0.951965f,
+ 0.951906f, 0.951847f, 0.951789f, 0.951730f, 0.951671f, 0.951612f, 0.951553f, 0.951494f,
+ 0.951435f, 0.951376f, 0.951317f, 0.951258f, 0.951199f, 0.951139f, 0.951080f, 0.951021f,
+ 0.950962f, 0.950902f, 0.950843f, 0.950784f, 0.950724f, 0.950665f, 0.950605f, 0.950546f,
+ 0.950486f, 0.950426f, 0.950367f, 0.950307f, 0.950247f, 0.950188f, 0.950128f, 0.950068f,
+ 0.950008f, 0.949948f, 0.949888f, 0.949829f, 0.949768f, 0.949708f, 0.949648f, 0.949588f,
+ 0.949528f, 0.949468f, 0.949408f, 0.949348f, 0.949287f, 0.949227f, 0.949167f, 0.949106f,
+ 0.949046f, 0.948985f, 0.948925f, 0.948864f, 0.948804f, 0.948743f, 0.948683f, 0.948622f,
+ 0.948561f, 0.948501f, 0.948440f, 0.948379f, 0.948318f, 0.948257f, 0.948196f, 0.948136f,
+ 0.948075f, 0.948014f, 0.947953f, 0.947891f, 0.947830f, 0.947769f, 0.947708f, 0.947647f,
+ 0.947586f, 0.947524f, 0.947463f, 0.947402f, 0.947340f, 0.947279f, 0.947217f, 0.947156f,
+ 0.947094f, 0.947033f, 0.946971f, 0.946910f, 0.946848f, 0.946786f, 0.946724f, 0.946663f,
+ 0.946601f, 0.946539f, 0.946477f, 0.946415f, 0.946353f, 0.946291f, 0.946229f, 0.946167f,
+ 0.946105f, 0.946043f, 0.945981f, 0.945919f, 0.945857f, 0.945794f, 0.945732f, 0.945670f,
+ 0.945607f, 0.945545f, 0.945482f, 0.945420f, 0.945358f, 0.945295f, 0.945232f, 0.945170f,
+ 0.945107f, 0.945045f, 0.944982f, 0.944919f, 0.944856f, 0.944793f, 0.944731f, 0.944668f,
+ 0.944605f, 0.944542f, 0.944479f, 0.944416f, 0.944353f, 0.944290f, 0.944227f, 0.944163f,
+ 0.944100f, 0.944037f, 0.943974f, 0.943910f, 0.943847f, 0.943784f, 0.943720f, 0.943657f,
+ 0.943593f, 0.943530f, 0.943466f, 0.943403f, 0.943339f, 0.943276f, 0.943212f, 0.943148f,
+ 0.943084f, 0.943021f, 0.942957f, 0.942893f, 0.942829f, 0.942765f, 0.942701f, 0.942637f,
+ 0.942573f, 0.942509f, 0.942445f, 0.942381f, 0.942317f, 0.942253f, 0.942188f, 0.942124f,
+ 0.942060f, 0.941995f, 0.941931f, 0.941867f, 0.941802f, 0.941738f, 0.941673f, 0.941609f,
+ 0.941544f, 0.941479f, 0.941415f, 0.941350f, 0.941285f, 0.941221f, 0.941156f, 0.941091f,
+ 0.941026f, 0.940961f, 0.940896f, 0.940831f, 0.940766f, 0.940701f, 0.940636f, 0.940571f,
+ 0.940506f, 0.940441f, 0.940376f, 0.940310f, 0.940245f, 0.940180f, 0.940115f, 0.940049f,
+ 0.939984f, 0.939918f, 0.939853f, 0.939787f, 0.939722f, 0.939656f, 0.939591f, 0.939525f,
+ 0.939459f, 0.939394f, 0.939328f, 0.939262f, 0.939196f, 0.939130f, 0.939064f, 0.938998f,
+ 0.938932f, 0.938866f, 0.938800f, 0.938734f, 0.938668f, 0.938602f, 0.938536f, 0.938470f,
+ 0.938404f, 0.938337f, 0.938271f, 0.938205f, 0.938138f, 0.938072f, 0.938005f, 0.937939f,
+ 0.937872f, 0.937806f, 0.937739f, 0.937673f, 0.937606f, 0.937539f, 0.937473f, 0.937406f,
+ 0.937339f, 0.937272f, 0.937205f, 0.937138f, 0.937072f, 0.937005f, 0.936938f, 0.936871f,
+ 0.936803f, 0.936736f, 0.936669f, 0.936602f, 0.936535f, 0.936468f, 0.936400f, 0.936333f,
+ 0.936266f, 0.936198f, 0.936131f, 0.936063f, 0.935996f, 0.935928f, 0.935861f, 0.935793f,
+ 0.935726f, 0.935658f, 0.935590f, 0.935523f, 0.935455f, 0.935387f, 0.935319f, 0.935251f,
+ 0.935184f, 0.935116f, 0.935048f, 0.934980f, 0.934912f, 0.934844f, 0.934775f, 0.934707f,
+ 0.934639f, 0.934571f, 0.934503f, 0.934434f, 0.934366f, 0.934298f, 0.934229f, 0.934161f,
+ 0.934093f, 0.934024f, 0.933956f, 0.933887f, 0.933818f, 0.933750f, 0.933681f, 0.933612f,
+ 0.933544f, 0.933475f, 0.933406f, 0.933337f, 0.933269f, 0.933200f, 0.933131f, 0.933062f,
+ 0.932993f, 0.932924f, 0.932855f, 0.932786f, 0.932716f, 0.932647f, 0.932578f, 0.932509f,
+ 0.932440f, 0.932370f, 0.932301f, 0.932232f, 0.932162f, 0.932093f, 0.932023f, 0.931954f,
+ 0.931884f, 0.931815f, 0.931745f, 0.931675f, 0.931606f, 0.931536f, 0.931466f, 0.931397f,
+ 0.931327f, 0.931257f, 0.931187f, 0.931117f, 0.931047f, 0.930977f, 0.930907f, 0.930837f,
+ 0.930767f, 0.930697f, 0.930627f, 0.930556f, 0.930486f, 0.930416f, 0.930346f, 0.930275f,
+ 0.930205f, 0.930135f, 0.930064f, 0.929994f, 0.929923f, 0.929853f, 0.929782f, 0.929712f,
+ 0.929641f, 0.929570f, 0.929500f, 0.929429f, 0.929358f, 0.929287f, 0.929216f, 0.929146f,
+ 0.929075f, 0.929004f, 0.928933f, 0.928862f, 0.928791f, 0.928720f, 0.928648f, 0.928577f,
+ 0.928506f, 0.928435f, 0.928364f, 0.928292f, 0.928221f, 0.928150f, 0.928078f, 0.928007f,
+ 0.927935f, 0.927864f, 0.927792f, 0.927721f, 0.927649f, 0.927578f, 0.927506f, 0.927434f,
+ 0.927363f, 0.927291f, 0.927219f, 0.927147f, 0.927075f, 0.927003f, 0.926931f, 0.926859f,
+ 0.926787f, 0.926715f, 0.926643f, 0.926571f, 0.926499f, 0.926427f, 0.926355f, 0.926283f,
+ 0.926210f, 0.926138f, 0.926066f, 0.925993f, 0.925921f, 0.925848f, 0.925776f, 0.925703f,
+ 0.925631f, 0.925558f, 0.925486f, 0.925413f, 0.925340f, 0.925268f, 0.925195f, 0.925122f,
+ 0.925049f, 0.924976f, 0.924904f, 0.924831f, 0.924758f, 0.924685f, 0.924612f, 0.924539f,
+ 0.924465f, 0.924392f, 0.924319f, 0.924246f, 0.924173f, 0.924100f, 0.924026f, 0.923953f,
+ 0.923880f, 0.923806f, 0.923733f, 0.923659f, 0.923586f, 0.923512f, 0.923439f, 0.923365f,
+ 0.923291f, 0.923218f, 0.923144f, 0.923070f, 0.922997f, 0.922923f, 0.922849f, 0.922775f,
+ 0.922701f, 0.922627f, 0.922553f, 0.922479f, 0.922405f, 0.922331f, 0.922257f, 0.922183f,
+ 0.922109f, 0.922034f, 0.921960f, 0.921886f, 0.921812f, 0.921737f, 0.921663f, 0.921588f,
+ 0.921514f, 0.921440f, 0.921365f, 0.921291f, 0.921216f, 0.921141f, 0.921067f, 0.920992f,
+ 0.920917f, 0.920842f, 0.920768f, 0.920693f, 0.920618f, 0.920543f, 0.920468f, 0.920393f,
+ 0.920318f, 0.920243f, 0.920168f, 0.920093f, 0.920018f, 0.919943f, 0.919868f, 0.919792f,
+ 0.919717f, 0.919642f, 0.919567f, 0.919491f, 0.919416f, 0.919340f, 0.919265f, 0.919189f,
+ 0.919114f, 0.919038f, 0.918963f, 0.918887f, 0.918811f, 0.918736f, 0.918660f, 0.918584f,
+ 0.918508f, 0.918433f, 0.918357f, 0.918281f, 0.918205f, 0.918129f, 0.918053f, 0.917977f,
+ 0.917901f, 0.917825f, 0.917749f, 0.917672f, 0.917596f, 0.917520f, 0.917444f, 0.917367f,
+ 0.917291f, 0.917215f, 0.917138f, 0.917062f, 0.916985f, 0.916909f, 0.916832f, 0.916756f,
+ 0.916679f, 0.916602f, 0.916526f, 0.916449f, 0.916372f, 0.916296f, 0.916219f, 0.916142f,
+ 0.916065f, 0.915988f, 0.915911f, 0.915834f, 0.915757f, 0.915680f, 0.915603f, 0.915526f,
+ 0.915449f, 0.915372f, 0.915294f, 0.915217f, 0.915140f, 0.915062f, 0.914985f, 0.914908f,
+ 0.914830f, 0.914753f, 0.914675f, 0.914598f, 0.914520f, 0.914443f, 0.914365f, 0.914287f,
+ 0.914210f, 0.914132f, 0.914054f, 0.913976f, 0.913899f, 0.913821f, 0.913743f, 0.913665f,
+ 0.913587f, 0.913509f, 0.913431f, 0.913353f, 0.913275f, 0.913197f, 0.913119f, 0.913040f,
+ 0.912962f, 0.912884f, 0.912806f, 0.912727f, 0.912649f, 0.912571f, 0.912492f, 0.912414f,
+ 0.912335f, 0.912257f, 0.912178f, 0.912099f, 0.912021f, 0.911942f, 0.911864f, 0.911785f,
+ 0.911706f, 0.911627f, 0.911548f, 0.911470f, 0.911391f, 0.911312f, 0.911233f, 0.911154f,
+ 0.911075f, 0.910996f, 0.910917f, 0.910837f, 0.910758f, 0.910679f, 0.910600f, 0.910521f,
+ 0.910441f, 0.910362f, 0.910283f, 0.910203f, 0.910124f, 0.910044f, 0.909965f, 0.909885f,
+ 0.909806f, 0.909726f, 0.909646f, 0.909567f, 0.909487f, 0.909407f, 0.909328f, 0.909248f,
+ 0.909168f, 0.909088f, 0.909008f, 0.908928f, 0.908848f, 0.908768f, 0.908688f, 0.908608f,
+ 0.908528f, 0.908448f, 0.908368f, 0.908288f, 0.908207f, 0.908127f, 0.908047f, 0.907966f,
+ 0.907886f, 0.907806f, 0.907725f, 0.907645f, 0.907564f, 0.907484f, 0.907403f, 0.907323f,
+ 0.907242f, 0.907161f, 0.907081f, 0.907000f, 0.906919f, 0.906838f, 0.906757f, 0.906677f,
+ 0.906596f, 0.906515f, 0.906434f, 0.906353f, 0.906272f, 0.906191f, 0.906110f, 0.906028f,
+ 0.905947f, 0.905866f, 0.905785f, 0.905704f, 0.905622f, 0.905541f, 0.905460f, 0.905378f,
+ 0.905297f, 0.905215f, 0.905134f, 0.905052f, 0.904971f, 0.904889f, 0.904807f, 0.904726f,
+ 0.904644f, 0.904562f, 0.904481f, 0.904399f, 0.904317f, 0.904235f, 0.904153f, 0.904071f,
+ 0.903989f, 0.903907f, 0.903825f, 0.903743f, 0.903661f, 0.903579f, 0.903497f, 0.903415f,
+ 0.903332f, 0.903250f, 0.903168f, 0.903085f, 0.903003f, 0.902921f, 0.902838f, 0.902756f,
+ 0.902673f, 0.902591f, 0.902508f, 0.902426f, 0.902343f, 0.902260f, 0.902178f, 0.902095f,
+ 0.902012f, 0.901929f, 0.901847f, 0.901764f, 0.901681f, 0.901598f, 0.901515f, 0.901432f,
+ 0.901349f, 0.901266f, 0.901183f, 0.901100f, 0.901016f, 0.900933f, 0.900850f, 0.900767f,
+ 0.900683f, 0.900600f, 0.900517f, 0.900433f, 0.900350f, 0.900266f, 0.900183f, 0.900099f,
+ 0.900016f, 0.899932f, 0.899849f, 0.899765f, 0.899681f, 0.899598f, 0.899514f, 0.899430f,
+ 0.899346f, 0.899262f, 0.899179f, 0.899095f, 0.899011f, 0.898927f, 0.898843f, 0.898759f,
+ 0.898674f, 0.898590f, 0.898506f, 0.898422f, 0.898338f, 0.898254f, 0.898169f, 0.898085f,
+ 0.898001f, 0.897916f, 0.897832f, 0.897747f, 0.897663f, 0.897578f, 0.897494f, 0.897409f,
+ 0.897325f, 0.897240f, 0.897155f, 0.897071f, 0.896986f, 0.896901f, 0.896816f, 0.896731f,
+ 0.896646f, 0.896562f, 0.896477f, 0.896392f, 0.896307f, 0.896222f, 0.896137f, 0.896051f,
+ 0.895966f, 0.895881f, 0.895796f, 0.895711f, 0.895625f, 0.895540f, 0.895455f, 0.895369f,
+ 0.895284f, 0.895198f, 0.895113f, 0.895028f, 0.894942f, 0.894856f, 0.894771f, 0.894685f,
+ 0.894599f, 0.894514f, 0.894428f, 0.894342f, 0.894256f, 0.894171f, 0.894085f, 0.893999f,
+ 0.893913f, 0.893827f, 0.893741f, 0.893655f, 0.893569f, 0.893483f, 0.893397f, 0.893310f,
+ 0.893224f, 0.893138f, 0.893052f, 0.892965f, 0.892879f, 0.892793f, 0.892706f, 0.892620f,
+ 0.892534f, 0.892447f, 0.892361f, 0.892274f, 0.892187f, 0.892101f, 0.892014f, 0.891927f,
+ 0.891841f, 0.891754f, 0.891667f, 0.891580f, 0.891493f, 0.891407f, 0.891320f, 0.891233f,
+ 0.891146f, 0.891059f, 0.890972f, 0.890885f, 0.890797f, 0.890710f, 0.890623f, 0.890536f,
+ 0.890449f, 0.890361f, 0.890274f, 0.890187f, 0.890099f, 0.890012f, 0.889925f, 0.889837f,
+ 0.889750f, 0.889662f, 0.889574f, 0.889487f, 0.889399f, 0.889312f, 0.889224f, 0.889136f,
+ 0.889048f, 0.888961f, 0.888873f, 0.888785f, 0.888697f, 0.888609f, 0.888521f, 0.888433f,
+ 0.888345f, 0.888257f, 0.888169f, 0.888081f, 0.887993f, 0.887904f, 0.887816f, 0.887728f,
+ 0.887640f, 0.887551f, 0.887463f, 0.887375f, 0.887286f, 0.887198f, 0.887109f, 0.887021f,
+ 0.886932f, 0.886844f, 0.886755f, 0.886666f, 0.886578f, 0.886489f, 0.886400f, 0.886311f,
+ 0.886223f, 0.886134f, 0.886045f, 0.885956f, 0.885867f, 0.885778f, 0.885689f, 0.885600f,
+ 0.885511f, 0.885422f, 0.885333f, 0.885243f, 0.885154f, 0.885065f, 0.884976f, 0.884886f,
+ 0.884797f, 0.884708f, 0.884618f, 0.884529f, 0.884439f, 0.884350f, 0.884260f, 0.884171f,
+ 0.884081f, 0.883992f, 0.883902f, 0.883812f, 0.883723f, 0.883633f, 0.883543f, 0.883453f,
+ 0.883363f, 0.883273f, 0.883184f, 0.883094f, 0.883004f, 0.882914f, 0.882824f, 0.882733f,
+ 0.882643f, 0.882553f, 0.882463f, 0.882373f, 0.882283f, 0.882192f, 0.882102f, 0.882012f,
+ 0.881921f, 0.881831f, 0.881740f, 0.881650f, 0.881559f, 0.881469f, 0.881378f, 0.881288f,
+ 0.881197f, 0.881106f, 0.881016f, 0.880925f, 0.880834f, 0.880743f, 0.880653f, 0.880562f,
+ 0.880471f, 0.880380f, 0.880289f, 0.880198f, 0.880107f, 0.880016f, 0.879925f, 0.879834f,
+ 0.879743f, 0.879651f, 0.879560f, 0.879469f, 0.879378f, 0.879286f, 0.879195f, 0.879104f,
+ 0.879012f, 0.878921f, 0.878829f, 0.878738f, 0.878646f, 0.878555f, 0.878463f, 0.878371f,
+ 0.878280f, 0.878188f, 0.878096f, 0.878005f, 0.877913f, 0.877821f, 0.877729f, 0.877637f,
+ 0.877545f, 0.877453f, 0.877361f, 0.877269f, 0.877177f, 0.877085f, 0.876993f, 0.876901f,
+ 0.876809f, 0.876716f, 0.876624f, 0.876532f, 0.876440f, 0.876347f, 0.876255f, 0.876163f,
+ 0.876070f, 0.875978f, 0.875885f, 0.875793f, 0.875700f, 0.875607f, 0.875515f, 0.875422f,
+ 0.875329f, 0.875237f, 0.875144f, 0.875051f, 0.874958f, 0.874865f, 0.874773f, 0.874680f,
+ 0.874587f, 0.874494f, 0.874401f, 0.874308f, 0.874215f, 0.874121f, 0.874028f, 0.873935f,
+ 0.873842f, 0.873749f, 0.873655f, 0.873562f, 0.873469f, 0.873375f, 0.873282f, 0.873188f,
+ 0.873095f, 0.873001f, 0.872908f, 0.872814f, 0.872721f, 0.872627f, 0.872534f, 0.872440f,
+ 0.872346f, 0.872252f, 0.872159f, 0.872065f, 0.871971f, 0.871877f, 0.871783f, 0.871689f,
+ 0.871595f, 0.871501f, 0.871407f, 0.871313f, 0.871219f, 0.871125f, 0.871031f, 0.870936f,
+ 0.870842f, 0.870748f, 0.870654f, 0.870559f, 0.870465f, 0.870370f, 0.870276f, 0.870182f,
+ 0.870087f, 0.869992f, 0.869898f, 0.869803f, 0.869709f, 0.869614f, 0.869519f, 0.869425f,
+ 0.869330f, 0.869235f, 0.869140f, 0.869045f, 0.868951f, 0.868856f, 0.868761f, 0.868666f,
+ 0.868571f, 0.868476f, 0.868381f, 0.868285f, 0.868190f, 0.868095f, 0.868000f, 0.867905f,
+ 0.867809f, 0.867714f, 0.867619f, 0.867523f, 0.867428f, 0.867333f, 0.867237f, 0.867142f,
+ 0.867046f, 0.866951f, 0.866855f, 0.866759f, 0.866664f, 0.866568f, 0.866472f, 0.866377f,
+ 0.866281f, 0.866185f, 0.866089f, 0.865993f, 0.865898f, 0.865802f, 0.865706f, 0.865610f,
+ 0.865514f, 0.865418f, 0.865321f, 0.865225f, 0.865129f, 0.865033f, 0.864937f, 0.864841f,
+ 0.864744f, 0.864648f, 0.864552f, 0.864455f, 0.864359f, 0.864262f, 0.864166f, 0.864069f,
+ 0.863973f, 0.863876f, 0.863780f, 0.863683f, 0.863586f, 0.863490f, 0.863393f, 0.863296f,
+ 0.863199f, 0.863103f, 0.863006f, 0.862909f, 0.862812f, 0.862715f, 0.862618f, 0.862521f,
+ 0.862424f, 0.862327f, 0.862230f, 0.862133f, 0.862035f, 0.861938f, 0.861841f, 0.861744f,
+ 0.861646f, 0.861549f, 0.861452f, 0.861354f, 0.861257f, 0.861160f, 0.861062f, 0.860964f,
+ 0.860867f, 0.860769f, 0.860672f, 0.860574f, 0.860476f, 0.860379f, 0.860281f, 0.860183f,
+ 0.860085f, 0.859988f, 0.859890f, 0.859792f, 0.859694f, 0.859596f, 0.859498f, 0.859400f,
+ 0.859302f, 0.859204f, 0.859106f, 0.859007f, 0.858909f, 0.858811f, 0.858713f, 0.858615f,
+ 0.858516f, 0.858418f, 0.858320f, 0.858221f, 0.858123f, 0.858024f, 0.857926f, 0.857827f,
+ 0.857729f, 0.857630f, 0.857531f, 0.857433f, 0.857334f, 0.857235f, 0.857137f, 0.857038f,
+ 0.856939f, 0.856840f, 0.856741f, 0.856642f, 0.856543f, 0.856444f, 0.856345f, 0.856246f,
+ 0.856147f, 0.856048f, 0.855949f, 0.855850f, 0.855751f, 0.855651f, 0.855552f, 0.855453f,
+ 0.855354f, 0.855254f, 0.855155f, 0.855056f, 0.854956f, 0.854857f, 0.854757f, 0.854658f,
+ 0.854558f, 0.854458f, 0.854359f, 0.854259f, 0.854159f, 0.854060f, 0.853960f, 0.853860f,
+ 0.853760f, 0.853660f, 0.853561f, 0.853461f, 0.853361f, 0.853261f, 0.853161f, 0.853061f,
+ 0.852961f, 0.852861f, 0.852760f, 0.852660f, 0.852560f, 0.852460f, 0.852360f, 0.852259f,
+ 0.852159f, 0.852059f, 0.851958f, 0.851858f, 0.851757f, 0.851657f, 0.851556f, 0.851456f,
+ 0.851355f, 0.851255f, 0.851154f, 0.851053f, 0.850953f, 0.850852f, 0.850751f, 0.850650f,
+ 0.850549f, 0.850449f, 0.850348f, 0.850247f, 0.850146f, 0.850045f, 0.849944f, 0.849843f,
+ 0.849742f, 0.849641f, 0.849540f, 0.849438f, 0.849337f, 0.849236f, 0.849135f, 0.849033f,
+ 0.848932f, 0.848831f, 0.848729f, 0.848628f, 0.848526f, 0.848425f, 0.848323f, 0.848222f,
+ 0.848120f, 0.848019f, 0.847917f, 0.847815f, 0.847714f, 0.847612f, 0.847510f, 0.847408f,
+ 0.847307f, 0.847205f, 0.847103f, 0.847001f, 0.846899f, 0.846797f, 0.846695f, 0.846593f,
+ 0.846491f, 0.846389f, 0.846287f, 0.846185f, 0.846082f, 0.845980f, 0.845878f, 0.845776f,
+ 0.845673f, 0.845571f, 0.845469f, 0.845366f, 0.845264f, 0.845161f, 0.845059f, 0.844956f,
+ 0.844854f, 0.844751f, 0.844648f, 0.844546f, 0.844443f, 0.844340f, 0.844238f, 0.844135f,
+ 0.844032f, 0.843929f, 0.843826f, 0.843723f, 0.843620f, 0.843517f, 0.843414f, 0.843311f,
+ 0.843208f, 0.843105f, 0.843002f, 0.842899f, 0.842796f, 0.842692f, 0.842589f, 0.842486f,
+ 0.842383f, 0.842279f, 0.842176f, 0.842072f, 0.841969f, 0.841866f, 0.841762f, 0.841659f,
+ 0.841555f, 0.841451f, 0.841348f, 0.841244f, 0.841140f, 0.841037f, 0.840933f, 0.840829f,
+ 0.840725f, 0.840622f, 0.840518f, 0.840414f, 0.840310f, 0.840206f, 0.840102f, 0.839998f,
+ 0.839894f, 0.839790f, 0.839686f, 0.839581f, 0.839477f, 0.839373f, 0.839269f, 0.839165f,
+ 0.839060f, 0.838956f, 0.838852f, 0.838747f, 0.838643f, 0.838538f, 0.838434f, 0.838329f,
+ 0.838225f, 0.838120f, 0.838015f, 0.837911f, 0.837806f, 0.837701f, 0.837597f, 0.837492f,
+ 0.837387f, 0.837282f, 0.837178f, 0.837073f, 0.836968f, 0.836863f, 0.836758f, 0.836653f,
+ 0.836548f, 0.836443f, 0.836338f, 0.836232f, 0.836127f, 0.836022f, 0.835917f, 0.835812f,
+ 0.835706f, 0.835601f, 0.835496f, 0.835390f, 0.835285f, 0.835179f, 0.835074f, 0.834968f,
+ 0.834863f, 0.834757f, 0.834652f, 0.834546f, 0.834440f, 0.834335f, 0.834229f, 0.834123f,
+ 0.834018f, 0.833912f, 0.833806f, 0.833700f, 0.833594f, 0.833488f, 0.833382f, 0.833276f,
+ 0.833170f, 0.833064f, 0.832958f, 0.832852f, 0.832746f, 0.832640f, 0.832533f, 0.832427f,
+ 0.832321f, 0.832215f, 0.832108f, 0.832002f, 0.831895f, 0.831789f, 0.831683f, 0.831576f,
+ 0.831470f, 0.831363f, 0.831257f, 0.831150f, 0.831043f, 0.830937f, 0.830830f, 0.830723f,
+ 0.830616f, 0.830510f, 0.830403f, 0.830296f, 0.830189f, 0.830082f, 0.829975f, 0.829868f,
+ 0.829761f, 0.829654f, 0.829547f, 0.829440f, 0.829333f, 0.829226f, 0.829119f, 0.829011f,
+ 0.828904f, 0.828797f, 0.828690f, 0.828582f, 0.828475f, 0.828367f, 0.828260f, 0.828153f,
+ 0.828045f, 0.827938f, 0.827830f, 0.827722f, 0.827615f, 0.827507f, 0.827399f, 0.827292f,
+ 0.827184f, 0.827076f, 0.826968f, 0.826861f, 0.826753f, 0.826645f, 0.826537f, 0.826429f,
+ 0.826321f, 0.826213f, 0.826105f, 0.825997f, 0.825889f, 0.825781f, 0.825673f, 0.825564f,
+ 0.825456f, 0.825348f, 0.825240f, 0.825131f, 0.825023f, 0.824915f, 0.824806f, 0.824698f,
+ 0.824589f, 0.824481f, 0.824372f, 0.824264f, 0.824155f, 0.824047f, 0.823938f, 0.823829f,
+ 0.823721f, 0.823612f, 0.823503f, 0.823394f, 0.823285f, 0.823177f, 0.823068f, 0.822959f,
+ 0.822850f, 0.822741f, 0.822632f, 0.822523f, 0.822414f, 0.822305f, 0.822195f, 0.822086f,
+ 0.821977f, 0.821868f, 0.821759f, 0.821649f, 0.821540f, 0.821431f, 0.821321f, 0.821212f,
+ 0.821102f, 0.820993f, 0.820884f, 0.820774f, 0.820664f, 0.820555f, 0.820445f, 0.820336f,
+ 0.820226f, 0.820116f, 0.820007f, 0.819897f, 0.819787f, 0.819677f, 0.819567f, 0.819457f,
+ 0.819348f, 0.819238f, 0.819128f, 0.819018f, 0.818908f, 0.818798f, 0.818687f, 0.818577f,
+ 0.818467f, 0.818357f, 0.818247f, 0.818137f, 0.818026f, 0.817916f, 0.817806f, 0.817695f,
+ 0.817585f, 0.817474f, 0.817364f, 0.817253f, 0.817143f, 0.817032f, 0.816922f, 0.816811f,
+ 0.816701f, 0.816590f, 0.816479f, 0.816368f, 0.816258f, 0.816147f, 0.816036f, 0.815925f,
+ 0.815814f, 0.815704f, 0.815593f, 0.815482f, 0.815371f, 0.815260f, 0.815149f, 0.815037f,
+ 0.814926f, 0.814815f, 0.814704f, 0.814593f, 0.814482f, 0.814370f, 0.814259f, 0.814148f,
+ 0.814036f, 0.813925f, 0.813814f, 0.813702f, 0.813591f, 0.813479f, 0.813368f, 0.813256f,
+ 0.813144f, 0.813033f, 0.812921f, 0.812809f, 0.812698f, 0.812586f, 0.812474f, 0.812362f,
+ 0.812251f, 0.812139f, 0.812027f, 0.811915f, 0.811803f, 0.811691f, 0.811579f, 0.811467f,
+ 0.811355f, 0.811243f, 0.811131f, 0.811018f, 0.810906f, 0.810794f, 0.810682f, 0.810570f,
+ 0.810457f, 0.810345f, 0.810232f, 0.810120f, 0.810008f, 0.809895f, 0.809783f, 0.809670f,
+ 0.809558f, 0.809445f, 0.809332f, 0.809220f, 0.809107f, 0.808994f, 0.808882f, 0.808769f,
+ 0.808656f, 0.808543f, 0.808430f, 0.808318f, 0.808205f, 0.808092f, 0.807979f, 0.807866f,
+ 0.807753f, 0.807640f, 0.807527f, 0.807414f, 0.807300f, 0.807187f, 0.807074f, 0.806961f,
+ 0.806848f, 0.806734f, 0.806621f, 0.806508f, 0.806394f, 0.806281f, 0.806167f, 0.806054f,
+ 0.805940f, 0.805827f, 0.805713f, 0.805600f, 0.805486f, 0.805372f, 0.805259f, 0.805145f,
+ 0.805031f, 0.804918f, 0.804804f, 0.804690f, 0.804576f, 0.804462f, 0.804348f, 0.804234f,
+ 0.804120f, 0.804006f, 0.803892f, 0.803778f, 0.803664f, 0.803550f, 0.803436f, 0.803322f,
+ 0.803208f, 0.803093f, 0.802979f, 0.802865f, 0.802750f, 0.802636f, 0.802522f, 0.802407f,
+ 0.802293f, 0.802178f, 0.802064f, 0.801949f, 0.801835f, 0.801720f, 0.801606f, 0.801491f,
+ 0.801376f, 0.801261f, 0.801147f, 0.801032f, 0.800917f, 0.800802f, 0.800687f, 0.800573f,
+ 0.800458f, 0.800343f, 0.800228f, 0.800113f, 0.799998f, 0.799883f, 0.799768f, 0.799652f,
+ 0.799537f, 0.799422f, 0.799307f, 0.799192f, 0.799076f, 0.798961f, 0.798846f, 0.798730f,
+ 0.798615f, 0.798500f, 0.798384f, 0.798269f, 0.798153f, 0.798038f, 0.797922f, 0.797806f,
+ 0.797691f, 0.797575f, 0.797459f, 0.797344f, 0.797228f, 0.797112f, 0.796996f, 0.796881f,
+ 0.796765f, 0.796649f, 0.796533f, 0.796417f, 0.796301f, 0.796185f, 0.796069f, 0.795953f,
+ 0.795837f, 0.795721f, 0.795605f, 0.795488f, 0.795372f, 0.795256f, 0.795140f, 0.795023f,
+ 0.794907f, 0.794791f, 0.794674f, 0.794558f, 0.794442f, 0.794325f, 0.794209f, 0.794092f,
+ 0.793975f, 0.793859f, 0.793742f, 0.793626f, 0.793509f, 0.793392f, 0.793276f, 0.793159f,
+ 0.793042f, 0.792925f, 0.792808f, 0.792691f, 0.792575f, 0.792458f, 0.792341f, 0.792224f,
+ 0.792107f, 0.791990f, 0.791872f, 0.791755f, 0.791638f, 0.791521f, 0.791404f, 0.791287f,
+ 0.791169f, 0.791052f, 0.790935f, 0.790817f, 0.790700f, 0.790583f, 0.790465f, 0.790348f,
+ 0.790230f, 0.790113f, 0.789995f, 0.789878f, 0.789760f, 0.789642f, 0.789525f, 0.789407f,
+ 0.789289f, 0.789172f, 0.789054f, 0.788936f, 0.788818f, 0.788700f, 0.788582f, 0.788464f,
+ 0.788346f, 0.788228f, 0.788110f, 0.787992f, 0.787874f, 0.787756f, 0.787638f, 0.787520f,
+ 0.787402f, 0.787284f, 0.787165f, 0.787047f, 0.786929f, 0.786810f, 0.786692f, 0.786574f,
+ 0.786455f, 0.786337f, 0.786218f, 0.786100f, 0.785981f, 0.785863f, 0.785744f, 0.785625f,
+ 0.785507f, 0.785388f, 0.785269f, 0.785151f, 0.785032f, 0.784913f, 0.784794f, 0.784675f,
+ 0.784557f, 0.784438f, 0.784319f, 0.784200f, 0.784081f, 0.783962f, 0.783843f, 0.783724f,
+ 0.783605f, 0.783485f, 0.783366f, 0.783247f, 0.783128f, 0.783009f, 0.782889f, 0.782770f,
+ 0.782651f, 0.782531f, 0.782412f, 0.782292f, 0.782173f, 0.782053f, 0.781934f, 0.781814f,
+ 0.781695f, 0.781575f, 0.781456f, 0.781336f, 0.781216f, 0.781097f, 0.780977f, 0.780857f,
+ 0.780737f, 0.780617f, 0.780498f, 0.780378f, 0.780258f, 0.780138f, 0.780018f, 0.779898f,
+ 0.779778f, 0.779658f, 0.779538f, 0.779418f, 0.779297f, 0.779177f, 0.779057f, 0.778937f,
+ 0.778817f, 0.778696f, 0.778576f, 0.778456f, 0.778335f, 0.778215f, 0.778094f, 0.777974f,
+ 0.777853f, 0.777733f, 0.777612f, 0.777492f, 0.777371f, 0.777251f, 0.777130f, 0.777009f,
+ 0.776888f, 0.776768f, 0.776647f, 0.776526f, 0.776405f, 0.776284f, 0.776164f, 0.776043f,
+ 0.775922f, 0.775801f, 0.775680f, 0.775559f, 0.775438f, 0.775317f, 0.775195f, 0.775074f,
+ 0.774953f, 0.774832f, 0.774711f, 0.774589f, 0.774468f, 0.774347f, 0.774225f, 0.774104f,
+ 0.773983f, 0.773861f, 0.773740f, 0.773618f, 0.773497f, 0.773375f, 0.773254f, 0.773132f,
+ 0.773010f, 0.772889f, 0.772767f, 0.772645f, 0.772524f, 0.772402f, 0.772280f, 0.772158f,
+ 0.772036f, 0.771915f, 0.771793f, 0.771671f, 0.771549f, 0.771427f, 0.771305f, 0.771183f,
+ 0.771061f, 0.770938f, 0.770816f, 0.770694f, 0.770572f, 0.770450f, 0.770327f, 0.770205f,
+ 0.770083f, 0.769961f, 0.769838f, 0.769716f, 0.769593f, 0.769471f, 0.769348f, 0.769226f,
+ 0.769103f, 0.768981f, 0.768858f, 0.768736f, 0.768613f, 0.768490f, 0.768368f, 0.768245f,
+ 0.768122f, 0.767999f, 0.767876f, 0.767754f, 0.767631f, 0.767508f, 0.767385f, 0.767262f,
+ 0.767139f, 0.767016f, 0.766893f, 0.766770f, 0.766647f, 0.766524f, 0.766400f, 0.766277f,
+ 0.766154f, 0.766031f, 0.765907f, 0.765784f, 0.765661f, 0.765538f, 0.765414f, 0.765291f,
+ 0.765167f, 0.765044f, 0.764920f, 0.764797f, 0.764673f, 0.764550f, 0.764426f, 0.764302f,
+ 0.764179f, 0.764055f, 0.763931f, 0.763808f, 0.763684f, 0.763560f, 0.763436f, 0.763312f,
+ 0.763188f, 0.763065f, 0.762941f, 0.762817f, 0.762693f, 0.762569f, 0.762444f, 0.762320f,
+ 0.762196f, 0.762072f, 0.761948f, 0.761824f, 0.761700f, 0.761575f, 0.761451f, 0.761327f,
+ 0.761202f, 0.761078f, 0.760954f, 0.760829f, 0.760705f, 0.760580f, 0.760456f, 0.760331f,
+ 0.760207f, 0.760082f, 0.759957f, 0.759833f, 0.759708f, 0.759583f, 0.759459f, 0.759334f,
+ 0.759209f, 0.759084f, 0.758960f, 0.758835f, 0.758710f, 0.758585f, 0.758460f, 0.758335f,
+ 0.758210f, 0.758085f, 0.757960f, 0.757835f, 0.757710f, 0.757584f, 0.757459f, 0.757334f,
+ 0.757209f, 0.757084f, 0.756958f, 0.756833f, 0.756708f, 0.756582f, 0.756457f, 0.756331f,
+ 0.756206f, 0.756081f, 0.755955f, 0.755829f, 0.755704f, 0.755578f, 0.755453f, 0.755327f,
+ 0.755201f, 0.755076f, 0.754950f, 0.754824f, 0.754698f, 0.754573f, 0.754447f, 0.754321f,
+ 0.754195f, 0.754069f, 0.753943f, 0.753817f, 0.753691f, 0.753565f, 0.753439f, 0.753313f,
+ 0.753187f, 0.753061f, 0.752934f, 0.752808f, 0.752682f, 0.752556f, 0.752429f, 0.752303f,
+ 0.752177f, 0.752050f, 0.751924f, 0.751798f, 0.751671f, 0.751545f, 0.751418f, 0.751292f,
+ 0.751165f, 0.751039f, 0.750912f, 0.750785f, 0.750659f, 0.750532f, 0.750405f, 0.750278f,
+ 0.750152f, 0.750025f, 0.749898f, 0.749771f, 0.749644f, 0.749517f, 0.749390f, 0.749263f,
+ 0.749136f, 0.749009f, 0.748882f, 0.748755f, 0.748628f, 0.748501f, 0.748374f, 0.748247f,
+ 0.748119f, 0.747992f, 0.747865f, 0.747738f, 0.747610f, 0.747483f, 0.747355f, 0.747228f,
+ 0.747101f, 0.746973f, 0.746846f, 0.746718f, 0.746591f, 0.746463f, 0.746335f, 0.746208f,
+ 0.746080f, 0.745952f, 0.745825f, 0.745697f, 0.745569f, 0.745441f, 0.745314f, 0.745186f,
+ 0.745058f, 0.744930f, 0.744802f, 0.744674f, 0.744546f, 0.744418f, 0.744290f, 0.744162f,
+ 0.744034f, 0.743906f, 0.743777f, 0.743649f, 0.743521f, 0.743393f, 0.743265f, 0.743136f,
+ 0.743008f, 0.742880f, 0.742751f, 0.742623f, 0.742494f, 0.742366f, 0.742237f, 0.742109f,
+ 0.741980f, 0.741852f, 0.741723f, 0.741595f, 0.741466f, 0.741337f, 0.741209f, 0.741080f,
+ 0.740951f, 0.740822f, 0.740694f, 0.740565f, 0.740436f, 0.740307f, 0.740178f, 0.740049f,
+ 0.739920f, 0.739791f, 0.739662f, 0.739533f, 0.739404f, 0.739275f, 0.739146f, 0.739017f,
+ 0.738887f, 0.738758f, 0.738629f, 0.738500f, 0.738370f, 0.738241f, 0.738112f, 0.737982f,
+ 0.737853f, 0.737723f, 0.737594f, 0.737464f, 0.737335f, 0.737205f, 0.737076f, 0.736946f,
+ 0.736817f, 0.736687f, 0.736557f, 0.736428f, 0.736298f, 0.736168f, 0.736038f, 0.735908f,
+ 0.735779f, 0.735649f, 0.735519f, 0.735389f, 0.735259f, 0.735129f, 0.734999f, 0.734869f,
+ 0.734739f, 0.734609f, 0.734479f, 0.734349f, 0.734218f, 0.734088f, 0.733958f, 0.733828f,
+ 0.733697f, 0.733567f, 0.733437f, 0.733306f, 0.733176f, 0.733046f, 0.732915f, 0.732785f,
+ 0.732654f, 0.732524f, 0.732393f, 0.732263f, 0.732132f, 0.732001f, 0.731871f, 0.731740f,
+ 0.731609f, 0.731479f, 0.731348f, 0.731217f, 0.731086f, 0.730955f, 0.730825f, 0.730694f,
+ 0.730563f, 0.730432f, 0.730301f, 0.730170f, 0.730039f, 0.729908f, 0.729777f, 0.729646f,
+ 0.729514f, 0.729383f, 0.729252f, 0.729121f, 0.728990f, 0.728858f, 0.728727f, 0.728596f,
+ 0.728464f, 0.728333f, 0.728202f, 0.728070f, 0.727939f, 0.727807f, 0.727676f, 0.727544f,
+ 0.727413f, 0.727281f, 0.727149f, 0.727018f, 0.726886f, 0.726754f, 0.726623f, 0.726491f,
+ 0.726359f, 0.726227f, 0.726095f, 0.725964f, 0.725832f, 0.725700f, 0.725568f, 0.725436f,
+ 0.725304f, 0.725172f, 0.725040f, 0.724908f, 0.724776f, 0.724644f, 0.724511f, 0.724379f,
+ 0.724247f, 0.724115f, 0.723983f, 0.723850f, 0.723718f, 0.723586f, 0.723453f, 0.723321f,
+ 0.723188f, 0.723056f, 0.722924f, 0.722791f, 0.722659f, 0.722526f, 0.722393f, 0.722261f,
+ 0.722128f, 0.721996f, 0.721863f, 0.721730f, 0.721597f, 0.721465f, 0.721332f, 0.721199f,
+ 0.721066f, 0.720933f, 0.720800f, 0.720668f, 0.720535f, 0.720402f, 0.720269f, 0.720136f,
+ 0.720003f, 0.719869f, 0.719736f, 0.719603f, 0.719470f, 0.719337f, 0.719204f, 0.719070f,
+ 0.718937f, 0.718804f, 0.718670f, 0.718537f, 0.718404f, 0.718270f, 0.718137f, 0.718004f,
+ 0.717870f, 0.717737f, 0.717603f, 0.717469f, 0.717336f, 0.717202f, 0.717069f, 0.716935f,
+ 0.716801f, 0.716668f, 0.716534f, 0.716400f, 0.716266f, 0.716132f, 0.715999f, 0.715865f,
+ 0.715731f, 0.715597f, 0.715463f, 0.715329f, 0.715195f, 0.715061f, 0.714927f, 0.714793f,
+ 0.714659f, 0.714525f, 0.714390f, 0.714256f, 0.714122f, 0.713988f, 0.713853f, 0.713719f,
+ 0.713585f, 0.713451f, 0.713316f, 0.713182f, 0.713047f, 0.712913f, 0.712778f, 0.712644f,
+ 0.712509f, 0.712375f, 0.712240f, 0.712106f, 0.711971f, 0.711836f, 0.711702f, 0.711567f,
+ 0.711432f, 0.711297f, 0.711163f, 0.711028f, 0.710893f, 0.710758f, 0.710623f, 0.710488f,
+ 0.710353f, 0.710218f, 0.710083f, 0.709948f, 0.709813f, 0.709678f, 0.709543f, 0.709408f,
+ 0.709273f, 0.709138f, 0.709002f, 0.708867f, 0.708732f, 0.708597f, 0.708461f, 0.708326f,
+ 0.708191f, 0.708055f, 0.707920f, 0.707784f, 0.707649f, 0.707513f, 0.707378f, 0.707242f,
+ 0.707107f, 0.706971f, 0.706836f, 0.706700f, 0.706564f, 0.706429f, 0.706293f, 0.706157f,
+ 0.706021f, 0.705885f, 0.705750f, 0.705614f, 0.705478f, 0.705342f, 0.705206f, 0.705070f,
+ 0.704934f, 0.704798f, 0.704662f, 0.704526f, 0.704390f, 0.704254f, 0.704118f, 0.703981f,
+ 0.703845f, 0.703709f, 0.703573f, 0.703436f, 0.703300f, 0.703164f, 0.703028f, 0.702891f,
+ 0.702755f, 0.702618f, 0.702482f, 0.702345f, 0.702209f, 0.702072f, 0.701936f, 0.701799f,
+ 0.701663f, 0.701526f, 0.701389f, 0.701253f, 0.701116f, 0.700979f, 0.700842f, 0.700706f,
+ 0.700569f, 0.700432f, 0.700295f, 0.700158f, 0.700021f, 0.699884f, 0.699747f, 0.699610f,
+ 0.699473f, 0.699336f, 0.699199f, 0.699062f, 0.698925f, 0.698788f, 0.698651f, 0.698513f,
+ 0.698376f, 0.698239f, 0.698102f, 0.697964f, 0.697827f, 0.697690f, 0.697552f, 0.697415f,
+ 0.697277f, 0.697140f, 0.697003f, 0.696865f, 0.696728f, 0.696590f, 0.696452f, 0.696315f,
+ 0.696177f, 0.696039f, 0.695902f, 0.695764f, 0.695626f, 0.695489f, 0.695351f, 0.695213f,
+ 0.695075f, 0.694937f, 0.694799f, 0.694661f, 0.694524f, 0.694386f, 0.694248f, 0.694109f,
+ 0.693971f, 0.693833f, 0.693695f, 0.693557f, 0.693419f, 0.693281f, 0.693143f, 0.693004f,
+ 0.692866f, 0.692728f, 0.692590f, 0.692451f, 0.692313f, 0.692175f, 0.692036f, 0.691898f,
+ 0.691759f, 0.691621f, 0.691482f, 0.691344f, 0.691205f, 0.691067f, 0.690928f, 0.690789f,
+ 0.690651f, 0.690512f, 0.690373f, 0.690235f, 0.690096f, 0.689957f, 0.689818f, 0.689679f,
+ 0.689541f, 0.689402f, 0.689263f, 0.689124f, 0.688985f, 0.688846f, 0.688707f, 0.688568f,
+ 0.688429f, 0.688290f, 0.688151f, 0.688011f, 0.687872f, 0.687733f, 0.687594f, 0.687455f,
+ 0.687315f, 0.687176f, 0.687037f, 0.686897f, 0.686758f, 0.686619f, 0.686479f, 0.686340f,
+ 0.686200f, 0.686061f, 0.685921f, 0.685782f, 0.685642f, 0.685503f, 0.685363f, 0.685223f,
+ 0.685084f, 0.684944f, 0.684804f, 0.684664f, 0.684525f, 0.684385f, 0.684245f, 0.684105f,
+ 0.683965f, 0.683825f, 0.683686f, 0.683546f, 0.683406f, 0.683266f, 0.683126f, 0.682986f,
+ 0.682846f, 0.682705f, 0.682565f, 0.682425f, 0.682285f, 0.682145f, 0.682005f, 0.681864f,
+ 0.681724f, 0.681584f, 0.681443f, 0.681303f, 0.681163f, 0.681022f, 0.680882f, 0.680741f,
+ 0.680601f, 0.680461f, 0.680320f, 0.680179f, 0.680039f, 0.679898f, 0.679758f, 0.679617f,
+ 0.679476f, 0.679336f, 0.679195f, 0.679054f, 0.678913f, 0.678773f, 0.678632f, 0.678491f,
+ 0.678350f, 0.678209f, 0.678068f, 0.677927f, 0.677786f, 0.677645f, 0.677504f, 0.677363f,
+ 0.677222f, 0.677081f, 0.676940f, 0.676799f, 0.676658f, 0.676516f, 0.676375f, 0.676234f,
+ 0.676093f, 0.675951f, 0.675810f, 0.675669f, 0.675527f, 0.675386f, 0.675245f, 0.675103f,
+ 0.674962f, 0.674820f, 0.674679f, 0.674537f, 0.674396f, 0.674254f, 0.674112f, 0.673971f,
+ 0.673829f, 0.673687f, 0.673546f, 0.673404f, 0.673262f, 0.673120f, 0.672978f, 0.672837f,
+ 0.672695f, 0.672553f, 0.672411f, 0.672269f, 0.672127f, 0.671985f, 0.671843f, 0.671701f,
+ 0.671559f, 0.671417f, 0.671275f, 0.671133f, 0.670990f, 0.670848f, 0.670706f, 0.670564f,
+ 0.670422f, 0.670279f, 0.670137f, 0.669995f, 0.669852f, 0.669710f, 0.669567f, 0.669425f,
+ 0.669283f, 0.669140f, 0.668998f, 0.668855f, 0.668712f, 0.668570f, 0.668427f, 0.668285f,
+ 0.668142f, 0.667999f, 0.667857f, 0.667714f, 0.667571f, 0.667428f, 0.667286f, 0.667143f,
+ 0.667000f, 0.666857f, 0.666714f, 0.666571f, 0.666428f, 0.666285f, 0.666142f, 0.665999f,
+ 0.665856f, 0.665713f, 0.665570f, 0.665427f, 0.665284f, 0.665141f, 0.664997f, 0.664854f,
+ 0.664711f, 0.664568f, 0.664424f, 0.664281f, 0.664138f, 0.663994f, 0.663851f, 0.663708f,
+ 0.663564f, 0.663421f, 0.663277f, 0.663134f, 0.662990f, 0.662847f, 0.662703f, 0.662559f,
+ 0.662416f, 0.662272f, 0.662128f, 0.661985f, 0.661841f, 0.661697f, 0.661553f, 0.661410f,
+ 0.661266f, 0.661122f, 0.660978f, 0.660834f, 0.660690f, 0.660546f, 0.660402f, 0.660258f,
+ 0.660114f, 0.659970f, 0.659826f, 0.659682f, 0.659538f, 0.659394f, 0.659250f, 0.659105f,
+ 0.658961f, 0.658817f, 0.658673f, 0.658529f, 0.658384f, 0.658240f, 0.658095f, 0.657951f,
+ 0.657807f, 0.657662f, 0.657518f, 0.657373f, 0.657229f, 0.657084f, 0.656940f, 0.656795f,
+ 0.656651f, 0.656506f, 0.656361f, 0.656217f, 0.656072f, 0.655927f, 0.655782f, 0.655638f,
+ 0.655493f, 0.655348f, 0.655203f, 0.655058f, 0.654913f, 0.654769f, 0.654624f, 0.654479f,
+ 0.654334f, 0.654189f, 0.654044f, 0.653899f, 0.653753f, 0.653608f, 0.653463f, 0.653318f,
+ 0.653173f, 0.653028f, 0.652882f, 0.652737f, 0.652592f, 0.652447f, 0.652301f, 0.652156f,
+ 0.652011f, 0.651865f, 0.651720f, 0.651574f, 0.651429f, 0.651283f, 0.651138f, 0.650992f,
+ 0.650847f, 0.650701f, 0.650555f, 0.650410f, 0.650264f, 0.650119f, 0.649973f, 0.649827f,
+ 0.649681f, 0.649536f, 0.649390f, 0.649244f, 0.649098f, 0.648952f, 0.648806f, 0.648660f,
+ 0.648514f, 0.648368f, 0.648222f, 0.648076f, 0.647930f, 0.647784f, 0.647638f, 0.647492f,
+ 0.647346f, 0.647200f, 0.647054f, 0.646907f, 0.646761f, 0.646615f, 0.646469f, 0.646322f,
+ 0.646176f, 0.646030f, 0.645883f, 0.645737f, 0.645590f, 0.645444f, 0.645298f, 0.645151f,
+ 0.645005f, 0.644858f, 0.644711f, 0.644565f, 0.644418f, 0.644272f, 0.644125f, 0.643978f,
+ 0.643832f, 0.643685f, 0.643538f, 0.643391f, 0.643245f, 0.643098f, 0.642951f, 0.642804f,
+ 0.642657f, 0.642510f, 0.642363f, 0.642216f, 0.642069f, 0.641922f, 0.641775f, 0.641628f,
+ 0.641481f, 0.641334f, 0.641187f, 0.641040f, 0.640892f, 0.640745f, 0.640598f, 0.640451f,
+ 0.640303f, 0.640156f, 0.640009f, 0.639862f, 0.639714f, 0.639567f, 0.639419f, 0.639272f,
+ 0.639124f, 0.638977f, 0.638829f, 0.638682f, 0.638534f, 0.638387f, 0.638239f, 0.638092f,
+ 0.637944f, 0.637796f, 0.637649f, 0.637501f, 0.637353f, 0.637205f, 0.637057f, 0.636910f,
+ 0.636762f, 0.636614f, 0.636466f, 0.636318f, 0.636170f, 0.636022f, 0.635874f, 0.635726f,
+ 0.635578f, 0.635430f, 0.635282f, 0.635134f, 0.634986f, 0.634838f, 0.634690f, 0.634542f,
+ 0.634393f, 0.634245f, 0.634097f, 0.633949f, 0.633800f, 0.633652f, 0.633504f, 0.633355f,
+ 0.633207f, 0.633058f, 0.632910f, 0.632761f, 0.632613f, 0.632464f, 0.632316f, 0.632167f,
+ 0.632019f, 0.631870f, 0.631721f, 0.631573f, 0.631424f, 0.631275f, 0.631127f, 0.630978f,
+ 0.630829f, 0.630680f, 0.630532f, 0.630383f, 0.630234f, 0.630085f, 0.629936f, 0.629787f,
+ 0.629638f, 0.629489f, 0.629340f, 0.629191f, 0.629042f, 0.628893f, 0.628744f, 0.628595f,
+ 0.628446f, 0.628297f, 0.628147f, 0.627998f, 0.627849f, 0.627700f, 0.627550f, 0.627401f,
+ 0.627252f, 0.627102f, 0.626953f, 0.626804f, 0.626654f, 0.626505f, 0.626355f, 0.626206f,
+ 0.626056f, 0.625907f, 0.625757f, 0.625608f, 0.625458f, 0.625309f, 0.625159f, 0.625009f,
+ 0.624860f, 0.624710f, 0.624560f, 0.624410f, 0.624260f, 0.624111f, 0.623961f, 0.623811f,
+ 0.623661f, 0.623511f, 0.623361f, 0.623211f, 0.623061f, 0.622911f, 0.622761f, 0.622611f,
+ 0.622461f, 0.622311f, 0.622161f, 0.622011f, 0.621861f, 0.621711f, 0.621560f, 0.621410f,
+ 0.621260f, 0.621110f, 0.620959f, 0.620809f, 0.620659f, 0.620508f, 0.620358f, 0.620208f,
+ 0.620057f, 0.619907f, 0.619756f, 0.619606f, 0.619455f, 0.619305f, 0.619154f, 0.619004f,
+ 0.618853f, 0.618702f, 0.618552f, 0.618401f, 0.618250f, 0.618100f, 0.617949f, 0.617798f,
+ 0.617647f, 0.617496f, 0.617346f, 0.617195f, 0.617044f, 0.616893f, 0.616742f, 0.616591f,
+ 0.616440f, 0.616289f, 0.616138f, 0.615987f, 0.615836f, 0.615685f, 0.615534f, 0.615383f,
+ 0.615232f, 0.615080f, 0.614929f, 0.614778f, 0.614627f, 0.614475f, 0.614324f, 0.614173f,
+ 0.614022f, 0.613870f, 0.613719f, 0.613567f, 0.613416f, 0.613265f, 0.613113f, 0.612962f,
+ 0.612810f, 0.612659f, 0.612507f, 0.612355f, 0.612204f, 0.612052f, 0.611901f, 0.611749f,
+ 0.611597f, 0.611445f, 0.611294f, 0.611142f, 0.610990f, 0.610838f, 0.610687f, 0.610535f,
+ 0.610383f, 0.610231f, 0.610079f, 0.609927f, 0.609775f, 0.609623f, 0.609471f, 0.609319f,
+ 0.609167f, 0.609015f, 0.608863f, 0.608711f, 0.608559f, 0.608406f, 0.608254f, 0.608102f,
+ 0.607950f, 0.607798f, 0.607645f, 0.607493f, 0.607341f, 0.607188f, 0.607036f, 0.606884f,
+ 0.606731f, 0.606579f, 0.606426f, 0.606274f, 0.606121f, 0.605969f, 0.605816f, 0.605664f,
+ 0.605511f, 0.605358f, 0.605206f, 0.605053f, 0.604900f, 0.604748f, 0.604595f, 0.604442f,
+ 0.604290f, 0.604137f, 0.603984f, 0.603831f, 0.603678f, 0.603525f, 0.603372f, 0.603220f,
+ 0.603067f, 0.602914f, 0.602761f, 0.602608f, 0.602455f, 0.602302f, 0.602148f, 0.601995f,
+ 0.601842f, 0.601689f, 0.601536f, 0.601383f, 0.601230f, 0.601076f, 0.600923f, 0.600770f,
+ 0.600616f, 0.600463f, 0.600310f, 0.600156f, 0.600003f, 0.599850f, 0.599696f, 0.599543f,
+ 0.599389f, 0.599236f, 0.599082f, 0.598929f, 0.598775f, 0.598622f, 0.598468f, 0.598314f,
+ 0.598161f, 0.598007f, 0.597853f, 0.597700f, 0.597546f, 0.597392f, 0.597238f, 0.597085f,
+ 0.596931f, 0.596777f, 0.596623f, 0.596469f, 0.596315f, 0.596161f, 0.596007f, 0.595853f,
+ 0.595699f, 0.595545f, 0.595391f, 0.595237f, 0.595083f, 0.594929f, 0.594775f, 0.594621f,
+ 0.594467f, 0.594312f, 0.594158f, 0.594004f, 0.593850f, 0.593695f, 0.593541f, 0.593387f,
+ 0.593232f, 0.593078f, 0.592924f, 0.592769f, 0.592615f, 0.592460f, 0.592306f, 0.592151f,
+ 0.591997f, 0.591842f, 0.591688f, 0.591533f, 0.591378f, 0.591224f, 0.591069f, 0.590914f,
+ 0.590760f, 0.590605f, 0.590450f, 0.590295f, 0.590141f, 0.589986f, 0.589831f, 0.589676f,
+ 0.589521f, 0.589366f, 0.589212f, 0.589057f, 0.588902f, 0.588747f, 0.588592f, 0.588437f,
+ 0.588282f, 0.588126f, 0.587971f, 0.587816f, 0.587661f, 0.587506f, 0.587351f, 0.587196f,
+ 0.587040f, 0.586885f, 0.586730f, 0.586575f, 0.586419f, 0.586264f, 0.586109f, 0.585953f,
+ 0.585798f, 0.585642f, 0.585487f, 0.585332f, 0.585176f, 0.585021f, 0.584865f, 0.584710f,
+ 0.584554f, 0.584398f, 0.584243f, 0.584087f, 0.583931f, 0.583776f, 0.583620f, 0.583464f,
+ 0.583309f, 0.583153f, 0.582997f, 0.582841f, 0.582685f, 0.582530f, 0.582374f, 0.582218f,
+ 0.582062f, 0.581906f, 0.581750f, 0.581594f, 0.581438f, 0.581282f, 0.581126f, 0.580970f,
+ 0.580814f, 0.580658f, 0.580502f, 0.580346f, 0.580189f, 0.580033f, 0.579877f, 0.579721f,
+ 0.579565f, 0.579408f, 0.579252f, 0.579096f, 0.578939f, 0.578783f, 0.578627f, 0.578470f,
+ 0.578314f, 0.578157f, 0.578001f, 0.577844f, 0.577688f, 0.577531f, 0.577375f, 0.577218f,
+ 0.577062f, 0.576905f, 0.576748f, 0.576592f, 0.576435f, 0.576278f, 0.576122f, 0.575965f,
+ 0.575808f, 0.575651f, 0.575495f, 0.575338f, 0.575181f, 0.575024f, 0.574867f, 0.574710f,
+ 0.574553f, 0.574396f, 0.574239f, 0.574082f, 0.573925f, 0.573768f, 0.573611f, 0.573454f,
+ 0.573297f, 0.573140f, 0.572983f, 0.572826f, 0.572669f, 0.572511f, 0.572354f, 0.572197f,
+ 0.572040f, 0.571882f, 0.571725f, 0.571568f, 0.571410f, 0.571253f, 0.571096f, 0.570938f,
+ 0.570781f, 0.570623f, 0.570466f, 0.570308f, 0.570151f, 0.569993f, 0.569836f, 0.569678f,
+ 0.569521f, 0.569363f, 0.569205f, 0.569048f, 0.568890f, 0.568732f, 0.568574f, 0.568417f,
+ 0.568259f, 0.568101f, 0.567943f, 0.567786f, 0.567628f, 0.567470f, 0.567312f, 0.567154f,
+ 0.566996f, 0.566838f, 0.566680f, 0.566522f, 0.566364f, 0.566206f, 0.566048f, 0.565890f,
+ 0.565732f, 0.565574f, 0.565416f, 0.565257f, 0.565099f, 0.564941f, 0.564783f, 0.564624f,
+ 0.564466f, 0.564308f, 0.564150f, 0.563991f, 0.563833f, 0.563675f, 0.563516f, 0.563358f,
+ 0.563199f, 0.563041f, 0.562882f, 0.562724f, 0.562565f, 0.562407f, 0.562248f, 0.562090f,
+ 0.561931f, 0.561773f, 0.561614f, 0.561455f, 0.561297f, 0.561138f, 0.560979f, 0.560820f,
+ 0.560662f, 0.560503f, 0.560344f, 0.560185f, 0.560026f, 0.559867f, 0.559709f, 0.559550f,
+ 0.559391f, 0.559232f, 0.559073f, 0.558914f, 0.558755f, 0.558596f, 0.558437f, 0.558278f,
+ 0.558119f, 0.557959f, 0.557800f, 0.557641f, 0.557482f, 0.557323f, 0.557164f, 0.557004f,
+ 0.556845f, 0.556686f, 0.556526f, 0.556367f, 0.556208f, 0.556048f, 0.555889f, 0.555730f,
+ 0.555570f, 0.555411f, 0.555251f, 0.555092f, 0.554932f, 0.554773f, 0.554613f, 0.554454f,
+ 0.554294f, 0.554134f, 0.553975f, 0.553815f, 0.553656f, 0.553496f, 0.553336f, 0.553176f,
+ 0.553017f, 0.552857f, 0.552697f, 0.552537f, 0.552378f, 0.552218f, 0.552058f, 0.551898f,
+ 0.551738f, 0.551578f, 0.551418f, 0.551258f, 0.551098f, 0.550938f, 0.550778f, 0.550618f,
+ 0.550458f, 0.550298f, 0.550138f, 0.549978f, 0.549818f, 0.549657f, 0.549497f, 0.549337f,
+ 0.549177f, 0.549016f, 0.548856f, 0.548696f, 0.548536f, 0.548375f, 0.548215f, 0.548054f,
+ 0.547894f, 0.547734f, 0.547573f, 0.547413f, 0.547252f, 0.547092f, 0.546931f, 0.546771f,
+ 0.546610f, 0.546450f, 0.546289f, 0.546128f, 0.545968f, 0.545807f, 0.545646f, 0.545486f,
+ 0.545325f, 0.545164f, 0.545003f, 0.544843f, 0.544682f, 0.544521f, 0.544360f, 0.544199f,
+ 0.544039f, 0.543878f, 0.543717f, 0.543556f, 0.543395f, 0.543234f, 0.543073f, 0.542912f,
+ 0.542751f, 0.542590f, 0.542429f, 0.542268f, 0.542106f, 0.541945f, 0.541784f, 0.541623f,
+ 0.541462f, 0.541301f, 0.541139f, 0.540978f, 0.540817f, 0.540655f, 0.540494f, 0.540333f,
+ 0.540171f, 0.540010f, 0.539849f, 0.539687f, 0.539526f, 0.539364f, 0.539203f, 0.539041f,
+ 0.538880f, 0.538718f, 0.538557f, 0.538395f, 0.538234f, 0.538072f, 0.537910f, 0.537749f,
+ 0.537587f, 0.537425f, 0.537264f, 0.537102f, 0.536940f, 0.536778f, 0.536617f, 0.536455f,
+ 0.536293f, 0.536131f, 0.535969f, 0.535807f, 0.535645f, 0.535484f, 0.535322f, 0.535160f,
+ 0.534998f, 0.534836f, 0.534674f, 0.534512f, 0.534349f, 0.534187f, 0.534025f, 0.533863f,
+ 0.533701f, 0.533539f, 0.533377f, 0.533214f, 0.533052f, 0.532890f, 0.532728f, 0.532565f,
+ 0.532403f, 0.532241f, 0.532078f, 0.531916f, 0.531754f, 0.531591f, 0.531429f, 0.531266f,
+ 0.531104f, 0.530942f, 0.530779f, 0.530617f, 0.530454f, 0.530291f, 0.530129f, 0.529966f,
+ 0.529804f, 0.529641f, 0.529478f, 0.529316f, 0.529153f, 0.528990f, 0.528828f, 0.528665f,
+ 0.528502f, 0.528339f, 0.528176f, 0.528014f, 0.527851f, 0.527688f, 0.527525f, 0.527362f,
+ 0.527199f, 0.527036f, 0.526873f, 0.526710f, 0.526547f, 0.526384f, 0.526221f, 0.526058f,
+ 0.525895f, 0.525732f, 0.525569f, 0.525406f, 0.525243f, 0.525079f, 0.524916f, 0.524753f,
+ 0.524590f, 0.524426f, 0.524263f, 0.524100f, 0.523937f, 0.523773f, 0.523610f, 0.523447f,
+ 0.523283f, 0.523120f, 0.522956f, 0.522793f, 0.522629f, 0.522466f, 0.522302f, 0.522139f,
+ 0.521975f, 0.521812f, 0.521648f, 0.521485f, 0.521321f, 0.521157f, 0.520994f, 0.520830f,
+ 0.520666f, 0.520503f, 0.520339f, 0.520175f, 0.520011f, 0.519848f, 0.519684f, 0.519520f,
+ 0.519356f, 0.519192f, 0.519028f, 0.518864f, 0.518700f, 0.518536f, 0.518372f, 0.518209f,
+ 0.518045f, 0.517880f, 0.517716f, 0.517552f, 0.517388f, 0.517224f, 0.517060f, 0.516896f,
+ 0.516732f, 0.516568f, 0.516403f, 0.516239f, 0.516075f, 0.515911f, 0.515746f, 0.515582f,
+ 0.515418f, 0.515254f, 0.515089f, 0.514925f, 0.514760f, 0.514596f, 0.514432f, 0.514267f,
+ 0.514103f, 0.513938f, 0.513774f, 0.513609f, 0.513445f, 0.513280f, 0.513116f, 0.512951f,
+ 0.512786f, 0.512622f, 0.512457f, 0.512292f, 0.512128f, 0.511963f, 0.511798f, 0.511634f,
+ 0.511469f, 0.511304f, 0.511139f, 0.510974f, 0.510810f, 0.510645f, 0.510480f, 0.510315f,
+ 0.510150f, 0.509985f, 0.509820f, 0.509655f, 0.509490f, 0.509325f, 0.509160f, 0.508995f,
+ 0.508830f, 0.508665f, 0.508500f, 0.508335f, 0.508170f, 0.508005f, 0.507839f, 0.507674f,
+ 0.507509f, 0.507344f, 0.507179f, 0.507013f, 0.506848f, 0.506683f, 0.506517f, 0.506352f,
+ 0.506187f, 0.506021f, 0.505856f, 0.505690f, 0.505525f, 0.505360f, 0.505194f, 0.505029f,
+ 0.504863f, 0.504698f, 0.504532f, 0.504366f, 0.504201f, 0.504035f, 0.503870f, 0.503704f,
+ 0.503538f, 0.503373f, 0.503207f, 0.503041f, 0.502876f, 0.502710f, 0.502544f, 0.502378f,
+ 0.502212f, 0.502047f, 0.501881f, 0.501715f, 0.501549f, 0.501383f, 0.501217f, 0.501051f,
+ 0.500885f, 0.500719f, 0.500553f, 0.500387f, 0.500221f, 0.500055f, 0.499889f, 0.499723f,
+ 0.499557f, 0.499391f, 0.499225f, 0.499059f, 0.498893f, 0.498726f, 0.498560f, 0.498394f,
+ 0.498228f, 0.498061f, 0.497895f, 0.497729f, 0.497562f, 0.497396f, 0.497230f, 0.497063f,
+ 0.496897f, 0.496731f, 0.496564f, 0.496398f, 0.496231f, 0.496065f, 0.495898f, 0.495732f,
+ 0.495565f, 0.495399f, 0.495232f, 0.495066f, 0.494899f, 0.494732f, 0.494566f, 0.494399f,
+ 0.494232f, 0.494066f, 0.493899f, 0.493732f, 0.493565f, 0.493399f, 0.493232f, 0.493065f,
+ 0.492898f, 0.492731f, 0.492564f, 0.492398f, 0.492231f, 0.492064f, 0.491897f, 0.491730f,
+ 0.491563f, 0.491396f, 0.491229f, 0.491062f, 0.490895f, 0.490728f, 0.490561f, 0.490394f,
+ 0.490226f, 0.490059f, 0.489892f, 0.489725f, 0.489558f, 0.489391f, 0.489223f, 0.489056f,
+ 0.488889f, 0.488722f, 0.488554f, 0.488387f, 0.488220f, 0.488052f, 0.487885f, 0.487718f,
+ 0.487550f, 0.487383f, 0.487215f, 0.487048f, 0.486880f, 0.486713f, 0.486545f, 0.486378f,
+ 0.486210f, 0.486043f, 0.485875f, 0.485708f, 0.485540f, 0.485372f, 0.485205f, 0.485037f,
+ 0.484869f, 0.484702f, 0.484534f, 0.484366f, 0.484198f, 0.484031f, 0.483863f, 0.483695f,
+ 0.483527f, 0.483359f, 0.483191f, 0.483023f, 0.482856f, 0.482688f, 0.482520f, 0.482352f,
+ 0.482184f, 0.482016f, 0.481848f, 0.481680f, 0.481512f, 0.481344f, 0.481176f, 0.481007f,
+ 0.480839f, 0.480671f, 0.480503f, 0.480335f, 0.480167f, 0.479998f, 0.479830f, 0.479662f,
+ 0.479494f, 0.479325f, 0.479157f, 0.478989f, 0.478821f, 0.478652f, 0.478484f, 0.478315f,
+ 0.478147f, 0.477979f, 0.477810f, 0.477642f, 0.477473f, 0.477305f, 0.477136f, 0.476968f,
+ 0.476799f, 0.476631f, 0.476462f, 0.476294f, 0.476125f, 0.475956f, 0.475788f, 0.475619f,
+ 0.475450f, 0.475282f, 0.475113f, 0.474944f, 0.474775f, 0.474607f, 0.474438f, 0.474269f,
+ 0.474100f, 0.473931f, 0.473763f, 0.473594f, 0.473425f, 0.473256f, 0.473087f, 0.472918f,
+ 0.472749f, 0.472580f, 0.472411f, 0.472242f, 0.472073f, 0.471904f, 0.471735f, 0.471566f,
+ 0.471397f, 0.471228f, 0.471058f, 0.470889f, 0.470720f, 0.470551f, 0.470382f, 0.470213f,
+ 0.470043f, 0.469874f, 0.469705f, 0.469536f, 0.469366f, 0.469197f, 0.469028f, 0.468858f,
+ 0.468689f, 0.468519f, 0.468350f, 0.468181f, 0.468011f, 0.467842f, 0.467672f, 0.467503f,
+ 0.467333f, 0.467164f, 0.466994f, 0.466825f, 0.466655f, 0.466485f, 0.466316f, 0.466146f,
+ 0.465977f, 0.465807f, 0.465637f, 0.465467f, 0.465298f, 0.465128f, 0.464958f, 0.464788f,
+ 0.464619f, 0.464449f, 0.464279f, 0.464109f, 0.463939f, 0.463769f, 0.463600f, 0.463430f,
+ 0.463260f, 0.463090f, 0.462920f, 0.462750f, 0.462580f, 0.462410f, 0.462240f, 0.462070f,
+ 0.461900f, 0.461730f, 0.461560f, 0.461390f, 0.461219f, 0.461049f, 0.460879f, 0.460709f,
+ 0.460539f, 0.460369f, 0.460198f, 0.460028f, 0.459858f, 0.459687f, 0.459517f, 0.459347f,
+ 0.459177f, 0.459006f, 0.458836f, 0.458665f, 0.458495f, 0.458325f, 0.458154f, 0.457984f,
+ 0.457813f, 0.457643f, 0.457472f, 0.457302f, 0.457131f, 0.456961f, 0.456790f, 0.456620f,
+ 0.456449f, 0.456278f, 0.456108f, 0.455937f, 0.455766f, 0.455596f, 0.455425f, 0.455254f,
+ 0.455084f, 0.454913f, 0.454742f, 0.454571f, 0.454400f, 0.454230f, 0.454059f, 0.453888f,
+ 0.453717f, 0.453546f, 0.453375f, 0.453204f, 0.453033f, 0.452863f, 0.452692f, 0.452521f,
+ 0.452350f, 0.452179f, 0.452008f, 0.451836f, 0.451665f, 0.451494f, 0.451323f, 0.451152f,
+ 0.450981f, 0.450810f, 0.450639f, 0.450467f, 0.450296f, 0.450125f, 0.449954f, 0.449783f,
+ 0.449611f, 0.449440f, 0.449269f, 0.449097f, 0.448926f, 0.448755f, 0.448583f, 0.448412f,
+ 0.448241f, 0.448069f, 0.447898f, 0.447726f, 0.447555f, 0.447383f, 0.447212f, 0.447040f,
+ 0.446869f, 0.446697f, 0.446526f, 0.446354f, 0.446183f, 0.446011f, 0.445839f, 0.445668f,
+ 0.445496f, 0.445324f, 0.445153f, 0.444981f, 0.444809f, 0.444637f, 0.444466f, 0.444294f,
+ 0.444122f, 0.443950f, 0.443779f, 0.443607f, 0.443435f, 0.443263f, 0.443091f, 0.442919f,
+ 0.442747f, 0.442575f, 0.442403f, 0.442231f, 0.442059f, 0.441887f, 0.441715f, 0.441543f,
+ 0.441371f, 0.441199f, 0.441027f, 0.440855f, 0.440683f, 0.440511f, 0.440339f, 0.440166f,
+ 0.439994f, 0.439822f, 0.439650f, 0.439478f, 0.439305f, 0.439133f, 0.438961f, 0.438789f,
+ 0.438616f, 0.438444f, 0.438272f, 0.438099f, 0.437927f, 0.437754f, 0.437582f, 0.437410f,
+ 0.437237f, 0.437065f, 0.436892f, 0.436720f, 0.436547f, 0.436375f, 0.436202f, 0.436030f,
+ 0.435857f, 0.435685f, 0.435512f, 0.435339f, 0.435167f, 0.434994f, 0.434821f, 0.434649f,
+ 0.434476f, 0.434303f, 0.434131f, 0.433958f, 0.433785f, 0.433612f, 0.433439f, 0.433267f,
+ 0.433094f, 0.432921f, 0.432748f, 0.432575f, 0.432402f, 0.432229f, 0.432057f, 0.431884f,
+ 0.431711f, 0.431538f, 0.431365f, 0.431192f, 0.431019f, 0.430846f, 0.430673f, 0.430500f,
+ 0.430326f, 0.430153f, 0.429980f, 0.429807f, 0.429634f, 0.429461f, 0.429288f, 0.429114f,
+ 0.428941f, 0.428768f, 0.428595f, 0.428422f, 0.428248f, 0.428075f, 0.427902f, 0.427728f,
+ 0.427555f, 0.427382f, 0.427208f, 0.427035f, 0.426862f, 0.426688f, 0.426515f, 0.426341f,
+ 0.426168f, 0.425994f, 0.425821f, 0.425647f, 0.425474f, 0.425300f, 0.425127f, 0.424953f,
+ 0.424780f, 0.424606f, 0.424432f, 0.424259f, 0.424085f, 0.423912f, 0.423738f, 0.423564f,
+ 0.423390f, 0.423217f, 0.423043f, 0.422869f, 0.422695f, 0.422522f, 0.422348f, 0.422174f,
+ 0.422000f, 0.421826f, 0.421653f, 0.421479f, 0.421305f, 0.421131f, 0.420957f, 0.420783f,
+ 0.420609f, 0.420435f, 0.420261f, 0.420087f, 0.419913f, 0.419739f, 0.419565f, 0.419391f,
+ 0.419217f, 0.419043f, 0.418869f, 0.418695f, 0.418520f, 0.418346f, 0.418172f, 0.417998f,
+ 0.417824f, 0.417650f, 0.417475f, 0.417301f, 0.417127f, 0.416952f, 0.416778f, 0.416604f,
+ 0.416430f, 0.416255f, 0.416081f, 0.415906f, 0.415732f, 0.415558f, 0.415383f, 0.415209f,
+ 0.415034f, 0.414860f, 0.414685f, 0.414511f, 0.414337f, 0.414162f, 0.413987f, 0.413813f,
+ 0.413638f, 0.413464f, 0.413289f, 0.413115f, 0.412940f, 0.412765f, 0.412591f, 0.412416f,
+ 0.412241f, 0.412067f, 0.411892f, 0.411717f, 0.411542f, 0.411368f, 0.411193f, 0.411018f,
+ 0.410843f, 0.410668f, 0.410493f, 0.410319f, 0.410144f, 0.409969f, 0.409794f, 0.409619f,
+ 0.409444f, 0.409269f, 0.409094f, 0.408919f, 0.408744f, 0.408569f, 0.408394f, 0.408219f,
+ 0.408044f, 0.407869f, 0.407694f, 0.407519f, 0.407344f, 0.407169f, 0.406994f, 0.406818f,
+ 0.406643f, 0.406468f, 0.406293f, 0.406118f, 0.405942f, 0.405767f, 0.405592f, 0.405417f,
+ 0.405241f, 0.405066f, 0.404891f, 0.404715f, 0.404540f, 0.404365f, 0.404189f, 0.404014f,
+ 0.403838f, 0.403663f, 0.403488f, 0.403312f, 0.403137f, 0.402961f, 0.402786f, 0.402610f,
+ 0.402435f, 0.402259f, 0.402084f, 0.401908f, 0.401732f, 0.401557f, 0.401381f, 0.401206f,
+ 0.401030f, 0.400854f, 0.400679f, 0.400503f, 0.400327f, 0.400151f, 0.399976f, 0.399800f,
+ 0.399624f, 0.399448f, 0.399273f, 0.399097f, 0.398921f, 0.398745f, 0.398569f, 0.398393f,
+ 0.398218f, 0.398042f, 0.397866f, 0.397690f, 0.397514f, 0.397338f, 0.397162f, 0.396986f,
+ 0.396810f, 0.396634f, 0.396458f, 0.396282f, 0.396106f, 0.395930f, 0.395754f, 0.395578f,
+ 0.395401f, 0.395225f, 0.395049f, 0.394873f, 0.394697f, 0.394521f, 0.394344f, 0.394168f,
+ 0.393992f, 0.393816f, 0.393640f, 0.393463f, 0.393287f, 0.393111f, 0.392934f, 0.392758f,
+ 0.392582f, 0.392405f, 0.392229f, 0.392053f, 0.391876f, 0.391700f, 0.391523f, 0.391347f,
+ 0.391170f, 0.390994f, 0.390817f, 0.390641f, 0.390464f, 0.390288f, 0.390111f, 0.389935f,
+ 0.389758f, 0.389582f, 0.389405f, 0.389228f, 0.389052f, 0.388875f, 0.388698f, 0.388522f,
+ 0.388345f, 0.388168f, 0.387992f, 0.387815f, 0.387638f, 0.387461f, 0.387285f, 0.387108f,
+ 0.386931f, 0.386754f, 0.386577f, 0.386400f, 0.386224f, 0.386047f, 0.385870f, 0.385693f,
+ 0.385516f, 0.385339f, 0.385162f, 0.384985f, 0.384808f, 0.384631f, 0.384454f, 0.384277f,
+ 0.384100f, 0.383923f, 0.383746f, 0.383569f, 0.383392f, 0.383215f, 0.383038f, 0.382861f,
+ 0.382683f, 0.382506f, 0.382329f, 0.382152f, 0.381975f, 0.381797f, 0.381620f, 0.381443f,
+ 0.381266f, 0.381088f, 0.380911f, 0.380734f, 0.380557f, 0.380379f, 0.380202f, 0.380025f,
+ 0.379847f, 0.379670f, 0.379492f, 0.379315f, 0.379138f, 0.378960f, 0.378783f, 0.378605f,
+ 0.378428f, 0.378250f, 0.378073f, 0.377895f, 0.377718f, 0.377540f, 0.377363f, 0.377185f,
+ 0.377007f, 0.376830f, 0.376652f, 0.376475f, 0.376297f, 0.376119f, 0.375942f, 0.375764f,
+ 0.375586f, 0.375408f, 0.375231f, 0.375053f, 0.374875f, 0.374697f, 0.374520f, 0.374342f,
+ 0.374164f, 0.373986f, 0.373808f, 0.373631f, 0.373453f, 0.373275f, 0.373097f, 0.372919f,
+ 0.372741f, 0.372563f, 0.372385f, 0.372207f, 0.372029f, 0.371851f, 0.371673f, 0.371495f,
+ 0.371317f, 0.371139f, 0.370961f, 0.370783f, 0.370605f, 0.370427f, 0.370249f, 0.370071f,
+ 0.369892f, 0.369714f, 0.369536f, 0.369358f, 0.369180f, 0.369002f, 0.368823f, 0.368645f,
+ 0.368467f, 0.368289f, 0.368110f, 0.367932f, 0.367754f, 0.367575f, 0.367397f, 0.367219f,
+ 0.367040f, 0.366862f, 0.366684f, 0.366505f, 0.366327f, 0.366148f, 0.365970f, 0.365791f,
+ 0.365613f, 0.365435f, 0.365256f, 0.365078f, 0.364899f, 0.364720f, 0.364542f, 0.364363f,
+ 0.364185f, 0.364006f, 0.363828f, 0.363649f, 0.363470f, 0.363292f, 0.363113f, 0.362934f,
+ 0.362756f, 0.362577f, 0.362398f, 0.362220f, 0.362041f, 0.361862f, 0.361683f, 0.361505f,
+ 0.361326f, 0.361147f, 0.360968f, 0.360789f, 0.360611f, 0.360432f, 0.360253f, 0.360074f,
+ 0.359895f, 0.359716f, 0.359537f, 0.359358f, 0.359179f, 0.359000f, 0.358821f, 0.358642f,
+ 0.358463f, 0.358284f, 0.358105f, 0.357926f, 0.357747f, 0.357568f, 0.357389f, 0.357210f,
+ 0.357031f, 0.356852f, 0.356673f, 0.356494f, 0.356314f, 0.356135f, 0.355956f, 0.355777f,
+ 0.355598f, 0.355418f, 0.355239f, 0.355060f, 0.354881f, 0.354701f, 0.354522f, 0.354343f,
+ 0.354164f, 0.353984f, 0.353805f, 0.353626f, 0.353446f, 0.353267f, 0.353087f, 0.352908f,
+ 0.352729f, 0.352549f, 0.352370f, 0.352190f, 0.352011f, 0.351831f, 0.351652f, 0.351472f,
+ 0.351293f, 0.351113f, 0.350934f, 0.350754f, 0.350575f, 0.350395f, 0.350215f, 0.350036f,
+ 0.349856f, 0.349676f, 0.349497f, 0.349317f, 0.349138f, 0.348958f, 0.348778f, 0.348598f,
+ 0.348419f, 0.348239f, 0.348059f, 0.347879f, 0.347700f, 0.347520f, 0.347340f, 0.347160f,
+ 0.346980f, 0.346801f, 0.346621f, 0.346441f, 0.346261f, 0.346081f, 0.345901f, 0.345721f,
+ 0.345541f, 0.345361f, 0.345181f, 0.345001f, 0.344821f, 0.344641f, 0.344461f, 0.344281f,
+ 0.344101f, 0.343921f, 0.343741f, 0.343561f, 0.343381f, 0.343201f, 0.343021f, 0.342841f,
+ 0.342661f, 0.342481f, 0.342300f, 0.342120f, 0.341940f, 0.341760f, 0.341580f, 0.341399f,
+ 0.341219f, 0.341039f, 0.340859f, 0.340678f, 0.340498f, 0.340318f, 0.340138f, 0.339957f,
+ 0.339777f, 0.339597f, 0.339416f, 0.339236f, 0.339055f, 0.338875f, 0.338695f, 0.338514f,
+ 0.338334f, 0.338153f, 0.337973f, 0.337792f, 0.337612f, 0.337431f, 0.337251f, 0.337070f,
+ 0.336890f, 0.336709f, 0.336529f, 0.336348f, 0.336168f, 0.335987f, 0.335806f, 0.335626f,
+ 0.335445f, 0.335265f, 0.335084f, 0.334903f, 0.334722f, 0.334542f, 0.334361f, 0.334180f,
+ 0.334000f, 0.333819f, 0.333638f, 0.333457f, 0.333277f, 0.333096f, 0.332915f, 0.332734f,
+ 0.332553f, 0.332373f, 0.332192f, 0.332011f, 0.331830f, 0.331649f, 0.331468f, 0.331287f,
+ 0.331106f, 0.330925f, 0.330744f, 0.330563f, 0.330382f, 0.330202f, 0.330020f, 0.329839f,
+ 0.329658f, 0.329477f, 0.329296f, 0.329115f, 0.328934f, 0.328753f, 0.328572f, 0.328391f,
+ 0.328210f, 0.328029f, 0.327848f, 0.327666f, 0.327485f, 0.327304f, 0.327123f, 0.326942f,
+ 0.326760f, 0.326579f, 0.326398f, 0.326217f, 0.326035f, 0.325854f, 0.325673f, 0.325492f,
+ 0.325310f, 0.325129f, 0.324948f, 0.324766f, 0.324585f, 0.324404f, 0.324222f, 0.324041f,
+ 0.323859f, 0.323678f, 0.323497f, 0.323315f, 0.323134f, 0.322952f, 0.322771f, 0.322589f,
+ 0.322408f, 0.322226f, 0.322045f, 0.321863f, 0.321682f, 0.321500f, 0.321318f, 0.321137f,
+ 0.320955f, 0.320774f, 0.320592f, 0.320410f, 0.320229f, 0.320047f, 0.319865f, 0.319684f,
+ 0.319502f, 0.319320f, 0.319139f, 0.318957f, 0.318775f, 0.318593f, 0.318412f, 0.318230f,
+ 0.318048f, 0.317866f, 0.317684f, 0.317503f, 0.317321f, 0.317139f, 0.316957f, 0.316775f,
+ 0.316593f, 0.316411f, 0.316230f, 0.316048f, 0.315866f, 0.315684f, 0.315502f, 0.315320f,
+ 0.315138f, 0.314956f, 0.314774f, 0.314592f, 0.314410f, 0.314228f, 0.314046f, 0.313864f,
+ 0.313682f, 0.313500f, 0.313318f, 0.313135f, 0.312953f, 0.312771f, 0.312589f, 0.312407f,
+ 0.312225f, 0.312043f, 0.311860f, 0.311678f, 0.311496f, 0.311314f, 0.311132f, 0.310949f,
+ 0.310767f, 0.310585f, 0.310403f, 0.310220f, 0.310038f, 0.309856f, 0.309673f, 0.309491f,
+ 0.309309f, 0.309126f, 0.308944f, 0.308762f, 0.308579f, 0.308397f, 0.308214f, 0.308032f,
+ 0.307850f, 0.307667f, 0.307485f, 0.307302f, 0.307120f, 0.306937f, 0.306755f, 0.306572f,
+ 0.306390f, 0.306207f, 0.306025f, 0.305842f, 0.305660f, 0.305477f, 0.305294f, 0.305112f,
+ 0.304929f, 0.304747f, 0.304564f, 0.304381f, 0.304199f, 0.304016f, 0.303833f, 0.303651f,
+ 0.303468f, 0.303285f, 0.303103f, 0.302920f, 0.302737f, 0.302554f, 0.302372f, 0.302189f,
+ 0.302006f, 0.301823f, 0.301640f, 0.301458f, 0.301275f, 0.301092f, 0.300909f, 0.300726f,
+ 0.300543f, 0.300360f, 0.300177f, 0.299995f, 0.299812f, 0.299629f, 0.299446f, 0.299263f,
+ 0.299080f, 0.298897f, 0.298714f, 0.298531f, 0.298348f, 0.298165f, 0.297982f, 0.297799f,
+ 0.297616f, 0.297433f, 0.297250f, 0.297066f, 0.296883f, 0.296700f, 0.296517f, 0.296334f,
+ 0.296151f, 0.295968f, 0.295785f, 0.295601f, 0.295418f, 0.295235f, 0.295052f, 0.294869f,
+ 0.294685f, 0.294502f, 0.294319f, 0.294136f, 0.293952f, 0.293769f, 0.293586f, 0.293402f,
+ 0.293219f, 0.293036f, 0.292852f, 0.292669f, 0.292486f, 0.292302f, 0.292119f, 0.291936f,
+ 0.291752f, 0.291569f, 0.291385f, 0.291202f, 0.291019f, 0.290835f, 0.290652f, 0.290468f,
+ 0.290285f, 0.290101f, 0.289918f, 0.289734f, 0.289551f, 0.289367f, 0.289184f, 0.289000f,
+ 0.288816f, 0.288633f, 0.288449f, 0.288266f, 0.288082f, 0.287898f, 0.287715f, 0.287531f,
+ 0.287347f, 0.287164f, 0.286980f, 0.286796f, 0.286613f, 0.286429f, 0.286245f, 0.286062f,
+ 0.285878f, 0.285694f, 0.285510f, 0.285327f, 0.285143f, 0.284959f, 0.284775f, 0.284591f,
+ 0.284408f, 0.284224f, 0.284040f, 0.283856f, 0.283672f, 0.283488f, 0.283304f, 0.283120f,
+ 0.282937f, 0.282753f, 0.282569f, 0.282385f, 0.282201f, 0.282017f, 0.281833f, 0.281649f,
+ 0.281465f, 0.281281f, 0.281097f, 0.280913f, 0.280729f, 0.280545f, 0.280361f, 0.280177f,
+ 0.279993f, 0.279809f, 0.279624f, 0.279440f, 0.279256f, 0.279072f, 0.278888f, 0.278704f,
+ 0.278520f, 0.278336f, 0.278151f, 0.277967f, 0.277783f, 0.277599f, 0.277415f, 0.277230f,
+ 0.277046f, 0.276862f, 0.276678f, 0.276493f, 0.276309f, 0.276125f, 0.275940f, 0.275756f,
+ 0.275572f, 0.275387f, 0.275203f, 0.275019f, 0.274834f, 0.274650f, 0.274466f, 0.274281f,
+ 0.274097f, 0.273912f, 0.273728f, 0.273544f, 0.273359f, 0.273175f, 0.272990f, 0.272806f,
+ 0.272621f, 0.272437f, 0.272252f, 0.272068f, 0.271883f, 0.271699f, 0.271514f, 0.271330f,
+ 0.271145f, 0.270961f, 0.270776f, 0.270591f, 0.270407f, 0.270222f, 0.270038f, 0.269853f,
+ 0.269668f, 0.269484f, 0.269299f, 0.269114f, 0.268930f, 0.268745f, 0.268560f, 0.268376f,
+ 0.268191f, 0.268006f, 0.267821f, 0.267637f, 0.267452f, 0.267267f, 0.267082f, 0.266898f,
+ 0.266713f, 0.266528f, 0.266343f, 0.266158f, 0.265973f, 0.265789f, 0.265604f, 0.265419f,
+ 0.265234f, 0.265049f, 0.264864f, 0.264679f, 0.264494f, 0.264309f, 0.264125f, 0.263940f,
+ 0.263755f, 0.263570f, 0.263385f, 0.263200f, 0.263015f, 0.262830f, 0.262645f, 0.262460f,
+ 0.262275f, 0.262090f, 0.261905f, 0.261720f, 0.261534f, 0.261349f, 0.261164f, 0.260979f,
+ 0.260794f, 0.260609f, 0.260424f, 0.260239f, 0.260054f, 0.259868f, 0.259683f, 0.259498f,
+ 0.259313f, 0.259128f, 0.258943f, 0.258757f, 0.258572f, 0.258387f, 0.258202f, 0.258016f,
+ 0.257831f, 0.257646f, 0.257461f, 0.257275f, 0.257090f, 0.256905f, 0.256719f, 0.256534f,
+ 0.256349f, 0.256163f, 0.255978f, 0.255793f, 0.255607f, 0.255422f, 0.255236f, 0.255051f,
+ 0.254866f, 0.254680f, 0.254495f, 0.254309f, 0.254124f, 0.253938f, 0.253753f, 0.253568f,
+ 0.253382f, 0.253197f, 0.253011f, 0.252826f, 0.252640f, 0.252454f, 0.252269f, 0.252083f,
+ 0.251898f, 0.251712f, 0.251527f, 0.251341f, 0.251155f, 0.250970f, 0.250784f, 0.250599f,
+ 0.250413f, 0.250227f, 0.250042f, 0.249856f, 0.249670f, 0.249485f, 0.249299f, 0.249113f,
+ 0.248928f, 0.248742f, 0.248556f, 0.248370f, 0.248185f, 0.247999f, 0.247813f, 0.247627f,
+ 0.247442f, 0.247256f, 0.247070f, 0.246884f, 0.246698f, 0.246513f, 0.246327f, 0.246141f,
+ 0.245955f, 0.245769f, 0.245583f, 0.245397f, 0.245212f, 0.245026f, 0.244840f, 0.244654f,
+ 0.244468f, 0.244282f, 0.244096f, 0.243910f, 0.243724f, 0.243538f, 0.243352f, 0.243166f,
+ 0.242980f, 0.242794f, 0.242608f, 0.242422f, 0.242236f, 0.242050f, 0.241864f, 0.241678f,
+ 0.241492f, 0.241306f, 0.241120f, 0.240934f, 0.240748f, 0.240561f, 0.240375f, 0.240189f,
+ 0.240003f, 0.239817f, 0.239631f, 0.239445f, 0.239258f, 0.239072f, 0.238886f, 0.238700f,
+ 0.238514f, 0.238327f, 0.238141f, 0.237955f, 0.237769f, 0.237582f, 0.237396f, 0.237210f,
+ 0.237024f, 0.236837f, 0.236651f, 0.236465f, 0.236278f, 0.236092f, 0.235906f, 0.235719f,
+ 0.235533f, 0.235347f, 0.235160f, 0.234974f, 0.234788f, 0.234601f, 0.234415f, 0.234228f,
+ 0.234042f, 0.233856f, 0.233669f, 0.233483f, 0.233296f, 0.233110f, 0.232923f, 0.232737f,
+ 0.232550f, 0.232364f, 0.232177f, 0.231991f, 0.231804f, 0.231618f, 0.231431f, 0.231245f,
+ 0.231058f, 0.230872f, 0.230685f, 0.230498f, 0.230312f, 0.230125f, 0.229939f, 0.229752f,
+ 0.229565f, 0.229379f, 0.229192f, 0.229005f, 0.228819f, 0.228632f, 0.228445f, 0.228259f,
+ 0.228072f, 0.227885f, 0.227699f, 0.227512f, 0.227325f, 0.227139f, 0.226952f, 0.226765f,
+ 0.226578f, 0.226391f, 0.226205f, 0.226018f, 0.225831f, 0.225644f, 0.225458f, 0.225271f,
+ 0.225084f, 0.224897f, 0.224710f, 0.224523f, 0.224337f, 0.224150f, 0.223963f, 0.223776f,
+ 0.223589f, 0.223402f, 0.223215f, 0.223028f, 0.222841f, 0.222654f, 0.222468f, 0.222281f,
+ 0.222094f, 0.221907f, 0.221720f, 0.221533f, 0.221346f, 0.221159f, 0.220972f, 0.220785f,
+ 0.220598f, 0.220411f, 0.220224f, 0.220037f, 0.219850f, 0.219662f, 0.219475f, 0.219288f,
+ 0.219101f, 0.218914f, 0.218727f, 0.218540f, 0.218353f, 0.218166f, 0.217979f, 0.217791f,
+ 0.217604f, 0.217417f, 0.217230f, 0.217043f, 0.216856f, 0.216668f, 0.216481f, 0.216294f,
+ 0.216107f, 0.215920f, 0.215732f, 0.215545f, 0.215358f, 0.215171f, 0.214983f, 0.214796f,
+ 0.214609f, 0.214422f, 0.214234f, 0.214047f, 0.213860f, 0.213672f, 0.213485f, 0.213298f,
+ 0.213110f, 0.212923f, 0.212736f, 0.212548f, 0.212361f, 0.212174f, 0.211986f, 0.211799f,
+ 0.211611f, 0.211424f, 0.211237f, 0.211049f, 0.210862f, 0.210674f, 0.210487f, 0.210299f,
+ 0.210112f, 0.209924f, 0.209737f, 0.209549f, 0.209362f, 0.209174f, 0.208987f, 0.208799f,
+ 0.208612f, 0.208424f, 0.208237f, 0.208049f, 0.207862f, 0.207674f, 0.207487f, 0.207299f,
+ 0.207111f, 0.206924f, 0.206736f, 0.206549f, 0.206361f, 0.206173f, 0.205986f, 0.205798f,
+ 0.205610f, 0.205423f, 0.205235f, 0.205047f, 0.204860f, 0.204672f, 0.204484f, 0.204297f,
+ 0.204109f, 0.203921f, 0.203734f, 0.203546f, 0.203358f, 0.203170f, 0.202983f, 0.202795f,
+ 0.202607f, 0.202419f, 0.202231f, 0.202044f, 0.201856f, 0.201668f, 0.201480f, 0.201292f,
+ 0.201105f, 0.200917f, 0.200729f, 0.200541f, 0.200353f, 0.200165f, 0.199978f, 0.199790f,
+ 0.199602f, 0.199414f, 0.199226f, 0.199038f, 0.198850f, 0.198662f, 0.198474f, 0.198286f,
+ 0.198098f, 0.197910f, 0.197722f, 0.197535f, 0.197347f, 0.197159f, 0.196971f, 0.196783f,
+ 0.196595f, 0.196407f, 0.196219f, 0.196031f, 0.195843f, 0.195654f, 0.195466f, 0.195278f,
+ 0.195090f, 0.194902f, 0.194714f, 0.194526f, 0.194338f, 0.194150f, 0.193962f, 0.193774f,
+ 0.193586f, 0.193397f, 0.193209f, 0.193021f, 0.192833f, 0.192645f, 0.192457f, 0.192269f,
+ 0.192080f, 0.191892f, 0.191704f, 0.191516f, 0.191328f, 0.191139f, 0.190951f, 0.190763f,
+ 0.190575f, 0.190387f, 0.190198f, 0.190010f, 0.189822f, 0.189634f, 0.189445f, 0.189257f,
+ 0.189069f, 0.188880f, 0.188692f, 0.188504f, 0.188315f, 0.188127f, 0.187939f, 0.187750f,
+ 0.187562f, 0.187374f, 0.187185f, 0.186997f, 0.186809f, 0.186620f, 0.186432f, 0.186244f,
+ 0.186055f, 0.185867f, 0.185678f, 0.185490f, 0.185301f, 0.185113f, 0.184925f, 0.184736f,
+ 0.184548f, 0.184359f, 0.184171f, 0.183982f, 0.183794f, 0.183605f, 0.183417f, 0.183228f,
+ 0.183040f, 0.182851f, 0.182663f, 0.182474f, 0.182286f, 0.182097f, 0.181909f, 0.181720f,
+ 0.181532f, 0.181343f, 0.181154f, 0.180966f, 0.180777f, 0.180589f, 0.180400f, 0.180212f,
+ 0.180023f, 0.179834f, 0.179646f, 0.179457f, 0.179268f, 0.179080f, 0.178891f, 0.178702f,
+ 0.178514f, 0.178325f, 0.178136f, 0.177948f, 0.177759f, 0.177570f, 0.177382f, 0.177193f,
+ 0.177004f, 0.176815f, 0.176627f, 0.176438f, 0.176249f, 0.176061f, 0.175872f, 0.175683f,
+ 0.175494f, 0.175305f, 0.175117f, 0.174928f, 0.174739f, 0.174550f, 0.174362f, 0.174173f,
+ 0.173984f, 0.173795f, 0.173606f, 0.173417f, 0.173229f, 0.173040f, 0.172851f, 0.172662f,
+ 0.172473f, 0.172284f, 0.172095f, 0.171906f, 0.171718f, 0.171529f, 0.171340f, 0.171151f,
+ 0.170962f, 0.170773f, 0.170584f, 0.170395f, 0.170206f, 0.170017f, 0.169828f, 0.169639f,
+ 0.169450f, 0.169261f, 0.169072f, 0.168883f, 0.168694f, 0.168505f, 0.168316f, 0.168127f,
+ 0.167938f, 0.167749f, 0.167560f, 0.167371f, 0.167182f, 0.166993f, 0.166804f, 0.166615f,
+ 0.166426f, 0.166237f, 0.166048f, 0.165859f, 0.165670f, 0.165480f, 0.165291f, 0.165102f,
+ 0.164913f, 0.164724f, 0.164535f, 0.164346f, 0.164157f, 0.163967f, 0.163778f, 0.163589f,
+ 0.163400f, 0.163211f, 0.163022f, 0.162832f, 0.162643f, 0.162454f, 0.162265f, 0.162076f,
+ 0.161886f, 0.161697f, 0.161508f, 0.161319f, 0.161129f, 0.160940f, 0.160751f, 0.160562f,
+ 0.160372f, 0.160183f, 0.159994f, 0.159805f, 0.159615f, 0.159426f, 0.159237f, 0.159047f,
+ 0.158858f, 0.158669f, 0.158480f, 0.158290f, 0.158101f, 0.157912f, 0.157722f, 0.157533f,
+ 0.157343f, 0.157154f, 0.156965f, 0.156775f, 0.156586f, 0.156397f, 0.156207f, 0.156018f,
+ 0.155828f, 0.155639f, 0.155450f, 0.155260f, 0.155071f, 0.154881f, 0.154692f, 0.154502f,
+ 0.154313f, 0.154124f, 0.153934f, 0.153745f, 0.153555f, 0.153366f, 0.153176f, 0.152987f,
+ 0.152797f, 0.152608f, 0.152418f, 0.152229f, 0.152039f, 0.151850f, 0.151660f, 0.151471f,
+ 0.151281f, 0.151092f, 0.150902f, 0.150712f, 0.150523f, 0.150333f, 0.150144f, 0.149954f,
+ 0.149765f, 0.149575f, 0.149385f, 0.149196f, 0.149006f, 0.148817f, 0.148627f, 0.148437f,
+ 0.148248f, 0.148058f, 0.147868f, 0.147679f, 0.147489f, 0.147299f, 0.147110f, 0.146920f,
+ 0.146730f, 0.146541f, 0.146351f, 0.146161f, 0.145972f, 0.145782f, 0.145592f, 0.145403f,
+ 0.145213f, 0.145023f, 0.144833f, 0.144644f, 0.144454f, 0.144264f, 0.144075f, 0.143885f,
+ 0.143695f, 0.143505f, 0.143316f, 0.143126f, 0.142936f, 0.142746f, 0.142556f, 0.142367f,
+ 0.142177f, 0.141987f, 0.141797f, 0.141607f, 0.141418f, 0.141228f, 0.141038f, 0.140848f,
+ 0.140658f, 0.140468f, 0.140279f, 0.140089f, 0.139899f, 0.139709f, 0.139519f, 0.139329f,
+ 0.139139f, 0.138949f, 0.138760f, 0.138570f, 0.138380f, 0.138190f, 0.138000f, 0.137810f,
+ 0.137620f, 0.137430f, 0.137240f, 0.137050f, 0.136860f, 0.136670f, 0.136480f, 0.136291f,
+ 0.136101f, 0.135911f, 0.135721f, 0.135531f, 0.135341f, 0.135151f, 0.134961f, 0.134771f,
+ 0.134581f, 0.134391f, 0.134201f, 0.134011f, 0.133821f, 0.133631f, 0.133441f, 0.133251f,
+ 0.133061f, 0.132870f, 0.132680f, 0.132490f, 0.132300f, 0.132110f, 0.131920f, 0.131730f,
+ 0.131540f, 0.131350f, 0.131160f, 0.130970f, 0.130780f, 0.130590f, 0.130399f, 0.130209f,
+ 0.130019f, 0.129829f, 0.129639f, 0.129449f, 0.129259f, 0.129069f, 0.128878f, 0.128688f,
+ 0.128498f, 0.128308f, 0.128118f, 0.127928f, 0.127737f, 0.127547f, 0.127357f, 0.127167f,
+ 0.126977f, 0.126787f, 0.126596f, 0.126406f, 0.126216f, 0.126026f, 0.125835f, 0.125645f,
+ 0.125455f, 0.125265f, 0.125075f, 0.124884f, 0.124694f, 0.124504f, 0.124314f, 0.124123f,
+ 0.123933f, 0.123743f, 0.123552f, 0.123362f, 0.123172f, 0.122982f, 0.122791f, 0.122601f,
+ 0.122411f, 0.122220f, 0.122030f, 0.121840f, 0.121649f, 0.121459f, 0.121269f, 0.121078f,
+ 0.120888f, 0.120698f, 0.120507f, 0.120317f, 0.120127f, 0.119936f, 0.119746f, 0.119556f,
+ 0.119365f, 0.119175f, 0.118984f, 0.118794f, 0.118604f, 0.118413f, 0.118223f, 0.118032f,
+ 0.117842f, 0.117652f, 0.117461f, 0.117271f, 0.117080f, 0.116890f, 0.116700f, 0.116509f,
+ 0.116319f, 0.116128f, 0.115938f, 0.115747f, 0.115557f, 0.115366f, 0.115176f, 0.114985f,
+ 0.114795f, 0.114604f, 0.114414f, 0.114223f, 0.114033f, 0.113842f, 0.113652f, 0.113461f,
+ 0.113271f, 0.113080f, 0.112890f, 0.112699f, 0.112509f, 0.112318f, 0.112128f, 0.111937f,
+ 0.111747f, 0.111556f, 0.111366f, 0.111175f, 0.110984f, 0.110794f, 0.110603f, 0.110413f,
+ 0.110222f, 0.110032f, 0.109841f, 0.109650f, 0.109460f, 0.109269f, 0.109079f, 0.108888f,
+ 0.108697f, 0.108507f, 0.108316f, 0.108126f, 0.107935f, 0.107744f, 0.107554f, 0.107363f,
+ 0.107172f, 0.106982f, 0.106791f, 0.106600f, 0.106410f, 0.106219f, 0.106028f, 0.105838f,
+ 0.105647f, 0.105456f, 0.105266f, 0.105075f, 0.104884f, 0.104694f, 0.104503f, 0.104312f,
+ 0.104122f, 0.103931f, 0.103740f, 0.103550f, 0.103359f, 0.103168f, 0.102977f, 0.102787f,
+ 0.102596f, 0.102405f, 0.102214f, 0.102024f, 0.101833f, 0.101642f, 0.101451f, 0.101261f,
+ 0.101070f, 0.100879f, 0.100688f, 0.100498f, 0.100307f, 0.100116f, 0.099925f, 0.099734f,
+ 0.099544f, 0.099353f, 0.099162f, 0.098971f, 0.098780f, 0.098590f, 0.098399f, 0.098208f,
+ 0.098017f, 0.097826f, 0.097635f, 0.097445f, 0.097254f, 0.097063f, 0.096872f, 0.096681f,
+ 0.096490f, 0.096300f, 0.096109f, 0.095918f, 0.095727f, 0.095536f, 0.095345f, 0.095154f,
+ 0.094963f, 0.094773f, 0.094582f, 0.094391f, 0.094200f, 0.094009f, 0.093818f, 0.093627f,
+ 0.093436f, 0.093245f, 0.093055f, 0.092864f, 0.092673f, 0.092482f, 0.092291f, 0.092100f,
+ 0.091909f, 0.091718f, 0.091527f, 0.091336f, 0.091145f, 0.090954f, 0.090763f, 0.090572f,
+ 0.090381f, 0.090190f, 0.089999f, 0.089808f, 0.089617f, 0.089427f, 0.089236f, 0.089045f,
+ 0.088854f, 0.088663f, 0.088472f, 0.088281f, 0.088090f, 0.087899f, 0.087708f, 0.087517f,
+ 0.087326f, 0.087135f, 0.086943f, 0.086752f, 0.086561f, 0.086370f, 0.086179f, 0.085988f,
+ 0.085797f, 0.085606f, 0.085415f, 0.085224f, 0.085033f, 0.084842f, 0.084651f, 0.084460f,
+ 0.084269f, 0.084078f, 0.083887f, 0.083696f, 0.083505f, 0.083314f, 0.083122f, 0.082931f,
+ 0.082740f, 0.082549f, 0.082358f, 0.082167f, 0.081976f, 0.081785f, 0.081594f, 0.081403f,
+ 0.081211f, 0.081020f, 0.080829f, 0.080638f, 0.080447f, 0.080256f, 0.080065f, 0.079874f,
+ 0.079682f, 0.079491f, 0.079300f, 0.079109f, 0.078918f, 0.078727f, 0.078536f, 0.078344f,
+ 0.078153f, 0.077962f, 0.077771f, 0.077580f, 0.077389f, 0.077197f, 0.077006f, 0.076815f,
+ 0.076624f, 0.076433f, 0.076241f, 0.076050f, 0.075859f, 0.075668f, 0.075477f, 0.075286f,
+ 0.075094f, 0.074903f, 0.074712f, 0.074521f, 0.074329f, 0.074138f, 0.073947f, 0.073756f,
+ 0.073565f, 0.073373f, 0.073182f, 0.072991f, 0.072800f, 0.072608f, 0.072417f, 0.072226f,
+ 0.072035f, 0.071843f, 0.071652f, 0.071461f, 0.071270f, 0.071078f, 0.070887f, 0.070696f,
+ 0.070505f, 0.070313f, 0.070122f, 0.069931f, 0.069739f, 0.069548f, 0.069357f, 0.069166f,
+ 0.068974f, 0.068783f, 0.068592f, 0.068400f, 0.068209f, 0.068018f, 0.067827f, 0.067635f,
+ 0.067444f, 0.067253f, 0.067061f, 0.066870f, 0.066679f, 0.066487f, 0.066296f, 0.066105f,
+ 0.065913f, 0.065722f, 0.065531f, 0.065339f, 0.065148f, 0.064957f, 0.064765f, 0.064574f,
+ 0.064383f, 0.064191f, 0.064000f, 0.063809f, 0.063617f, 0.063426f, 0.063234f, 0.063043f,
+ 0.062852f, 0.062660f, 0.062469f, 0.062278f, 0.062086f, 0.061895f, 0.061704f, 0.061512f,
+ 0.061321f, 0.061129f, 0.060938f, 0.060747f, 0.060555f, 0.060364f, 0.060172f, 0.059981f,
+ 0.059790f, 0.059598f, 0.059407f, 0.059215f, 0.059024f, 0.058833f, 0.058641f, 0.058450f,
+ 0.058258f, 0.058067f, 0.057875f, 0.057684f, 0.057493f, 0.057301f, 0.057110f, 0.056918f,
+ 0.056727f, 0.056535f, 0.056344f, 0.056152f, 0.055961f, 0.055770f, 0.055578f, 0.055387f,
+ 0.055195f, 0.055004f, 0.054812f, 0.054621f, 0.054429f, 0.054238f, 0.054046f, 0.053855f,
+ 0.053664f, 0.053472f, 0.053281f, 0.053089f, 0.052898f, 0.052706f, 0.052515f, 0.052323f,
+ 0.052132f, 0.051940f, 0.051749f, 0.051557f, 0.051366f, 0.051174f, 0.050983f, 0.050791f,
+ 0.050600f, 0.050408f, 0.050217f, 0.050025f, 0.049834f, 0.049642f, 0.049451f, 0.049259f,
+ 0.049068f, 0.048876f, 0.048685f, 0.048493f, 0.048302f, 0.048110f, 0.047919f, 0.047727f,
+ 0.047535f, 0.047344f, 0.047152f, 0.046961f, 0.046769f, 0.046578f, 0.046386f, 0.046195f,
+ 0.046003f, 0.045812f, 0.045620f, 0.045429f, 0.045237f, 0.045045f, 0.044854f, 0.044662f,
+ 0.044471f, 0.044279f, 0.044088f, 0.043896f, 0.043705f, 0.043513f, 0.043321f, 0.043130f,
+ 0.042938f, 0.042747f, 0.042555f, 0.042364f, 0.042172f, 0.041980f, 0.041789f, 0.041597f,
+ 0.041406f, 0.041214f, 0.041022f, 0.040831f, 0.040639f, 0.040448f, 0.040256f, 0.040065f,
+ 0.039873f, 0.039681f, 0.039490f, 0.039298f, 0.039107f, 0.038915f, 0.038723f, 0.038532f,
+ 0.038340f, 0.038149f, 0.037957f, 0.037765f, 0.037574f, 0.037382f, 0.037190f, 0.036999f,
+ 0.036807f, 0.036616f, 0.036424f, 0.036232f, 0.036041f, 0.035849f, 0.035657f, 0.035466f,
+ 0.035274f, 0.035083f, 0.034891f, 0.034699f, 0.034508f, 0.034316f, 0.034124f, 0.033933f,
+ 0.033741f, 0.033550f, 0.033358f, 0.033166f, 0.032975f, 0.032783f, 0.032591f, 0.032400f,
+ 0.032208f, 0.032016f, 0.031825f, 0.031633f, 0.031441f, 0.031250f, 0.031058f, 0.030866f,
+ 0.030675f, 0.030483f, 0.030291f, 0.030100f, 0.029908f, 0.029717f, 0.029525f, 0.029333f,
+ 0.029142f, 0.028950f, 0.028758f, 0.028567f, 0.028375f, 0.028183f, 0.027991f, 0.027800f,
+ 0.027608f, 0.027416f, 0.027225f, 0.027033f, 0.026841f, 0.026650f, 0.026458f, 0.026266f,
+ 0.026075f, 0.025883f, 0.025691f, 0.025500f, 0.025308f, 0.025116f, 0.024925f, 0.024733f,
+ 0.024541f, 0.024350f, 0.024158f, 0.023966f, 0.023774f, 0.023583f, 0.023391f, 0.023199f,
+ 0.023008f, 0.022816f, 0.022624f, 0.022433f, 0.022241f, 0.022049f, 0.021857f, 0.021666f,
+ 0.021474f, 0.021282f, 0.021091f, 0.020899f, 0.020707f, 0.020516f, 0.020324f, 0.020132f,
+ 0.019940f, 0.019749f, 0.019557f, 0.019365f, 0.019174f, 0.018982f, 0.018790f, 0.018598f,
+ 0.018407f, 0.018215f, 0.018023f, 0.017832f, 0.017640f, 0.017448f, 0.017256f, 0.017065f,
+ 0.016873f, 0.016681f, 0.016490f, 0.016298f, 0.016106f, 0.015914f, 0.015723f, 0.015531f,
+ 0.015339f, 0.015147f, 0.014956f, 0.014764f, 0.014572f, 0.014381f, 0.014189f, 0.013997f,
+ 0.013805f, 0.013614f, 0.013422f, 0.013230f, 0.013038f, 0.012847f, 0.012655f, 0.012463f,
+ 0.012272f, 0.012080f, 0.011888f, 0.011696f, 0.011505f, 0.011313f, 0.011121f, 0.010929f,
+ 0.010738f, 0.010546f, 0.010354f, 0.010162f, 0.009971f, 0.009779f, 0.009587f, 0.009395f,
+ 0.009204f, 0.009012f, 0.008820f, 0.008629f, 0.008437f, 0.008245f, 0.008053f, 0.007862f,
+ 0.007670f, 0.007478f, 0.007286f, 0.007095f, 0.006903f, 0.006711f, 0.006519f, 0.006328f,
+ 0.006136f, 0.005944f, 0.005752f, 0.005561f, 0.005369f, 0.005177f, 0.004985f, 0.004794f,
+ 0.004602f, 0.004410f, 0.004218f, 0.004027f, 0.003835f, 0.003643f, 0.003451f, 0.003260f,
+ 0.003068f, 0.002876f, 0.002684f, 0.002493f, 0.002301f, 0.002109f, 0.001917f, 0.001726f,
+ 0.001534f, 0.001342f, 0.001150f, 0.000959f, 0.000767f, 0.000575f, 0.000383f, 0.000192f,
+ 0.000000f, 0.000192f, 0.000383f, 0.000575f, 0.000767f, 0.000959f, 0.001150f, 0.001342f,
+ 0.001534f, 0.001726f, 0.001917f, 0.002109f, 0.002301f, 0.002493f, 0.002684f, 0.002876f,
+ 0.003068f, 0.003260f, 0.003451f, 0.003643f, 0.003835f, 0.004027f, 0.004218f, 0.004410f,
+ 0.004602f, 0.004794f, 0.004985f, 0.005177f, 0.005369f, 0.005561f, 0.005752f, 0.005944f,
+ 0.006136f, 0.006328f, 0.006519f, 0.006711f, 0.006903f, 0.007095f, 0.007286f, 0.007478f,
+ 0.007670f, 0.007862f, 0.008053f, 0.008245f, 0.008437f, 0.008629f, 0.008820f, 0.009012f,
+ 0.009204f, 0.009395f, 0.009587f, 0.009779f, 0.009971f, 0.010162f, 0.010354f, 0.010546f,
+ 0.010738f, 0.010929f, 0.011121f, 0.011313f, 0.011505f, 0.011696f, 0.011888f, 0.012080f,
+ 0.012272f, 0.012463f, 0.012655f, 0.012847f, 0.013038f, 0.013230f, 0.013422f, 0.013614f,
+ 0.013805f, 0.013997f, 0.014189f, 0.014381f, 0.014572f, 0.014764f, 0.014956f, 0.015147f,
+ 0.015339f, 0.015531f, 0.015723f, 0.015914f, 0.016106f, 0.016298f, 0.016490f, 0.016681f,
+ 0.016873f, 0.017065f, 0.017256f, 0.017448f, 0.017640f, 0.017832f, 0.018023f, 0.018215f,
+ 0.018407f, 0.018598f, 0.018790f, 0.018982f, 0.019174f, 0.019365f, 0.019557f, 0.019749f,
+ 0.019940f, 0.020132f, 0.020324f, 0.020516f, 0.020707f, 0.020899f, 0.021091f, 0.021282f,
+ 0.021474f, 0.021666f, 0.021857f, 0.022049f, 0.022241f, 0.022433f, 0.022624f, 0.022816f,
+ 0.023008f, 0.023199f, 0.023391f, 0.023583f, 0.023774f, 0.023966f, 0.024158f, 0.024350f,
+ 0.024541f, 0.024733f, 0.024925f, 0.025116f, 0.025308f, 0.025500f, 0.025691f, 0.025883f,
+ 0.026075f, 0.026266f, 0.026458f, 0.026650f, 0.026841f, 0.027033f, 0.027225f, 0.027416f,
+ 0.027608f, 0.027800f, 0.027991f, 0.028183f, 0.028375f, 0.028567f, 0.028758f, 0.028950f,
+ 0.029142f, 0.029333f, 0.029525f, 0.029717f, 0.029908f, 0.030100f, 0.030291f, 0.030483f,
+ 0.030675f, 0.030866f, 0.031058f, 0.031250f, 0.031441f, 0.031633f, 0.031825f, 0.032016f,
+ 0.032208f, 0.032400f, 0.032591f, 0.032783f, 0.032975f, 0.033166f, 0.033358f, 0.033550f,
+ 0.033741f, 0.033933f, 0.034124f, 0.034316f, 0.034508f, 0.034699f, 0.034891f, 0.035083f,
+ 0.035274f, 0.035466f, 0.035657f, 0.035849f, 0.036041f, 0.036232f, 0.036424f, 0.036616f,
+ 0.036807f, 0.036999f, 0.037190f, 0.037382f, 0.037574f, 0.037765f, 0.037957f, 0.038149f,
+ 0.038340f, 0.038532f, 0.038723f, 0.038915f, 0.039107f, 0.039298f, 0.039490f, 0.039681f,
+ 0.039873f, 0.040065f, 0.040256f, 0.040448f, 0.040639f, 0.040831f, 0.041022f, 0.041214f,
+ 0.041406f, 0.041597f, 0.041789f, 0.041980f, 0.042172f, 0.042364f, 0.042555f, 0.042747f,
+ 0.042938f, 0.043130f, 0.043321f, 0.043513f, 0.043705f, 0.043896f, 0.044088f, 0.044279f,
+ 0.044471f, 0.044662f, 0.044854f, 0.045045f, 0.045237f, 0.045429f, 0.045620f, 0.045812f,
+ 0.046003f, 0.046195f, 0.046386f, 0.046578f, 0.046769f, 0.046961f, 0.047152f, 0.047344f,
+ 0.047535f, 0.047727f, 0.047919f, 0.048110f, 0.048302f, 0.048493f, 0.048685f, 0.048876f,
+ 0.049068f, 0.049259f, 0.049451f, 0.049642f, 0.049834f, 0.050025f, 0.050217f, 0.050408f,
+ 0.050600f, 0.050791f, 0.050983f, 0.051174f, 0.051366f, 0.051557f, 0.051749f, 0.051940f,
+ 0.052132f, 0.052323f, 0.052515f, 0.052706f, 0.052898f, 0.053089f, 0.053281f, 0.053472f,
+ 0.053664f, 0.053855f, 0.054046f, 0.054238f, 0.054429f, 0.054621f, 0.054812f, 0.055004f,
+ 0.055195f, 0.055387f, 0.055578f, 0.055770f, 0.055961f, 0.056152f, 0.056344f, 0.056535f,
+ 0.056727f, 0.056918f, 0.057110f, 0.057301f, 0.057493f, 0.057684f, 0.057875f, 0.058067f,
+ 0.058258f, 0.058450f, 0.058641f, 0.058833f, 0.059024f, 0.059215f, 0.059407f, 0.059598f,
+ 0.059790f, 0.059981f, 0.060172f, 0.060364f, 0.060555f, 0.060747f, 0.060938f, 0.061129f,
+ 0.061321f, 0.061512f, 0.061704f, 0.061895f, 0.062086f, 0.062278f, 0.062469f, 0.062660f,
+ 0.062852f, 0.063043f, 0.063234f, 0.063426f, 0.063617f, 0.063809f, 0.064000f, 0.064191f,
+ 0.064383f, 0.064574f, 0.064765f, 0.064957f, 0.065148f, 0.065339f, 0.065531f, 0.065722f,
+ 0.065913f, 0.066105f, 0.066296f, 0.066487f, 0.066679f, 0.066870f, 0.067061f, 0.067253f,
+ 0.067444f, 0.067635f, 0.067827f, 0.068018f, 0.068209f, 0.068400f, 0.068592f, 0.068783f,
+ 0.068974f, 0.069166f, 0.069357f, 0.069548f, 0.069739f, 0.069931f, 0.070122f, 0.070313f,
+ 0.070505f, 0.070696f, 0.070887f, 0.071078f, 0.071270f, 0.071461f, 0.071652f, 0.071843f,
+ 0.072035f, 0.072226f, 0.072417f, 0.072608f, 0.072800f, 0.072991f, 0.073182f, 0.073373f,
+ 0.073565f, 0.073756f, 0.073947f, 0.074138f, 0.074329f, 0.074521f, 0.074712f, 0.074903f,
+ 0.075094f, 0.075286f, 0.075477f, 0.075668f, 0.075859f, 0.076050f, 0.076241f, 0.076433f,
+ 0.076624f, 0.076815f, 0.077006f, 0.077197f, 0.077389f, 0.077580f, 0.077771f, 0.077962f,
+ 0.078153f, 0.078344f, 0.078536f, 0.078727f, 0.078918f, 0.079109f, 0.079300f, 0.079491f,
+ 0.079682f, 0.079874f, 0.080065f, 0.080256f, 0.080447f, 0.080638f, 0.080829f, 0.081020f,
+ 0.081211f, 0.081403f, 0.081594f, 0.081785f, 0.081976f, 0.082167f, 0.082358f, 0.082549f,
+ 0.082740f, 0.082931f, 0.083122f, 0.083314f, 0.083505f, 0.083696f, 0.083887f, 0.084078f,
+ 0.084269f, 0.084460f, 0.084651f, 0.084842f, 0.085033f, 0.085224f, 0.085415f, 0.085606f,
+ 0.085797f, 0.085988f, 0.086179f, 0.086370f, 0.086561f, 0.086752f, 0.086943f, 0.087135f,
+ 0.087326f, 0.087517f, 0.087708f, 0.087899f, 0.088090f, 0.088281f, 0.088472f, 0.088663f,
+ 0.088854f, 0.089045f, 0.089236f, 0.089427f, 0.089617f, 0.089808f, 0.089999f, 0.090190f,
+ 0.090381f, 0.090572f, 0.090763f, 0.090954f, 0.091145f, 0.091336f, 0.091527f, 0.091718f,
+ 0.091909f, 0.092100f, 0.092291f, 0.092482f, 0.092673f, 0.092864f, 0.093055f, 0.093245f,
+ 0.093436f, 0.093627f, 0.093818f, 0.094009f, 0.094200f, 0.094391f, 0.094582f, 0.094773f,
+ 0.094963f, 0.095154f, 0.095345f, 0.095536f, 0.095727f, 0.095918f, 0.096109f, 0.096300f,
+ 0.096490f, 0.096681f, 0.096872f, 0.097063f, 0.097254f, 0.097445f, 0.097635f, 0.097826f,
+ 0.098017f, 0.098208f, 0.098399f, 0.098590f, 0.098780f, 0.098971f, 0.099162f, 0.099353f,
+ 0.099544f, 0.099734f, 0.099925f, 0.100116f, 0.100307f, 0.100498f, 0.100688f, 0.100879f,
+ 0.101070f, 0.101261f, 0.101451f, 0.101642f, 0.101833f, 0.102024f, 0.102214f, 0.102405f,
+ 0.102596f, 0.102787f, 0.102977f, 0.103168f, 0.103359f, 0.103550f, 0.103740f, 0.103931f,
+ 0.104122f, 0.104312f, 0.104503f, 0.104694f, 0.104884f, 0.105075f, 0.105266f, 0.105456f,
+ 0.105647f, 0.105838f, 0.106028f, 0.106219f, 0.106410f, 0.106600f, 0.106791f, 0.106982f,
+ 0.107172f, 0.107363f, 0.107554f, 0.107744f, 0.107935f, 0.108126f, 0.108316f, 0.108507f,
+ 0.108697f, 0.108888f, 0.109079f, 0.109269f, 0.109460f, 0.109650f, 0.109841f, 0.110032f,
+ 0.110222f, 0.110413f, 0.110603f, 0.110794f, 0.110984f, 0.111175f, 0.111366f, 0.111556f,
+ 0.111747f, 0.111937f, 0.112128f, 0.112318f, 0.112509f, 0.112699f, 0.112890f, 0.113080f,
+ 0.113271f, 0.113461f, 0.113652f, 0.113842f, 0.114033f, 0.114223f, 0.114414f, 0.114604f,
+ 0.114795f, 0.114985f, 0.115176f, 0.115366f, 0.115557f, 0.115747f, 0.115938f, 0.116128f,
+ 0.116319f, 0.116509f, 0.116700f, 0.116890f, 0.117080f, 0.117271f, 0.117461f, 0.117652f,
+ 0.117842f, 0.118032f, 0.118223f, 0.118413f, 0.118604f, 0.118794f, 0.118984f, 0.119175f,
+ 0.119365f, 0.119556f, 0.119746f, 0.119936f, 0.120127f, 0.120317f, 0.120507f, 0.120698f,
+ 0.120888f, 0.121078f, 0.121269f, 0.121459f, 0.121649f, 0.121840f, 0.122030f, 0.122220f,
+ 0.122411f, 0.122601f, 0.122791f, 0.122982f, 0.123172f, 0.123362f, 0.123552f, 0.123743f,
+ 0.123933f, 0.124123f, 0.124314f, 0.124504f, 0.124694f, 0.124884f, 0.125075f, 0.125265f,
+ 0.125455f, 0.125645f, 0.125835f, 0.126026f, 0.126216f, 0.126406f, 0.126596f, 0.126787f,
+ 0.126977f, 0.127167f, 0.127357f, 0.127547f, 0.127737f, 0.127928f, 0.128118f, 0.128308f,
+ 0.128498f, 0.128688f, 0.128878f, 0.129069f, 0.129259f, 0.129449f, 0.129639f, 0.129829f,
+ 0.130019f, 0.130209f, 0.130399f, 0.130590f, 0.130780f, 0.130970f, 0.131160f, 0.131350f,
+ 0.131540f, 0.131730f, 0.131920f, 0.132110f, 0.132300f, 0.132490f, 0.132680f, 0.132870f,
+ 0.133061f, 0.133251f, 0.133441f, 0.133631f, 0.133821f, 0.134011f, 0.134201f, 0.134391f,
+ 0.134581f, 0.134771f, 0.134961f, 0.135151f, 0.135341f, 0.135531f, 0.135721f, 0.135911f,
+ 0.136101f, 0.136291f, 0.136480f, 0.136670f, 0.136860f, 0.137050f, 0.137240f, 0.137430f,
+ 0.137620f, 0.137810f, 0.138000f, 0.138190f, 0.138380f, 0.138570f, 0.138760f, 0.138949f,
+ 0.139139f, 0.139329f, 0.139519f, 0.139709f, 0.139899f, 0.140089f, 0.140279f, 0.140468f,
+ 0.140658f, 0.140848f, 0.141038f, 0.141228f, 0.141418f, 0.141607f, 0.141797f, 0.141987f,
+ 0.142177f, 0.142367f, 0.142556f, 0.142746f, 0.142936f, 0.143126f, 0.143316f, 0.143505f,
+ 0.143695f, 0.143885f, 0.144075f, 0.144264f, 0.144454f, 0.144644f, 0.144833f, 0.145023f,
+ 0.145213f, 0.145403f, 0.145592f, 0.145782f, 0.145972f, 0.146161f, 0.146351f, 0.146541f,
+ 0.146730f, 0.146920f, 0.147110f, 0.147299f, 0.147489f, 0.147679f, 0.147868f, 0.148058f,
+ 0.148248f, 0.148437f, 0.148627f, 0.148817f, 0.149006f, 0.149196f, 0.149385f, 0.149575f,
+ 0.149765f, 0.149954f, 0.150144f, 0.150333f, 0.150523f, 0.150712f, 0.150902f, 0.151092f,
+ 0.151281f, 0.151471f, 0.151660f, 0.151850f, 0.152039f, 0.152229f, 0.152418f, 0.152608f,
+ 0.152797f, 0.152987f, 0.153176f, 0.153366f, 0.153555f, 0.153745f, 0.153934f, 0.154124f,
+ 0.154313f, 0.154502f, 0.154692f, 0.154881f, 0.155071f, 0.155260f, 0.155450f, 0.155639f,
+ 0.155828f, 0.156018f, 0.156207f, 0.156397f, 0.156586f, 0.156775f, 0.156965f, 0.157154f,
+ 0.157343f, 0.157533f, 0.157722f, 0.157912f, 0.158101f, 0.158290f, 0.158480f, 0.158669f,
+ 0.158858f, 0.159047f, 0.159237f, 0.159426f, 0.159615f, 0.159805f, 0.159994f, 0.160183f,
+ 0.160372f, 0.160562f, 0.160751f, 0.160940f, 0.161129f, 0.161319f, 0.161508f, 0.161697f,
+ 0.161886f, 0.162076f, 0.162265f, 0.162454f, 0.162643f, 0.162832f, 0.163022f, 0.163211f,
+ 0.163400f, 0.163589f, 0.163778f, 0.163967f, 0.164157f, 0.164346f, 0.164535f, 0.164724f,
+ 0.164913f, 0.165102f, 0.165291f, 0.165480f, 0.165670f, 0.165859f, 0.166048f, 0.166237f,
+ 0.166426f, 0.166615f, 0.166804f, 0.166993f, 0.167182f, 0.167371f, 0.167560f, 0.167749f,
+ 0.167938f, 0.168127f, 0.168316f, 0.168505f, 0.168694f, 0.168883f, 0.169072f, 0.169261f,
+ 0.169450f, 0.169639f, 0.169828f, 0.170017f, 0.170206f, 0.170395f, 0.170584f, 0.170773f,
+ 0.170962f, 0.171151f, 0.171340f, 0.171529f, 0.171718f, 0.171906f, 0.172095f, 0.172284f,
+ 0.172473f, 0.172662f, 0.172851f, 0.173040f, 0.173229f, 0.173417f, 0.173606f, 0.173795f,
+ 0.173984f, 0.174173f, 0.174362f, 0.174550f, 0.174739f, 0.174928f, 0.175117f, 0.175305f,
+ 0.175494f, 0.175683f, 0.175872f, 0.176061f, 0.176249f, 0.176438f, 0.176627f, 0.176815f,
+ 0.177004f, 0.177193f, 0.177382f, 0.177570f, 0.177759f, 0.177948f, 0.178136f, 0.178325f,
+ 0.178514f, 0.178702f, 0.178891f, 0.179080f, 0.179268f, 0.179457f, 0.179646f, 0.179834f,
+ 0.180023f, 0.180212f, 0.180400f, 0.180589f, 0.180777f, 0.180966f, 0.181154f, 0.181343f,
+ 0.181532f, 0.181720f, 0.181909f, 0.182097f, 0.182286f, 0.182474f, 0.182663f, 0.182851f,
+ 0.183040f, 0.183228f, 0.183417f, 0.183605f, 0.183794f, 0.183982f, 0.184171f, 0.184359f,
+ 0.184548f, 0.184736f, 0.184925f, 0.185113f, 0.185301f, 0.185490f, 0.185678f, 0.185867f,
+ 0.186055f, 0.186244f, 0.186432f, 0.186620f, 0.186809f, 0.186997f, 0.187185f, 0.187374f,
+ 0.187562f, 0.187750f, 0.187939f, 0.188127f, 0.188315f, 0.188504f, 0.188692f, 0.188880f,
+ 0.189069f, 0.189257f, 0.189445f, 0.189634f, 0.189822f, 0.190010f, 0.190198f, 0.190387f,
+ 0.190575f, 0.190763f, 0.190951f, 0.191139f, 0.191328f, 0.191516f, 0.191704f, 0.191892f,
+ 0.192080f, 0.192269f, 0.192457f, 0.192645f, 0.192833f, 0.193021f, 0.193209f, 0.193397f,
+ 0.193586f, 0.193774f, 0.193962f, 0.194150f, 0.194338f, 0.194526f, 0.194714f, 0.194902f,
+ 0.195090f, 0.195278f, 0.195466f, 0.195654f, 0.195843f, 0.196031f, 0.196219f, 0.196407f,
+ 0.196595f, 0.196783f, 0.196971f, 0.197159f, 0.197347f, 0.197535f, 0.197722f, 0.197910f,
+ 0.198098f, 0.198286f, 0.198474f, 0.198662f, 0.198850f, 0.199038f, 0.199226f, 0.199414f,
+ 0.199602f, 0.199790f, 0.199978f, 0.200165f, 0.200353f, 0.200541f, 0.200729f, 0.200917f,
+ 0.201105f, 0.201292f, 0.201480f, 0.201668f, 0.201856f, 0.202044f, 0.202231f, 0.202419f,
+ 0.202607f, 0.202795f, 0.202983f, 0.203170f, 0.203358f, 0.203546f, 0.203734f, 0.203921f,
+ 0.204109f, 0.204297f, 0.204484f, 0.204672f, 0.204860f, 0.205047f, 0.205235f, 0.205423f,
+ 0.205610f, 0.205798f, 0.205986f, 0.206173f, 0.206361f, 0.206549f, 0.206736f, 0.206924f,
+ 0.207111f, 0.207299f, 0.207487f, 0.207674f, 0.207862f, 0.208049f, 0.208237f, 0.208424f,
+ 0.208612f, 0.208799f, 0.208987f, 0.209174f, 0.209362f, 0.209549f, 0.209737f, 0.209924f,
+ 0.210112f, 0.210299f, 0.210487f, 0.210674f, 0.210862f, 0.211049f, 0.211237f, 0.211424f,
+ 0.211611f, 0.211799f, 0.211986f, 0.212174f, 0.212361f, 0.212548f, 0.212736f, 0.212923f,
+ 0.213110f, 0.213298f, 0.213485f, 0.213672f, 0.213860f, 0.214047f, 0.214234f, 0.214422f,
+ 0.214609f, 0.214796f, 0.214983f, 0.215171f, 0.215358f, 0.215545f, 0.215732f, 0.215920f,
+ 0.216107f, 0.216294f, 0.216481f, 0.216668f, 0.216856f, 0.217043f, 0.217230f, 0.217417f,
+ 0.217604f, 0.217791f, 0.217979f, 0.218166f, 0.218353f, 0.218540f, 0.218727f, 0.218914f,
+ 0.219101f, 0.219288f, 0.219475f, 0.219662f, 0.219850f, 0.220037f, 0.220224f, 0.220411f,
+ 0.220598f, 0.220785f, 0.220972f, 0.221159f, 0.221346f, 0.221533f, 0.221720f, 0.221907f,
+ 0.222094f, 0.222281f, 0.222468f, 0.222654f, 0.222841f, 0.223028f, 0.223215f, 0.223402f,
+ 0.223589f, 0.223776f, 0.223963f, 0.224150f, 0.224337f, 0.224523f, 0.224710f, 0.224897f,
+ 0.225084f, 0.225271f, 0.225458f, 0.225644f, 0.225831f, 0.226018f, 0.226205f, 0.226391f,
+ 0.226578f, 0.226765f, 0.226952f, 0.227139f, 0.227325f, 0.227512f, 0.227699f, 0.227885f,
+ 0.228072f, 0.228259f, 0.228445f, 0.228632f, 0.228819f, 0.229005f, 0.229192f, 0.229379f,
+ 0.229565f, 0.229752f, 0.229939f, 0.230125f, 0.230312f, 0.230498f, 0.230685f, 0.230872f,
+ 0.231058f, 0.231245f, 0.231431f, 0.231618f, 0.231804f, 0.231991f, 0.232177f, 0.232364f,
+ 0.232550f, 0.232737f, 0.232923f, 0.233110f, 0.233296f, 0.233483f, 0.233669f, 0.233856f,
+ 0.234042f, 0.234228f, 0.234415f, 0.234601f, 0.234788f, 0.234974f, 0.235160f, 0.235347f,
+ 0.235533f, 0.235719f, 0.235906f, 0.236092f, 0.236278f, 0.236465f, 0.236651f, 0.236837f,
+ 0.237024f, 0.237210f, 0.237396f, 0.237582f, 0.237769f, 0.237955f, 0.238141f, 0.238327f,
+ 0.238514f, 0.238700f, 0.238886f, 0.239072f, 0.239258f, 0.239445f, 0.239631f, 0.239817f,
+ 0.240003f, 0.240189f, 0.240375f, 0.240561f, 0.240748f, 0.240934f, 0.241120f, 0.241306f,
+ 0.241492f, 0.241678f, 0.241864f, 0.242050f, 0.242236f, 0.242422f, 0.242608f, 0.242794f,
+ 0.242980f, 0.243166f, 0.243352f, 0.243538f, 0.243724f, 0.243910f, 0.244096f, 0.244282f,
+ 0.244468f, 0.244654f, 0.244840f, 0.245026f, 0.245212f, 0.245397f, 0.245583f, 0.245769f,
+ 0.245955f, 0.246141f, 0.246327f, 0.246513f, 0.246698f, 0.246884f, 0.247070f, 0.247256f,
+ 0.247442f, 0.247627f, 0.247813f, 0.247999f, 0.248185f, 0.248370f, 0.248556f, 0.248742f,
+ 0.248928f, 0.249113f, 0.249299f, 0.249485f, 0.249670f, 0.249856f, 0.250042f, 0.250227f,
+ 0.250413f, 0.250599f, 0.250784f, 0.250970f, 0.251155f, 0.251341f, 0.251527f, 0.251712f,
+ 0.251898f, 0.252083f, 0.252269f, 0.252454f, 0.252640f, 0.252826f, 0.253011f, 0.253197f,
+ 0.253382f, 0.253568f, 0.253753f, 0.253938f, 0.254124f, 0.254309f, 0.254495f, 0.254680f,
+ 0.254866f, 0.255051f, 0.255236f, 0.255422f, 0.255607f, 0.255793f, 0.255978f, 0.256163f,
+ 0.256349f, 0.256534f, 0.256719f, 0.256905f, 0.257090f, 0.257275f, 0.257461f, 0.257646f,
+ 0.257831f, 0.258016f, 0.258202f, 0.258387f, 0.258572f, 0.258757f, 0.258943f, 0.259128f,
+ 0.259313f, 0.259498f, 0.259683f, 0.259868f, 0.260054f, 0.260239f, 0.260424f, 0.260609f,
+ 0.260794f, 0.260979f, 0.261164f, 0.261349f, 0.261534f, 0.261720f, 0.261905f, 0.262090f,
+ 0.262275f, 0.262460f, 0.262645f, 0.262830f, 0.263015f, 0.263200f, 0.263385f, 0.263570f,
+ 0.263755f, 0.263940f, 0.264125f, 0.264309f, 0.264494f, 0.264679f, 0.264864f, 0.265049f,
+ 0.265234f, 0.265419f, 0.265604f, 0.265789f, 0.265973f, 0.266158f, 0.266343f, 0.266528f,
+ 0.266713f, 0.266898f, 0.267082f, 0.267267f, 0.267452f, 0.267637f, 0.267821f, 0.268006f,
+ 0.268191f, 0.268376f, 0.268560f, 0.268745f, 0.268930f, 0.269114f, 0.269299f, 0.269484f,
+ 0.269668f, 0.269853f, 0.270038f, 0.270222f, 0.270407f, 0.270591f, 0.270776f, 0.270961f,
+ 0.271145f, 0.271330f, 0.271514f, 0.271699f, 0.271883f, 0.272068f, 0.272252f, 0.272437f,
+ 0.272621f, 0.272806f, 0.272990f, 0.273175f, 0.273359f, 0.273544f, 0.273728f, 0.273912f,
+ 0.274097f, 0.274281f, 0.274466f, 0.274650f, 0.274834f, 0.275019f, 0.275203f, 0.275387f,
+ 0.275572f, 0.275756f, 0.275940f, 0.276125f, 0.276309f, 0.276493f, 0.276678f, 0.276862f,
+ 0.277046f, 0.277230f, 0.277415f, 0.277599f, 0.277783f, 0.277967f, 0.278151f, 0.278336f,
+ 0.278520f, 0.278704f, 0.278888f, 0.279072f, 0.279256f, 0.279440f, 0.279624f, 0.279809f,
+ 0.279993f, 0.280177f, 0.280361f, 0.280545f, 0.280729f, 0.280913f, 0.281097f, 0.281281f,
+ 0.281465f, 0.281649f, 0.281833f, 0.282017f, 0.282201f, 0.282385f, 0.282569f, 0.282753f,
+ 0.282937f, 0.283120f, 0.283304f, 0.283488f, 0.283672f, 0.283856f, 0.284040f, 0.284224f,
+ 0.284408f, 0.284591f, 0.284775f, 0.284959f, 0.285143f, 0.285327f, 0.285510f, 0.285694f,
+ 0.285878f, 0.286062f, 0.286245f, 0.286429f, 0.286613f, 0.286796f, 0.286980f, 0.287164f,
+ 0.287347f, 0.287531f, 0.287715f, 0.287898f, 0.288082f, 0.288266f, 0.288449f, 0.288633f,
+ 0.288816f, 0.289000f, 0.289184f, 0.289367f, 0.289551f, 0.289734f, 0.289918f, 0.290101f,
+ 0.290285f, 0.290468f, 0.290652f, 0.290835f, 0.291019f, 0.291202f, 0.291385f, 0.291569f,
+ 0.291752f, 0.291936f, 0.292119f, 0.292302f, 0.292486f, 0.292669f, 0.292852f, 0.293036f,
+ 0.293219f, 0.293402f, 0.293586f, 0.293769f, 0.293952f, 0.294136f, 0.294319f, 0.294502f,
+ 0.294685f, 0.294869f, 0.295052f, 0.295235f, 0.295418f, 0.295601f, 0.295785f, 0.295968f,
+ 0.296151f, 0.296334f, 0.296517f, 0.296700f, 0.296883f, 0.297066f, 0.297250f, 0.297433f,
+ 0.297616f, 0.297799f, 0.297982f, 0.298165f, 0.298348f, 0.298531f, 0.298714f, 0.298897f,
+ 0.299080f, 0.299263f, 0.299446f, 0.299629f, 0.299812f, 0.299995f, 0.300177f, 0.300360f,
+ 0.300543f, 0.300726f, 0.300909f, 0.301092f, 0.301275f, 0.301458f, 0.301640f, 0.301823f,
+ 0.302006f, 0.302189f, 0.302372f, 0.302554f, 0.302737f, 0.302920f, 0.303103f, 0.303285f,
+ 0.303468f, 0.303651f, 0.303833f, 0.304016f, 0.304199f, 0.304381f, 0.304564f, 0.304747f,
+ 0.304929f, 0.305112f, 0.305294f, 0.305477f, 0.305660f, 0.305842f, 0.306025f, 0.306207f,
+ 0.306390f, 0.306572f, 0.306755f, 0.306937f, 0.307120f, 0.307302f, 0.307485f, 0.307667f,
+ 0.307850f, 0.308032f, 0.308214f, 0.308397f, 0.308579f, 0.308762f, 0.308944f, 0.309126f,
+ 0.309309f, 0.309491f, 0.309673f, 0.309856f, 0.310038f, 0.310220f, 0.310403f, 0.310585f,
+ 0.310767f, 0.310949f, 0.311132f, 0.311314f, 0.311496f, 0.311678f, 0.311860f, 0.312043f,
+ 0.312225f, 0.312407f, 0.312589f, 0.312771f, 0.312953f, 0.313135f, 0.313318f, 0.313500f,
+ 0.313682f, 0.313864f, 0.314046f, 0.314228f, 0.314410f, 0.314592f, 0.314774f, 0.314956f,
+ 0.315138f, 0.315320f, 0.315502f, 0.315684f, 0.315866f, 0.316048f, 0.316230f, 0.316411f,
+ 0.316593f, 0.316775f, 0.316957f, 0.317139f, 0.317321f, 0.317503f, 0.317684f, 0.317866f,
+ 0.318048f, 0.318230f, 0.318412f, 0.318593f, 0.318775f, 0.318957f, 0.319139f, 0.319320f,
+ 0.319502f, 0.319684f, 0.319865f, 0.320047f, 0.320229f, 0.320410f, 0.320592f, 0.320774f,
+ 0.320955f, 0.321137f, 0.321318f, 0.321500f, 0.321682f, 0.321863f, 0.322045f, 0.322226f,
+ 0.322408f, 0.322589f, 0.322771f, 0.322952f, 0.323134f, 0.323315f, 0.323497f, 0.323678f,
+ 0.323859f, 0.324041f, 0.324222f, 0.324404f, 0.324585f, 0.324766f, 0.324948f, 0.325129f,
+ 0.325310f, 0.325492f, 0.325673f, 0.325854f, 0.326035f, 0.326217f, 0.326398f, 0.326579f,
+ 0.326760f, 0.326942f, 0.327123f, 0.327304f, 0.327485f, 0.327666f, 0.327848f, 0.328029f,
+ 0.328210f, 0.328391f, 0.328572f, 0.328753f, 0.328934f, 0.329115f, 0.329296f, 0.329477f,
+ 0.329658f, 0.329839f, 0.330020f, 0.330202f, 0.330382f, 0.330563f, 0.330744f, 0.330925f,
+ 0.331106f, 0.331287f, 0.331468f, 0.331649f, 0.331830f, 0.332011f, 0.332192f, 0.332373f,
+ 0.332553f, 0.332734f, 0.332915f, 0.333096f, 0.333277f, 0.333457f, 0.333638f, 0.333819f,
+ 0.334000f, 0.334180f, 0.334361f, 0.334542f, 0.334722f, 0.334903f, 0.335084f, 0.335265f,
+ 0.335445f, 0.335626f, 0.335806f, 0.335987f, 0.336168f, 0.336348f, 0.336529f, 0.336709f,
+ 0.336890f, 0.337070f, 0.337251f, 0.337431f, 0.337612f, 0.337792f, 0.337973f, 0.338153f,
+ 0.338334f, 0.338514f, 0.338695f, 0.338875f, 0.339055f, 0.339236f, 0.339416f, 0.339597f,
+ 0.339777f, 0.339957f, 0.340138f, 0.340318f, 0.340498f, 0.340678f, 0.340859f, 0.341039f,
+ 0.341219f, 0.341399f, 0.341580f, 0.341760f, 0.341940f, 0.342120f, 0.342300f, 0.342481f,
+ 0.342661f, 0.342841f, 0.343021f, 0.343201f, 0.343381f, 0.343561f, 0.343741f, 0.343921f,
+ 0.344101f, 0.344281f, 0.344461f, 0.344641f, 0.344821f, 0.345001f, 0.345181f, 0.345361f,
+ 0.345541f, 0.345721f, 0.345901f, 0.346081f, 0.346261f, 0.346441f, 0.346621f, 0.346801f,
+ 0.346980f, 0.347160f, 0.347340f, 0.347520f, 0.347700f, 0.347879f, 0.348059f, 0.348239f,
+ 0.348419f, 0.348598f, 0.348778f, 0.348958f, 0.349138f, 0.349317f, 0.349497f, 0.349676f,
+ 0.349856f, 0.350036f, 0.350215f, 0.350395f, 0.350575f, 0.350754f, 0.350934f, 0.351113f,
+ 0.351293f, 0.351472f, 0.351652f, 0.351831f, 0.352011f, 0.352190f, 0.352370f, 0.352549f,
+ 0.352729f, 0.352908f, 0.353087f, 0.353267f, 0.353446f, 0.353626f, 0.353805f, 0.353984f,
+ 0.354164f, 0.354343f, 0.354522f, 0.354701f, 0.354881f, 0.355060f, 0.355239f, 0.355418f,
+ 0.355598f, 0.355777f, 0.355956f, 0.356135f, 0.356314f, 0.356494f, 0.356673f, 0.356852f,
+ 0.357031f, 0.357210f, 0.357389f, 0.357568f, 0.357747f, 0.357926f, 0.358105f, 0.358284f,
+ 0.358463f, 0.358642f, 0.358821f, 0.359000f, 0.359179f, 0.359358f, 0.359537f, 0.359716f,
+ 0.359895f, 0.360074f, 0.360253f, 0.360432f, 0.360611f, 0.360789f, 0.360968f, 0.361147f,
+ 0.361326f, 0.361505f, 0.361683f, 0.361862f, 0.362041f, 0.362220f, 0.362398f, 0.362577f,
+ 0.362756f, 0.362934f, 0.363113f, 0.363292f, 0.363470f, 0.363649f, 0.363828f, 0.364006f,
+ 0.364185f, 0.364363f, 0.364542f, 0.364720f, 0.364899f, 0.365078f, 0.365256f, 0.365435f,
+ 0.365613f, 0.365791f, 0.365970f, 0.366148f, 0.366327f, 0.366505f, 0.366684f, 0.366862f,
+ 0.367040f, 0.367219f, 0.367397f, 0.367575f, 0.367754f, 0.367932f, 0.368110f, 0.368289f,
+ 0.368467f, 0.368645f, 0.368823f, 0.369002f, 0.369180f, 0.369358f, 0.369536f, 0.369714f,
+ 0.369892f, 0.370071f, 0.370249f, 0.370427f, 0.370605f, 0.370783f, 0.370961f, 0.371139f,
+ 0.371317f, 0.371495f, 0.371673f, 0.371851f, 0.372029f, 0.372207f, 0.372385f, 0.372563f,
+ 0.372741f, 0.372919f, 0.373097f, 0.373275f, 0.373453f, 0.373631f, 0.373808f, 0.373986f,
+ 0.374164f, 0.374342f, 0.374520f, 0.374697f, 0.374875f, 0.375053f, 0.375231f, 0.375408f,
+ 0.375586f, 0.375764f, 0.375942f, 0.376119f, 0.376297f, 0.376475f, 0.376652f, 0.376830f,
+ 0.377007f, 0.377185f, 0.377363f, 0.377540f, 0.377718f, 0.377895f, 0.378073f, 0.378250f,
+ 0.378428f, 0.378605f, 0.378783f, 0.378960f, 0.379138f, 0.379315f, 0.379492f, 0.379670f,
+ 0.379847f, 0.380025f, 0.380202f, 0.380379f, 0.380557f, 0.380734f, 0.380911f, 0.381088f,
+ 0.381266f, 0.381443f, 0.381620f, 0.381797f, 0.381975f, 0.382152f, 0.382329f, 0.382506f,
+ 0.382683f, 0.382861f, 0.383038f, 0.383215f, 0.383392f, 0.383569f, 0.383746f, 0.383923f,
+ 0.384100f, 0.384277f, 0.384454f, 0.384631f, 0.384808f, 0.384985f, 0.385162f, 0.385339f,
+ 0.385516f, 0.385693f, 0.385870f, 0.386047f, 0.386224f, 0.386400f, 0.386577f, 0.386754f,
+ 0.386931f, 0.387108f, 0.387285f, 0.387461f, 0.387638f, 0.387815f, 0.387992f, 0.388168f,
+ 0.388345f, 0.388522f, 0.388698f, 0.388875f, 0.389052f, 0.389228f, 0.389405f, 0.389582f,
+ 0.389758f, 0.389935f, 0.390111f, 0.390288f, 0.390464f, 0.390641f, 0.390817f, 0.390994f,
+ 0.391170f, 0.391347f, 0.391523f, 0.391700f, 0.391876f, 0.392053f, 0.392229f, 0.392405f,
+ 0.392582f, 0.392758f, 0.392934f, 0.393111f, 0.393287f, 0.393463f, 0.393640f, 0.393816f,
+ 0.393992f, 0.394168f, 0.394344f, 0.394521f, 0.394697f, 0.394873f, 0.395049f, 0.395225f,
+ 0.395401f, 0.395578f, 0.395754f, 0.395930f, 0.396106f, 0.396282f, 0.396458f, 0.396634f,
+ 0.396810f, 0.396986f, 0.397162f, 0.397338f, 0.397514f, 0.397690f, 0.397866f, 0.398042f,
+ 0.398218f, 0.398393f, 0.398569f, 0.398745f, 0.398921f, 0.399097f, 0.399273f, 0.399448f,
+ 0.399624f, 0.399800f, 0.399976f, 0.400151f, 0.400327f, 0.400503f, 0.400679f, 0.400854f,
+ 0.401030f, 0.401206f, 0.401381f, 0.401557f, 0.401732f, 0.401908f, 0.402084f, 0.402259f,
+ 0.402435f, 0.402610f, 0.402786f, 0.402961f, 0.403137f, 0.403312f, 0.403488f, 0.403663f,
+ 0.403838f, 0.404014f, 0.404189f, 0.404365f, 0.404540f, 0.404715f, 0.404891f, 0.405066f,
+ 0.405241f, 0.405417f, 0.405592f, 0.405767f, 0.405942f, 0.406118f, 0.406293f, 0.406468f,
+ 0.406643f, 0.406818f, 0.406994f, 0.407169f, 0.407344f, 0.407519f, 0.407694f, 0.407869f,
+ 0.408044f, 0.408219f, 0.408394f, 0.408569f, 0.408744f, 0.408919f, 0.409094f, 0.409269f,
+ 0.409444f, 0.409619f, 0.409794f, 0.409969f, 0.410144f, 0.410319f, 0.410493f, 0.410668f,
+ 0.410843f, 0.411018f, 0.411193f, 0.411368f, 0.411542f, 0.411717f, 0.411892f, 0.412067f,
+ 0.412241f, 0.412416f, 0.412591f, 0.412765f, 0.412940f, 0.413115f, 0.413289f, 0.413464f,
+ 0.413638f, 0.413813f, 0.413987f, 0.414162f, 0.414337f, 0.414511f, 0.414685f, 0.414860f,
+ 0.415034f, 0.415209f, 0.415383f, 0.415558f, 0.415732f, 0.415906f, 0.416081f, 0.416255f,
+ 0.416430f, 0.416604f, 0.416778f, 0.416952f, 0.417127f, 0.417301f, 0.417475f, 0.417650f,
+ 0.417824f, 0.417998f, 0.418172f, 0.418346f, 0.418520f, 0.418695f, 0.418869f, 0.419043f,
+ 0.419217f, 0.419391f, 0.419565f, 0.419739f, 0.419913f, 0.420087f, 0.420261f, 0.420435f,
+ 0.420609f, 0.420783f, 0.420957f, 0.421131f, 0.421305f, 0.421479f, 0.421653f, 0.421826f,
+ 0.422000f, 0.422174f, 0.422348f, 0.422522f, 0.422695f, 0.422869f, 0.423043f, 0.423217f,
+ 0.423390f, 0.423564f, 0.423738f, 0.423912f, 0.424085f, 0.424259f, 0.424432f, 0.424606f,
+ 0.424780f, 0.424953f, 0.425127f, 0.425300f, 0.425474f, 0.425647f, 0.425821f, 0.425994f,
+ 0.426168f, 0.426341f, 0.426515f, 0.426688f, 0.426862f, 0.427035f, 0.427208f, 0.427382f,
+ 0.427555f, 0.427728f, 0.427902f, 0.428075f, 0.428248f, 0.428422f, 0.428595f, 0.428768f,
+ 0.428941f, 0.429114f, 0.429288f, 0.429461f, 0.429634f, 0.429807f, 0.429980f, 0.430153f,
+ 0.430326f, 0.430500f, 0.430673f, 0.430846f, 0.431019f, 0.431192f, 0.431365f, 0.431538f,
+ 0.431711f, 0.431884f, 0.432057f, 0.432229f, 0.432402f, 0.432575f, 0.432748f, 0.432921f,
+ 0.433094f, 0.433267f, 0.433439f, 0.433612f, 0.433785f, 0.433958f, 0.434131f, 0.434303f,
+ 0.434476f, 0.434649f, 0.434821f, 0.434994f, 0.435167f, 0.435339f, 0.435512f, 0.435685f,
+ 0.435857f, 0.436030f, 0.436202f, 0.436375f, 0.436547f, 0.436720f, 0.436892f, 0.437065f,
+ 0.437237f, 0.437410f, 0.437582f, 0.437754f, 0.437927f, 0.438099f, 0.438272f, 0.438444f,
+ 0.438616f, 0.438789f, 0.438961f, 0.439133f, 0.439305f, 0.439478f, 0.439650f, 0.439822f,
+ 0.439994f, 0.440166f, 0.440339f, 0.440511f, 0.440683f, 0.440855f, 0.441027f, 0.441199f,
+ 0.441371f, 0.441543f, 0.441715f, 0.441887f, 0.442059f, 0.442231f, 0.442403f, 0.442575f,
+ 0.442747f, 0.442919f, 0.443091f, 0.443263f, 0.443435f, 0.443607f, 0.443779f, 0.443950f,
+ 0.444122f, 0.444294f, 0.444466f, 0.444637f, 0.444809f, 0.444981f, 0.445153f, 0.445324f,
+ 0.445496f, 0.445668f, 0.445839f, 0.446011f, 0.446183f, 0.446354f, 0.446526f, 0.446697f,
+ 0.446869f, 0.447040f, 0.447212f, 0.447383f, 0.447555f, 0.447726f, 0.447898f, 0.448069f,
+ 0.448241f, 0.448412f, 0.448583f, 0.448755f, 0.448926f, 0.449097f, 0.449269f, 0.449440f,
+ 0.449611f, 0.449783f, 0.449954f, 0.450125f, 0.450296f, 0.450467f, 0.450639f, 0.450810f,
+ 0.450981f, 0.451152f, 0.451323f, 0.451494f, 0.451665f, 0.451836f, 0.452008f, 0.452179f,
+ 0.452350f, 0.452521f, 0.452692f, 0.452863f, 0.453033f, 0.453204f, 0.453375f, 0.453546f,
+ 0.453717f, 0.453888f, 0.454059f, 0.454230f, 0.454400f, 0.454571f, 0.454742f, 0.454913f,
+ 0.455084f, 0.455254f, 0.455425f, 0.455596f, 0.455766f, 0.455937f, 0.456108f, 0.456278f,
+ 0.456449f, 0.456620f, 0.456790f, 0.456961f, 0.457131f, 0.457302f, 0.457472f, 0.457643f,
+ 0.457813f, 0.457984f, 0.458154f, 0.458325f, 0.458495f, 0.458665f, 0.458836f, 0.459006f,
+ 0.459177f, 0.459347f, 0.459517f, 0.459687f, 0.459858f, 0.460028f, 0.460198f, 0.460369f,
+ 0.460539f, 0.460709f, 0.460879f, 0.461049f, 0.461219f, 0.461390f, 0.461560f, 0.461730f,
+ 0.461900f, 0.462070f, 0.462240f, 0.462410f, 0.462580f, 0.462750f, 0.462920f, 0.463090f,
+ 0.463260f, 0.463430f, 0.463600f, 0.463769f, 0.463939f, 0.464109f, 0.464279f, 0.464449f,
+ 0.464619f, 0.464788f, 0.464958f, 0.465128f, 0.465298f, 0.465467f, 0.465637f, 0.465807f,
+ 0.465977f, 0.466146f, 0.466316f, 0.466485f, 0.466655f, 0.466825f, 0.466994f, 0.467164f,
+ 0.467333f, 0.467503f, 0.467672f, 0.467842f, 0.468011f, 0.468181f, 0.468350f, 0.468519f,
+ 0.468689f, 0.468858f, 0.469028f, 0.469197f, 0.469366f, 0.469536f, 0.469705f, 0.469874f,
+ 0.470043f, 0.470213f, 0.470382f, 0.470551f, 0.470720f, 0.470889f, 0.471058f, 0.471228f,
+ 0.471397f, 0.471566f, 0.471735f, 0.471904f, 0.472073f, 0.472242f, 0.472411f, 0.472580f,
+ 0.472749f, 0.472918f, 0.473087f, 0.473256f, 0.473425f, 0.473594f, 0.473763f, 0.473931f,
+ 0.474100f, 0.474269f, 0.474438f, 0.474607f, 0.474775f, 0.474944f, 0.475113f, 0.475282f,
+ 0.475450f, 0.475619f, 0.475788f, 0.475956f, 0.476125f, 0.476294f, 0.476462f, 0.476631f,
+ 0.476799f, 0.476968f, 0.477136f, 0.477305f, 0.477473f, 0.477642f, 0.477810f, 0.477979f,
+ 0.478147f, 0.478315f, 0.478484f, 0.478652f, 0.478821f, 0.478989f, 0.479157f, 0.479325f,
+ 0.479494f, 0.479662f, 0.479830f, 0.479998f, 0.480167f, 0.480335f, 0.480503f, 0.480671f,
+ 0.480839f, 0.481007f, 0.481176f, 0.481344f, 0.481512f, 0.481680f, 0.481848f, 0.482016f,
+ 0.482184f, 0.482352f, 0.482520f, 0.482688f, 0.482856f, 0.483023f, 0.483191f, 0.483359f,
+ 0.483527f, 0.483695f, 0.483863f, 0.484031f, 0.484198f, 0.484366f, 0.484534f, 0.484702f,
+ 0.484869f, 0.485037f, 0.485205f, 0.485372f, 0.485540f, 0.485708f, 0.485875f, 0.486043f,
+ 0.486210f, 0.486378f, 0.486545f, 0.486713f, 0.486880f, 0.487048f, 0.487215f, 0.487383f,
+ 0.487550f, 0.487718f, 0.487885f, 0.488052f, 0.488220f, 0.488387f, 0.488554f, 0.488722f,
+ 0.488889f, 0.489056f, 0.489223f, 0.489391f, 0.489558f, 0.489725f, 0.489892f, 0.490059f,
+ 0.490226f, 0.490394f, 0.490561f, 0.490728f, 0.490895f, 0.491062f, 0.491229f, 0.491396f,
+ 0.491563f, 0.491730f, 0.491897f, 0.492064f, 0.492231f, 0.492398f, 0.492564f, 0.492731f,
+ 0.492898f, 0.493065f, 0.493232f, 0.493399f, 0.493565f, 0.493732f, 0.493899f, 0.494066f,
+ 0.494232f, 0.494399f, 0.494566f, 0.494732f, 0.494899f, 0.495066f, 0.495232f, 0.495399f,
+ 0.495565f, 0.495732f, 0.495898f, 0.496065f, 0.496231f, 0.496398f, 0.496564f, 0.496731f,
+ 0.496897f, 0.497063f, 0.497230f, 0.497396f, 0.497562f, 0.497729f, 0.497895f, 0.498061f,
+ 0.498228f, 0.498394f, 0.498560f, 0.498726f, 0.498893f, 0.499059f, 0.499225f, 0.499391f,
+ 0.499557f, 0.499723f, 0.499889f, 0.500055f, 0.500221f, 0.500387f, 0.500553f, 0.500719f,
+ 0.500885f, 0.501051f, 0.501217f, 0.501383f, 0.501549f, 0.501715f, 0.501881f, 0.502047f,
+ 0.502212f, 0.502378f, 0.502544f, 0.502710f, 0.502876f, 0.503041f, 0.503207f, 0.503373f,
+ 0.503538f, 0.503704f, 0.503870f, 0.504035f, 0.504201f, 0.504366f, 0.504532f, 0.504698f,
+ 0.504863f, 0.505029f, 0.505194f, 0.505360f, 0.505525f, 0.505690f, 0.505856f, 0.506021f,
+ 0.506187f, 0.506352f, 0.506517f, 0.506683f, 0.506848f, 0.507013f, 0.507179f, 0.507344f,
+ 0.507509f, 0.507674f, 0.507839f, 0.508005f, 0.508170f, 0.508335f, 0.508500f, 0.508665f,
+ 0.508830f, 0.508995f, 0.509160f, 0.509325f, 0.509490f, 0.509655f, 0.509820f, 0.509985f,
+ 0.510150f, 0.510315f, 0.510480f, 0.510645f, 0.510810f, 0.510974f, 0.511139f, 0.511304f,
+ 0.511469f, 0.511634f, 0.511798f, 0.511963f, 0.512128f, 0.512292f, 0.512457f, 0.512622f,
+ 0.512786f, 0.512951f, 0.513116f, 0.513280f, 0.513445f, 0.513609f, 0.513774f, 0.513938f,
+ 0.514103f, 0.514267f, 0.514432f, 0.514596f, 0.514760f, 0.514925f, 0.515089f, 0.515254f,
+ 0.515418f, 0.515582f, 0.515746f, 0.515911f, 0.516075f, 0.516239f, 0.516403f, 0.516568f,
+ 0.516732f, 0.516896f, 0.517060f, 0.517224f, 0.517388f, 0.517552f, 0.517716f, 0.517880f,
+ 0.518045f, 0.518209f, 0.518372f, 0.518536f, 0.518700f, 0.518864f, 0.519028f, 0.519192f,
+ 0.519356f, 0.519520f, 0.519684f, 0.519848f, 0.520011f, 0.520175f, 0.520339f, 0.520503f,
+ 0.520666f, 0.520830f, 0.520994f, 0.521157f, 0.521321f, 0.521485f, 0.521648f, 0.521812f,
+ 0.521975f, 0.522139f, 0.522302f, 0.522466f, 0.522629f, 0.522793f, 0.522956f, 0.523120f,
+ 0.523283f, 0.523447f, 0.523610f, 0.523773f, 0.523937f, 0.524100f, 0.524263f, 0.524426f,
+ 0.524590f, 0.524753f, 0.524916f, 0.525079f, 0.525243f, 0.525406f, 0.525569f, 0.525732f,
+ 0.525895f, 0.526058f, 0.526221f, 0.526384f, 0.526547f, 0.526710f, 0.526873f, 0.527036f,
+ 0.527199f, 0.527362f, 0.527525f, 0.527688f, 0.527851f, 0.528014f, 0.528176f, 0.528339f,
+ 0.528502f, 0.528665f, 0.528828f, 0.528990f, 0.529153f, 0.529316f, 0.529478f, 0.529641f,
+ 0.529804f, 0.529966f, 0.530129f, 0.530291f, 0.530454f, 0.530617f, 0.530779f, 0.530942f,
+ 0.531104f, 0.531266f, 0.531429f, 0.531591f, 0.531754f, 0.531916f, 0.532078f, 0.532241f,
+ 0.532403f, 0.532565f, 0.532728f, 0.532890f, 0.533052f, 0.533214f, 0.533377f, 0.533539f,
+ 0.533701f, 0.533863f, 0.534025f, 0.534187f, 0.534349f, 0.534512f, 0.534674f, 0.534836f,
+ 0.534998f, 0.535160f, 0.535322f, 0.535484f, 0.535645f, 0.535807f, 0.535969f, 0.536131f,
+ 0.536293f, 0.536455f, 0.536617f, 0.536778f, 0.536940f, 0.537102f, 0.537264f, 0.537425f,
+ 0.537587f, 0.537749f, 0.537910f, 0.538072f, 0.538234f, 0.538395f, 0.538557f, 0.538718f,
+ 0.538880f, 0.539041f, 0.539203f, 0.539364f, 0.539526f, 0.539687f, 0.539849f, 0.540010f,
+ 0.540171f, 0.540333f, 0.540494f, 0.540655f, 0.540817f, 0.540978f, 0.541139f, 0.541301f,
+ 0.541462f, 0.541623f, 0.541784f, 0.541945f, 0.542106f, 0.542268f, 0.542429f, 0.542590f,
+ 0.542751f, 0.542912f, 0.543073f, 0.543234f, 0.543395f, 0.543556f, 0.543717f, 0.543878f,
+ 0.544039f, 0.544199f, 0.544360f, 0.544521f, 0.544682f, 0.544843f, 0.545003f, 0.545164f,
+ 0.545325f, 0.545486f, 0.545646f, 0.545807f, 0.545968f, 0.546128f, 0.546289f, 0.546450f,
+ 0.546610f, 0.546771f, 0.546931f, 0.547092f, 0.547252f, 0.547413f, 0.547573f, 0.547734f,
+ 0.547894f, 0.548054f, 0.548215f, 0.548375f, 0.548536f, 0.548696f, 0.548856f, 0.549016f,
+ 0.549177f, 0.549337f, 0.549497f, 0.549657f, 0.549818f, 0.549978f, 0.550138f, 0.550298f,
+ 0.550458f, 0.550618f, 0.550778f, 0.550938f, 0.551098f, 0.551258f, 0.551418f, 0.551578f,
+ 0.551738f, 0.551898f, 0.552058f, 0.552218f, 0.552378f, 0.552537f, 0.552697f, 0.552857f,
+ 0.553017f, 0.553176f, 0.553336f, 0.553496f, 0.553656f, 0.553815f, 0.553975f, 0.554134f,
+ 0.554294f, 0.554454f, 0.554613f, 0.554773f, 0.554932f, 0.555092f, 0.555251f, 0.555411f,
+ 0.555570f, 0.555730f, 0.555889f, 0.556048f, 0.556208f, 0.556367f, 0.556526f, 0.556686f,
+ 0.556845f, 0.557004f, 0.557164f, 0.557323f, 0.557482f, 0.557641f, 0.557800f, 0.557959f,
+ 0.558119f, 0.558278f, 0.558437f, 0.558596f, 0.558755f, 0.558914f, 0.559073f, 0.559232f,
+ 0.559391f, 0.559550f, 0.559709f, 0.559867f, 0.560026f, 0.560185f, 0.560344f, 0.560503f,
+ 0.560662f, 0.560820f, 0.560979f, 0.561138f, 0.561297f, 0.561455f, 0.561614f, 0.561773f,
+ 0.561931f, 0.562090f, 0.562248f, 0.562407f, 0.562565f, 0.562724f, 0.562882f, 0.563041f,
+ 0.563199f, 0.563358f, 0.563516f, 0.563675f, 0.563833f, 0.563991f, 0.564150f, 0.564308f,
+ 0.564466f, 0.564624f, 0.564783f, 0.564941f, 0.565099f, 0.565257f, 0.565416f, 0.565574f,
+ 0.565732f, 0.565890f, 0.566048f, 0.566206f, 0.566364f, 0.566522f, 0.566680f, 0.566838f,
+ 0.566996f, 0.567154f, 0.567312f, 0.567470f, 0.567628f, 0.567786f, 0.567943f, 0.568101f,
+ 0.568259f, 0.568417f, 0.568574f, 0.568732f, 0.568890f, 0.569048f, 0.569205f, 0.569363f,
+ 0.569521f, 0.569678f, 0.569836f, 0.569993f, 0.570151f, 0.570308f, 0.570466f, 0.570623f,
+ 0.570781f, 0.570938f, 0.571096f, 0.571253f, 0.571410f, 0.571568f, 0.571725f, 0.571882f,
+ 0.572040f, 0.572197f, 0.572354f, 0.572511f, 0.572669f, 0.572826f, 0.572983f, 0.573140f,
+ 0.573297f, 0.573454f, 0.573611f, 0.573768f, 0.573925f, 0.574082f, 0.574239f, 0.574396f,
+ 0.574553f, 0.574710f, 0.574867f, 0.575024f, 0.575181f, 0.575338f, 0.575495f, 0.575651f,
+ 0.575808f, 0.575965f, 0.576122f, 0.576278f, 0.576435f, 0.576592f, 0.576748f, 0.576905f,
+ 0.577062f, 0.577218f, 0.577375f, 0.577531f, 0.577688f, 0.577844f, 0.578001f, 0.578157f,
+ 0.578314f, 0.578470f, 0.578627f, 0.578783f, 0.578939f, 0.579096f, 0.579252f, 0.579408f,
+ 0.579565f, 0.579721f, 0.579877f, 0.580033f, 0.580189f, 0.580346f, 0.580502f, 0.580658f,
+ 0.580814f, 0.580970f, 0.581126f, 0.581282f, 0.581438f, 0.581594f, 0.581750f, 0.581906f,
+ 0.582062f, 0.582218f, 0.582374f, 0.582530f, 0.582685f, 0.582841f, 0.582997f, 0.583153f,
+ 0.583309f, 0.583464f, 0.583620f, 0.583776f, 0.583931f, 0.584087f, 0.584243f, 0.584398f,
+ 0.584554f, 0.584710f, 0.584865f, 0.585021f, 0.585176f, 0.585332f, 0.585487f, 0.585642f,
+ 0.585798f, 0.585953f, 0.586109f, 0.586264f, 0.586419f, 0.586575f, 0.586730f, 0.586885f,
+ 0.587040f, 0.587196f, 0.587351f, 0.587506f, 0.587661f, 0.587816f, 0.587971f, 0.588126f,
+ 0.588282f, 0.588437f, 0.588592f, 0.588747f, 0.588902f, 0.589057f, 0.589212f, 0.589366f,
+ 0.589521f, 0.589676f, 0.589831f, 0.589986f, 0.590141f, 0.590295f, 0.590450f, 0.590605f,
+ 0.590760f, 0.590914f, 0.591069f, 0.591224f, 0.591378f, 0.591533f, 0.591688f, 0.591842f,
+ 0.591997f, 0.592151f, 0.592306f, 0.592460f, 0.592615f, 0.592769f, 0.592924f, 0.593078f,
+ 0.593232f, 0.593387f, 0.593541f, 0.593695f, 0.593850f, 0.594004f, 0.594158f, 0.594312f,
+ 0.594467f, 0.594621f, 0.594775f, 0.594929f, 0.595083f, 0.595237f, 0.595391f, 0.595545f,
+ 0.595699f, 0.595853f, 0.596007f, 0.596161f, 0.596315f, 0.596469f, 0.596623f, 0.596777f,
+ 0.596931f, 0.597085f, 0.597238f, 0.597392f, 0.597546f, 0.597700f, 0.597853f, 0.598007f,
+ 0.598161f, 0.598314f, 0.598468f, 0.598622f, 0.598775f, 0.598929f, 0.599082f, 0.599236f,
+ 0.599389f, 0.599543f, 0.599696f, 0.599850f, 0.600003f, 0.600156f, 0.600310f, 0.600463f,
+ 0.600616f, 0.600770f, 0.600923f, 0.601076f, 0.601230f, 0.601383f, 0.601536f, 0.601689f,
+ 0.601842f, 0.601995f, 0.602148f, 0.602302f, 0.602455f, 0.602608f, 0.602761f, 0.602914f,
+ 0.603067f, 0.603220f, 0.603372f, 0.603525f, 0.603678f, 0.603831f, 0.603984f, 0.604137f,
+ 0.604290f, 0.604442f, 0.604595f, 0.604748f, 0.604900f, 0.605053f, 0.605206f, 0.605358f,
+ 0.605511f, 0.605664f, 0.605816f, 0.605969f, 0.606121f, 0.606274f, 0.606426f, 0.606579f,
+ 0.606731f, 0.606884f, 0.607036f, 0.607188f, 0.607341f, 0.607493f, 0.607645f, 0.607798f,
+ 0.607950f, 0.608102f, 0.608254f, 0.608406f, 0.608559f, 0.608711f, 0.608863f, 0.609015f,
+ 0.609167f, 0.609319f, 0.609471f, 0.609623f, 0.609775f, 0.609927f, 0.610079f, 0.610231f,
+ 0.610383f, 0.610535f, 0.610687f, 0.610838f, 0.610990f, 0.611142f, 0.611294f, 0.611445f,
+ 0.611597f, 0.611749f, 0.611901f, 0.612052f, 0.612204f, 0.612355f, 0.612507f, 0.612659f,
+ 0.612810f, 0.612962f, 0.613113f, 0.613265f, 0.613416f, 0.613567f, 0.613719f, 0.613870f,
+ 0.614022f, 0.614173f, 0.614324f, 0.614475f, 0.614627f, 0.614778f, 0.614929f, 0.615080f,
+ 0.615232f, 0.615383f, 0.615534f, 0.615685f, 0.615836f, 0.615987f, 0.616138f, 0.616289f,
+ 0.616440f, 0.616591f, 0.616742f, 0.616893f, 0.617044f, 0.617195f, 0.617346f, 0.617496f,
+ 0.617647f, 0.617798f, 0.617949f, 0.618100f, 0.618250f, 0.618401f, 0.618552f, 0.618702f,
+ 0.618853f, 0.619004f, 0.619154f, 0.619305f, 0.619455f, 0.619606f, 0.619756f, 0.619907f,
+ 0.620057f, 0.620208f, 0.620358f, 0.620508f, 0.620659f, 0.620809f, 0.620959f, 0.621110f,
+ 0.621260f, 0.621410f, 0.621560f, 0.621711f, 0.621861f, 0.622011f, 0.622161f, 0.622311f,
+ 0.622461f, 0.622611f, 0.622761f, 0.622911f, 0.623061f, 0.623211f, 0.623361f, 0.623511f,
+ 0.623661f, 0.623811f, 0.623961f, 0.624111f, 0.624260f, 0.624410f, 0.624560f, 0.624710f,
+ 0.624860f, 0.625009f, 0.625159f, 0.625309f, 0.625458f, 0.625608f, 0.625757f, 0.625907f,
+ 0.626056f, 0.626206f, 0.626355f, 0.626505f, 0.626654f, 0.626804f, 0.626953f, 0.627102f,
+ 0.627252f, 0.627401f, 0.627550f, 0.627700f, 0.627849f, 0.627998f, 0.628147f, 0.628297f,
+ 0.628446f, 0.628595f, 0.628744f, 0.628893f, 0.629042f, 0.629191f, 0.629340f, 0.629489f,
+ 0.629638f, 0.629787f, 0.629936f, 0.630085f, 0.630234f, 0.630383f, 0.630532f, 0.630680f,
+ 0.630829f, 0.630978f, 0.631127f, 0.631275f, 0.631424f, 0.631573f, 0.631721f, 0.631870f,
+ 0.632019f, 0.632167f, 0.632316f, 0.632464f, 0.632613f, 0.632761f, 0.632910f, 0.633058f,
+ 0.633207f, 0.633355f, 0.633504f, 0.633652f, 0.633800f, 0.633949f, 0.634097f, 0.634245f,
+ 0.634393f, 0.634542f, 0.634690f, 0.634838f, 0.634986f, 0.635134f, 0.635282f, 0.635430f,
+ 0.635578f, 0.635726f, 0.635874f, 0.636022f, 0.636170f, 0.636318f, 0.636466f, 0.636614f,
+ 0.636762f, 0.636910f, 0.637057f, 0.637205f, 0.637353f, 0.637501f, 0.637649f, 0.637796f,
+ 0.637944f, 0.638092f, 0.638239f, 0.638387f, 0.638534f, 0.638682f, 0.638829f, 0.638977f,
+ 0.639124f, 0.639272f, 0.639419f, 0.639567f, 0.639714f, 0.639862f, 0.640009f, 0.640156f,
+ 0.640303f, 0.640451f, 0.640598f, 0.640745f, 0.640892f, 0.641040f, 0.641187f, 0.641334f,
+ 0.641481f, 0.641628f, 0.641775f, 0.641922f, 0.642069f, 0.642216f, 0.642363f, 0.642510f,
+ 0.642657f, 0.642804f, 0.642951f, 0.643098f, 0.643245f, 0.643391f, 0.643538f, 0.643685f,
+ 0.643832f, 0.643978f, 0.644125f, 0.644272f, 0.644418f, 0.644565f, 0.644711f, 0.644858f,
+ 0.645005f, 0.645151f, 0.645298f, 0.645444f, 0.645590f, 0.645737f, 0.645883f, 0.646030f,
+ 0.646176f, 0.646322f, 0.646469f, 0.646615f, 0.646761f, 0.646907f, 0.647054f, 0.647200f,
+ 0.647346f, 0.647492f, 0.647638f, 0.647784f, 0.647930f, 0.648076f, 0.648222f, 0.648368f,
+ 0.648514f, 0.648660f, 0.648806f, 0.648952f, 0.649098f, 0.649244f, 0.649390f, 0.649536f,
+ 0.649681f, 0.649827f, 0.649973f, 0.650119f, 0.650264f, 0.650410f, 0.650555f, 0.650701f,
+ 0.650847f, 0.650992f, 0.651138f, 0.651283f, 0.651429f, 0.651574f, 0.651720f, 0.651865f,
+ 0.652011f, 0.652156f, 0.652301f, 0.652447f, 0.652592f, 0.652737f, 0.652882f, 0.653028f,
+ 0.653173f, 0.653318f, 0.653463f, 0.653608f, 0.653753f, 0.653899f, 0.654044f, 0.654189f,
+ 0.654334f, 0.654479f, 0.654624f, 0.654769f, 0.654913f, 0.655058f, 0.655203f, 0.655348f,
+ 0.655493f, 0.655638f, 0.655782f, 0.655927f, 0.656072f, 0.656217f, 0.656361f, 0.656506f,
+ 0.656651f, 0.656795f, 0.656940f, 0.657084f, 0.657229f, 0.657373f, 0.657518f, 0.657662f,
+ 0.657807f, 0.657951f, 0.658095f, 0.658240f, 0.658384f, 0.658529f, 0.658673f, 0.658817f,
+ 0.658961f, 0.659105f, 0.659250f, 0.659394f, 0.659538f, 0.659682f, 0.659826f, 0.659970f,
+ 0.660114f, 0.660258f, 0.660402f, 0.660546f, 0.660690f, 0.660834f, 0.660978f, 0.661122f,
+ 0.661266f, 0.661410f, 0.661553f, 0.661697f, 0.661841f, 0.661985f, 0.662128f, 0.662272f,
+ 0.662416f, 0.662559f, 0.662703f, 0.662847f, 0.662990f, 0.663134f, 0.663277f, 0.663421f,
+ 0.663564f, 0.663708f, 0.663851f, 0.663994f, 0.664138f, 0.664281f, 0.664424f, 0.664568f,
+ 0.664711f, 0.664854f, 0.664997f, 0.665141f, 0.665284f, 0.665427f, 0.665570f, 0.665713f,
+ 0.665856f, 0.665999f, 0.666142f, 0.666285f, 0.666428f, 0.666571f, 0.666714f, 0.666857f,
+ 0.667000f, 0.667143f, 0.667286f, 0.667428f, 0.667571f, 0.667714f, 0.667857f, 0.667999f,
+ 0.668142f, 0.668285f, 0.668427f, 0.668570f, 0.668712f, 0.668855f, 0.668998f, 0.669140f,
+ 0.669283f, 0.669425f, 0.669567f, 0.669710f, 0.669852f, 0.669995f, 0.670137f, 0.670279f,
+ 0.670422f, 0.670564f, 0.670706f, 0.670848f, 0.670990f, 0.671133f, 0.671275f, 0.671417f,
+ 0.671559f, 0.671701f, 0.671843f, 0.671985f, 0.672127f, 0.672269f, 0.672411f, 0.672553f,
+ 0.672695f, 0.672837f, 0.672978f, 0.673120f, 0.673262f, 0.673404f, 0.673546f, 0.673687f,
+ 0.673829f, 0.673971f, 0.674112f, 0.674254f, 0.674396f, 0.674537f, 0.674679f, 0.674820f,
+ 0.674962f, 0.675103f, 0.675245f, 0.675386f, 0.675527f, 0.675669f, 0.675810f, 0.675951f,
+ 0.676093f, 0.676234f, 0.676375f, 0.676516f, 0.676658f, 0.676799f, 0.676940f, 0.677081f,
+ 0.677222f, 0.677363f, 0.677504f, 0.677645f, 0.677786f, 0.677927f, 0.678068f, 0.678209f,
+ 0.678350f, 0.678491f, 0.678632f, 0.678773f, 0.678913f, 0.679054f, 0.679195f, 0.679336f,
+ 0.679476f, 0.679617f, 0.679758f, 0.679898f, 0.680039f, 0.680179f, 0.680320f, 0.680461f,
+ 0.680601f, 0.680741f, 0.680882f, 0.681022f, 0.681163f, 0.681303f, 0.681443f, 0.681584f,
+ 0.681724f, 0.681864f, 0.682005f, 0.682145f, 0.682285f, 0.682425f, 0.682565f, 0.682705f,
+ 0.682846f, 0.682986f, 0.683126f, 0.683266f, 0.683406f, 0.683546f, 0.683686f, 0.683825f,
+ 0.683965f, 0.684105f, 0.684245f, 0.684385f, 0.684525f, 0.684664f, 0.684804f, 0.684944f,
+ 0.685084f, 0.685223f, 0.685363f, 0.685503f, 0.685642f, 0.685782f, 0.685921f, 0.686061f,
+ 0.686200f, 0.686340f, 0.686479f, 0.686619f, 0.686758f, 0.686897f, 0.687037f, 0.687176f,
+ 0.687315f, 0.687455f, 0.687594f, 0.687733f, 0.687872f, 0.688011f, 0.688151f, 0.688290f,
+ 0.688429f, 0.688568f, 0.688707f, 0.688846f, 0.688985f, 0.689124f, 0.689263f, 0.689402f,
+ 0.689541f, 0.689679f, 0.689818f, 0.689957f, 0.690096f, 0.690235f, 0.690373f, 0.690512f,
+ 0.690651f, 0.690789f, 0.690928f, 0.691067f, 0.691205f, 0.691344f, 0.691482f, 0.691621f,
+ 0.691759f, 0.691898f, 0.692036f, 0.692175f, 0.692313f, 0.692451f, 0.692590f, 0.692728f,
+ 0.692866f, 0.693004f, 0.693143f, 0.693281f, 0.693419f, 0.693557f, 0.693695f, 0.693833f,
+ 0.693971f, 0.694109f, 0.694248f, 0.694386f, 0.694524f, 0.694661f, 0.694799f, 0.694937f,
+ 0.695075f, 0.695213f, 0.695351f, 0.695489f, 0.695626f, 0.695764f, 0.695902f, 0.696039f,
+ 0.696177f, 0.696315f, 0.696452f, 0.696590f, 0.696728f, 0.696865f, 0.697003f, 0.697140f,
+ 0.697277f, 0.697415f, 0.697552f, 0.697690f, 0.697827f, 0.697964f, 0.698102f, 0.698239f,
+ 0.698376f, 0.698513f, 0.698651f, 0.698788f, 0.698925f, 0.699062f, 0.699199f, 0.699336f,
+ 0.699473f, 0.699610f, 0.699747f, 0.699884f, 0.700021f, 0.700158f, 0.700295f, 0.700432f,
+ 0.700569f, 0.700706f, 0.700842f, 0.700979f, 0.701116f, 0.701253f, 0.701389f, 0.701526f,
+ 0.701663f, 0.701799f, 0.701936f, 0.702072f, 0.702209f, 0.702345f, 0.702482f, 0.702618f,
+ 0.702755f, 0.702891f, 0.703028f, 0.703164f, 0.703300f, 0.703436f, 0.703573f, 0.703709f,
+ 0.703845f, 0.703981f, 0.704118f, 0.704254f, 0.704390f, 0.704526f, 0.704662f, 0.704798f,
+ 0.704934f, 0.705070f, 0.705206f, 0.705342f, 0.705478f, 0.705614f, 0.705750f, 0.705885f,
+ 0.706021f, 0.706157f, 0.706293f, 0.706429f, 0.706564f, 0.706700f, 0.706836f, 0.706971f,
+ 0.707107f, 0.707242f, 0.707378f, 0.707513f, 0.707649f, 0.707784f, 0.707920f, 0.708055f,
+ 0.708191f, 0.708326f, 0.708461f, 0.708597f, 0.708732f, 0.708867f, 0.709002f, 0.709138f,
+ 0.709273f, 0.709408f, 0.709543f, 0.709678f, 0.709813f, 0.709948f, 0.710083f, 0.710218f,
+ 0.710353f, 0.710488f, 0.710623f, 0.710758f, 0.710893f, 0.711028f, 0.711163f, 0.711297f,
+ 0.711432f, 0.711567f, 0.711702f, 0.711836f, 0.711971f, 0.712106f, 0.712240f, 0.712375f,
+ 0.712509f, 0.712644f, 0.712778f, 0.712913f, 0.713047f, 0.713182f, 0.713316f, 0.713451f,
+ 0.713585f, 0.713719f, 0.713853f, 0.713988f, 0.714122f, 0.714256f, 0.714390f, 0.714525f,
+ 0.714659f, 0.714793f, 0.714927f, 0.715061f, 0.715195f, 0.715329f, 0.715463f, 0.715597f,
+ 0.715731f, 0.715865f, 0.715999f, 0.716132f, 0.716266f, 0.716400f, 0.716534f, 0.716668f,
+ 0.716801f, 0.716935f, 0.717069f, 0.717202f, 0.717336f, 0.717469f, 0.717603f, 0.717737f,
+ 0.717870f, 0.718004f, 0.718137f, 0.718270f, 0.718404f, 0.718537f, 0.718670f, 0.718804f,
+ 0.718937f, 0.719070f, 0.719204f, 0.719337f, 0.719470f, 0.719603f, 0.719736f, 0.719869f,
+ 0.720003f, 0.720136f, 0.720269f, 0.720402f, 0.720535f, 0.720668f, 0.720800f, 0.720933f,
+ 0.721066f, 0.721199f, 0.721332f, 0.721465f, 0.721597f, 0.721730f, 0.721863f, 0.721996f,
+ 0.722128f, 0.722261f, 0.722393f, 0.722526f, 0.722659f, 0.722791f, 0.722924f, 0.723056f,
+ 0.723188f, 0.723321f, 0.723453f, 0.723586f, 0.723718f, 0.723850f, 0.723983f, 0.724115f,
+ 0.724247f, 0.724379f, 0.724511f, 0.724644f, 0.724776f, 0.724908f, 0.725040f, 0.725172f,
+ 0.725304f, 0.725436f, 0.725568f, 0.725700f, 0.725832f, 0.725964f, 0.726095f, 0.726227f,
+ 0.726359f, 0.726491f, 0.726623f, 0.726754f, 0.726886f, 0.727018f, 0.727149f, 0.727281f,
+ 0.727413f, 0.727544f, 0.727676f, 0.727807f, 0.727939f, 0.728070f, 0.728202f, 0.728333f,
+ 0.728464f, 0.728596f, 0.728727f, 0.728858f, 0.728990f, 0.729121f, 0.729252f, 0.729383f,
+ 0.729514f, 0.729646f, 0.729777f, 0.729908f, 0.730039f, 0.730170f, 0.730301f, 0.730432f,
+ 0.730563f, 0.730694f, 0.730825f, 0.730955f, 0.731086f, 0.731217f, 0.731348f, 0.731479f,
+ 0.731609f, 0.731740f, 0.731871f, 0.732001f, 0.732132f, 0.732263f, 0.732393f, 0.732524f,
+ 0.732654f, 0.732785f, 0.732915f, 0.733046f, 0.733176f, 0.733306f, 0.733437f, 0.733567f,
+ 0.733697f, 0.733828f, 0.733958f, 0.734088f, 0.734218f, 0.734349f, 0.734479f, 0.734609f,
+ 0.734739f, 0.734869f, 0.734999f, 0.735129f, 0.735259f, 0.735389f, 0.735519f, 0.735649f,
+ 0.735779f, 0.735908f, 0.736038f, 0.736168f, 0.736298f, 0.736428f, 0.736557f, 0.736687f,
+ 0.736817f, 0.736946f, 0.737076f, 0.737205f, 0.737335f, 0.737464f, 0.737594f, 0.737723f,
+ 0.737853f, 0.737982f, 0.738112f, 0.738241f, 0.738370f, 0.738500f, 0.738629f, 0.738758f,
+ 0.738887f, 0.739017f, 0.739146f, 0.739275f, 0.739404f, 0.739533f, 0.739662f, 0.739791f,
+ 0.739920f, 0.740049f, 0.740178f, 0.740307f, 0.740436f, 0.740565f, 0.740694f, 0.740822f,
+ 0.740951f, 0.741080f, 0.741209f, 0.741337f, 0.741466f, 0.741595f, 0.741723f, 0.741852f,
+ 0.741980f, 0.742109f, 0.742237f, 0.742366f, 0.742494f, 0.742623f, 0.742751f, 0.742880f,
+ 0.743008f, 0.743136f, 0.743265f, 0.743393f, 0.743521f, 0.743649f, 0.743777f, 0.743906f,
+ 0.744034f, 0.744162f, 0.744290f, 0.744418f, 0.744546f, 0.744674f, 0.744802f, 0.744930f,
+ 0.745058f, 0.745186f, 0.745314f, 0.745441f, 0.745569f, 0.745697f, 0.745825f, 0.745952f,
+ 0.746080f, 0.746208f, 0.746335f, 0.746463f, 0.746591f, 0.746718f, 0.746846f, 0.746973f,
+ 0.747101f, 0.747228f, 0.747355f, 0.747483f, 0.747610f, 0.747738f, 0.747865f, 0.747992f,
+ 0.748119f, 0.748247f, 0.748374f, 0.748501f, 0.748628f, 0.748755f, 0.748882f, 0.749009f,
+ 0.749136f, 0.749263f, 0.749390f, 0.749517f, 0.749644f, 0.749771f, 0.749898f, 0.750025f,
+ 0.750152f, 0.750278f, 0.750405f, 0.750532f, 0.750659f, 0.750785f, 0.750912f, 0.751039f,
+ 0.751165f, 0.751292f, 0.751418f, 0.751545f, 0.751671f, 0.751798f, 0.751924f, 0.752050f,
+ 0.752177f, 0.752303f, 0.752429f, 0.752556f, 0.752682f, 0.752808f, 0.752934f, 0.753061f,
+ 0.753187f, 0.753313f, 0.753439f, 0.753565f, 0.753691f, 0.753817f, 0.753943f, 0.754069f,
+ 0.754195f, 0.754321f, 0.754447f, 0.754573f, 0.754698f, 0.754824f, 0.754950f, 0.755076f,
+ 0.755201f, 0.755327f, 0.755453f, 0.755578f, 0.755704f, 0.755829f, 0.755955f, 0.756081f,
+ 0.756206f, 0.756331f, 0.756457f, 0.756582f, 0.756708f, 0.756833f, 0.756958f, 0.757084f,
+ 0.757209f, 0.757334f, 0.757459f, 0.757584f, 0.757710f, 0.757835f, 0.757960f, 0.758085f,
+ 0.758210f, 0.758335f, 0.758460f, 0.758585f, 0.758710f, 0.758835f, 0.758960f, 0.759084f,
+ 0.759209f, 0.759334f, 0.759459f, 0.759583f, 0.759708f, 0.759833f, 0.759957f, 0.760082f,
+ 0.760207f, 0.760331f, 0.760456f, 0.760580f, 0.760705f, 0.760829f, 0.760954f, 0.761078f,
+ 0.761202f, 0.761327f, 0.761451f, 0.761575f, 0.761700f, 0.761824f, 0.761948f, 0.762072f,
+ 0.762196f, 0.762320f, 0.762444f, 0.762569f, 0.762693f, 0.762817f, 0.762941f, 0.763065f,
+ 0.763188f, 0.763312f, 0.763436f, 0.763560f, 0.763684f, 0.763808f, 0.763931f, 0.764055f,
+ 0.764179f, 0.764302f, 0.764426f, 0.764550f, 0.764673f, 0.764797f, 0.764920f, 0.765044f,
+ 0.765167f, 0.765291f, 0.765414f, 0.765538f, 0.765661f, 0.765784f, 0.765907f, 0.766031f,
+ 0.766154f, 0.766277f, 0.766400f, 0.766524f, 0.766647f, 0.766770f, 0.766893f, 0.767016f,
+ 0.767139f, 0.767262f, 0.767385f, 0.767508f, 0.767631f, 0.767754f, 0.767876f, 0.767999f,
+ 0.768122f, 0.768245f, 0.768368f, 0.768490f, 0.768613f, 0.768736f, 0.768858f, 0.768981f,
+ 0.769103f, 0.769226f, 0.769348f, 0.769471f, 0.769593f, 0.769716f, 0.769838f, 0.769961f,
+ 0.770083f, 0.770205f, 0.770327f, 0.770450f, 0.770572f, 0.770694f, 0.770816f, 0.770938f,
+ 0.771061f, 0.771183f, 0.771305f, 0.771427f, 0.771549f, 0.771671f, 0.771793f, 0.771915f,
+ 0.772036f, 0.772158f, 0.772280f, 0.772402f, 0.772524f, 0.772645f, 0.772767f, 0.772889f,
+ 0.773010f, 0.773132f, 0.773254f, 0.773375f, 0.773497f, 0.773618f, 0.773740f, 0.773861f,
+ 0.773983f, 0.774104f, 0.774225f, 0.774347f, 0.774468f, 0.774589f, 0.774711f, 0.774832f,
+ 0.774953f, 0.775074f, 0.775195f, 0.775317f, 0.775438f, 0.775559f, 0.775680f, 0.775801f,
+ 0.775922f, 0.776043f, 0.776164f, 0.776284f, 0.776405f, 0.776526f, 0.776647f, 0.776768f,
+ 0.776888f, 0.777009f, 0.777130f, 0.777251f, 0.777371f, 0.777492f, 0.777612f, 0.777733f,
+ 0.777853f, 0.777974f, 0.778094f, 0.778215f, 0.778335f, 0.778456f, 0.778576f, 0.778696f,
+ 0.778817f, 0.778937f, 0.779057f, 0.779177f, 0.779297f, 0.779418f, 0.779538f, 0.779658f,
+ 0.779778f, 0.779898f, 0.780018f, 0.780138f, 0.780258f, 0.780378f, 0.780498f, 0.780617f,
+ 0.780737f, 0.780857f, 0.780977f, 0.781097f, 0.781216f, 0.781336f, 0.781456f, 0.781575f,
+ 0.781695f, 0.781814f, 0.781934f, 0.782053f, 0.782173f, 0.782292f, 0.782412f, 0.782531f,
+ 0.782651f, 0.782770f, 0.782889f, 0.783009f, 0.783128f, 0.783247f, 0.783366f, 0.783485f,
+ 0.783605f, 0.783724f, 0.783843f, 0.783962f, 0.784081f, 0.784200f, 0.784319f, 0.784438f,
+ 0.784557f, 0.784675f, 0.784794f, 0.784913f, 0.785032f, 0.785151f, 0.785269f, 0.785388f,
+ 0.785507f, 0.785625f, 0.785744f, 0.785863f, 0.785981f, 0.786100f, 0.786218f, 0.786337f,
+ 0.786455f, 0.786574f, 0.786692f, 0.786810f, 0.786929f, 0.787047f, 0.787165f, 0.787284f,
+ 0.787402f, 0.787520f, 0.787638f, 0.787756f, 0.787874f, 0.787992f, 0.788110f, 0.788228f,
+ 0.788346f, 0.788464f, 0.788582f, 0.788700f, 0.788818f, 0.788936f, 0.789054f, 0.789172f,
+ 0.789289f, 0.789407f, 0.789525f, 0.789642f, 0.789760f, 0.789878f, 0.789995f, 0.790113f,
+ 0.790230f, 0.790348f, 0.790465f, 0.790583f, 0.790700f, 0.790817f, 0.790935f, 0.791052f,
+ 0.791169f, 0.791287f, 0.791404f, 0.791521f, 0.791638f, 0.791755f, 0.791872f, 0.791990f,
+ 0.792107f, 0.792224f, 0.792341f, 0.792458f, 0.792575f, 0.792691f, 0.792808f, 0.792925f,
+ 0.793042f, 0.793159f, 0.793276f, 0.793392f, 0.793509f, 0.793626f, 0.793742f, 0.793859f,
+ 0.793975f, 0.794092f, 0.794209f, 0.794325f, 0.794442f, 0.794558f, 0.794674f, 0.794791f,
+ 0.794907f, 0.795023f, 0.795140f, 0.795256f, 0.795372f, 0.795488f, 0.795605f, 0.795721f,
+ 0.795837f, 0.795953f, 0.796069f, 0.796185f, 0.796301f, 0.796417f, 0.796533f, 0.796649f,
+ 0.796765f, 0.796881f, 0.796996f, 0.797112f, 0.797228f, 0.797344f, 0.797459f, 0.797575f,
+ 0.797691f, 0.797806f, 0.797922f, 0.798038f, 0.798153f, 0.798269f, 0.798384f, 0.798500f,
+ 0.798615f, 0.798730f, 0.798846f, 0.798961f, 0.799076f, 0.799192f, 0.799307f, 0.799422f,
+ 0.799537f, 0.799652f, 0.799768f, 0.799883f, 0.799998f, 0.800113f, 0.800228f, 0.800343f,
+ 0.800458f, 0.800573f, 0.800687f, 0.800802f, 0.800917f, 0.801032f, 0.801147f, 0.801261f,
+ 0.801376f, 0.801491f, 0.801606f, 0.801720f, 0.801835f, 0.801949f, 0.802064f, 0.802178f,
+ 0.802293f, 0.802407f, 0.802522f, 0.802636f, 0.802750f, 0.802865f, 0.802979f, 0.803093f,
+ 0.803208f, 0.803322f, 0.803436f, 0.803550f, 0.803664f, 0.803778f, 0.803892f, 0.804006f,
+ 0.804120f, 0.804234f, 0.804348f, 0.804462f, 0.804576f, 0.804690f, 0.804804f, 0.804918f,
+ 0.805031f, 0.805145f, 0.805259f, 0.805372f, 0.805486f, 0.805600f, 0.805713f, 0.805827f,
+ 0.805940f, 0.806054f, 0.806167f, 0.806281f, 0.806394f, 0.806508f, 0.806621f, 0.806734f,
+ 0.806848f, 0.806961f, 0.807074f, 0.807187f, 0.807300f, 0.807414f, 0.807527f, 0.807640f,
+ 0.807753f, 0.807866f, 0.807979f, 0.808092f, 0.808205f, 0.808318f, 0.808430f, 0.808543f,
+ 0.808656f, 0.808769f, 0.808882f, 0.808994f, 0.809107f, 0.809220f, 0.809332f, 0.809445f,
+ 0.809558f, 0.809670f, 0.809783f, 0.809895f, 0.810008f, 0.810120f, 0.810232f, 0.810345f,
+ 0.810457f, 0.810570f, 0.810682f, 0.810794f, 0.810906f, 0.811018f, 0.811131f, 0.811243f,
+ 0.811355f, 0.811467f, 0.811579f, 0.811691f, 0.811803f, 0.811915f, 0.812027f, 0.812139f,
+ 0.812251f, 0.812362f, 0.812474f, 0.812586f, 0.812698f, 0.812809f, 0.812921f, 0.813033f,
+ 0.813144f, 0.813256f, 0.813368f, 0.813479f, 0.813591f, 0.813702f, 0.813814f, 0.813925f,
+ 0.814036f, 0.814148f, 0.814259f, 0.814370f, 0.814482f, 0.814593f, 0.814704f, 0.814815f,
+ 0.814926f, 0.815037f, 0.815149f, 0.815260f, 0.815371f, 0.815482f, 0.815593f, 0.815704f,
+ 0.815814f, 0.815925f, 0.816036f, 0.816147f, 0.816258f, 0.816368f, 0.816479f, 0.816590f,
+ 0.816701f, 0.816811f, 0.816922f, 0.817032f, 0.817143f, 0.817253f, 0.817364f, 0.817474f,
+ 0.817585f, 0.817695f, 0.817806f, 0.817916f, 0.818026f, 0.818137f, 0.818247f, 0.818357f,
+ 0.818467f, 0.818577f, 0.818687f, 0.818798f, 0.818908f, 0.819018f, 0.819128f, 0.819238f,
+ 0.819348f, 0.819457f, 0.819567f, 0.819677f, 0.819787f, 0.819897f, 0.820007f, 0.820116f,
+ 0.820226f, 0.820336f, 0.820445f, 0.820555f, 0.820664f, 0.820774f, 0.820884f, 0.820993f,
+ 0.821102f, 0.821212f, 0.821321f, 0.821431f, 0.821540f, 0.821649f, 0.821759f, 0.821868f,
+ 0.821977f, 0.822086f, 0.822195f, 0.822305f, 0.822414f, 0.822523f, 0.822632f, 0.822741f,
+ 0.822850f, 0.822959f, 0.823068f, 0.823177f, 0.823285f, 0.823394f, 0.823503f, 0.823612f,
+ 0.823721f, 0.823829f, 0.823938f, 0.824047f, 0.824155f, 0.824264f, 0.824372f, 0.824481f,
+ 0.824589f, 0.824698f, 0.824806f, 0.824915f, 0.825023f, 0.825131f, 0.825240f, 0.825348f,
+ 0.825456f, 0.825564f, 0.825673f, 0.825781f, 0.825889f, 0.825997f, 0.826105f, 0.826213f,
+ 0.826321f, 0.826429f, 0.826537f, 0.826645f, 0.826753f, 0.826861f, 0.826968f, 0.827076f,
+ 0.827184f, 0.827292f, 0.827399f, 0.827507f, 0.827615f, 0.827722f, 0.827830f, 0.827938f,
+ 0.828045f, 0.828153f, 0.828260f, 0.828367f, 0.828475f, 0.828582f, 0.828690f, 0.828797f,
+ 0.828904f, 0.829011f, 0.829119f, 0.829226f, 0.829333f, 0.829440f, 0.829547f, 0.829654f,
+ 0.829761f, 0.829868f, 0.829975f, 0.830082f, 0.830189f, 0.830296f, 0.830403f, 0.830510f,
+ 0.830616f, 0.830723f, 0.830830f, 0.830937f, 0.831043f, 0.831150f, 0.831257f, 0.831363f,
+ 0.831470f, 0.831576f, 0.831683f, 0.831789f, 0.831895f, 0.832002f, 0.832108f, 0.832215f,
+ 0.832321f, 0.832427f, 0.832533f, 0.832640f, 0.832746f, 0.832852f, 0.832958f, 0.833064f,
+ 0.833170f, 0.833276f, 0.833382f, 0.833488f, 0.833594f, 0.833700f, 0.833806f, 0.833912f,
+ 0.834018f, 0.834123f, 0.834229f, 0.834335f, 0.834440f, 0.834546f, 0.834652f, 0.834757f,
+ 0.834863f, 0.834968f, 0.835074f, 0.835179f, 0.835285f, 0.835390f, 0.835496f, 0.835601f,
+ 0.835706f, 0.835812f, 0.835917f, 0.836022f, 0.836127f, 0.836232f, 0.836338f, 0.836443f,
+ 0.836548f, 0.836653f, 0.836758f, 0.836863f, 0.836968f, 0.837073f, 0.837178f, 0.837282f,
+ 0.837387f, 0.837492f, 0.837597f, 0.837701f, 0.837806f, 0.837911f, 0.838015f, 0.838120f,
+ 0.838225f, 0.838329f, 0.838434f, 0.838538f, 0.838643f, 0.838747f, 0.838852f, 0.838956f,
+ 0.839060f, 0.839165f, 0.839269f, 0.839373f, 0.839477f, 0.839581f, 0.839686f, 0.839790f,
+ 0.839894f, 0.839998f, 0.840102f, 0.840206f, 0.840310f, 0.840414f, 0.840518f, 0.840622f,
+ 0.840725f, 0.840829f, 0.840933f, 0.841037f, 0.841140f, 0.841244f, 0.841348f, 0.841451f,
+ 0.841555f, 0.841659f, 0.841762f, 0.841866f, 0.841969f, 0.842072f, 0.842176f, 0.842279f,
+ 0.842383f, 0.842486f, 0.842589f, 0.842692f, 0.842796f, 0.842899f, 0.843002f, 0.843105f,
+ 0.843208f, 0.843311f, 0.843414f, 0.843517f, 0.843620f, 0.843723f, 0.843826f, 0.843929f,
+ 0.844032f, 0.844135f, 0.844238f, 0.844340f, 0.844443f, 0.844546f, 0.844648f, 0.844751f,
+ 0.844854f, 0.844956f, 0.845059f, 0.845161f, 0.845264f, 0.845366f, 0.845469f, 0.845571f,
+ 0.845673f, 0.845776f, 0.845878f, 0.845980f, 0.846082f, 0.846185f, 0.846287f, 0.846389f,
+ 0.846491f, 0.846593f, 0.846695f, 0.846797f, 0.846899f, 0.847001f, 0.847103f, 0.847205f,
+ 0.847307f, 0.847408f, 0.847510f, 0.847612f, 0.847714f, 0.847815f, 0.847917f, 0.848019f,
+ 0.848120f, 0.848222f, 0.848323f, 0.848425f, 0.848526f, 0.848628f, 0.848729f, 0.848831f,
+ 0.848932f, 0.849033f, 0.849135f, 0.849236f, 0.849337f, 0.849438f, 0.849540f, 0.849641f,
+ 0.849742f, 0.849843f, 0.849944f, 0.850045f, 0.850146f, 0.850247f, 0.850348f, 0.850449f,
+ 0.850549f, 0.850650f, 0.850751f, 0.850852f, 0.850953f, 0.851053f, 0.851154f, 0.851255f,
+ 0.851355f, 0.851456f, 0.851556f, 0.851657f, 0.851757f, 0.851858f, 0.851958f, 0.852059f,
+ 0.852159f, 0.852259f, 0.852360f, 0.852460f, 0.852560f, 0.852660f, 0.852760f, 0.852861f,
+ 0.852961f, 0.853061f, 0.853161f, 0.853261f, 0.853361f, 0.853461f, 0.853561f, 0.853660f,
+ 0.853760f, 0.853860f, 0.853960f, 0.854060f, 0.854159f, 0.854259f, 0.854359f, 0.854458f,
+ 0.854558f, 0.854658f, 0.854757f, 0.854857f, 0.854956f, 0.855056f, 0.855155f, 0.855254f,
+ 0.855354f, 0.855453f, 0.855552f, 0.855651f, 0.855751f, 0.855850f, 0.855949f, 0.856048f,
+ 0.856147f, 0.856246f, 0.856345f, 0.856444f, 0.856543f, 0.856642f, 0.856741f, 0.856840f,
+ 0.856939f, 0.857038f, 0.857137f, 0.857235f, 0.857334f, 0.857433f, 0.857531f, 0.857630f,
+ 0.857729f, 0.857827f, 0.857926f, 0.858024f, 0.858123f, 0.858221f, 0.858320f, 0.858418f,
+ 0.858516f, 0.858615f, 0.858713f, 0.858811f, 0.858909f, 0.859007f, 0.859106f, 0.859204f,
+ 0.859302f, 0.859400f, 0.859498f, 0.859596f, 0.859694f, 0.859792f, 0.859890f, 0.859988f,
+ 0.860085f, 0.860183f, 0.860281f, 0.860379f, 0.860476f, 0.860574f, 0.860672f, 0.860769f,
+ 0.860867f, 0.860964f, 0.861062f, 0.861160f, 0.861257f, 0.861354f, 0.861452f, 0.861549f,
+ 0.861646f, 0.861744f, 0.861841f, 0.861938f, 0.862035f, 0.862133f, 0.862230f, 0.862327f,
+ 0.862424f, 0.862521f, 0.862618f, 0.862715f, 0.862812f, 0.862909f, 0.863006f, 0.863103f,
+ 0.863199f, 0.863296f, 0.863393f, 0.863490f, 0.863586f, 0.863683f, 0.863780f, 0.863876f,
+ 0.863973f, 0.864069f, 0.864166f, 0.864262f, 0.864359f, 0.864455f, 0.864552f, 0.864648f,
+ 0.864744f, 0.864841f, 0.864937f, 0.865033f, 0.865129f, 0.865225f, 0.865321f, 0.865418f,
+ 0.865514f, 0.865610f, 0.865706f, 0.865802f, 0.865898f, 0.865993f, 0.866089f, 0.866185f,
+ 0.866281f, 0.866377f, 0.866472f, 0.866568f, 0.866664f, 0.866759f, 0.866855f, 0.866951f,
+ 0.867046f, 0.867142f, 0.867237f, 0.867333f, 0.867428f, 0.867523f, 0.867619f, 0.867714f,
+ 0.867809f, 0.867905f, 0.868000f, 0.868095f, 0.868190f, 0.868285f, 0.868381f, 0.868476f,
+ 0.868571f, 0.868666f, 0.868761f, 0.868856f, 0.868951f, 0.869045f, 0.869140f, 0.869235f,
+ 0.869330f, 0.869425f, 0.869519f, 0.869614f, 0.869709f, 0.869803f, 0.869898f, 0.869992f,
+ 0.870087f, 0.870182f, 0.870276f, 0.870370f, 0.870465f, 0.870559f, 0.870654f, 0.870748f,
+ 0.870842f, 0.870936f, 0.871031f, 0.871125f, 0.871219f, 0.871313f, 0.871407f, 0.871501f,
+ 0.871595f, 0.871689f, 0.871783f, 0.871877f, 0.871971f, 0.872065f, 0.872159f, 0.872252f,
+ 0.872346f, 0.872440f, 0.872534f, 0.872627f, 0.872721f, 0.872814f, 0.872908f, 0.873001f,
+ 0.873095f, 0.873188f, 0.873282f, 0.873375f, 0.873469f, 0.873562f, 0.873655f, 0.873749f,
+ 0.873842f, 0.873935f, 0.874028f, 0.874121f, 0.874215f, 0.874308f, 0.874401f, 0.874494f,
+ 0.874587f, 0.874680f, 0.874773f, 0.874865f, 0.874958f, 0.875051f, 0.875144f, 0.875237f,
+ 0.875329f, 0.875422f, 0.875515f, 0.875607f, 0.875700f, 0.875793f, 0.875885f, 0.875978f,
+ 0.876070f, 0.876163f, 0.876255f, 0.876347f, 0.876440f, 0.876532f, 0.876624f, 0.876716f,
+ 0.876809f, 0.876901f, 0.876993f, 0.877085f, 0.877177f, 0.877269f, 0.877361f, 0.877453f,
+ 0.877545f, 0.877637f, 0.877729f, 0.877821f, 0.877913f, 0.878005f, 0.878096f, 0.878188f,
+ 0.878280f, 0.878371f, 0.878463f, 0.878555f, 0.878646f, 0.878738f, 0.878829f, 0.878921f,
+ 0.879012f, 0.879104f, 0.879195f, 0.879286f, 0.879378f, 0.879469f, 0.879560f, 0.879651f,
+ 0.879743f, 0.879834f, 0.879925f, 0.880016f, 0.880107f, 0.880198f, 0.880289f, 0.880380f,
+ 0.880471f, 0.880562f, 0.880653f, 0.880743f, 0.880834f, 0.880925f, 0.881016f, 0.881106f,
+ 0.881197f, 0.881288f, 0.881378f, 0.881469f, 0.881559f, 0.881650f, 0.881740f, 0.881831f,
+ 0.881921f, 0.882012f, 0.882102f, 0.882192f, 0.882283f, 0.882373f, 0.882463f, 0.882553f,
+ 0.882643f, 0.882733f, 0.882824f, 0.882914f, 0.883004f, 0.883094f, 0.883184f, 0.883273f,
+ 0.883363f, 0.883453f, 0.883543f, 0.883633f, 0.883723f, 0.883812f, 0.883902f, 0.883992f,
+ 0.884081f, 0.884171f, 0.884260f, 0.884350f, 0.884439f, 0.884529f, 0.884618f, 0.884708f,
+ 0.884797f, 0.884886f, 0.884976f, 0.885065f, 0.885154f, 0.885243f, 0.885333f, 0.885422f,
+ 0.885511f, 0.885600f, 0.885689f, 0.885778f, 0.885867f, 0.885956f, 0.886045f, 0.886134f,
+ 0.886223f, 0.886311f, 0.886400f, 0.886489f, 0.886578f, 0.886666f, 0.886755f, 0.886844f,
+ 0.886932f, 0.887021f, 0.887109f, 0.887198f, 0.887286f, 0.887375f, 0.887463f, 0.887551f,
+ 0.887640f, 0.887728f, 0.887816f, 0.887904f, 0.887993f, 0.888081f, 0.888169f, 0.888257f,
+ 0.888345f, 0.888433f, 0.888521f, 0.888609f, 0.888697f, 0.888785f, 0.888873f, 0.888961f,
+ 0.889048f, 0.889136f, 0.889224f, 0.889312f, 0.889399f, 0.889487f, 0.889574f, 0.889662f,
+ 0.889750f, 0.889837f, 0.889925f, 0.890012f, 0.890099f, 0.890187f, 0.890274f, 0.890361f,
+ 0.890449f, 0.890536f, 0.890623f, 0.890710f, 0.890797f, 0.890885f, 0.890972f, 0.891059f,
+ 0.891146f, 0.891233f, 0.891320f, 0.891407f, 0.891493f, 0.891580f, 0.891667f, 0.891754f,
+ 0.891841f, 0.891927f, 0.892014f, 0.892101f, 0.892187f, 0.892274f, 0.892361f, 0.892447f,
+ 0.892534f, 0.892620f, 0.892706f, 0.892793f, 0.892879f, 0.892965f, 0.893052f, 0.893138f,
+ 0.893224f, 0.893310f, 0.893397f, 0.893483f, 0.893569f, 0.893655f, 0.893741f, 0.893827f,
+ 0.893913f, 0.893999f, 0.894085f, 0.894171f, 0.894256f, 0.894342f, 0.894428f, 0.894514f,
+ 0.894599f, 0.894685f, 0.894771f, 0.894856f, 0.894942f, 0.895028f, 0.895113f, 0.895198f,
+ 0.895284f, 0.895369f, 0.895455f, 0.895540f, 0.895625f, 0.895711f, 0.895796f, 0.895881f,
+ 0.895966f, 0.896051f, 0.896137f, 0.896222f, 0.896307f, 0.896392f, 0.896477f, 0.896562f,
+ 0.896646f, 0.896731f, 0.896816f, 0.896901f, 0.896986f, 0.897071f, 0.897155f, 0.897240f,
+ 0.897325f, 0.897409f, 0.897494f, 0.897578f, 0.897663f, 0.897747f, 0.897832f, 0.897916f,
+ 0.898001f, 0.898085f, 0.898169f, 0.898254f, 0.898338f, 0.898422f, 0.898506f, 0.898590f,
+ 0.898674f, 0.898759f, 0.898843f, 0.898927f, 0.899011f, 0.899095f, 0.899179f, 0.899262f,
+ 0.899346f, 0.899430f, 0.899514f, 0.899598f, 0.899681f, 0.899765f, 0.899849f, 0.899932f,
+ 0.900016f, 0.900099f, 0.900183f, 0.900266f, 0.900350f, 0.900433f, 0.900517f, 0.900600f,
+ 0.900683f, 0.900767f, 0.900850f, 0.900933f, 0.901016f, 0.901100f, 0.901183f, 0.901266f,
+ 0.901349f, 0.901432f, 0.901515f, 0.901598f, 0.901681f, 0.901764f, 0.901847f, 0.901929f,
+ 0.902012f, 0.902095f, 0.902178f, 0.902260f, 0.902343f, 0.902426f, 0.902508f, 0.902591f,
+ 0.902673f, 0.902756f, 0.902838f, 0.902921f, 0.903003f, 0.903085f, 0.903168f, 0.903250f,
+ 0.903332f, 0.903415f, 0.903497f, 0.903579f, 0.903661f, 0.903743f, 0.903825f, 0.903907f,
+ 0.903989f, 0.904071f, 0.904153f, 0.904235f, 0.904317f, 0.904399f, 0.904481f, 0.904562f,
+ 0.904644f, 0.904726f, 0.904807f, 0.904889f, 0.904971f, 0.905052f, 0.905134f, 0.905215f,
+ 0.905297f, 0.905378f, 0.905460f, 0.905541f, 0.905622f, 0.905704f, 0.905785f, 0.905866f,
+ 0.905947f, 0.906028f, 0.906110f, 0.906191f, 0.906272f, 0.906353f, 0.906434f, 0.906515f,
+ 0.906596f, 0.906677f, 0.906757f, 0.906838f, 0.906919f, 0.907000f, 0.907081f, 0.907161f,
+ 0.907242f, 0.907323f, 0.907403f, 0.907484f, 0.907564f, 0.907645f, 0.907725f, 0.907806f,
+ 0.907886f, 0.907966f, 0.908047f, 0.908127f, 0.908207f, 0.908288f, 0.908368f, 0.908448f,
+ 0.908528f, 0.908608f, 0.908688f, 0.908768f, 0.908848f, 0.908928f, 0.909008f, 0.909088f,
+ 0.909168f, 0.909248f, 0.909328f, 0.909407f, 0.909487f, 0.909567f, 0.909646f, 0.909726f,
+ 0.909806f, 0.909885f, 0.909965f, 0.910044f, 0.910124f, 0.910203f, 0.910283f, 0.910362f,
+ 0.910441f, 0.910521f, 0.910600f, 0.910679f, 0.910758f, 0.910837f, 0.910917f, 0.910996f,
+ 0.911075f, 0.911154f, 0.911233f, 0.911312f, 0.911391f, 0.911470f, 0.911548f, 0.911627f,
+ 0.911706f, 0.911785f, 0.911864f, 0.911942f, 0.912021f, 0.912099f, 0.912178f, 0.912257f,
+ 0.912335f, 0.912414f, 0.912492f, 0.912571f, 0.912649f, 0.912727f, 0.912806f, 0.912884f,
+ 0.912962f, 0.913040f, 0.913119f, 0.913197f, 0.913275f, 0.913353f, 0.913431f, 0.913509f,
+ 0.913587f, 0.913665f, 0.913743f, 0.913821f, 0.913899f, 0.913976f, 0.914054f, 0.914132f,
+ 0.914210f, 0.914287f, 0.914365f, 0.914443f, 0.914520f, 0.914598f, 0.914675f, 0.914753f,
+ 0.914830f, 0.914908f, 0.914985f, 0.915062f, 0.915140f, 0.915217f, 0.915294f, 0.915372f,
+ 0.915449f, 0.915526f, 0.915603f, 0.915680f, 0.915757f, 0.915834f, 0.915911f, 0.915988f,
+ 0.916065f, 0.916142f, 0.916219f, 0.916296f, 0.916372f, 0.916449f, 0.916526f, 0.916602f,
+ 0.916679f, 0.916756f, 0.916832f, 0.916909f, 0.916985f, 0.917062f, 0.917138f, 0.917215f,
+ 0.917291f, 0.917367f, 0.917444f, 0.917520f, 0.917596f, 0.917672f, 0.917749f, 0.917825f,
+ 0.917901f, 0.917977f, 0.918053f, 0.918129f, 0.918205f, 0.918281f, 0.918357f, 0.918433f,
+ 0.918508f, 0.918584f, 0.918660f, 0.918736f, 0.918811f, 0.918887f, 0.918963f, 0.919038f,
+ 0.919114f, 0.919189f, 0.919265f, 0.919340f, 0.919416f, 0.919491f, 0.919567f, 0.919642f,
+ 0.919717f, 0.919792f, 0.919868f, 0.919943f, 0.920018f, 0.920093f, 0.920168f, 0.920243f,
+ 0.920318f, 0.920393f, 0.920468f, 0.920543f, 0.920618f, 0.920693f, 0.920768f, 0.920842f,
+ 0.920917f, 0.920992f, 0.921067f, 0.921141f, 0.921216f, 0.921291f, 0.921365f, 0.921440f,
+ 0.921514f, 0.921588f, 0.921663f, 0.921737f, 0.921812f, 0.921886f, 0.921960f, 0.922034f,
+ 0.922109f, 0.922183f, 0.922257f, 0.922331f, 0.922405f, 0.922479f, 0.922553f, 0.922627f,
+ 0.922701f, 0.922775f, 0.922849f, 0.922923f, 0.922997f, 0.923070f, 0.923144f, 0.923218f,
+ 0.923291f, 0.923365f, 0.923439f, 0.923512f, 0.923586f, 0.923659f, 0.923733f, 0.923806f,
+ 0.923880f, 0.923953f, 0.924026f, 0.924100f, 0.924173f, 0.924246f, 0.924319f, 0.924392f,
+ 0.924465f, 0.924539f, 0.924612f, 0.924685f, 0.924758f, 0.924831f, 0.924904f, 0.924976f,
+ 0.925049f, 0.925122f, 0.925195f, 0.925268f, 0.925340f, 0.925413f, 0.925486f, 0.925558f,
+ 0.925631f, 0.925703f, 0.925776f, 0.925848f, 0.925921f, 0.925993f, 0.926066f, 0.926138f,
+ 0.926210f, 0.926283f, 0.926355f, 0.926427f, 0.926499f, 0.926571f, 0.926643f, 0.926715f,
+ 0.926787f, 0.926859f, 0.926931f, 0.927003f, 0.927075f, 0.927147f, 0.927219f, 0.927291f,
+ 0.927363f, 0.927434f, 0.927506f, 0.927578f, 0.927649f, 0.927721f, 0.927792f, 0.927864f,
+ 0.927935f, 0.928007f, 0.928078f, 0.928150f, 0.928221f, 0.928292f, 0.928364f, 0.928435f,
+ 0.928506f, 0.928577f, 0.928648f, 0.928720f, 0.928791f, 0.928862f, 0.928933f, 0.929004f,
+ 0.929075f, 0.929146f, 0.929216f, 0.929287f, 0.929358f, 0.929429f, 0.929500f, 0.929570f,
+ 0.929641f, 0.929712f, 0.929782f, 0.929853f, 0.929923f, 0.929994f, 0.930064f, 0.930135f,
+ 0.930205f, 0.930275f, 0.930346f, 0.930416f, 0.930486f, 0.930556f, 0.930627f, 0.930697f,
+ 0.930767f, 0.930837f, 0.930907f, 0.930977f, 0.931047f, 0.931117f, 0.931187f, 0.931257f,
+ 0.931327f, 0.931397f, 0.931466f, 0.931536f, 0.931606f, 0.931675f, 0.931745f, 0.931815f,
+ 0.931884f, 0.931954f, 0.932023f, 0.932093f, 0.932162f, 0.932232f, 0.932301f, 0.932370f,
+ 0.932440f, 0.932509f, 0.932578f, 0.932647f, 0.932716f, 0.932786f, 0.932855f, 0.932924f,
+ 0.932993f, 0.933062f, 0.933131f, 0.933200f, 0.933269f, 0.933337f, 0.933406f, 0.933475f,
+ 0.933544f, 0.933612f, 0.933681f, 0.933750f, 0.933818f, 0.933887f, 0.933956f, 0.934024f,
+ 0.934093f, 0.934161f, 0.934229f, 0.934298f, 0.934366f, 0.934434f, 0.934503f, 0.934571f,
+ 0.934639f, 0.934707f, 0.934775f, 0.934844f, 0.934912f, 0.934980f, 0.935048f, 0.935116f,
+ 0.935184f, 0.935251f, 0.935319f, 0.935387f, 0.935455f, 0.935523f, 0.935590f, 0.935658f,
+ 0.935726f, 0.935793f, 0.935861f, 0.935928f, 0.935996f, 0.936063f, 0.936131f, 0.936198f,
+ 0.936266f, 0.936333f, 0.936400f, 0.936468f, 0.936535f, 0.936602f, 0.936669f, 0.936736f,
+ 0.936803f, 0.936871f, 0.936938f, 0.937005f, 0.937072f, 0.937138f, 0.937205f, 0.937272f,
+ 0.937339f, 0.937406f, 0.937473f, 0.937539f, 0.937606f, 0.937673f, 0.937739f, 0.937806f,
+ 0.937872f, 0.937939f, 0.938005f, 0.938072f, 0.938138f, 0.938205f, 0.938271f, 0.938337f,
+ 0.938404f, 0.938470f, 0.938536f, 0.938602f, 0.938668f, 0.938734f, 0.938800f, 0.938866f,
+ 0.938932f, 0.938998f, 0.939064f, 0.939130f, 0.939196f, 0.939262f, 0.939328f, 0.939394f,
+ 0.939459f, 0.939525f, 0.939591f, 0.939656f, 0.939722f, 0.939787f, 0.939853f, 0.939918f,
+ 0.939984f, 0.940049f, 0.940115f, 0.940180f, 0.940245f, 0.940310f, 0.940376f, 0.940441f,
+ 0.940506f, 0.940571f, 0.940636f, 0.940701f, 0.940766f, 0.940831f, 0.940896f, 0.940961f,
+ 0.941026f, 0.941091f, 0.941156f, 0.941221f, 0.941285f, 0.941350f, 0.941415f, 0.941479f,
+ 0.941544f, 0.941609f, 0.941673f, 0.941738f, 0.941802f, 0.941867f, 0.941931f, 0.941995f,
+ 0.942060f, 0.942124f, 0.942188f, 0.942253f, 0.942317f, 0.942381f, 0.942445f, 0.942509f,
+ 0.942573f, 0.942637f, 0.942701f, 0.942765f, 0.942829f, 0.942893f, 0.942957f, 0.943021f,
+ 0.943084f, 0.943148f, 0.943212f, 0.943276f, 0.943339f, 0.943403f, 0.943466f, 0.943530f,
+ 0.943593f, 0.943657f, 0.943720f, 0.943784f, 0.943847f, 0.943910f, 0.943974f, 0.944037f,
+ 0.944100f, 0.944163f, 0.944227f, 0.944290f, 0.944353f, 0.944416f, 0.944479f, 0.944542f,
+ 0.944605f, 0.944668f, 0.944731f, 0.944793f, 0.944856f, 0.944919f, 0.944982f, 0.945045f,
+ 0.945107f, 0.945170f, 0.945232f, 0.945295f, 0.945358f, 0.945420f, 0.945482f, 0.945545f,
+ 0.945607f, 0.945670f, 0.945732f, 0.945794f, 0.945857f, 0.945919f, 0.945981f, 0.946043f,
+ 0.946105f, 0.946167f, 0.946229f, 0.946291f, 0.946353f, 0.946415f, 0.946477f, 0.946539f,
+ 0.946601f, 0.946663f, 0.946724f, 0.946786f, 0.946848f, 0.946910f, 0.946971f, 0.947033f,
+ 0.947094f, 0.947156f, 0.947217f, 0.947279f, 0.947340f, 0.947402f, 0.947463f, 0.947524f,
+ 0.947586f, 0.947647f, 0.947708f, 0.947769f, 0.947830f, 0.947891f, 0.947953f, 0.948014f,
+ 0.948075f, 0.948136f, 0.948196f, 0.948257f, 0.948318f, 0.948379f, 0.948440f, 0.948501f,
+ 0.948561f, 0.948622f, 0.948683f, 0.948743f, 0.948804f, 0.948864f, 0.948925f, 0.948985f,
+ 0.949046f, 0.949106f, 0.949167f, 0.949227f, 0.949287f, 0.949348f, 0.949408f, 0.949468f,
+ 0.949528f, 0.949588f, 0.949648f, 0.949708f, 0.949768f, 0.949829f, 0.949888f, 0.949948f,
+ 0.950008f, 0.950068f, 0.950128f, 0.950188f, 0.950247f, 0.950307f, 0.950367f, 0.950426f,
+ 0.950486f, 0.950546f, 0.950605f, 0.950665f, 0.950724f, 0.950784f, 0.950843f, 0.950902f,
+ 0.950962f, 0.951021f, 0.951080f, 0.951139f, 0.951199f, 0.951258f, 0.951317f, 0.951376f,
+ 0.951435f, 0.951494f, 0.951553f, 0.951612f, 0.951671f, 0.951730f, 0.951789f, 0.951847f,
+ 0.951906f, 0.951965f, 0.952024f, 0.952082f, 0.952141f, 0.952199f, 0.952258f, 0.952317f,
+ 0.952375f, 0.952433f, 0.952492f, 0.952550f, 0.952609f, 0.952667f, 0.952725f, 0.952783f,
+ 0.952842f, 0.952900f, 0.952958f, 0.953016f, 0.953074f, 0.953132f, 0.953190f, 0.953248f,
+ 0.953306f, 0.953364f, 0.953422f, 0.953480f, 0.953537f, 0.953595f, 0.953653f, 0.953711f,
+ 0.953768f, 0.953826f, 0.953883f, 0.953941f, 0.953998f, 0.954056f, 0.954113f, 0.954171f,
+ 0.954228f, 0.954285f, 0.954343f, 0.954400f, 0.954457f, 0.954514f, 0.954572f, 0.954629f,
+ 0.954686f, 0.954743f, 0.954800f, 0.954857f, 0.954914f, 0.954971f, 0.955028f, 0.955084f,
+ 0.955141f, 0.955198f, 0.955255f, 0.955311f, 0.955368f, 0.955425f, 0.955481f, 0.955538f,
+ 0.955594f, 0.955651f, 0.955707f, 0.955764f, 0.955820f, 0.955876f, 0.955933f, 0.955989f,
+ 0.956045f, 0.956101f, 0.956158f, 0.956214f, 0.956270f, 0.956326f, 0.956382f, 0.956438f,
+ 0.956494f, 0.956550f, 0.956606f, 0.956662f, 0.956717f, 0.956773f, 0.956829f, 0.956885f,
+ 0.956940f, 0.956996f, 0.957052f, 0.957107f, 0.957163f, 0.957218f, 0.957274f, 0.957329f,
+ 0.957385f, 0.957440f, 0.957495f, 0.957550f, 0.957606f, 0.957661f, 0.957716f, 0.957771f,
+ 0.957826f, 0.957882f, 0.957937f, 0.957992f, 0.958046f, 0.958101f, 0.958156f, 0.958211f,
+ 0.958266f, 0.958321f, 0.958376f, 0.958430f, 0.958485f, 0.958540f, 0.958594f, 0.958649f,
+ 0.958703f, 0.958758f, 0.958812f, 0.958867f, 0.958921f, 0.958976f, 0.959030f, 0.959084f,
+ 0.959139f, 0.959193f, 0.959247f, 0.959301f, 0.959355f, 0.959409f, 0.959463f, 0.959518f,
+ 0.959572f, 0.959625f, 0.959679f, 0.959733f, 0.959787f, 0.959841f, 0.959895f, 0.959948f,
+ 0.960002f, 0.960056f, 0.960109f, 0.960163f, 0.960217f, 0.960270f, 0.960324f, 0.960377f,
+ 0.960431f, 0.960484f, 0.960537f, 0.960591f, 0.960644f, 0.960697f, 0.960750f, 0.960804f,
+ 0.960857f, 0.960910f, 0.960963f, 0.961016f, 0.961069f, 0.961122f, 0.961175f, 0.961228f,
+ 0.961280f, 0.961333f, 0.961386f, 0.961439f, 0.961492f, 0.961544f, 0.961597f, 0.961649f,
+ 0.961702f, 0.961755f, 0.961807f, 0.961860f, 0.961912f, 0.961964f, 0.962017f, 0.962069f,
+ 0.962121f, 0.962174f, 0.962226f, 0.962278f, 0.962330f, 0.962382f, 0.962434f, 0.962486f,
+ 0.962538f, 0.962590f, 0.962642f, 0.962694f, 0.962746f, 0.962798f, 0.962850f, 0.962902f,
+ 0.962953f, 0.963005f, 0.963057f, 0.963108f, 0.963160f, 0.963211f, 0.963263f, 0.963314f,
+ 0.963366f, 0.963417f, 0.963469f, 0.963520f, 0.963571f, 0.963623f, 0.963674f, 0.963725f,
+ 0.963776f, 0.963827f, 0.963878f, 0.963929f, 0.963980f, 0.964031f, 0.964082f, 0.964133f,
+ 0.964184f, 0.964235f, 0.964286f, 0.964336f, 0.964387f, 0.964438f, 0.964489f, 0.964539f,
+ 0.964590f, 0.964640f, 0.964691f, 0.964741f, 0.964792f, 0.964842f, 0.964893f, 0.964943f,
+ 0.964993f, 0.965044f, 0.965094f, 0.965144f, 0.965194f, 0.965244f, 0.965294f, 0.965344f,
+ 0.965394f, 0.965444f, 0.965494f, 0.965544f, 0.965594f, 0.965644f, 0.965694f, 0.965744f,
+ 0.965793f, 0.965843f, 0.965893f, 0.965942f, 0.965992f, 0.966042f, 0.966091f, 0.966141f,
+ 0.966190f, 0.966239f, 0.966289f, 0.966338f, 0.966387f, 0.966437f, 0.966486f, 0.966535f,
+ 0.966584f, 0.966633f, 0.966683f, 0.966732f, 0.966781f, 0.966830f, 0.966879f, 0.966928f,
+ 0.966976f, 0.967025f, 0.967074f, 0.967123f, 0.967172f, 0.967220f, 0.967269f, 0.967318f,
+ 0.967366f, 0.967415f, 0.967463f, 0.967512f, 0.967560f, 0.967609f, 0.967657f, 0.967706f,
+ 0.967754f, 0.967802f, 0.967850f, 0.967899f, 0.967947f, 0.967995f, 0.968043f, 0.968091f,
+ 0.968139f, 0.968187f, 0.968235f, 0.968283f, 0.968331f, 0.968379f, 0.968427f, 0.968474f,
+ 0.968522f, 0.968570f, 0.968617f, 0.968665f, 0.968713f, 0.968760f, 0.968808f, 0.968855f,
+ 0.968903f, 0.968950f, 0.968998f, 0.969045f, 0.969092f, 0.969140f, 0.969187f, 0.969234f,
+ 0.969281f, 0.969328f, 0.969375f, 0.969423f, 0.969470f, 0.969517f, 0.969564f, 0.969611f,
+ 0.969657f, 0.969704f, 0.969751f, 0.969798f, 0.969845f, 0.969891f, 0.969938f, 0.969985f,
+ 0.970031f, 0.970078f, 0.970124f, 0.970171f, 0.970217f, 0.970264f, 0.970310f, 0.970357f,
+ 0.970403f, 0.970449f, 0.970495f, 0.970542f, 0.970588f, 0.970634f, 0.970680f, 0.970726f,
+ 0.970772f, 0.970818f, 0.970864f, 0.970910f, 0.970956f, 0.971002f, 0.971048f, 0.971093f,
+ 0.971139f, 0.971185f, 0.971231f, 0.971276f, 0.971322f, 0.971367f, 0.971413f, 0.971458f,
+ 0.971504f, 0.971549f, 0.971595f, 0.971640f, 0.971685f, 0.971731f, 0.971776f, 0.971821f,
+ 0.971866f, 0.971911f, 0.971957f, 0.972002f, 0.972047f, 0.972092f, 0.972137f, 0.972182f,
+ 0.972227f, 0.972271f, 0.972316f, 0.972361f, 0.972406f, 0.972450f, 0.972495f, 0.972540f,
+ 0.972584f, 0.972629f, 0.972673f, 0.972718f, 0.972762f, 0.972807f, 0.972851f, 0.972896f,
+ 0.972940f, 0.972984f, 0.973028f, 0.973073f, 0.973117f, 0.973161f, 0.973205f, 0.973249f,
+ 0.973293f, 0.973337f, 0.973381f, 0.973425f, 0.973469f, 0.973513f, 0.973557f, 0.973601f,
+ 0.973644f, 0.973688f, 0.973732f, 0.973775f, 0.973819f, 0.973862f, 0.973906f, 0.973949f,
+ 0.973993f, 0.974036f, 0.974080f, 0.974123f, 0.974166f, 0.974210f, 0.974253f, 0.974296f,
+ 0.974339f, 0.974383f, 0.974426f, 0.974469f, 0.974512f, 0.974555f, 0.974598f, 0.974641f,
+ 0.974684f, 0.974726f, 0.974769f, 0.974812f, 0.974855f, 0.974897f, 0.974940f, 0.974983f,
+ 0.975025f, 0.975068f, 0.975110f, 0.975153f, 0.975195f, 0.975238f, 0.975280f, 0.975323f,
+ 0.975365f, 0.975407f, 0.975449f, 0.975492f, 0.975534f, 0.975576f, 0.975618f, 0.975660f,
+ 0.975702f, 0.975744f, 0.975786f, 0.975828f, 0.975870f, 0.975912f, 0.975954f, 0.975995f,
+ 0.976037f, 0.976079f, 0.976120f, 0.976162f, 0.976204f, 0.976245f, 0.976287f, 0.976328f,
+ 0.976370f, 0.976411f, 0.976453f, 0.976494f, 0.976535f, 0.976576f, 0.976618f, 0.976659f,
+ 0.976700f, 0.976741f, 0.976782f, 0.976823f, 0.976864f, 0.976905f, 0.976946f, 0.976987f,
+ 0.977028f, 0.977069f, 0.977110f, 0.977151f, 0.977191f, 0.977232f, 0.977273f, 0.977313f,
+ 0.977354f, 0.977394f, 0.977435f, 0.977475f, 0.977516f, 0.977556f, 0.977597f, 0.977637f,
+ 0.977677f, 0.977718f, 0.977758f, 0.977798f, 0.977838f, 0.977878f, 0.977918f, 0.977959f,
+ 0.977998f, 0.978038f, 0.978078f, 0.978118f, 0.978158f, 0.978198f, 0.978238f, 0.978278f,
+ 0.978317f, 0.978357f, 0.978397f, 0.978436f, 0.978476f, 0.978516f, 0.978555f, 0.978594f,
+ 0.978634f, 0.978673f, 0.978713f, 0.978752f, 0.978791f, 0.978831f, 0.978870f, 0.978909f,
+ 0.978948f, 0.978987f, 0.979026f, 0.979065f, 0.979104f, 0.979143f, 0.979182f, 0.979221f,
+ 0.979260f, 0.979299f, 0.979338f, 0.979376f, 0.979415f, 0.979454f, 0.979493f, 0.979531f,
+ 0.979570f, 0.979608f, 0.979647f, 0.979685f, 0.979724f, 0.979762f, 0.979800f, 0.979839f,
+ 0.979877f, 0.979915f, 0.979954f, 0.979992f, 0.980030f, 0.980068f, 0.980106f, 0.980144f,
+ 0.980182f, 0.980220f, 0.980258f, 0.980296f, 0.980334f, 0.980372f, 0.980409f, 0.980447f,
+ 0.980485f, 0.980523f, 0.980560f, 0.980598f, 0.980635f, 0.980673f, 0.980710f, 0.980748f,
+ 0.980785f, 0.980823f, 0.980860f, 0.980897f, 0.980935f, 0.980972f, 0.981009f, 0.981046f,
+ 0.981083f, 0.981120f, 0.981158f, 0.981195f, 0.981232f, 0.981269f, 0.981305f, 0.981342f,
+ 0.981379f, 0.981416f, 0.981453f, 0.981490f, 0.981526f, 0.981563f, 0.981600f, 0.981636f,
+ 0.981673f, 0.981709f, 0.981746f, 0.981782f, 0.981819f, 0.981855f, 0.981891f, 0.981928f,
+ 0.981964f, 0.982000f, 0.982036f, 0.982072f, 0.982109f, 0.982145f, 0.982181f, 0.982217f,
+ 0.982253f, 0.982289f, 0.982325f, 0.982360f, 0.982396f, 0.982432f, 0.982468f, 0.982504f,
+ 0.982539f, 0.982575f, 0.982611f, 0.982646f, 0.982682f, 0.982717f, 0.982753f, 0.982788f,
+ 0.982824f, 0.982859f, 0.982894f, 0.982930f, 0.982965f, 0.983000f, 0.983035f, 0.983070f,
+ 0.983105f, 0.983141f, 0.983176f, 0.983211f, 0.983246f, 0.983281f, 0.983315f, 0.983350f,
+ 0.983385f, 0.983420f, 0.983455f, 0.983489f, 0.983524f, 0.983559f, 0.983593f, 0.983628f,
+ 0.983662f, 0.983697f, 0.983731f, 0.983766f, 0.983800f, 0.983835f, 0.983869f, 0.983903f,
+ 0.983937f, 0.983972f, 0.984006f, 0.984040f, 0.984074f, 0.984108f, 0.984142f, 0.984176f,
+ 0.984210f, 0.984244f, 0.984278f, 0.984312f, 0.984346f, 0.984379f, 0.984413f, 0.984447f,
+ 0.984480f, 0.984514f, 0.984548f, 0.984581f, 0.984615f, 0.984648f, 0.984682f, 0.984715f,
+ 0.984748f, 0.984782f, 0.984815f, 0.984848f, 0.984882f, 0.984915f, 0.984948f, 0.984981f,
+ 0.985014f, 0.985047f, 0.985080f, 0.985113f, 0.985146f, 0.985179f, 0.985212f, 0.985245f,
+ 0.985278f, 0.985310f, 0.985343f, 0.985376f, 0.985408f, 0.985441f, 0.985474f, 0.985506f,
+ 0.985539f, 0.985571f, 0.985604f, 0.985636f, 0.985668f, 0.985701f, 0.985733f, 0.985765f,
+ 0.985798f, 0.985830f, 0.985862f, 0.985894f, 0.985926f, 0.985958f, 0.985990f, 0.986022f,
+ 0.986054f, 0.986086f, 0.986118f, 0.986150f, 0.986181f, 0.986213f, 0.986245f, 0.986276f,
+ 0.986308f, 0.986340f, 0.986371f, 0.986403f, 0.986434f, 0.986466f, 0.986497f, 0.986529f,
+ 0.986560f, 0.986591f, 0.986623f, 0.986654f, 0.986685f, 0.986716f, 0.986747f, 0.986778f,
+ 0.986809f, 0.986840f, 0.986871f, 0.986902f, 0.986933f, 0.986964f, 0.986995f, 0.987026f,
+ 0.987057f, 0.987087f, 0.987118f, 0.987149f, 0.987179f, 0.987210f, 0.987240f, 0.987271f,
+ 0.987301f, 0.987332f, 0.987362f, 0.987393f, 0.987423f, 0.987453f, 0.987484f, 0.987514f,
+ 0.987544f, 0.987574f, 0.987604f, 0.987634f, 0.987664f, 0.987694f, 0.987724f, 0.987754f,
+ 0.987784f, 0.987814f, 0.987844f, 0.987874f, 0.987903f, 0.987933f, 0.987963f, 0.987992f,
+ 0.988022f, 0.988052f, 0.988081f, 0.988111f, 0.988140f, 0.988169f, 0.988199f, 0.988228f,
+ 0.988258f, 0.988287f, 0.988316f, 0.988345f, 0.988374f, 0.988404f, 0.988433f, 0.988462f,
+ 0.988491f, 0.988520f, 0.988549f, 0.988578f, 0.988607f, 0.988635f, 0.988664f, 0.988693f,
+ 0.988722f, 0.988750f, 0.988779f, 0.988808f, 0.988836f, 0.988865f, 0.988893f, 0.988922f,
+ 0.988950f, 0.988979f, 0.989007f, 0.989035f, 0.989064f, 0.989092f, 0.989120f, 0.989148f,
+ 0.989177f, 0.989205f, 0.989233f, 0.989261f, 0.989289f, 0.989317f, 0.989345f, 0.989373f,
+ 0.989400f, 0.989428f, 0.989456f, 0.989484f, 0.989511f, 0.989539f, 0.989567f, 0.989594f,
+ 0.989622f, 0.989650f, 0.989677f, 0.989704f, 0.989732f, 0.989759f, 0.989787f, 0.989814f,
+ 0.989841f, 0.989869f, 0.989896f, 0.989923f, 0.989950f, 0.989977f, 0.990004f, 0.990031f,
+ 0.990058f, 0.990085f, 0.990112f, 0.990139f, 0.990166f, 0.990193f, 0.990219f, 0.990246f,
+ 0.990273f, 0.990299f, 0.990326f, 0.990353f, 0.990379f, 0.990406f, 0.990432f, 0.990459f,
+ 0.990485f, 0.990511f, 0.990538f, 0.990564f, 0.990590f, 0.990617f, 0.990643f, 0.990669f,
+ 0.990695f, 0.990721f, 0.990747f, 0.990773f, 0.990799f, 0.990825f, 0.990851f, 0.990877f,
+ 0.990903f, 0.990928f, 0.990954f, 0.990980f, 0.991006f, 0.991031f, 0.991057f, 0.991082f,
+ 0.991108f, 0.991133f, 0.991159f, 0.991184f, 0.991210f, 0.991235f, 0.991260f, 0.991286f,
+ 0.991311f, 0.991336f, 0.991361f, 0.991386f, 0.991411f, 0.991437f, 0.991462f, 0.991487f,
+ 0.991511f, 0.991536f, 0.991561f, 0.991586f, 0.991611f, 0.991636f, 0.991660f, 0.991685f,
+ 0.991710f, 0.991734f, 0.991759f, 0.991783f, 0.991808f, 0.991832f, 0.991857f, 0.991881f,
+ 0.991906f, 0.991930f, 0.991954f, 0.991979f, 0.992003f, 0.992027f, 0.992051f, 0.992075f,
+ 0.992099f, 0.992123f, 0.992147f, 0.992171f, 0.992195f, 0.992219f, 0.992243f, 0.992267f,
+ 0.992291f, 0.992314f, 0.992338f, 0.992362f, 0.992385f, 0.992409f, 0.992433f, 0.992456f,
+ 0.992480f, 0.992503f, 0.992526f, 0.992550f, 0.992573f, 0.992596f, 0.992620f, 0.992643f,
+ 0.992666f, 0.992689f, 0.992712f, 0.992736f, 0.992759f, 0.992782f, 0.992805f, 0.992828f,
+ 0.992850f, 0.992873f, 0.992896f, 0.992919f, 0.992942f, 0.992964f, 0.992987f, 0.993010f,
+ 0.993032f, 0.993055f, 0.993077f, 0.993100f, 0.993122f, 0.993145f, 0.993167f, 0.993190f,
+ 0.993212f, 0.993234f, 0.993257f, 0.993279f, 0.993301f, 0.993323f, 0.993345f, 0.993367f,
+ 0.993389f, 0.993411f, 0.993433f, 0.993455f, 0.993477f, 0.993499f, 0.993521f, 0.993542f,
+ 0.993564f, 0.993586f, 0.993608f, 0.993629f, 0.993651f, 0.993672f, 0.993694f, 0.993715f,
+ 0.993737f, 0.993758f, 0.993779f, 0.993801f, 0.993822f, 0.993843f, 0.993865f, 0.993886f,
+ 0.993907f, 0.993928f, 0.993949f, 0.993970f, 0.993991f, 0.994012f, 0.994033f, 0.994054f,
+ 0.994075f, 0.994096f, 0.994116f, 0.994137f, 0.994158f, 0.994179f, 0.994199f, 0.994220f,
+ 0.994240f, 0.994261f, 0.994281f, 0.994302f, 0.994322f, 0.994343f, 0.994363f, 0.994383f,
+ 0.994404f, 0.994424f, 0.994444f, 0.994464f, 0.994484f, 0.994505f, 0.994525f, 0.994545f,
+ 0.994565f, 0.994585f, 0.994604f, 0.994624f, 0.994644f, 0.994664f, 0.994684f, 0.994703f,
+ 0.994723f, 0.994743f, 0.994762f, 0.994782f, 0.994802f, 0.994821f, 0.994841f, 0.994860f,
+ 0.994879f, 0.994899f, 0.994918f, 0.994937f, 0.994957f, 0.994976f, 0.994995f, 0.995014f,
+ 0.995033f, 0.995052f, 0.995071f, 0.995090f, 0.995109f, 0.995128f, 0.995147f, 0.995166f,
+ 0.995185f, 0.995203f, 0.995222f, 0.995241f, 0.995260f, 0.995278f, 0.995297f, 0.995315f,
+ 0.995334f, 0.995352f, 0.995371f, 0.995389f, 0.995408f, 0.995426f, 0.995444f, 0.995463f,
+ 0.995481f, 0.995499f, 0.995517f, 0.995535f, 0.995553f, 0.995571f, 0.995589f, 0.995607f,
+ 0.995625f, 0.995643f, 0.995661f, 0.995679f, 0.995697f, 0.995714f, 0.995732f, 0.995750f,
+ 0.995767f, 0.995785f, 0.995803f, 0.995820f, 0.995838f, 0.995855f, 0.995872f, 0.995890f,
+ 0.995907f, 0.995925f, 0.995942f, 0.995959f, 0.995976f, 0.995993f, 0.996011f, 0.996028f,
+ 0.996045f, 0.996062f, 0.996079f, 0.996096f, 0.996113f, 0.996129f, 0.996146f, 0.996163f,
+ 0.996180f, 0.996197f, 0.996213f, 0.996230f, 0.996247f, 0.996263f, 0.996280f, 0.996296f,
+ 0.996313f, 0.996329f, 0.996345f, 0.996362f, 0.996378f, 0.996394f, 0.996411f, 0.996427f,
+ 0.996443f, 0.996459f, 0.996475f, 0.996491f, 0.996507f, 0.996523f, 0.996539f, 0.996555f,
+ 0.996571f, 0.996587f, 0.996603f, 0.996619f, 0.996634f, 0.996650f, 0.996666f, 0.996681f,
+ 0.996697f, 0.996712f, 0.996728f, 0.996743f, 0.996759f, 0.996774f, 0.996790f, 0.996805f,
+ 0.996820f, 0.996836f, 0.996851f, 0.996866f, 0.996881f, 0.996896f, 0.996911f, 0.996926f,
+ 0.996941f, 0.996956f, 0.996971f, 0.996986f, 0.997001f, 0.997016f, 0.997031f, 0.997045f,
+ 0.997060f, 0.997075f, 0.997089f, 0.997104f, 0.997119f, 0.997133f, 0.997148f, 0.997162f,
+ 0.997176f, 0.997191f, 0.997205f, 0.997219f, 0.997234f, 0.997248f, 0.997262f, 0.997276f,
+ 0.997290f, 0.997305f, 0.997319f, 0.997333f, 0.997347f, 0.997361f, 0.997374f, 0.997388f,
+ 0.997402f, 0.997416f, 0.997430f, 0.997443f, 0.997457f, 0.997471f, 0.997484f, 0.997498f,
+ 0.997511f, 0.997525f, 0.997538f, 0.997552f, 0.997565f, 0.997579f, 0.997592f, 0.997605f,
+ 0.997618f, 0.997632f, 0.997645f, 0.997658f, 0.997671f, 0.997684f, 0.997697f, 0.997710f,
+ 0.997723f, 0.997736f, 0.997749f, 0.997762f, 0.997774f, 0.997787f, 0.997800f, 0.997813f,
+ 0.997825f, 0.997838f, 0.997851f, 0.997863f, 0.997876f, 0.997888f, 0.997901f, 0.997913f,
+ 0.997925f, 0.997938f, 0.997950f, 0.997962f, 0.997974f, 0.997987f, 0.997999f, 0.998011f,
+ 0.998023f, 0.998035f, 0.998047f, 0.998059f, 0.998071f, 0.998083f, 0.998094f, 0.998106f,
+ 0.998118f, 0.998130f, 0.998142f, 0.998153f, 0.998165f, 0.998176f, 0.998188f, 0.998200f,
+ 0.998211f, 0.998222f, 0.998234f, 0.998245f, 0.998257f, 0.998268f, 0.998279f, 0.998290f,
+ 0.998302f, 0.998313f, 0.998324f, 0.998335f, 0.998346f, 0.998357f, 0.998368f, 0.998379f,
+ 0.998390f, 0.998401f, 0.998411f, 0.998422f, 0.998433f, 0.998444f, 0.998454f, 0.998465f,
+ 0.998476f, 0.998486f, 0.998497f, 0.998507f, 0.998518f, 0.998528f, 0.998538f, 0.998549f,
+ 0.998559f, 0.998569f, 0.998580f, 0.998590f, 0.998600f, 0.998610f, 0.998620f, 0.998630f,
+ 0.998640f, 0.998650f, 0.998660f, 0.998670f, 0.998680f, 0.998690f, 0.998700f, 0.998709f,
+ 0.998719f, 0.998729f, 0.998738f, 0.998748f, 0.998758f, 0.998767f, 0.998777f, 0.998786f,
+ 0.998795f, 0.998805f, 0.998814f, 0.998824f, 0.998833f, 0.998842f, 0.998851f, 0.998860f,
+ 0.998870f, 0.998879f, 0.998888f, 0.998897f, 0.998906f, 0.998915f, 0.998924f, 0.998932f,
+ 0.998941f, 0.998950f, 0.998959f, 0.998968f, 0.998976f, 0.998985f, 0.998994f, 0.999002f,
+ 0.999011f, 0.999019f, 0.999028f, 0.999036f, 0.999044f, 0.999053f, 0.999061f, 0.999069f,
+ 0.999078f, 0.999086f, 0.999094f, 0.999102f, 0.999110f, 0.999118f, 0.999126f, 0.999134f,
+ 0.999142f, 0.999150f, 0.999158f, 0.999166f, 0.999174f, 0.999182f, 0.999189f, 0.999197f,
+ 0.999205f, 0.999212f, 0.999220f, 0.999228f, 0.999235f, 0.999243f, 0.999250f, 0.999257f,
+ 0.999265f, 0.999272f, 0.999279f, 0.999287f, 0.999294f, 0.999301f, 0.999308f, 0.999315f,
+ 0.999322f, 0.999329f, 0.999336f, 0.999343f, 0.999350f, 0.999357f, 0.999364f, 0.999371f,
+ 0.999378f, 0.999384f, 0.999391f, 0.999398f, 0.999404f, 0.999411f, 0.999418f, 0.999424f,
+ 0.999431f, 0.999437f, 0.999443f, 0.999450f, 0.999456f, 0.999462f, 0.999469f, 0.999475f,
+ 0.999481f, 0.999487f, 0.999493f, 0.999500f, 0.999506f, 0.999512f, 0.999518f, 0.999524f,
+ 0.999529f, 0.999535f, 0.999541f, 0.999547f, 0.999553f, 0.999558f, 0.999564f, 0.999570f,
+ 0.999575f, 0.999581f, 0.999586f, 0.999592f, 0.999597f, 0.999603f, 0.999608f, 0.999614f,
+ 0.999619f, 0.999624f, 0.999629f, 0.999635f, 0.999640f, 0.999645f, 0.999650f, 0.999655f,
+ 0.999660f, 0.999665f, 0.999670f, 0.999675f, 0.999680f, 0.999685f, 0.999689f, 0.999694f,
+ 0.999699f, 0.999704f, 0.999708f, 0.999713f, 0.999717f, 0.999722f, 0.999726f, 0.999731f,
+ 0.999735f, 0.999740f, 0.999744f, 0.999748f, 0.999753f, 0.999757f, 0.999761f, 0.999765f,
+ 0.999769f, 0.999774f, 0.999778f, 0.999782f, 0.999786f, 0.999790f, 0.999793f, 0.999797f,
+ 0.999801f, 0.999805f, 0.999809f, 0.999812f, 0.999816f, 0.999820f, 0.999823f, 0.999827f,
+ 0.999831f, 0.999834f, 0.999838f, 0.999841f, 0.999844f, 0.999848f, 0.999851f, 0.999854f,
+ 0.999858f, 0.999861f, 0.999864f, 0.999867f, 0.999870f, 0.999873f, 0.999876f, 0.999879f,
+ 0.999882f, 0.999885f, 0.999888f, 0.999891f, 0.999894f, 0.999897f, 0.999899f, 0.999902f,
+ 0.999905f, 0.999907f, 0.999910f, 0.999913f, 0.999915f, 0.999917f, 0.999920f, 0.999922f,
+ 0.999925f, 0.999927f, 0.999929f, 0.999932f, 0.999934f, 0.999936f, 0.999938f, 0.999940f,
+ 0.999942f, 0.999944f, 0.999946f, 0.999948f, 0.999950f, 0.999952f, 0.999954f, 0.999956f,
+ 0.999958f, 0.999959f, 0.999961f, 0.999963f, 0.999964f, 0.999966f, 0.999968f, 0.999969f,
+ 0.999971f, 0.999972f, 0.999973f, 0.999975f, 0.999976f, 0.999977f, 0.999979f, 0.999980f,
+ 0.999981f, 0.999982f, 0.999983f, 0.999985f, 0.999986f, 0.999987f, 0.999988f, 0.999988f,
+ 0.999989f, 0.999990f, 0.999991f, 0.999992f, 0.999993f, 0.999993f, 0.999994f, 0.999995f,
+ 0.999995f, 0.999996f, 0.999996f, 0.999997f, 0.999997f, 0.999998f, 0.999998f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999999f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+};
+
+static const float cosTable65536[32768] = {
+ 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 1.000000f, 1.000000f, 1.000000f, 0.999999f, 0.999999f, 0.999999f, 0.999999f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999999f, 0.999998f, 0.999998f, 0.999998f, 0.999998f, 0.999998f,
+ 0.999997f, 0.999997f, 0.999997f, 0.999997f, 0.999996f, 0.999996f, 0.999996f, 0.999996f,
+ 0.999995f, 0.999995f, 0.999995f, 0.999994f, 0.999994f, 0.999994f, 0.999993f, 0.999993f,
+ 0.999993f, 0.999992f, 0.999992f, 0.999991f, 0.999991f, 0.999991f, 0.999990f, 0.999990f,
+ 0.999989f, 0.999989f, 0.999988f, 0.999988f, 0.999988f, 0.999987f, 0.999987f, 0.999986f,
+ 0.999986f, 0.999985f, 0.999985f, 0.999984f, 0.999983f, 0.999983f, 0.999982f, 0.999982f,
+ 0.999981f, 0.999981f, 0.999980f, 0.999979f, 0.999979f, 0.999978f, 0.999977f, 0.999977f,
+ 0.999976f, 0.999976f, 0.999975f, 0.999974f, 0.999973f, 0.999973f, 0.999972f, 0.999971f,
+ 0.999971f, 0.999970f, 0.999969f, 0.999968f, 0.999968f, 0.999967f, 0.999966f, 0.999965f,
+ 0.999964f, 0.999964f, 0.999963f, 0.999962f, 0.999961f, 0.999960f, 0.999959f, 0.999959f,
+ 0.999958f, 0.999957f, 0.999956f, 0.999955f, 0.999954f, 0.999953f, 0.999952f, 0.999951f,
+ 0.999950f, 0.999949f, 0.999948f, 0.999947f, 0.999946f, 0.999945f, 0.999944f, 0.999943f,
+ 0.999942f, 0.999941f, 0.999940f, 0.999939f, 0.999938f, 0.999937f, 0.999936f, 0.999935f,
+ 0.999934f, 0.999933f, 0.999932f, 0.999930f, 0.999929f, 0.999928f, 0.999927f, 0.999926f,
+ 0.999925f, 0.999924f, 0.999922f, 0.999921f, 0.999920f, 0.999919f, 0.999917f, 0.999916f,
+ 0.999915f, 0.999914f, 0.999913f, 0.999911f, 0.999910f, 0.999909f, 0.999907f, 0.999906f,
+ 0.999905f, 0.999903f, 0.999902f, 0.999901f, 0.999899f, 0.999898f, 0.999897f, 0.999895f,
+ 0.999894f, 0.999892f, 0.999891f, 0.999890f, 0.999888f, 0.999887f, 0.999885f, 0.999884f,
+ 0.999882f, 0.999881f, 0.999879f, 0.999878f, 0.999876f, 0.999875f, 0.999873f, 0.999872f,
+ 0.999870f, 0.999869f, 0.999867f, 0.999866f, 0.999864f, 0.999862f, 0.999861f, 0.999859f,
+ 0.999858f, 0.999856f, 0.999854f, 0.999853f, 0.999851f, 0.999849f, 0.999848f, 0.999846f,
+ 0.999844f, 0.999843f, 0.999841f, 0.999839f, 0.999838f, 0.999836f, 0.999834f, 0.999832f,
+ 0.999831f, 0.999829f, 0.999827f, 0.999825f, 0.999823f, 0.999822f, 0.999820f, 0.999818f,
+ 0.999816f, 0.999814f, 0.999812f, 0.999811f, 0.999809f, 0.999807f, 0.999805f, 0.999803f,
+ 0.999801f, 0.999799f, 0.999797f, 0.999795f, 0.999793f, 0.999792f, 0.999790f, 0.999788f,
+ 0.999786f, 0.999784f, 0.999782f, 0.999780f, 0.999778f, 0.999776f, 0.999774f, 0.999771f,
+ 0.999769f, 0.999767f, 0.999765f, 0.999763f, 0.999761f, 0.999759f, 0.999757f, 0.999755f,
+ 0.999753f, 0.999750f, 0.999748f, 0.999746f, 0.999744f, 0.999742f, 0.999740f, 0.999738f,
+ 0.999735f, 0.999733f, 0.999731f, 0.999729f, 0.999726f, 0.999724f, 0.999722f, 0.999720f,
+ 0.999717f, 0.999715f, 0.999713f, 0.999710f, 0.999708f, 0.999706f, 0.999704f, 0.999701f,
+ 0.999699f, 0.999696f, 0.999694f, 0.999692f, 0.999689f, 0.999687f, 0.999685f, 0.999682f,
+ 0.999680f, 0.999677f, 0.999675f, 0.999672f, 0.999670f, 0.999667f, 0.999665f, 0.999663f,
+ 0.999660f, 0.999658f, 0.999655f, 0.999652f, 0.999650f, 0.999647f, 0.999645f, 0.999642f,
+ 0.999640f, 0.999637f, 0.999635f, 0.999632f, 0.999629f, 0.999627f, 0.999624f, 0.999621f,
+ 0.999619f, 0.999616f, 0.999614f, 0.999611f, 0.999608f, 0.999605f, 0.999603f, 0.999600f,
+ 0.999597f, 0.999595f, 0.999592f, 0.999589f, 0.999586f, 0.999584f, 0.999581f, 0.999578f,
+ 0.999575f, 0.999573f, 0.999570f, 0.999567f, 0.999564f, 0.999561f, 0.999558f, 0.999556f,
+ 0.999553f, 0.999550f, 0.999547f, 0.999544f, 0.999541f, 0.999538f, 0.999535f, 0.999532f,
+ 0.999529f, 0.999527f, 0.999524f, 0.999521f, 0.999518f, 0.999515f, 0.999512f, 0.999509f,
+ 0.999506f, 0.999503f, 0.999500f, 0.999497f, 0.999493f, 0.999490f, 0.999487f, 0.999484f,
+ 0.999481f, 0.999478f, 0.999475f, 0.999472f, 0.999469f, 0.999466f, 0.999462f, 0.999459f,
+ 0.999456f, 0.999453f, 0.999450f, 0.999447f, 0.999443f, 0.999440f, 0.999437f, 0.999434f,
+ 0.999431f, 0.999427f, 0.999424f, 0.999421f, 0.999418f, 0.999414f, 0.999411f, 0.999408f,
+ 0.999404f, 0.999401f, 0.999398f, 0.999394f, 0.999391f, 0.999388f, 0.999384f, 0.999381f,
+ 0.999378f, 0.999374f, 0.999371f, 0.999367f, 0.999364f, 0.999361f, 0.999357f, 0.999354f,
+ 0.999350f, 0.999347f, 0.999343f, 0.999340f, 0.999336f, 0.999333f, 0.999329f, 0.999326f,
+ 0.999322f, 0.999319f, 0.999315f, 0.999312f, 0.999308f, 0.999305f, 0.999301f, 0.999297f,
+ 0.999294f, 0.999290f, 0.999287f, 0.999283f, 0.999279f, 0.999276f, 0.999272f, 0.999268f,
+ 0.999265f, 0.999261f, 0.999257f, 0.999254f, 0.999250f, 0.999246f, 0.999243f, 0.999239f,
+ 0.999235f, 0.999231f, 0.999228f, 0.999224f, 0.999220f, 0.999216f, 0.999212f, 0.999209f,
+ 0.999205f, 0.999201f, 0.999197f, 0.999193f, 0.999189f, 0.999186f, 0.999182f, 0.999178f,
+ 0.999174f, 0.999170f, 0.999166f, 0.999162f, 0.999158f, 0.999154f, 0.999150f, 0.999146f,
+ 0.999142f, 0.999138f, 0.999134f, 0.999130f, 0.999126f, 0.999122f, 0.999118f, 0.999114f,
+ 0.999110f, 0.999106f, 0.999102f, 0.999098f, 0.999094f, 0.999090f, 0.999086f, 0.999082f,
+ 0.999078f, 0.999074f, 0.999069f, 0.999065f, 0.999061f, 0.999057f, 0.999053f, 0.999049f,
+ 0.999044f, 0.999040f, 0.999036f, 0.999032f, 0.999028f, 0.999023f, 0.999019f, 0.999015f,
+ 0.999011f, 0.999006f, 0.999002f, 0.998998f, 0.998994f, 0.998989f, 0.998985f, 0.998981f,
+ 0.998976f, 0.998972f, 0.998968f, 0.998963f, 0.998959f, 0.998954f, 0.998950f, 0.998946f,
+ 0.998941f, 0.998937f, 0.998932f, 0.998928f, 0.998924f, 0.998919f, 0.998915f, 0.998910f,
+ 0.998906f, 0.998901f, 0.998897f, 0.998892f, 0.998888f, 0.998883f, 0.998879f, 0.998874f,
+ 0.998870f, 0.998865f, 0.998860f, 0.998856f, 0.998851f, 0.998847f, 0.998842f, 0.998837f,
+ 0.998833f, 0.998828f, 0.998824f, 0.998819f, 0.998814f, 0.998810f, 0.998805f, 0.998800f,
+ 0.998795f, 0.998791f, 0.998786f, 0.998781f, 0.998777f, 0.998772f, 0.998767f, 0.998762f,
+ 0.998758f, 0.998753f, 0.998748f, 0.998743f, 0.998738f, 0.998734f, 0.998729f, 0.998724f,
+ 0.998719f, 0.998714f, 0.998709f, 0.998704f, 0.998700f, 0.998695f, 0.998690f, 0.998685f,
+ 0.998680f, 0.998675f, 0.998670f, 0.998665f, 0.998660f, 0.998655f, 0.998650f, 0.998645f,
+ 0.998640f, 0.998635f, 0.998630f, 0.998625f, 0.998620f, 0.998615f, 0.998610f, 0.998605f,
+ 0.998600f, 0.998595f, 0.998590f, 0.998585f, 0.998580f, 0.998574f, 0.998569f, 0.998564f,
+ 0.998559f, 0.998554f, 0.998549f, 0.998544f, 0.998538f, 0.998533f, 0.998528f, 0.998523f,
+ 0.998518f, 0.998512f, 0.998507f, 0.998502f, 0.998497f, 0.998491f, 0.998486f, 0.998481f,
+ 0.998476f, 0.998470f, 0.998465f, 0.998460f, 0.998454f, 0.998449f, 0.998444f, 0.998438f,
+ 0.998433f, 0.998428f, 0.998422f, 0.998417f, 0.998411f, 0.998406f, 0.998401f, 0.998395f,
+ 0.998390f, 0.998384f, 0.998379f, 0.998373f, 0.998368f, 0.998362f, 0.998357f, 0.998351f,
+ 0.998346f, 0.998340f, 0.998335f, 0.998329f, 0.998324f, 0.998318f, 0.998313f, 0.998307f,
+ 0.998302f, 0.998296f, 0.998290f, 0.998285f, 0.998279f, 0.998273f, 0.998268f, 0.998262f,
+ 0.998257f, 0.998251f, 0.998245f, 0.998240f, 0.998234f, 0.998228f, 0.998222f, 0.998217f,
+ 0.998211f, 0.998205f, 0.998200f, 0.998194f, 0.998188f, 0.998182f, 0.998176f, 0.998171f,
+ 0.998165f, 0.998159f, 0.998153f, 0.998147f, 0.998142f, 0.998136f, 0.998130f, 0.998124f,
+ 0.998118f, 0.998112f, 0.998106f, 0.998100f, 0.998094f, 0.998089f, 0.998083f, 0.998077f,
+ 0.998071f, 0.998065f, 0.998059f, 0.998053f, 0.998047f, 0.998041f, 0.998035f, 0.998029f,
+ 0.998023f, 0.998017f, 0.998011f, 0.998005f, 0.997999f, 0.997993f, 0.997987f, 0.997980f,
+ 0.997974f, 0.997968f, 0.997962f, 0.997956f, 0.997950f, 0.997944f, 0.997938f, 0.997931f,
+ 0.997925f, 0.997919f, 0.997913f, 0.997907f, 0.997901f, 0.997894f, 0.997888f, 0.997882f,
+ 0.997876f, 0.997869f, 0.997863f, 0.997857f, 0.997851f, 0.997844f, 0.997838f, 0.997832f,
+ 0.997825f, 0.997819f, 0.997813f, 0.997806f, 0.997800f, 0.997794f, 0.997787f, 0.997781f,
+ 0.997774f, 0.997768f, 0.997762f, 0.997755f, 0.997749f, 0.997742f, 0.997736f, 0.997730f,
+ 0.997723f, 0.997717f, 0.997710f, 0.997704f, 0.997697f, 0.997691f, 0.997684f, 0.997678f,
+ 0.997671f, 0.997665f, 0.997658f, 0.997651f, 0.997645f, 0.997638f, 0.997632f, 0.997625f,
+ 0.997618f, 0.997612f, 0.997605f, 0.997599f, 0.997592f, 0.997585f, 0.997579f, 0.997572f,
+ 0.997565f, 0.997559f, 0.997552f, 0.997545f, 0.997538f, 0.997532f, 0.997525f, 0.997518f,
+ 0.997511f, 0.997505f, 0.997498f, 0.997491f, 0.997484f, 0.997478f, 0.997471f, 0.997464f,
+ 0.997457f, 0.997450f, 0.997443f, 0.997437f, 0.997430f, 0.997423f, 0.997416f, 0.997409f,
+ 0.997402f, 0.997395f, 0.997388f, 0.997381f, 0.997374f, 0.997368f, 0.997361f, 0.997354f,
+ 0.997347f, 0.997340f, 0.997333f, 0.997326f, 0.997319f, 0.997312f, 0.997305f, 0.997298f,
+ 0.997290f, 0.997283f, 0.997276f, 0.997269f, 0.997262f, 0.997255f, 0.997248f, 0.997241f,
+ 0.997234f, 0.997227f, 0.997219f, 0.997212f, 0.997205f, 0.997198f, 0.997191f, 0.997184f,
+ 0.997176f, 0.997169f, 0.997162f, 0.997155f, 0.997148f, 0.997140f, 0.997133f, 0.997126f,
+ 0.997119f, 0.997111f, 0.997104f, 0.997097f, 0.997089f, 0.997082f, 0.997075f, 0.997067f,
+ 0.997060f, 0.997053f, 0.997045f, 0.997038f, 0.997031f, 0.997023f, 0.997016f, 0.997008f,
+ 0.997001f, 0.996994f, 0.996986f, 0.996979f, 0.996971f, 0.996964f, 0.996956f, 0.996949f,
+ 0.996941f, 0.996934f, 0.996926f, 0.996919f, 0.996911f, 0.996904f, 0.996896f, 0.996889f,
+ 0.996881f, 0.996874f, 0.996866f, 0.996858f, 0.996851f, 0.996843f, 0.996836f, 0.996828f,
+ 0.996820f, 0.996813f, 0.996805f, 0.996797f, 0.996790f, 0.996782f, 0.996774f, 0.996767f,
+ 0.996759f, 0.996751f, 0.996743f, 0.996736f, 0.996728f, 0.996720f, 0.996712f, 0.996705f,
+ 0.996697f, 0.996689f, 0.996681f, 0.996674f, 0.996666f, 0.996658f, 0.996650f, 0.996642f,
+ 0.996634f, 0.996626f, 0.996619f, 0.996611f, 0.996603f, 0.996595f, 0.996587f, 0.996579f,
+ 0.996571f, 0.996563f, 0.996555f, 0.996547f, 0.996539f, 0.996531f, 0.996523f, 0.996515f,
+ 0.996507f, 0.996499f, 0.996491f, 0.996483f, 0.996475f, 0.996467f, 0.996459f, 0.996451f,
+ 0.996443f, 0.996435f, 0.996427f, 0.996419f, 0.996411f, 0.996403f, 0.996394f, 0.996386f,
+ 0.996378f, 0.996370f, 0.996362f, 0.996354f, 0.996345f, 0.996337f, 0.996329f, 0.996321f,
+ 0.996313f, 0.996304f, 0.996296f, 0.996288f, 0.996280f, 0.996271f, 0.996263f, 0.996255f,
+ 0.996247f, 0.996238f, 0.996230f, 0.996222f, 0.996213f, 0.996205f, 0.996197f, 0.996188f,
+ 0.996180f, 0.996171f, 0.996163f, 0.996155f, 0.996146f, 0.996138f, 0.996129f, 0.996121f,
+ 0.996113f, 0.996104f, 0.996096f, 0.996087f, 0.996079f, 0.996070f, 0.996062f, 0.996053f,
+ 0.996045f, 0.996036f, 0.996028f, 0.996019f, 0.996011f, 0.996002f, 0.995993f, 0.995985f,
+ 0.995976f, 0.995968f, 0.995959f, 0.995950f, 0.995942f, 0.995933f, 0.995925f, 0.995916f,
+ 0.995907f, 0.995899f, 0.995890f, 0.995881f, 0.995872f, 0.995864f, 0.995855f, 0.995846f,
+ 0.995838f, 0.995829f, 0.995820f, 0.995811f, 0.995803f, 0.995794f, 0.995785f, 0.995776f,
+ 0.995767f, 0.995759f, 0.995750f, 0.995741f, 0.995732f, 0.995723f, 0.995714f, 0.995705f,
+ 0.995697f, 0.995688f, 0.995679f, 0.995670f, 0.995661f, 0.995652f, 0.995643f, 0.995634f,
+ 0.995625f, 0.995616f, 0.995607f, 0.995598f, 0.995589f, 0.995580f, 0.995571f, 0.995562f,
+ 0.995553f, 0.995544f, 0.995535f, 0.995526f, 0.995517f, 0.995508f, 0.995499f, 0.995490f,
+ 0.995481f, 0.995472f, 0.995463f, 0.995453f, 0.995444f, 0.995435f, 0.995426f, 0.995417f,
+ 0.995408f, 0.995398f, 0.995389f, 0.995380f, 0.995371f, 0.995362f, 0.995352f, 0.995343f,
+ 0.995334f, 0.995325f, 0.995315f, 0.995306f, 0.995297f, 0.995288f, 0.995278f, 0.995269f,
+ 0.995260f, 0.995250f, 0.995241f, 0.995232f, 0.995222f, 0.995213f, 0.995203f, 0.995194f,
+ 0.995185f, 0.995175f, 0.995166f, 0.995156f, 0.995147f, 0.995138f, 0.995128f, 0.995119f,
+ 0.995109f, 0.995100f, 0.995090f, 0.995081f, 0.995071f, 0.995062f, 0.995052f, 0.995043f,
+ 0.995033f, 0.995024f, 0.995014f, 0.995005f, 0.994995f, 0.994985f, 0.994976f, 0.994966f,
+ 0.994957f, 0.994947f, 0.994937f, 0.994928f, 0.994918f, 0.994908f, 0.994899f, 0.994889f,
+ 0.994879f, 0.994870f, 0.994860f, 0.994850f, 0.994841f, 0.994831f, 0.994821f, 0.994811f,
+ 0.994802f, 0.994792f, 0.994782f, 0.994772f, 0.994762f, 0.994753f, 0.994743f, 0.994733f,
+ 0.994723f, 0.994713f, 0.994703f, 0.994694f, 0.994684f, 0.994674f, 0.994664f, 0.994654f,
+ 0.994644f, 0.994634f, 0.994624f, 0.994614f, 0.994604f, 0.994594f, 0.994585f, 0.994575f,
+ 0.994565f, 0.994555f, 0.994545f, 0.994535f, 0.994525f, 0.994515f, 0.994505f, 0.994494f,
+ 0.994484f, 0.994474f, 0.994464f, 0.994454f, 0.994444f, 0.994434f, 0.994424f, 0.994414f,
+ 0.994404f, 0.994394f, 0.994383f, 0.994373f, 0.994363f, 0.994353f, 0.994343f, 0.994333f,
+ 0.994322f, 0.994312f, 0.994302f, 0.994292f, 0.994281f, 0.994271f, 0.994261f, 0.994251f,
+ 0.994240f, 0.994230f, 0.994220f, 0.994210f, 0.994199f, 0.994189f, 0.994179f, 0.994168f,
+ 0.994158f, 0.994148f, 0.994137f, 0.994127f, 0.994116f, 0.994106f, 0.994096f, 0.994085f,
+ 0.994075f, 0.994064f, 0.994054f, 0.994044f, 0.994033f, 0.994023f, 0.994012f, 0.994002f,
+ 0.993991f, 0.993981f, 0.993970f, 0.993960f, 0.993949f, 0.993939f, 0.993928f, 0.993918f,
+ 0.993907f, 0.993896f, 0.993886f, 0.993875f, 0.993865f, 0.993854f, 0.993843f, 0.993833f,
+ 0.993822f, 0.993811f, 0.993801f, 0.993790f, 0.993779f, 0.993769f, 0.993758f, 0.993747f,
+ 0.993737f, 0.993726f, 0.993715f, 0.993705f, 0.993694f, 0.993683f, 0.993672f, 0.993662f,
+ 0.993651f, 0.993640f, 0.993629f, 0.993618f, 0.993608f, 0.993597f, 0.993586f, 0.993575f,
+ 0.993564f, 0.993553f, 0.993542f, 0.993532f, 0.993521f, 0.993510f, 0.993499f, 0.993488f,
+ 0.993477f, 0.993466f, 0.993455f, 0.993444f, 0.993433f, 0.993422f, 0.993411f, 0.993400f,
+ 0.993389f, 0.993378f, 0.993367f, 0.993356f, 0.993345f, 0.993334f, 0.993323f, 0.993312f,
+ 0.993301f, 0.993290f, 0.993279f, 0.993268f, 0.993257f, 0.993245f, 0.993234f, 0.993223f,
+ 0.993212f, 0.993201f, 0.993190f, 0.993178f, 0.993167f, 0.993156f, 0.993145f, 0.993134f,
+ 0.993122f, 0.993111f, 0.993100f, 0.993089f, 0.993077f, 0.993066f, 0.993055f, 0.993044f,
+ 0.993032f, 0.993021f, 0.993010f, 0.992998f, 0.992987f, 0.992976f, 0.992964f, 0.992953f,
+ 0.992942f, 0.992930f, 0.992919f, 0.992908f, 0.992896f, 0.992885f, 0.992873f, 0.992862f,
+ 0.992850f, 0.992839f, 0.992828f, 0.992816f, 0.992805f, 0.992793f, 0.992782f, 0.992770f,
+ 0.992759f, 0.992747f, 0.992736f, 0.992724f, 0.992712f, 0.992701f, 0.992689f, 0.992678f,
+ 0.992666f, 0.992655f, 0.992643f, 0.992631f, 0.992620f, 0.992608f, 0.992596f, 0.992585f,
+ 0.992573f, 0.992561f, 0.992550f, 0.992538f, 0.992526f, 0.992515f, 0.992503f, 0.992491f,
+ 0.992480f, 0.992468f, 0.992456f, 0.992444f, 0.992433f, 0.992421f, 0.992409f, 0.992397f,
+ 0.992385f, 0.992374f, 0.992362f, 0.992350f, 0.992338f, 0.992326f, 0.992314f, 0.992302f,
+ 0.992291f, 0.992279f, 0.992267f, 0.992255f, 0.992243f, 0.992231f, 0.992219f, 0.992207f,
+ 0.992195f, 0.992183f, 0.992171f, 0.992159f, 0.992147f, 0.992135f, 0.992123f, 0.992111f,
+ 0.992099f, 0.992087f, 0.992075f, 0.992063f, 0.992051f, 0.992039f, 0.992027f, 0.992015f,
+ 0.992003f, 0.991991f, 0.991979f, 0.991966f, 0.991954f, 0.991942f, 0.991930f, 0.991918f,
+ 0.991906f, 0.991894f, 0.991881f, 0.991869f, 0.991857f, 0.991845f, 0.991832f, 0.991820f,
+ 0.991808f, 0.991796f, 0.991783f, 0.991771f, 0.991759f, 0.991747f, 0.991734f, 0.991722f,
+ 0.991710f, 0.991697f, 0.991685f, 0.991673f, 0.991660f, 0.991648f, 0.991636f, 0.991623f,
+ 0.991611f, 0.991598f, 0.991586f, 0.991574f, 0.991561f, 0.991549f, 0.991536f, 0.991524f,
+ 0.991511f, 0.991499f, 0.991487f, 0.991474f, 0.991462f, 0.991449f, 0.991437f, 0.991424f,
+ 0.991411f, 0.991399f, 0.991386f, 0.991374f, 0.991361f, 0.991349f, 0.991336f, 0.991323f,
+ 0.991311f, 0.991298f, 0.991286f, 0.991273f, 0.991260f, 0.991248f, 0.991235f, 0.991222f,
+ 0.991210f, 0.991197f, 0.991184f, 0.991172f, 0.991159f, 0.991146f, 0.991133f, 0.991121f,
+ 0.991108f, 0.991095f, 0.991082f, 0.991070f, 0.991057f, 0.991044f, 0.991031f, 0.991018f,
+ 0.991006f, 0.990993f, 0.990980f, 0.990967f, 0.990954f, 0.990941f, 0.990928f, 0.990916f,
+ 0.990903f, 0.990890f, 0.990877f, 0.990864f, 0.990851f, 0.990838f, 0.990825f, 0.990812f,
+ 0.990799f, 0.990786f, 0.990773f, 0.990760f, 0.990747f, 0.990734f, 0.990721f, 0.990708f,
+ 0.990695f, 0.990682f, 0.990669f, 0.990656f, 0.990643f, 0.990630f, 0.990617f, 0.990603f,
+ 0.990590f, 0.990577f, 0.990564f, 0.990551f, 0.990538f, 0.990525f, 0.990511f, 0.990498f,
+ 0.990485f, 0.990472f, 0.990459f, 0.990445f, 0.990432f, 0.990419f, 0.990406f, 0.990393f,
+ 0.990379f, 0.990366f, 0.990353f, 0.990339f, 0.990326f, 0.990313f, 0.990299f, 0.990286f,
+ 0.990273f, 0.990259f, 0.990246f, 0.990233f, 0.990219f, 0.990206f, 0.990193f, 0.990179f,
+ 0.990166f, 0.990152f, 0.990139f, 0.990126f, 0.990112f, 0.990099f, 0.990085f, 0.990072f,
+ 0.990058f, 0.990045f, 0.990031f, 0.990018f, 0.990004f, 0.989991f, 0.989977f, 0.989964f,
+ 0.989950f, 0.989936f, 0.989923f, 0.989909f, 0.989896f, 0.989882f, 0.989869f, 0.989855f,
+ 0.989841f, 0.989828f, 0.989814f, 0.989800f, 0.989787f, 0.989773f, 0.989759f, 0.989746f,
+ 0.989732f, 0.989718f, 0.989704f, 0.989691f, 0.989677f, 0.989663f, 0.989650f, 0.989636f,
+ 0.989622f, 0.989608f, 0.989594f, 0.989581f, 0.989567f, 0.989553f, 0.989539f, 0.989525f,
+ 0.989511f, 0.989498f, 0.989484f, 0.989470f, 0.989456f, 0.989442f, 0.989428f, 0.989414f,
+ 0.989400f, 0.989386f, 0.989373f, 0.989359f, 0.989345f, 0.989331f, 0.989317f, 0.989303f,
+ 0.989289f, 0.989275f, 0.989261f, 0.989247f, 0.989233f, 0.989219f, 0.989205f, 0.989191f,
+ 0.989177f, 0.989162f, 0.989148f, 0.989134f, 0.989120f, 0.989106f, 0.989092f, 0.989078f,
+ 0.989064f, 0.989050f, 0.989035f, 0.989021f, 0.989007f, 0.988993f, 0.988979f, 0.988964f,
+ 0.988950f, 0.988936f, 0.988922f, 0.988908f, 0.988893f, 0.988879f, 0.988865f, 0.988851f,
+ 0.988836f, 0.988822f, 0.988808f, 0.988793f, 0.988779f, 0.988765f, 0.988750f, 0.988736f,
+ 0.988722f, 0.988707f, 0.988693f, 0.988679f, 0.988664f, 0.988650f, 0.988635f, 0.988621f,
+ 0.988607f, 0.988592f, 0.988578f, 0.988563f, 0.988549f, 0.988534f, 0.988520f, 0.988505f,
+ 0.988491f, 0.988476f, 0.988462f, 0.988447f, 0.988433f, 0.988418f, 0.988404f, 0.988389f,
+ 0.988374f, 0.988360f, 0.988345f, 0.988331f, 0.988316f, 0.988301f, 0.988287f, 0.988272f,
+ 0.988258f, 0.988243f, 0.988228f, 0.988214f, 0.988199f, 0.988184f, 0.988169f, 0.988155f,
+ 0.988140f, 0.988125f, 0.988111f, 0.988096f, 0.988081f, 0.988066f, 0.988052f, 0.988037f,
+ 0.988022f, 0.988007f, 0.987992f, 0.987978f, 0.987963f, 0.987948f, 0.987933f, 0.987918f,
+ 0.987903f, 0.987889f, 0.987874f, 0.987859f, 0.987844f, 0.987829f, 0.987814f, 0.987799f,
+ 0.987784f, 0.987769f, 0.987754f, 0.987739f, 0.987724f, 0.987709f, 0.987694f, 0.987679f,
+ 0.987664f, 0.987649f, 0.987634f, 0.987619f, 0.987604f, 0.987589f, 0.987574f, 0.987559f,
+ 0.987544f, 0.987529f, 0.987514f, 0.987499f, 0.987484f, 0.987468f, 0.987453f, 0.987438f,
+ 0.987423f, 0.987408f, 0.987393f, 0.987377f, 0.987362f, 0.987347f, 0.987332f, 0.987317f,
+ 0.987301f, 0.987286f, 0.987271f, 0.987256f, 0.987240f, 0.987225f, 0.987210f, 0.987195f,
+ 0.987179f, 0.987164f, 0.987149f, 0.987133f, 0.987118f, 0.987103f, 0.987087f, 0.987072f,
+ 0.987057f, 0.987041f, 0.987026f, 0.987010f, 0.986995f, 0.986980f, 0.986964f, 0.986949f,
+ 0.986933f, 0.986918f, 0.986902f, 0.986887f, 0.986871f, 0.986856f, 0.986840f, 0.986825f,
+ 0.986809f, 0.986794f, 0.986778f, 0.986763f, 0.986747f, 0.986732f, 0.986716f, 0.986701f,
+ 0.986685f, 0.986669f, 0.986654f, 0.986638f, 0.986623f, 0.986607f, 0.986591f, 0.986576f,
+ 0.986560f, 0.986544f, 0.986529f, 0.986513f, 0.986497f, 0.986481f, 0.986466f, 0.986450f,
+ 0.986434f, 0.986419f, 0.986403f, 0.986387f, 0.986371f, 0.986355f, 0.986340f, 0.986324f,
+ 0.986308f, 0.986292f, 0.986276f, 0.986261f, 0.986245f, 0.986229f, 0.986213f, 0.986197f,
+ 0.986181f, 0.986165f, 0.986150f, 0.986134f, 0.986118f, 0.986102f, 0.986086f, 0.986070f,
+ 0.986054f, 0.986038f, 0.986022f, 0.986006f, 0.985990f, 0.985974f, 0.985958f, 0.985942f,
+ 0.985926f, 0.985910f, 0.985894f, 0.985878f, 0.985862f, 0.985846f, 0.985830f, 0.985814f,
+ 0.985798f, 0.985781f, 0.985765f, 0.985749f, 0.985733f, 0.985717f, 0.985701f, 0.985685f,
+ 0.985668f, 0.985652f, 0.985636f, 0.985620f, 0.985604f, 0.985587f, 0.985571f, 0.985555f,
+ 0.985539f, 0.985523f, 0.985506f, 0.985490f, 0.985474f, 0.985457f, 0.985441f, 0.985425f,
+ 0.985408f, 0.985392f, 0.985376f, 0.985359f, 0.985343f, 0.985327f, 0.985310f, 0.985294f,
+ 0.985278f, 0.985261f, 0.985245f, 0.985228f, 0.985212f, 0.985196f, 0.985179f, 0.985163f,
+ 0.985146f, 0.985130f, 0.985113f, 0.985097f, 0.985080f, 0.985064f, 0.985047f, 0.985031f,
+ 0.985014f, 0.984998f, 0.984981f, 0.984965f, 0.984948f, 0.984931f, 0.984915f, 0.984898f,
+ 0.984882f, 0.984865f, 0.984848f, 0.984832f, 0.984815f, 0.984798f, 0.984782f, 0.984765f,
+ 0.984748f, 0.984732f, 0.984715f, 0.984698f, 0.984682f, 0.984665f, 0.984648f, 0.984632f,
+ 0.984615f, 0.984598f, 0.984581f, 0.984564f, 0.984548f, 0.984531f, 0.984514f, 0.984497f,
+ 0.984480f, 0.984464f, 0.984447f, 0.984430f, 0.984413f, 0.984396f, 0.984379f, 0.984362f,
+ 0.984346f, 0.984329f, 0.984312f, 0.984295f, 0.984278f, 0.984261f, 0.984244f, 0.984227f,
+ 0.984210f, 0.984193f, 0.984176f, 0.984159f, 0.984142f, 0.984125f, 0.984108f, 0.984091f,
+ 0.984074f, 0.984057f, 0.984040f, 0.984023f, 0.984006f, 0.983989f, 0.983972f, 0.983955f,
+ 0.983937f, 0.983920f, 0.983903f, 0.983886f, 0.983869f, 0.983852f, 0.983835f, 0.983817f,
+ 0.983800f, 0.983783f, 0.983766f, 0.983749f, 0.983731f, 0.983714f, 0.983697f, 0.983680f,
+ 0.983662f, 0.983645f, 0.983628f, 0.983611f, 0.983593f, 0.983576f, 0.983559f, 0.983541f,
+ 0.983524f, 0.983507f, 0.983489f, 0.983472f, 0.983455f, 0.983437f, 0.983420f, 0.983402f,
+ 0.983385f, 0.983368f, 0.983350f, 0.983333f, 0.983315f, 0.983298f, 0.983281f, 0.983263f,
+ 0.983246f, 0.983228f, 0.983211f, 0.983193f, 0.983176f, 0.983158f, 0.983141f, 0.983123f,
+ 0.983105f, 0.983088f, 0.983070f, 0.983053f, 0.983035f, 0.983018f, 0.983000f, 0.982982f,
+ 0.982965f, 0.982947f, 0.982930f, 0.982912f, 0.982894f, 0.982877f, 0.982859f, 0.982841f,
+ 0.982824f, 0.982806f, 0.982788f, 0.982770f, 0.982753f, 0.982735f, 0.982717f, 0.982699f,
+ 0.982682f, 0.982664f, 0.982646f, 0.982628f, 0.982611f, 0.982593f, 0.982575f, 0.982557f,
+ 0.982539f, 0.982521f, 0.982504f, 0.982486f, 0.982468f, 0.982450f, 0.982432f, 0.982414f,
+ 0.982396f, 0.982378f, 0.982360f, 0.982343f, 0.982325f, 0.982307f, 0.982289f, 0.982271f,
+ 0.982253f, 0.982235f, 0.982217f, 0.982199f, 0.982181f, 0.982163f, 0.982145f, 0.982127f,
+ 0.982109f, 0.982091f, 0.982072f, 0.982054f, 0.982036f, 0.982018f, 0.982000f, 0.981982f,
+ 0.981964f, 0.981946f, 0.981928f, 0.981909f, 0.981891f, 0.981873f, 0.981855f, 0.981837f,
+ 0.981819f, 0.981800f, 0.981782f, 0.981764f, 0.981746f, 0.981727f, 0.981709f, 0.981691f,
+ 0.981673f, 0.981654f, 0.981636f, 0.981618f, 0.981600f, 0.981581f, 0.981563f, 0.981545f,
+ 0.981526f, 0.981508f, 0.981490f, 0.981471f, 0.981453f, 0.981434f, 0.981416f, 0.981398f,
+ 0.981379f, 0.981361f, 0.981342f, 0.981324f, 0.981305f, 0.981287f, 0.981269f, 0.981250f,
+ 0.981232f, 0.981213f, 0.981195f, 0.981176f, 0.981158f, 0.981139f, 0.981120f, 0.981102f,
+ 0.981083f, 0.981065f, 0.981046f, 0.981028f, 0.981009f, 0.980990f, 0.980972f, 0.980953f,
+ 0.980935f, 0.980916f, 0.980897f, 0.980879f, 0.980860f, 0.980841f, 0.980823f, 0.980804f,
+ 0.980785f, 0.980767f, 0.980748f, 0.980729f, 0.980710f, 0.980692f, 0.980673f, 0.980654f,
+ 0.980635f, 0.980617f, 0.980598f, 0.980579f, 0.980560f, 0.980541f, 0.980523f, 0.980504f,
+ 0.980485f, 0.980466f, 0.980447f, 0.980428f, 0.980409f, 0.980390f, 0.980372f, 0.980353f,
+ 0.980334f, 0.980315f, 0.980296f, 0.980277f, 0.980258f, 0.980239f, 0.980220f, 0.980201f,
+ 0.980182f, 0.980163f, 0.980144f, 0.980125f, 0.980106f, 0.980087f, 0.980068f, 0.980049f,
+ 0.980030f, 0.980011f, 0.979992f, 0.979973f, 0.979954f, 0.979934f, 0.979915f, 0.979896f,
+ 0.979877f, 0.979858f, 0.979839f, 0.979820f, 0.979800f, 0.979781f, 0.979762f, 0.979743f,
+ 0.979724f, 0.979704f, 0.979685f, 0.979666f, 0.979647f, 0.979628f, 0.979608f, 0.979589f,
+ 0.979570f, 0.979550f, 0.979531f, 0.979512f, 0.979493f, 0.979473f, 0.979454f, 0.979435f,
+ 0.979415f, 0.979396f, 0.979376f, 0.979357f, 0.979338f, 0.979318f, 0.979299f, 0.979280f,
+ 0.979260f, 0.979241f, 0.979221f, 0.979202f, 0.979182f, 0.979163f, 0.979143f, 0.979124f,
+ 0.979104f, 0.979085f, 0.979065f, 0.979046f, 0.979026f, 0.979007f, 0.978987f, 0.978968f,
+ 0.978948f, 0.978929f, 0.978909f, 0.978889f, 0.978870f, 0.978850f, 0.978831f, 0.978811f,
+ 0.978791f, 0.978772f, 0.978752f, 0.978732f, 0.978713f, 0.978693f, 0.978673f, 0.978654f,
+ 0.978634f, 0.978614f, 0.978594f, 0.978575f, 0.978555f, 0.978535f, 0.978516f, 0.978496f,
+ 0.978476f, 0.978456f, 0.978436f, 0.978417f, 0.978397f, 0.978377f, 0.978357f, 0.978337f,
+ 0.978317f, 0.978298f, 0.978278f, 0.978258f, 0.978238f, 0.978218f, 0.978198f, 0.978178f,
+ 0.978158f, 0.978138f, 0.978118f, 0.978098f, 0.978078f, 0.978058f, 0.978038f, 0.978019f,
+ 0.977998f, 0.977979f, 0.977959f, 0.977938f, 0.977918f, 0.977898f, 0.977878f, 0.977858f,
+ 0.977838f, 0.977818f, 0.977798f, 0.977778f, 0.977758f, 0.977738f, 0.977718f, 0.977697f,
+ 0.977677f, 0.977657f, 0.977637f, 0.977617f, 0.977597f, 0.977577f, 0.977556f, 0.977536f,
+ 0.977516f, 0.977496f, 0.977475f, 0.977455f, 0.977435f, 0.977415f, 0.977394f, 0.977374f,
+ 0.977354f, 0.977334f, 0.977313f, 0.977293f, 0.977273f, 0.977252f, 0.977232f, 0.977212f,
+ 0.977191f, 0.977171f, 0.977151f, 0.977130f, 0.977110f, 0.977089f, 0.977069f, 0.977049f,
+ 0.977028f, 0.977008f, 0.976987f, 0.976967f, 0.976946f, 0.976926f, 0.976905f, 0.976885f,
+ 0.976864f, 0.976844f, 0.976823f, 0.976803f, 0.976782f, 0.976762f, 0.976741f, 0.976721f,
+ 0.976700f, 0.976680f, 0.976659f, 0.976638f, 0.976618f, 0.976597f, 0.976576f, 0.976556f,
+ 0.976535f, 0.976515f, 0.976494f, 0.976473f, 0.976453f, 0.976432f, 0.976411f, 0.976390f,
+ 0.976370f, 0.976349f, 0.976328f, 0.976308f, 0.976287f, 0.976266f, 0.976245f, 0.976224f,
+ 0.976204f, 0.976183f, 0.976162f, 0.976141f, 0.976120f, 0.976100f, 0.976079f, 0.976058f,
+ 0.976037f, 0.976016f, 0.975995f, 0.975974f, 0.975954f, 0.975933f, 0.975912f, 0.975891f,
+ 0.975870f, 0.975849f, 0.975828f, 0.975807f, 0.975786f, 0.975765f, 0.975744f, 0.975723f,
+ 0.975702f, 0.975681f, 0.975660f, 0.975639f, 0.975618f, 0.975597f, 0.975576f, 0.975555f,
+ 0.975534f, 0.975513f, 0.975492f, 0.975471f, 0.975449f, 0.975428f, 0.975407f, 0.975386f,
+ 0.975365f, 0.975344f, 0.975323f, 0.975301f, 0.975280f, 0.975259f, 0.975238f, 0.975217f,
+ 0.975195f, 0.975174f, 0.975153f, 0.975132f, 0.975110f, 0.975089f, 0.975068f, 0.975047f,
+ 0.975025f, 0.975004f, 0.974983f, 0.974961f, 0.974940f, 0.974919f, 0.974897f, 0.974876f,
+ 0.974855f, 0.974833f, 0.974812f, 0.974791f, 0.974769f, 0.974748f, 0.974726f, 0.974705f,
+ 0.974684f, 0.974662f, 0.974641f, 0.974619f, 0.974598f, 0.974576f, 0.974555f, 0.974533f,
+ 0.974512f, 0.974490f, 0.974469f, 0.974447f, 0.974426f, 0.974404f, 0.974383f, 0.974361f,
+ 0.974339f, 0.974318f, 0.974296f, 0.974275f, 0.974253f, 0.974231f, 0.974210f, 0.974188f,
+ 0.974166f, 0.974145f, 0.974123f, 0.974101f, 0.974080f, 0.974058f, 0.974036f, 0.974015f,
+ 0.973993f, 0.973971f, 0.973949f, 0.973928f, 0.973906f, 0.973884f, 0.973862f, 0.973841f,
+ 0.973819f, 0.973797f, 0.973775f, 0.973753f, 0.973732f, 0.973710f, 0.973688f, 0.973666f,
+ 0.973644f, 0.973622f, 0.973601f, 0.973579f, 0.973557f, 0.973535f, 0.973513f, 0.973491f,
+ 0.973469f, 0.973447f, 0.973425f, 0.973403f, 0.973381f, 0.973359f, 0.973337f, 0.973315f,
+ 0.973293f, 0.973271f, 0.973249f, 0.973227f, 0.973205f, 0.973183f, 0.973161f, 0.973139f,
+ 0.973117f, 0.973095f, 0.973073f, 0.973051f, 0.973028f, 0.973006f, 0.972984f, 0.972962f,
+ 0.972940f, 0.972918f, 0.972896f, 0.972873f, 0.972851f, 0.972829f, 0.972807f, 0.972785f,
+ 0.972762f, 0.972740f, 0.972718f, 0.972696f, 0.972673f, 0.972651f, 0.972629f, 0.972607f,
+ 0.972584f, 0.972562f, 0.972540f, 0.972517f, 0.972495f, 0.972473f, 0.972450f, 0.972428f,
+ 0.972406f, 0.972383f, 0.972361f, 0.972339f, 0.972316f, 0.972294f, 0.972271f, 0.972249f,
+ 0.972227f, 0.972204f, 0.972182f, 0.972159f, 0.972137f, 0.972114f, 0.972092f, 0.972069f,
+ 0.972047f, 0.972024f, 0.972002f, 0.971979f, 0.971957f, 0.971934f, 0.971911f, 0.971889f,
+ 0.971866f, 0.971844f, 0.971821f, 0.971799f, 0.971776f, 0.971753f, 0.971731f, 0.971708f,
+ 0.971685f, 0.971663f, 0.971640f, 0.971617f, 0.971595f, 0.971572f, 0.971549f, 0.971527f,
+ 0.971504f, 0.971481f, 0.971458f, 0.971436f, 0.971413f, 0.971390f, 0.971367f, 0.971345f,
+ 0.971322f, 0.971299f, 0.971276f, 0.971253f, 0.971231f, 0.971208f, 0.971185f, 0.971162f,
+ 0.971139f, 0.971116f, 0.971093f, 0.971071f, 0.971048f, 0.971025f, 0.971002f, 0.970979f,
+ 0.970956f, 0.970933f, 0.970910f, 0.970887f, 0.970864f, 0.970841f, 0.970818f, 0.970795f,
+ 0.970772f, 0.970749f, 0.970726f, 0.970703f, 0.970680f, 0.970657f, 0.970634f, 0.970611f,
+ 0.970588f, 0.970565f, 0.970542f, 0.970518f, 0.970495f, 0.970472f, 0.970449f, 0.970426f,
+ 0.970403f, 0.970380f, 0.970357f, 0.970333f, 0.970310f, 0.970287f, 0.970264f, 0.970241f,
+ 0.970217f, 0.970194f, 0.970171f, 0.970148f, 0.970124f, 0.970101f, 0.970078f, 0.970055f,
+ 0.970031f, 0.970008f, 0.969985f, 0.969961f, 0.969938f, 0.969915f, 0.969891f, 0.969868f,
+ 0.969845f, 0.969821f, 0.969798f, 0.969774f, 0.969751f, 0.969728f, 0.969704f, 0.969681f,
+ 0.969657f, 0.969634f, 0.969611f, 0.969587f, 0.969564f, 0.969540f, 0.969517f, 0.969493f,
+ 0.969470f, 0.969446f, 0.969423f, 0.969399f, 0.969375f, 0.969352f, 0.969328f, 0.969305f,
+ 0.969281f, 0.969258f, 0.969234f, 0.969210f, 0.969187f, 0.969163f, 0.969140f, 0.969116f,
+ 0.969092f, 0.969069f, 0.969045f, 0.969021f, 0.968998f, 0.968974f, 0.968950f, 0.968927f,
+ 0.968903f, 0.968879f, 0.968855f, 0.968832f, 0.968808f, 0.968784f, 0.968760f, 0.968737f,
+ 0.968713f, 0.968689f, 0.968665f, 0.968641f, 0.968617f, 0.968594f, 0.968570f, 0.968546f,
+ 0.968522f, 0.968498f, 0.968474f, 0.968450f, 0.968427f, 0.968403f, 0.968379f, 0.968355f,
+ 0.968331f, 0.968307f, 0.968283f, 0.968259f, 0.968235f, 0.968211f, 0.968187f, 0.968163f,
+ 0.968139f, 0.968115f, 0.968091f, 0.968067f, 0.968043f, 0.968019f, 0.967995f, 0.967971f,
+ 0.967947f, 0.967923f, 0.967899f, 0.967874f, 0.967850f, 0.967826f, 0.967802f, 0.967778f,
+ 0.967754f, 0.967730f, 0.967706f, 0.967681f, 0.967657f, 0.967633f, 0.967609f, 0.967585f,
+ 0.967560f, 0.967536f, 0.967512f, 0.967488f, 0.967463f, 0.967439f, 0.967415f, 0.967391f,
+ 0.967366f, 0.967342f, 0.967318f, 0.967293f, 0.967269f, 0.967245f, 0.967220f, 0.967196f,
+ 0.967172f, 0.967147f, 0.967123f, 0.967099f, 0.967074f, 0.967050f, 0.967025f, 0.967001f,
+ 0.966976f, 0.966952f, 0.966928f, 0.966903f, 0.966879f, 0.966854f, 0.966830f, 0.966805f,
+ 0.966781f, 0.966756f, 0.966732f, 0.966707f, 0.966683f, 0.966658f, 0.966633f, 0.966609f,
+ 0.966584f, 0.966560f, 0.966535f, 0.966511f, 0.966486f, 0.966461f, 0.966437f, 0.966412f,
+ 0.966387f, 0.966363f, 0.966338f, 0.966313f, 0.966289f, 0.966264f, 0.966239f, 0.966215f,
+ 0.966190f, 0.966165f, 0.966141f, 0.966116f, 0.966091f, 0.966066f, 0.966042f, 0.966017f,
+ 0.965992f, 0.965967f, 0.965942f, 0.965918f, 0.965893f, 0.965868f, 0.965843f, 0.965818f,
+ 0.965793f, 0.965769f, 0.965744f, 0.965719f, 0.965694f, 0.965669f, 0.965644f, 0.965619f,
+ 0.965594f, 0.965569f, 0.965544f, 0.965519f, 0.965494f, 0.965469f, 0.965444f, 0.965419f,
+ 0.965394f, 0.965369f, 0.965344f, 0.965319f, 0.965294f, 0.965269f, 0.965244f, 0.965219f,
+ 0.965194f, 0.965169f, 0.965144f, 0.965119f, 0.965094f, 0.965069f, 0.965044f, 0.965018f,
+ 0.964993f, 0.964968f, 0.964943f, 0.964918f, 0.964893f, 0.964867f, 0.964842f, 0.964817f,
+ 0.964792f, 0.964767f, 0.964741f, 0.964716f, 0.964691f, 0.964666f, 0.964640f, 0.964615f,
+ 0.964590f, 0.964565f, 0.964539f, 0.964514f, 0.964489f, 0.964463f, 0.964438f, 0.964413f,
+ 0.964387f, 0.964362f, 0.964336f, 0.964311f, 0.964286f, 0.964260f, 0.964235f, 0.964209f,
+ 0.964184f, 0.964159f, 0.964133f, 0.964108f, 0.964082f, 0.964057f, 0.964031f, 0.964006f,
+ 0.963980f, 0.963955f, 0.963929f, 0.963904f, 0.963878f, 0.963853f, 0.963827f, 0.963802f,
+ 0.963776f, 0.963750f, 0.963725f, 0.963699f, 0.963674f, 0.963648f, 0.963623f, 0.963597f,
+ 0.963571f, 0.963546f, 0.963520f, 0.963494f, 0.963469f, 0.963443f, 0.963417f, 0.963391f,
+ 0.963366f, 0.963340f, 0.963314f, 0.963289f, 0.963263f, 0.963237f, 0.963211f, 0.963186f,
+ 0.963160f, 0.963134f, 0.963108f, 0.963082f, 0.963057f, 0.963031f, 0.963005f, 0.962979f,
+ 0.962953f, 0.962927f, 0.962902f, 0.962876f, 0.962850f, 0.962824f, 0.962798f, 0.962772f,
+ 0.962746f, 0.962720f, 0.962694f, 0.962668f, 0.962642f, 0.962616f, 0.962590f, 0.962564f,
+ 0.962538f, 0.962512f, 0.962486f, 0.962460f, 0.962434f, 0.962408f, 0.962382f, 0.962356f,
+ 0.962330f, 0.962304f, 0.962278f, 0.962252f, 0.962226f, 0.962200f, 0.962174f, 0.962148f,
+ 0.962121f, 0.962095f, 0.962069f, 0.962043f, 0.962017f, 0.961991f, 0.961964f, 0.961938f,
+ 0.961912f, 0.961886f, 0.961860f, 0.961833f, 0.961807f, 0.961781f, 0.961755f, 0.961728f,
+ 0.961702f, 0.961676f, 0.961649f, 0.961623f, 0.961597f, 0.961571f, 0.961544f, 0.961518f,
+ 0.961492f, 0.961465f, 0.961439f, 0.961412f, 0.961386f, 0.961360f, 0.961333f, 0.961307f,
+ 0.961280f, 0.961254f, 0.961228f, 0.961201f, 0.961175f, 0.961148f, 0.961122f, 0.961095f,
+ 0.961069f, 0.961042f, 0.961016f, 0.960989f, 0.960963f, 0.960936f, 0.960910f, 0.960883f,
+ 0.960857f, 0.960830f, 0.960804f, 0.960777f, 0.960750f, 0.960724f, 0.960697f, 0.960670f,
+ 0.960644f, 0.960617f, 0.960591f, 0.960564f, 0.960537f, 0.960511f, 0.960484f, 0.960457f,
+ 0.960431f, 0.960404f, 0.960377f, 0.960350f, 0.960324f, 0.960297f, 0.960270f, 0.960243f,
+ 0.960217f, 0.960190f, 0.960163f, 0.960136f, 0.960109f, 0.960083f, 0.960056f, 0.960029f,
+ 0.960002f, 0.959975f, 0.959948f, 0.959922f, 0.959895f, 0.959868f, 0.959841f, 0.959814f,
+ 0.959787f, 0.959760f, 0.959733f, 0.959706f, 0.959679f, 0.959652f, 0.959625f, 0.959598f,
+ 0.959572f, 0.959545f, 0.959518f, 0.959491f, 0.959463f, 0.959436f, 0.959409f, 0.959382f,
+ 0.959355f, 0.959328f, 0.959301f, 0.959274f, 0.959247f, 0.959220f, 0.959193f, 0.959166f,
+ 0.959139f, 0.959112f, 0.959084f, 0.959057f, 0.959030f, 0.959003f, 0.958976f, 0.958949f,
+ 0.958921f, 0.958894f, 0.958867f, 0.958840f, 0.958812f, 0.958785f, 0.958758f, 0.958731f,
+ 0.958703f, 0.958676f, 0.958649f, 0.958622f, 0.958594f, 0.958567f, 0.958540f, 0.958512f,
+ 0.958485f, 0.958458f, 0.958430f, 0.958403f, 0.958376f, 0.958348f, 0.958321f, 0.958293f,
+ 0.958266f, 0.958239f, 0.958211f, 0.958184f, 0.958156f, 0.958129f, 0.958101f, 0.958074f,
+ 0.958046f, 0.958019f, 0.957992f, 0.957964f, 0.957937f, 0.957909f, 0.957882f, 0.957854f,
+ 0.957826f, 0.957799f, 0.957771f, 0.957744f, 0.957716f, 0.957689f, 0.957661f, 0.957633f,
+ 0.957606f, 0.957578f, 0.957550f, 0.957523f, 0.957495f, 0.957468f, 0.957440f, 0.957412f,
+ 0.957385f, 0.957357f, 0.957329f, 0.957301f, 0.957274f, 0.957246f, 0.957218f, 0.957190f,
+ 0.957163f, 0.957135f, 0.957107f, 0.957079f, 0.957052f, 0.957024f, 0.956996f, 0.956968f,
+ 0.956940f, 0.956913f, 0.956885f, 0.956857f, 0.956829f, 0.956801f, 0.956773f, 0.956745f,
+ 0.956717f, 0.956689f, 0.956662f, 0.956634f, 0.956606f, 0.956578f, 0.956550f, 0.956522f,
+ 0.956494f, 0.956466f, 0.956438f, 0.956410f, 0.956382f, 0.956354f, 0.956326f, 0.956298f,
+ 0.956270f, 0.956242f, 0.956214f, 0.956186f, 0.956158f, 0.956130f, 0.956101f, 0.956073f,
+ 0.956045f, 0.956017f, 0.955989f, 0.955961f, 0.955933f, 0.955905f, 0.955876f, 0.955848f,
+ 0.955820f, 0.955792f, 0.955764f, 0.955736f, 0.955707f, 0.955679f, 0.955651f, 0.955623f,
+ 0.955594f, 0.955566f, 0.955538f, 0.955510f, 0.955481f, 0.955453f, 0.955425f, 0.955396f,
+ 0.955368f, 0.955340f, 0.955311f, 0.955283f, 0.955255f, 0.955226f, 0.955198f, 0.955170f,
+ 0.955141f, 0.955113f, 0.955084f, 0.955056f, 0.955028f, 0.954999f, 0.954971f, 0.954942f,
+ 0.954914f, 0.954885f, 0.954857f, 0.954828f, 0.954800f, 0.954771f, 0.954743f, 0.954714f,
+ 0.954686f, 0.954657f, 0.954629f, 0.954600f, 0.954572f, 0.954543f, 0.954514f, 0.954486f,
+ 0.954457f, 0.954429f, 0.954400f, 0.954371f, 0.954343f, 0.954314f, 0.954285f, 0.954257f,
+ 0.954228f, 0.954199f, 0.954171f, 0.954142f, 0.954113f, 0.954085f, 0.954056f, 0.954027f,
+ 0.953998f, 0.953970f, 0.953941f, 0.953912f, 0.953883f, 0.953855f, 0.953826f, 0.953797f,
+ 0.953768f, 0.953739f, 0.953711f, 0.953682f, 0.953653f, 0.953624f, 0.953595f, 0.953566f,
+ 0.953537f, 0.953508f, 0.953480f, 0.953451f, 0.953422f, 0.953393f, 0.953364f, 0.953335f,
+ 0.953306f, 0.953277f, 0.953248f, 0.953219f, 0.953190f, 0.953161f, 0.953132f, 0.953103f,
+ 0.953074f, 0.953045f, 0.953016f, 0.952987f, 0.952958f, 0.952929f, 0.952900f, 0.952871f,
+ 0.952842f, 0.952813f, 0.952783f, 0.952754f, 0.952725f, 0.952696f, 0.952667f, 0.952638f,
+ 0.952609f, 0.952579f, 0.952550f, 0.952521f, 0.952492f, 0.952463f, 0.952433f, 0.952404f,
+ 0.952375f, 0.952346f, 0.952317f, 0.952287f, 0.952258f, 0.952229f, 0.952199f, 0.952170f,
+ 0.952141f, 0.952112f, 0.952082f, 0.952053f, 0.952024f, 0.951994f, 0.951965f, 0.951936f,
+ 0.951906f, 0.951877f, 0.951847f, 0.951818f, 0.951789f, 0.951759f, 0.951730f, 0.951700f,
+ 0.951671f, 0.951641f, 0.951612f, 0.951582f, 0.951553f, 0.951524f, 0.951494f, 0.951465f,
+ 0.951435f, 0.951406f, 0.951376f, 0.951346f, 0.951317f, 0.951287f, 0.951258f, 0.951228f,
+ 0.951199f, 0.951169f, 0.951139f, 0.951110f, 0.951080f, 0.951051f, 0.951021f, 0.950991f,
+ 0.950962f, 0.950932f, 0.950902f, 0.950873f, 0.950843f, 0.950813f, 0.950784f, 0.950754f,
+ 0.950724f, 0.950694f, 0.950665f, 0.950635f, 0.950605f, 0.950575f, 0.950546f, 0.950516f,
+ 0.950486f, 0.950456f, 0.950426f, 0.950397f, 0.950367f, 0.950337f, 0.950307f, 0.950277f,
+ 0.950247f, 0.950218f, 0.950188f, 0.950158f, 0.950128f, 0.950098f, 0.950068f, 0.950038f,
+ 0.950008f, 0.949978f, 0.949948f, 0.949918f, 0.949888f, 0.949858f, 0.949829f, 0.949798f,
+ 0.949768f, 0.949739f, 0.949708f, 0.949678f, 0.949648f, 0.949618f, 0.949588f, 0.949558f,
+ 0.949528f, 0.949498f, 0.949468f, 0.949438f, 0.949408f, 0.949378f, 0.949348f, 0.949317f,
+ 0.949287f, 0.949257f, 0.949227f, 0.949197f, 0.949167f, 0.949136f, 0.949106f, 0.949076f,
+ 0.949046f, 0.949016f, 0.948985f, 0.948955f, 0.948925f, 0.948895f, 0.948864f, 0.948834f,
+ 0.948804f, 0.948774f, 0.948743f, 0.948713f, 0.948683f, 0.948652f, 0.948622f, 0.948592f,
+ 0.948561f, 0.948531f, 0.948501f, 0.948470f, 0.948440f, 0.948409f, 0.948379f, 0.948349f,
+ 0.948318f, 0.948288f, 0.948257f, 0.948227f, 0.948196f, 0.948166f, 0.948136f, 0.948105f,
+ 0.948075f, 0.948044f, 0.948014f, 0.947983f, 0.947953f, 0.947922f, 0.947891f, 0.947861f,
+ 0.947830f, 0.947800f, 0.947769f, 0.947739f, 0.947708f, 0.947677f, 0.947647f, 0.947616f,
+ 0.947586f, 0.947555f, 0.947524f, 0.947494f, 0.947463f, 0.947432f, 0.947402f, 0.947371f,
+ 0.947340f, 0.947310f, 0.947279f, 0.947248f, 0.947217f, 0.947187f, 0.947156f, 0.947125f,
+ 0.947094f, 0.947064f, 0.947033f, 0.947002f, 0.946971f, 0.946940f, 0.946910f, 0.946879f,
+ 0.946848f, 0.946817f, 0.946786f, 0.946755f, 0.946724f, 0.946694f, 0.946663f, 0.946632f,
+ 0.946601f, 0.946570f, 0.946539f, 0.946508f, 0.946477f, 0.946446f, 0.946415f, 0.946384f,
+ 0.946353f, 0.946322f, 0.946291f, 0.946260f, 0.946229f, 0.946198f, 0.946167f, 0.946136f,
+ 0.946105f, 0.946074f, 0.946043f, 0.946012f, 0.945981f, 0.945950f, 0.945919f, 0.945888f,
+ 0.945857f, 0.945825f, 0.945794f, 0.945763f, 0.945732f, 0.945701f, 0.945670f, 0.945639f,
+ 0.945607f, 0.945576f, 0.945545f, 0.945514f, 0.945482f, 0.945451f, 0.945420f, 0.945389f,
+ 0.945358f, 0.945326f, 0.945295f, 0.945264f, 0.945232f, 0.945201f, 0.945170f, 0.945139f,
+ 0.945107f, 0.945076f, 0.945045f, 0.945013f, 0.944982f, 0.944950f, 0.944919f, 0.944888f,
+ 0.944856f, 0.944825f, 0.944793f, 0.944762f, 0.944731f, 0.944699f, 0.944668f, 0.944636f,
+ 0.944605f, 0.944573f, 0.944542f, 0.944510f, 0.944479f, 0.944447f, 0.944416f, 0.944384f,
+ 0.944353f, 0.944321f, 0.944290f, 0.944258f, 0.944227f, 0.944195f, 0.944163f, 0.944132f,
+ 0.944100f, 0.944069f, 0.944037f, 0.944005f, 0.943974f, 0.943942f, 0.943910f, 0.943879f,
+ 0.943847f, 0.943815f, 0.943784f, 0.943752f, 0.943720f, 0.943689f, 0.943657f, 0.943625f,
+ 0.943593f, 0.943562f, 0.943530f, 0.943498f, 0.943466f, 0.943435f, 0.943403f, 0.943371f,
+ 0.943339f, 0.943307f, 0.943276f, 0.943244f, 0.943212f, 0.943180f, 0.943148f, 0.943116f,
+ 0.943084f, 0.943053f, 0.943021f, 0.942989f, 0.942957f, 0.942925f, 0.942893f, 0.942861f,
+ 0.942829f, 0.942797f, 0.942765f, 0.942733f, 0.942701f, 0.942669f, 0.942637f, 0.942605f,
+ 0.942573f, 0.942541f, 0.942509f, 0.942477f, 0.942445f, 0.942413f, 0.942381f, 0.942349f,
+ 0.942317f, 0.942285f, 0.942253f, 0.942220f, 0.942188f, 0.942156f, 0.942124f, 0.942092f,
+ 0.942060f, 0.942028f, 0.941995f, 0.941963f, 0.941931f, 0.941899f, 0.941867f, 0.941834f,
+ 0.941802f, 0.941770f, 0.941738f, 0.941705f, 0.941673f, 0.941641f, 0.941609f, 0.941576f,
+ 0.941544f, 0.941512f, 0.941479f, 0.941447f, 0.941415f, 0.941382f, 0.941350f, 0.941318f,
+ 0.941285f, 0.941253f, 0.941221f, 0.941188f, 0.941156f, 0.941123f, 0.941091f, 0.941059f,
+ 0.941026f, 0.940994f, 0.940961f, 0.940929f, 0.940896f, 0.940864f, 0.940831f, 0.940799f,
+ 0.940766f, 0.940734f, 0.940701f, 0.940669f, 0.940636f, 0.940604f, 0.940571f, 0.940539f,
+ 0.940506f, 0.940473f, 0.940441f, 0.940408f, 0.940376f, 0.940343f, 0.940310f, 0.940278f,
+ 0.940245f, 0.940213f, 0.940180f, 0.940147f, 0.940115f, 0.940082f, 0.940049f, 0.940016f,
+ 0.939984f, 0.939951f, 0.939918f, 0.939886f, 0.939853f, 0.939820f, 0.939787f, 0.939755f,
+ 0.939722f, 0.939689f, 0.939656f, 0.939623f, 0.939591f, 0.939558f, 0.939525f, 0.939492f,
+ 0.939459f, 0.939426f, 0.939394f, 0.939361f, 0.939328f, 0.939295f, 0.939262f, 0.939229f,
+ 0.939196f, 0.939163f, 0.939130f, 0.939097f, 0.939064f, 0.939031f, 0.938998f, 0.938965f,
+ 0.938932f, 0.938900f, 0.938866f, 0.938833f, 0.938800f, 0.938767f, 0.938734f, 0.938701f,
+ 0.938668f, 0.938635f, 0.938602f, 0.938569f, 0.938536f, 0.938503f, 0.938470f, 0.938437f,
+ 0.938404f, 0.938370f, 0.938337f, 0.938304f, 0.938271f, 0.938238f, 0.938205f, 0.938171f,
+ 0.938138f, 0.938105f, 0.938072f, 0.938039f, 0.938005f, 0.937972f, 0.937939f, 0.937906f,
+ 0.937872f, 0.937839f, 0.937806f, 0.937773f, 0.937739f, 0.937706f, 0.937673f, 0.937639f,
+ 0.937606f, 0.937573f, 0.937539f, 0.937506f, 0.937473f, 0.937439f, 0.937406f, 0.937372f,
+ 0.937339f, 0.937306f, 0.937272f, 0.937239f, 0.937205f, 0.937172f, 0.937138f, 0.937105f,
+ 0.937072f, 0.937038f, 0.937005f, 0.936971f, 0.936938f, 0.936904f, 0.936871f, 0.936837f,
+ 0.936803f, 0.936770f, 0.936736f, 0.936703f, 0.936669f, 0.936636f, 0.936602f, 0.936568f,
+ 0.936535f, 0.936501f, 0.936468f, 0.936434f, 0.936400f, 0.936367f, 0.936333f, 0.936299f,
+ 0.936266f, 0.936232f, 0.936198f, 0.936165f, 0.936131f, 0.936097f, 0.936063f, 0.936030f,
+ 0.935996f, 0.935962f, 0.935928f, 0.935895f, 0.935861f, 0.935827f, 0.935793f, 0.935759f,
+ 0.935726f, 0.935692f, 0.935658f, 0.935624f, 0.935590f, 0.935556f, 0.935523f, 0.935489f,
+ 0.935455f, 0.935421f, 0.935387f, 0.935353f, 0.935319f, 0.935285f, 0.935251f, 0.935217f,
+ 0.935184f, 0.935150f, 0.935116f, 0.935082f, 0.935048f, 0.935014f, 0.934980f, 0.934946f,
+ 0.934912f, 0.934878f, 0.934844f, 0.934810f, 0.934775f, 0.934741f, 0.934707f, 0.934673f,
+ 0.934639f, 0.934605f, 0.934571f, 0.934537f, 0.934503f, 0.934469f, 0.934434f, 0.934400f,
+ 0.934366f, 0.934332f, 0.934298f, 0.934264f, 0.934229f, 0.934195f, 0.934161f, 0.934127f,
+ 0.934093f, 0.934058f, 0.934024f, 0.933990f, 0.933956f, 0.933921f, 0.933887f, 0.933853f,
+ 0.933818f, 0.933784f, 0.933750f, 0.933716f, 0.933681f, 0.933647f, 0.933612f, 0.933578f,
+ 0.933544f, 0.933509f, 0.933475f, 0.933441f, 0.933406f, 0.933372f, 0.933337f, 0.933303f,
+ 0.933269f, 0.933234f, 0.933200f, 0.933165f, 0.933131f, 0.933096f, 0.933062f, 0.933027f,
+ 0.932993f, 0.932958f, 0.932924f, 0.932889f, 0.932855f, 0.932820f, 0.932786f, 0.932751f,
+ 0.932716f, 0.932682f, 0.932647f, 0.932613f, 0.932578f, 0.932544f, 0.932509f, 0.932474f,
+ 0.932440f, 0.932405f, 0.932370f, 0.932336f, 0.932301f, 0.932266f, 0.932232f, 0.932197f,
+ 0.932162f, 0.932128f, 0.932093f, 0.932058f, 0.932023f, 0.931989f, 0.931954f, 0.931919f,
+ 0.931884f, 0.931849f, 0.931815f, 0.931780f, 0.931745f, 0.931710f, 0.931675f, 0.931641f,
+ 0.931606f, 0.931571f, 0.931536f, 0.931501f, 0.931466f, 0.931431f, 0.931397f, 0.931362f,
+ 0.931327f, 0.931292f, 0.931257f, 0.931222f, 0.931187f, 0.931152f, 0.931117f, 0.931082f,
+ 0.931047f, 0.931012f, 0.930977f, 0.930942f, 0.930907f, 0.930872f, 0.930837f, 0.930802f,
+ 0.930767f, 0.930732f, 0.930697f, 0.930662f, 0.930627f, 0.930592f, 0.930556f, 0.930521f,
+ 0.930486f, 0.930451f, 0.930416f, 0.930381f, 0.930346f, 0.930311f, 0.930275f, 0.930240f,
+ 0.930205f, 0.930170f, 0.930135f, 0.930099f, 0.930064f, 0.930029f, 0.929994f, 0.929958f,
+ 0.929923f, 0.929888f, 0.929853f, 0.929817f, 0.929782f, 0.929747f, 0.929712f, 0.929676f,
+ 0.929641f, 0.929606f, 0.929570f, 0.929535f, 0.929500f, 0.929464f, 0.929429f, 0.929393f,
+ 0.929358f, 0.929323f, 0.929287f, 0.929252f, 0.929216f, 0.929181f, 0.929146f, 0.929110f,
+ 0.929075f, 0.929039f, 0.929004f, 0.928968f, 0.928933f, 0.928897f, 0.928862f, 0.928826f,
+ 0.928791f, 0.928755f, 0.928720f, 0.928684f, 0.928648f, 0.928613f, 0.928577f, 0.928542f,
+ 0.928506f, 0.928470f, 0.928435f, 0.928399f, 0.928364f, 0.928328f, 0.928292f, 0.928257f,
+ 0.928221f, 0.928185f, 0.928150f, 0.928114f, 0.928078f, 0.928043f, 0.928007f, 0.927971f,
+ 0.927935f, 0.927900f, 0.927864f, 0.927828f, 0.927792f, 0.927757f, 0.927721f, 0.927685f,
+ 0.927649f, 0.927613f, 0.927578f, 0.927542f, 0.927506f, 0.927470f, 0.927434f, 0.927398f,
+ 0.927363f, 0.927327f, 0.927291f, 0.927255f, 0.927219f, 0.927183f, 0.927147f, 0.927111f,
+ 0.927075f, 0.927039f, 0.927003f, 0.926967f, 0.926931f, 0.926895f, 0.926859f, 0.926823f,
+ 0.926787f, 0.926751f, 0.926715f, 0.926679f, 0.926643f, 0.926607f, 0.926571f, 0.926535f,
+ 0.926499f, 0.926463f, 0.926427f, 0.926391f, 0.926355f, 0.926319f, 0.926283f, 0.926246f,
+ 0.926210f, 0.926174f, 0.926138f, 0.926102f, 0.926066f, 0.926029f, 0.925993f, 0.925957f,
+ 0.925921f, 0.925885f, 0.925848f, 0.925812f, 0.925776f, 0.925740f, 0.925703f, 0.925667f,
+ 0.925631f, 0.925595f, 0.925558f, 0.925522f, 0.925486f, 0.925449f, 0.925413f, 0.925377f,
+ 0.925340f, 0.925304f, 0.925268f, 0.925231f, 0.925195f, 0.925158f, 0.925122f, 0.925086f,
+ 0.925049f, 0.925013f, 0.924976f, 0.924940f, 0.924904f, 0.924867f, 0.924831f, 0.924794f,
+ 0.924758f, 0.924721f, 0.924685f, 0.924648f, 0.924612f, 0.924575f, 0.924539f, 0.924502f,
+ 0.924465f, 0.924429f, 0.924392f, 0.924356f, 0.924319f, 0.924283f, 0.924246f, 0.924209f,
+ 0.924173f, 0.924136f, 0.924100f, 0.924063f, 0.924026f, 0.923990f, 0.923953f, 0.923916f,
+ 0.923880f, 0.923843f, 0.923806f, 0.923769f, 0.923733f, 0.923696f, 0.923659f, 0.923622f,
+ 0.923586f, 0.923549f, 0.923512f, 0.923475f, 0.923439f, 0.923402f, 0.923365f, 0.923328f,
+ 0.923291f, 0.923255f, 0.923218f, 0.923181f, 0.923144f, 0.923107f, 0.923070f, 0.923033f,
+ 0.922997f, 0.922960f, 0.922923f, 0.922886f, 0.922849f, 0.922812f, 0.922775f, 0.922738f,
+ 0.922701f, 0.922664f, 0.922627f, 0.922590f, 0.922553f, 0.922516f, 0.922479f, 0.922442f,
+ 0.922405f, 0.922368f, 0.922331f, 0.922294f, 0.922257f, 0.922220f, 0.922183f, 0.922146f,
+ 0.922109f, 0.922072f, 0.922034f, 0.921997f, 0.921960f, 0.921923f, 0.921886f, 0.921849f,
+ 0.921812f, 0.921774f, 0.921737f, 0.921700f, 0.921663f, 0.921626f, 0.921588f, 0.921551f,
+ 0.921514f, 0.921477f, 0.921440f, 0.921402f, 0.921365f, 0.921328f, 0.921291f, 0.921253f,
+ 0.921216f, 0.921179f, 0.921141f, 0.921104f, 0.921067f, 0.921029f, 0.920992f, 0.920955f,
+ 0.920917f, 0.920880f, 0.920842f, 0.920805f, 0.920768f, 0.920730f, 0.920693f, 0.920655f,
+ 0.920618f, 0.920581f, 0.920543f, 0.920506f, 0.920468f, 0.920431f, 0.920393f, 0.920356f,
+ 0.920318f, 0.920281f, 0.920243f, 0.920206f, 0.920168f, 0.920131f, 0.920093f, 0.920056f,
+ 0.920018f, 0.919980f, 0.919943f, 0.919905f, 0.919868f, 0.919830f, 0.919792f, 0.919755f,
+ 0.919717f, 0.919680f, 0.919642f, 0.919604f, 0.919567f, 0.919529f, 0.919491f, 0.919453f,
+ 0.919416f, 0.919378f, 0.919340f, 0.919303f, 0.919265f, 0.919227f, 0.919189f, 0.919152f,
+ 0.919114f, 0.919076f, 0.919038f, 0.919001f, 0.918963f, 0.918925f, 0.918887f, 0.918849f,
+ 0.918811f, 0.918774f, 0.918736f, 0.918698f, 0.918660f, 0.918622f, 0.918584f, 0.918546f,
+ 0.918508f, 0.918471f, 0.918433f, 0.918395f, 0.918357f, 0.918319f, 0.918281f, 0.918243f,
+ 0.918205f, 0.918167f, 0.918129f, 0.918091f, 0.918053f, 0.918015f, 0.917977f, 0.917939f,
+ 0.917901f, 0.917863f, 0.917825f, 0.917787f, 0.917749f, 0.917710f, 0.917672f, 0.917634f,
+ 0.917596f, 0.917558f, 0.917520f, 0.917482f, 0.917444f, 0.917405f, 0.917367f, 0.917329f,
+ 0.917291f, 0.917253f, 0.917215f, 0.917176f, 0.917138f, 0.917100f, 0.917062f, 0.917024f,
+ 0.916985f, 0.916947f, 0.916909f, 0.916871f, 0.916832f, 0.916794f, 0.916756f, 0.916717f,
+ 0.916679f, 0.916641f, 0.916602f, 0.916564f, 0.916526f, 0.916487f, 0.916449f, 0.916411f,
+ 0.916372f, 0.916334f, 0.916296f, 0.916257f, 0.916219f, 0.916180f, 0.916142f, 0.916103f,
+ 0.916065f, 0.916027f, 0.915988f, 0.915950f, 0.915911f, 0.915873f, 0.915834f, 0.915796f,
+ 0.915757f, 0.915719f, 0.915680f, 0.915642f, 0.915603f, 0.915564f, 0.915526f, 0.915487f,
+ 0.915449f, 0.915410f, 0.915372f, 0.915333f, 0.915294f, 0.915256f, 0.915217f, 0.915178f,
+ 0.915140f, 0.915101f, 0.915062f, 0.915024f, 0.914985f, 0.914946f, 0.914908f, 0.914869f,
+ 0.914830f, 0.914792f, 0.914753f, 0.914714f, 0.914675f, 0.914637f, 0.914598f, 0.914559f,
+ 0.914520f, 0.914482f, 0.914443f, 0.914404f, 0.914365f, 0.914326f, 0.914287f, 0.914249f,
+ 0.914210f, 0.914171f, 0.914132f, 0.914093f, 0.914054f, 0.914015f, 0.913976f, 0.913938f,
+ 0.913899f, 0.913860f, 0.913821f, 0.913782f, 0.913743f, 0.913704f, 0.913665f, 0.913626f,
+ 0.913587f, 0.913548f, 0.913509f, 0.913470f, 0.913431f, 0.913392f, 0.913353f, 0.913314f,
+ 0.913275f, 0.913236f, 0.913197f, 0.913158f, 0.913119f, 0.913080f, 0.913040f, 0.913001f,
+ 0.912962f, 0.912923f, 0.912884f, 0.912845f, 0.912806f, 0.912766f, 0.912727f, 0.912688f,
+ 0.912649f, 0.912610f, 0.912571f, 0.912531f, 0.912492f, 0.912453f, 0.912414f, 0.912374f,
+ 0.912335f, 0.912296f, 0.912257f, 0.912217f, 0.912178f, 0.912139f, 0.912099f, 0.912060f,
+ 0.912021f, 0.911982f, 0.911942f, 0.911903f, 0.911864f, 0.911824f, 0.911785f, 0.911745f,
+ 0.911706f, 0.911667f, 0.911627f, 0.911588f, 0.911548f, 0.911509f, 0.911470f, 0.911430f,
+ 0.911391f, 0.911351f, 0.911312f, 0.911272f, 0.911233f, 0.911193f, 0.911154f, 0.911114f,
+ 0.911075f, 0.911035f, 0.910996f, 0.910956f, 0.910917f, 0.910877f, 0.910837f, 0.910798f,
+ 0.910758f, 0.910719f, 0.910679f, 0.910639f, 0.910600f, 0.910560f, 0.910521f, 0.910481f,
+ 0.910441f, 0.910402f, 0.910362f, 0.910322f, 0.910283f, 0.910243f, 0.910203f, 0.910163f,
+ 0.910124f, 0.910084f, 0.910044f, 0.910005f, 0.909965f, 0.909925f, 0.909885f, 0.909845f,
+ 0.909806f, 0.909766f, 0.909726f, 0.909686f, 0.909646f, 0.909607f, 0.909567f, 0.909527f,
+ 0.909487f, 0.909447f, 0.909407f, 0.909368f, 0.909328f, 0.909288f, 0.909248f, 0.909208f,
+ 0.909168f, 0.909128f, 0.909088f, 0.909048f, 0.909008f, 0.908968f, 0.908928f, 0.908888f,
+ 0.908848f, 0.908808f, 0.908768f, 0.908728f, 0.908688f, 0.908648f, 0.908608f, 0.908568f,
+ 0.908528f, 0.908488f, 0.908448f, 0.908408f, 0.908368f, 0.908328f, 0.908288f, 0.908248f,
+ 0.908207f, 0.908167f, 0.908127f, 0.908087f, 0.908047f, 0.908007f, 0.907966f, 0.907926f,
+ 0.907886f, 0.907846f, 0.907806f, 0.907766f, 0.907725f, 0.907685f, 0.907645f, 0.907605f,
+ 0.907564f, 0.907524f, 0.907484f, 0.907444f, 0.907403f, 0.907363f, 0.907323f, 0.907282f,
+ 0.907242f, 0.907202f, 0.907161f, 0.907121f, 0.907081f, 0.907040f, 0.907000f, 0.906959f,
+ 0.906919f, 0.906879f, 0.906838f, 0.906798f, 0.906757f, 0.906717f, 0.906677f, 0.906636f,
+ 0.906596f, 0.906555f, 0.906515f, 0.906474f, 0.906434f, 0.906393f, 0.906353f, 0.906312f,
+ 0.906272f, 0.906231f, 0.906191f, 0.906150f, 0.906110f, 0.906069f, 0.906028f, 0.905988f,
+ 0.905947f, 0.905907f, 0.905866f, 0.905825f, 0.905785f, 0.905744f, 0.905704f, 0.905663f,
+ 0.905622f, 0.905582f, 0.905541f, 0.905500f, 0.905460f, 0.905419f, 0.905378f, 0.905337f,
+ 0.905297f, 0.905256f, 0.905215f, 0.905175f, 0.905134f, 0.905093f, 0.905052f, 0.905011f,
+ 0.904971f, 0.904930f, 0.904889f, 0.904848f, 0.904807f, 0.904767f, 0.904726f, 0.904685f,
+ 0.904644f, 0.904603f, 0.904562f, 0.904521f, 0.904481f, 0.904440f, 0.904399f, 0.904358f,
+ 0.904317f, 0.904276f, 0.904235f, 0.904194f, 0.904153f, 0.904112f, 0.904071f, 0.904030f,
+ 0.903989f, 0.903948f, 0.903907f, 0.903866f, 0.903825f, 0.903784f, 0.903743f, 0.903702f,
+ 0.903661f, 0.903620f, 0.903579f, 0.903538f, 0.903497f, 0.903456f, 0.903415f, 0.903373f,
+ 0.903332f, 0.903291f, 0.903250f, 0.903209f, 0.903168f, 0.903127f, 0.903085f, 0.903044f,
+ 0.903003f, 0.902962f, 0.902921f, 0.902879f, 0.902838f, 0.902797f, 0.902756f, 0.902715f,
+ 0.902673f, 0.902632f, 0.902591f, 0.902550f, 0.902508f, 0.902467f, 0.902426f, 0.902384f,
+ 0.902343f, 0.902302f, 0.902260f, 0.902219f, 0.902178f, 0.902136f, 0.902095f, 0.902054f,
+ 0.902012f, 0.901971f, 0.901929f, 0.901888f, 0.901847f, 0.901805f, 0.901764f, 0.901722f,
+ 0.901681f, 0.901639f, 0.901598f, 0.901556f, 0.901515f, 0.901473f, 0.901432f, 0.901390f,
+ 0.901349f, 0.901307f, 0.901266f, 0.901224f, 0.901183f, 0.901141f, 0.901100f, 0.901058f,
+ 0.901016f, 0.900975f, 0.900933f, 0.900892f, 0.900850f, 0.900808f, 0.900767f, 0.900725f,
+ 0.900683f, 0.900642f, 0.900600f, 0.900558f, 0.900517f, 0.900475f, 0.900433f, 0.900392f,
+ 0.900350f, 0.900308f, 0.900266f, 0.900225f, 0.900183f, 0.900141f, 0.900099f, 0.900058f,
+ 0.900016f, 0.899974f, 0.899932f, 0.899890f, 0.899849f, 0.899807f, 0.899765f, 0.899723f,
+ 0.899681f, 0.899639f, 0.899598f, 0.899556f, 0.899514f, 0.899472f, 0.899430f, 0.899388f,
+ 0.899346f, 0.899304f, 0.899262f, 0.899220f, 0.899179f, 0.899137f, 0.899095f, 0.899053f,
+ 0.899011f, 0.898969f, 0.898927f, 0.898885f, 0.898843f, 0.898801f, 0.898759f, 0.898717f,
+ 0.898674f, 0.898632f, 0.898590f, 0.898548f, 0.898506f, 0.898464f, 0.898422f, 0.898380f,
+ 0.898338f, 0.898296f, 0.898254f, 0.898211f, 0.898169f, 0.898127f, 0.898085f, 0.898043f,
+ 0.898001f, 0.897958f, 0.897916f, 0.897874f, 0.897832f, 0.897790f, 0.897747f, 0.897705f,
+ 0.897663f, 0.897621f, 0.897578f, 0.897536f, 0.897494f, 0.897452f, 0.897409f, 0.897367f,
+ 0.897325f, 0.897282f, 0.897240f, 0.897198f, 0.897155f, 0.897113f, 0.897071f, 0.897028f,
+ 0.896986f, 0.896943f, 0.896901f, 0.896859f, 0.896816f, 0.896774f, 0.896731f, 0.896689f,
+ 0.896646f, 0.896604f, 0.896562f, 0.896519f, 0.896477f, 0.896434f, 0.896392f, 0.896349f,
+ 0.896307f, 0.896264f, 0.896222f, 0.896179f, 0.896137f, 0.896094f, 0.896051f, 0.896009f,
+ 0.895966f, 0.895924f, 0.895881f, 0.895838f, 0.895796f, 0.895753f, 0.895711f, 0.895668f,
+ 0.895625f, 0.895583f, 0.895540f, 0.895497f, 0.895455f, 0.895412f, 0.895369f, 0.895327f,
+ 0.895284f, 0.895241f, 0.895198f, 0.895156f, 0.895113f, 0.895070f, 0.895028f, 0.894985f,
+ 0.894942f, 0.894899f, 0.894856f, 0.894814f, 0.894771f, 0.894728f, 0.894685f, 0.894642f,
+ 0.894599f, 0.894557f, 0.894514f, 0.894471f, 0.894428f, 0.894385f, 0.894342f, 0.894299f,
+ 0.894256f, 0.894214f, 0.894171f, 0.894128f, 0.894085f, 0.894042f, 0.893999f, 0.893956f,
+ 0.893913f, 0.893870f, 0.893827f, 0.893784f, 0.893741f, 0.893698f, 0.893655f, 0.893612f,
+ 0.893569f, 0.893526f, 0.893483f, 0.893440f, 0.893397f, 0.893354f, 0.893310f, 0.893267f,
+ 0.893224f, 0.893181f, 0.893138f, 0.893095f, 0.893052f, 0.893009f, 0.892965f, 0.892922f,
+ 0.892879f, 0.892836f, 0.892793f, 0.892750f, 0.892706f, 0.892663f, 0.892620f, 0.892577f,
+ 0.892534f, 0.892490f, 0.892447f, 0.892404f, 0.892361f, 0.892317f, 0.892274f, 0.892231f,
+ 0.892187f, 0.892144f, 0.892101f, 0.892057f, 0.892014f, 0.891971f, 0.891927f, 0.891884f,
+ 0.891841f, 0.891797f, 0.891754f, 0.891711f, 0.891667f, 0.891624f, 0.891580f, 0.891537f,
+ 0.891493f, 0.891450f, 0.891407f, 0.891363f, 0.891320f, 0.891276f, 0.891233f, 0.891189f,
+ 0.891146f, 0.891102f, 0.891059f, 0.891015f, 0.890972f, 0.890928f, 0.890885f, 0.890841f,
+ 0.890797f, 0.890754f, 0.890710f, 0.890667f, 0.890623f, 0.890580f, 0.890536f, 0.890492f,
+ 0.890449f, 0.890405f, 0.890361f, 0.890318f, 0.890274f, 0.890230f, 0.890187f, 0.890143f,
+ 0.890099f, 0.890056f, 0.890012f, 0.889968f, 0.889925f, 0.889881f, 0.889837f, 0.889793f,
+ 0.889750f, 0.889706f, 0.889662f, 0.889618f, 0.889574f, 0.889531f, 0.889487f, 0.889443f,
+ 0.889399f, 0.889355f, 0.889312f, 0.889268f, 0.889224f, 0.889180f, 0.889136f, 0.889092f,
+ 0.889048f, 0.889004f, 0.888961f, 0.888917f, 0.888873f, 0.888829f, 0.888785f, 0.888741f,
+ 0.888697f, 0.888653f, 0.888609f, 0.888565f, 0.888521f, 0.888477f, 0.888433f, 0.888389f,
+ 0.888345f, 0.888301f, 0.888257f, 0.888213f, 0.888169f, 0.888125f, 0.888081f, 0.888037f,
+ 0.887993f, 0.887949f, 0.887904f, 0.887860f, 0.887816f, 0.887772f, 0.887728f, 0.887684f,
+ 0.887640f, 0.887595f, 0.887551f, 0.887507f, 0.887463f, 0.887419f, 0.887375f, 0.887330f,
+ 0.887286f, 0.887242f, 0.887198f, 0.887153f, 0.887109f, 0.887065f, 0.887021f, 0.886976f,
+ 0.886932f, 0.886888f, 0.886844f, 0.886799f, 0.886755f, 0.886711f, 0.886666f, 0.886622f,
+ 0.886578f, 0.886533f, 0.886489f, 0.886445f, 0.886400f, 0.886356f, 0.886311f, 0.886267f,
+ 0.886223f, 0.886178f, 0.886134f, 0.886089f, 0.886045f, 0.886000f, 0.885956f, 0.885911f,
+ 0.885867f, 0.885822f, 0.885778f, 0.885733f, 0.885689f, 0.885644f, 0.885600f, 0.885555f,
+ 0.885511f, 0.885466f, 0.885422f, 0.885377f, 0.885333f, 0.885288f, 0.885243f, 0.885199f,
+ 0.885154f, 0.885110f, 0.885065f, 0.885020f, 0.884976f, 0.884931f, 0.884886f, 0.884842f,
+ 0.884797f, 0.884752f, 0.884708f, 0.884663f, 0.884618f, 0.884574f, 0.884529f, 0.884484f,
+ 0.884439f, 0.884395f, 0.884350f, 0.884305f, 0.884260f, 0.884216f, 0.884171f, 0.884126f,
+ 0.884081f, 0.884036f, 0.883992f, 0.883947f, 0.883902f, 0.883857f, 0.883812f, 0.883767f,
+ 0.883723f, 0.883678f, 0.883633f, 0.883588f, 0.883543f, 0.883498f, 0.883453f, 0.883408f,
+ 0.883363f, 0.883318f, 0.883273f, 0.883228f, 0.883184f, 0.883139f, 0.883094f, 0.883049f,
+ 0.883004f, 0.882959f, 0.882914f, 0.882869f, 0.882824f, 0.882779f, 0.882733f, 0.882688f,
+ 0.882643f, 0.882598f, 0.882553f, 0.882508f, 0.882463f, 0.882418f, 0.882373f, 0.882328f,
+ 0.882283f, 0.882237f, 0.882192f, 0.882147f, 0.882102f, 0.882057f, 0.882012f, 0.881966f,
+ 0.881921f, 0.881876f, 0.881831f, 0.881786f, 0.881740f, 0.881695f, 0.881650f, 0.881605f,
+ 0.881559f, 0.881514f, 0.881469f, 0.881424f, 0.881378f, 0.881333f, 0.881288f, 0.881242f,
+ 0.881197f, 0.881152f, 0.881106f, 0.881061f, 0.881016f, 0.880970f, 0.880925f, 0.880880f,
+ 0.880834f, 0.880789f, 0.880743f, 0.880698f, 0.880653f, 0.880607f, 0.880562f, 0.880516f,
+ 0.880471f, 0.880425f, 0.880380f, 0.880334f, 0.880289f, 0.880244f, 0.880198f, 0.880153f,
+ 0.880107f, 0.880061f, 0.880016f, 0.879970f, 0.879925f, 0.879879f, 0.879834f, 0.879788f,
+ 0.879743f, 0.879697f, 0.879651f, 0.879606f, 0.879560f, 0.879515f, 0.879469f, 0.879423f,
+ 0.879378f, 0.879332f, 0.879286f, 0.879241f, 0.879195f, 0.879149f, 0.879104f, 0.879058f,
+ 0.879012f, 0.878967f, 0.878921f, 0.878875f, 0.878829f, 0.878784f, 0.878738f, 0.878692f,
+ 0.878646f, 0.878600f, 0.878555f, 0.878509f, 0.878463f, 0.878417f, 0.878371f, 0.878326f,
+ 0.878280f, 0.878234f, 0.878188f, 0.878142f, 0.878096f, 0.878051f, 0.878005f, 0.877959f,
+ 0.877913f, 0.877867f, 0.877821f, 0.877775f, 0.877729f, 0.877683f, 0.877637f, 0.877591f,
+ 0.877545f, 0.877499f, 0.877453f, 0.877407f, 0.877361f, 0.877315f, 0.877269f, 0.877223f,
+ 0.877177f, 0.877131f, 0.877085f, 0.877039f, 0.876993f, 0.876947f, 0.876901f, 0.876855f,
+ 0.876809f, 0.876763f, 0.876716f, 0.876670f, 0.876624f, 0.876578f, 0.876532f, 0.876486f,
+ 0.876440f, 0.876393f, 0.876347f, 0.876301f, 0.876255f, 0.876209f, 0.876163f, 0.876116f,
+ 0.876070f, 0.876024f, 0.875978f, 0.875931f, 0.875885f, 0.875839f, 0.875793f, 0.875746f,
+ 0.875700f, 0.875654f, 0.875607f, 0.875561f, 0.875515f, 0.875468f, 0.875422f, 0.875376f,
+ 0.875329f, 0.875283f, 0.875237f, 0.875190f, 0.875144f, 0.875098f, 0.875051f, 0.875005f,
+ 0.874958f, 0.874912f, 0.874865f, 0.874819f, 0.874773f, 0.874726f, 0.874680f, 0.874633f,
+ 0.874587f, 0.874540f, 0.874494f, 0.874447f, 0.874401f, 0.874354f, 0.874308f, 0.874261f,
+ 0.874215f, 0.874168f, 0.874121f, 0.874075f, 0.874028f, 0.873982f, 0.873935f, 0.873888f,
+ 0.873842f, 0.873795f, 0.873749f, 0.873702f, 0.873655f, 0.873609f, 0.873562f, 0.873515f,
+ 0.873469f, 0.873422f, 0.873375f, 0.873329f, 0.873282f, 0.873235f, 0.873188f, 0.873142f,
+ 0.873095f, 0.873048f, 0.873001f, 0.872955f, 0.872908f, 0.872861f, 0.872814f, 0.872768f,
+ 0.872721f, 0.872674f, 0.872627f, 0.872580f, 0.872534f, 0.872487f, 0.872440f, 0.872393f,
+ 0.872346f, 0.872299f, 0.872252f, 0.872205f, 0.872159f, 0.872112f, 0.872065f, 0.872018f,
+ 0.871971f, 0.871924f, 0.871877f, 0.871830f, 0.871783f, 0.871736f, 0.871689f, 0.871642f,
+ 0.871595f, 0.871548f, 0.871501f, 0.871454f, 0.871407f, 0.871360f, 0.871313f, 0.871266f,
+ 0.871219f, 0.871172f, 0.871125f, 0.871078f, 0.871031f, 0.870983f, 0.870936f, 0.870889f,
+ 0.870842f, 0.870795f, 0.870748f, 0.870701f, 0.870654f, 0.870606f, 0.870559f, 0.870512f,
+ 0.870465f, 0.870418f, 0.870370f, 0.870323f, 0.870276f, 0.870229f, 0.870182f, 0.870134f,
+ 0.870087f, 0.870040f, 0.869992f, 0.869945f, 0.869898f, 0.869851f, 0.869803f, 0.869756f,
+ 0.869709f, 0.869661f, 0.869614f, 0.869567f, 0.869519f, 0.869472f, 0.869425f, 0.869377f,
+ 0.869330f, 0.869282f, 0.869235f, 0.869188f, 0.869140f, 0.869093f, 0.869045f, 0.868998f,
+ 0.868951f, 0.868903f, 0.868856f, 0.868808f, 0.868761f, 0.868713f, 0.868666f, 0.868618f,
+ 0.868571f, 0.868523f, 0.868476f, 0.868428f, 0.868381f, 0.868333f, 0.868285f, 0.868238f,
+ 0.868190f, 0.868143f, 0.868095f, 0.868048f, 0.868000f, 0.867952f, 0.867905f, 0.867857f,
+ 0.867809f, 0.867762f, 0.867714f, 0.867667f, 0.867619f, 0.867571f, 0.867523f, 0.867476f,
+ 0.867428f, 0.867380f, 0.867333f, 0.867285f, 0.867237f, 0.867190f, 0.867142f, 0.867094f,
+ 0.867046f, 0.866998f, 0.866951f, 0.866903f, 0.866855f, 0.866807f, 0.866759f, 0.866712f,
+ 0.866664f, 0.866616f, 0.866568f, 0.866520f, 0.866472f, 0.866425f, 0.866377f, 0.866329f,
+ 0.866281f, 0.866233f, 0.866185f, 0.866137f, 0.866089f, 0.866041f, 0.865993f, 0.865946f,
+ 0.865898f, 0.865850f, 0.865802f, 0.865754f, 0.865706f, 0.865658f, 0.865610f, 0.865562f,
+ 0.865514f, 0.865466f, 0.865418f, 0.865369f, 0.865321f, 0.865273f, 0.865225f, 0.865177f,
+ 0.865129f, 0.865081f, 0.865033f, 0.864985f, 0.864937f, 0.864889f, 0.864841f, 0.864792f,
+ 0.864744f, 0.864696f, 0.864648f, 0.864600f, 0.864552f, 0.864503f, 0.864455f, 0.864407f,
+ 0.864359f, 0.864311f, 0.864262f, 0.864214f, 0.864166f, 0.864118f, 0.864069f, 0.864021f,
+ 0.863973f, 0.863925f, 0.863876f, 0.863828f, 0.863780f, 0.863731f, 0.863683f, 0.863635f,
+ 0.863586f, 0.863538f, 0.863490f, 0.863441f, 0.863393f, 0.863345f, 0.863296f, 0.863248f,
+ 0.863199f, 0.863151f, 0.863103f, 0.863054f, 0.863006f, 0.862957f, 0.862909f, 0.862860f,
+ 0.862812f, 0.862763f, 0.862715f, 0.862666f, 0.862618f, 0.862570f, 0.862521f, 0.862472f,
+ 0.862424f, 0.862375f, 0.862327f, 0.862278f, 0.862230f, 0.862181f, 0.862133f, 0.862084f,
+ 0.862035f, 0.861987f, 0.861938f, 0.861890f, 0.861841f, 0.861792f, 0.861744f, 0.861695f,
+ 0.861646f, 0.861598f, 0.861549f, 0.861500f, 0.861452f, 0.861403f, 0.861354f, 0.861306f,
+ 0.861257f, 0.861208f, 0.861160f, 0.861111f, 0.861062f, 0.861013f, 0.860964f, 0.860916f,
+ 0.860867f, 0.860818f, 0.860769f, 0.860721f, 0.860672f, 0.860623f, 0.860574f, 0.860525f,
+ 0.860476f, 0.860428f, 0.860379f, 0.860330f, 0.860281f, 0.860232f, 0.860183f, 0.860134f,
+ 0.860085f, 0.860036f, 0.859988f, 0.859939f, 0.859890f, 0.859841f, 0.859792f, 0.859743f,
+ 0.859694f, 0.859645f, 0.859596f, 0.859547f, 0.859498f, 0.859449f, 0.859400f, 0.859351f,
+ 0.859302f, 0.859253f, 0.859204f, 0.859155f, 0.859106f, 0.859057f, 0.859007f, 0.858958f,
+ 0.858909f, 0.858860f, 0.858811f, 0.858762f, 0.858713f, 0.858664f, 0.858615f, 0.858565f,
+ 0.858516f, 0.858467f, 0.858418f, 0.858369f, 0.858320f, 0.858270f, 0.858221f, 0.858172f,
+ 0.858123f, 0.858073f, 0.858024f, 0.857975f, 0.857926f, 0.857876f, 0.857827f, 0.857778f,
+ 0.857729f, 0.857679f, 0.857630f, 0.857581f, 0.857531f, 0.857482f, 0.857433f, 0.857383f,
+ 0.857334f, 0.857285f, 0.857235f, 0.857186f, 0.857137f, 0.857087f, 0.857038f, 0.856988f,
+ 0.856939f, 0.856890f, 0.856840f, 0.856791f, 0.856741f, 0.856692f, 0.856642f, 0.856593f,
+ 0.856543f, 0.856494f, 0.856444f, 0.856395f, 0.856345f, 0.856296f, 0.856246f, 0.856197f,
+ 0.856147f, 0.856098f, 0.856048f, 0.855999f, 0.855949f, 0.855900f, 0.855850f, 0.855800f,
+ 0.855751f, 0.855701f, 0.855651f, 0.855602f, 0.855552f, 0.855503f, 0.855453f, 0.855403f,
+ 0.855354f, 0.855304f, 0.855254f, 0.855205f, 0.855155f, 0.855105f, 0.855056f, 0.855006f,
+ 0.854956f, 0.854906f, 0.854857f, 0.854807f, 0.854757f, 0.854707f, 0.854658f, 0.854608f,
+ 0.854558f, 0.854508f, 0.854458f, 0.854409f, 0.854359f, 0.854309f, 0.854259f, 0.854209f,
+ 0.854159f, 0.854110f, 0.854060f, 0.854010f, 0.853960f, 0.853910f, 0.853860f, 0.853810f,
+ 0.853760f, 0.853710f, 0.853660f, 0.853611f, 0.853561f, 0.853511f, 0.853461f, 0.853411f,
+ 0.853361f, 0.853311f, 0.853261f, 0.853211f, 0.853161f, 0.853111f, 0.853061f, 0.853011f,
+ 0.852961f, 0.852911f, 0.852861f, 0.852810f, 0.852760f, 0.852710f, 0.852660f, 0.852610f,
+ 0.852560f, 0.852510f, 0.852460f, 0.852410f, 0.852360f, 0.852309f, 0.852259f, 0.852209f,
+ 0.852159f, 0.852109f, 0.852059f, 0.852008f, 0.851958f, 0.851908f, 0.851858f, 0.851808f,
+ 0.851757f, 0.851707f, 0.851657f, 0.851607f, 0.851556f, 0.851506f, 0.851456f, 0.851406f,
+ 0.851355f, 0.851305f, 0.851255f, 0.851204f, 0.851154f, 0.851104f, 0.851053f, 0.851003f,
+ 0.850953f, 0.850902f, 0.850852f, 0.850801f, 0.850751f, 0.850701f, 0.850650f, 0.850600f,
+ 0.850549f, 0.850499f, 0.850449f, 0.850398f, 0.850348f, 0.850297f, 0.850247f, 0.850196f,
+ 0.850146f, 0.850095f, 0.850045f, 0.849994f, 0.849944f, 0.849893f, 0.849843f, 0.849792f,
+ 0.849742f, 0.849691f, 0.849641f, 0.849590f, 0.849540f, 0.849489f, 0.849438f, 0.849388f,
+ 0.849337f, 0.849287f, 0.849236f, 0.849185f, 0.849135f, 0.849084f, 0.849033f, 0.848983f,
+ 0.848932f, 0.848881f, 0.848831f, 0.848780f, 0.848729f, 0.848679f, 0.848628f, 0.848577f,
+ 0.848526f, 0.848476f, 0.848425f, 0.848374f, 0.848323f, 0.848273f, 0.848222f, 0.848171f,
+ 0.848120f, 0.848070f, 0.848019f, 0.847968f, 0.847917f, 0.847866f, 0.847815f, 0.847765f,
+ 0.847714f, 0.847663f, 0.847612f, 0.847561f, 0.847510f, 0.847459f, 0.847408f, 0.847358f,
+ 0.847307f, 0.847256f, 0.847205f, 0.847154f, 0.847103f, 0.847052f, 0.847001f, 0.846950f,
+ 0.846899f, 0.846848f, 0.846797f, 0.846746f, 0.846695f, 0.846644f, 0.846593f, 0.846542f,
+ 0.846491f, 0.846440f, 0.846389f, 0.846338f, 0.846287f, 0.846236f, 0.846185f, 0.846133f,
+ 0.846082f, 0.846031f, 0.845980f, 0.845929f, 0.845878f, 0.845827f, 0.845776f, 0.845724f,
+ 0.845673f, 0.845622f, 0.845571f, 0.845520f, 0.845469f, 0.845417f, 0.845366f, 0.845315f,
+ 0.845264f, 0.845212f, 0.845161f, 0.845110f, 0.845059f, 0.845007f, 0.844956f, 0.844905f,
+ 0.844854f, 0.844802f, 0.844751f, 0.844700f, 0.844648f, 0.844597f, 0.844546f, 0.844494f,
+ 0.844443f, 0.844392f, 0.844340f, 0.844289f, 0.844238f, 0.844186f, 0.844135f, 0.844083f,
+ 0.844032f, 0.843980f, 0.843929f, 0.843878f, 0.843826f, 0.843775f, 0.843723f, 0.843672f,
+ 0.843620f, 0.843569f, 0.843517f, 0.843466f, 0.843414f, 0.843363f, 0.843311f, 0.843260f,
+ 0.843208f, 0.843157f, 0.843105f, 0.843054f, 0.843002f, 0.842950f, 0.842899f, 0.842847f,
+ 0.842796f, 0.842744f, 0.842692f, 0.842641f, 0.842589f, 0.842538f, 0.842486f, 0.842434f,
+ 0.842383f, 0.842331f, 0.842279f, 0.842228f, 0.842176f, 0.842124f, 0.842072f, 0.842021f,
+ 0.841969f, 0.841917f, 0.841866f, 0.841814f, 0.841762f, 0.841710f, 0.841659f, 0.841607f,
+ 0.841555f, 0.841503f, 0.841451f, 0.841400f, 0.841348f, 0.841296f, 0.841244f, 0.841192f,
+ 0.841140f, 0.841089f, 0.841037f, 0.840985f, 0.840933f, 0.840881f, 0.840829f, 0.840777f,
+ 0.840725f, 0.840673f, 0.840622f, 0.840570f, 0.840518f, 0.840466f, 0.840414f, 0.840362f,
+ 0.840310f, 0.840258f, 0.840206f, 0.840154f, 0.840102f, 0.840050f, 0.839998f, 0.839946f,
+ 0.839894f, 0.839842f, 0.839790f, 0.839738f, 0.839686f, 0.839634f, 0.839581f, 0.839529f,
+ 0.839477f, 0.839425f, 0.839373f, 0.839321f, 0.839269f, 0.839217f, 0.839165f, 0.839112f,
+ 0.839060f, 0.839008f, 0.838956f, 0.838904f, 0.838852f, 0.838799f, 0.838747f, 0.838695f,
+ 0.838643f, 0.838591f, 0.838538f, 0.838486f, 0.838434f, 0.838382f, 0.838329f, 0.838277f,
+ 0.838225f, 0.838172f, 0.838120f, 0.838068f, 0.838015f, 0.837963f, 0.837911f, 0.837859f,
+ 0.837806f, 0.837754f, 0.837701f, 0.837649f, 0.837597f, 0.837544f, 0.837492f, 0.837440f,
+ 0.837387f, 0.837335f, 0.837282f, 0.837230f, 0.837178f, 0.837125f, 0.837073f, 0.837020f,
+ 0.836968f, 0.836915f, 0.836863f, 0.836810f, 0.836758f, 0.836705f, 0.836653f, 0.836600f,
+ 0.836548f, 0.836495f, 0.836443f, 0.836390f, 0.836338f, 0.836285f, 0.836232f, 0.836180f,
+ 0.836127f, 0.836075f, 0.836022f, 0.835969f, 0.835917f, 0.835864f, 0.835812f, 0.835759f,
+ 0.835706f, 0.835654f, 0.835601f, 0.835548f, 0.835496f, 0.835443f, 0.835390f, 0.835338f,
+ 0.835285f, 0.835232f, 0.835179f, 0.835127f, 0.835074f, 0.835021f, 0.834968f, 0.834916f,
+ 0.834863f, 0.834810f, 0.834757f, 0.834705f, 0.834652f, 0.834599f, 0.834546f, 0.834493f,
+ 0.834440f, 0.834388f, 0.834335f, 0.834282f, 0.834229f, 0.834176f, 0.834123f, 0.834070f,
+ 0.834018f, 0.833965f, 0.833912f, 0.833859f, 0.833806f, 0.833753f, 0.833700f, 0.833647f,
+ 0.833594f, 0.833541f, 0.833488f, 0.833435f, 0.833382f, 0.833329f, 0.833276f, 0.833223f,
+ 0.833170f, 0.833117f, 0.833064f, 0.833011f, 0.832958f, 0.832905f, 0.832852f, 0.832799f,
+ 0.832746f, 0.832693f, 0.832640f, 0.832586f, 0.832533f, 0.832480f, 0.832427f, 0.832374f,
+ 0.832321f, 0.832268f, 0.832215f, 0.832161f, 0.832108f, 0.832055f, 0.832002f, 0.831949f,
+ 0.831895f, 0.831842f, 0.831789f, 0.831736f, 0.831683f, 0.831629f, 0.831576f, 0.831523f,
+ 0.831470f, 0.831416f, 0.831363f, 0.831310f, 0.831257f, 0.831203f, 0.831150f, 0.831097f,
+ 0.831043f, 0.830990f, 0.830937f, 0.830883f, 0.830830f, 0.830777f, 0.830723f, 0.830670f,
+ 0.830616f, 0.830563f, 0.830510f, 0.830456f, 0.830403f, 0.830349f, 0.830296f, 0.830243f,
+ 0.830189f, 0.830136f, 0.830082f, 0.830029f, 0.829975f, 0.829922f, 0.829868f, 0.829815f,
+ 0.829761f, 0.829708f, 0.829654f, 0.829601f, 0.829547f, 0.829494f, 0.829440f, 0.829386f,
+ 0.829333f, 0.829279f, 0.829226f, 0.829172f, 0.829119f, 0.829065f, 0.829011f, 0.828958f,
+ 0.828904f, 0.828851f, 0.828797f, 0.828743f, 0.828690f, 0.828636f, 0.828582f, 0.828529f,
+ 0.828475f, 0.828421f, 0.828367f, 0.828314f, 0.828260f, 0.828206f, 0.828153f, 0.828099f,
+ 0.828045f, 0.827991f, 0.827938f, 0.827884f, 0.827830f, 0.827776f, 0.827722f, 0.827669f,
+ 0.827615f, 0.827561f, 0.827507f, 0.827453f, 0.827399f, 0.827346f, 0.827292f, 0.827238f,
+ 0.827184f, 0.827130f, 0.827076f, 0.827022f, 0.826968f, 0.826915f, 0.826861f, 0.826807f,
+ 0.826753f, 0.826699f, 0.826645f, 0.826591f, 0.826537f, 0.826483f, 0.826429f, 0.826375f,
+ 0.826321f, 0.826267f, 0.826213f, 0.826159f, 0.826105f, 0.826051f, 0.825997f, 0.825943f,
+ 0.825889f, 0.825835f, 0.825781f, 0.825727f, 0.825673f, 0.825618f, 0.825564f, 0.825510f,
+ 0.825456f, 0.825402f, 0.825348f, 0.825294f, 0.825240f, 0.825185f, 0.825131f, 0.825077f,
+ 0.825023f, 0.824969f, 0.824915f, 0.824860f, 0.824806f, 0.824752f, 0.824698f, 0.824644f,
+ 0.824589f, 0.824535f, 0.824481f, 0.824427f, 0.824372f, 0.824318f, 0.824264f, 0.824209f,
+ 0.824155f, 0.824101f, 0.824047f, 0.823992f, 0.823938f, 0.823884f, 0.823829f, 0.823775f,
+ 0.823721f, 0.823666f, 0.823612f, 0.823557f, 0.823503f, 0.823449f, 0.823394f, 0.823340f,
+ 0.823285f, 0.823231f, 0.823177f, 0.823122f, 0.823068f, 0.823013f, 0.822959f, 0.822904f,
+ 0.822850f, 0.822795f, 0.822741f, 0.822686f, 0.822632f, 0.822577f, 0.822523f, 0.822468f,
+ 0.822414f, 0.822359f, 0.822305f, 0.822250f, 0.822195f, 0.822141f, 0.822086f, 0.822032f,
+ 0.821977f, 0.821922f, 0.821868f, 0.821813f, 0.821759f, 0.821704f, 0.821649f, 0.821595f,
+ 0.821540f, 0.821485f, 0.821431f, 0.821376f, 0.821321f, 0.821267f, 0.821212f, 0.821157f,
+ 0.821102f, 0.821048f, 0.820993f, 0.820938f, 0.820884f, 0.820829f, 0.820774f, 0.820719f,
+ 0.820664f, 0.820610f, 0.820555f, 0.820500f, 0.820445f, 0.820390f, 0.820336f, 0.820281f,
+ 0.820226f, 0.820171f, 0.820116f, 0.820061f, 0.820007f, 0.819952f, 0.819897f, 0.819842f,
+ 0.819787f, 0.819732f, 0.819677f, 0.819622f, 0.819567f, 0.819512f, 0.819457f, 0.819402f,
+ 0.819348f, 0.819293f, 0.819238f, 0.819183f, 0.819128f, 0.819073f, 0.819018f, 0.818963f,
+ 0.818908f, 0.818853f, 0.818798f, 0.818742f, 0.818687f, 0.818632f, 0.818577f, 0.818522f,
+ 0.818467f, 0.818412f, 0.818357f, 0.818302f, 0.818247f, 0.818192f, 0.818137f, 0.818081f,
+ 0.818026f, 0.817971f, 0.817916f, 0.817861f, 0.817806f, 0.817750f, 0.817695f, 0.817640f,
+ 0.817585f, 0.817530f, 0.817474f, 0.817419f, 0.817364f, 0.817309f, 0.817253f, 0.817198f,
+ 0.817143f, 0.817088f, 0.817032f, 0.816977f, 0.816922f, 0.816867f, 0.816811f, 0.816756f,
+ 0.816701f, 0.816645f, 0.816590f, 0.816535f, 0.816479f, 0.816424f, 0.816368f, 0.816313f,
+ 0.816258f, 0.816202f, 0.816147f, 0.816092f, 0.816036f, 0.815981f, 0.815925f, 0.815870f,
+ 0.815814f, 0.815759f, 0.815704f, 0.815648f, 0.815593f, 0.815537f, 0.815482f, 0.815426f,
+ 0.815371f, 0.815315f, 0.815260f, 0.815204f, 0.815149f, 0.815093f, 0.815037f, 0.814982f,
+ 0.814926f, 0.814871f, 0.814815f, 0.814760f, 0.814704f, 0.814648f, 0.814593f, 0.814537f,
+ 0.814482f, 0.814426f, 0.814370f, 0.814315f, 0.814259f, 0.814203f, 0.814148f, 0.814092f,
+ 0.814036f, 0.813981f, 0.813925f, 0.813869f, 0.813814f, 0.813758f, 0.813702f, 0.813646f,
+ 0.813591f, 0.813535f, 0.813479f, 0.813423f, 0.813368f, 0.813312f, 0.813256f, 0.813200f,
+ 0.813144f, 0.813089f, 0.813033f, 0.812977f, 0.812921f, 0.812865f, 0.812809f, 0.812754f,
+ 0.812698f, 0.812642f, 0.812586f, 0.812530f, 0.812474f, 0.812418f, 0.812362f, 0.812307f,
+ 0.812251f, 0.812195f, 0.812139f, 0.812083f, 0.812027f, 0.811971f, 0.811915f, 0.811859f,
+ 0.811803f, 0.811747f, 0.811691f, 0.811635f, 0.811579f, 0.811523f, 0.811467f, 0.811411f,
+ 0.811355f, 0.811299f, 0.811243f, 0.811187f, 0.811131f, 0.811075f, 0.811018f, 0.810962f,
+ 0.810906f, 0.810850f, 0.810794f, 0.810738f, 0.810682f, 0.810626f, 0.810570f, 0.810513f,
+ 0.810457f, 0.810401f, 0.810345f, 0.810289f, 0.810232f, 0.810176f, 0.810120f, 0.810064f,
+ 0.810008f, 0.809951f, 0.809895f, 0.809839f, 0.809783f, 0.809726f, 0.809670f, 0.809614f,
+ 0.809558f, 0.809501f, 0.809445f, 0.809389f, 0.809332f, 0.809276f, 0.809220f, 0.809164f,
+ 0.809107f, 0.809051f, 0.808994f, 0.808938f, 0.808882f, 0.808825f, 0.808769f, 0.808713f,
+ 0.808656f, 0.808600f, 0.808543f, 0.808487f, 0.808430f, 0.808374f, 0.808318f, 0.808261f,
+ 0.808205f, 0.808148f, 0.808092f, 0.808035f, 0.807979f, 0.807922f, 0.807866f, 0.807809f,
+ 0.807753f, 0.807696f, 0.807640f, 0.807583f, 0.807527f, 0.807470f, 0.807414f, 0.807357f,
+ 0.807300f, 0.807244f, 0.807187f, 0.807131f, 0.807074f, 0.807017f, 0.806961f, 0.806904f,
+ 0.806848f, 0.806791f, 0.806734f, 0.806678f, 0.806621f, 0.806564f, 0.806508f, 0.806451f,
+ 0.806394f, 0.806338f, 0.806281f, 0.806224f, 0.806167f, 0.806111f, 0.806054f, 0.805997f,
+ 0.805940f, 0.805884f, 0.805827f, 0.805770f, 0.805713f, 0.805656f, 0.805600f, 0.805543f,
+ 0.805486f, 0.805429f, 0.805372f, 0.805316f, 0.805259f, 0.805202f, 0.805145f, 0.805088f,
+ 0.805031f, 0.804974f, 0.804918f, 0.804861f, 0.804804f, 0.804747f, 0.804690f, 0.804633f,
+ 0.804576f, 0.804519f, 0.804462f, 0.804405f, 0.804348f, 0.804291f, 0.804234f, 0.804177f,
+ 0.804120f, 0.804063f, 0.804006f, 0.803949f, 0.803892f, 0.803835f, 0.803778f, 0.803721f,
+ 0.803664f, 0.803607f, 0.803550f, 0.803493f, 0.803436f, 0.803379f, 0.803322f, 0.803265f,
+ 0.803208f, 0.803150f, 0.803093f, 0.803036f, 0.802979f, 0.802922f, 0.802865f, 0.802808f,
+ 0.802750f, 0.802693f, 0.802636f, 0.802579f, 0.802522f, 0.802464f, 0.802407f, 0.802350f,
+ 0.802293f, 0.802236f, 0.802178f, 0.802121f, 0.802064f, 0.802007f, 0.801949f, 0.801892f,
+ 0.801835f, 0.801777f, 0.801720f, 0.801663f, 0.801606f, 0.801548f, 0.801491f, 0.801434f,
+ 0.801376f, 0.801319f, 0.801261f, 0.801204f, 0.801147f, 0.801089f, 0.801032f, 0.800975f,
+ 0.800917f, 0.800860f, 0.800802f, 0.800745f, 0.800687f, 0.800630f, 0.800573f, 0.800515f,
+ 0.800458f, 0.800400f, 0.800343f, 0.800285f, 0.800228f, 0.800170f, 0.800113f, 0.800055f,
+ 0.799998f, 0.799940f, 0.799883f, 0.799825f, 0.799768f, 0.799710f, 0.799652f, 0.799595f,
+ 0.799537f, 0.799480f, 0.799422f, 0.799365f, 0.799307f, 0.799249f, 0.799192f, 0.799134f,
+ 0.799076f, 0.799019f, 0.798961f, 0.798903f, 0.798846f, 0.798788f, 0.798730f, 0.798673f,
+ 0.798615f, 0.798557f, 0.798500f, 0.798442f, 0.798384f, 0.798326f, 0.798269f, 0.798211f,
+ 0.798153f, 0.798095f, 0.798038f, 0.797980f, 0.797922f, 0.797864f, 0.797806f, 0.797749f,
+ 0.797691f, 0.797633f, 0.797575f, 0.797517f, 0.797459f, 0.797402f, 0.797344f, 0.797286f,
+ 0.797228f, 0.797170f, 0.797112f, 0.797054f, 0.796996f, 0.796939f, 0.796881f, 0.796823f,
+ 0.796765f, 0.796707f, 0.796649f, 0.796591f, 0.796533f, 0.796475f, 0.796417f, 0.796359f,
+ 0.796301f, 0.796243f, 0.796185f, 0.796127f, 0.796069f, 0.796011f, 0.795953f, 0.795895f,
+ 0.795837f, 0.795779f, 0.795721f, 0.795663f, 0.795605f, 0.795547f, 0.795488f, 0.795430f,
+ 0.795372f, 0.795314f, 0.795256f, 0.795198f, 0.795140f, 0.795082f, 0.795023f, 0.794965f,
+ 0.794907f, 0.794849f, 0.794791f, 0.794733f, 0.794674f, 0.794616f, 0.794558f, 0.794500f,
+ 0.794442f, 0.794383f, 0.794325f, 0.794267f, 0.794209f, 0.794150f, 0.794092f, 0.794034f,
+ 0.793975f, 0.793917f, 0.793859f, 0.793801f, 0.793742f, 0.793684f, 0.793626f, 0.793567f,
+ 0.793509f, 0.793451f, 0.793392f, 0.793334f, 0.793276f, 0.793217f, 0.793159f, 0.793100f,
+ 0.793042f, 0.792984f, 0.792925f, 0.792867f, 0.792808f, 0.792750f, 0.792691f, 0.792633f,
+ 0.792575f, 0.792516f, 0.792458f, 0.792399f, 0.792341f, 0.792282f, 0.792224f, 0.792165f,
+ 0.792107f, 0.792048f, 0.791990f, 0.791931f, 0.791872f, 0.791814f, 0.791755f, 0.791697f,
+ 0.791638f, 0.791580f, 0.791521f, 0.791462f, 0.791404f, 0.791345f, 0.791287f, 0.791228f,
+ 0.791169f, 0.791111f, 0.791052f, 0.790993f, 0.790935f, 0.790876f, 0.790817f, 0.790759f,
+ 0.790700f, 0.790641f, 0.790583f, 0.790524f, 0.790465f, 0.790406f, 0.790348f, 0.790289f,
+ 0.790230f, 0.790171f, 0.790113f, 0.790054f, 0.789995f, 0.789936f, 0.789878f, 0.789819f,
+ 0.789760f, 0.789701f, 0.789642f, 0.789584f, 0.789525f, 0.789466f, 0.789407f, 0.789348f,
+ 0.789289f, 0.789230f, 0.789172f, 0.789113f, 0.789054f, 0.788995f, 0.788936f, 0.788877f,
+ 0.788818f, 0.788759f, 0.788700f, 0.788641f, 0.788582f, 0.788523f, 0.788464f, 0.788405f,
+ 0.788346f, 0.788287f, 0.788228f, 0.788169f, 0.788110f, 0.788051f, 0.787992f, 0.787933f,
+ 0.787874f, 0.787815f, 0.787756f, 0.787697f, 0.787638f, 0.787579f, 0.787520f, 0.787461f,
+ 0.787402f, 0.787343f, 0.787284f, 0.787224f, 0.787165f, 0.787106f, 0.787047f, 0.786988f,
+ 0.786929f, 0.786870f, 0.786810f, 0.786751f, 0.786692f, 0.786633f, 0.786574f, 0.786514f,
+ 0.786455f, 0.786396f, 0.786337f, 0.786278f, 0.786218f, 0.786159f, 0.786100f, 0.786041f,
+ 0.785981f, 0.785922f, 0.785863f, 0.785803f, 0.785744f, 0.785685f, 0.785625f, 0.785566f,
+ 0.785507f, 0.785447f, 0.785388f, 0.785329f, 0.785269f, 0.785210f, 0.785151f, 0.785091f,
+ 0.785032f, 0.784973f, 0.784913f, 0.784854f, 0.784794f, 0.784735f, 0.784675f, 0.784616f,
+ 0.784557f, 0.784497f, 0.784438f, 0.784378f, 0.784319f, 0.784259f, 0.784200f, 0.784140f,
+ 0.784081f, 0.784021f, 0.783962f, 0.783902f, 0.783843f, 0.783783f, 0.783724f, 0.783664f,
+ 0.783605f, 0.783545f, 0.783485f, 0.783426f, 0.783366f, 0.783307f, 0.783247f, 0.783187f,
+ 0.783128f, 0.783068f, 0.783009f, 0.782949f, 0.782889f, 0.782830f, 0.782770f, 0.782710f,
+ 0.782651f, 0.782591f, 0.782531f, 0.782472f, 0.782412f, 0.782352f, 0.782292f, 0.782233f,
+ 0.782173f, 0.782113f, 0.782053f, 0.781994f, 0.781934f, 0.781874f, 0.781814f, 0.781755f,
+ 0.781695f, 0.781635f, 0.781575f, 0.781515f, 0.781456f, 0.781396f, 0.781336f, 0.781276f,
+ 0.781216f, 0.781156f, 0.781097f, 0.781037f, 0.780977f, 0.780917f, 0.780857f, 0.780797f,
+ 0.780737f, 0.780677f, 0.780617f, 0.780557f, 0.780498f, 0.780438f, 0.780378f, 0.780318f,
+ 0.780258f, 0.780198f, 0.780138f, 0.780078f, 0.780018f, 0.779958f, 0.779898f, 0.779838f,
+ 0.779778f, 0.779718f, 0.779658f, 0.779598f, 0.779538f, 0.779478f, 0.779418f, 0.779357f,
+ 0.779297f, 0.779237f, 0.779177f, 0.779117f, 0.779057f, 0.778997f, 0.778937f, 0.778877f,
+ 0.778817f, 0.778756f, 0.778696f, 0.778636f, 0.778576f, 0.778516f, 0.778456f, 0.778395f,
+ 0.778335f, 0.778275f, 0.778215f, 0.778155f, 0.778094f, 0.778034f, 0.777974f, 0.777914f,
+ 0.777853f, 0.777793f, 0.777733f, 0.777673f, 0.777612f, 0.777552f, 0.777492f, 0.777431f,
+ 0.777371f, 0.777311f, 0.777251f, 0.777190f, 0.777130f, 0.777070f, 0.777009f, 0.776949f,
+ 0.776888f, 0.776828f, 0.776768f, 0.776707f, 0.776647f, 0.776587f, 0.776526f, 0.776466f,
+ 0.776405f, 0.776345f, 0.776284f, 0.776224f, 0.776164f, 0.776103f, 0.776043f, 0.775982f,
+ 0.775922f, 0.775861f, 0.775801f, 0.775740f, 0.775680f, 0.775619f, 0.775559f, 0.775498f,
+ 0.775438f, 0.775377f, 0.775317f, 0.775256f, 0.775195f, 0.775135f, 0.775074f, 0.775014f,
+ 0.774953f, 0.774893f, 0.774832f, 0.774771f, 0.774711f, 0.774650f, 0.774589f, 0.774529f,
+ 0.774468f, 0.774407f, 0.774347f, 0.774286f, 0.774225f, 0.774165f, 0.774104f, 0.774043f,
+ 0.773983f, 0.773922f, 0.773861f, 0.773801f, 0.773740f, 0.773679f, 0.773618f, 0.773558f,
+ 0.773497f, 0.773436f, 0.773375f, 0.773314f, 0.773254f, 0.773193f, 0.773132f, 0.773071f,
+ 0.773010f, 0.772950f, 0.772889f, 0.772828f, 0.772767f, 0.772706f, 0.772645f, 0.772584f,
+ 0.772524f, 0.772463f, 0.772402f, 0.772341f, 0.772280f, 0.772219f, 0.772158f, 0.772097f,
+ 0.772036f, 0.771975f, 0.771915f, 0.771854f, 0.771793f, 0.771732f, 0.771671f, 0.771610f,
+ 0.771549f, 0.771488f, 0.771427f, 0.771366f, 0.771305f, 0.771244f, 0.771183f, 0.771122f,
+ 0.771061f, 0.770999f, 0.770938f, 0.770877f, 0.770816f, 0.770755f, 0.770694f, 0.770633f,
+ 0.770572f, 0.770511f, 0.770450f, 0.770389f, 0.770327f, 0.770266f, 0.770205f, 0.770144f,
+ 0.770083f, 0.770022f, 0.769961f, 0.769899f, 0.769838f, 0.769777f, 0.769716f, 0.769655f,
+ 0.769593f, 0.769532f, 0.769471f, 0.769410f, 0.769348f, 0.769287f, 0.769226f, 0.769165f,
+ 0.769103f, 0.769042f, 0.768981f, 0.768919f, 0.768858f, 0.768797f, 0.768736f, 0.768674f,
+ 0.768613f, 0.768552f, 0.768490f, 0.768429f, 0.768368f, 0.768306f, 0.768245f, 0.768183f,
+ 0.768122f, 0.768061f, 0.767999f, 0.767938f, 0.767876f, 0.767815f, 0.767754f, 0.767692f,
+ 0.767631f, 0.767569f, 0.767508f, 0.767446f, 0.767385f, 0.767323f, 0.767262f, 0.767200f,
+ 0.767139f, 0.767077f, 0.767016f, 0.766954f, 0.766893f, 0.766831f, 0.766770f, 0.766708f,
+ 0.766647f, 0.766585f, 0.766524f, 0.766462f, 0.766400f, 0.766339f, 0.766277f, 0.766216f,
+ 0.766154f, 0.766092f, 0.766031f, 0.765969f, 0.765907f, 0.765846f, 0.765784f, 0.765723f,
+ 0.765661f, 0.765599f, 0.765538f, 0.765476f, 0.765414f, 0.765352f, 0.765291f, 0.765229f,
+ 0.765167f, 0.765106f, 0.765044f, 0.764982f, 0.764920f, 0.764859f, 0.764797f, 0.764735f,
+ 0.764673f, 0.764611f, 0.764550f, 0.764488f, 0.764426f, 0.764364f, 0.764302f, 0.764241f,
+ 0.764179f, 0.764117f, 0.764055f, 0.763993f, 0.763931f, 0.763869f, 0.763808f, 0.763746f,
+ 0.763684f, 0.763622f, 0.763560f, 0.763498f, 0.763436f, 0.763374f, 0.763312f, 0.763250f,
+ 0.763188f, 0.763126f, 0.763065f, 0.763003f, 0.762941f, 0.762879f, 0.762817f, 0.762755f,
+ 0.762693f, 0.762631f, 0.762569f, 0.762507f, 0.762444f, 0.762382f, 0.762320f, 0.762258f,
+ 0.762196f, 0.762134f, 0.762072f, 0.762010f, 0.761948f, 0.761886f, 0.761824f, 0.761762f,
+ 0.761700f, 0.761637f, 0.761575f, 0.761513f, 0.761451f, 0.761389f, 0.761327f, 0.761265f,
+ 0.761202f, 0.761140f, 0.761078f, 0.761016f, 0.760954f, 0.760891f, 0.760829f, 0.760767f,
+ 0.760705f, 0.760643f, 0.760580f, 0.760518f, 0.760456f, 0.760394f, 0.760331f, 0.760269f,
+ 0.760207f, 0.760144f, 0.760082f, 0.760020f, 0.759957f, 0.759895f, 0.759833f, 0.759771f,
+ 0.759708f, 0.759646f, 0.759583f, 0.759521f, 0.759459f, 0.759396f, 0.759334f, 0.759272f,
+ 0.759209f, 0.759147f, 0.759084f, 0.759022f, 0.758960f, 0.758897f, 0.758835f, 0.758772f,
+ 0.758710f, 0.758647f, 0.758585f, 0.758522f, 0.758460f, 0.758397f, 0.758335f, 0.758272f,
+ 0.758210f, 0.758147f, 0.758085f, 0.758022f, 0.757960f, 0.757897f, 0.757835f, 0.757772f,
+ 0.757710f, 0.757647f, 0.757584f, 0.757522f, 0.757459f, 0.757397f, 0.757334f, 0.757271f,
+ 0.757209f, 0.757146f, 0.757084f, 0.757021f, 0.756958f, 0.756896f, 0.756833f, 0.756770f,
+ 0.756708f, 0.756645f, 0.756582f, 0.756520f, 0.756457f, 0.756394f, 0.756331f, 0.756269f,
+ 0.756206f, 0.756143f, 0.756081f, 0.756018f, 0.755955f, 0.755892f, 0.755829f, 0.755767f,
+ 0.755704f, 0.755641f, 0.755578f, 0.755516f, 0.755453f, 0.755390f, 0.755327f, 0.755264f,
+ 0.755201f, 0.755139f, 0.755076f, 0.755013f, 0.754950f, 0.754887f, 0.754824f, 0.754761f,
+ 0.754698f, 0.754636f, 0.754573f, 0.754510f, 0.754447f, 0.754384f, 0.754321f, 0.754258f,
+ 0.754195f, 0.754132f, 0.754069f, 0.754006f, 0.753943f, 0.753880f, 0.753817f, 0.753754f,
+ 0.753691f, 0.753628f, 0.753565f, 0.753502f, 0.753439f, 0.753376f, 0.753313f, 0.753250f,
+ 0.753187f, 0.753124f, 0.753061f, 0.752998f, 0.752934f, 0.752871f, 0.752808f, 0.752745f,
+ 0.752682f, 0.752619f, 0.752556f, 0.752493f, 0.752429f, 0.752366f, 0.752303f, 0.752240f,
+ 0.752177f, 0.752114f, 0.752050f, 0.751987f, 0.751924f, 0.751861f, 0.751798f, 0.751734f,
+ 0.751671f, 0.751608f, 0.751545f, 0.751481f, 0.751418f, 0.751355f, 0.751292f, 0.751228f,
+ 0.751165f, 0.751102f, 0.751039f, 0.750975f, 0.750912f, 0.750849f, 0.750785f, 0.750722f,
+ 0.750659f, 0.750595f, 0.750532f, 0.750469f, 0.750405f, 0.750342f, 0.750278f, 0.750215f,
+ 0.750152f, 0.750088f, 0.750025f, 0.749961f, 0.749898f, 0.749835f, 0.749771f, 0.749708f,
+ 0.749644f, 0.749581f, 0.749517f, 0.749454f, 0.749390f, 0.749327f, 0.749263f, 0.749200f,
+ 0.749136f, 0.749073f, 0.749009f, 0.748946f, 0.748882f, 0.748819f, 0.748755f, 0.748692f,
+ 0.748628f, 0.748565f, 0.748501f, 0.748437f, 0.748374f, 0.748310f, 0.748247f, 0.748183f,
+ 0.748119f, 0.748056f, 0.747992f, 0.747929f, 0.747865f, 0.747801f, 0.747738f, 0.747674f,
+ 0.747610f, 0.747547f, 0.747483f, 0.747419f, 0.747355f, 0.747292f, 0.747228f, 0.747164f,
+ 0.747101f, 0.747037f, 0.746973f, 0.746909f, 0.746846f, 0.746782f, 0.746718f, 0.746654f,
+ 0.746591f, 0.746527f, 0.746463f, 0.746399f, 0.746335f, 0.746272f, 0.746208f, 0.746144f,
+ 0.746080f, 0.746016f, 0.745952f, 0.745889f, 0.745825f, 0.745761f, 0.745697f, 0.745633f,
+ 0.745569f, 0.745505f, 0.745441f, 0.745377f, 0.745314f, 0.745250f, 0.745186f, 0.745122f,
+ 0.745058f, 0.744994f, 0.744930f, 0.744866f, 0.744802f, 0.744738f, 0.744674f, 0.744610f,
+ 0.744546f, 0.744482f, 0.744418f, 0.744354f, 0.744290f, 0.744226f, 0.744162f, 0.744098f,
+ 0.744034f, 0.743970f, 0.743906f, 0.743842f, 0.743777f, 0.743713f, 0.743649f, 0.743585f,
+ 0.743521f, 0.743457f, 0.743393f, 0.743329f, 0.743265f, 0.743200f, 0.743136f, 0.743072f,
+ 0.743008f, 0.742944f, 0.742880f, 0.742815f, 0.742751f, 0.742687f, 0.742623f, 0.742559f,
+ 0.742494f, 0.742430f, 0.742366f, 0.742302f, 0.742237f, 0.742173f, 0.742109f, 0.742045f,
+ 0.741980f, 0.741916f, 0.741852f, 0.741788f, 0.741723f, 0.741659f, 0.741595f, 0.741530f,
+ 0.741466f, 0.741402f, 0.741337f, 0.741273f, 0.741209f, 0.741144f, 0.741080f, 0.741015f,
+ 0.740951f, 0.740887f, 0.740822f, 0.740758f, 0.740694f, 0.740629f, 0.740565f, 0.740500f,
+ 0.740436f, 0.740371f, 0.740307f, 0.740242f, 0.740178f, 0.740114f, 0.740049f, 0.739985f,
+ 0.739920f, 0.739856f, 0.739791f, 0.739727f, 0.739662f, 0.739598f, 0.739533f, 0.739468f,
+ 0.739404f, 0.739339f, 0.739275f, 0.739210f, 0.739146f, 0.739081f, 0.739017f, 0.738952f,
+ 0.738887f, 0.738823f, 0.738758f, 0.738693f, 0.738629f, 0.738564f, 0.738500f, 0.738435f,
+ 0.738370f, 0.738306f, 0.738241f, 0.738176f, 0.738112f, 0.738047f, 0.737982f, 0.737918f,
+ 0.737853f, 0.737788f, 0.737723f, 0.737659f, 0.737594f, 0.737529f, 0.737464f, 0.737400f,
+ 0.737335f, 0.737270f, 0.737205f, 0.737141f, 0.737076f, 0.737011f, 0.736946f, 0.736881f,
+ 0.736817f, 0.736752f, 0.736687f, 0.736622f, 0.736557f, 0.736492f, 0.736428f, 0.736363f,
+ 0.736298f, 0.736233f, 0.736168f, 0.736103f, 0.736038f, 0.735973f, 0.735908f, 0.735844f,
+ 0.735779f, 0.735714f, 0.735649f, 0.735584f, 0.735519f, 0.735454f, 0.735389f, 0.735324f,
+ 0.735259f, 0.735194f, 0.735129f, 0.735064f, 0.734999f, 0.734934f, 0.734869f, 0.734804f,
+ 0.734739f, 0.734674f, 0.734609f, 0.734544f, 0.734479f, 0.734414f, 0.734349f, 0.734283f,
+ 0.734218f, 0.734153f, 0.734088f, 0.734023f, 0.733958f, 0.733893f, 0.733828f, 0.733763f,
+ 0.733697f, 0.733632f, 0.733567f, 0.733502f, 0.733437f, 0.733372f, 0.733306f, 0.733241f,
+ 0.733176f, 0.733111f, 0.733046f, 0.732980f, 0.732915f, 0.732850f, 0.732785f, 0.732720f,
+ 0.732654f, 0.732589f, 0.732524f, 0.732458f, 0.732393f, 0.732328f, 0.732263f, 0.732197f,
+ 0.732132f, 0.732067f, 0.732001f, 0.731936f, 0.731871f, 0.731805f, 0.731740f, 0.731675f,
+ 0.731609f, 0.731544f, 0.731479f, 0.731413f, 0.731348f, 0.731282f, 0.731217f, 0.731152f,
+ 0.731086f, 0.731021f, 0.730955f, 0.730890f, 0.730825f, 0.730759f, 0.730694f, 0.730628f,
+ 0.730563f, 0.730497f, 0.730432f, 0.730366f, 0.730301f, 0.730235f, 0.730170f, 0.730104f,
+ 0.730039f, 0.729973f, 0.729908f, 0.729842f, 0.729777f, 0.729711f, 0.729646f, 0.729580f,
+ 0.729514f, 0.729449f, 0.729383f, 0.729318f, 0.729252f, 0.729186f, 0.729121f, 0.729055f,
+ 0.728990f, 0.728924f, 0.728858f, 0.728793f, 0.728727f, 0.728661f, 0.728596f, 0.728530f,
+ 0.728464f, 0.728399f, 0.728333f, 0.728267f, 0.728202f, 0.728136f, 0.728070f, 0.728004f,
+ 0.727939f, 0.727873f, 0.727807f, 0.727741f, 0.727676f, 0.727610f, 0.727544f, 0.727478f,
+ 0.727413f, 0.727347f, 0.727281f, 0.727215f, 0.727149f, 0.727084f, 0.727018f, 0.726952f,
+ 0.726886f, 0.726820f, 0.726754f, 0.726689f, 0.726623f, 0.726557f, 0.726491f, 0.726425f,
+ 0.726359f, 0.726293f, 0.726227f, 0.726161f, 0.726095f, 0.726030f, 0.725964f, 0.725898f,
+ 0.725832f, 0.725766f, 0.725700f, 0.725634f, 0.725568f, 0.725502f, 0.725436f, 0.725370f,
+ 0.725304f, 0.725238f, 0.725172f, 0.725106f, 0.725040f, 0.724974f, 0.724908f, 0.724842f,
+ 0.724776f, 0.724710f, 0.724644f, 0.724578f, 0.724511f, 0.724445f, 0.724379f, 0.724313f,
+ 0.724247f, 0.724181f, 0.724115f, 0.724049f, 0.723983f, 0.723916f, 0.723850f, 0.723784f,
+ 0.723718f, 0.723652f, 0.723586f, 0.723520f, 0.723453f, 0.723387f, 0.723321f, 0.723255f,
+ 0.723188f, 0.723122f, 0.723056f, 0.722990f, 0.722924f, 0.722857f, 0.722791f, 0.722725f,
+ 0.722659f, 0.722592f, 0.722526f, 0.722460f, 0.722393f, 0.722327f, 0.722261f, 0.722194f,
+ 0.722128f, 0.722062f, 0.721996f, 0.721929f, 0.721863f, 0.721797f, 0.721730f, 0.721664f,
+ 0.721597f, 0.721531f, 0.721465f, 0.721398f, 0.721332f, 0.721265f, 0.721199f, 0.721133f,
+ 0.721066f, 0.721000f, 0.720933f, 0.720867f, 0.720800f, 0.720734f, 0.720668f, 0.720601f,
+ 0.720535f, 0.720468f, 0.720402f, 0.720335f, 0.720269f, 0.720202f, 0.720136f, 0.720069f,
+ 0.720003f, 0.719936f, 0.719869f, 0.719803f, 0.719736f, 0.719670f, 0.719603f, 0.719537f,
+ 0.719470f, 0.719403f, 0.719337f, 0.719270f, 0.719204f, 0.719137f, 0.719070f, 0.719004f,
+ 0.718937f, 0.718870f, 0.718804f, 0.718737f, 0.718670f, 0.718604f, 0.718537f, 0.718471f,
+ 0.718404f, 0.718337f, 0.718270f, 0.718204f, 0.718137f, 0.718070f, 0.718004f, 0.717937f,
+ 0.717870f, 0.717803f, 0.717737f, 0.717670f, 0.717603f, 0.717536f, 0.717469f, 0.717403f,
+ 0.717336f, 0.717269f, 0.717202f, 0.717135f, 0.717069f, 0.717002f, 0.716935f, 0.716868f,
+ 0.716801f, 0.716734f, 0.716668f, 0.716601f, 0.716534f, 0.716467f, 0.716400f, 0.716333f,
+ 0.716266f, 0.716199f, 0.716132f, 0.716066f, 0.715999f, 0.715932f, 0.715865f, 0.715798f,
+ 0.715731f, 0.715664f, 0.715597f, 0.715530f, 0.715463f, 0.715396f, 0.715329f, 0.715262f,
+ 0.715195f, 0.715128f, 0.715061f, 0.714994f, 0.714927f, 0.714860f, 0.714793f, 0.714726f,
+ 0.714659f, 0.714592f, 0.714525f, 0.714457f, 0.714390f, 0.714323f, 0.714256f, 0.714189f,
+ 0.714122f, 0.714055f, 0.713988f, 0.713921f, 0.713853f, 0.713786f, 0.713719f, 0.713652f,
+ 0.713585f, 0.713518f, 0.713451f, 0.713383f, 0.713316f, 0.713249f, 0.713182f, 0.713115f,
+ 0.713047f, 0.712980f, 0.712913f, 0.712846f, 0.712778f, 0.712711f, 0.712644f, 0.712577f,
+ 0.712509f, 0.712442f, 0.712375f, 0.712308f, 0.712240f, 0.712173f, 0.712106f, 0.712038f,
+ 0.711971f, 0.711904f, 0.711836f, 0.711769f, 0.711702f, 0.711634f, 0.711567f, 0.711500f,
+ 0.711432f, 0.711365f, 0.711297f, 0.711230f, 0.711163f, 0.711095f, 0.711028f, 0.710960f,
+ 0.710893f, 0.710826f, 0.710758f, 0.710691f, 0.710623f, 0.710556f, 0.710488f, 0.710421f,
+ 0.710353f, 0.710286f, 0.710218f, 0.710151f, 0.710083f, 0.710016f, 0.709948f, 0.709881f,
+ 0.709813f, 0.709746f, 0.709678f, 0.709611f, 0.709543f, 0.709476f, 0.709408f, 0.709340f,
+ 0.709273f, 0.709205f, 0.709138f, 0.709070f, 0.709002f, 0.708935f, 0.708867f, 0.708800f,
+ 0.708732f, 0.708664f, 0.708597f, 0.708529f, 0.708461f, 0.708394f, 0.708326f, 0.708258f,
+ 0.708191f, 0.708123f, 0.708055f, 0.707988f, 0.707920f, 0.707852f, 0.707784f, 0.707717f,
+ 0.707649f, 0.707581f, 0.707513f, 0.707446f, 0.707378f, 0.707310f, 0.707242f, 0.707175f,
+ 0.707107f, 0.707039f, 0.706971f, 0.706903f, 0.706836f, 0.706768f, 0.706700f, 0.706632f,
+ 0.706564f, 0.706496f, 0.706429f, 0.706361f, 0.706293f, 0.706225f, 0.706157f, 0.706089f,
+ 0.706021f, 0.705953f, 0.705885f, 0.705818f, 0.705750f, 0.705682f, 0.705614f, 0.705546f,
+ 0.705478f, 0.705410f, 0.705342f, 0.705274f, 0.705206f, 0.705138f, 0.705070f, 0.705002f,
+ 0.704934f, 0.704866f, 0.704798f, 0.704730f, 0.704662f, 0.704594f, 0.704526f, 0.704458f,
+ 0.704390f, 0.704322f, 0.704254f, 0.704186f, 0.704118f, 0.704050f, 0.703981f, 0.703913f,
+ 0.703845f, 0.703777f, 0.703709f, 0.703641f, 0.703573f, 0.703505f, 0.703436f, 0.703368f,
+ 0.703300f, 0.703232f, 0.703164f, 0.703096f, 0.703028f, 0.702959f, 0.702891f, 0.702823f,
+ 0.702755f, 0.702687f, 0.702618f, 0.702550f, 0.702482f, 0.702414f, 0.702345f, 0.702277f,
+ 0.702209f, 0.702141f, 0.702072f, 0.702004f, 0.701936f, 0.701868f, 0.701799f, 0.701731f,
+ 0.701663f, 0.701594f, 0.701526f, 0.701458f, 0.701389f, 0.701321f, 0.701253f, 0.701184f,
+ 0.701116f, 0.701048f, 0.700979f, 0.700911f, 0.700842f, 0.700774f, 0.700706f, 0.700637f,
+ 0.700569f, 0.700500f, 0.700432f, 0.700364f, 0.700295f, 0.700227f, 0.700158f, 0.700090f,
+ 0.700021f, 0.699953f, 0.699884f, 0.699816f, 0.699747f, 0.699679f, 0.699610f, 0.699542f,
+ 0.699473f, 0.699405f, 0.699336f, 0.699268f, 0.699199f, 0.699131f, 0.699062f, 0.698994f,
+ 0.698925f, 0.698856f, 0.698788f, 0.698719f, 0.698651f, 0.698582f, 0.698513f, 0.698445f,
+ 0.698376f, 0.698308f, 0.698239f, 0.698170f, 0.698102f, 0.698033f, 0.697964f, 0.697896f,
+ 0.697827f, 0.697758f, 0.697690f, 0.697621f, 0.697552f, 0.697484f, 0.697415f, 0.697346f,
+ 0.697277f, 0.697209f, 0.697140f, 0.697071f, 0.697003f, 0.696934f, 0.696865f, 0.696796f,
+ 0.696728f, 0.696659f, 0.696590f, 0.696521f, 0.696452f, 0.696384f, 0.696315f, 0.696246f,
+ 0.696177f, 0.696108f, 0.696039f, 0.695971f, 0.695902f, 0.695833f, 0.695764f, 0.695695f,
+ 0.695626f, 0.695557f, 0.695489f, 0.695420f, 0.695351f, 0.695282f, 0.695213f, 0.695144f,
+ 0.695075f, 0.695006f, 0.694937f, 0.694868f, 0.694799f, 0.694730f, 0.694661f, 0.694592f,
+ 0.694524f, 0.694454f, 0.694386f, 0.694317f, 0.694248f, 0.694179f, 0.694109f, 0.694040f,
+ 0.693971f, 0.693902f, 0.693833f, 0.693764f, 0.693695f, 0.693626f, 0.693557f, 0.693488f,
+ 0.693419f, 0.693350f, 0.693281f, 0.693212f, 0.693143f, 0.693074f, 0.693004f, 0.692935f,
+ 0.692866f, 0.692797f, 0.692728f, 0.692659f, 0.692590f, 0.692520f, 0.692451f, 0.692382f,
+ 0.692313f, 0.692244f, 0.692175f, 0.692105f, 0.692036f, 0.691967f, 0.691898f, 0.691828f,
+ 0.691759f, 0.691690f, 0.691621f, 0.691552f, 0.691482f, 0.691413f, 0.691344f, 0.691274f,
+ 0.691205f, 0.691136f, 0.691067f, 0.690997f, 0.690928f, 0.690859f, 0.690789f, 0.690720f,
+ 0.690651f, 0.690581f, 0.690512f, 0.690443f, 0.690373f, 0.690304f, 0.690235f, 0.690165f,
+ 0.690096f, 0.690026f, 0.689957f, 0.689888f, 0.689818f, 0.689749f, 0.689679f, 0.689610f,
+ 0.689541f, 0.689471f, 0.689402f, 0.689332f, 0.689263f, 0.689193f, 0.689124f, 0.689054f,
+ 0.688985f, 0.688915f, 0.688846f, 0.688776f, 0.688707f, 0.688637f, 0.688568f, 0.688498f,
+ 0.688429f, 0.688359f, 0.688290f, 0.688220f, 0.688151f, 0.688081f, 0.688011f, 0.687942f,
+ 0.687872f, 0.687803f, 0.687733f, 0.687663f, 0.687594f, 0.687524f, 0.687455f, 0.687385f,
+ 0.687315f, 0.687246f, 0.687176f, 0.687106f, 0.687037f, 0.686967f, 0.686897f, 0.686828f,
+ 0.686758f, 0.686688f, 0.686619f, 0.686549f, 0.686479f, 0.686409f, 0.686340f, 0.686270f,
+ 0.686200f, 0.686131f, 0.686061f, 0.685991f, 0.685921f, 0.685852f, 0.685782f, 0.685712f,
+ 0.685642f, 0.685572f, 0.685503f, 0.685433f, 0.685363f, 0.685293f, 0.685223f, 0.685153f,
+ 0.685084f, 0.685014f, 0.684944f, 0.684874f, 0.684804f, 0.684734f, 0.684664f, 0.684595f,
+ 0.684525f, 0.684455f, 0.684385f, 0.684315f, 0.684245f, 0.684175f, 0.684105f, 0.684035f,
+ 0.683965f, 0.683895f, 0.683825f, 0.683756f, 0.683686f, 0.683616f, 0.683546f, 0.683476f,
+ 0.683406f, 0.683336f, 0.683266f, 0.683196f, 0.683126f, 0.683056f, 0.682986f, 0.682916f,
+ 0.682846f, 0.682775f, 0.682705f, 0.682635f, 0.682565f, 0.682495f, 0.682425f, 0.682355f,
+ 0.682285f, 0.682215f, 0.682145f, 0.682075f, 0.682005f, 0.681934f, 0.681864f, 0.681794f,
+ 0.681724f, 0.681654f, 0.681584f, 0.681514f, 0.681443f, 0.681373f, 0.681303f, 0.681233f,
+ 0.681163f, 0.681093f, 0.681022f, 0.680952f, 0.680882f, 0.680812f, 0.680741f, 0.680671f,
+ 0.680601f, 0.680531f, 0.680461f, 0.680390f, 0.680320f, 0.680250f, 0.680179f, 0.680109f,
+ 0.680039f, 0.679969f, 0.679898f, 0.679828f, 0.679758f, 0.679687f, 0.679617f, 0.679547f,
+ 0.679476f, 0.679406f, 0.679336f, 0.679265f, 0.679195f, 0.679125f, 0.679054f, 0.678984f,
+ 0.678913f, 0.678843f, 0.678773f, 0.678702f, 0.678632f, 0.678561f, 0.678491f, 0.678420f,
+ 0.678350f, 0.678280f, 0.678209f, 0.678139f, 0.678068f, 0.677998f, 0.677927f, 0.677857f,
+ 0.677786f, 0.677716f, 0.677645f, 0.677575f, 0.677504f, 0.677434f, 0.677363f, 0.677293f,
+ 0.677222f, 0.677152f, 0.677081f, 0.677011f, 0.676940f, 0.676869f, 0.676799f, 0.676728f,
+ 0.676658f, 0.676587f, 0.676516f, 0.676446f, 0.676375f, 0.676305f, 0.676234f, 0.676163f,
+ 0.676093f, 0.676022f, 0.675951f, 0.675881f, 0.675810f, 0.675739f, 0.675669f, 0.675598f,
+ 0.675527f, 0.675457f, 0.675386f, 0.675315f, 0.675245f, 0.675174f, 0.675103f, 0.675032f,
+ 0.674962f, 0.674891f, 0.674820f, 0.674749f, 0.674679f, 0.674608f, 0.674537f, 0.674466f,
+ 0.674396f, 0.674325f, 0.674254f, 0.674183f, 0.674112f, 0.674042f, 0.673971f, 0.673900f,
+ 0.673829f, 0.673758f, 0.673687f, 0.673616f, 0.673546f, 0.673475f, 0.673404f, 0.673333f,
+ 0.673262f, 0.673191f, 0.673120f, 0.673049f, 0.672978f, 0.672908f, 0.672837f, 0.672766f,
+ 0.672695f, 0.672624f, 0.672553f, 0.672482f, 0.672411f, 0.672340f, 0.672269f, 0.672198f,
+ 0.672127f, 0.672056f, 0.671985f, 0.671914f, 0.671843f, 0.671772f, 0.671701f, 0.671630f,
+ 0.671559f, 0.671488f, 0.671417f, 0.671346f, 0.671275f, 0.671204f, 0.671133f, 0.671062f,
+ 0.670990f, 0.670919f, 0.670848f, 0.670777f, 0.670706f, 0.670635f, 0.670564f, 0.670493f,
+ 0.670422f, 0.670350f, 0.670279f, 0.670208f, 0.670137f, 0.670066f, 0.669995f, 0.669923f,
+ 0.669852f, 0.669781f, 0.669710f, 0.669639f, 0.669567f, 0.669496f, 0.669425f, 0.669354f,
+ 0.669283f, 0.669211f, 0.669140f, 0.669069f, 0.668998f, 0.668926f, 0.668855f, 0.668784f,
+ 0.668712f, 0.668641f, 0.668570f, 0.668499f, 0.668427f, 0.668356f, 0.668285f, 0.668213f,
+ 0.668142f, 0.668071f, 0.667999f, 0.667928f, 0.667857f, 0.667785f, 0.667714f, 0.667643f,
+ 0.667571f, 0.667500f, 0.667428f, 0.667357f, 0.667286f, 0.667214f, 0.667143f, 0.667071f,
+ 0.667000f, 0.666928f, 0.666857f, 0.666786f, 0.666714f, 0.666643f, 0.666571f, 0.666500f,
+ 0.666428f, 0.666357f, 0.666285f, 0.666214f, 0.666142f, 0.666071f, 0.665999f, 0.665928f,
+ 0.665856f, 0.665785f, 0.665713f, 0.665642f, 0.665570f, 0.665498f, 0.665427f, 0.665355f,
+ 0.665284f, 0.665212f, 0.665141f, 0.665069f, 0.664997f, 0.664926f, 0.664854f, 0.664783f,
+ 0.664711f, 0.664639f, 0.664568f, 0.664496f, 0.664424f, 0.664353f, 0.664281f, 0.664209f,
+ 0.664138f, 0.664066f, 0.663994f, 0.663923f, 0.663851f, 0.663779f, 0.663708f, 0.663636f,
+ 0.663564f, 0.663492f, 0.663421f, 0.663349f, 0.663277f, 0.663205f, 0.663134f, 0.663062f,
+ 0.662990f, 0.662918f, 0.662847f, 0.662775f, 0.662703f, 0.662631f, 0.662559f, 0.662488f,
+ 0.662416f, 0.662344f, 0.662272f, 0.662200f, 0.662128f, 0.662057f, 0.661985f, 0.661913f,
+ 0.661841f, 0.661769f, 0.661697f, 0.661625f, 0.661553f, 0.661482f, 0.661410f, 0.661338f,
+ 0.661266f, 0.661194f, 0.661122f, 0.661050f, 0.660978f, 0.660906f, 0.660834f, 0.660762f,
+ 0.660690f, 0.660618f, 0.660546f, 0.660474f, 0.660402f, 0.660330f, 0.660258f, 0.660186f,
+ 0.660114f, 0.660042f, 0.659970f, 0.659898f, 0.659826f, 0.659754f, 0.659682f, 0.659610f,
+ 0.659538f, 0.659466f, 0.659394f, 0.659322f, 0.659250f, 0.659178f, 0.659105f, 0.659033f,
+ 0.658961f, 0.658889f, 0.658817f, 0.658745f, 0.658673f, 0.658601f, 0.658529f, 0.658456f,
+ 0.658384f, 0.658312f, 0.658240f, 0.658168f, 0.658095f, 0.658023f, 0.657951f, 0.657879f,
+ 0.657807f, 0.657734f, 0.657662f, 0.657590f, 0.657518f, 0.657446f, 0.657373f, 0.657301f,
+ 0.657229f, 0.657157f, 0.657084f, 0.657012f, 0.656940f, 0.656867f, 0.656795f, 0.656723f,
+ 0.656651f, 0.656578f, 0.656506f, 0.656434f, 0.656361f, 0.656289f, 0.656217f, 0.656144f,
+ 0.656072f, 0.656000f, 0.655927f, 0.655855f, 0.655782f, 0.655710f, 0.655638f, 0.655565f,
+ 0.655493f, 0.655420f, 0.655348f, 0.655276f, 0.655203f, 0.655131f, 0.655058f, 0.654986f,
+ 0.654913f, 0.654841f, 0.654769f, 0.654696f, 0.654624f, 0.654551f, 0.654479f, 0.654406f,
+ 0.654334f, 0.654261f, 0.654189f, 0.654116f, 0.654044f, 0.653971f, 0.653899f, 0.653826f,
+ 0.653753f, 0.653681f, 0.653608f, 0.653536f, 0.653463f, 0.653391f, 0.653318f, 0.653245f,
+ 0.653173f, 0.653100f, 0.653028f, 0.652955f, 0.652882f, 0.652810f, 0.652737f, 0.652665f,
+ 0.652592f, 0.652519f, 0.652447f, 0.652374f, 0.652301f, 0.652229f, 0.652156f, 0.652083f,
+ 0.652011f, 0.651938f, 0.651865f, 0.651792f, 0.651720f, 0.651647f, 0.651574f, 0.651502f,
+ 0.651429f, 0.651356f, 0.651283f, 0.651211f, 0.651138f, 0.651065f, 0.650992f, 0.650919f,
+ 0.650847f, 0.650774f, 0.650701f, 0.650628f, 0.650555f, 0.650483f, 0.650410f, 0.650337f,
+ 0.650264f, 0.650191f, 0.650119f, 0.650046f, 0.649973f, 0.649900f, 0.649827f, 0.649754f,
+ 0.649681f, 0.649608f, 0.649536f, 0.649463f, 0.649390f, 0.649317f, 0.649244f, 0.649171f,
+ 0.649098f, 0.649025f, 0.648952f, 0.648879f, 0.648806f, 0.648733f, 0.648660f, 0.648587f,
+ 0.648514f, 0.648441f, 0.648368f, 0.648295f, 0.648222f, 0.648149f, 0.648076f, 0.648003f,
+ 0.647930f, 0.647857f, 0.647784f, 0.647711f, 0.647638f, 0.647565f, 0.647492f, 0.647419f,
+ 0.647346f, 0.647273f, 0.647200f, 0.647127f, 0.647054f, 0.646981f, 0.646907f, 0.646834f,
+ 0.646761f, 0.646688f, 0.646615f, 0.646542f, 0.646469f, 0.646396f, 0.646322f, 0.646249f,
+ 0.646176f, 0.646103f, 0.646030f, 0.645956f, 0.645883f, 0.645810f, 0.645737f, 0.645664f,
+ 0.645590f, 0.645517f, 0.645444f, 0.645371f, 0.645298f, 0.645224f, 0.645151f, 0.645078f,
+ 0.645005f, 0.644931f, 0.644858f, 0.644785f, 0.644711f, 0.644638f, 0.644565f, 0.644492f,
+ 0.644418f, 0.644345f, 0.644272f, 0.644198f, 0.644125f, 0.644052f, 0.643978f, 0.643905f,
+ 0.643832f, 0.643758f, 0.643685f, 0.643611f, 0.643538f, 0.643465f, 0.643391f, 0.643318f,
+ 0.643245f, 0.643171f, 0.643098f, 0.643024f, 0.642951f, 0.642877f, 0.642804f, 0.642730f,
+ 0.642657f, 0.642584f, 0.642510f, 0.642437f, 0.642363f, 0.642290f, 0.642216f, 0.642143f,
+ 0.642069f, 0.641996f, 0.641922f, 0.641849f, 0.641775f, 0.641702f, 0.641628f, 0.641555f,
+ 0.641481f, 0.641407f, 0.641334f, 0.641260f, 0.641187f, 0.641113f, 0.641040f, 0.640966f,
+ 0.640892f, 0.640819f, 0.640745f, 0.640672f, 0.640598f, 0.640524f, 0.640451f, 0.640377f,
+ 0.640303f, 0.640230f, 0.640156f, 0.640083f, 0.640009f, 0.639935f, 0.639862f, 0.639788f,
+ 0.639714f, 0.639640f, 0.639567f, 0.639493f, 0.639419f, 0.639346f, 0.639272f, 0.639198f,
+ 0.639124f, 0.639051f, 0.638977f, 0.638903f, 0.638829f, 0.638756f, 0.638682f, 0.638608f,
+ 0.638534f, 0.638461f, 0.638387f, 0.638313f, 0.638239f, 0.638165f, 0.638092f, 0.638018f,
+ 0.637944f, 0.637870f, 0.637796f, 0.637722f, 0.637649f, 0.637575f, 0.637501f, 0.637427f,
+ 0.637353f, 0.637279f, 0.637205f, 0.637131f, 0.637057f, 0.636984f, 0.636910f, 0.636836f,
+ 0.636762f, 0.636688f, 0.636614f, 0.636540f, 0.636466f, 0.636392f, 0.636318f, 0.636244f,
+ 0.636170f, 0.636096f, 0.636022f, 0.635948f, 0.635874f, 0.635800f, 0.635726f, 0.635652f,
+ 0.635578f, 0.635504f, 0.635430f, 0.635356f, 0.635282f, 0.635208f, 0.635134f, 0.635060f,
+ 0.634986f, 0.634912f, 0.634838f, 0.634764f, 0.634690f, 0.634616f, 0.634542f, 0.634467f,
+ 0.634393f, 0.634319f, 0.634245f, 0.634171f, 0.634097f, 0.634023f, 0.633949f, 0.633874f,
+ 0.633800f, 0.633726f, 0.633652f, 0.633578f, 0.633504f, 0.633429f, 0.633355f, 0.633281f,
+ 0.633207f, 0.633133f, 0.633058f, 0.632984f, 0.632910f, 0.632836f, 0.632761f, 0.632687f,
+ 0.632613f, 0.632539f, 0.632464f, 0.632390f, 0.632316f, 0.632242f, 0.632167f, 0.632093f,
+ 0.632019f, 0.631944f, 0.631870f, 0.631796f, 0.631721f, 0.631647f, 0.631573f, 0.631499f,
+ 0.631424f, 0.631350f, 0.631275f, 0.631201f, 0.631127f, 0.631052f, 0.630978f, 0.630904f,
+ 0.630829f, 0.630755f, 0.630680f, 0.630606f, 0.630532f, 0.630457f, 0.630383f, 0.630308f,
+ 0.630234f, 0.630159f, 0.630085f, 0.630011f, 0.629936f, 0.629862f, 0.629787f, 0.629713f,
+ 0.629638f, 0.629564f, 0.629489f, 0.629415f, 0.629340f, 0.629266f, 0.629191f, 0.629117f,
+ 0.629042f, 0.628968f, 0.628893f, 0.628819f, 0.628744f, 0.628669f, 0.628595f, 0.628520f,
+ 0.628446f, 0.628371f, 0.628297f, 0.628222f, 0.628147f, 0.628073f, 0.627998f, 0.627924f,
+ 0.627849f, 0.627774f, 0.627700f, 0.627625f, 0.627550f, 0.627476f, 0.627401f, 0.627326f,
+ 0.627252f, 0.627177f, 0.627102f, 0.627028f, 0.626953f, 0.626878f, 0.626804f, 0.626729f,
+ 0.626654f, 0.626580f, 0.626505f, 0.626430f, 0.626355f, 0.626281f, 0.626206f, 0.626131f,
+ 0.626056f, 0.625982f, 0.625907f, 0.625832f, 0.625757f, 0.625683f, 0.625608f, 0.625533f,
+ 0.625458f, 0.625383f, 0.625309f, 0.625234f, 0.625159f, 0.625084f, 0.625009f, 0.624934f,
+ 0.624860f, 0.624785f, 0.624710f, 0.624635f, 0.624560f, 0.624485f, 0.624410f, 0.624335f,
+ 0.624260f, 0.624186f, 0.624111f, 0.624036f, 0.623961f, 0.623886f, 0.623811f, 0.623736f,
+ 0.623661f, 0.623586f, 0.623511f, 0.623436f, 0.623361f, 0.623286f, 0.623211f, 0.623136f,
+ 0.623061f, 0.622986f, 0.622911f, 0.622836f, 0.622761f, 0.622686f, 0.622611f, 0.622536f,
+ 0.622461f, 0.622386f, 0.622311f, 0.622236f, 0.622161f, 0.622086f, 0.622011f, 0.621936f,
+ 0.621861f, 0.621786f, 0.621711f, 0.621636f, 0.621560f, 0.621485f, 0.621410f, 0.621335f,
+ 0.621260f, 0.621185f, 0.621110f, 0.621035f, 0.620959f, 0.620884f, 0.620809f, 0.620734f,
+ 0.620659f, 0.620584f, 0.620508f, 0.620433f, 0.620358f, 0.620283f, 0.620208f, 0.620132f,
+ 0.620057f, 0.619982f, 0.619907f, 0.619832f, 0.619756f, 0.619681f, 0.619606f, 0.619531f,
+ 0.619455f, 0.619380f, 0.619305f, 0.619229f, 0.619154f, 0.619079f, 0.619004f, 0.618928f,
+ 0.618853f, 0.618778f, 0.618702f, 0.618627f, 0.618552f, 0.618476f, 0.618401f, 0.618326f,
+ 0.618250f, 0.618175f, 0.618100f, 0.618024f, 0.617949f, 0.617873f, 0.617798f, 0.617723f,
+ 0.617647f, 0.617572f, 0.617496f, 0.617421f, 0.617346f, 0.617270f, 0.617195f, 0.617119f,
+ 0.617044f, 0.616968f, 0.616893f, 0.616818f, 0.616742f, 0.616667f, 0.616591f, 0.616516f,
+ 0.616440f, 0.616365f, 0.616289f, 0.616214f, 0.616138f, 0.616063f, 0.615987f, 0.615912f,
+ 0.615836f, 0.615761f, 0.615685f, 0.615609f, 0.615534f, 0.615458f, 0.615383f, 0.615307f,
+ 0.615232f, 0.615156f, 0.615080f, 0.615005f, 0.614929f, 0.614854f, 0.614778f, 0.614702f,
+ 0.614627f, 0.614551f, 0.614475f, 0.614400f, 0.614324f, 0.614249f, 0.614173f, 0.614097f,
+ 0.614022f, 0.613946f, 0.613870f, 0.613795f, 0.613719f, 0.613643f, 0.613567f, 0.613492f,
+ 0.613416f, 0.613340f, 0.613265f, 0.613189f, 0.613113f, 0.613037f, 0.612962f, 0.612886f,
+ 0.612810f, 0.612734f, 0.612659f, 0.612583f, 0.612507f, 0.612431f, 0.612355f, 0.612280f,
+ 0.612204f, 0.612128f, 0.612052f, 0.611976f, 0.611901f, 0.611825f, 0.611749f, 0.611673f,
+ 0.611597f, 0.611521f, 0.611445f, 0.611370f, 0.611294f, 0.611218f, 0.611142f, 0.611066f,
+ 0.610990f, 0.610914f, 0.610838f, 0.610762f, 0.610687f, 0.610611f, 0.610535f, 0.610459f,
+ 0.610383f, 0.610307f, 0.610231f, 0.610155f, 0.610079f, 0.610003f, 0.609927f, 0.609851f,
+ 0.609775f, 0.609699f, 0.609623f, 0.609547f, 0.609471f, 0.609395f, 0.609319f, 0.609243f,
+ 0.609167f, 0.609091f, 0.609015f, 0.608939f, 0.608863f, 0.608787f, 0.608711f, 0.608635f,
+ 0.608559f, 0.608482f, 0.608406f, 0.608330f, 0.608254f, 0.608178f, 0.608102f, 0.608026f,
+ 0.607950f, 0.607874f, 0.607798f, 0.607721f, 0.607645f, 0.607569f, 0.607493f, 0.607417f,
+ 0.607341f, 0.607264f, 0.607188f, 0.607112f, 0.607036f, 0.606960f, 0.606884f, 0.606807f,
+ 0.606731f, 0.606655f, 0.606579f, 0.606502f, 0.606426f, 0.606350f, 0.606274f, 0.606198f,
+ 0.606121f, 0.606045f, 0.605969f, 0.605892f, 0.605816f, 0.605740f, 0.605664f, 0.605587f,
+ 0.605511f, 0.605435f, 0.605358f, 0.605282f, 0.605206f, 0.605129f, 0.605053f, 0.604977f,
+ 0.604900f, 0.604824f, 0.604748f, 0.604671f, 0.604595f, 0.604519f, 0.604442f, 0.604366f,
+ 0.604290f, 0.604213f, 0.604137f, 0.604060f, 0.603984f, 0.603908f, 0.603831f, 0.603755f,
+ 0.603678f, 0.603602f, 0.603525f, 0.603449f, 0.603372f, 0.603296f, 0.603220f, 0.603143f,
+ 0.603067f, 0.602990f, 0.602914f, 0.602837f, 0.602761f, 0.602684f, 0.602608f, 0.602531f,
+ 0.602455f, 0.602378f, 0.602302f, 0.602225f, 0.602148f, 0.602072f, 0.601995f, 0.601919f,
+ 0.601842f, 0.601766f, 0.601689f, 0.601613f, 0.601536f, 0.601459f, 0.601383f, 0.601306f,
+ 0.601230f, 0.601153f, 0.601076f, 0.601000f, 0.600923f, 0.600846f, 0.600770f, 0.600693f,
+ 0.600616f, 0.600540f, 0.600463f, 0.600387f, 0.600310f, 0.600233f, 0.600156f, 0.600080f,
+ 0.600003f, 0.599926f, 0.599850f, 0.599773f, 0.599696f, 0.599620f, 0.599543f, 0.599466f,
+ 0.599389f, 0.599313f, 0.599236f, 0.599159f, 0.599082f, 0.599006f, 0.598929f, 0.598852f,
+ 0.598775f, 0.598698f, 0.598622f, 0.598545f, 0.598468f, 0.598391f, 0.598314f, 0.598238f,
+ 0.598161f, 0.598084f, 0.598007f, 0.597930f, 0.597853f, 0.597776f, 0.597700f, 0.597623f,
+ 0.597546f, 0.597469f, 0.597392f, 0.597315f, 0.597238f, 0.597161f, 0.597085f, 0.597008f,
+ 0.596931f, 0.596854f, 0.596777f, 0.596700f, 0.596623f, 0.596546f, 0.596469f, 0.596392f,
+ 0.596315f, 0.596238f, 0.596161f, 0.596084f, 0.596007f, 0.595930f, 0.595853f, 0.595776f,
+ 0.595699f, 0.595622f, 0.595545f, 0.595468f, 0.595391f, 0.595314f, 0.595237f, 0.595160f,
+ 0.595083f, 0.595006f, 0.594929f, 0.594852f, 0.594775f, 0.594698f, 0.594621f, 0.594544f,
+ 0.594467f, 0.594389f, 0.594312f, 0.594235f, 0.594158f, 0.594081f, 0.594004f, 0.593927f,
+ 0.593850f, 0.593772f, 0.593695f, 0.593618f, 0.593541f, 0.593464f, 0.593387f, 0.593309f,
+ 0.593232f, 0.593155f, 0.593078f, 0.593001f, 0.592924f, 0.592846f, 0.592769f, 0.592692f,
+ 0.592615f, 0.592537f, 0.592460f, 0.592383f, 0.592306f, 0.592228f, 0.592151f, 0.592074f,
+ 0.591997f, 0.591919f, 0.591842f, 0.591765f, 0.591688f, 0.591610f, 0.591533f, 0.591456f,
+ 0.591378f, 0.591301f, 0.591224f, 0.591146f, 0.591069f, 0.590992f, 0.590914f, 0.590837f,
+ 0.590760f, 0.590682f, 0.590605f, 0.590528f, 0.590450f, 0.590373f, 0.590295f, 0.590218f,
+ 0.590141f, 0.590063f, 0.589986f, 0.589908f, 0.589831f, 0.589754f, 0.589676f, 0.589599f,
+ 0.589521f, 0.589444f, 0.589366f, 0.589289f, 0.589212f, 0.589134f, 0.589057f, 0.588979f,
+ 0.588902f, 0.588824f, 0.588747f, 0.588669f, 0.588592f, 0.588514f, 0.588437f, 0.588359f,
+ 0.588282f, 0.588204f, 0.588126f, 0.588049f, 0.587971f, 0.587894f, 0.587816f, 0.587739f,
+ 0.587661f, 0.587584f, 0.587506f, 0.587428f, 0.587351f, 0.587273f, 0.587196f, 0.587118f,
+ 0.587040f, 0.586963f, 0.586885f, 0.586808f, 0.586730f, 0.586652f, 0.586575f, 0.586497f,
+ 0.586419f, 0.586342f, 0.586264f, 0.586186f, 0.586109f, 0.586031f, 0.585953f, 0.585876f,
+ 0.585798f, 0.585720f, 0.585642f, 0.585565f, 0.585487f, 0.585409f, 0.585332f, 0.585254f,
+ 0.585176f, 0.585098f, 0.585021f, 0.584943f, 0.584865f, 0.584787f, 0.584710f, 0.584632f,
+ 0.584554f, 0.584476f, 0.584398f, 0.584321f, 0.584243f, 0.584165f, 0.584087f, 0.584009f,
+ 0.583931f, 0.583854f, 0.583776f, 0.583698f, 0.583620f, 0.583542f, 0.583464f, 0.583387f,
+ 0.583309f, 0.583231f, 0.583153f, 0.583075f, 0.582997f, 0.582919f, 0.582841f, 0.582763f,
+ 0.582685f, 0.582608f, 0.582530f, 0.582452f, 0.582374f, 0.582296f, 0.582218f, 0.582140f,
+ 0.582062f, 0.581984f, 0.581906f, 0.581828f, 0.581750f, 0.581672f, 0.581594f, 0.581516f,
+ 0.581438f, 0.581360f, 0.581282f, 0.581204f, 0.581126f, 0.581048f, 0.580970f, 0.580892f,
+ 0.580814f, 0.580736f, 0.580658f, 0.580580f, 0.580502f, 0.580424f, 0.580346f, 0.580267f,
+ 0.580189f, 0.580111f, 0.580033f, 0.579955f, 0.579877f, 0.579799f, 0.579721f, 0.579643f,
+ 0.579565f, 0.579486f, 0.579408f, 0.579330f, 0.579252f, 0.579174f, 0.579096f, 0.579018f,
+ 0.578939f, 0.578861f, 0.578783f, 0.578705f, 0.578627f, 0.578548f, 0.578470f, 0.578392f,
+ 0.578314f, 0.578236f, 0.578157f, 0.578079f, 0.578001f, 0.577923f, 0.577844f, 0.577766f,
+ 0.577688f, 0.577610f, 0.577531f, 0.577453f, 0.577375f, 0.577297f, 0.577218f, 0.577140f,
+ 0.577062f, 0.576983f, 0.576905f, 0.576827f, 0.576748f, 0.576670f, 0.576592f, 0.576513f,
+ 0.576435f, 0.576357f, 0.576278f, 0.576200f, 0.576122f, 0.576043f, 0.575965f, 0.575887f,
+ 0.575808f, 0.575730f, 0.575651f, 0.575573f, 0.575495f, 0.575416f, 0.575338f, 0.575259f,
+ 0.575181f, 0.575103f, 0.575024f, 0.574946f, 0.574867f, 0.574789f, 0.574710f, 0.574632f,
+ 0.574553f, 0.574475f, 0.574396f, 0.574318f, 0.574239f, 0.574161f, 0.574082f, 0.574004f,
+ 0.573925f, 0.573847f, 0.573768f, 0.573690f, 0.573611f, 0.573533f, 0.573454f, 0.573376f,
+ 0.573297f, 0.573219f, 0.573140f, 0.573061f, 0.572983f, 0.572904f, 0.572826f, 0.572747f,
+ 0.572669f, 0.572590f, 0.572511f, 0.572433f, 0.572354f, 0.572276f, 0.572197f, 0.572118f,
+ 0.572040f, 0.571961f, 0.571882f, 0.571804f, 0.571725f, 0.571646f, 0.571568f, 0.571489f,
+ 0.571410f, 0.571332f, 0.571253f, 0.571174f, 0.571096f, 0.571017f, 0.570938f, 0.570859f,
+ 0.570781f, 0.570702f, 0.570623f, 0.570545f, 0.570466f, 0.570387f, 0.570308f, 0.570230f,
+ 0.570151f, 0.570072f, 0.569993f, 0.569914f, 0.569836f, 0.569757f, 0.569678f, 0.569599f,
+ 0.569521f, 0.569442f, 0.569363f, 0.569284f, 0.569205f, 0.569126f, 0.569048f, 0.568969f,
+ 0.568890f, 0.568811f, 0.568732f, 0.568653f, 0.568574f, 0.568496f, 0.568417f, 0.568338f,
+ 0.568259f, 0.568180f, 0.568101f, 0.568022f, 0.567943f, 0.567864f, 0.567786f, 0.567707f,
+ 0.567628f, 0.567549f, 0.567470f, 0.567391f, 0.567312f, 0.567233f, 0.567154f, 0.567075f,
+ 0.566996f, 0.566917f, 0.566838f, 0.566759f, 0.566680f, 0.566601f, 0.566522f, 0.566443f,
+ 0.566364f, 0.566285f, 0.566206f, 0.566127f, 0.566048f, 0.565969f, 0.565890f, 0.565811f,
+ 0.565732f, 0.565653f, 0.565574f, 0.565495f, 0.565416f, 0.565336f, 0.565257f, 0.565178f,
+ 0.565099f, 0.565020f, 0.564941f, 0.564862f, 0.564783f, 0.564704f, 0.564624f, 0.564545f,
+ 0.564466f, 0.564387f, 0.564308f, 0.564229f, 0.564150f, 0.564070f, 0.563991f, 0.563912f,
+ 0.563833f, 0.563754f, 0.563675f, 0.563595f, 0.563516f, 0.563437f, 0.563358f, 0.563279f,
+ 0.563199f, 0.563120f, 0.563041f, 0.562962f, 0.562882f, 0.562803f, 0.562724f, 0.562645f,
+ 0.562565f, 0.562486f, 0.562407f, 0.562328f, 0.562248f, 0.562169f, 0.562090f, 0.562010f,
+ 0.561931f, 0.561852f, 0.561773f, 0.561693f, 0.561614f, 0.561535f, 0.561455f, 0.561376f,
+ 0.561297f, 0.561217f, 0.561138f, 0.561058f, 0.560979f, 0.560900f, 0.560820f, 0.560741f,
+ 0.560662f, 0.560582f, 0.560503f, 0.560423f, 0.560344f, 0.560265f, 0.560185f, 0.560106f,
+ 0.560026f, 0.559947f, 0.559867f, 0.559788f, 0.559709f, 0.559629f, 0.559550f, 0.559470f,
+ 0.559391f, 0.559311f, 0.559232f, 0.559152f, 0.559073f, 0.558993f, 0.558914f, 0.558834f,
+ 0.558755f, 0.558675f, 0.558596f, 0.558516f, 0.558437f, 0.558357f, 0.558278f, 0.558198f,
+ 0.558119f, 0.558039f, 0.557959f, 0.557880f, 0.557800f, 0.557721f, 0.557641f, 0.557562f,
+ 0.557482f, 0.557402f, 0.557323f, 0.557243f, 0.557164f, 0.557084f, 0.557004f, 0.556925f,
+ 0.556845f, 0.556765f, 0.556686f, 0.556606f, 0.556526f, 0.556447f, 0.556367f, 0.556287f,
+ 0.556208f, 0.556128f, 0.556048f, 0.555969f, 0.555889f, 0.555809f, 0.555730f, 0.555650f,
+ 0.555570f, 0.555490f, 0.555411f, 0.555331f, 0.555251f, 0.555172f, 0.555092f, 0.555012f,
+ 0.554932f, 0.554853f, 0.554773f, 0.554693f, 0.554613f, 0.554533f, 0.554454f, 0.554374f,
+ 0.554294f, 0.554214f, 0.554134f, 0.554055f, 0.553975f, 0.553895f, 0.553815f, 0.553735f,
+ 0.553656f, 0.553576f, 0.553496f, 0.553416f, 0.553336f, 0.553256f, 0.553176f, 0.553097f,
+ 0.553017f, 0.552937f, 0.552857f, 0.552777f, 0.552697f, 0.552617f, 0.552537f, 0.552457f,
+ 0.552378f, 0.552298f, 0.552218f, 0.552138f, 0.552058f, 0.551978f, 0.551898f, 0.551818f,
+ 0.551738f, 0.551658f, 0.551578f, 0.551498f, 0.551418f, 0.551338f, 0.551258f, 0.551178f,
+ 0.551098f, 0.551018f, 0.550938f, 0.550858f, 0.550778f, 0.550698f, 0.550618f, 0.550538f,
+ 0.550458f, 0.550378f, 0.550298f, 0.550218f, 0.550138f, 0.550058f, 0.549978f, 0.549898f,
+ 0.549818f, 0.549737f, 0.549657f, 0.549577f, 0.549497f, 0.549417f, 0.549337f, 0.549257f,
+ 0.549177f, 0.549097f, 0.549016f, 0.548936f, 0.548856f, 0.548776f, 0.548696f, 0.548616f,
+ 0.548536f, 0.548455f, 0.548375f, 0.548295f, 0.548215f, 0.548135f, 0.548054f, 0.547974f,
+ 0.547894f, 0.547814f, 0.547734f, 0.547653f, 0.547573f, 0.547493f, 0.547413f, 0.547333f,
+ 0.547252f, 0.547172f, 0.547092f, 0.547011f, 0.546931f, 0.546851f, 0.546771f, 0.546690f,
+ 0.546610f, 0.546530f, 0.546450f, 0.546369f, 0.546289f, 0.546209f, 0.546128f, 0.546048f,
+ 0.545968f, 0.545887f, 0.545807f, 0.545727f, 0.545646f, 0.545566f, 0.545486f, 0.545405f,
+ 0.545325f, 0.545245f, 0.545164f, 0.545084f, 0.545003f, 0.544923f, 0.544843f, 0.544762f,
+ 0.544682f, 0.544602f, 0.544521f, 0.544441f, 0.544360f, 0.544280f, 0.544199f, 0.544119f,
+ 0.544039f, 0.543958f, 0.543878f, 0.543797f, 0.543717f, 0.543636f, 0.543556f, 0.543475f,
+ 0.543395f, 0.543314f, 0.543234f, 0.543153f, 0.543073f, 0.542992f, 0.542912f, 0.542831f,
+ 0.542751f, 0.542670f, 0.542590f, 0.542509f, 0.542429f, 0.542348f, 0.542268f, 0.542187f,
+ 0.542106f, 0.542026f, 0.541945f, 0.541865f, 0.541784f, 0.541704f, 0.541623f, 0.541542f,
+ 0.541462f, 0.541381f, 0.541301f, 0.541220f, 0.541139f, 0.541059f, 0.540978f, 0.540897f,
+ 0.540817f, 0.540736f, 0.540655f, 0.540575f, 0.540494f, 0.540413f, 0.540333f, 0.540252f,
+ 0.540171f, 0.540091f, 0.540010f, 0.539929f, 0.539849f, 0.539768f, 0.539687f, 0.539607f,
+ 0.539526f, 0.539445f, 0.539364f, 0.539284f, 0.539203f, 0.539122f, 0.539041f, 0.538961f,
+ 0.538880f, 0.538799f, 0.538718f, 0.538638f, 0.538557f, 0.538476f, 0.538395f, 0.538314f,
+ 0.538234f, 0.538153f, 0.538072f, 0.537991f, 0.537910f, 0.537830f, 0.537749f, 0.537668f,
+ 0.537587f, 0.537506f, 0.537425f, 0.537345f, 0.537264f, 0.537183f, 0.537102f, 0.537021f,
+ 0.536940f, 0.536859f, 0.536778f, 0.536698f, 0.536617f, 0.536536f, 0.536455f, 0.536374f,
+ 0.536293f, 0.536212f, 0.536131f, 0.536050f, 0.535969f, 0.535888f, 0.535807f, 0.535726f,
+ 0.535645f, 0.535564f, 0.535484f, 0.535403f, 0.535322f, 0.535241f, 0.535160f, 0.535079f,
+ 0.534998f, 0.534917f, 0.534836f, 0.534755f, 0.534674f, 0.534593f, 0.534512f, 0.534431f,
+ 0.534349f, 0.534268f, 0.534187f, 0.534106f, 0.534025f, 0.533944f, 0.533863f, 0.533782f,
+ 0.533701f, 0.533620f, 0.533539f, 0.533458f, 0.533377f, 0.533296f, 0.533214f, 0.533133f,
+ 0.533052f, 0.532971f, 0.532890f, 0.532809f, 0.532728f, 0.532647f, 0.532565f, 0.532484f,
+ 0.532403f, 0.532322f, 0.532241f, 0.532160f, 0.532078f, 0.531997f, 0.531916f, 0.531835f,
+ 0.531754f, 0.531673f, 0.531591f, 0.531510f, 0.531429f, 0.531348f, 0.531266f, 0.531185f,
+ 0.531104f, 0.531023f, 0.530942f, 0.530860f, 0.530779f, 0.530698f, 0.530617f, 0.530535f,
+ 0.530454f, 0.530373f, 0.530291f, 0.530210f, 0.530129f, 0.530048f, 0.529966f, 0.529885f,
+ 0.529804f, 0.529722f, 0.529641f, 0.529560f, 0.529478f, 0.529397f, 0.529316f, 0.529234f,
+ 0.529153f, 0.529072f, 0.528990f, 0.528909f, 0.528828f, 0.528746f, 0.528665f, 0.528583f,
+ 0.528502f, 0.528421f, 0.528339f, 0.528258f, 0.528176f, 0.528095f, 0.528014f, 0.527932f,
+ 0.527851f, 0.527769f, 0.527688f, 0.527606f, 0.527525f, 0.527444f, 0.527362f, 0.527281f,
+ 0.527199f, 0.527118f, 0.527036f, 0.526955f, 0.526873f, 0.526792f, 0.526710f, 0.526629f,
+ 0.526547f, 0.526466f, 0.526384f, 0.526303f, 0.526221f, 0.526140f, 0.526058f, 0.525977f,
+ 0.525895f, 0.525813f, 0.525732f, 0.525650f, 0.525569f, 0.525487f, 0.525406f, 0.525324f,
+ 0.525243f, 0.525161f, 0.525079f, 0.524998f, 0.524916f, 0.524835f, 0.524753f, 0.524671f,
+ 0.524590f, 0.524508f, 0.524426f, 0.524345f, 0.524263f, 0.524181f, 0.524100f, 0.524018f,
+ 0.523937f, 0.523855f, 0.523773f, 0.523692f, 0.523610f, 0.523528f, 0.523447f, 0.523365f,
+ 0.523283f, 0.523201f, 0.523120f, 0.523038f, 0.522956f, 0.522875f, 0.522793f, 0.522711f,
+ 0.522629f, 0.522548f, 0.522466f, 0.522384f, 0.522302f, 0.522221f, 0.522139f, 0.522057f,
+ 0.521975f, 0.521894f, 0.521812f, 0.521730f, 0.521648f, 0.521566f, 0.521485f, 0.521403f,
+ 0.521321f, 0.521239f, 0.521157f, 0.521075f, 0.520994f, 0.520912f, 0.520830f, 0.520748f,
+ 0.520666f, 0.520584f, 0.520503f, 0.520421f, 0.520339f, 0.520257f, 0.520175f, 0.520093f,
+ 0.520011f, 0.519929f, 0.519848f, 0.519766f, 0.519684f, 0.519602f, 0.519520f, 0.519438f,
+ 0.519356f, 0.519274f, 0.519192f, 0.519110f, 0.519028f, 0.518946f, 0.518864f, 0.518782f,
+ 0.518700f, 0.518618f, 0.518536f, 0.518454f, 0.518372f, 0.518291f, 0.518209f, 0.518126f,
+ 0.518045f, 0.517963f, 0.517880f, 0.517798f, 0.517716f, 0.517634f, 0.517552f, 0.517470f,
+ 0.517388f, 0.517306f, 0.517224f, 0.517142f, 0.517060f, 0.516978f, 0.516896f, 0.516814f,
+ 0.516732f, 0.516650f, 0.516568f, 0.516486f, 0.516403f, 0.516321f, 0.516239f, 0.516157f,
+ 0.516075f, 0.515993f, 0.515911f, 0.515829f, 0.515746f, 0.515664f, 0.515582f, 0.515500f,
+ 0.515418f, 0.515336f, 0.515254f, 0.515171f, 0.515089f, 0.515007f, 0.514925f, 0.514843f,
+ 0.514760f, 0.514678f, 0.514596f, 0.514514f, 0.514432f, 0.514349f, 0.514267f, 0.514185f,
+ 0.514103f, 0.514021f, 0.513938f, 0.513856f, 0.513774f, 0.513692f, 0.513609f, 0.513527f,
+ 0.513445f, 0.513362f, 0.513280f, 0.513198f, 0.513116f, 0.513033f, 0.512951f, 0.512869f,
+ 0.512786f, 0.512704f, 0.512622f, 0.512539f, 0.512457f, 0.512375f, 0.512292f, 0.512210f,
+ 0.512128f, 0.512045f, 0.511963f, 0.511881f, 0.511798f, 0.511716f, 0.511634f, 0.511551f,
+ 0.511469f, 0.511386f, 0.511304f, 0.511222f, 0.511139f, 0.511057f, 0.510974f, 0.510892f,
+ 0.510810f, 0.510727f, 0.510645f, 0.510562f, 0.510480f, 0.510397f, 0.510315f, 0.510233f,
+ 0.510150f, 0.510068f, 0.509985f, 0.509903f, 0.509820f, 0.509738f, 0.509655f, 0.509573f,
+ 0.509490f, 0.509408f, 0.509325f, 0.509243f, 0.509160f, 0.509078f, 0.508995f, 0.508913f,
+ 0.508830f, 0.508748f, 0.508665f, 0.508583f, 0.508500f, 0.508417f, 0.508335f, 0.508252f,
+ 0.508170f, 0.508087f, 0.508005f, 0.507922f, 0.507839f, 0.507757f, 0.507674f, 0.507592f,
+ 0.507509f, 0.507426f, 0.507344f, 0.507261f, 0.507179f, 0.507096f, 0.507013f, 0.506931f,
+ 0.506848f, 0.506765f, 0.506683f, 0.506600f, 0.506517f, 0.506435f, 0.506352f, 0.506269f,
+ 0.506187f, 0.506104f, 0.506021f, 0.505939f, 0.505856f, 0.505773f, 0.505690f, 0.505608f,
+ 0.505525f, 0.505442f, 0.505360f, 0.505277f, 0.505194f, 0.505111f, 0.505029f, 0.504946f,
+ 0.504863f, 0.504780f, 0.504698f, 0.504615f, 0.504532f, 0.504449f, 0.504366f, 0.504284f,
+ 0.504201f, 0.504118f, 0.504035f, 0.503953f, 0.503870f, 0.503787f, 0.503704f, 0.503621f,
+ 0.503538f, 0.503456f, 0.503373f, 0.503290f, 0.503207f, 0.503124f, 0.503041f, 0.502958f,
+ 0.502876f, 0.502793f, 0.502710f, 0.502627f, 0.502544f, 0.502461f, 0.502378f, 0.502295f,
+ 0.502212f, 0.502130f, 0.502047f, 0.501964f, 0.501881f, 0.501798f, 0.501715f, 0.501632f,
+ 0.501549f, 0.501466f, 0.501383f, 0.501300f, 0.501217f, 0.501134f, 0.501051f, 0.500968f,
+ 0.500885f, 0.500802f, 0.500719f, 0.500636f, 0.500553f, 0.500470f, 0.500387f, 0.500304f,
+ 0.500221f, 0.500138f, 0.500055f, 0.499972f, 0.499889f, 0.499806f, 0.499723f, 0.499640f,
+ 0.499557f, 0.499474f, 0.499391f, 0.499308f, 0.499225f, 0.499142f, 0.499059f, 0.498976f,
+ 0.498893f, 0.498809f, 0.498726f, 0.498643f, 0.498560f, 0.498477f, 0.498394f, 0.498311f,
+ 0.498228f, 0.498145f, 0.498061f, 0.497978f, 0.497895f, 0.497812f, 0.497729f, 0.497646f,
+ 0.497562f, 0.497479f, 0.497396f, 0.497313f, 0.497230f, 0.497147f, 0.497063f, 0.496980f,
+ 0.496897f, 0.496814f, 0.496731f, 0.496647f, 0.496564f, 0.496481f, 0.496398f, 0.496315f,
+ 0.496231f, 0.496148f, 0.496065f, 0.495982f, 0.495898f, 0.495815f, 0.495732f, 0.495649f,
+ 0.495565f, 0.495482f, 0.495399f, 0.495315f, 0.495232f, 0.495149f, 0.495066f, 0.494982f,
+ 0.494899f, 0.494816f, 0.494732f, 0.494649f, 0.494566f, 0.494482f, 0.494399f, 0.494316f,
+ 0.494232f, 0.494149f, 0.494066f, 0.493982f, 0.493899f, 0.493816f, 0.493732f, 0.493649f,
+ 0.493565f, 0.493482f, 0.493399f, 0.493315f, 0.493232f, 0.493148f, 0.493065f, 0.492982f,
+ 0.492898f, 0.492815f, 0.492731f, 0.492648f, 0.492564f, 0.492481f, 0.492398f, 0.492314f,
+ 0.492231f, 0.492147f, 0.492064f, 0.491980f, 0.491897f, 0.491813f, 0.491730f, 0.491646f,
+ 0.491563f, 0.491479f, 0.491396f, 0.491312f, 0.491229f, 0.491145f, 0.491062f, 0.490978f,
+ 0.490895f, 0.490811f, 0.490728f, 0.490644f, 0.490561f, 0.490477f, 0.490394f, 0.490310f,
+ 0.490226f, 0.490143f, 0.490059f, 0.489976f, 0.489892f, 0.489809f, 0.489725f, 0.489641f,
+ 0.489558f, 0.489474f, 0.489391f, 0.489307f, 0.489223f, 0.489140f, 0.489056f, 0.488973f,
+ 0.488889f, 0.488805f, 0.488722f, 0.488638f, 0.488554f, 0.488471f, 0.488387f, 0.488303f,
+ 0.488220f, 0.488136f, 0.488052f, 0.487969f, 0.487885f, 0.487801f, 0.487718f, 0.487634f,
+ 0.487550f, 0.487466f, 0.487383f, 0.487299f, 0.487215f, 0.487132f, 0.487048f, 0.486964f,
+ 0.486880f, 0.486797f, 0.486713f, 0.486629f, 0.486545f, 0.486462f, 0.486378f, 0.486294f,
+ 0.486210f, 0.486126f, 0.486043f, 0.485959f, 0.485875f, 0.485791f, 0.485708f, 0.485624f,
+ 0.485540f, 0.485456f, 0.485372f, 0.485288f, 0.485205f, 0.485121f, 0.485037f, 0.484953f,
+ 0.484869f, 0.484785f, 0.484702f, 0.484618f, 0.484534f, 0.484450f, 0.484366f, 0.484282f,
+ 0.484198f, 0.484114f, 0.484031f, 0.483947f, 0.483863f, 0.483779f, 0.483695f, 0.483611f,
+ 0.483527f, 0.483443f, 0.483359f, 0.483275f, 0.483191f, 0.483107f, 0.483023f, 0.482940f,
+ 0.482856f, 0.482772f, 0.482688f, 0.482604f, 0.482520f, 0.482436f, 0.482352f, 0.482268f,
+ 0.482184f, 0.482100f, 0.482016f, 0.481932f, 0.481848f, 0.481764f, 0.481680f, 0.481596f,
+ 0.481512f, 0.481428f, 0.481344f, 0.481260f, 0.481176f, 0.481091f, 0.481007f, 0.480923f,
+ 0.480839f, 0.480755f, 0.480671f, 0.480587f, 0.480503f, 0.480419f, 0.480335f, 0.480251f,
+ 0.480167f, 0.480083f, 0.479998f, 0.479914f, 0.479830f, 0.479746f, 0.479662f, 0.479578f,
+ 0.479494f, 0.479410f, 0.479325f, 0.479241f, 0.479157f, 0.479073f, 0.478989f, 0.478905f,
+ 0.478821f, 0.478736f, 0.478652f, 0.478568f, 0.478484f, 0.478400f, 0.478315f, 0.478231f,
+ 0.478147f, 0.478063f, 0.477979f, 0.477894f, 0.477810f, 0.477726f, 0.477642f, 0.477558f,
+ 0.477473f, 0.477389f, 0.477305f, 0.477221f, 0.477136f, 0.477052f, 0.476968f, 0.476884f,
+ 0.476799f, 0.476715f, 0.476631f, 0.476546f, 0.476462f, 0.476378f, 0.476294f, 0.476209f,
+ 0.476125f, 0.476041f, 0.475956f, 0.475872f, 0.475788f, 0.475703f, 0.475619f, 0.475535f,
+ 0.475450f, 0.475366f, 0.475282f, 0.475197f, 0.475113f, 0.475029f, 0.474944f, 0.474860f,
+ 0.474775f, 0.474691f, 0.474607f, 0.474522f, 0.474438f, 0.474353f, 0.474269f, 0.474185f,
+ 0.474100f, 0.474016f, 0.473931f, 0.473847f, 0.473763f, 0.473678f, 0.473594f, 0.473509f,
+ 0.473425f, 0.473340f, 0.473256f, 0.473171f, 0.473087f, 0.473002f, 0.472918f, 0.472834f,
+ 0.472749f, 0.472665f, 0.472580f, 0.472496f, 0.472411f, 0.472327f, 0.472242f, 0.472158f,
+ 0.472073f, 0.471988f, 0.471904f, 0.471819f, 0.471735f, 0.471650f, 0.471566f, 0.471481f,
+ 0.471397f, 0.471312f, 0.471228f, 0.471143f, 0.471058f, 0.470974f, 0.470889f, 0.470805f,
+ 0.470720f, 0.470636f, 0.470551f, 0.470466f, 0.470382f, 0.470297f, 0.470213f, 0.470128f,
+ 0.470043f, 0.469959f, 0.469874f, 0.469789f, 0.469705f, 0.469620f, 0.469536f, 0.469451f,
+ 0.469366f, 0.469282f, 0.469197f, 0.469112f, 0.469028f, 0.468943f, 0.468858f, 0.468774f,
+ 0.468689f, 0.468604f, 0.468519f, 0.468435f, 0.468350f, 0.468265f, 0.468181f, 0.468096f,
+ 0.468011f, 0.467926f, 0.467842f, 0.467757f, 0.467672f, 0.467587f, 0.467503f, 0.467418f,
+ 0.467333f, 0.467248f, 0.467164f, 0.467079f, 0.466994f, 0.466909f, 0.466825f, 0.466740f,
+ 0.466655f, 0.466570f, 0.466485f, 0.466401f, 0.466316f, 0.466231f, 0.466146f, 0.466061f,
+ 0.465977f, 0.465892f, 0.465807f, 0.465722f, 0.465637f, 0.465552f, 0.465467f, 0.465383f,
+ 0.465298f, 0.465213f, 0.465128f, 0.465043f, 0.464958f, 0.464873f, 0.464788f, 0.464704f,
+ 0.464619f, 0.464534f, 0.464449f, 0.464364f, 0.464279f, 0.464194f, 0.464109f, 0.464024f,
+ 0.463939f, 0.463854f, 0.463769f, 0.463685f, 0.463600f, 0.463515f, 0.463430f, 0.463345f,
+ 0.463260f, 0.463175f, 0.463090f, 0.463005f, 0.462920f, 0.462835f, 0.462750f, 0.462665f,
+ 0.462580f, 0.462495f, 0.462410f, 0.462325f, 0.462240f, 0.462155f, 0.462070f, 0.461985f,
+ 0.461900f, 0.461815f, 0.461730f, 0.461645f, 0.461560f, 0.461475f, 0.461390f, 0.461304f,
+ 0.461219f, 0.461134f, 0.461049f, 0.460964f, 0.460879f, 0.460794f, 0.460709f, 0.460624f,
+ 0.460539f, 0.460454f, 0.460369f, 0.460283f, 0.460198f, 0.460113f, 0.460028f, 0.459943f,
+ 0.459858f, 0.459773f, 0.459687f, 0.459602f, 0.459517f, 0.459432f, 0.459347f, 0.459262f,
+ 0.459177f, 0.459091f, 0.459006f, 0.458921f, 0.458836f, 0.458751f, 0.458665f, 0.458580f,
+ 0.458495f, 0.458410f, 0.458325f, 0.458239f, 0.458154f, 0.458069f, 0.457984f, 0.457899f,
+ 0.457813f, 0.457728f, 0.457643f, 0.457558f, 0.457472f, 0.457387f, 0.457302f, 0.457217f,
+ 0.457131f, 0.457046f, 0.456961f, 0.456875f, 0.456790f, 0.456705f, 0.456620f, 0.456534f,
+ 0.456449f, 0.456364f, 0.456278f, 0.456193f, 0.456108f, 0.456022f, 0.455937f, 0.455852f,
+ 0.455766f, 0.455681f, 0.455596f, 0.455510f, 0.455425f, 0.455340f, 0.455254f, 0.455169f,
+ 0.455084f, 0.454998f, 0.454913f, 0.454827f, 0.454742f, 0.454657f, 0.454571f, 0.454486f,
+ 0.454400f, 0.454315f, 0.454230f, 0.454144f, 0.454059f, 0.453973f, 0.453888f, 0.453803f,
+ 0.453717f, 0.453632f, 0.453546f, 0.453461f, 0.453375f, 0.453290f, 0.453204f, 0.453119f,
+ 0.453033f, 0.452948f, 0.452863f, 0.452777f, 0.452692f, 0.452606f, 0.452521f, 0.452435f,
+ 0.452350f, 0.452264f, 0.452179f, 0.452093f, 0.452008f, 0.451922f, 0.451836f, 0.451751f,
+ 0.451665f, 0.451580f, 0.451494f, 0.451409f, 0.451323f, 0.451238f, 0.451152f, 0.451067f,
+ 0.450981f, 0.450895f, 0.450810f, 0.450724f, 0.450639f, 0.450553f, 0.450467f, 0.450382f,
+ 0.450296f, 0.450211f, 0.450125f, 0.450039f, 0.449954f, 0.449868f, 0.449783f, 0.449697f,
+ 0.449611f, 0.449526f, 0.449440f, 0.449354f, 0.449269f, 0.449183f, 0.449097f, 0.449012f,
+ 0.448926f, 0.448840f, 0.448755f, 0.448669f, 0.448583f, 0.448498f, 0.448412f, 0.448326f,
+ 0.448241f, 0.448155f, 0.448069f, 0.447983f, 0.447898f, 0.447812f, 0.447726f, 0.447641f,
+ 0.447555f, 0.447469f, 0.447383f, 0.447298f, 0.447212f, 0.447126f, 0.447040f, 0.446955f,
+ 0.446869f, 0.446783f, 0.446697f, 0.446612f, 0.446526f, 0.446440f, 0.446354f, 0.446268f,
+ 0.446183f, 0.446097f, 0.446011f, 0.445925f, 0.445839f, 0.445754f, 0.445668f, 0.445582f,
+ 0.445496f, 0.445410f, 0.445324f, 0.445239f, 0.445153f, 0.445067f, 0.444981f, 0.444895f,
+ 0.444809f, 0.444723f, 0.444637f, 0.444552f, 0.444466f, 0.444380f, 0.444294f, 0.444208f,
+ 0.444122f, 0.444036f, 0.443950f, 0.443864f, 0.443779f, 0.443693f, 0.443607f, 0.443521f,
+ 0.443435f, 0.443349f, 0.443263f, 0.443177f, 0.443091f, 0.443005f, 0.442919f, 0.442833f,
+ 0.442747f, 0.442661f, 0.442575f, 0.442489f, 0.442403f, 0.442317f, 0.442231f, 0.442145f,
+ 0.442059f, 0.441973f, 0.441887f, 0.441801f, 0.441715f, 0.441629f, 0.441543f, 0.441457f,
+ 0.441371f, 0.441285f, 0.441199f, 0.441113f, 0.441027f, 0.440941f, 0.440855f, 0.440769f,
+ 0.440683f, 0.440597f, 0.440511f, 0.440425f, 0.440339f, 0.440253f, 0.440166f, 0.440080f,
+ 0.439994f, 0.439908f, 0.439822f, 0.439736f, 0.439650f, 0.439564f, 0.439478f, 0.439392f,
+ 0.439305f, 0.439219f, 0.439133f, 0.439047f, 0.438961f, 0.438875f, 0.438789f, 0.438702f,
+ 0.438616f, 0.438530f, 0.438444f, 0.438358f, 0.438272f, 0.438185f, 0.438099f, 0.438013f,
+ 0.437927f, 0.437841f, 0.437754f, 0.437668f, 0.437582f, 0.437496f, 0.437410f, 0.437323f,
+ 0.437237f, 0.437151f, 0.437065f, 0.436978f, 0.436892f, 0.436806f, 0.436720f, 0.436633f,
+ 0.436547f, 0.436461f, 0.436375f, 0.436288f, 0.436202f, 0.436116f, 0.436030f, 0.435943f,
+ 0.435857f, 0.435771f, 0.435685f, 0.435598f, 0.435512f, 0.435426f, 0.435339f, 0.435253f,
+ 0.435167f, 0.435080f, 0.434994f, 0.434908f, 0.434821f, 0.434735f, 0.434649f, 0.434562f,
+ 0.434476f, 0.434390f, 0.434303f, 0.434217f, 0.434131f, 0.434044f, 0.433958f, 0.433871f,
+ 0.433785f, 0.433699f, 0.433612f, 0.433526f, 0.433439f, 0.433353f, 0.433267f, 0.433180f,
+ 0.433094f, 0.433007f, 0.432921f, 0.432835f, 0.432748f, 0.432662f, 0.432575f, 0.432489f,
+ 0.432402f, 0.432316f, 0.432229f, 0.432143f, 0.432057f, 0.431970f, 0.431884f, 0.431797f,
+ 0.431711f, 0.431624f, 0.431538f, 0.431451f, 0.431365f, 0.431278f, 0.431192f, 0.431105f,
+ 0.431019f, 0.430932f, 0.430846f, 0.430759f, 0.430673f, 0.430586f, 0.430500f, 0.430413f,
+ 0.430326f, 0.430240f, 0.430153f, 0.430067f, 0.429980f, 0.429894f, 0.429807f, 0.429721f,
+ 0.429634f, 0.429547f, 0.429461f, 0.429374f, 0.429288f, 0.429201f, 0.429114f, 0.429028f,
+ 0.428941f, 0.428855f, 0.428768f, 0.428681f, 0.428595f, 0.428508f, 0.428422f, 0.428335f,
+ 0.428248f, 0.428162f, 0.428075f, 0.427988f, 0.427902f, 0.427815f, 0.427728f, 0.427642f,
+ 0.427555f, 0.427468f, 0.427382f, 0.427295f, 0.427208f, 0.427122f, 0.427035f, 0.426948f,
+ 0.426862f, 0.426775f, 0.426688f, 0.426601f, 0.426515f, 0.426428f, 0.426341f, 0.426255f,
+ 0.426168f, 0.426081f, 0.425994f, 0.425908f, 0.425821f, 0.425734f, 0.425647f, 0.425561f,
+ 0.425474f, 0.425387f, 0.425300f, 0.425214f, 0.425127f, 0.425040f, 0.424953f, 0.424866f,
+ 0.424780f, 0.424693f, 0.424606f, 0.424519f, 0.424432f, 0.424346f, 0.424259f, 0.424172f,
+ 0.424085f, 0.423998f, 0.423912f, 0.423825f, 0.423738f, 0.423651f, 0.423564f, 0.423477f,
+ 0.423390f, 0.423304f, 0.423217f, 0.423130f, 0.423043f, 0.422956f, 0.422869f, 0.422782f,
+ 0.422695f, 0.422609f, 0.422522f, 0.422435f, 0.422348f, 0.422261f, 0.422174f, 0.422087f,
+ 0.422000f, 0.421913f, 0.421826f, 0.421739f, 0.421653f, 0.421566f, 0.421479f, 0.421392f,
+ 0.421305f, 0.421218f, 0.421131f, 0.421044f, 0.420957f, 0.420870f, 0.420783f, 0.420696f,
+ 0.420609f, 0.420522f, 0.420435f, 0.420348f, 0.420261f, 0.420174f, 0.420087f, 0.420000f,
+ 0.419913f, 0.419826f, 0.419739f, 0.419652f, 0.419565f, 0.419478f, 0.419391f, 0.419304f,
+ 0.419217f, 0.419130f, 0.419043f, 0.418956f, 0.418869f, 0.418782f, 0.418695f, 0.418608f,
+ 0.418520f, 0.418433f, 0.418346f, 0.418259f, 0.418172f, 0.418085f, 0.417998f, 0.417911f,
+ 0.417824f, 0.417737f, 0.417650f, 0.417562f, 0.417475f, 0.417388f, 0.417301f, 0.417214f,
+ 0.417127f, 0.417040f, 0.416952f, 0.416865f, 0.416778f, 0.416691f, 0.416604f, 0.416517f,
+ 0.416430f, 0.416342f, 0.416255f, 0.416168f, 0.416081f, 0.415994f, 0.415906f, 0.415819f,
+ 0.415732f, 0.415645f, 0.415558f, 0.415471f, 0.415383f, 0.415296f, 0.415209f, 0.415122f,
+ 0.415034f, 0.414947f, 0.414860f, 0.414773f, 0.414685f, 0.414598f, 0.414511f, 0.414424f,
+ 0.414337f, 0.414249f, 0.414162f, 0.414075f, 0.413987f, 0.413900f, 0.413813f, 0.413726f,
+ 0.413638f, 0.413551f, 0.413464f, 0.413376f, 0.413289f, 0.413202f, 0.413115f, 0.413027f,
+ 0.412940f, 0.412853f, 0.412765f, 0.412678f, 0.412591f, 0.412503f, 0.412416f, 0.412329f,
+ 0.412241f, 0.412154f, 0.412067f, 0.411979f, 0.411892f, 0.411804f, 0.411717f, 0.411630f,
+ 0.411542f, 0.411455f, 0.411368f, 0.411280f, 0.411193f, 0.411105f, 0.411018f, 0.410931f,
+ 0.410843f, 0.410756f, 0.410668f, 0.410581f, 0.410493f, 0.410406f, 0.410319f, 0.410231f,
+ 0.410144f, 0.410056f, 0.409969f, 0.409881f, 0.409794f, 0.409707f, 0.409619f, 0.409532f,
+ 0.409444f, 0.409357f, 0.409269f, 0.409182f, 0.409094f, 0.409007f, 0.408919f, 0.408832f,
+ 0.408744f, 0.408657f, 0.408569f, 0.408482f, 0.408394f, 0.408307f, 0.408219f, 0.408132f,
+ 0.408044f, 0.407957f, 0.407869f, 0.407782f, 0.407694f, 0.407606f, 0.407519f, 0.407431f,
+ 0.407344f, 0.407256f, 0.407169f, 0.407081f, 0.406994f, 0.406906f, 0.406818f, 0.406731f,
+ 0.406643f, 0.406556f, 0.406468f, 0.406380f, 0.406293f, 0.406205f, 0.406118f, 0.406030f,
+ 0.405942f, 0.405855f, 0.405767f, 0.405680f, 0.405592f, 0.405504f, 0.405417f, 0.405329f,
+ 0.405241f, 0.405154f, 0.405066f, 0.404978f, 0.404891f, 0.404803f, 0.404715f, 0.404628f,
+ 0.404540f, 0.404452f, 0.404365f, 0.404277f, 0.404189f, 0.404102f, 0.404014f, 0.403926f,
+ 0.403838f, 0.403751f, 0.403663f, 0.403575f, 0.403488f, 0.403400f, 0.403312f, 0.403224f,
+ 0.403137f, 0.403049f, 0.402961f, 0.402873f, 0.402786f, 0.402698f, 0.402610f, 0.402522f,
+ 0.402435f, 0.402347f, 0.402259f, 0.402171f, 0.402084f, 0.401996f, 0.401908f, 0.401820f,
+ 0.401732f, 0.401645f, 0.401557f, 0.401469f, 0.401381f, 0.401293f, 0.401206f, 0.401118f,
+ 0.401030f, 0.400942f, 0.400854f, 0.400766f, 0.400679f, 0.400591f, 0.400503f, 0.400415f,
+ 0.400327f, 0.400239f, 0.400151f, 0.400064f, 0.399976f, 0.399888f, 0.399800f, 0.399712f,
+ 0.399624f, 0.399536f, 0.399448f, 0.399361f, 0.399273f, 0.399185f, 0.399097f, 0.399009f,
+ 0.398921f, 0.398833f, 0.398745f, 0.398657f, 0.398569f, 0.398481f, 0.398393f, 0.398306f,
+ 0.398218f, 0.398130f, 0.398042f, 0.397954f, 0.397866f, 0.397778f, 0.397690f, 0.397602f,
+ 0.397514f, 0.397426f, 0.397338f, 0.397250f, 0.397162f, 0.397074f, 0.396986f, 0.396898f,
+ 0.396810f, 0.396722f, 0.396634f, 0.396546f, 0.396458f, 0.396370f, 0.396282f, 0.396194f,
+ 0.396106f, 0.396018f, 0.395930f, 0.395842f, 0.395754f, 0.395666f, 0.395578f, 0.395490f,
+ 0.395401f, 0.395313f, 0.395225f, 0.395137f, 0.395049f, 0.394961f, 0.394873f, 0.394785f,
+ 0.394697f, 0.394609f, 0.394521f, 0.394433f, 0.394344f, 0.394256f, 0.394168f, 0.394080f,
+ 0.393992f, 0.393904f, 0.393816f, 0.393728f, 0.393640f, 0.393551f, 0.393463f, 0.393375f,
+ 0.393287f, 0.393199f, 0.393111f, 0.393023f, 0.392934f, 0.392846f, 0.392758f, 0.392670f,
+ 0.392582f, 0.392493f, 0.392405f, 0.392317f, 0.392229f, 0.392141f, 0.392053f, 0.391964f,
+ 0.391876f, 0.391788f, 0.391700f, 0.391612f, 0.391523f, 0.391435f, 0.391347f, 0.391259f,
+ 0.391170f, 0.391082f, 0.390994f, 0.390906f, 0.390817f, 0.390729f, 0.390641f, 0.390553f,
+ 0.390464f, 0.390376f, 0.390288f, 0.390200f, 0.390111f, 0.390023f, 0.389935f, 0.389846f,
+ 0.389758f, 0.389670f, 0.389582f, 0.389493f, 0.389405f, 0.389317f, 0.389228f, 0.389140f,
+ 0.389052f, 0.388963f, 0.388875f, 0.388787f, 0.388698f, 0.388610f, 0.388522f, 0.388433f,
+ 0.388345f, 0.388257f, 0.388168f, 0.388080f, 0.387992f, 0.387903f, 0.387815f, 0.387727f,
+ 0.387638f, 0.387550f, 0.387461f, 0.387373f, 0.387285f, 0.387196f, 0.387108f, 0.387019f,
+ 0.386931f, 0.386843f, 0.386754f, 0.386666f, 0.386577f, 0.386489f, 0.386400f, 0.386312f,
+ 0.386224f, 0.386135f, 0.386047f, 0.385958f, 0.385870f, 0.385781f, 0.385693f, 0.385605f,
+ 0.385516f, 0.385428f, 0.385339f, 0.385251f, 0.385162f, 0.385074f, 0.384985f, 0.384897f,
+ 0.384808f, 0.384720f, 0.384631f, 0.384543f, 0.384454f, 0.384366f, 0.384277f, 0.384189f,
+ 0.384100f, 0.384012f, 0.383923f, 0.383835f, 0.383746f, 0.383658f, 0.383569f, 0.383480f,
+ 0.383392f, 0.383303f, 0.383215f, 0.383126f, 0.383038f, 0.382949f, 0.382861f, 0.382772f,
+ 0.382683f, 0.382595f, 0.382506f, 0.382418f, 0.382329f, 0.382241f, 0.382152f, 0.382063f,
+ 0.381975f, 0.381886f, 0.381797f, 0.381709f, 0.381620f, 0.381532f, 0.381443f, 0.381354f,
+ 0.381266f, 0.381177f, 0.381088f, 0.381000f, 0.380911f, 0.380823f, 0.380734f, 0.380645f,
+ 0.380557f, 0.380468f, 0.380379f, 0.380291f, 0.380202f, 0.380113f, 0.380025f, 0.379936f,
+ 0.379847f, 0.379759f, 0.379670f, 0.379581f, 0.379492f, 0.379404f, 0.379315f, 0.379226f,
+ 0.379138f, 0.379049f, 0.378960f, 0.378871f, 0.378783f, 0.378694f, 0.378605f, 0.378516f,
+ 0.378428f, 0.378339f, 0.378250f, 0.378162f, 0.378073f, 0.377984f, 0.377895f, 0.377806f,
+ 0.377718f, 0.377629f, 0.377540f, 0.377451f, 0.377363f, 0.377274f, 0.377185f, 0.377096f,
+ 0.377007f, 0.376919f, 0.376830f, 0.376741f, 0.376652f, 0.376563f, 0.376475f, 0.376386f,
+ 0.376297f, 0.376208f, 0.376119f, 0.376030f, 0.375942f, 0.375853f, 0.375764f, 0.375675f,
+ 0.375586f, 0.375497f, 0.375408f, 0.375320f, 0.375231f, 0.375142f, 0.375053f, 0.374964f,
+ 0.374875f, 0.374786f, 0.374697f, 0.374609f, 0.374520f, 0.374431f, 0.374342f, 0.374253f,
+ 0.374164f, 0.374075f, 0.373986f, 0.373897f, 0.373808f, 0.373719f, 0.373631f, 0.373542f,
+ 0.373453f, 0.373364f, 0.373275f, 0.373186f, 0.373097f, 0.373008f, 0.372919f, 0.372830f,
+ 0.372741f, 0.372652f, 0.372563f, 0.372474f, 0.372385f, 0.372296f, 0.372207f, 0.372118f,
+ 0.372029f, 0.371940f, 0.371851f, 0.371762f, 0.371673f, 0.371584f, 0.371495f, 0.371406f,
+ 0.371317f, 0.371228f, 0.371139f, 0.371050f, 0.370961f, 0.370872f, 0.370783f, 0.370694f,
+ 0.370605f, 0.370516f, 0.370427f, 0.370338f, 0.370249f, 0.370160f, 0.370071f, 0.369982f,
+ 0.369892f, 0.369803f, 0.369714f, 0.369625f, 0.369536f, 0.369447f, 0.369358f, 0.369269f,
+ 0.369180f, 0.369091f, 0.369002f, 0.368912f, 0.368823f, 0.368734f, 0.368645f, 0.368556f,
+ 0.368467f, 0.368378f, 0.368289f, 0.368199f, 0.368110f, 0.368021f, 0.367932f, 0.367843f,
+ 0.367754f, 0.367665f, 0.367575f, 0.367486f, 0.367397f, 0.367308f, 0.367219f, 0.367130f,
+ 0.367040f, 0.366951f, 0.366862f, 0.366773f, 0.366684f, 0.366594f, 0.366505f, 0.366416f,
+ 0.366327f, 0.366238f, 0.366148f, 0.366059f, 0.365970f, 0.365881f, 0.365791f, 0.365702f,
+ 0.365613f, 0.365524f, 0.365435f, 0.365345f, 0.365256f, 0.365167f, 0.365078f, 0.364988f,
+ 0.364899f, 0.364810f, 0.364720f, 0.364631f, 0.364542f, 0.364453f, 0.364363f, 0.364274f,
+ 0.364185f, 0.364096f, 0.364006f, 0.363917f, 0.363828f, 0.363738f, 0.363649f, 0.363560f,
+ 0.363470f, 0.363381f, 0.363292f, 0.363202f, 0.363113f, 0.363024f, 0.362934f, 0.362845f,
+ 0.362756f, 0.362666f, 0.362577f, 0.362488f, 0.362398f, 0.362309f, 0.362220f, 0.362130f,
+ 0.362041f, 0.361952f, 0.361862f, 0.361773f, 0.361683f, 0.361594f, 0.361505f, 0.361415f,
+ 0.361326f, 0.361236f, 0.361147f, 0.361058f, 0.360968f, 0.360879f, 0.360789f, 0.360700f,
+ 0.360611f, 0.360521f, 0.360432f, 0.360342f, 0.360253f, 0.360163f, 0.360074f, 0.359984f,
+ 0.359895f, 0.359806f, 0.359716f, 0.359627f, 0.359537f, 0.359448f, 0.359358f, 0.359269f,
+ 0.359179f, 0.359090f, 0.359000f, 0.358911f, 0.358821f, 0.358732f, 0.358642f, 0.358553f,
+ 0.358463f, 0.358374f, 0.358284f, 0.358195f, 0.358105f, 0.358016f, 0.357926f, 0.357837f,
+ 0.357747f, 0.357658f, 0.357568f, 0.357479f, 0.357389f, 0.357300f, 0.357210f, 0.357121f,
+ 0.357031f, 0.356941f, 0.356852f, 0.356762f, 0.356673f, 0.356583f, 0.356494f, 0.356404f,
+ 0.356314f, 0.356225f, 0.356135f, 0.356046f, 0.355956f, 0.355866f, 0.355777f, 0.355687f,
+ 0.355598f, 0.355508f, 0.355418f, 0.355329f, 0.355239f, 0.355150f, 0.355060f, 0.354970f,
+ 0.354881f, 0.354791f, 0.354701f, 0.354612f, 0.354522f, 0.354432f, 0.354343f, 0.354253f,
+ 0.354164f, 0.354074f, 0.353984f, 0.353895f, 0.353805f, 0.353715f, 0.353626f, 0.353536f,
+ 0.353446f, 0.353356f, 0.353267f, 0.353177f, 0.353087f, 0.352998f, 0.352908f, 0.352818f,
+ 0.352729f, 0.352639f, 0.352549f, 0.352459f, 0.352370f, 0.352280f, 0.352190f, 0.352100f,
+ 0.352011f, 0.351921f, 0.351831f, 0.351742f, 0.351652f, 0.351562f, 0.351472f, 0.351383f,
+ 0.351293f, 0.351203f, 0.351113f, 0.351023f, 0.350934f, 0.350844f, 0.350754f, 0.350664f,
+ 0.350575f, 0.350485f, 0.350395f, 0.350305f, 0.350215f, 0.350126f, 0.350036f, 0.349946f,
+ 0.349856f, 0.349766f, 0.349676f, 0.349587f, 0.349497f, 0.349407f, 0.349317f, 0.349227f,
+ 0.349138f, 0.349048f, 0.348958f, 0.348868f, 0.348778f, 0.348688f, 0.348598f, 0.348509f,
+ 0.348419f, 0.348329f, 0.348239f, 0.348149f, 0.348059f, 0.347969f, 0.347879f, 0.347790f,
+ 0.347700f, 0.347610f, 0.347520f, 0.347430f, 0.347340f, 0.347250f, 0.347160f, 0.347070f,
+ 0.346980f, 0.346890f, 0.346801f, 0.346711f, 0.346621f, 0.346531f, 0.346441f, 0.346351f,
+ 0.346261f, 0.346171f, 0.346081f, 0.345991f, 0.345901f, 0.345811f, 0.345721f, 0.345631f,
+ 0.345541f, 0.345451f, 0.345361f, 0.345271f, 0.345181f, 0.345091f, 0.345001f, 0.344911f,
+ 0.344821f, 0.344731f, 0.344641f, 0.344551f, 0.344461f, 0.344371f, 0.344281f, 0.344191f,
+ 0.344101f, 0.344011f, 0.343921f, 0.343831f, 0.343741f, 0.343651f, 0.343561f, 0.343471f,
+ 0.343381f, 0.343291f, 0.343201f, 0.343111f, 0.343021f, 0.342931f, 0.342841f, 0.342751f,
+ 0.342661f, 0.342571f, 0.342481f, 0.342391f, 0.342300f, 0.342210f, 0.342120f, 0.342030f,
+ 0.341940f, 0.341850f, 0.341760f, 0.341670f, 0.341580f, 0.341490f, 0.341399f, 0.341309f,
+ 0.341219f, 0.341129f, 0.341039f, 0.340949f, 0.340859f, 0.340769f, 0.340678f, 0.340588f,
+ 0.340498f, 0.340408f, 0.340318f, 0.340228f, 0.340138f, 0.340047f, 0.339957f, 0.339867f,
+ 0.339777f, 0.339687f, 0.339597f, 0.339506f, 0.339416f, 0.339326f, 0.339236f, 0.339146f,
+ 0.339055f, 0.338965f, 0.338875f, 0.338785f, 0.338695f, 0.338604f, 0.338514f, 0.338424f,
+ 0.338334f, 0.338244f, 0.338153f, 0.338063f, 0.337973f, 0.337883f, 0.337792f, 0.337702f,
+ 0.337612f, 0.337522f, 0.337431f, 0.337341f, 0.337251f, 0.337161f, 0.337070f, 0.336980f,
+ 0.336890f, 0.336800f, 0.336709f, 0.336619f, 0.336529f, 0.336438f, 0.336348f, 0.336258f,
+ 0.336168f, 0.336077f, 0.335987f, 0.335897f, 0.335806f, 0.335716f, 0.335626f, 0.335535f,
+ 0.335445f, 0.335355f, 0.335265f, 0.335174f, 0.335084f, 0.334994f, 0.334903f, 0.334813f,
+ 0.334722f, 0.334632f, 0.334542f, 0.334451f, 0.334361f, 0.334271f, 0.334180f, 0.334090f,
+ 0.334000f, 0.333909f, 0.333819f, 0.333729f, 0.333638f, 0.333548f, 0.333457f, 0.333367f,
+ 0.333277f, 0.333186f, 0.333096f, 0.333005f, 0.332915f, 0.332825f, 0.332734f, 0.332644f,
+ 0.332553f, 0.332463f, 0.332373f, 0.332282f, 0.332192f, 0.332101f, 0.332011f, 0.331920f,
+ 0.331830f, 0.331739f, 0.331649f, 0.331559f, 0.331468f, 0.331378f, 0.331287f, 0.331197f,
+ 0.331106f, 0.331016f, 0.330925f, 0.330835f, 0.330744f, 0.330654f, 0.330563f, 0.330473f,
+ 0.330382f, 0.330292f, 0.330202f, 0.330111f, 0.330020f, 0.329930f, 0.329839f, 0.329749f,
+ 0.329658f, 0.329568f, 0.329477f, 0.329387f, 0.329296f, 0.329206f, 0.329115f, 0.329025f,
+ 0.328934f, 0.328844f, 0.328753f, 0.328663f, 0.328572f, 0.328482f, 0.328391f, 0.328300f,
+ 0.328210f, 0.328119f, 0.328029f, 0.327938f, 0.327848f, 0.327757f, 0.327666f, 0.327576f,
+ 0.327485f, 0.327395f, 0.327304f, 0.327213f, 0.327123f, 0.327032f, 0.326942f, 0.326851f,
+ 0.326760f, 0.326670f, 0.326579f, 0.326489f, 0.326398f, 0.326307f, 0.326217f, 0.326126f,
+ 0.326035f, 0.325945f, 0.325854f, 0.325764f, 0.325673f, 0.325582f, 0.325492f, 0.325401f,
+ 0.325310f, 0.325220f, 0.325129f, 0.325038f, 0.324948f, 0.324857f, 0.324766f, 0.324676f,
+ 0.324585f, 0.324494f, 0.324404f, 0.324313f, 0.324222f, 0.324131f, 0.324041f, 0.323950f,
+ 0.323859f, 0.323769f, 0.323678f, 0.323587f, 0.323497f, 0.323406f, 0.323315f, 0.323224f,
+ 0.323134f, 0.323043f, 0.322952f, 0.322861f, 0.322771f, 0.322680f, 0.322589f, 0.322498f,
+ 0.322408f, 0.322317f, 0.322226f, 0.322135f, 0.322045f, 0.321954f, 0.321863f, 0.321772f,
+ 0.321682f, 0.321591f, 0.321500f, 0.321409f, 0.321318f, 0.321228f, 0.321137f, 0.321046f,
+ 0.320955f, 0.320864f, 0.320774f, 0.320683f, 0.320592f, 0.320501f, 0.320410f, 0.320320f,
+ 0.320229f, 0.320138f, 0.320047f, 0.319956f, 0.319865f, 0.319775f, 0.319684f, 0.319593f,
+ 0.319502f, 0.319411f, 0.319320f, 0.319229f, 0.319139f, 0.319048f, 0.318957f, 0.318866f,
+ 0.318775f, 0.318684f, 0.318593f, 0.318503f, 0.318412f, 0.318321f, 0.318230f, 0.318139f,
+ 0.318048f, 0.317957f, 0.317866f, 0.317775f, 0.317684f, 0.317594f, 0.317503f, 0.317412f,
+ 0.317321f, 0.317230f, 0.317139f, 0.317048f, 0.316957f, 0.316866f, 0.316775f, 0.316684f,
+ 0.316593f, 0.316502f, 0.316411f, 0.316321f, 0.316230f, 0.316139f, 0.316048f, 0.315957f,
+ 0.315866f, 0.315775f, 0.315684f, 0.315593f, 0.315502f, 0.315411f, 0.315320f, 0.315229f,
+ 0.315138f, 0.315047f, 0.314956f, 0.314865f, 0.314774f, 0.314683f, 0.314592f, 0.314501f,
+ 0.314410f, 0.314319f, 0.314228f, 0.314137f, 0.314046f, 0.313955f, 0.313864f, 0.313773f,
+ 0.313682f, 0.313591f, 0.313500f, 0.313409f, 0.313318f, 0.313227f, 0.313135f, 0.313044f,
+ 0.312953f, 0.312862f, 0.312771f, 0.312680f, 0.312589f, 0.312498f, 0.312407f, 0.312316f,
+ 0.312225f, 0.312134f, 0.312043f, 0.311952f, 0.311860f, 0.311769f, 0.311678f, 0.311587f,
+ 0.311496f, 0.311405f, 0.311314f, 0.311223f, 0.311132f, 0.311041f, 0.310949f, 0.310858f,
+ 0.310767f, 0.310676f, 0.310585f, 0.310494f, 0.310403f, 0.310311f, 0.310220f, 0.310129f,
+ 0.310038f, 0.309947f, 0.309856f, 0.309765f, 0.309673f, 0.309582f, 0.309491f, 0.309400f,
+ 0.309309f, 0.309218f, 0.309126f, 0.309035f, 0.308944f, 0.308853f, 0.308762f, 0.308670f,
+ 0.308579f, 0.308488f, 0.308397f, 0.308306f, 0.308214f, 0.308123f, 0.308032f, 0.307941f,
+ 0.307850f, 0.307758f, 0.307667f, 0.307576f, 0.307485f, 0.307394f, 0.307302f, 0.307211f,
+ 0.307120f, 0.307029f, 0.306937f, 0.306846f, 0.306755f, 0.306664f, 0.306572f, 0.306481f,
+ 0.306390f, 0.306299f, 0.306207f, 0.306116f, 0.306025f, 0.305933f, 0.305842f, 0.305751f,
+ 0.305660f, 0.305568f, 0.305477f, 0.305386f, 0.305294f, 0.305203f, 0.305112f, 0.305021f,
+ 0.304929f, 0.304838f, 0.304747f, 0.304655f, 0.304564f, 0.304473f, 0.304381f, 0.304290f,
+ 0.304199f, 0.304107f, 0.304016f, 0.303925f, 0.303833f, 0.303742f, 0.303651f, 0.303559f,
+ 0.303468f, 0.303377f, 0.303285f, 0.303194f, 0.303103f, 0.303011f, 0.302920f, 0.302828f,
+ 0.302737f, 0.302646f, 0.302554f, 0.302463f, 0.302372f, 0.302280f, 0.302189f, 0.302097f,
+ 0.302006f, 0.301915f, 0.301823f, 0.301732f, 0.301640f, 0.301549f, 0.301458f, 0.301366f,
+ 0.301275f, 0.301183f, 0.301092f, 0.301000f, 0.300909f, 0.300818f, 0.300726f, 0.300635f,
+ 0.300543f, 0.300452f, 0.300360f, 0.300269f, 0.300177f, 0.300086f, 0.299995f, 0.299903f,
+ 0.299812f, 0.299720f, 0.299629f, 0.299537f, 0.299446f, 0.299354f, 0.299263f, 0.299171f,
+ 0.299080f, 0.298988f, 0.298897f, 0.298805f, 0.298714f, 0.298622f, 0.298531f, 0.298439f,
+ 0.298348f, 0.298256f, 0.298165f, 0.298073f, 0.297982f, 0.297890f, 0.297799f, 0.297707f,
+ 0.297616f, 0.297524f, 0.297433f, 0.297341f, 0.297250f, 0.297158f, 0.297066f, 0.296975f,
+ 0.296883f, 0.296792f, 0.296700f, 0.296609f, 0.296517f, 0.296426f, 0.296334f, 0.296242f,
+ 0.296151f, 0.296059f, 0.295968f, 0.295876f, 0.295785f, 0.295693f, 0.295601f, 0.295510f,
+ 0.295418f, 0.295327f, 0.295235f, 0.295143f, 0.295052f, 0.294960f, 0.294869f, 0.294777f,
+ 0.294685f, 0.294594f, 0.294502f, 0.294410f, 0.294319f, 0.294227f, 0.294136f, 0.294044f,
+ 0.293952f, 0.293861f, 0.293769f, 0.293677f, 0.293586f, 0.293494f, 0.293402f, 0.293311f,
+ 0.293219f, 0.293128f, 0.293036f, 0.292944f, 0.292852f, 0.292761f, 0.292669f, 0.292577f,
+ 0.292486f, 0.292394f, 0.292302f, 0.292211f, 0.292119f, 0.292027f, 0.291936f, 0.291844f,
+ 0.291752f, 0.291661f, 0.291569f, 0.291477f, 0.291385f, 0.291294f, 0.291202f, 0.291110f,
+ 0.291019f, 0.290927f, 0.290835f, 0.290743f, 0.290652f, 0.290560f, 0.290468f, 0.290376f,
+ 0.290285f, 0.290193f, 0.290101f, 0.290009f, 0.289918f, 0.289826f, 0.289734f, 0.289642f,
+ 0.289551f, 0.289459f, 0.289367f, 0.289275f, 0.289184f, 0.289092f, 0.289000f, 0.288908f,
+ 0.288816f, 0.288725f, 0.288633f, 0.288541f, 0.288449f, 0.288357f, 0.288266f, 0.288174f,
+ 0.288082f, 0.287990f, 0.287898f, 0.287807f, 0.287715f, 0.287623f, 0.287531f, 0.287439f,
+ 0.287347f, 0.287256f, 0.287164f, 0.287072f, 0.286980f, 0.286888f, 0.286796f, 0.286705f,
+ 0.286613f, 0.286521f, 0.286429f, 0.286337f, 0.286245f, 0.286153f, 0.286062f, 0.285970f,
+ 0.285878f, 0.285786f, 0.285694f, 0.285602f, 0.285510f, 0.285418f, 0.285327f, 0.285235f,
+ 0.285143f, 0.285051f, 0.284959f, 0.284867f, 0.284775f, 0.284683f, 0.284591f, 0.284499f,
+ 0.284408f, 0.284316f, 0.284224f, 0.284132f, 0.284040f, 0.283948f, 0.283856f, 0.283764f,
+ 0.283672f, 0.283580f, 0.283488f, 0.283396f, 0.283304f, 0.283212f, 0.283120f, 0.283029f,
+ 0.282937f, 0.282845f, 0.282753f, 0.282661f, 0.282569f, 0.282477f, 0.282385f, 0.282293f,
+ 0.282201f, 0.282109f, 0.282017f, 0.281925f, 0.281833f, 0.281741f, 0.281649f, 0.281557f,
+ 0.281465f, 0.281373f, 0.281281f, 0.281189f, 0.281097f, 0.281005f, 0.280913f, 0.280821f,
+ 0.280729f, 0.280637f, 0.280545f, 0.280453f, 0.280361f, 0.280269f, 0.280177f, 0.280085f,
+ 0.279993f, 0.279901f, 0.279809f, 0.279717f, 0.279624f, 0.279532f, 0.279440f, 0.279348f,
+ 0.279256f, 0.279164f, 0.279072f, 0.278980f, 0.278888f, 0.278796f, 0.278704f, 0.278612f,
+ 0.278520f, 0.278428f, 0.278336f, 0.278243f, 0.278151f, 0.278059f, 0.277967f, 0.277875f,
+ 0.277783f, 0.277691f, 0.277599f, 0.277507f, 0.277415f, 0.277322f, 0.277230f, 0.277138f,
+ 0.277046f, 0.276954f, 0.276862f, 0.276770f, 0.276678f, 0.276585f, 0.276493f, 0.276401f,
+ 0.276309f, 0.276217f, 0.276125f, 0.276033f, 0.275940f, 0.275848f, 0.275756f, 0.275664f,
+ 0.275572f, 0.275480f, 0.275387f, 0.275295f, 0.275203f, 0.275111f, 0.275019f, 0.274927f,
+ 0.274834f, 0.274742f, 0.274650f, 0.274558f, 0.274466f, 0.274374f, 0.274281f, 0.274189f,
+ 0.274097f, 0.274005f, 0.273912f, 0.273820f, 0.273728f, 0.273636f, 0.273544f, 0.273451f,
+ 0.273359f, 0.273267f, 0.273175f, 0.273083f, 0.272990f, 0.272898f, 0.272806f, 0.272714f,
+ 0.272621f, 0.272529f, 0.272437f, 0.272345f, 0.272252f, 0.272160f, 0.272068f, 0.271976f,
+ 0.271883f, 0.271791f, 0.271699f, 0.271607f, 0.271514f, 0.271422f, 0.271330f, 0.271237f,
+ 0.271145f, 0.271053f, 0.270961f, 0.270868f, 0.270776f, 0.270684f, 0.270591f, 0.270499f,
+ 0.270407f, 0.270315f, 0.270222f, 0.270130f, 0.270038f, 0.269945f, 0.269853f, 0.269761f,
+ 0.269668f, 0.269576f, 0.269484f, 0.269391f, 0.269299f, 0.269207f, 0.269114f, 0.269022f,
+ 0.268930f, 0.268837f, 0.268745f, 0.268653f, 0.268560f, 0.268468f, 0.268376f, 0.268283f,
+ 0.268191f, 0.268099f, 0.268006f, 0.267914f, 0.267821f, 0.267729f, 0.267637f, 0.267544f,
+ 0.267452f, 0.267359f, 0.267267f, 0.267175f, 0.267082f, 0.266990f, 0.266898f, 0.266805f,
+ 0.266713f, 0.266620f, 0.266528f, 0.266436f, 0.266343f, 0.266251f, 0.266158f, 0.266066f,
+ 0.265973f, 0.265881f, 0.265789f, 0.265696f, 0.265604f, 0.265511f, 0.265419f, 0.265326f,
+ 0.265234f, 0.265142f, 0.265049f, 0.264957f, 0.264864f, 0.264772f, 0.264679f, 0.264587f,
+ 0.264494f, 0.264402f, 0.264309f, 0.264217f, 0.264125f, 0.264032f, 0.263940f, 0.263847f,
+ 0.263755f, 0.263662f, 0.263570f, 0.263477f, 0.263385f, 0.263292f, 0.263200f, 0.263107f,
+ 0.263015f, 0.262922f, 0.262830f, 0.262737f, 0.262645f, 0.262552f, 0.262460f, 0.262367f,
+ 0.262275f, 0.262182f, 0.262090f, 0.261997f, 0.261905f, 0.261812f, 0.261720f, 0.261627f,
+ 0.261534f, 0.261442f, 0.261349f, 0.261257f, 0.261164f, 0.261072f, 0.260979f, 0.260887f,
+ 0.260794f, 0.260702f, 0.260609f, 0.260516f, 0.260424f, 0.260331f, 0.260239f, 0.260146f,
+ 0.260054f, 0.259961f, 0.259868f, 0.259776f, 0.259683f, 0.259591f, 0.259498f, 0.259405f,
+ 0.259313f, 0.259220f, 0.259128f, 0.259035f, 0.258943f, 0.258850f, 0.258757f, 0.258665f,
+ 0.258572f, 0.258479f, 0.258387f, 0.258294f, 0.258202f, 0.258109f, 0.258016f, 0.257924f,
+ 0.257831f, 0.257738f, 0.257646f, 0.257553f, 0.257461f, 0.257368f, 0.257275f, 0.257183f,
+ 0.257090f, 0.256997f, 0.256905f, 0.256812f, 0.256719f, 0.256627f, 0.256534f, 0.256441f,
+ 0.256349f, 0.256256f, 0.256163f, 0.256071f, 0.255978f, 0.255885f, 0.255793f, 0.255700f,
+ 0.255607f, 0.255515f, 0.255422f, 0.255329f, 0.255236f, 0.255144f, 0.255051f, 0.254958f,
+ 0.254866f, 0.254773f, 0.254680f, 0.254588f, 0.254495f, 0.254402f, 0.254309f, 0.254217f,
+ 0.254124f, 0.254031f, 0.253938f, 0.253846f, 0.253753f, 0.253660f, 0.253568f, 0.253475f,
+ 0.253382f, 0.253289f, 0.253197f, 0.253104f, 0.253011f, 0.252918f, 0.252826f, 0.252733f,
+ 0.252640f, 0.252547f, 0.252454f, 0.252362f, 0.252269f, 0.252176f, 0.252083f, 0.251991f,
+ 0.251898f, 0.251805f, 0.251712f, 0.251619f, 0.251527f, 0.251434f, 0.251341f, 0.251248f,
+ 0.251155f, 0.251063f, 0.250970f, 0.250877f, 0.250784f, 0.250691f, 0.250599f, 0.250506f,
+ 0.250413f, 0.250320f, 0.250227f, 0.250135f, 0.250042f, 0.249949f, 0.249856f, 0.249763f,
+ 0.249670f, 0.249578f, 0.249485f, 0.249392f, 0.249299f, 0.249206f, 0.249113f, 0.249020f,
+ 0.248928f, 0.248835f, 0.248742f, 0.248649f, 0.248556f, 0.248463f, 0.248370f, 0.248278f,
+ 0.248185f, 0.248092f, 0.247999f, 0.247906f, 0.247813f, 0.247720f, 0.247627f, 0.247535f,
+ 0.247442f, 0.247349f, 0.247256f, 0.247163f, 0.247070f, 0.246977f, 0.246884f, 0.246791f,
+ 0.246698f, 0.246606f, 0.246513f, 0.246420f, 0.246327f, 0.246234f, 0.246141f, 0.246048f,
+ 0.245955f, 0.245862f, 0.245769f, 0.245676f, 0.245583f, 0.245490f, 0.245397f, 0.245304f,
+ 0.245212f, 0.245119f, 0.245026f, 0.244933f, 0.244840f, 0.244747f, 0.244654f, 0.244561f,
+ 0.244468f, 0.244375f, 0.244282f, 0.244189f, 0.244096f, 0.244003f, 0.243910f, 0.243817f,
+ 0.243724f, 0.243631f, 0.243538f, 0.243445f, 0.243352f, 0.243259f, 0.243166f, 0.243073f,
+ 0.242980f, 0.242887f, 0.242794f, 0.242701f, 0.242608f, 0.242515f, 0.242422f, 0.242329f,
+ 0.242236f, 0.242143f, 0.242050f, 0.241957f, 0.241864f, 0.241771f, 0.241678f, 0.241585f,
+ 0.241492f, 0.241399f, 0.241306f, 0.241213f, 0.241120f, 0.241027f, 0.240934f, 0.240841f,
+ 0.240748f, 0.240654f, 0.240561f, 0.240468f, 0.240375f, 0.240282f, 0.240189f, 0.240096f,
+ 0.240003f, 0.239910f, 0.239817f, 0.239724f, 0.239631f, 0.239538f, 0.239445f, 0.239351f,
+ 0.239258f, 0.239165f, 0.239072f, 0.238979f, 0.238886f, 0.238793f, 0.238700f, 0.238607f,
+ 0.238514f, 0.238420f, 0.238327f, 0.238234f, 0.238141f, 0.238048f, 0.237955f, 0.237862f,
+ 0.237769f, 0.237676f, 0.237582f, 0.237489f, 0.237396f, 0.237303f, 0.237210f, 0.237117f,
+ 0.237024f, 0.236930f, 0.236837f, 0.236744f, 0.236651f, 0.236558f, 0.236465f, 0.236372f,
+ 0.236278f, 0.236185f, 0.236092f, 0.235999f, 0.235906f, 0.235813f, 0.235719f, 0.235626f,
+ 0.235533f, 0.235440f, 0.235347f, 0.235254f, 0.235160f, 0.235067f, 0.234974f, 0.234881f,
+ 0.234788f, 0.234694f, 0.234601f, 0.234508f, 0.234415f, 0.234322f, 0.234228f, 0.234135f,
+ 0.234042f, 0.233949f, 0.233856f, 0.233762f, 0.233669f, 0.233576f, 0.233483f, 0.233389f,
+ 0.233296f, 0.233203f, 0.233110f, 0.233017f, 0.232923f, 0.232830f, 0.232737f, 0.232644f,
+ 0.232550f, 0.232457f, 0.232364f, 0.232271f, 0.232177f, 0.232084f, 0.231991f, 0.231898f,
+ 0.231804f, 0.231711f, 0.231618f, 0.231524f, 0.231431f, 0.231338f, 0.231245f, 0.231151f,
+ 0.231058f, 0.230965f, 0.230872f, 0.230778f, 0.230685f, 0.230592f, 0.230498f, 0.230405f,
+ 0.230312f, 0.230218f, 0.230125f, 0.230032f, 0.229939f, 0.229845f, 0.229752f, 0.229659f,
+ 0.229565f, 0.229472f, 0.229379f, 0.229285f, 0.229192f, 0.229099f, 0.229005f, 0.228912f,
+ 0.228819f, 0.228725f, 0.228632f, 0.228539f, 0.228445f, 0.228352f, 0.228259f, 0.228165f,
+ 0.228072f, 0.227979f, 0.227885f, 0.227792f, 0.227699f, 0.227605f, 0.227512f, 0.227419f,
+ 0.227325f, 0.227232f, 0.227139f, 0.227045f, 0.226952f, 0.226858f, 0.226765f, 0.226672f,
+ 0.226578f, 0.226485f, 0.226391f, 0.226298f, 0.226205f, 0.226111f, 0.226018f, 0.225925f,
+ 0.225831f, 0.225738f, 0.225644f, 0.225551f, 0.225458f, 0.225364f, 0.225271f, 0.225177f,
+ 0.225084f, 0.224991f, 0.224897f, 0.224804f, 0.224710f, 0.224617f, 0.224523f, 0.224430f,
+ 0.224337f, 0.224243f, 0.224150f, 0.224056f, 0.223963f, 0.223869f, 0.223776f, 0.223682f,
+ 0.223589f, 0.223496f, 0.223402f, 0.223309f, 0.223215f, 0.223122f, 0.223028f, 0.222935f,
+ 0.222841f, 0.222748f, 0.222654f, 0.222561f, 0.222468f, 0.222374f, 0.222281f, 0.222187f,
+ 0.222094f, 0.222000f, 0.221907f, 0.221813f, 0.221720f, 0.221626f, 0.221533f, 0.221439f,
+ 0.221346f, 0.221252f, 0.221159f, 0.221065f, 0.220972f, 0.220878f, 0.220785f, 0.220691f,
+ 0.220598f, 0.220504f, 0.220411f, 0.220317f, 0.220224f, 0.220130f, 0.220037f, 0.219943f,
+ 0.219850f, 0.219756f, 0.219662f, 0.219569f, 0.219475f, 0.219382f, 0.219288f, 0.219195f,
+ 0.219101f, 0.219008f, 0.218914f, 0.218821f, 0.218727f, 0.218633f, 0.218540f, 0.218446f,
+ 0.218353f, 0.218259f, 0.218166f, 0.218072f, 0.217979f, 0.217885f, 0.217791f, 0.217698f,
+ 0.217604f, 0.217511f, 0.217417f, 0.217324f, 0.217230f, 0.217136f, 0.217043f, 0.216949f,
+ 0.216856f, 0.216762f, 0.216668f, 0.216575f, 0.216481f, 0.216388f, 0.216294f, 0.216200f,
+ 0.216107f, 0.216013f, 0.215920f, 0.215826f, 0.215732f, 0.215639f, 0.215545f, 0.215451f,
+ 0.215358f, 0.215264f, 0.215171f, 0.215077f, 0.214983f, 0.214890f, 0.214796f, 0.214702f,
+ 0.214609f, 0.214515f, 0.214422f, 0.214328f, 0.214234f, 0.214141f, 0.214047f, 0.213953f,
+ 0.213860f, 0.213766f, 0.213672f, 0.213579f, 0.213485f, 0.213391f, 0.213298f, 0.213204f,
+ 0.213110f, 0.213017f, 0.212923f, 0.212829f, 0.212736f, 0.212642f, 0.212548f, 0.212455f,
+ 0.212361f, 0.212267f, 0.212174f, 0.212080f, 0.211986f, 0.211892f, 0.211799f, 0.211705f,
+ 0.211611f, 0.211518f, 0.211424f, 0.211330f, 0.211237f, 0.211143f, 0.211049f, 0.210955f,
+ 0.210862f, 0.210768f, 0.210674f, 0.210580f, 0.210487f, 0.210393f, 0.210299f, 0.210206f,
+ 0.210112f, 0.210018f, 0.209924f, 0.209831f, 0.209737f, 0.209643f, 0.209549f, 0.209456f,
+ 0.209362f, 0.209268f, 0.209174f, 0.209081f, 0.208987f, 0.208893f, 0.208799f, 0.208706f,
+ 0.208612f, 0.208518f, 0.208424f, 0.208331f, 0.208237f, 0.208143f, 0.208049f, 0.207955f,
+ 0.207862f, 0.207768f, 0.207674f, 0.207580f, 0.207487f, 0.207393f, 0.207299f, 0.207205f,
+ 0.207111f, 0.207018f, 0.206924f, 0.206830f, 0.206736f, 0.206642f, 0.206549f, 0.206455f,
+ 0.206361f, 0.206267f, 0.206173f, 0.206080f, 0.205986f, 0.205892f, 0.205798f, 0.205704f,
+ 0.205610f, 0.205517f, 0.205423f, 0.205329f, 0.205235f, 0.205141f, 0.205047f, 0.204954f,
+ 0.204860f, 0.204766f, 0.204672f, 0.204578f, 0.204484f, 0.204391f, 0.204297f, 0.204203f,
+ 0.204109f, 0.204015f, 0.203921f, 0.203827f, 0.203734f, 0.203640f, 0.203546f, 0.203452f,
+ 0.203358f, 0.203264f, 0.203170f, 0.203076f, 0.202983f, 0.202889f, 0.202795f, 0.202701f,
+ 0.202607f, 0.202513f, 0.202419f, 0.202325f, 0.202231f, 0.202138f, 0.202044f, 0.201950f,
+ 0.201856f, 0.201762f, 0.201668f, 0.201574f, 0.201480f, 0.201386f, 0.201292f, 0.201199f,
+ 0.201105f, 0.201011f, 0.200917f, 0.200823f, 0.200729f, 0.200635f, 0.200541f, 0.200447f,
+ 0.200353f, 0.200259f, 0.200165f, 0.200071f, 0.199978f, 0.199884f, 0.199790f, 0.199696f,
+ 0.199602f, 0.199508f, 0.199414f, 0.199320f, 0.199226f, 0.199132f, 0.199038f, 0.198944f,
+ 0.198850f, 0.198756f, 0.198662f, 0.198568f, 0.198474f, 0.198380f, 0.198286f, 0.198192f,
+ 0.198098f, 0.198004f, 0.197910f, 0.197816f, 0.197722f, 0.197629f, 0.197535f, 0.197441f,
+ 0.197347f, 0.197253f, 0.197159f, 0.197065f, 0.196971f, 0.196877f, 0.196783f, 0.196689f,
+ 0.196595f, 0.196501f, 0.196407f, 0.196313f, 0.196219f, 0.196125f, 0.196031f, 0.195937f,
+ 0.195843f, 0.195748f, 0.195654f, 0.195560f, 0.195466f, 0.195372f, 0.195278f, 0.195184f,
+ 0.195090f, 0.194996f, 0.194902f, 0.194808f, 0.194714f, 0.194620f, 0.194526f, 0.194432f,
+ 0.194338f, 0.194244f, 0.194150f, 0.194056f, 0.193962f, 0.193868f, 0.193774f, 0.193680f,
+ 0.193586f, 0.193492f, 0.193397f, 0.193303f, 0.193209f, 0.193115f, 0.193021f, 0.192927f,
+ 0.192833f, 0.192739f, 0.192645f, 0.192551f, 0.192457f, 0.192363f, 0.192269f, 0.192174f,
+ 0.192080f, 0.191986f, 0.191892f, 0.191798f, 0.191704f, 0.191610f, 0.191516f, 0.191422f,
+ 0.191328f, 0.191234f, 0.191139f, 0.191045f, 0.190951f, 0.190857f, 0.190763f, 0.190669f,
+ 0.190575f, 0.190481f, 0.190387f, 0.190292f, 0.190198f, 0.190104f, 0.190010f, 0.189916f,
+ 0.189822f, 0.189728f, 0.189634f, 0.189539f, 0.189445f, 0.189351f, 0.189257f, 0.189163f,
+ 0.189069f, 0.188975f, 0.188880f, 0.188786f, 0.188692f, 0.188598f, 0.188504f, 0.188410f,
+ 0.188315f, 0.188221f, 0.188127f, 0.188033f, 0.187939f, 0.187845f, 0.187750f, 0.187656f,
+ 0.187562f, 0.187468f, 0.187374f, 0.187280f, 0.187185f, 0.187091f, 0.186997f, 0.186903f,
+ 0.186809f, 0.186715f, 0.186620f, 0.186526f, 0.186432f, 0.186338f, 0.186244f, 0.186149f,
+ 0.186055f, 0.185961f, 0.185867f, 0.185773f, 0.185678f, 0.185584f, 0.185490f, 0.185396f,
+ 0.185301f, 0.185207f, 0.185113f, 0.185019f, 0.184925f, 0.184830f, 0.184736f, 0.184642f,
+ 0.184548f, 0.184454f, 0.184359f, 0.184265f, 0.184171f, 0.184077f, 0.183982f, 0.183888f,
+ 0.183794f, 0.183700f, 0.183605f, 0.183511f, 0.183417f, 0.183323f, 0.183228f, 0.183134f,
+ 0.183040f, 0.182946f, 0.182851f, 0.182757f, 0.182663f, 0.182569f, 0.182474f, 0.182380f,
+ 0.182286f, 0.182192f, 0.182097f, 0.182003f, 0.181909f, 0.181814f, 0.181720f, 0.181626f,
+ 0.181532f, 0.181437f, 0.181343f, 0.181249f, 0.181154f, 0.181060f, 0.180966f, 0.180872f,
+ 0.180777f, 0.180683f, 0.180589f, 0.180494f, 0.180400f, 0.180306f, 0.180212f, 0.180117f,
+ 0.180023f, 0.179929f, 0.179834f, 0.179740f, 0.179646f, 0.179551f, 0.179457f, 0.179363f,
+ 0.179268f, 0.179174f, 0.179080f, 0.178985f, 0.178891f, 0.178797f, 0.178702f, 0.178608f,
+ 0.178514f, 0.178419f, 0.178325f, 0.178231f, 0.178136f, 0.178042f, 0.177948f, 0.177853f,
+ 0.177759f, 0.177665f, 0.177570f, 0.177476f, 0.177382f, 0.177287f, 0.177193f, 0.177099f,
+ 0.177004f, 0.176910f, 0.176815f, 0.176721f, 0.176627f, 0.176532f, 0.176438f, 0.176344f,
+ 0.176249f, 0.176155f, 0.176061f, 0.175966f, 0.175872f, 0.175777f, 0.175683f, 0.175589f,
+ 0.175494f, 0.175400f, 0.175305f, 0.175211f, 0.175117f, 0.175022f, 0.174928f, 0.174834f,
+ 0.174739f, 0.174645f, 0.174550f, 0.174456f, 0.174362f, 0.174267f, 0.174173f, 0.174078f,
+ 0.173984f, 0.173889f, 0.173795f, 0.173701f, 0.173606f, 0.173512f, 0.173417f, 0.173323f,
+ 0.173229f, 0.173134f, 0.173040f, 0.172945f, 0.172851f, 0.172756f, 0.172662f, 0.172568f,
+ 0.172473f, 0.172379f, 0.172284f, 0.172190f, 0.172095f, 0.172001f, 0.171906f, 0.171812f,
+ 0.171718f, 0.171623f, 0.171529f, 0.171434f, 0.171340f, 0.171245f, 0.171151f, 0.171056f,
+ 0.170962f, 0.170867f, 0.170773f, 0.170678f, 0.170584f, 0.170490f, 0.170395f, 0.170301f,
+ 0.170206f, 0.170112f, 0.170017f, 0.169923f, 0.169828f, 0.169734f, 0.169639f, 0.169545f,
+ 0.169450f, 0.169356f, 0.169261f, 0.169167f, 0.169072f, 0.168978f, 0.168883f, 0.168789f,
+ 0.168694f, 0.168600f, 0.168505f, 0.168411f, 0.168316f, 0.168222f, 0.168127f, 0.168033f,
+ 0.167938f, 0.167844f, 0.167749f, 0.167655f, 0.167560f, 0.167466f, 0.167371f, 0.167277f,
+ 0.167182f, 0.167088f, 0.166993f, 0.166899f, 0.166804f, 0.166710f, 0.166615f, 0.166520f,
+ 0.166426f, 0.166331f, 0.166237f, 0.166142f, 0.166048f, 0.165953f, 0.165859f, 0.165764f,
+ 0.165670f, 0.165575f, 0.165480f, 0.165386f, 0.165291f, 0.165197f, 0.165102f, 0.165008f,
+ 0.164913f, 0.164819f, 0.164724f, 0.164629f, 0.164535f, 0.164440f, 0.164346f, 0.164251f,
+ 0.164157f, 0.164062f, 0.163967f, 0.163873f, 0.163778f, 0.163684f, 0.163589f, 0.163495f,
+ 0.163400f, 0.163305f, 0.163211f, 0.163116f, 0.163022f, 0.162927f, 0.162832f, 0.162738f,
+ 0.162643f, 0.162549f, 0.162454f, 0.162359f, 0.162265f, 0.162170f, 0.162076f, 0.161981f,
+ 0.161886f, 0.161792f, 0.161697f, 0.161603f, 0.161508f, 0.161413f, 0.161319f, 0.161224f,
+ 0.161129f, 0.161035f, 0.160940f, 0.160846f, 0.160751f, 0.160656f, 0.160562f, 0.160467f,
+ 0.160372f, 0.160278f, 0.160183f, 0.160089f, 0.159994f, 0.159899f, 0.159805f, 0.159710f,
+ 0.159615f, 0.159521f, 0.159426f, 0.159331f, 0.159237f, 0.159142f, 0.159047f, 0.158953f,
+ 0.158858f, 0.158763f, 0.158669f, 0.158574f, 0.158480f, 0.158385f, 0.158290f, 0.158196f,
+ 0.158101f, 0.158006f, 0.157912f, 0.157817f, 0.157722f, 0.157627f, 0.157533f, 0.157438f,
+ 0.157343f, 0.157249f, 0.157154f, 0.157059f, 0.156965f, 0.156870f, 0.156775f, 0.156681f,
+ 0.156586f, 0.156491f, 0.156397f, 0.156302f, 0.156207f, 0.156112f, 0.156018f, 0.155923f,
+ 0.155828f, 0.155734f, 0.155639f, 0.155544f, 0.155450f, 0.155355f, 0.155260f, 0.155165f,
+ 0.155071f, 0.154976f, 0.154881f, 0.154787f, 0.154692f, 0.154597f, 0.154502f, 0.154408f,
+ 0.154313f, 0.154218f, 0.154124f, 0.154029f, 0.153934f, 0.153839f, 0.153745f, 0.153650f,
+ 0.153555f, 0.153460f, 0.153366f, 0.153271f, 0.153176f, 0.153081f, 0.152987f, 0.152892f,
+ 0.152797f, 0.152702f, 0.152608f, 0.152513f, 0.152418f, 0.152323f, 0.152229f, 0.152134f,
+ 0.152039f, 0.151944f, 0.151850f, 0.151755f, 0.151660f, 0.151565f, 0.151471f, 0.151376f,
+ 0.151281f, 0.151186f, 0.151092f, 0.150997f, 0.150902f, 0.150807f, 0.150712f, 0.150618f,
+ 0.150523f, 0.150428f, 0.150333f, 0.150238f, 0.150144f, 0.150049f, 0.149954f, 0.149859f,
+ 0.149765f, 0.149670f, 0.149575f, 0.149480f, 0.149385f, 0.149291f, 0.149196f, 0.149101f,
+ 0.149006f, 0.148911f, 0.148817f, 0.148722f, 0.148627f, 0.148532f, 0.148437f, 0.148342f,
+ 0.148248f, 0.148153f, 0.148058f, 0.147963f, 0.147868f, 0.147774f, 0.147679f, 0.147584f,
+ 0.147489f, 0.147394f, 0.147299f, 0.147205f, 0.147110f, 0.147015f, 0.146920f, 0.146825f,
+ 0.146730f, 0.146636f, 0.146541f, 0.146446f, 0.146351f, 0.146256f, 0.146161f, 0.146067f,
+ 0.145972f, 0.145877f, 0.145782f, 0.145687f, 0.145592f, 0.145497f, 0.145403f, 0.145308f,
+ 0.145213f, 0.145118f, 0.145023f, 0.144928f, 0.144833f, 0.144739f, 0.144644f, 0.144549f,
+ 0.144454f, 0.144359f, 0.144264f, 0.144169f, 0.144075f, 0.143980f, 0.143885f, 0.143790f,
+ 0.143695f, 0.143600f, 0.143505f, 0.143410f, 0.143316f, 0.143221f, 0.143126f, 0.143031f,
+ 0.142936f, 0.142841f, 0.142746f, 0.142651f, 0.142556f, 0.142461f, 0.142367f, 0.142272f,
+ 0.142177f, 0.142082f, 0.141987f, 0.141892f, 0.141797f, 0.141702f, 0.141607f, 0.141512f,
+ 0.141418f, 0.141323f, 0.141228f, 0.141133f, 0.141038f, 0.140943f, 0.140848f, 0.140753f,
+ 0.140658f, 0.140563f, 0.140468f, 0.140373f, 0.140279f, 0.140184f, 0.140089f, 0.139994f,
+ 0.139899f, 0.139804f, 0.139709f, 0.139614f, 0.139519f, 0.139424f, 0.139329f, 0.139234f,
+ 0.139139f, 0.139044f, 0.138949f, 0.138855f, 0.138760f, 0.138665f, 0.138570f, 0.138475f,
+ 0.138380f, 0.138285f, 0.138190f, 0.138095f, 0.138000f, 0.137905f, 0.137810f, 0.137715f,
+ 0.137620f, 0.137525f, 0.137430f, 0.137335f, 0.137240f, 0.137145f, 0.137050f, 0.136955f,
+ 0.136860f, 0.136765f, 0.136670f, 0.136575f, 0.136480f, 0.136386f, 0.136291f, 0.136196f,
+ 0.136101f, 0.136006f, 0.135911f, 0.135816f, 0.135721f, 0.135626f, 0.135531f, 0.135436f,
+ 0.135341f, 0.135246f, 0.135151f, 0.135056f, 0.134961f, 0.134866f, 0.134771f, 0.134676f,
+ 0.134581f, 0.134486f, 0.134391f, 0.134296f, 0.134201f, 0.134106f, 0.134011f, 0.133916f,
+ 0.133821f, 0.133726f, 0.133631f, 0.133536f, 0.133441f, 0.133346f, 0.133251f, 0.133156f,
+ 0.133061f, 0.132966f, 0.132870f, 0.132775f, 0.132680f, 0.132585f, 0.132490f, 0.132395f,
+ 0.132300f, 0.132205f, 0.132110f, 0.132015f, 0.131920f, 0.131825f, 0.131730f, 0.131635f,
+ 0.131540f, 0.131445f, 0.131350f, 0.131255f, 0.131160f, 0.131065f, 0.130970f, 0.130875f,
+ 0.130780f, 0.130685f, 0.130590f, 0.130495f, 0.130399f, 0.130304f, 0.130209f, 0.130114f,
+ 0.130019f, 0.129924f, 0.129829f, 0.129734f, 0.129639f, 0.129544f, 0.129449f, 0.129354f,
+ 0.129259f, 0.129164f, 0.129069f, 0.128973f, 0.128878f, 0.128783f, 0.128688f, 0.128593f,
+ 0.128498f, 0.128403f, 0.128308f, 0.128213f, 0.128118f, 0.128023f, 0.127928f, 0.127833f,
+ 0.127737f, 0.127642f, 0.127547f, 0.127452f, 0.127357f, 0.127262f, 0.127167f, 0.127072f,
+ 0.126977f, 0.126882f, 0.126787f, 0.126691f, 0.126596f, 0.126501f, 0.126406f, 0.126311f,
+ 0.126216f, 0.126121f, 0.126026f, 0.125931f, 0.125835f, 0.125740f, 0.125645f, 0.125550f,
+ 0.125455f, 0.125360f, 0.125265f, 0.125170f, 0.125075f, 0.124979f, 0.124884f, 0.124789f,
+ 0.124694f, 0.124599f, 0.124504f, 0.124409f, 0.124314f, 0.124218f, 0.124123f, 0.124028f,
+ 0.123933f, 0.123838f, 0.123743f, 0.123648f, 0.123552f, 0.123457f, 0.123362f, 0.123267f,
+ 0.123172f, 0.123077f, 0.122982f, 0.122886f, 0.122791f, 0.122696f, 0.122601f, 0.122506f,
+ 0.122411f, 0.122316f, 0.122220f, 0.122125f, 0.122030f, 0.121935f, 0.121840f, 0.121745f,
+ 0.121649f, 0.121554f, 0.121459f, 0.121364f, 0.121269f, 0.121174f, 0.121078f, 0.120983f,
+ 0.120888f, 0.120793f, 0.120698f, 0.120603f, 0.120507f, 0.120412f, 0.120317f, 0.120222f,
+ 0.120127f, 0.120032f, 0.119936f, 0.119841f, 0.119746f, 0.119651f, 0.119556f, 0.119460f,
+ 0.119365f, 0.119270f, 0.119175f, 0.119080f, 0.118984f, 0.118889f, 0.118794f, 0.118699f,
+ 0.118604f, 0.118508f, 0.118413f, 0.118318f, 0.118223f, 0.118128f, 0.118032f, 0.117937f,
+ 0.117842f, 0.117747f, 0.117652f, 0.117556f, 0.117461f, 0.117366f, 0.117271f, 0.117176f,
+ 0.117080f, 0.116985f, 0.116890f, 0.116795f, 0.116700f, 0.116604f, 0.116509f, 0.116414f,
+ 0.116319f, 0.116223f, 0.116128f, 0.116033f, 0.115938f, 0.115842f, 0.115747f, 0.115652f,
+ 0.115557f, 0.115462f, 0.115366f, 0.115271f, 0.115176f, 0.115081f, 0.114985f, 0.114890f,
+ 0.114795f, 0.114700f, 0.114604f, 0.114509f, 0.114414f, 0.114319f, 0.114223f, 0.114128f,
+ 0.114033f, 0.113938f, 0.113842f, 0.113747f, 0.113652f, 0.113557f, 0.113461f, 0.113366f,
+ 0.113271f, 0.113176f, 0.113080f, 0.112985f, 0.112890f, 0.112795f, 0.112699f, 0.112604f,
+ 0.112509f, 0.112414f, 0.112318f, 0.112223f, 0.112128f, 0.112033f, 0.111937f, 0.111842f,
+ 0.111747f, 0.111651f, 0.111556f, 0.111461f, 0.111366f, 0.111270f, 0.111175f, 0.111080f,
+ 0.110984f, 0.110889f, 0.110794f, 0.110699f, 0.110603f, 0.110508f, 0.110413f, 0.110317f,
+ 0.110222f, 0.110127f, 0.110032f, 0.109936f, 0.109841f, 0.109746f, 0.109650f, 0.109555f,
+ 0.109460f, 0.109365f, 0.109269f, 0.109174f, 0.109079f, 0.108983f, 0.108888f, 0.108793f,
+ 0.108697f, 0.108602f, 0.108507f, 0.108412f, 0.108316f, 0.108221f, 0.108126f, 0.108030f,
+ 0.107935f, 0.107840f, 0.107744f, 0.107649f, 0.107554f, 0.107458f, 0.107363f, 0.107268f,
+ 0.107172f, 0.107077f, 0.106982f, 0.106886f, 0.106791f, 0.106696f, 0.106600f, 0.106505f,
+ 0.106410f, 0.106314f, 0.106219f, 0.106124f, 0.106028f, 0.105933f, 0.105838f, 0.105742f,
+ 0.105647f, 0.105552f, 0.105456f, 0.105361f, 0.105266f, 0.105170f, 0.105075f, 0.104980f,
+ 0.104884f, 0.104789f, 0.104694f, 0.104598f, 0.104503f, 0.104408f, 0.104312f, 0.104217f,
+ 0.104122f, 0.104026f, 0.103931f, 0.103836f, 0.103740f, 0.103645f, 0.103550f, 0.103454f,
+ 0.103359f, 0.103263f, 0.103168f, 0.103073f, 0.102977f, 0.102882f, 0.102787f, 0.102691f,
+ 0.102596f, 0.102500f, 0.102405f, 0.102310f, 0.102214f, 0.102119f, 0.102024f, 0.101928f,
+ 0.101833f, 0.101738f, 0.101642f, 0.101547f, 0.101451f, 0.101356f, 0.101261f, 0.101165f,
+ 0.101070f, 0.100974f, 0.100879f, 0.100784f, 0.100688f, 0.100593f, 0.100498f, 0.100402f,
+ 0.100307f, 0.100211f, 0.100116f, 0.100021f, 0.099925f, 0.099830f, 0.099734f, 0.099639f,
+ 0.099544f, 0.099448f, 0.099353f, 0.099257f, 0.099162f, 0.099067f, 0.098971f, 0.098876f,
+ 0.098780f, 0.098685f, 0.098590f, 0.098494f, 0.098399f, 0.098303f, 0.098208f, 0.098113f,
+ 0.098017f, 0.097922f, 0.097826f, 0.097731f, 0.097635f, 0.097540f, 0.097445f, 0.097349f,
+ 0.097254f, 0.097158f, 0.097063f, 0.096968f, 0.096872f, 0.096777f, 0.096681f, 0.096586f,
+ 0.096490f, 0.096395f, 0.096300f, 0.096204f, 0.096109f, 0.096013f, 0.095918f, 0.095822f,
+ 0.095727f, 0.095632f, 0.095536f, 0.095441f, 0.095345f, 0.095250f, 0.095154f, 0.095059f,
+ 0.094963f, 0.094868f, 0.094773f, 0.094677f, 0.094582f, 0.094486f, 0.094391f, 0.094295f,
+ 0.094200f, 0.094104f, 0.094009f, 0.093914f, 0.093818f, 0.093723f, 0.093627f, 0.093532f,
+ 0.093436f, 0.093341f, 0.093245f, 0.093150f, 0.093055f, 0.092959f, 0.092864f, 0.092768f,
+ 0.092673f, 0.092577f, 0.092482f, 0.092386f, 0.092291f, 0.092195f, 0.092100f, 0.092004f,
+ 0.091909f, 0.091813f, 0.091718f, 0.091623f, 0.091527f, 0.091432f, 0.091336f, 0.091241f,
+ 0.091145f, 0.091050f, 0.090954f, 0.090859f, 0.090763f, 0.090668f, 0.090572f, 0.090477f,
+ 0.090381f, 0.090286f, 0.090190f, 0.090095f, 0.089999f, 0.089904f, 0.089808f, 0.089713f,
+ 0.089617f, 0.089522f, 0.089427f, 0.089331f, 0.089236f, 0.089140f, 0.089045f, 0.088949f,
+ 0.088854f, 0.088758f, 0.088663f, 0.088567f, 0.088472f, 0.088376f, 0.088281f, 0.088185f,
+ 0.088090f, 0.087994f, 0.087899f, 0.087803f, 0.087708f, 0.087612f, 0.087517f, 0.087421f,
+ 0.087326f, 0.087230f, 0.087135f, 0.087039f, 0.086943f, 0.086848f, 0.086752f, 0.086657f,
+ 0.086561f, 0.086466f, 0.086370f, 0.086275f, 0.086179f, 0.086084f, 0.085988f, 0.085893f,
+ 0.085797f, 0.085702f, 0.085606f, 0.085511f, 0.085415f, 0.085320f, 0.085224f, 0.085129f,
+ 0.085033f, 0.084938f, 0.084842f, 0.084747f, 0.084651f, 0.084555f, 0.084460f, 0.084364f,
+ 0.084269f, 0.084173f, 0.084078f, 0.083982f, 0.083887f, 0.083791f, 0.083696f, 0.083600f,
+ 0.083505f, 0.083409f, 0.083314f, 0.083218f, 0.083122f, 0.083027f, 0.082931f, 0.082836f,
+ 0.082740f, 0.082645f, 0.082549f, 0.082454f, 0.082358f, 0.082263f, 0.082167f, 0.082071f,
+ 0.081976f, 0.081880f, 0.081785f, 0.081689f, 0.081594f, 0.081498f, 0.081403f, 0.081307f,
+ 0.081211f, 0.081116f, 0.081020f, 0.080925f, 0.080829f, 0.080734f, 0.080638f, 0.080543f,
+ 0.080447f, 0.080351f, 0.080256f, 0.080160f, 0.080065f, 0.079969f, 0.079874f, 0.079778f,
+ 0.079682f, 0.079587f, 0.079491f, 0.079396f, 0.079300f, 0.079205f, 0.079109f, 0.079013f,
+ 0.078918f, 0.078822f, 0.078727f, 0.078631f, 0.078536f, 0.078440f, 0.078344f, 0.078249f,
+ 0.078153f, 0.078058f, 0.077962f, 0.077866f, 0.077771f, 0.077675f, 0.077580f, 0.077484f,
+ 0.077389f, 0.077293f, 0.077197f, 0.077102f, 0.077006f, 0.076911f, 0.076815f, 0.076719f,
+ 0.076624f, 0.076528f, 0.076433f, 0.076337f, 0.076241f, 0.076146f, 0.076050f, 0.075955f,
+ 0.075859f, 0.075764f, 0.075668f, 0.075572f, 0.075477f, 0.075381f, 0.075286f, 0.075190f,
+ 0.075094f, 0.074999f, 0.074903f, 0.074807f, 0.074712f, 0.074616f, 0.074521f, 0.074425f,
+ 0.074329f, 0.074234f, 0.074138f, 0.074043f, 0.073947f, 0.073851f, 0.073756f, 0.073660f,
+ 0.073565f, 0.073469f, 0.073373f, 0.073278f, 0.073182f, 0.073086f, 0.072991f, 0.072895f,
+ 0.072800f, 0.072704f, 0.072608f, 0.072513f, 0.072417f, 0.072322f, 0.072226f, 0.072130f,
+ 0.072035f, 0.071939f, 0.071843f, 0.071748f, 0.071652f, 0.071557f, 0.071461f, 0.071365f,
+ 0.071270f, 0.071174f, 0.071078f, 0.070983f, 0.070887f, 0.070791f, 0.070696f, 0.070600f,
+ 0.070505f, 0.070409f, 0.070313f, 0.070218f, 0.070122f, 0.070026f, 0.069931f, 0.069835f,
+ 0.069739f, 0.069644f, 0.069548f, 0.069453f, 0.069357f, 0.069261f, 0.069166f, 0.069070f,
+ 0.068974f, 0.068879f, 0.068783f, 0.068687f, 0.068592f, 0.068496f, 0.068400f, 0.068305f,
+ 0.068209f, 0.068113f, 0.068018f, 0.067922f, 0.067827f, 0.067731f, 0.067635f, 0.067540f,
+ 0.067444f, 0.067348f, 0.067253f, 0.067157f, 0.067061f, 0.066966f, 0.066870f, 0.066774f,
+ 0.066679f, 0.066583f, 0.066487f, 0.066392f, 0.066296f, 0.066200f, 0.066105f, 0.066009f,
+ 0.065913f, 0.065818f, 0.065722f, 0.065626f, 0.065531f, 0.065435f, 0.065339f, 0.065244f,
+ 0.065148f, 0.065052f, 0.064957f, 0.064861f, 0.064765f, 0.064670f, 0.064574f, 0.064478f,
+ 0.064383f, 0.064287f, 0.064191f, 0.064096f, 0.064000f, 0.063904f, 0.063809f, 0.063713f,
+ 0.063617f, 0.063522f, 0.063426f, 0.063330f, 0.063234f, 0.063139f, 0.063043f, 0.062947f,
+ 0.062852f, 0.062756f, 0.062660f, 0.062565f, 0.062469f, 0.062373f, 0.062278f, 0.062182f,
+ 0.062086f, 0.061991f, 0.061895f, 0.061799f, 0.061704f, 0.061608f, 0.061512f, 0.061416f,
+ 0.061321f, 0.061225f, 0.061129f, 0.061034f, 0.060938f, 0.060842f, 0.060747f, 0.060651f,
+ 0.060555f, 0.060459f, 0.060364f, 0.060268f, 0.060172f, 0.060077f, 0.059981f, 0.059885f,
+ 0.059790f, 0.059694f, 0.059598f, 0.059502f, 0.059407f, 0.059311f, 0.059215f, 0.059120f,
+ 0.059024f, 0.058928f, 0.058833f, 0.058737f, 0.058641f, 0.058545f, 0.058450f, 0.058354f,
+ 0.058258f, 0.058163f, 0.058067f, 0.057971f, 0.057875f, 0.057780f, 0.057684f, 0.057588f,
+ 0.057493f, 0.057397f, 0.057301f, 0.057205f, 0.057110f, 0.057014f, 0.056918f, 0.056823f,
+ 0.056727f, 0.056631f, 0.056535f, 0.056440f, 0.056344f, 0.056248f, 0.056152f, 0.056057f,
+ 0.055961f, 0.055865f, 0.055770f, 0.055674f, 0.055578f, 0.055482f, 0.055387f, 0.055291f,
+ 0.055195f, 0.055100f, 0.055004f, 0.054908f, 0.054812f, 0.054717f, 0.054621f, 0.054525f,
+ 0.054429f, 0.054334f, 0.054238f, 0.054142f, 0.054046f, 0.053951f, 0.053855f, 0.053759f,
+ 0.053664f, 0.053568f, 0.053472f, 0.053376f, 0.053281f, 0.053185f, 0.053089f, 0.052993f,
+ 0.052898f, 0.052802f, 0.052706f, 0.052610f, 0.052515f, 0.052419f, 0.052323f, 0.052227f,
+ 0.052132f, 0.052036f, 0.051940f, 0.051844f, 0.051749f, 0.051653f, 0.051557f, 0.051461f,
+ 0.051366f, 0.051270f, 0.051174f, 0.051078f, 0.050983f, 0.050887f, 0.050791f, 0.050696f,
+ 0.050600f, 0.050504f, 0.050408f, 0.050312f, 0.050217f, 0.050121f, 0.050025f, 0.049929f,
+ 0.049834f, 0.049738f, 0.049642f, 0.049546f, 0.049451f, 0.049355f, 0.049259f, 0.049163f,
+ 0.049068f, 0.048972f, 0.048876f, 0.048780f, 0.048685f, 0.048589f, 0.048493f, 0.048397f,
+ 0.048302f, 0.048206f, 0.048110f, 0.048014f, 0.047919f, 0.047823f, 0.047727f, 0.047631f,
+ 0.047535f, 0.047440f, 0.047344f, 0.047248f, 0.047152f, 0.047057f, 0.046961f, 0.046865f,
+ 0.046769f, 0.046674f, 0.046578f, 0.046482f, 0.046386f, 0.046290f, 0.046195f, 0.046099f,
+ 0.046003f, 0.045907f, 0.045812f, 0.045716f, 0.045620f, 0.045524f, 0.045429f, 0.045333f,
+ 0.045237f, 0.045141f, 0.045045f, 0.044950f, 0.044854f, 0.044758f, 0.044662f, 0.044567f,
+ 0.044471f, 0.044375f, 0.044279f, 0.044183f, 0.044088f, 0.043992f, 0.043896f, 0.043800f,
+ 0.043705f, 0.043609f, 0.043513f, 0.043417f, 0.043321f, 0.043226f, 0.043130f, 0.043034f,
+ 0.042938f, 0.042842f, 0.042747f, 0.042651f, 0.042555f, 0.042459f, 0.042364f, 0.042268f,
+ 0.042172f, 0.042076f, 0.041980f, 0.041885f, 0.041789f, 0.041693f, 0.041597f, 0.041501f,
+ 0.041406f, 0.041310f, 0.041214f, 0.041118f, 0.041022f, 0.040927f, 0.040831f, 0.040735f,
+ 0.040639f, 0.040544f, 0.040448f, 0.040352f, 0.040256f, 0.040160f, 0.040065f, 0.039969f,
+ 0.039873f, 0.039777f, 0.039681f, 0.039586f, 0.039490f, 0.039394f, 0.039298f, 0.039202f,
+ 0.039107f, 0.039011f, 0.038915f, 0.038819f, 0.038723f, 0.038628f, 0.038532f, 0.038436f,
+ 0.038340f, 0.038244f, 0.038149f, 0.038053f, 0.037957f, 0.037861f, 0.037765f, 0.037669f,
+ 0.037574f, 0.037478f, 0.037382f, 0.037286f, 0.037190f, 0.037095f, 0.036999f, 0.036903f,
+ 0.036807f, 0.036711f, 0.036616f, 0.036520f, 0.036424f, 0.036328f, 0.036232f, 0.036137f,
+ 0.036041f, 0.035945f, 0.035849f, 0.035753f, 0.035657f, 0.035562f, 0.035466f, 0.035370f,
+ 0.035274f, 0.035178f, 0.035083f, 0.034987f, 0.034891f, 0.034795f, 0.034699f, 0.034604f,
+ 0.034508f, 0.034412f, 0.034316f, 0.034220f, 0.034124f, 0.034029f, 0.033933f, 0.033837f,
+ 0.033741f, 0.033645f, 0.033550f, 0.033454f, 0.033358f, 0.033262f, 0.033166f, 0.033070f,
+ 0.032975f, 0.032879f, 0.032783f, 0.032687f, 0.032591f, 0.032495f, 0.032400f, 0.032304f,
+ 0.032208f, 0.032112f, 0.032016f, 0.031921f, 0.031825f, 0.031729f, 0.031633f, 0.031537f,
+ 0.031441f, 0.031346f, 0.031250f, 0.031154f, 0.031058f, 0.030962f, 0.030866f, 0.030771f,
+ 0.030675f, 0.030579f, 0.030483f, 0.030387f, 0.030291f, 0.030196f, 0.030100f, 0.030004f,
+ 0.029908f, 0.029812f, 0.029717f, 0.029621f, 0.029525f, 0.029429f, 0.029333f, 0.029237f,
+ 0.029142f, 0.029046f, 0.028950f, 0.028854f, 0.028758f, 0.028662f, 0.028567f, 0.028471f,
+ 0.028375f, 0.028279f, 0.028183f, 0.028087f, 0.027991f, 0.027896f, 0.027800f, 0.027704f,
+ 0.027608f, 0.027512f, 0.027416f, 0.027321f, 0.027225f, 0.027129f, 0.027033f, 0.026937f,
+ 0.026841f, 0.026746f, 0.026650f, 0.026554f, 0.026458f, 0.026362f, 0.026266f, 0.026171f,
+ 0.026075f, 0.025979f, 0.025883f, 0.025787f, 0.025691f, 0.025596f, 0.025500f, 0.025404f,
+ 0.025308f, 0.025212f, 0.025116f, 0.025020f, 0.024925f, 0.024829f, 0.024733f, 0.024637f,
+ 0.024541f, 0.024445f, 0.024350f, 0.024254f, 0.024158f, 0.024062f, 0.023966f, 0.023870f,
+ 0.023774f, 0.023679f, 0.023583f, 0.023487f, 0.023391f, 0.023295f, 0.023199f, 0.023104f,
+ 0.023008f, 0.022912f, 0.022816f, 0.022720f, 0.022624f, 0.022528f, 0.022433f, 0.022337f,
+ 0.022241f, 0.022145f, 0.022049f, 0.021953f, 0.021857f, 0.021762f, 0.021666f, 0.021570f,
+ 0.021474f, 0.021378f, 0.021282f, 0.021187f, 0.021091f, 0.020995f, 0.020899f, 0.020803f,
+ 0.020707f, 0.020611f, 0.020516f, 0.020420f, 0.020324f, 0.020228f, 0.020132f, 0.020036f,
+ 0.019940f, 0.019845f, 0.019749f, 0.019653f, 0.019557f, 0.019461f, 0.019365f, 0.019269f,
+ 0.019174f, 0.019078f, 0.018982f, 0.018886f, 0.018790f, 0.018694f, 0.018598f, 0.018503f,
+ 0.018407f, 0.018311f, 0.018215f, 0.018119f, 0.018023f, 0.017927f, 0.017832f, 0.017736f,
+ 0.017640f, 0.017544f, 0.017448f, 0.017352f, 0.017256f, 0.017161f, 0.017065f, 0.016969f,
+ 0.016873f, 0.016777f, 0.016681f, 0.016585f, 0.016490f, 0.016394f, 0.016298f, 0.016202f,
+ 0.016106f, 0.016010f, 0.015914f, 0.015819f, 0.015723f, 0.015627f, 0.015531f, 0.015435f,
+ 0.015339f, 0.015243f, 0.015147f, 0.015052f, 0.014956f, 0.014860f, 0.014764f, 0.014668f,
+ 0.014572f, 0.014476f, 0.014381f, 0.014285f, 0.014189f, 0.014093f, 0.013997f, 0.013901f,
+ 0.013805f, 0.013710f, 0.013614f, 0.013518f, 0.013422f, 0.013326f, 0.013230f, 0.013134f,
+ 0.013038f, 0.012943f, 0.012847f, 0.012751f, 0.012655f, 0.012559f, 0.012463f, 0.012367f,
+ 0.012272f, 0.012176f, 0.012080f, 0.011984f, 0.011888f, 0.011792f, 0.011696f, 0.011600f,
+ 0.011505f, 0.011409f, 0.011313f, 0.011217f, 0.011121f, 0.011025f, 0.010929f, 0.010834f,
+ 0.010738f, 0.010642f, 0.010546f, 0.010450f, 0.010354f, 0.010258f, 0.010162f, 0.010067f,
+ 0.009971f, 0.009875f, 0.009779f, 0.009683f, 0.009587f, 0.009491f, 0.009395f, 0.009300f,
+ 0.009204f, 0.009108f, 0.009012f, 0.008916f, 0.008820f, 0.008724f, 0.008629f, 0.008533f,
+ 0.008437f, 0.008341f, 0.008245f, 0.008149f, 0.008053f, 0.007957f, 0.007862f, 0.007766f,
+ 0.007670f, 0.007574f, 0.007478f, 0.007382f, 0.007286f, 0.007190f, 0.007095f, 0.006999f,
+ 0.006903f, 0.006807f, 0.006711f, 0.006615f, 0.006519f, 0.006424f, 0.006328f, 0.006232f,
+ 0.006136f, 0.006040f, 0.005944f, 0.005848f, 0.005752f, 0.005657f, 0.005561f, 0.005465f,
+ 0.005369f, 0.005273f, 0.005177f, 0.005081f, 0.004985f, 0.004890f, 0.004794f, 0.004698f,
+ 0.004602f, 0.004506f, 0.004410f, 0.004314f, 0.004218f, 0.004123f, 0.004027f, 0.003931f,
+ 0.003835f, 0.003739f, 0.003643f, 0.003547f, 0.003451f, 0.003356f, 0.003260f, 0.003164f,
+ 0.003068f, 0.002972f, 0.002876f, 0.002780f, 0.002684f, 0.002589f, 0.002493f, 0.002397f,
+ 0.002301f, 0.002205f, 0.002109f, 0.002013f, 0.001917f, 0.001822f, 0.001726f, 0.001630f,
+ 0.001534f, 0.001438f, 0.001342f, 0.001246f, 0.001150f, 0.001055f, 0.000959f, 0.000863f,
+ 0.000767f, 0.000671f, 0.000575f, 0.000479f, 0.000383f, 0.000288f, 0.000192f, 0.000096f,
+ 0.000000f, 0.000096f, 0.000192f, 0.000288f, 0.000383f, 0.000479f, 0.000575f, 0.000671f,
+ 0.000767f, 0.000863f, 0.000959f, 0.001055f, 0.001150f, 0.001246f, 0.001342f, 0.001438f,
+ 0.001534f, 0.001630f, 0.001726f, 0.001822f, 0.001917f, 0.002013f, 0.002109f, 0.002205f,
+ 0.002301f, 0.002397f, 0.002493f, 0.002589f, 0.002684f, 0.002780f, 0.002876f, 0.002972f,
+ 0.003068f, 0.003164f, 0.003260f, 0.003356f, 0.003451f, 0.003547f, 0.003643f, 0.003739f,
+ 0.003835f, 0.003931f, 0.004027f, 0.004123f, 0.004218f, 0.004314f, 0.004410f, 0.004506f,
+ 0.004602f, 0.004698f, 0.004794f, 0.004890f, 0.004985f, 0.005081f, 0.005177f, 0.005273f,
+ 0.005369f, 0.005465f, 0.005561f, 0.005657f, 0.005752f, 0.005848f, 0.005944f, 0.006040f,
+ 0.006136f, 0.006232f, 0.006328f, 0.006424f, 0.006519f, 0.006615f, 0.006711f, 0.006807f,
+ 0.006903f, 0.006999f, 0.007095f, 0.007190f, 0.007286f, 0.007382f, 0.007478f, 0.007574f,
+ 0.007670f, 0.007766f, 0.007862f, 0.007957f, 0.008053f, 0.008149f, 0.008245f, 0.008341f,
+ 0.008437f, 0.008533f, 0.008629f, 0.008724f, 0.008820f, 0.008916f, 0.009012f, 0.009108f,
+ 0.009204f, 0.009300f, 0.009395f, 0.009491f, 0.009587f, 0.009683f, 0.009779f, 0.009875f,
+ 0.009971f, 0.010067f, 0.010162f, 0.010258f, 0.010354f, 0.010450f, 0.010546f, 0.010642f,
+ 0.010738f, 0.010834f, 0.010929f, 0.011025f, 0.011121f, 0.011217f, 0.011313f, 0.011409f,
+ 0.011505f, 0.011600f, 0.011696f, 0.011792f, 0.011888f, 0.011984f, 0.012080f, 0.012176f,
+ 0.012272f, 0.012367f, 0.012463f, 0.012559f, 0.012655f, 0.012751f, 0.012847f, 0.012943f,
+ 0.013038f, 0.013134f, 0.013230f, 0.013326f, 0.013422f, 0.013518f, 0.013614f, 0.013710f,
+ 0.013805f, 0.013901f, 0.013997f, 0.014093f, 0.014189f, 0.014285f, 0.014381f, 0.014476f,
+ 0.014572f, 0.014668f, 0.014764f, 0.014860f, 0.014956f, 0.015052f, 0.015147f, 0.015243f,
+ 0.015339f, 0.015435f, 0.015531f, 0.015627f, 0.015723f, 0.015819f, 0.015914f, 0.016010f,
+ 0.016106f, 0.016202f, 0.016298f, 0.016394f, 0.016490f, 0.016585f, 0.016681f, 0.016777f,
+ 0.016873f, 0.016969f, 0.017065f, 0.017161f, 0.017256f, 0.017352f, 0.017448f, 0.017544f,
+ 0.017640f, 0.017736f, 0.017832f, 0.017927f, 0.018023f, 0.018119f, 0.018215f, 0.018311f,
+ 0.018407f, 0.018503f, 0.018598f, 0.018694f, 0.018790f, 0.018886f, 0.018982f, 0.019078f,
+ 0.019174f, 0.019269f, 0.019365f, 0.019461f, 0.019557f, 0.019653f, 0.019749f, 0.019845f,
+ 0.019940f, 0.020036f, 0.020132f, 0.020228f, 0.020324f, 0.020420f, 0.020516f, 0.020611f,
+ 0.020707f, 0.020803f, 0.020899f, 0.020995f, 0.021091f, 0.021187f, 0.021282f, 0.021378f,
+ 0.021474f, 0.021570f, 0.021666f, 0.021762f, 0.021857f, 0.021953f, 0.022049f, 0.022145f,
+ 0.022241f, 0.022337f, 0.022433f, 0.022528f, 0.022624f, 0.022720f, 0.022816f, 0.022912f,
+ 0.023008f, 0.023104f, 0.023199f, 0.023295f, 0.023391f, 0.023487f, 0.023583f, 0.023679f,
+ 0.023774f, 0.023870f, 0.023966f, 0.024062f, 0.024158f, 0.024254f, 0.024350f, 0.024445f,
+ 0.024541f, 0.024637f, 0.024733f, 0.024829f, 0.024925f, 0.025020f, 0.025116f, 0.025212f,
+ 0.025308f, 0.025404f, 0.025500f, 0.025596f, 0.025691f, 0.025787f, 0.025883f, 0.025979f,
+ 0.026075f, 0.026171f, 0.026266f, 0.026362f, 0.026458f, 0.026554f, 0.026650f, 0.026746f,
+ 0.026841f, 0.026937f, 0.027033f, 0.027129f, 0.027225f, 0.027321f, 0.027416f, 0.027512f,
+ 0.027608f, 0.027704f, 0.027800f, 0.027896f, 0.027991f, 0.028087f, 0.028183f, 0.028279f,
+ 0.028375f, 0.028471f, 0.028567f, 0.028662f, 0.028758f, 0.028854f, 0.028950f, 0.029046f,
+ 0.029142f, 0.029237f, 0.029333f, 0.029429f, 0.029525f, 0.029621f, 0.029717f, 0.029812f,
+ 0.029908f, 0.030004f, 0.030100f, 0.030196f, 0.030291f, 0.030387f, 0.030483f, 0.030579f,
+ 0.030675f, 0.030771f, 0.030866f, 0.030962f, 0.031058f, 0.031154f, 0.031250f, 0.031346f,
+ 0.031441f, 0.031537f, 0.031633f, 0.031729f, 0.031825f, 0.031921f, 0.032016f, 0.032112f,
+ 0.032208f, 0.032304f, 0.032400f, 0.032495f, 0.032591f, 0.032687f, 0.032783f, 0.032879f,
+ 0.032975f, 0.033070f, 0.033166f, 0.033262f, 0.033358f, 0.033454f, 0.033550f, 0.033645f,
+ 0.033741f, 0.033837f, 0.033933f, 0.034029f, 0.034124f, 0.034220f, 0.034316f, 0.034412f,
+ 0.034508f, 0.034604f, 0.034699f, 0.034795f, 0.034891f, 0.034987f, 0.035083f, 0.035178f,
+ 0.035274f, 0.035370f, 0.035466f, 0.035562f, 0.035657f, 0.035753f, 0.035849f, 0.035945f,
+ 0.036041f, 0.036137f, 0.036232f, 0.036328f, 0.036424f, 0.036520f, 0.036616f, 0.036711f,
+ 0.036807f, 0.036903f, 0.036999f, 0.037095f, 0.037190f, 0.037286f, 0.037382f, 0.037478f,
+ 0.037574f, 0.037669f, 0.037765f, 0.037861f, 0.037957f, 0.038053f, 0.038149f, 0.038244f,
+ 0.038340f, 0.038436f, 0.038532f, 0.038628f, 0.038723f, 0.038819f, 0.038915f, 0.039011f,
+ 0.039107f, 0.039202f, 0.039298f, 0.039394f, 0.039490f, 0.039586f, 0.039681f, 0.039777f,
+ 0.039873f, 0.039969f, 0.040065f, 0.040160f, 0.040256f, 0.040352f, 0.040448f, 0.040544f,
+ 0.040639f, 0.040735f, 0.040831f, 0.040927f, 0.041022f, 0.041118f, 0.041214f, 0.041310f,
+ 0.041406f, 0.041501f, 0.041597f, 0.041693f, 0.041789f, 0.041885f, 0.041980f, 0.042076f,
+ 0.042172f, 0.042268f, 0.042364f, 0.042459f, 0.042555f, 0.042651f, 0.042747f, 0.042842f,
+ 0.042938f, 0.043034f, 0.043130f, 0.043226f, 0.043321f, 0.043417f, 0.043513f, 0.043609f,
+ 0.043705f, 0.043800f, 0.043896f, 0.043992f, 0.044088f, 0.044183f, 0.044279f, 0.044375f,
+ 0.044471f, 0.044567f, 0.044662f, 0.044758f, 0.044854f, 0.044950f, 0.045045f, 0.045141f,
+ 0.045237f, 0.045333f, 0.045429f, 0.045524f, 0.045620f, 0.045716f, 0.045812f, 0.045907f,
+ 0.046003f, 0.046099f, 0.046195f, 0.046290f, 0.046386f, 0.046482f, 0.046578f, 0.046674f,
+ 0.046769f, 0.046865f, 0.046961f, 0.047057f, 0.047152f, 0.047248f, 0.047344f, 0.047440f,
+ 0.047535f, 0.047631f, 0.047727f, 0.047823f, 0.047919f, 0.048014f, 0.048110f, 0.048206f,
+ 0.048302f, 0.048397f, 0.048493f, 0.048589f, 0.048685f, 0.048780f, 0.048876f, 0.048972f,
+ 0.049068f, 0.049163f, 0.049259f, 0.049355f, 0.049451f, 0.049546f, 0.049642f, 0.049738f,
+ 0.049834f, 0.049929f, 0.050025f, 0.050121f, 0.050217f, 0.050312f, 0.050408f, 0.050504f,
+ 0.050600f, 0.050696f, 0.050791f, 0.050887f, 0.050983f, 0.051078f, 0.051174f, 0.051270f,
+ 0.051366f, 0.051461f, 0.051557f, 0.051653f, 0.051749f, 0.051844f, 0.051940f, 0.052036f,
+ 0.052132f, 0.052227f, 0.052323f, 0.052419f, 0.052515f, 0.052610f, 0.052706f, 0.052802f,
+ 0.052898f, 0.052993f, 0.053089f, 0.053185f, 0.053281f, 0.053376f, 0.053472f, 0.053568f,
+ 0.053664f, 0.053759f, 0.053855f, 0.053951f, 0.054046f, 0.054142f, 0.054238f, 0.054334f,
+ 0.054429f, 0.054525f, 0.054621f, 0.054717f, 0.054812f, 0.054908f, 0.055004f, 0.055100f,
+ 0.055195f, 0.055291f, 0.055387f, 0.055482f, 0.055578f, 0.055674f, 0.055770f, 0.055865f,
+ 0.055961f, 0.056057f, 0.056152f, 0.056248f, 0.056344f, 0.056440f, 0.056535f, 0.056631f,
+ 0.056727f, 0.056823f, 0.056918f, 0.057014f, 0.057110f, 0.057205f, 0.057301f, 0.057397f,
+ 0.057493f, 0.057588f, 0.057684f, 0.057780f, 0.057875f, 0.057971f, 0.058067f, 0.058163f,
+ 0.058258f, 0.058354f, 0.058450f, 0.058545f, 0.058641f, 0.058737f, 0.058833f, 0.058928f,
+ 0.059024f, 0.059120f, 0.059215f, 0.059311f, 0.059407f, 0.059502f, 0.059598f, 0.059694f,
+ 0.059790f, 0.059885f, 0.059981f, 0.060077f, 0.060172f, 0.060268f, 0.060364f, 0.060459f,
+ 0.060555f, 0.060651f, 0.060747f, 0.060842f, 0.060938f, 0.061034f, 0.061129f, 0.061225f,
+ 0.061321f, 0.061416f, 0.061512f, 0.061608f, 0.061704f, 0.061799f, 0.061895f, 0.061991f,
+ 0.062086f, 0.062182f, 0.062278f, 0.062373f, 0.062469f, 0.062565f, 0.062660f, 0.062756f,
+ 0.062852f, 0.062947f, 0.063043f, 0.063139f, 0.063234f, 0.063330f, 0.063426f, 0.063522f,
+ 0.063617f, 0.063713f, 0.063809f, 0.063904f, 0.064000f, 0.064096f, 0.064191f, 0.064287f,
+ 0.064383f, 0.064478f, 0.064574f, 0.064670f, 0.064765f, 0.064861f, 0.064957f, 0.065052f,
+ 0.065148f, 0.065244f, 0.065339f, 0.065435f, 0.065531f, 0.065626f, 0.065722f, 0.065818f,
+ 0.065913f, 0.066009f, 0.066105f, 0.066200f, 0.066296f, 0.066392f, 0.066487f, 0.066583f,
+ 0.066679f, 0.066774f, 0.066870f, 0.066966f, 0.067061f, 0.067157f, 0.067253f, 0.067348f,
+ 0.067444f, 0.067540f, 0.067635f, 0.067731f, 0.067827f, 0.067922f, 0.068018f, 0.068113f,
+ 0.068209f, 0.068305f, 0.068400f, 0.068496f, 0.068592f, 0.068687f, 0.068783f, 0.068879f,
+ 0.068974f, 0.069070f, 0.069166f, 0.069261f, 0.069357f, 0.069453f, 0.069548f, 0.069644f,
+ 0.069739f, 0.069835f, 0.069931f, 0.070026f, 0.070122f, 0.070218f, 0.070313f, 0.070409f,
+ 0.070505f, 0.070600f, 0.070696f, 0.070791f, 0.070887f, 0.070983f, 0.071078f, 0.071174f,
+ 0.071270f, 0.071365f, 0.071461f, 0.071557f, 0.071652f, 0.071748f, 0.071843f, 0.071939f,
+ 0.072035f, 0.072130f, 0.072226f, 0.072322f, 0.072417f, 0.072513f, 0.072608f, 0.072704f,
+ 0.072800f, 0.072895f, 0.072991f, 0.073086f, 0.073182f, 0.073278f, 0.073373f, 0.073469f,
+ 0.073565f, 0.073660f, 0.073756f, 0.073851f, 0.073947f, 0.074043f, 0.074138f, 0.074234f,
+ 0.074329f, 0.074425f, 0.074521f, 0.074616f, 0.074712f, 0.074807f, 0.074903f, 0.074999f,
+ 0.075094f, 0.075190f, 0.075286f, 0.075381f, 0.075477f, 0.075572f, 0.075668f, 0.075764f,
+ 0.075859f, 0.075955f, 0.076050f, 0.076146f, 0.076241f, 0.076337f, 0.076433f, 0.076528f,
+ 0.076624f, 0.076719f, 0.076815f, 0.076911f, 0.077006f, 0.077102f, 0.077197f, 0.077293f,
+ 0.077389f, 0.077484f, 0.077580f, 0.077675f, 0.077771f, 0.077866f, 0.077962f, 0.078058f,
+ 0.078153f, 0.078249f, 0.078344f, 0.078440f, 0.078536f, 0.078631f, 0.078727f, 0.078822f,
+ 0.078918f, 0.079013f, 0.079109f, 0.079205f, 0.079300f, 0.079396f, 0.079491f, 0.079587f,
+ 0.079682f, 0.079778f, 0.079874f, 0.079969f, 0.080065f, 0.080160f, 0.080256f, 0.080351f,
+ 0.080447f, 0.080543f, 0.080638f, 0.080734f, 0.080829f, 0.080925f, 0.081020f, 0.081116f,
+ 0.081211f, 0.081307f, 0.081403f, 0.081498f, 0.081594f, 0.081689f, 0.081785f, 0.081880f,
+ 0.081976f, 0.082071f, 0.082167f, 0.082263f, 0.082358f, 0.082454f, 0.082549f, 0.082645f,
+ 0.082740f, 0.082836f, 0.082931f, 0.083027f, 0.083122f, 0.083218f, 0.083314f, 0.083409f,
+ 0.083505f, 0.083600f, 0.083696f, 0.083791f, 0.083887f, 0.083982f, 0.084078f, 0.084173f,
+ 0.084269f, 0.084364f, 0.084460f, 0.084555f, 0.084651f, 0.084747f, 0.084842f, 0.084938f,
+ 0.085033f, 0.085129f, 0.085224f, 0.085320f, 0.085415f, 0.085511f, 0.085606f, 0.085702f,
+ 0.085797f, 0.085893f, 0.085988f, 0.086084f, 0.086179f, 0.086275f, 0.086370f, 0.086466f,
+ 0.086561f, 0.086657f, 0.086752f, 0.086848f, 0.086943f, 0.087039f, 0.087135f, 0.087230f,
+ 0.087326f, 0.087421f, 0.087517f, 0.087612f, 0.087708f, 0.087803f, 0.087899f, 0.087994f,
+ 0.088090f, 0.088185f, 0.088281f, 0.088376f, 0.088472f, 0.088567f, 0.088663f, 0.088758f,
+ 0.088854f, 0.088949f, 0.089045f, 0.089140f, 0.089236f, 0.089331f, 0.089427f, 0.089522f,
+ 0.089617f, 0.089713f, 0.089808f, 0.089904f, 0.089999f, 0.090095f, 0.090190f, 0.090286f,
+ 0.090381f, 0.090477f, 0.090572f, 0.090668f, 0.090763f, 0.090859f, 0.090954f, 0.091050f,
+ 0.091145f, 0.091241f, 0.091336f, 0.091432f, 0.091527f, 0.091623f, 0.091718f, 0.091813f,
+ 0.091909f, 0.092004f, 0.092100f, 0.092195f, 0.092291f, 0.092386f, 0.092482f, 0.092577f,
+ 0.092673f, 0.092768f, 0.092864f, 0.092959f, 0.093055f, 0.093150f, 0.093245f, 0.093341f,
+ 0.093436f, 0.093532f, 0.093627f, 0.093723f, 0.093818f, 0.093914f, 0.094009f, 0.094104f,
+ 0.094200f, 0.094295f, 0.094391f, 0.094486f, 0.094582f, 0.094677f, 0.094773f, 0.094868f,
+ 0.094963f, 0.095059f, 0.095154f, 0.095250f, 0.095345f, 0.095441f, 0.095536f, 0.095632f,
+ 0.095727f, 0.095822f, 0.095918f, 0.096013f, 0.096109f, 0.096204f, 0.096300f, 0.096395f,
+ 0.096490f, 0.096586f, 0.096681f, 0.096777f, 0.096872f, 0.096968f, 0.097063f, 0.097158f,
+ 0.097254f, 0.097349f, 0.097445f, 0.097540f, 0.097635f, 0.097731f, 0.097826f, 0.097922f,
+ 0.098017f, 0.098113f, 0.098208f, 0.098303f, 0.098399f, 0.098494f, 0.098590f, 0.098685f,
+ 0.098780f, 0.098876f, 0.098971f, 0.099067f, 0.099162f, 0.099257f, 0.099353f, 0.099448f,
+ 0.099544f, 0.099639f, 0.099734f, 0.099830f, 0.099925f, 0.100021f, 0.100116f, 0.100211f,
+ 0.100307f, 0.100402f, 0.100498f, 0.100593f, 0.100688f, 0.100784f, 0.100879f, 0.100974f,
+ 0.101070f, 0.101165f, 0.101261f, 0.101356f, 0.101451f, 0.101547f, 0.101642f, 0.101738f,
+ 0.101833f, 0.101928f, 0.102024f, 0.102119f, 0.102214f, 0.102310f, 0.102405f, 0.102500f,
+ 0.102596f, 0.102691f, 0.102787f, 0.102882f, 0.102977f, 0.103073f, 0.103168f, 0.103263f,
+ 0.103359f, 0.103454f, 0.103550f, 0.103645f, 0.103740f, 0.103836f, 0.103931f, 0.104026f,
+ 0.104122f, 0.104217f, 0.104312f, 0.104408f, 0.104503f, 0.104598f, 0.104694f, 0.104789f,
+ 0.104884f, 0.104980f, 0.105075f, 0.105170f, 0.105266f, 0.105361f, 0.105456f, 0.105552f,
+ 0.105647f, 0.105742f, 0.105838f, 0.105933f, 0.106028f, 0.106124f, 0.106219f, 0.106314f,
+ 0.106410f, 0.106505f, 0.106600f, 0.106696f, 0.106791f, 0.106886f, 0.106982f, 0.107077f,
+ 0.107172f, 0.107268f, 0.107363f, 0.107458f, 0.107554f, 0.107649f, 0.107744f, 0.107840f,
+ 0.107935f, 0.108030f, 0.108126f, 0.108221f, 0.108316f, 0.108412f, 0.108507f, 0.108602f,
+ 0.108697f, 0.108793f, 0.108888f, 0.108983f, 0.109079f, 0.109174f, 0.109269f, 0.109365f,
+ 0.109460f, 0.109555f, 0.109650f, 0.109746f, 0.109841f, 0.109936f, 0.110032f, 0.110127f,
+ 0.110222f, 0.110317f, 0.110413f, 0.110508f, 0.110603f, 0.110699f, 0.110794f, 0.110889f,
+ 0.110984f, 0.111080f, 0.111175f, 0.111270f, 0.111366f, 0.111461f, 0.111556f, 0.111651f,
+ 0.111747f, 0.111842f, 0.111937f, 0.112033f, 0.112128f, 0.112223f, 0.112318f, 0.112414f,
+ 0.112509f, 0.112604f, 0.112699f, 0.112795f, 0.112890f, 0.112985f, 0.113080f, 0.113176f,
+ 0.113271f, 0.113366f, 0.113461f, 0.113557f, 0.113652f, 0.113747f, 0.113842f, 0.113938f,
+ 0.114033f, 0.114128f, 0.114223f, 0.114319f, 0.114414f, 0.114509f, 0.114604f, 0.114700f,
+ 0.114795f, 0.114890f, 0.114985f, 0.115081f, 0.115176f, 0.115271f, 0.115366f, 0.115462f,
+ 0.115557f, 0.115652f, 0.115747f, 0.115842f, 0.115938f, 0.116033f, 0.116128f, 0.116223f,
+ 0.116319f, 0.116414f, 0.116509f, 0.116604f, 0.116700f, 0.116795f, 0.116890f, 0.116985f,
+ 0.117080f, 0.117176f, 0.117271f, 0.117366f, 0.117461f, 0.117556f, 0.117652f, 0.117747f,
+ 0.117842f, 0.117937f, 0.118032f, 0.118128f, 0.118223f, 0.118318f, 0.118413f, 0.118508f,
+ 0.118604f, 0.118699f, 0.118794f, 0.118889f, 0.118984f, 0.119080f, 0.119175f, 0.119270f,
+ 0.119365f, 0.119460f, 0.119556f, 0.119651f, 0.119746f, 0.119841f, 0.119936f, 0.120032f,
+ 0.120127f, 0.120222f, 0.120317f, 0.120412f, 0.120507f, 0.120603f, 0.120698f, 0.120793f,
+ 0.120888f, 0.120983f, 0.121078f, 0.121174f, 0.121269f, 0.121364f, 0.121459f, 0.121554f,
+ 0.121649f, 0.121745f, 0.121840f, 0.121935f, 0.122030f, 0.122125f, 0.122220f, 0.122316f,
+ 0.122411f, 0.122506f, 0.122601f, 0.122696f, 0.122791f, 0.122886f, 0.122982f, 0.123077f,
+ 0.123172f, 0.123267f, 0.123362f, 0.123457f, 0.123552f, 0.123648f, 0.123743f, 0.123838f,
+ 0.123933f, 0.124028f, 0.124123f, 0.124218f, 0.124314f, 0.124409f, 0.124504f, 0.124599f,
+ 0.124694f, 0.124789f, 0.124884f, 0.124979f, 0.125075f, 0.125170f, 0.125265f, 0.125360f,
+ 0.125455f, 0.125550f, 0.125645f, 0.125740f, 0.125835f, 0.125931f, 0.126026f, 0.126121f,
+ 0.126216f, 0.126311f, 0.126406f, 0.126501f, 0.126596f, 0.126691f, 0.126787f, 0.126882f,
+ 0.126977f, 0.127072f, 0.127167f, 0.127262f, 0.127357f, 0.127452f, 0.127547f, 0.127642f,
+ 0.127737f, 0.127833f, 0.127928f, 0.128023f, 0.128118f, 0.128213f, 0.128308f, 0.128403f,
+ 0.128498f, 0.128593f, 0.128688f, 0.128783f, 0.128878f, 0.128973f, 0.129069f, 0.129164f,
+ 0.129259f, 0.129354f, 0.129449f, 0.129544f, 0.129639f, 0.129734f, 0.129829f, 0.129924f,
+ 0.130019f, 0.130114f, 0.130209f, 0.130304f, 0.130399f, 0.130495f, 0.130590f, 0.130685f,
+ 0.130780f, 0.130875f, 0.130970f, 0.131065f, 0.131160f, 0.131255f, 0.131350f, 0.131445f,
+ 0.131540f, 0.131635f, 0.131730f, 0.131825f, 0.131920f, 0.132015f, 0.132110f, 0.132205f,
+ 0.132300f, 0.132395f, 0.132490f, 0.132585f, 0.132680f, 0.132775f, 0.132870f, 0.132966f,
+ 0.133061f, 0.133156f, 0.133251f, 0.133346f, 0.133441f, 0.133536f, 0.133631f, 0.133726f,
+ 0.133821f, 0.133916f, 0.134011f, 0.134106f, 0.134201f, 0.134296f, 0.134391f, 0.134486f,
+ 0.134581f, 0.134676f, 0.134771f, 0.134866f, 0.134961f, 0.135056f, 0.135151f, 0.135246f,
+ 0.135341f, 0.135436f, 0.135531f, 0.135626f, 0.135721f, 0.135816f, 0.135911f, 0.136006f,
+ 0.136101f, 0.136196f, 0.136291f, 0.136386f, 0.136480f, 0.136575f, 0.136670f, 0.136765f,
+ 0.136860f, 0.136955f, 0.137050f, 0.137145f, 0.137240f, 0.137335f, 0.137430f, 0.137525f,
+ 0.137620f, 0.137715f, 0.137810f, 0.137905f, 0.138000f, 0.138095f, 0.138190f, 0.138285f,
+ 0.138380f, 0.138475f, 0.138570f, 0.138665f, 0.138760f, 0.138855f, 0.138949f, 0.139044f,
+ 0.139139f, 0.139234f, 0.139329f, 0.139424f, 0.139519f, 0.139614f, 0.139709f, 0.139804f,
+ 0.139899f, 0.139994f, 0.140089f, 0.140184f, 0.140279f, 0.140373f, 0.140468f, 0.140563f,
+ 0.140658f, 0.140753f, 0.140848f, 0.140943f, 0.141038f, 0.141133f, 0.141228f, 0.141323f,
+ 0.141418f, 0.141512f, 0.141607f, 0.141702f, 0.141797f, 0.141892f, 0.141987f, 0.142082f,
+ 0.142177f, 0.142272f, 0.142367f, 0.142461f, 0.142556f, 0.142651f, 0.142746f, 0.142841f,
+ 0.142936f, 0.143031f, 0.143126f, 0.143221f, 0.143316f, 0.143410f, 0.143505f, 0.143600f,
+ 0.143695f, 0.143790f, 0.143885f, 0.143980f, 0.144075f, 0.144169f, 0.144264f, 0.144359f,
+ 0.144454f, 0.144549f, 0.144644f, 0.144739f, 0.144833f, 0.144928f, 0.145023f, 0.145118f,
+ 0.145213f, 0.145308f, 0.145403f, 0.145497f, 0.145592f, 0.145687f, 0.145782f, 0.145877f,
+ 0.145972f, 0.146067f, 0.146161f, 0.146256f, 0.146351f, 0.146446f, 0.146541f, 0.146636f,
+ 0.146730f, 0.146825f, 0.146920f, 0.147015f, 0.147110f, 0.147205f, 0.147299f, 0.147394f,
+ 0.147489f, 0.147584f, 0.147679f, 0.147774f, 0.147868f, 0.147963f, 0.148058f, 0.148153f,
+ 0.148248f, 0.148342f, 0.148437f, 0.148532f, 0.148627f, 0.148722f, 0.148817f, 0.148911f,
+ 0.149006f, 0.149101f, 0.149196f, 0.149291f, 0.149385f, 0.149480f, 0.149575f, 0.149670f,
+ 0.149765f, 0.149859f, 0.149954f, 0.150049f, 0.150144f, 0.150238f, 0.150333f, 0.150428f,
+ 0.150523f, 0.150618f, 0.150712f, 0.150807f, 0.150902f, 0.150997f, 0.151092f, 0.151186f,
+ 0.151281f, 0.151376f, 0.151471f, 0.151565f, 0.151660f, 0.151755f, 0.151850f, 0.151944f,
+ 0.152039f, 0.152134f, 0.152229f, 0.152323f, 0.152418f, 0.152513f, 0.152608f, 0.152702f,
+ 0.152797f, 0.152892f, 0.152987f, 0.153081f, 0.153176f, 0.153271f, 0.153366f, 0.153460f,
+ 0.153555f, 0.153650f, 0.153745f, 0.153839f, 0.153934f, 0.154029f, 0.154124f, 0.154218f,
+ 0.154313f, 0.154408f, 0.154502f, 0.154597f, 0.154692f, 0.154787f, 0.154881f, 0.154976f,
+ 0.155071f, 0.155165f, 0.155260f, 0.155355f, 0.155450f, 0.155544f, 0.155639f, 0.155734f,
+ 0.155828f, 0.155923f, 0.156018f, 0.156112f, 0.156207f, 0.156302f, 0.156397f, 0.156491f,
+ 0.156586f, 0.156681f, 0.156775f, 0.156870f, 0.156965f, 0.157059f, 0.157154f, 0.157249f,
+ 0.157343f, 0.157438f, 0.157533f, 0.157627f, 0.157722f, 0.157817f, 0.157912f, 0.158006f,
+ 0.158101f, 0.158196f, 0.158290f, 0.158385f, 0.158480f, 0.158574f, 0.158669f, 0.158763f,
+ 0.158858f, 0.158953f, 0.159047f, 0.159142f, 0.159237f, 0.159331f, 0.159426f, 0.159521f,
+ 0.159615f, 0.159710f, 0.159805f, 0.159899f, 0.159994f, 0.160089f, 0.160183f, 0.160278f,
+ 0.160372f, 0.160467f, 0.160562f, 0.160656f, 0.160751f, 0.160846f, 0.160940f, 0.161035f,
+ 0.161129f, 0.161224f, 0.161319f, 0.161413f, 0.161508f, 0.161603f, 0.161697f, 0.161792f,
+ 0.161886f, 0.161981f, 0.162076f, 0.162170f, 0.162265f, 0.162359f, 0.162454f, 0.162549f,
+ 0.162643f, 0.162738f, 0.162832f, 0.162927f, 0.163022f, 0.163116f, 0.163211f, 0.163305f,
+ 0.163400f, 0.163495f, 0.163589f, 0.163684f, 0.163778f, 0.163873f, 0.163967f, 0.164062f,
+ 0.164157f, 0.164251f, 0.164346f, 0.164440f, 0.164535f, 0.164629f, 0.164724f, 0.164819f,
+ 0.164913f, 0.165008f, 0.165102f, 0.165197f, 0.165291f, 0.165386f, 0.165480f, 0.165575f,
+ 0.165670f, 0.165764f, 0.165859f, 0.165953f, 0.166048f, 0.166142f, 0.166237f, 0.166331f,
+ 0.166426f, 0.166520f, 0.166615f, 0.166710f, 0.166804f, 0.166899f, 0.166993f, 0.167088f,
+ 0.167182f, 0.167277f, 0.167371f, 0.167466f, 0.167560f, 0.167655f, 0.167749f, 0.167844f,
+ 0.167938f, 0.168033f, 0.168127f, 0.168222f, 0.168316f, 0.168411f, 0.168505f, 0.168600f,
+ 0.168694f, 0.168789f, 0.168883f, 0.168978f, 0.169072f, 0.169167f, 0.169261f, 0.169356f,
+ 0.169450f, 0.169545f, 0.169639f, 0.169734f, 0.169828f, 0.169923f, 0.170017f, 0.170112f,
+ 0.170206f, 0.170301f, 0.170395f, 0.170490f, 0.170584f, 0.170678f, 0.170773f, 0.170867f,
+ 0.170962f, 0.171056f, 0.171151f, 0.171245f, 0.171340f, 0.171434f, 0.171529f, 0.171623f,
+ 0.171718f, 0.171812f, 0.171906f, 0.172001f, 0.172095f, 0.172190f, 0.172284f, 0.172379f,
+ 0.172473f, 0.172568f, 0.172662f, 0.172756f, 0.172851f, 0.172945f, 0.173040f, 0.173134f,
+ 0.173229f, 0.173323f, 0.173417f, 0.173512f, 0.173606f, 0.173701f, 0.173795f, 0.173889f,
+ 0.173984f, 0.174078f, 0.174173f, 0.174267f, 0.174362f, 0.174456f, 0.174550f, 0.174645f,
+ 0.174739f, 0.174834f, 0.174928f, 0.175022f, 0.175117f, 0.175211f, 0.175305f, 0.175400f,
+ 0.175494f, 0.175589f, 0.175683f, 0.175777f, 0.175872f, 0.175966f, 0.176061f, 0.176155f,
+ 0.176249f, 0.176344f, 0.176438f, 0.176532f, 0.176627f, 0.176721f, 0.176815f, 0.176910f,
+ 0.177004f, 0.177099f, 0.177193f, 0.177287f, 0.177382f, 0.177476f, 0.177570f, 0.177665f,
+ 0.177759f, 0.177853f, 0.177948f, 0.178042f, 0.178136f, 0.178231f, 0.178325f, 0.178419f,
+ 0.178514f, 0.178608f, 0.178702f, 0.178797f, 0.178891f, 0.178985f, 0.179080f, 0.179174f,
+ 0.179268f, 0.179363f, 0.179457f, 0.179551f, 0.179646f, 0.179740f, 0.179834f, 0.179929f,
+ 0.180023f, 0.180117f, 0.180212f, 0.180306f, 0.180400f, 0.180494f, 0.180589f, 0.180683f,
+ 0.180777f, 0.180872f, 0.180966f, 0.181060f, 0.181154f, 0.181249f, 0.181343f, 0.181437f,
+ 0.181532f, 0.181626f, 0.181720f, 0.181814f, 0.181909f, 0.182003f, 0.182097f, 0.182192f,
+ 0.182286f, 0.182380f, 0.182474f, 0.182569f, 0.182663f, 0.182757f, 0.182851f, 0.182946f,
+ 0.183040f, 0.183134f, 0.183228f, 0.183323f, 0.183417f, 0.183511f, 0.183605f, 0.183700f,
+ 0.183794f, 0.183888f, 0.183982f, 0.184077f, 0.184171f, 0.184265f, 0.184359f, 0.184454f,
+ 0.184548f, 0.184642f, 0.184736f, 0.184830f, 0.184925f, 0.185019f, 0.185113f, 0.185207f,
+ 0.185301f, 0.185396f, 0.185490f, 0.185584f, 0.185678f, 0.185773f, 0.185867f, 0.185961f,
+ 0.186055f, 0.186149f, 0.186244f, 0.186338f, 0.186432f, 0.186526f, 0.186620f, 0.186715f,
+ 0.186809f, 0.186903f, 0.186997f, 0.187091f, 0.187185f, 0.187280f, 0.187374f, 0.187468f,
+ 0.187562f, 0.187656f, 0.187750f, 0.187845f, 0.187939f, 0.188033f, 0.188127f, 0.188221f,
+ 0.188315f, 0.188410f, 0.188504f, 0.188598f, 0.188692f, 0.188786f, 0.188880f, 0.188975f,
+ 0.189069f, 0.189163f, 0.189257f, 0.189351f, 0.189445f, 0.189539f, 0.189634f, 0.189728f,
+ 0.189822f, 0.189916f, 0.190010f, 0.190104f, 0.190198f, 0.190292f, 0.190387f, 0.190481f,
+ 0.190575f, 0.190669f, 0.190763f, 0.190857f, 0.190951f, 0.191045f, 0.191139f, 0.191234f,
+ 0.191328f, 0.191422f, 0.191516f, 0.191610f, 0.191704f, 0.191798f, 0.191892f, 0.191986f,
+ 0.192080f, 0.192174f, 0.192269f, 0.192363f, 0.192457f, 0.192551f, 0.192645f, 0.192739f,
+ 0.192833f, 0.192927f, 0.193021f, 0.193115f, 0.193209f, 0.193303f, 0.193397f, 0.193492f,
+ 0.193586f, 0.193680f, 0.193774f, 0.193868f, 0.193962f, 0.194056f, 0.194150f, 0.194244f,
+ 0.194338f, 0.194432f, 0.194526f, 0.194620f, 0.194714f, 0.194808f, 0.194902f, 0.194996f,
+ 0.195090f, 0.195184f, 0.195278f, 0.195372f, 0.195466f, 0.195560f, 0.195654f, 0.195748f,
+ 0.195843f, 0.195937f, 0.196031f, 0.196125f, 0.196219f, 0.196313f, 0.196407f, 0.196501f,
+ 0.196595f, 0.196689f, 0.196783f, 0.196877f, 0.196971f, 0.197065f, 0.197159f, 0.197253f,
+ 0.197347f, 0.197441f, 0.197535f, 0.197629f, 0.197722f, 0.197816f, 0.197910f, 0.198004f,
+ 0.198098f, 0.198192f, 0.198286f, 0.198380f, 0.198474f, 0.198568f, 0.198662f, 0.198756f,
+ 0.198850f, 0.198944f, 0.199038f, 0.199132f, 0.199226f, 0.199320f, 0.199414f, 0.199508f,
+ 0.199602f, 0.199696f, 0.199790f, 0.199884f, 0.199978f, 0.200071f, 0.200165f, 0.200259f,
+ 0.200353f, 0.200447f, 0.200541f, 0.200635f, 0.200729f, 0.200823f, 0.200917f, 0.201011f,
+ 0.201105f, 0.201199f, 0.201292f, 0.201386f, 0.201480f, 0.201574f, 0.201668f, 0.201762f,
+ 0.201856f, 0.201950f, 0.202044f, 0.202138f, 0.202231f, 0.202325f, 0.202419f, 0.202513f,
+ 0.202607f, 0.202701f, 0.202795f, 0.202889f, 0.202983f, 0.203076f, 0.203170f, 0.203264f,
+ 0.203358f, 0.203452f, 0.203546f, 0.203640f, 0.203734f, 0.203827f, 0.203921f, 0.204015f,
+ 0.204109f, 0.204203f, 0.204297f, 0.204391f, 0.204484f, 0.204578f, 0.204672f, 0.204766f,
+ 0.204860f, 0.204954f, 0.205047f, 0.205141f, 0.205235f, 0.205329f, 0.205423f, 0.205517f,
+ 0.205610f, 0.205704f, 0.205798f, 0.205892f, 0.205986f, 0.206080f, 0.206173f, 0.206267f,
+ 0.206361f, 0.206455f, 0.206549f, 0.206642f, 0.206736f, 0.206830f, 0.206924f, 0.207018f,
+ 0.207111f, 0.207205f, 0.207299f, 0.207393f, 0.207487f, 0.207580f, 0.207674f, 0.207768f,
+ 0.207862f, 0.207955f, 0.208049f, 0.208143f, 0.208237f, 0.208331f, 0.208424f, 0.208518f,
+ 0.208612f, 0.208706f, 0.208799f, 0.208893f, 0.208987f, 0.209081f, 0.209174f, 0.209268f,
+ 0.209362f, 0.209456f, 0.209549f, 0.209643f, 0.209737f, 0.209831f, 0.209924f, 0.210018f,
+ 0.210112f, 0.210206f, 0.210299f, 0.210393f, 0.210487f, 0.210580f, 0.210674f, 0.210768f,
+ 0.210862f, 0.210955f, 0.211049f, 0.211143f, 0.211237f, 0.211330f, 0.211424f, 0.211518f,
+ 0.211611f, 0.211705f, 0.211799f, 0.211892f, 0.211986f, 0.212080f, 0.212174f, 0.212267f,
+ 0.212361f, 0.212455f, 0.212548f, 0.212642f, 0.212736f, 0.212829f, 0.212923f, 0.213017f,
+ 0.213110f, 0.213204f, 0.213298f, 0.213391f, 0.213485f, 0.213579f, 0.213672f, 0.213766f,
+ 0.213860f, 0.213953f, 0.214047f, 0.214141f, 0.214234f, 0.214328f, 0.214422f, 0.214515f,
+ 0.214609f, 0.214702f, 0.214796f, 0.214890f, 0.214983f, 0.215077f, 0.215171f, 0.215264f,
+ 0.215358f, 0.215451f, 0.215545f, 0.215639f, 0.215732f, 0.215826f, 0.215920f, 0.216013f,
+ 0.216107f, 0.216200f, 0.216294f, 0.216388f, 0.216481f, 0.216575f, 0.216668f, 0.216762f,
+ 0.216856f, 0.216949f, 0.217043f, 0.217136f, 0.217230f, 0.217324f, 0.217417f, 0.217511f,
+ 0.217604f, 0.217698f, 0.217791f, 0.217885f, 0.217979f, 0.218072f, 0.218166f, 0.218259f,
+ 0.218353f, 0.218446f, 0.218540f, 0.218633f, 0.218727f, 0.218821f, 0.218914f, 0.219008f,
+ 0.219101f, 0.219195f, 0.219288f, 0.219382f, 0.219475f, 0.219569f, 0.219662f, 0.219756f,
+ 0.219850f, 0.219943f, 0.220037f, 0.220130f, 0.220224f, 0.220317f, 0.220411f, 0.220504f,
+ 0.220598f, 0.220691f, 0.220785f, 0.220878f, 0.220972f, 0.221065f, 0.221159f, 0.221252f,
+ 0.221346f, 0.221439f, 0.221533f, 0.221626f, 0.221720f, 0.221813f, 0.221907f, 0.222000f,
+ 0.222094f, 0.222187f, 0.222281f, 0.222374f, 0.222468f, 0.222561f, 0.222654f, 0.222748f,
+ 0.222841f, 0.222935f, 0.223028f, 0.223122f, 0.223215f, 0.223309f, 0.223402f, 0.223496f,
+ 0.223589f, 0.223682f, 0.223776f, 0.223869f, 0.223963f, 0.224056f, 0.224150f, 0.224243f,
+ 0.224337f, 0.224430f, 0.224523f, 0.224617f, 0.224710f, 0.224804f, 0.224897f, 0.224991f,
+ 0.225084f, 0.225177f, 0.225271f, 0.225364f, 0.225458f, 0.225551f, 0.225644f, 0.225738f,
+ 0.225831f, 0.225925f, 0.226018f, 0.226111f, 0.226205f, 0.226298f, 0.226391f, 0.226485f,
+ 0.226578f, 0.226672f, 0.226765f, 0.226858f, 0.226952f, 0.227045f, 0.227139f, 0.227232f,
+ 0.227325f, 0.227419f, 0.227512f, 0.227605f, 0.227699f, 0.227792f, 0.227885f, 0.227979f,
+ 0.228072f, 0.228165f, 0.228259f, 0.228352f, 0.228445f, 0.228539f, 0.228632f, 0.228725f,
+ 0.228819f, 0.228912f, 0.229005f, 0.229099f, 0.229192f, 0.229285f, 0.229379f, 0.229472f,
+ 0.229565f, 0.229659f, 0.229752f, 0.229845f, 0.229939f, 0.230032f, 0.230125f, 0.230218f,
+ 0.230312f, 0.230405f, 0.230498f, 0.230592f, 0.230685f, 0.230778f, 0.230872f, 0.230965f,
+ 0.231058f, 0.231151f, 0.231245f, 0.231338f, 0.231431f, 0.231524f, 0.231618f, 0.231711f,
+ 0.231804f, 0.231898f, 0.231991f, 0.232084f, 0.232177f, 0.232271f, 0.232364f, 0.232457f,
+ 0.232550f, 0.232644f, 0.232737f, 0.232830f, 0.232923f, 0.233017f, 0.233110f, 0.233203f,
+ 0.233296f, 0.233389f, 0.233483f, 0.233576f, 0.233669f, 0.233762f, 0.233856f, 0.233949f,
+ 0.234042f, 0.234135f, 0.234228f, 0.234322f, 0.234415f, 0.234508f, 0.234601f, 0.234694f,
+ 0.234788f, 0.234881f, 0.234974f, 0.235067f, 0.235160f, 0.235254f, 0.235347f, 0.235440f,
+ 0.235533f, 0.235626f, 0.235719f, 0.235813f, 0.235906f, 0.235999f, 0.236092f, 0.236185f,
+ 0.236278f, 0.236372f, 0.236465f, 0.236558f, 0.236651f, 0.236744f, 0.236837f, 0.236930f,
+ 0.237024f, 0.237117f, 0.237210f, 0.237303f, 0.237396f, 0.237489f, 0.237582f, 0.237676f,
+ 0.237769f, 0.237862f, 0.237955f, 0.238048f, 0.238141f, 0.238234f, 0.238327f, 0.238420f,
+ 0.238514f, 0.238607f, 0.238700f, 0.238793f, 0.238886f, 0.238979f, 0.239072f, 0.239165f,
+ 0.239258f, 0.239351f, 0.239445f, 0.239538f, 0.239631f, 0.239724f, 0.239817f, 0.239910f,
+ 0.240003f, 0.240096f, 0.240189f, 0.240282f, 0.240375f, 0.240468f, 0.240561f, 0.240654f,
+ 0.240748f, 0.240841f, 0.240934f, 0.241027f, 0.241120f, 0.241213f, 0.241306f, 0.241399f,
+ 0.241492f, 0.241585f, 0.241678f, 0.241771f, 0.241864f, 0.241957f, 0.242050f, 0.242143f,
+ 0.242236f, 0.242329f, 0.242422f, 0.242515f, 0.242608f, 0.242701f, 0.242794f, 0.242887f,
+ 0.242980f, 0.243073f, 0.243166f, 0.243259f, 0.243352f, 0.243445f, 0.243538f, 0.243631f,
+ 0.243724f, 0.243817f, 0.243910f, 0.244003f, 0.244096f, 0.244189f, 0.244282f, 0.244375f,
+ 0.244468f, 0.244561f, 0.244654f, 0.244747f, 0.244840f, 0.244933f, 0.245026f, 0.245119f,
+ 0.245212f, 0.245304f, 0.245397f, 0.245490f, 0.245583f, 0.245676f, 0.245769f, 0.245862f,
+ 0.245955f, 0.246048f, 0.246141f, 0.246234f, 0.246327f, 0.246420f, 0.246513f, 0.246606f,
+ 0.246698f, 0.246791f, 0.246884f, 0.246977f, 0.247070f, 0.247163f, 0.247256f, 0.247349f,
+ 0.247442f, 0.247535f, 0.247627f, 0.247720f, 0.247813f, 0.247906f, 0.247999f, 0.248092f,
+ 0.248185f, 0.248278f, 0.248370f, 0.248463f, 0.248556f, 0.248649f, 0.248742f, 0.248835f,
+ 0.248928f, 0.249020f, 0.249113f, 0.249206f, 0.249299f, 0.249392f, 0.249485f, 0.249578f,
+ 0.249670f, 0.249763f, 0.249856f, 0.249949f, 0.250042f, 0.250135f, 0.250227f, 0.250320f,
+ 0.250413f, 0.250506f, 0.250599f, 0.250691f, 0.250784f, 0.250877f, 0.250970f, 0.251063f,
+ 0.251155f, 0.251248f, 0.251341f, 0.251434f, 0.251527f, 0.251619f, 0.251712f, 0.251805f,
+ 0.251898f, 0.251991f, 0.252083f, 0.252176f, 0.252269f, 0.252362f, 0.252454f, 0.252547f,
+ 0.252640f, 0.252733f, 0.252826f, 0.252918f, 0.253011f, 0.253104f, 0.253197f, 0.253289f,
+ 0.253382f, 0.253475f, 0.253568f, 0.253660f, 0.253753f, 0.253846f, 0.253938f, 0.254031f,
+ 0.254124f, 0.254217f, 0.254309f, 0.254402f, 0.254495f, 0.254588f, 0.254680f, 0.254773f,
+ 0.254866f, 0.254958f, 0.255051f, 0.255144f, 0.255236f, 0.255329f, 0.255422f, 0.255515f,
+ 0.255607f, 0.255700f, 0.255793f, 0.255885f, 0.255978f, 0.256071f, 0.256163f, 0.256256f,
+ 0.256349f, 0.256441f, 0.256534f, 0.256627f, 0.256719f, 0.256812f, 0.256905f, 0.256997f,
+ 0.257090f, 0.257183f, 0.257275f, 0.257368f, 0.257461f, 0.257553f, 0.257646f, 0.257738f,
+ 0.257831f, 0.257924f, 0.258016f, 0.258109f, 0.258202f, 0.258294f, 0.258387f, 0.258479f,
+ 0.258572f, 0.258665f, 0.258757f, 0.258850f, 0.258943f, 0.259035f, 0.259128f, 0.259220f,
+ 0.259313f, 0.259405f, 0.259498f, 0.259591f, 0.259683f, 0.259776f, 0.259868f, 0.259961f,
+ 0.260054f, 0.260146f, 0.260239f, 0.260331f, 0.260424f, 0.260516f, 0.260609f, 0.260702f,
+ 0.260794f, 0.260887f, 0.260979f, 0.261072f, 0.261164f, 0.261257f, 0.261349f, 0.261442f,
+ 0.261534f, 0.261627f, 0.261720f, 0.261812f, 0.261905f, 0.261997f, 0.262090f, 0.262182f,
+ 0.262275f, 0.262367f, 0.262460f, 0.262552f, 0.262645f, 0.262737f, 0.262830f, 0.262922f,
+ 0.263015f, 0.263107f, 0.263200f, 0.263292f, 0.263385f, 0.263477f, 0.263570f, 0.263662f,
+ 0.263755f, 0.263847f, 0.263940f, 0.264032f, 0.264125f, 0.264217f, 0.264309f, 0.264402f,
+ 0.264494f, 0.264587f, 0.264679f, 0.264772f, 0.264864f, 0.264957f, 0.265049f, 0.265142f,
+ 0.265234f, 0.265326f, 0.265419f, 0.265511f, 0.265604f, 0.265696f, 0.265789f, 0.265881f,
+ 0.265973f, 0.266066f, 0.266158f, 0.266251f, 0.266343f, 0.266436f, 0.266528f, 0.266620f,
+ 0.266713f, 0.266805f, 0.266898f, 0.266990f, 0.267082f, 0.267175f, 0.267267f, 0.267359f,
+ 0.267452f, 0.267544f, 0.267637f, 0.267729f, 0.267821f, 0.267914f, 0.268006f, 0.268099f,
+ 0.268191f, 0.268283f, 0.268376f, 0.268468f, 0.268560f, 0.268653f, 0.268745f, 0.268837f,
+ 0.268930f, 0.269022f, 0.269114f, 0.269207f, 0.269299f, 0.269391f, 0.269484f, 0.269576f,
+ 0.269668f, 0.269761f, 0.269853f, 0.269945f, 0.270038f, 0.270130f, 0.270222f, 0.270315f,
+ 0.270407f, 0.270499f, 0.270591f, 0.270684f, 0.270776f, 0.270868f, 0.270961f, 0.271053f,
+ 0.271145f, 0.271237f, 0.271330f, 0.271422f, 0.271514f, 0.271607f, 0.271699f, 0.271791f,
+ 0.271883f, 0.271976f, 0.272068f, 0.272160f, 0.272252f, 0.272345f, 0.272437f, 0.272529f,
+ 0.272621f, 0.272714f, 0.272806f, 0.272898f, 0.272990f, 0.273083f, 0.273175f, 0.273267f,
+ 0.273359f, 0.273451f, 0.273544f, 0.273636f, 0.273728f, 0.273820f, 0.273912f, 0.274005f,
+ 0.274097f, 0.274189f, 0.274281f, 0.274374f, 0.274466f, 0.274558f, 0.274650f, 0.274742f,
+ 0.274834f, 0.274927f, 0.275019f, 0.275111f, 0.275203f, 0.275295f, 0.275387f, 0.275480f,
+ 0.275572f, 0.275664f, 0.275756f, 0.275848f, 0.275940f, 0.276033f, 0.276125f, 0.276217f,
+ 0.276309f, 0.276401f, 0.276493f, 0.276585f, 0.276678f, 0.276770f, 0.276862f, 0.276954f,
+ 0.277046f, 0.277138f, 0.277230f, 0.277322f, 0.277415f, 0.277507f, 0.277599f, 0.277691f,
+ 0.277783f, 0.277875f, 0.277967f, 0.278059f, 0.278151f, 0.278243f, 0.278336f, 0.278428f,
+ 0.278520f, 0.278612f, 0.278704f, 0.278796f, 0.278888f, 0.278980f, 0.279072f, 0.279164f,
+ 0.279256f, 0.279348f, 0.279440f, 0.279532f, 0.279624f, 0.279717f, 0.279809f, 0.279901f,
+ 0.279993f, 0.280085f, 0.280177f, 0.280269f, 0.280361f, 0.280453f, 0.280545f, 0.280637f,
+ 0.280729f, 0.280821f, 0.280913f, 0.281005f, 0.281097f, 0.281189f, 0.281281f, 0.281373f,
+ 0.281465f, 0.281557f, 0.281649f, 0.281741f, 0.281833f, 0.281925f, 0.282017f, 0.282109f,
+ 0.282201f, 0.282293f, 0.282385f, 0.282477f, 0.282569f, 0.282661f, 0.282753f, 0.282845f,
+ 0.282937f, 0.283029f, 0.283120f, 0.283212f, 0.283304f, 0.283396f, 0.283488f, 0.283580f,
+ 0.283672f, 0.283764f, 0.283856f, 0.283948f, 0.284040f, 0.284132f, 0.284224f, 0.284316f,
+ 0.284408f, 0.284499f, 0.284591f, 0.284683f, 0.284775f, 0.284867f, 0.284959f, 0.285051f,
+ 0.285143f, 0.285235f, 0.285327f, 0.285418f, 0.285510f, 0.285602f, 0.285694f, 0.285786f,
+ 0.285878f, 0.285970f, 0.286062f, 0.286153f, 0.286245f, 0.286337f, 0.286429f, 0.286521f,
+ 0.286613f, 0.286705f, 0.286796f, 0.286888f, 0.286980f, 0.287072f, 0.287164f, 0.287256f,
+ 0.287347f, 0.287439f, 0.287531f, 0.287623f, 0.287715f, 0.287807f, 0.287898f, 0.287990f,
+ 0.288082f, 0.288174f, 0.288266f, 0.288357f, 0.288449f, 0.288541f, 0.288633f, 0.288725f,
+ 0.288816f, 0.288908f, 0.289000f, 0.289092f, 0.289184f, 0.289275f, 0.289367f, 0.289459f,
+ 0.289551f, 0.289642f, 0.289734f, 0.289826f, 0.289918f, 0.290009f, 0.290101f, 0.290193f,
+ 0.290285f, 0.290376f, 0.290468f, 0.290560f, 0.290652f, 0.290743f, 0.290835f, 0.290927f,
+ 0.291019f, 0.291110f, 0.291202f, 0.291294f, 0.291385f, 0.291477f, 0.291569f, 0.291661f,
+ 0.291752f, 0.291844f, 0.291936f, 0.292027f, 0.292119f, 0.292211f, 0.292302f, 0.292394f,
+ 0.292486f, 0.292577f, 0.292669f, 0.292761f, 0.292852f, 0.292944f, 0.293036f, 0.293128f,
+ 0.293219f, 0.293311f, 0.293402f, 0.293494f, 0.293586f, 0.293677f, 0.293769f, 0.293861f,
+ 0.293952f, 0.294044f, 0.294136f, 0.294227f, 0.294319f, 0.294410f, 0.294502f, 0.294594f,
+ 0.294685f, 0.294777f, 0.294869f, 0.294960f, 0.295052f, 0.295143f, 0.295235f, 0.295327f,
+ 0.295418f, 0.295510f, 0.295601f, 0.295693f, 0.295785f, 0.295876f, 0.295968f, 0.296059f,
+ 0.296151f, 0.296242f, 0.296334f, 0.296426f, 0.296517f, 0.296609f, 0.296700f, 0.296792f,
+ 0.296883f, 0.296975f, 0.297066f, 0.297158f, 0.297250f, 0.297341f, 0.297433f, 0.297524f,
+ 0.297616f, 0.297707f, 0.297799f, 0.297890f, 0.297982f, 0.298073f, 0.298165f, 0.298256f,
+ 0.298348f, 0.298439f, 0.298531f, 0.298622f, 0.298714f, 0.298805f, 0.298897f, 0.298988f,
+ 0.299080f, 0.299171f, 0.299263f, 0.299354f, 0.299446f, 0.299537f, 0.299629f, 0.299720f,
+ 0.299812f, 0.299903f, 0.299995f, 0.300086f, 0.300177f, 0.300269f, 0.300360f, 0.300452f,
+ 0.300543f, 0.300635f, 0.300726f, 0.300818f, 0.300909f, 0.301000f, 0.301092f, 0.301183f,
+ 0.301275f, 0.301366f, 0.301458f, 0.301549f, 0.301640f, 0.301732f, 0.301823f, 0.301915f,
+ 0.302006f, 0.302097f, 0.302189f, 0.302280f, 0.302372f, 0.302463f, 0.302554f, 0.302646f,
+ 0.302737f, 0.302828f, 0.302920f, 0.303011f, 0.303103f, 0.303194f, 0.303285f, 0.303377f,
+ 0.303468f, 0.303559f, 0.303651f, 0.303742f, 0.303833f, 0.303925f, 0.304016f, 0.304107f,
+ 0.304199f, 0.304290f, 0.304381f, 0.304473f, 0.304564f, 0.304655f, 0.304747f, 0.304838f,
+ 0.304929f, 0.305021f, 0.305112f, 0.305203f, 0.305294f, 0.305386f, 0.305477f, 0.305568f,
+ 0.305660f, 0.305751f, 0.305842f, 0.305933f, 0.306025f, 0.306116f, 0.306207f, 0.306299f,
+ 0.306390f, 0.306481f, 0.306572f, 0.306664f, 0.306755f, 0.306846f, 0.306937f, 0.307029f,
+ 0.307120f, 0.307211f, 0.307302f, 0.307394f, 0.307485f, 0.307576f, 0.307667f, 0.307758f,
+ 0.307850f, 0.307941f, 0.308032f, 0.308123f, 0.308214f, 0.308306f, 0.308397f, 0.308488f,
+ 0.308579f, 0.308670f, 0.308762f, 0.308853f, 0.308944f, 0.309035f, 0.309126f, 0.309218f,
+ 0.309309f, 0.309400f, 0.309491f, 0.309582f, 0.309673f, 0.309765f, 0.309856f, 0.309947f,
+ 0.310038f, 0.310129f, 0.310220f, 0.310311f, 0.310403f, 0.310494f, 0.310585f, 0.310676f,
+ 0.310767f, 0.310858f, 0.310949f, 0.311041f, 0.311132f, 0.311223f, 0.311314f, 0.311405f,
+ 0.311496f, 0.311587f, 0.311678f, 0.311769f, 0.311860f, 0.311952f, 0.312043f, 0.312134f,
+ 0.312225f, 0.312316f, 0.312407f, 0.312498f, 0.312589f, 0.312680f, 0.312771f, 0.312862f,
+ 0.312953f, 0.313044f, 0.313135f, 0.313227f, 0.313318f, 0.313409f, 0.313500f, 0.313591f,
+ 0.313682f, 0.313773f, 0.313864f, 0.313955f, 0.314046f, 0.314137f, 0.314228f, 0.314319f,
+ 0.314410f, 0.314501f, 0.314592f, 0.314683f, 0.314774f, 0.314865f, 0.314956f, 0.315047f,
+ 0.315138f, 0.315229f, 0.315320f, 0.315411f, 0.315502f, 0.315593f, 0.315684f, 0.315775f,
+ 0.315866f, 0.315957f, 0.316048f, 0.316139f, 0.316230f, 0.316321f, 0.316411f, 0.316502f,
+ 0.316593f, 0.316684f, 0.316775f, 0.316866f, 0.316957f, 0.317048f, 0.317139f, 0.317230f,
+ 0.317321f, 0.317412f, 0.317503f, 0.317594f, 0.317684f, 0.317775f, 0.317866f, 0.317957f,
+ 0.318048f, 0.318139f, 0.318230f, 0.318321f, 0.318412f, 0.318503f, 0.318593f, 0.318684f,
+ 0.318775f, 0.318866f, 0.318957f, 0.319048f, 0.319139f, 0.319229f, 0.319320f, 0.319411f,
+ 0.319502f, 0.319593f, 0.319684f, 0.319775f, 0.319865f, 0.319956f, 0.320047f, 0.320138f,
+ 0.320229f, 0.320320f, 0.320410f, 0.320501f, 0.320592f, 0.320683f, 0.320774f, 0.320864f,
+ 0.320955f, 0.321046f, 0.321137f, 0.321228f, 0.321318f, 0.321409f, 0.321500f, 0.321591f,
+ 0.321682f, 0.321772f, 0.321863f, 0.321954f, 0.322045f, 0.322135f, 0.322226f, 0.322317f,
+ 0.322408f, 0.322498f, 0.322589f, 0.322680f, 0.322771f, 0.322861f, 0.322952f, 0.323043f,
+ 0.323134f, 0.323224f, 0.323315f, 0.323406f, 0.323497f, 0.323587f, 0.323678f, 0.323769f,
+ 0.323859f, 0.323950f, 0.324041f, 0.324131f, 0.324222f, 0.324313f, 0.324404f, 0.324494f,
+ 0.324585f, 0.324676f, 0.324766f, 0.324857f, 0.324948f, 0.325038f, 0.325129f, 0.325220f,
+ 0.325310f, 0.325401f, 0.325492f, 0.325582f, 0.325673f, 0.325764f, 0.325854f, 0.325945f,
+ 0.326035f, 0.326126f, 0.326217f, 0.326307f, 0.326398f, 0.326489f, 0.326579f, 0.326670f,
+ 0.326760f, 0.326851f, 0.326942f, 0.327032f, 0.327123f, 0.327213f, 0.327304f, 0.327395f,
+ 0.327485f, 0.327576f, 0.327666f, 0.327757f, 0.327848f, 0.327938f, 0.328029f, 0.328119f,
+ 0.328210f, 0.328300f, 0.328391f, 0.328482f, 0.328572f, 0.328663f, 0.328753f, 0.328844f,
+ 0.328934f, 0.329025f, 0.329115f, 0.329206f, 0.329296f, 0.329387f, 0.329477f, 0.329568f,
+ 0.329658f, 0.329749f, 0.329839f, 0.329930f, 0.330020f, 0.330111f, 0.330202f, 0.330292f,
+ 0.330382f, 0.330473f, 0.330563f, 0.330654f, 0.330744f, 0.330835f, 0.330925f, 0.331016f,
+ 0.331106f, 0.331197f, 0.331287f, 0.331378f, 0.331468f, 0.331559f, 0.331649f, 0.331739f,
+ 0.331830f, 0.331920f, 0.332011f, 0.332101f, 0.332192f, 0.332282f, 0.332373f, 0.332463f,
+ 0.332553f, 0.332644f, 0.332734f, 0.332825f, 0.332915f, 0.333005f, 0.333096f, 0.333186f,
+ 0.333277f, 0.333367f, 0.333457f, 0.333548f, 0.333638f, 0.333729f, 0.333819f, 0.333909f,
+ 0.334000f, 0.334090f, 0.334180f, 0.334271f, 0.334361f, 0.334451f, 0.334542f, 0.334632f,
+ 0.334722f, 0.334813f, 0.334903f, 0.334994f, 0.335084f, 0.335174f, 0.335265f, 0.335355f,
+ 0.335445f, 0.335535f, 0.335626f, 0.335716f, 0.335806f, 0.335897f, 0.335987f, 0.336077f,
+ 0.336168f, 0.336258f, 0.336348f, 0.336438f, 0.336529f, 0.336619f, 0.336709f, 0.336800f,
+ 0.336890f, 0.336980f, 0.337070f, 0.337161f, 0.337251f, 0.337341f, 0.337431f, 0.337522f,
+ 0.337612f, 0.337702f, 0.337792f, 0.337883f, 0.337973f, 0.338063f, 0.338153f, 0.338244f,
+ 0.338334f, 0.338424f, 0.338514f, 0.338604f, 0.338695f, 0.338785f, 0.338875f, 0.338965f,
+ 0.339055f, 0.339146f, 0.339236f, 0.339326f, 0.339416f, 0.339506f, 0.339597f, 0.339687f,
+ 0.339777f, 0.339867f, 0.339957f, 0.340047f, 0.340138f, 0.340228f, 0.340318f, 0.340408f,
+ 0.340498f, 0.340588f, 0.340678f, 0.340769f, 0.340859f, 0.340949f, 0.341039f, 0.341129f,
+ 0.341219f, 0.341309f, 0.341399f, 0.341490f, 0.341580f, 0.341670f, 0.341760f, 0.341850f,
+ 0.341940f, 0.342030f, 0.342120f, 0.342210f, 0.342300f, 0.342391f, 0.342481f, 0.342571f,
+ 0.342661f, 0.342751f, 0.342841f, 0.342931f, 0.343021f, 0.343111f, 0.343201f, 0.343291f,
+ 0.343381f, 0.343471f, 0.343561f, 0.343651f, 0.343741f, 0.343831f, 0.343921f, 0.344011f,
+ 0.344101f, 0.344191f, 0.344281f, 0.344371f, 0.344461f, 0.344551f, 0.344641f, 0.344731f,
+ 0.344821f, 0.344911f, 0.345001f, 0.345091f, 0.345181f, 0.345271f, 0.345361f, 0.345451f,
+ 0.345541f, 0.345631f, 0.345721f, 0.345811f, 0.345901f, 0.345991f, 0.346081f, 0.346171f,
+ 0.346261f, 0.346351f, 0.346441f, 0.346531f, 0.346621f, 0.346711f, 0.346801f, 0.346890f,
+ 0.346980f, 0.347070f, 0.347160f, 0.347250f, 0.347340f, 0.347430f, 0.347520f, 0.347610f,
+ 0.347700f, 0.347790f, 0.347879f, 0.347969f, 0.348059f, 0.348149f, 0.348239f, 0.348329f,
+ 0.348419f, 0.348509f, 0.348598f, 0.348688f, 0.348778f, 0.348868f, 0.348958f, 0.349048f,
+ 0.349138f, 0.349227f, 0.349317f, 0.349407f, 0.349497f, 0.349587f, 0.349676f, 0.349766f,
+ 0.349856f, 0.349946f, 0.350036f, 0.350126f, 0.350215f, 0.350305f, 0.350395f, 0.350485f,
+ 0.350575f, 0.350664f, 0.350754f, 0.350844f, 0.350934f, 0.351023f, 0.351113f, 0.351203f,
+ 0.351293f, 0.351383f, 0.351472f, 0.351562f, 0.351652f, 0.351742f, 0.351831f, 0.351921f,
+ 0.352011f, 0.352100f, 0.352190f, 0.352280f, 0.352370f, 0.352459f, 0.352549f, 0.352639f,
+ 0.352729f, 0.352818f, 0.352908f, 0.352998f, 0.353087f, 0.353177f, 0.353267f, 0.353356f,
+ 0.353446f, 0.353536f, 0.353626f, 0.353715f, 0.353805f, 0.353895f, 0.353984f, 0.354074f,
+ 0.354164f, 0.354253f, 0.354343f, 0.354432f, 0.354522f, 0.354612f, 0.354701f, 0.354791f,
+ 0.354881f, 0.354970f, 0.355060f, 0.355150f, 0.355239f, 0.355329f, 0.355418f, 0.355508f,
+ 0.355598f, 0.355687f, 0.355777f, 0.355866f, 0.355956f, 0.356046f, 0.356135f, 0.356225f,
+ 0.356314f, 0.356404f, 0.356494f, 0.356583f, 0.356673f, 0.356762f, 0.356852f, 0.356941f,
+ 0.357031f, 0.357121f, 0.357210f, 0.357300f, 0.357389f, 0.357479f, 0.357568f, 0.357658f,
+ 0.357747f, 0.357837f, 0.357926f, 0.358016f, 0.358105f, 0.358195f, 0.358284f, 0.358374f,
+ 0.358463f, 0.358553f, 0.358642f, 0.358732f, 0.358821f, 0.358911f, 0.359000f, 0.359090f,
+ 0.359179f, 0.359269f, 0.359358f, 0.359448f, 0.359537f, 0.359627f, 0.359716f, 0.359806f,
+ 0.359895f, 0.359984f, 0.360074f, 0.360163f, 0.360253f, 0.360342f, 0.360432f, 0.360521f,
+ 0.360611f, 0.360700f, 0.360789f, 0.360879f, 0.360968f, 0.361058f, 0.361147f, 0.361236f,
+ 0.361326f, 0.361415f, 0.361505f, 0.361594f, 0.361683f, 0.361773f, 0.361862f, 0.361952f,
+ 0.362041f, 0.362130f, 0.362220f, 0.362309f, 0.362398f, 0.362488f, 0.362577f, 0.362666f,
+ 0.362756f, 0.362845f, 0.362934f, 0.363024f, 0.363113f, 0.363202f, 0.363292f, 0.363381f,
+ 0.363470f, 0.363560f, 0.363649f, 0.363738f, 0.363828f, 0.363917f, 0.364006f, 0.364096f,
+ 0.364185f, 0.364274f, 0.364363f, 0.364453f, 0.364542f, 0.364631f, 0.364720f, 0.364810f,
+ 0.364899f, 0.364988f, 0.365078f, 0.365167f, 0.365256f, 0.365345f, 0.365435f, 0.365524f,
+ 0.365613f, 0.365702f, 0.365791f, 0.365881f, 0.365970f, 0.366059f, 0.366148f, 0.366238f,
+ 0.366327f, 0.366416f, 0.366505f, 0.366594f, 0.366684f, 0.366773f, 0.366862f, 0.366951f,
+ 0.367040f, 0.367130f, 0.367219f, 0.367308f, 0.367397f, 0.367486f, 0.367575f, 0.367665f,
+ 0.367754f, 0.367843f, 0.367932f, 0.368021f, 0.368110f, 0.368199f, 0.368289f, 0.368378f,
+ 0.368467f, 0.368556f, 0.368645f, 0.368734f, 0.368823f, 0.368912f, 0.369002f, 0.369091f,
+ 0.369180f, 0.369269f, 0.369358f, 0.369447f, 0.369536f, 0.369625f, 0.369714f, 0.369803f,
+ 0.369892f, 0.369982f, 0.370071f, 0.370160f, 0.370249f, 0.370338f, 0.370427f, 0.370516f,
+ 0.370605f, 0.370694f, 0.370783f, 0.370872f, 0.370961f, 0.371050f, 0.371139f, 0.371228f,
+ 0.371317f, 0.371406f, 0.371495f, 0.371584f, 0.371673f, 0.371762f, 0.371851f, 0.371940f,
+ 0.372029f, 0.372118f, 0.372207f, 0.372296f, 0.372385f, 0.372474f, 0.372563f, 0.372652f,
+ 0.372741f, 0.372830f, 0.372919f, 0.373008f, 0.373097f, 0.373186f, 0.373275f, 0.373364f,
+ 0.373453f, 0.373542f, 0.373631f, 0.373719f, 0.373808f, 0.373897f, 0.373986f, 0.374075f,
+ 0.374164f, 0.374253f, 0.374342f, 0.374431f, 0.374520f, 0.374609f, 0.374697f, 0.374786f,
+ 0.374875f, 0.374964f, 0.375053f, 0.375142f, 0.375231f, 0.375320f, 0.375408f, 0.375497f,
+ 0.375586f, 0.375675f, 0.375764f, 0.375853f, 0.375942f, 0.376030f, 0.376119f, 0.376208f,
+ 0.376297f, 0.376386f, 0.376475f, 0.376563f, 0.376652f, 0.376741f, 0.376830f, 0.376919f,
+ 0.377007f, 0.377096f, 0.377185f, 0.377274f, 0.377363f, 0.377451f, 0.377540f, 0.377629f,
+ 0.377718f, 0.377806f, 0.377895f, 0.377984f, 0.378073f, 0.378162f, 0.378250f, 0.378339f,
+ 0.378428f, 0.378516f, 0.378605f, 0.378694f, 0.378783f, 0.378871f, 0.378960f, 0.379049f,
+ 0.379138f, 0.379226f, 0.379315f, 0.379404f, 0.379492f, 0.379581f, 0.379670f, 0.379759f,
+ 0.379847f, 0.379936f, 0.380025f, 0.380113f, 0.380202f, 0.380291f, 0.380379f, 0.380468f,
+ 0.380557f, 0.380645f, 0.380734f, 0.380823f, 0.380911f, 0.381000f, 0.381088f, 0.381177f,
+ 0.381266f, 0.381354f, 0.381443f, 0.381532f, 0.381620f, 0.381709f, 0.381797f, 0.381886f,
+ 0.381975f, 0.382063f, 0.382152f, 0.382241f, 0.382329f, 0.382418f, 0.382506f, 0.382595f,
+ 0.382683f, 0.382772f, 0.382861f, 0.382949f, 0.383038f, 0.383126f, 0.383215f, 0.383303f,
+ 0.383392f, 0.383480f, 0.383569f, 0.383658f, 0.383746f, 0.383835f, 0.383923f, 0.384012f,
+ 0.384100f, 0.384189f, 0.384277f, 0.384366f, 0.384454f, 0.384543f, 0.384631f, 0.384720f,
+ 0.384808f, 0.384897f, 0.384985f, 0.385074f, 0.385162f, 0.385251f, 0.385339f, 0.385428f,
+ 0.385516f, 0.385605f, 0.385693f, 0.385781f, 0.385870f, 0.385958f, 0.386047f, 0.386135f,
+ 0.386224f, 0.386312f, 0.386400f, 0.386489f, 0.386577f, 0.386666f, 0.386754f, 0.386843f,
+ 0.386931f, 0.387019f, 0.387108f, 0.387196f, 0.387285f, 0.387373f, 0.387461f, 0.387550f,
+ 0.387638f, 0.387727f, 0.387815f, 0.387903f, 0.387992f, 0.388080f, 0.388168f, 0.388257f,
+ 0.388345f, 0.388433f, 0.388522f, 0.388610f, 0.388698f, 0.388787f, 0.388875f, 0.388963f,
+ 0.389052f, 0.389140f, 0.389228f, 0.389317f, 0.389405f, 0.389493f, 0.389582f, 0.389670f,
+ 0.389758f, 0.389846f, 0.389935f, 0.390023f, 0.390111f, 0.390200f, 0.390288f, 0.390376f,
+ 0.390464f, 0.390553f, 0.390641f, 0.390729f, 0.390817f, 0.390906f, 0.390994f, 0.391082f,
+ 0.391170f, 0.391259f, 0.391347f, 0.391435f, 0.391523f, 0.391612f, 0.391700f, 0.391788f,
+ 0.391876f, 0.391964f, 0.392053f, 0.392141f, 0.392229f, 0.392317f, 0.392405f, 0.392493f,
+ 0.392582f, 0.392670f, 0.392758f, 0.392846f, 0.392934f, 0.393023f, 0.393111f, 0.393199f,
+ 0.393287f, 0.393375f, 0.393463f, 0.393551f, 0.393640f, 0.393728f, 0.393816f, 0.393904f,
+ 0.393992f, 0.394080f, 0.394168f, 0.394256f, 0.394344f, 0.394433f, 0.394521f, 0.394609f,
+ 0.394697f, 0.394785f, 0.394873f, 0.394961f, 0.395049f, 0.395137f, 0.395225f, 0.395313f,
+ 0.395401f, 0.395490f, 0.395578f, 0.395666f, 0.395754f, 0.395842f, 0.395930f, 0.396018f,
+ 0.396106f, 0.396194f, 0.396282f, 0.396370f, 0.396458f, 0.396546f, 0.396634f, 0.396722f,
+ 0.396810f, 0.396898f, 0.396986f, 0.397074f, 0.397162f, 0.397250f, 0.397338f, 0.397426f,
+ 0.397514f, 0.397602f, 0.397690f, 0.397778f, 0.397866f, 0.397954f, 0.398042f, 0.398130f,
+ 0.398218f, 0.398306f, 0.398393f, 0.398481f, 0.398569f, 0.398657f, 0.398745f, 0.398833f,
+ 0.398921f, 0.399009f, 0.399097f, 0.399185f, 0.399273f, 0.399361f, 0.399448f, 0.399536f,
+ 0.399624f, 0.399712f, 0.399800f, 0.399888f, 0.399976f, 0.400064f, 0.400151f, 0.400239f,
+ 0.400327f, 0.400415f, 0.400503f, 0.400591f, 0.400679f, 0.400766f, 0.400854f, 0.400942f,
+ 0.401030f, 0.401118f, 0.401206f, 0.401293f, 0.401381f, 0.401469f, 0.401557f, 0.401645f,
+ 0.401732f, 0.401820f, 0.401908f, 0.401996f, 0.402084f, 0.402171f, 0.402259f, 0.402347f,
+ 0.402435f, 0.402522f, 0.402610f, 0.402698f, 0.402786f, 0.402873f, 0.402961f, 0.403049f,
+ 0.403137f, 0.403224f, 0.403312f, 0.403400f, 0.403488f, 0.403575f, 0.403663f, 0.403751f,
+ 0.403838f, 0.403926f, 0.404014f, 0.404102f, 0.404189f, 0.404277f, 0.404365f, 0.404452f,
+ 0.404540f, 0.404628f, 0.404715f, 0.404803f, 0.404891f, 0.404978f, 0.405066f, 0.405154f,
+ 0.405241f, 0.405329f, 0.405417f, 0.405504f, 0.405592f, 0.405680f, 0.405767f, 0.405855f,
+ 0.405942f, 0.406030f, 0.406118f, 0.406205f, 0.406293f, 0.406380f, 0.406468f, 0.406556f,
+ 0.406643f, 0.406731f, 0.406818f, 0.406906f, 0.406994f, 0.407081f, 0.407169f, 0.407256f,
+ 0.407344f, 0.407431f, 0.407519f, 0.407606f, 0.407694f, 0.407782f, 0.407869f, 0.407957f,
+ 0.408044f, 0.408132f, 0.408219f, 0.408307f, 0.408394f, 0.408482f, 0.408569f, 0.408657f,
+ 0.408744f, 0.408832f, 0.408919f, 0.409007f, 0.409094f, 0.409182f, 0.409269f, 0.409357f,
+ 0.409444f, 0.409532f, 0.409619f, 0.409707f, 0.409794f, 0.409881f, 0.409969f, 0.410056f,
+ 0.410144f, 0.410231f, 0.410319f, 0.410406f, 0.410493f, 0.410581f, 0.410668f, 0.410756f,
+ 0.410843f, 0.410931f, 0.411018f, 0.411105f, 0.411193f, 0.411280f, 0.411368f, 0.411455f,
+ 0.411542f, 0.411630f, 0.411717f, 0.411804f, 0.411892f, 0.411979f, 0.412067f, 0.412154f,
+ 0.412241f, 0.412329f, 0.412416f, 0.412503f, 0.412591f, 0.412678f, 0.412765f, 0.412853f,
+ 0.412940f, 0.413027f, 0.413115f, 0.413202f, 0.413289f, 0.413376f, 0.413464f, 0.413551f,
+ 0.413638f, 0.413726f, 0.413813f, 0.413900f, 0.413987f, 0.414075f, 0.414162f, 0.414249f,
+ 0.414337f, 0.414424f, 0.414511f, 0.414598f, 0.414685f, 0.414773f, 0.414860f, 0.414947f,
+ 0.415034f, 0.415122f, 0.415209f, 0.415296f, 0.415383f, 0.415471f, 0.415558f, 0.415645f,
+ 0.415732f, 0.415819f, 0.415906f, 0.415994f, 0.416081f, 0.416168f, 0.416255f, 0.416342f,
+ 0.416430f, 0.416517f, 0.416604f, 0.416691f, 0.416778f, 0.416865f, 0.416952f, 0.417040f,
+ 0.417127f, 0.417214f, 0.417301f, 0.417388f, 0.417475f, 0.417562f, 0.417650f, 0.417737f,
+ 0.417824f, 0.417911f, 0.417998f, 0.418085f, 0.418172f, 0.418259f, 0.418346f, 0.418433f,
+ 0.418520f, 0.418608f, 0.418695f, 0.418782f, 0.418869f, 0.418956f, 0.419043f, 0.419130f,
+ 0.419217f, 0.419304f, 0.419391f, 0.419478f, 0.419565f, 0.419652f, 0.419739f, 0.419826f,
+ 0.419913f, 0.420000f, 0.420087f, 0.420174f, 0.420261f, 0.420348f, 0.420435f, 0.420522f,
+ 0.420609f, 0.420696f, 0.420783f, 0.420870f, 0.420957f, 0.421044f, 0.421131f, 0.421218f,
+ 0.421305f, 0.421392f, 0.421479f, 0.421566f, 0.421653f, 0.421739f, 0.421826f, 0.421913f,
+ 0.422000f, 0.422087f, 0.422174f, 0.422261f, 0.422348f, 0.422435f, 0.422522f, 0.422609f,
+ 0.422695f, 0.422782f, 0.422869f, 0.422956f, 0.423043f, 0.423130f, 0.423217f, 0.423304f,
+ 0.423390f, 0.423477f, 0.423564f, 0.423651f, 0.423738f, 0.423825f, 0.423912f, 0.423998f,
+ 0.424085f, 0.424172f, 0.424259f, 0.424346f, 0.424432f, 0.424519f, 0.424606f, 0.424693f,
+ 0.424780f, 0.424866f, 0.424953f, 0.425040f, 0.425127f, 0.425214f, 0.425300f, 0.425387f,
+ 0.425474f, 0.425561f, 0.425647f, 0.425734f, 0.425821f, 0.425908f, 0.425994f, 0.426081f,
+ 0.426168f, 0.426255f, 0.426341f, 0.426428f, 0.426515f, 0.426601f, 0.426688f, 0.426775f,
+ 0.426862f, 0.426948f, 0.427035f, 0.427122f, 0.427208f, 0.427295f, 0.427382f, 0.427468f,
+ 0.427555f, 0.427642f, 0.427728f, 0.427815f, 0.427902f, 0.427988f, 0.428075f, 0.428162f,
+ 0.428248f, 0.428335f, 0.428422f, 0.428508f, 0.428595f, 0.428681f, 0.428768f, 0.428855f,
+ 0.428941f, 0.429028f, 0.429114f, 0.429201f, 0.429288f, 0.429374f, 0.429461f, 0.429547f,
+ 0.429634f, 0.429721f, 0.429807f, 0.429894f, 0.429980f, 0.430067f, 0.430153f, 0.430240f,
+ 0.430326f, 0.430413f, 0.430500f, 0.430586f, 0.430673f, 0.430759f, 0.430846f, 0.430932f,
+ 0.431019f, 0.431105f, 0.431192f, 0.431278f, 0.431365f, 0.431451f, 0.431538f, 0.431624f,
+ 0.431711f, 0.431797f, 0.431884f, 0.431970f, 0.432057f, 0.432143f, 0.432229f, 0.432316f,
+ 0.432402f, 0.432489f, 0.432575f, 0.432662f, 0.432748f, 0.432835f, 0.432921f, 0.433007f,
+ 0.433094f, 0.433180f, 0.433267f, 0.433353f, 0.433439f, 0.433526f, 0.433612f, 0.433699f,
+ 0.433785f, 0.433871f, 0.433958f, 0.434044f, 0.434131f, 0.434217f, 0.434303f, 0.434390f,
+ 0.434476f, 0.434562f, 0.434649f, 0.434735f, 0.434821f, 0.434908f, 0.434994f, 0.435080f,
+ 0.435167f, 0.435253f, 0.435339f, 0.435426f, 0.435512f, 0.435598f, 0.435685f, 0.435771f,
+ 0.435857f, 0.435943f, 0.436030f, 0.436116f, 0.436202f, 0.436288f, 0.436375f, 0.436461f,
+ 0.436547f, 0.436633f, 0.436720f, 0.436806f, 0.436892f, 0.436978f, 0.437065f, 0.437151f,
+ 0.437237f, 0.437323f, 0.437410f, 0.437496f, 0.437582f, 0.437668f, 0.437754f, 0.437841f,
+ 0.437927f, 0.438013f, 0.438099f, 0.438185f, 0.438272f, 0.438358f, 0.438444f, 0.438530f,
+ 0.438616f, 0.438702f, 0.438789f, 0.438875f, 0.438961f, 0.439047f, 0.439133f, 0.439219f,
+ 0.439305f, 0.439392f, 0.439478f, 0.439564f, 0.439650f, 0.439736f, 0.439822f, 0.439908f,
+ 0.439994f, 0.440080f, 0.440166f, 0.440253f, 0.440339f, 0.440425f, 0.440511f, 0.440597f,
+ 0.440683f, 0.440769f, 0.440855f, 0.440941f, 0.441027f, 0.441113f, 0.441199f, 0.441285f,
+ 0.441371f, 0.441457f, 0.441543f, 0.441629f, 0.441715f, 0.441801f, 0.441887f, 0.441973f,
+ 0.442059f, 0.442145f, 0.442231f, 0.442317f, 0.442403f, 0.442489f, 0.442575f, 0.442661f,
+ 0.442747f, 0.442833f, 0.442919f, 0.443005f, 0.443091f, 0.443177f, 0.443263f, 0.443349f,
+ 0.443435f, 0.443521f, 0.443607f, 0.443693f, 0.443779f, 0.443864f, 0.443950f, 0.444036f,
+ 0.444122f, 0.444208f, 0.444294f, 0.444380f, 0.444466f, 0.444552f, 0.444637f, 0.444723f,
+ 0.444809f, 0.444895f, 0.444981f, 0.445067f, 0.445153f, 0.445239f, 0.445324f, 0.445410f,
+ 0.445496f, 0.445582f, 0.445668f, 0.445754f, 0.445839f, 0.445925f, 0.446011f, 0.446097f,
+ 0.446183f, 0.446268f, 0.446354f, 0.446440f, 0.446526f, 0.446612f, 0.446697f, 0.446783f,
+ 0.446869f, 0.446955f, 0.447040f, 0.447126f, 0.447212f, 0.447298f, 0.447383f, 0.447469f,
+ 0.447555f, 0.447641f, 0.447726f, 0.447812f, 0.447898f, 0.447983f, 0.448069f, 0.448155f,
+ 0.448241f, 0.448326f, 0.448412f, 0.448498f, 0.448583f, 0.448669f, 0.448755f, 0.448840f,
+ 0.448926f, 0.449012f, 0.449097f, 0.449183f, 0.449269f, 0.449354f, 0.449440f, 0.449526f,
+ 0.449611f, 0.449697f, 0.449783f, 0.449868f, 0.449954f, 0.450039f, 0.450125f, 0.450211f,
+ 0.450296f, 0.450382f, 0.450467f, 0.450553f, 0.450639f, 0.450724f, 0.450810f, 0.450895f,
+ 0.450981f, 0.451067f, 0.451152f, 0.451238f, 0.451323f, 0.451409f, 0.451494f, 0.451580f,
+ 0.451665f, 0.451751f, 0.451836f, 0.451922f, 0.452008f, 0.452093f, 0.452179f, 0.452264f,
+ 0.452350f, 0.452435f, 0.452521f, 0.452606f, 0.452692f, 0.452777f, 0.452863f, 0.452948f,
+ 0.453033f, 0.453119f, 0.453204f, 0.453290f, 0.453375f, 0.453461f, 0.453546f, 0.453632f,
+ 0.453717f, 0.453803f, 0.453888f, 0.453973f, 0.454059f, 0.454144f, 0.454230f, 0.454315f,
+ 0.454400f, 0.454486f, 0.454571f, 0.454657f, 0.454742f, 0.454827f, 0.454913f, 0.454998f,
+ 0.455084f, 0.455169f, 0.455254f, 0.455340f, 0.455425f, 0.455510f, 0.455596f, 0.455681f,
+ 0.455766f, 0.455852f, 0.455937f, 0.456022f, 0.456108f, 0.456193f, 0.456278f, 0.456364f,
+ 0.456449f, 0.456534f, 0.456620f, 0.456705f, 0.456790f, 0.456875f, 0.456961f, 0.457046f,
+ 0.457131f, 0.457217f, 0.457302f, 0.457387f, 0.457472f, 0.457558f, 0.457643f, 0.457728f,
+ 0.457813f, 0.457899f, 0.457984f, 0.458069f, 0.458154f, 0.458239f, 0.458325f, 0.458410f,
+ 0.458495f, 0.458580f, 0.458665f, 0.458751f, 0.458836f, 0.458921f, 0.459006f, 0.459091f,
+ 0.459177f, 0.459262f, 0.459347f, 0.459432f, 0.459517f, 0.459602f, 0.459687f, 0.459773f,
+ 0.459858f, 0.459943f, 0.460028f, 0.460113f, 0.460198f, 0.460283f, 0.460369f, 0.460454f,
+ 0.460539f, 0.460624f, 0.460709f, 0.460794f, 0.460879f, 0.460964f, 0.461049f, 0.461134f,
+ 0.461219f, 0.461304f, 0.461390f, 0.461475f, 0.461560f, 0.461645f, 0.461730f, 0.461815f,
+ 0.461900f, 0.461985f, 0.462070f, 0.462155f, 0.462240f, 0.462325f, 0.462410f, 0.462495f,
+ 0.462580f, 0.462665f, 0.462750f, 0.462835f, 0.462920f, 0.463005f, 0.463090f, 0.463175f,
+ 0.463260f, 0.463345f, 0.463430f, 0.463515f, 0.463600f, 0.463685f, 0.463769f, 0.463854f,
+ 0.463939f, 0.464024f, 0.464109f, 0.464194f, 0.464279f, 0.464364f, 0.464449f, 0.464534f,
+ 0.464619f, 0.464704f, 0.464788f, 0.464873f, 0.464958f, 0.465043f, 0.465128f, 0.465213f,
+ 0.465298f, 0.465383f, 0.465467f, 0.465552f, 0.465637f, 0.465722f, 0.465807f, 0.465892f,
+ 0.465977f, 0.466061f, 0.466146f, 0.466231f, 0.466316f, 0.466401f, 0.466485f, 0.466570f,
+ 0.466655f, 0.466740f, 0.466825f, 0.466909f, 0.466994f, 0.467079f, 0.467164f, 0.467248f,
+ 0.467333f, 0.467418f, 0.467503f, 0.467587f, 0.467672f, 0.467757f, 0.467842f, 0.467926f,
+ 0.468011f, 0.468096f, 0.468181f, 0.468265f, 0.468350f, 0.468435f, 0.468519f, 0.468604f,
+ 0.468689f, 0.468774f, 0.468858f, 0.468943f, 0.469028f, 0.469112f, 0.469197f, 0.469282f,
+ 0.469366f, 0.469451f, 0.469536f, 0.469620f, 0.469705f, 0.469789f, 0.469874f, 0.469959f,
+ 0.470043f, 0.470128f, 0.470213f, 0.470297f, 0.470382f, 0.470466f, 0.470551f, 0.470636f,
+ 0.470720f, 0.470805f, 0.470889f, 0.470974f, 0.471058f, 0.471143f, 0.471228f, 0.471312f,
+ 0.471397f, 0.471481f, 0.471566f, 0.471650f, 0.471735f, 0.471819f, 0.471904f, 0.471988f,
+ 0.472073f, 0.472158f, 0.472242f, 0.472327f, 0.472411f, 0.472496f, 0.472580f, 0.472665f,
+ 0.472749f, 0.472834f, 0.472918f, 0.473002f, 0.473087f, 0.473171f, 0.473256f, 0.473340f,
+ 0.473425f, 0.473509f, 0.473594f, 0.473678f, 0.473763f, 0.473847f, 0.473931f, 0.474016f,
+ 0.474100f, 0.474185f, 0.474269f, 0.474353f, 0.474438f, 0.474522f, 0.474607f, 0.474691f,
+ 0.474775f, 0.474860f, 0.474944f, 0.475029f, 0.475113f, 0.475197f, 0.475282f, 0.475366f,
+ 0.475450f, 0.475535f, 0.475619f, 0.475703f, 0.475788f, 0.475872f, 0.475956f, 0.476041f,
+ 0.476125f, 0.476209f, 0.476294f, 0.476378f, 0.476462f, 0.476546f, 0.476631f, 0.476715f,
+ 0.476799f, 0.476884f, 0.476968f, 0.477052f, 0.477136f, 0.477221f, 0.477305f, 0.477389f,
+ 0.477473f, 0.477558f, 0.477642f, 0.477726f, 0.477810f, 0.477894f, 0.477979f, 0.478063f,
+ 0.478147f, 0.478231f, 0.478315f, 0.478400f, 0.478484f, 0.478568f, 0.478652f, 0.478736f,
+ 0.478821f, 0.478905f, 0.478989f, 0.479073f, 0.479157f, 0.479241f, 0.479325f, 0.479410f,
+ 0.479494f, 0.479578f, 0.479662f, 0.479746f, 0.479830f, 0.479914f, 0.479998f, 0.480083f,
+ 0.480167f, 0.480251f, 0.480335f, 0.480419f, 0.480503f, 0.480587f, 0.480671f, 0.480755f,
+ 0.480839f, 0.480923f, 0.481007f, 0.481091f, 0.481176f, 0.481260f, 0.481344f, 0.481428f,
+ 0.481512f, 0.481596f, 0.481680f, 0.481764f, 0.481848f, 0.481932f, 0.482016f, 0.482100f,
+ 0.482184f, 0.482268f, 0.482352f, 0.482436f, 0.482520f, 0.482604f, 0.482688f, 0.482772f,
+ 0.482856f, 0.482940f, 0.483023f, 0.483107f, 0.483191f, 0.483275f, 0.483359f, 0.483443f,
+ 0.483527f, 0.483611f, 0.483695f, 0.483779f, 0.483863f, 0.483947f, 0.484031f, 0.484114f,
+ 0.484198f, 0.484282f, 0.484366f, 0.484450f, 0.484534f, 0.484618f, 0.484702f, 0.484785f,
+ 0.484869f, 0.484953f, 0.485037f, 0.485121f, 0.485205f, 0.485288f, 0.485372f, 0.485456f,
+ 0.485540f, 0.485624f, 0.485708f, 0.485791f, 0.485875f, 0.485959f, 0.486043f, 0.486126f,
+ 0.486210f, 0.486294f, 0.486378f, 0.486462f, 0.486545f, 0.486629f, 0.486713f, 0.486797f,
+ 0.486880f, 0.486964f, 0.487048f, 0.487132f, 0.487215f, 0.487299f, 0.487383f, 0.487466f,
+ 0.487550f, 0.487634f, 0.487718f, 0.487801f, 0.487885f, 0.487969f, 0.488052f, 0.488136f,
+ 0.488220f, 0.488303f, 0.488387f, 0.488471f, 0.488554f, 0.488638f, 0.488722f, 0.488805f,
+ 0.488889f, 0.488973f, 0.489056f, 0.489140f, 0.489223f, 0.489307f, 0.489391f, 0.489474f,
+ 0.489558f, 0.489641f, 0.489725f, 0.489809f, 0.489892f, 0.489976f, 0.490059f, 0.490143f,
+ 0.490226f, 0.490310f, 0.490394f, 0.490477f, 0.490561f, 0.490644f, 0.490728f, 0.490811f,
+ 0.490895f, 0.490978f, 0.491062f, 0.491145f, 0.491229f, 0.491312f, 0.491396f, 0.491479f,
+ 0.491563f, 0.491646f, 0.491730f, 0.491813f, 0.491897f, 0.491980f, 0.492064f, 0.492147f,
+ 0.492231f, 0.492314f, 0.492398f, 0.492481f, 0.492564f, 0.492648f, 0.492731f, 0.492815f,
+ 0.492898f, 0.492982f, 0.493065f, 0.493148f, 0.493232f, 0.493315f, 0.493399f, 0.493482f,
+ 0.493565f, 0.493649f, 0.493732f, 0.493816f, 0.493899f, 0.493982f, 0.494066f, 0.494149f,
+ 0.494232f, 0.494316f, 0.494399f, 0.494482f, 0.494566f, 0.494649f, 0.494732f, 0.494816f,
+ 0.494899f, 0.494982f, 0.495066f, 0.495149f, 0.495232f, 0.495315f, 0.495399f, 0.495482f,
+ 0.495565f, 0.495649f, 0.495732f, 0.495815f, 0.495898f, 0.495982f, 0.496065f, 0.496148f,
+ 0.496231f, 0.496315f, 0.496398f, 0.496481f, 0.496564f, 0.496647f, 0.496731f, 0.496814f,
+ 0.496897f, 0.496980f, 0.497063f, 0.497147f, 0.497230f, 0.497313f, 0.497396f, 0.497479f,
+ 0.497562f, 0.497646f, 0.497729f, 0.497812f, 0.497895f, 0.497978f, 0.498061f, 0.498145f,
+ 0.498228f, 0.498311f, 0.498394f, 0.498477f, 0.498560f, 0.498643f, 0.498726f, 0.498809f,
+ 0.498893f, 0.498976f, 0.499059f, 0.499142f, 0.499225f, 0.499308f, 0.499391f, 0.499474f,
+ 0.499557f, 0.499640f, 0.499723f, 0.499806f, 0.499889f, 0.499972f, 0.500055f, 0.500138f,
+ 0.500221f, 0.500304f, 0.500387f, 0.500470f, 0.500553f, 0.500636f, 0.500719f, 0.500802f,
+ 0.500885f, 0.500968f, 0.501051f, 0.501134f, 0.501217f, 0.501300f, 0.501383f, 0.501466f,
+ 0.501549f, 0.501632f, 0.501715f, 0.501798f, 0.501881f, 0.501964f, 0.502047f, 0.502130f,
+ 0.502212f, 0.502295f, 0.502378f, 0.502461f, 0.502544f, 0.502627f, 0.502710f, 0.502793f,
+ 0.502876f, 0.502958f, 0.503041f, 0.503124f, 0.503207f, 0.503290f, 0.503373f, 0.503456f,
+ 0.503538f, 0.503621f, 0.503704f, 0.503787f, 0.503870f, 0.503953f, 0.504035f, 0.504118f,
+ 0.504201f, 0.504284f, 0.504366f, 0.504449f, 0.504532f, 0.504615f, 0.504698f, 0.504780f,
+ 0.504863f, 0.504946f, 0.505029f, 0.505111f, 0.505194f, 0.505277f, 0.505360f, 0.505442f,
+ 0.505525f, 0.505608f, 0.505690f, 0.505773f, 0.505856f, 0.505939f, 0.506021f, 0.506104f,
+ 0.506187f, 0.506269f, 0.506352f, 0.506435f, 0.506517f, 0.506600f, 0.506683f, 0.506765f,
+ 0.506848f, 0.506931f, 0.507013f, 0.507096f, 0.507179f, 0.507261f, 0.507344f, 0.507426f,
+ 0.507509f, 0.507592f, 0.507674f, 0.507757f, 0.507839f, 0.507922f, 0.508005f, 0.508087f,
+ 0.508170f, 0.508252f, 0.508335f, 0.508417f, 0.508500f, 0.508583f, 0.508665f, 0.508748f,
+ 0.508830f, 0.508913f, 0.508995f, 0.509078f, 0.509160f, 0.509243f, 0.509325f, 0.509408f,
+ 0.509490f, 0.509573f, 0.509655f, 0.509738f, 0.509820f, 0.509903f, 0.509985f, 0.510068f,
+ 0.510150f, 0.510233f, 0.510315f, 0.510397f, 0.510480f, 0.510562f, 0.510645f, 0.510727f,
+ 0.510810f, 0.510892f, 0.510974f, 0.511057f, 0.511139f, 0.511222f, 0.511304f, 0.511386f,
+ 0.511469f, 0.511551f, 0.511634f, 0.511716f, 0.511798f, 0.511881f, 0.511963f, 0.512045f,
+ 0.512128f, 0.512210f, 0.512292f, 0.512375f, 0.512457f, 0.512539f, 0.512622f, 0.512704f,
+ 0.512786f, 0.512869f, 0.512951f, 0.513033f, 0.513116f, 0.513198f, 0.513280f, 0.513362f,
+ 0.513445f, 0.513527f, 0.513609f, 0.513692f, 0.513774f, 0.513856f, 0.513938f, 0.514021f,
+ 0.514103f, 0.514185f, 0.514267f, 0.514349f, 0.514432f, 0.514514f, 0.514596f, 0.514678f,
+ 0.514760f, 0.514843f, 0.514925f, 0.515007f, 0.515089f, 0.515171f, 0.515254f, 0.515336f,
+ 0.515418f, 0.515500f, 0.515582f, 0.515664f, 0.515746f, 0.515829f, 0.515911f, 0.515993f,
+ 0.516075f, 0.516157f, 0.516239f, 0.516321f, 0.516403f, 0.516486f, 0.516568f, 0.516650f,
+ 0.516732f, 0.516814f, 0.516896f, 0.516978f, 0.517060f, 0.517142f, 0.517224f, 0.517306f,
+ 0.517388f, 0.517470f, 0.517552f, 0.517634f, 0.517716f, 0.517798f, 0.517880f, 0.517963f,
+ 0.518045f, 0.518126f, 0.518209f, 0.518291f, 0.518372f, 0.518454f, 0.518536f, 0.518618f,
+ 0.518700f, 0.518782f, 0.518864f, 0.518946f, 0.519028f, 0.519110f, 0.519192f, 0.519274f,
+ 0.519356f, 0.519438f, 0.519520f, 0.519602f, 0.519684f, 0.519766f, 0.519848f, 0.519929f,
+ 0.520011f, 0.520093f, 0.520175f, 0.520257f, 0.520339f, 0.520421f, 0.520503f, 0.520584f,
+ 0.520666f, 0.520748f, 0.520830f, 0.520912f, 0.520994f, 0.521075f, 0.521157f, 0.521239f,
+ 0.521321f, 0.521403f, 0.521485f, 0.521566f, 0.521648f, 0.521730f, 0.521812f, 0.521894f,
+ 0.521975f, 0.522057f, 0.522139f, 0.522221f, 0.522302f, 0.522384f, 0.522466f, 0.522548f,
+ 0.522629f, 0.522711f, 0.522793f, 0.522875f, 0.522956f, 0.523038f, 0.523120f, 0.523201f,
+ 0.523283f, 0.523365f, 0.523447f, 0.523528f, 0.523610f, 0.523692f, 0.523773f, 0.523855f,
+ 0.523937f, 0.524018f, 0.524100f, 0.524181f, 0.524263f, 0.524345f, 0.524426f, 0.524508f,
+ 0.524590f, 0.524671f, 0.524753f, 0.524835f, 0.524916f, 0.524998f, 0.525079f, 0.525161f,
+ 0.525243f, 0.525324f, 0.525406f, 0.525487f, 0.525569f, 0.525650f, 0.525732f, 0.525813f,
+ 0.525895f, 0.525977f, 0.526058f, 0.526140f, 0.526221f, 0.526303f, 0.526384f, 0.526466f,
+ 0.526547f, 0.526629f, 0.526710f, 0.526792f, 0.526873f, 0.526955f, 0.527036f, 0.527118f,
+ 0.527199f, 0.527281f, 0.527362f, 0.527444f, 0.527525f, 0.527606f, 0.527688f, 0.527769f,
+ 0.527851f, 0.527932f, 0.528014f, 0.528095f, 0.528176f, 0.528258f, 0.528339f, 0.528421f,
+ 0.528502f, 0.528583f, 0.528665f, 0.528746f, 0.528828f, 0.528909f, 0.528990f, 0.529072f,
+ 0.529153f, 0.529234f, 0.529316f, 0.529397f, 0.529478f, 0.529560f, 0.529641f, 0.529722f,
+ 0.529804f, 0.529885f, 0.529966f, 0.530048f, 0.530129f, 0.530210f, 0.530291f, 0.530373f,
+ 0.530454f, 0.530535f, 0.530617f, 0.530698f, 0.530779f, 0.530860f, 0.530942f, 0.531023f,
+ 0.531104f, 0.531185f, 0.531266f, 0.531348f, 0.531429f, 0.531510f, 0.531591f, 0.531673f,
+ 0.531754f, 0.531835f, 0.531916f, 0.531997f, 0.532078f, 0.532160f, 0.532241f, 0.532322f,
+ 0.532403f, 0.532484f, 0.532565f, 0.532647f, 0.532728f, 0.532809f, 0.532890f, 0.532971f,
+ 0.533052f, 0.533133f, 0.533214f, 0.533296f, 0.533377f, 0.533458f, 0.533539f, 0.533620f,
+ 0.533701f, 0.533782f, 0.533863f, 0.533944f, 0.534025f, 0.534106f, 0.534187f, 0.534268f,
+ 0.534349f, 0.534431f, 0.534512f, 0.534593f, 0.534674f, 0.534755f, 0.534836f, 0.534917f,
+ 0.534998f, 0.535079f, 0.535160f, 0.535241f, 0.535322f, 0.535403f, 0.535484f, 0.535564f,
+ 0.535645f, 0.535726f, 0.535807f, 0.535888f, 0.535969f, 0.536050f, 0.536131f, 0.536212f,
+ 0.536293f, 0.536374f, 0.536455f, 0.536536f, 0.536617f, 0.536698f, 0.536778f, 0.536859f,
+ 0.536940f, 0.537021f, 0.537102f, 0.537183f, 0.537264f, 0.537345f, 0.537425f, 0.537506f,
+ 0.537587f, 0.537668f, 0.537749f, 0.537830f, 0.537910f, 0.537991f, 0.538072f, 0.538153f,
+ 0.538234f, 0.538314f, 0.538395f, 0.538476f, 0.538557f, 0.538638f, 0.538718f, 0.538799f,
+ 0.538880f, 0.538961f, 0.539041f, 0.539122f, 0.539203f, 0.539284f, 0.539364f, 0.539445f,
+ 0.539526f, 0.539607f, 0.539687f, 0.539768f, 0.539849f, 0.539929f, 0.540010f, 0.540091f,
+ 0.540171f, 0.540252f, 0.540333f, 0.540413f, 0.540494f, 0.540575f, 0.540655f, 0.540736f,
+ 0.540817f, 0.540897f, 0.540978f, 0.541059f, 0.541139f, 0.541220f, 0.541301f, 0.541381f,
+ 0.541462f, 0.541542f, 0.541623f, 0.541704f, 0.541784f, 0.541865f, 0.541945f, 0.542026f,
+ 0.542106f, 0.542187f, 0.542268f, 0.542348f, 0.542429f, 0.542509f, 0.542590f, 0.542670f,
+ 0.542751f, 0.542831f, 0.542912f, 0.542992f, 0.543073f, 0.543153f, 0.543234f, 0.543314f,
+ 0.543395f, 0.543475f, 0.543556f, 0.543636f, 0.543717f, 0.543797f, 0.543878f, 0.543958f,
+ 0.544039f, 0.544119f, 0.544199f, 0.544280f, 0.544360f, 0.544441f, 0.544521f, 0.544602f,
+ 0.544682f, 0.544762f, 0.544843f, 0.544923f, 0.545003f, 0.545084f, 0.545164f, 0.545245f,
+ 0.545325f, 0.545405f, 0.545486f, 0.545566f, 0.545646f, 0.545727f, 0.545807f, 0.545887f,
+ 0.545968f, 0.546048f, 0.546128f, 0.546209f, 0.546289f, 0.546369f, 0.546450f, 0.546530f,
+ 0.546610f, 0.546690f, 0.546771f, 0.546851f, 0.546931f, 0.547011f, 0.547092f, 0.547172f,
+ 0.547252f, 0.547333f, 0.547413f, 0.547493f, 0.547573f, 0.547653f, 0.547734f, 0.547814f,
+ 0.547894f, 0.547974f, 0.548054f, 0.548135f, 0.548215f, 0.548295f, 0.548375f, 0.548455f,
+ 0.548536f, 0.548616f, 0.548696f, 0.548776f, 0.548856f, 0.548936f, 0.549016f, 0.549097f,
+ 0.549177f, 0.549257f, 0.549337f, 0.549417f, 0.549497f, 0.549577f, 0.549657f, 0.549737f,
+ 0.549818f, 0.549898f, 0.549978f, 0.550058f, 0.550138f, 0.550218f, 0.550298f, 0.550378f,
+ 0.550458f, 0.550538f, 0.550618f, 0.550698f, 0.550778f, 0.550858f, 0.550938f, 0.551018f,
+ 0.551098f, 0.551178f, 0.551258f, 0.551338f, 0.551418f, 0.551498f, 0.551578f, 0.551658f,
+ 0.551738f, 0.551818f, 0.551898f, 0.551978f, 0.552058f, 0.552138f, 0.552218f, 0.552298f,
+ 0.552378f, 0.552457f, 0.552537f, 0.552617f, 0.552697f, 0.552777f, 0.552857f, 0.552937f,
+ 0.553017f, 0.553097f, 0.553176f, 0.553256f, 0.553336f, 0.553416f, 0.553496f, 0.553576f,
+ 0.553656f, 0.553735f, 0.553815f, 0.553895f, 0.553975f, 0.554055f, 0.554134f, 0.554214f,
+ 0.554294f, 0.554374f, 0.554454f, 0.554533f, 0.554613f, 0.554693f, 0.554773f, 0.554853f,
+ 0.554932f, 0.555012f, 0.555092f, 0.555172f, 0.555251f, 0.555331f, 0.555411f, 0.555490f,
+ 0.555570f, 0.555650f, 0.555730f, 0.555809f, 0.555889f, 0.555969f, 0.556048f, 0.556128f,
+ 0.556208f, 0.556287f, 0.556367f, 0.556447f, 0.556526f, 0.556606f, 0.556686f, 0.556765f,
+ 0.556845f, 0.556925f, 0.557004f, 0.557084f, 0.557164f, 0.557243f, 0.557323f, 0.557402f,
+ 0.557482f, 0.557562f, 0.557641f, 0.557721f, 0.557800f, 0.557880f, 0.557959f, 0.558039f,
+ 0.558119f, 0.558198f, 0.558278f, 0.558357f, 0.558437f, 0.558516f, 0.558596f, 0.558675f,
+ 0.558755f, 0.558834f, 0.558914f, 0.558993f, 0.559073f, 0.559152f, 0.559232f, 0.559311f,
+ 0.559391f, 0.559470f, 0.559550f, 0.559629f, 0.559709f, 0.559788f, 0.559867f, 0.559947f,
+ 0.560026f, 0.560106f, 0.560185f, 0.560265f, 0.560344f, 0.560423f, 0.560503f, 0.560582f,
+ 0.560662f, 0.560741f, 0.560820f, 0.560900f, 0.560979f, 0.561058f, 0.561138f, 0.561217f,
+ 0.561297f, 0.561376f, 0.561455f, 0.561535f, 0.561614f, 0.561693f, 0.561773f, 0.561852f,
+ 0.561931f, 0.562010f, 0.562090f, 0.562169f, 0.562248f, 0.562328f, 0.562407f, 0.562486f,
+ 0.562565f, 0.562645f, 0.562724f, 0.562803f, 0.562882f, 0.562962f, 0.563041f, 0.563120f,
+ 0.563199f, 0.563279f, 0.563358f, 0.563437f, 0.563516f, 0.563595f, 0.563675f, 0.563754f,
+ 0.563833f, 0.563912f, 0.563991f, 0.564070f, 0.564150f, 0.564229f, 0.564308f, 0.564387f,
+ 0.564466f, 0.564545f, 0.564624f, 0.564704f, 0.564783f, 0.564862f, 0.564941f, 0.565020f,
+ 0.565099f, 0.565178f, 0.565257f, 0.565336f, 0.565416f, 0.565495f, 0.565574f, 0.565653f,
+ 0.565732f, 0.565811f, 0.565890f, 0.565969f, 0.566048f, 0.566127f, 0.566206f, 0.566285f,
+ 0.566364f, 0.566443f, 0.566522f, 0.566601f, 0.566680f, 0.566759f, 0.566838f, 0.566917f,
+ 0.566996f, 0.567075f, 0.567154f, 0.567233f, 0.567312f, 0.567391f, 0.567470f, 0.567549f,
+ 0.567628f, 0.567707f, 0.567786f, 0.567864f, 0.567943f, 0.568022f, 0.568101f, 0.568180f,
+ 0.568259f, 0.568338f, 0.568417f, 0.568496f, 0.568574f, 0.568653f, 0.568732f, 0.568811f,
+ 0.568890f, 0.568969f, 0.569048f, 0.569126f, 0.569205f, 0.569284f, 0.569363f, 0.569442f,
+ 0.569521f, 0.569599f, 0.569678f, 0.569757f, 0.569836f, 0.569914f, 0.569993f, 0.570072f,
+ 0.570151f, 0.570230f, 0.570308f, 0.570387f, 0.570466f, 0.570545f, 0.570623f, 0.570702f,
+ 0.570781f, 0.570859f, 0.570938f, 0.571017f, 0.571096f, 0.571174f, 0.571253f, 0.571332f,
+ 0.571410f, 0.571489f, 0.571568f, 0.571646f, 0.571725f, 0.571804f, 0.571882f, 0.571961f,
+ 0.572040f, 0.572118f, 0.572197f, 0.572276f, 0.572354f, 0.572433f, 0.572511f, 0.572590f,
+ 0.572669f, 0.572747f, 0.572826f, 0.572904f, 0.572983f, 0.573061f, 0.573140f, 0.573219f,
+ 0.573297f, 0.573376f, 0.573454f, 0.573533f, 0.573611f, 0.573690f, 0.573768f, 0.573847f,
+ 0.573925f, 0.574004f, 0.574082f, 0.574161f, 0.574239f, 0.574318f, 0.574396f, 0.574475f,
+ 0.574553f, 0.574632f, 0.574710f, 0.574789f, 0.574867f, 0.574946f, 0.575024f, 0.575103f,
+ 0.575181f, 0.575259f, 0.575338f, 0.575416f, 0.575495f, 0.575573f, 0.575651f, 0.575730f,
+ 0.575808f, 0.575887f, 0.575965f, 0.576043f, 0.576122f, 0.576200f, 0.576278f, 0.576357f,
+ 0.576435f, 0.576513f, 0.576592f, 0.576670f, 0.576748f, 0.576827f, 0.576905f, 0.576983f,
+ 0.577062f, 0.577140f, 0.577218f, 0.577297f, 0.577375f, 0.577453f, 0.577531f, 0.577610f,
+ 0.577688f, 0.577766f, 0.577844f, 0.577923f, 0.578001f, 0.578079f, 0.578157f, 0.578236f,
+ 0.578314f, 0.578392f, 0.578470f, 0.578548f, 0.578627f, 0.578705f, 0.578783f, 0.578861f,
+ 0.578939f, 0.579018f, 0.579096f, 0.579174f, 0.579252f, 0.579330f, 0.579408f, 0.579486f,
+ 0.579565f, 0.579643f, 0.579721f, 0.579799f, 0.579877f, 0.579955f, 0.580033f, 0.580111f,
+ 0.580189f, 0.580267f, 0.580346f, 0.580424f, 0.580502f, 0.580580f, 0.580658f, 0.580736f,
+ 0.580814f, 0.580892f, 0.580970f, 0.581048f, 0.581126f, 0.581204f, 0.581282f, 0.581360f,
+ 0.581438f, 0.581516f, 0.581594f, 0.581672f, 0.581750f, 0.581828f, 0.581906f, 0.581984f,
+ 0.582062f, 0.582140f, 0.582218f, 0.582296f, 0.582374f, 0.582452f, 0.582530f, 0.582608f,
+ 0.582685f, 0.582763f, 0.582841f, 0.582919f, 0.582997f, 0.583075f, 0.583153f, 0.583231f,
+ 0.583309f, 0.583387f, 0.583464f, 0.583542f, 0.583620f, 0.583698f, 0.583776f, 0.583854f,
+ 0.583931f, 0.584009f, 0.584087f, 0.584165f, 0.584243f, 0.584321f, 0.584398f, 0.584476f,
+ 0.584554f, 0.584632f, 0.584710f, 0.584787f, 0.584865f, 0.584943f, 0.585021f, 0.585098f,
+ 0.585176f, 0.585254f, 0.585332f, 0.585409f, 0.585487f, 0.585565f, 0.585642f, 0.585720f,
+ 0.585798f, 0.585876f, 0.585953f, 0.586031f, 0.586109f, 0.586186f, 0.586264f, 0.586342f,
+ 0.586419f, 0.586497f, 0.586575f, 0.586652f, 0.586730f, 0.586808f, 0.586885f, 0.586963f,
+ 0.587040f, 0.587118f, 0.587196f, 0.587273f, 0.587351f, 0.587428f, 0.587506f, 0.587584f,
+ 0.587661f, 0.587739f, 0.587816f, 0.587894f, 0.587971f, 0.588049f, 0.588126f, 0.588204f,
+ 0.588282f, 0.588359f, 0.588437f, 0.588514f, 0.588592f, 0.588669f, 0.588747f, 0.588824f,
+ 0.588902f, 0.588979f, 0.589057f, 0.589134f, 0.589212f, 0.589289f, 0.589366f, 0.589444f,
+ 0.589521f, 0.589599f, 0.589676f, 0.589754f, 0.589831f, 0.589908f, 0.589986f, 0.590063f,
+ 0.590141f, 0.590218f, 0.590295f, 0.590373f, 0.590450f, 0.590528f, 0.590605f, 0.590682f,
+ 0.590760f, 0.590837f, 0.590914f, 0.590992f, 0.591069f, 0.591146f, 0.591224f, 0.591301f,
+ 0.591378f, 0.591456f, 0.591533f, 0.591610f, 0.591688f, 0.591765f, 0.591842f, 0.591919f,
+ 0.591997f, 0.592074f, 0.592151f, 0.592228f, 0.592306f, 0.592383f, 0.592460f, 0.592537f,
+ 0.592615f, 0.592692f, 0.592769f, 0.592846f, 0.592924f, 0.593001f, 0.593078f, 0.593155f,
+ 0.593232f, 0.593309f, 0.593387f, 0.593464f, 0.593541f, 0.593618f, 0.593695f, 0.593772f,
+ 0.593850f, 0.593927f, 0.594004f, 0.594081f, 0.594158f, 0.594235f, 0.594312f, 0.594389f,
+ 0.594467f, 0.594544f, 0.594621f, 0.594698f, 0.594775f, 0.594852f, 0.594929f, 0.595006f,
+ 0.595083f, 0.595160f, 0.595237f, 0.595314f, 0.595391f, 0.595468f, 0.595545f, 0.595622f,
+ 0.595699f, 0.595776f, 0.595853f, 0.595930f, 0.596007f, 0.596084f, 0.596161f, 0.596238f,
+ 0.596315f, 0.596392f, 0.596469f, 0.596546f, 0.596623f, 0.596700f, 0.596777f, 0.596854f,
+ 0.596931f, 0.597008f, 0.597085f, 0.597161f, 0.597238f, 0.597315f, 0.597392f, 0.597469f,
+ 0.597546f, 0.597623f, 0.597700f, 0.597776f, 0.597853f, 0.597930f, 0.598007f, 0.598084f,
+ 0.598161f, 0.598238f, 0.598314f, 0.598391f, 0.598468f, 0.598545f, 0.598622f, 0.598698f,
+ 0.598775f, 0.598852f, 0.598929f, 0.599006f, 0.599082f, 0.599159f, 0.599236f, 0.599313f,
+ 0.599389f, 0.599466f, 0.599543f, 0.599620f, 0.599696f, 0.599773f, 0.599850f, 0.599926f,
+ 0.600003f, 0.600080f, 0.600156f, 0.600233f, 0.600310f, 0.600387f, 0.600463f, 0.600540f,
+ 0.600616f, 0.600693f, 0.600770f, 0.600846f, 0.600923f, 0.601000f, 0.601076f, 0.601153f,
+ 0.601230f, 0.601306f, 0.601383f, 0.601459f, 0.601536f, 0.601613f, 0.601689f, 0.601766f,
+ 0.601842f, 0.601919f, 0.601995f, 0.602072f, 0.602148f, 0.602225f, 0.602302f, 0.602378f,
+ 0.602455f, 0.602531f, 0.602608f, 0.602684f, 0.602761f, 0.602837f, 0.602914f, 0.602990f,
+ 0.603067f, 0.603143f, 0.603220f, 0.603296f, 0.603372f, 0.603449f, 0.603525f, 0.603602f,
+ 0.603678f, 0.603755f, 0.603831f, 0.603908f, 0.603984f, 0.604060f, 0.604137f, 0.604213f,
+ 0.604290f, 0.604366f, 0.604442f, 0.604519f, 0.604595f, 0.604671f, 0.604748f, 0.604824f,
+ 0.604900f, 0.604977f, 0.605053f, 0.605129f, 0.605206f, 0.605282f, 0.605358f, 0.605435f,
+ 0.605511f, 0.605587f, 0.605664f, 0.605740f, 0.605816f, 0.605892f, 0.605969f, 0.606045f,
+ 0.606121f, 0.606198f, 0.606274f, 0.606350f, 0.606426f, 0.606502f, 0.606579f, 0.606655f,
+ 0.606731f, 0.606807f, 0.606884f, 0.606960f, 0.607036f, 0.607112f, 0.607188f, 0.607264f,
+ 0.607341f, 0.607417f, 0.607493f, 0.607569f, 0.607645f, 0.607721f, 0.607798f, 0.607874f,
+ 0.607950f, 0.608026f, 0.608102f, 0.608178f, 0.608254f, 0.608330f, 0.608406f, 0.608482f,
+ 0.608559f, 0.608635f, 0.608711f, 0.608787f, 0.608863f, 0.608939f, 0.609015f, 0.609091f,
+ 0.609167f, 0.609243f, 0.609319f, 0.609395f, 0.609471f, 0.609547f, 0.609623f, 0.609699f,
+ 0.609775f, 0.609851f, 0.609927f, 0.610003f, 0.610079f, 0.610155f, 0.610231f, 0.610307f,
+ 0.610383f, 0.610459f, 0.610535f, 0.610611f, 0.610687f, 0.610762f, 0.610838f, 0.610914f,
+ 0.610990f, 0.611066f, 0.611142f, 0.611218f, 0.611294f, 0.611370f, 0.611445f, 0.611521f,
+ 0.611597f, 0.611673f, 0.611749f, 0.611825f, 0.611901f, 0.611976f, 0.612052f, 0.612128f,
+ 0.612204f, 0.612280f, 0.612355f, 0.612431f, 0.612507f, 0.612583f, 0.612659f, 0.612734f,
+ 0.612810f, 0.612886f, 0.612962f, 0.613037f, 0.613113f, 0.613189f, 0.613265f, 0.613340f,
+ 0.613416f, 0.613492f, 0.613567f, 0.613643f, 0.613719f, 0.613795f, 0.613870f, 0.613946f,
+ 0.614022f, 0.614097f, 0.614173f, 0.614249f, 0.614324f, 0.614400f, 0.614475f, 0.614551f,
+ 0.614627f, 0.614702f, 0.614778f, 0.614854f, 0.614929f, 0.615005f, 0.615080f, 0.615156f,
+ 0.615232f, 0.615307f, 0.615383f, 0.615458f, 0.615534f, 0.615609f, 0.615685f, 0.615761f,
+ 0.615836f, 0.615912f, 0.615987f, 0.616063f, 0.616138f, 0.616214f, 0.616289f, 0.616365f,
+ 0.616440f, 0.616516f, 0.616591f, 0.616667f, 0.616742f, 0.616818f, 0.616893f, 0.616968f,
+ 0.617044f, 0.617119f, 0.617195f, 0.617270f, 0.617346f, 0.617421f, 0.617496f, 0.617572f,
+ 0.617647f, 0.617723f, 0.617798f, 0.617873f, 0.617949f, 0.618024f, 0.618100f, 0.618175f,
+ 0.618250f, 0.618326f, 0.618401f, 0.618476f, 0.618552f, 0.618627f, 0.618702f, 0.618778f,
+ 0.618853f, 0.618928f, 0.619004f, 0.619079f, 0.619154f, 0.619229f, 0.619305f, 0.619380f,
+ 0.619455f, 0.619531f, 0.619606f, 0.619681f, 0.619756f, 0.619832f, 0.619907f, 0.619982f,
+ 0.620057f, 0.620132f, 0.620208f, 0.620283f, 0.620358f, 0.620433f, 0.620508f, 0.620584f,
+ 0.620659f, 0.620734f, 0.620809f, 0.620884f, 0.620959f, 0.621035f, 0.621110f, 0.621185f,
+ 0.621260f, 0.621335f, 0.621410f, 0.621485f, 0.621560f, 0.621636f, 0.621711f, 0.621786f,
+ 0.621861f, 0.621936f, 0.622011f, 0.622086f, 0.622161f, 0.622236f, 0.622311f, 0.622386f,
+ 0.622461f, 0.622536f, 0.622611f, 0.622686f, 0.622761f, 0.622836f, 0.622911f, 0.622986f,
+ 0.623061f, 0.623136f, 0.623211f, 0.623286f, 0.623361f, 0.623436f, 0.623511f, 0.623586f,
+ 0.623661f, 0.623736f, 0.623811f, 0.623886f, 0.623961f, 0.624036f, 0.624111f, 0.624186f,
+ 0.624260f, 0.624335f, 0.624410f, 0.624485f, 0.624560f, 0.624635f, 0.624710f, 0.624785f,
+ 0.624860f, 0.624934f, 0.625009f, 0.625084f, 0.625159f, 0.625234f, 0.625309f, 0.625383f,
+ 0.625458f, 0.625533f, 0.625608f, 0.625683f, 0.625757f, 0.625832f, 0.625907f, 0.625982f,
+ 0.626056f, 0.626131f, 0.626206f, 0.626281f, 0.626355f, 0.626430f, 0.626505f, 0.626580f,
+ 0.626654f, 0.626729f, 0.626804f, 0.626878f, 0.626953f, 0.627028f, 0.627102f, 0.627177f,
+ 0.627252f, 0.627326f, 0.627401f, 0.627476f, 0.627550f, 0.627625f, 0.627700f, 0.627774f,
+ 0.627849f, 0.627924f, 0.627998f, 0.628073f, 0.628147f, 0.628222f, 0.628297f, 0.628371f,
+ 0.628446f, 0.628520f, 0.628595f, 0.628669f, 0.628744f, 0.628819f, 0.628893f, 0.628968f,
+ 0.629042f, 0.629117f, 0.629191f, 0.629266f, 0.629340f, 0.629415f, 0.629489f, 0.629564f,
+ 0.629638f, 0.629713f, 0.629787f, 0.629862f, 0.629936f, 0.630011f, 0.630085f, 0.630159f,
+ 0.630234f, 0.630308f, 0.630383f, 0.630457f, 0.630532f, 0.630606f, 0.630680f, 0.630755f,
+ 0.630829f, 0.630904f, 0.630978f, 0.631052f, 0.631127f, 0.631201f, 0.631275f, 0.631350f,
+ 0.631424f, 0.631499f, 0.631573f, 0.631647f, 0.631721f, 0.631796f, 0.631870f, 0.631944f,
+ 0.632019f, 0.632093f, 0.632167f, 0.632242f, 0.632316f, 0.632390f, 0.632464f, 0.632539f,
+ 0.632613f, 0.632687f, 0.632761f, 0.632836f, 0.632910f, 0.632984f, 0.633058f, 0.633133f,
+ 0.633207f, 0.633281f, 0.633355f, 0.633429f, 0.633504f, 0.633578f, 0.633652f, 0.633726f,
+ 0.633800f, 0.633874f, 0.633949f, 0.634023f, 0.634097f, 0.634171f, 0.634245f, 0.634319f,
+ 0.634393f, 0.634467f, 0.634542f, 0.634616f, 0.634690f, 0.634764f, 0.634838f, 0.634912f,
+ 0.634986f, 0.635060f, 0.635134f, 0.635208f, 0.635282f, 0.635356f, 0.635430f, 0.635504f,
+ 0.635578f, 0.635652f, 0.635726f, 0.635800f, 0.635874f, 0.635948f, 0.636022f, 0.636096f,
+ 0.636170f, 0.636244f, 0.636318f, 0.636392f, 0.636466f, 0.636540f, 0.636614f, 0.636688f,
+ 0.636762f, 0.636836f, 0.636910f, 0.636984f, 0.637057f, 0.637131f, 0.637205f, 0.637279f,
+ 0.637353f, 0.637427f, 0.637501f, 0.637575f, 0.637649f, 0.637722f, 0.637796f, 0.637870f,
+ 0.637944f, 0.638018f, 0.638092f, 0.638165f, 0.638239f, 0.638313f, 0.638387f, 0.638461f,
+ 0.638534f, 0.638608f, 0.638682f, 0.638756f, 0.638829f, 0.638903f, 0.638977f, 0.639051f,
+ 0.639124f, 0.639198f, 0.639272f, 0.639346f, 0.639419f, 0.639493f, 0.639567f, 0.639640f,
+ 0.639714f, 0.639788f, 0.639862f, 0.639935f, 0.640009f, 0.640083f, 0.640156f, 0.640230f,
+ 0.640303f, 0.640377f, 0.640451f, 0.640524f, 0.640598f, 0.640672f, 0.640745f, 0.640819f,
+ 0.640892f, 0.640966f, 0.641040f, 0.641113f, 0.641187f, 0.641260f, 0.641334f, 0.641407f,
+ 0.641481f, 0.641555f, 0.641628f, 0.641702f, 0.641775f, 0.641849f, 0.641922f, 0.641996f,
+ 0.642069f, 0.642143f, 0.642216f, 0.642290f, 0.642363f, 0.642437f, 0.642510f, 0.642584f,
+ 0.642657f, 0.642730f, 0.642804f, 0.642877f, 0.642951f, 0.643024f, 0.643098f, 0.643171f,
+ 0.643245f, 0.643318f, 0.643391f, 0.643465f, 0.643538f, 0.643611f, 0.643685f, 0.643758f,
+ 0.643832f, 0.643905f, 0.643978f, 0.644052f, 0.644125f, 0.644198f, 0.644272f, 0.644345f,
+ 0.644418f, 0.644492f, 0.644565f, 0.644638f, 0.644711f, 0.644785f, 0.644858f, 0.644931f,
+ 0.645005f, 0.645078f, 0.645151f, 0.645224f, 0.645298f, 0.645371f, 0.645444f, 0.645517f,
+ 0.645590f, 0.645664f, 0.645737f, 0.645810f, 0.645883f, 0.645956f, 0.646030f, 0.646103f,
+ 0.646176f, 0.646249f, 0.646322f, 0.646396f, 0.646469f, 0.646542f, 0.646615f, 0.646688f,
+ 0.646761f, 0.646834f, 0.646907f, 0.646981f, 0.647054f, 0.647127f, 0.647200f, 0.647273f,
+ 0.647346f, 0.647419f, 0.647492f, 0.647565f, 0.647638f, 0.647711f, 0.647784f, 0.647857f,
+ 0.647930f, 0.648003f, 0.648076f, 0.648149f, 0.648222f, 0.648295f, 0.648368f, 0.648441f,
+ 0.648514f, 0.648587f, 0.648660f, 0.648733f, 0.648806f, 0.648879f, 0.648952f, 0.649025f,
+ 0.649098f, 0.649171f, 0.649244f, 0.649317f, 0.649390f, 0.649463f, 0.649536f, 0.649608f,
+ 0.649681f, 0.649754f, 0.649827f, 0.649900f, 0.649973f, 0.650046f, 0.650119f, 0.650191f,
+ 0.650264f, 0.650337f, 0.650410f, 0.650483f, 0.650555f, 0.650628f, 0.650701f, 0.650774f,
+ 0.650847f, 0.650919f, 0.650992f, 0.651065f, 0.651138f, 0.651211f, 0.651283f, 0.651356f,
+ 0.651429f, 0.651502f, 0.651574f, 0.651647f, 0.651720f, 0.651792f, 0.651865f, 0.651938f,
+ 0.652011f, 0.652083f, 0.652156f, 0.652229f, 0.652301f, 0.652374f, 0.652447f, 0.652519f,
+ 0.652592f, 0.652665f, 0.652737f, 0.652810f, 0.652882f, 0.652955f, 0.653028f, 0.653100f,
+ 0.653173f, 0.653245f, 0.653318f, 0.653391f, 0.653463f, 0.653536f, 0.653608f, 0.653681f,
+ 0.653753f, 0.653826f, 0.653899f, 0.653971f, 0.654044f, 0.654116f, 0.654189f, 0.654261f,
+ 0.654334f, 0.654406f, 0.654479f, 0.654551f, 0.654624f, 0.654696f, 0.654769f, 0.654841f,
+ 0.654913f, 0.654986f, 0.655058f, 0.655131f, 0.655203f, 0.655276f, 0.655348f, 0.655420f,
+ 0.655493f, 0.655565f, 0.655638f, 0.655710f, 0.655782f, 0.655855f, 0.655927f, 0.656000f,
+ 0.656072f, 0.656144f, 0.656217f, 0.656289f, 0.656361f, 0.656434f, 0.656506f, 0.656578f,
+ 0.656651f, 0.656723f, 0.656795f, 0.656867f, 0.656940f, 0.657012f, 0.657084f, 0.657157f,
+ 0.657229f, 0.657301f, 0.657373f, 0.657446f, 0.657518f, 0.657590f, 0.657662f, 0.657734f,
+ 0.657807f, 0.657879f, 0.657951f, 0.658023f, 0.658095f, 0.658168f, 0.658240f, 0.658312f,
+ 0.658384f, 0.658456f, 0.658529f, 0.658601f, 0.658673f, 0.658745f, 0.658817f, 0.658889f,
+ 0.658961f, 0.659033f, 0.659105f, 0.659178f, 0.659250f, 0.659322f, 0.659394f, 0.659466f,
+ 0.659538f, 0.659610f, 0.659682f, 0.659754f, 0.659826f, 0.659898f, 0.659970f, 0.660042f,
+ 0.660114f, 0.660186f, 0.660258f, 0.660330f, 0.660402f, 0.660474f, 0.660546f, 0.660618f,
+ 0.660690f, 0.660762f, 0.660834f, 0.660906f, 0.660978f, 0.661050f, 0.661122f, 0.661194f,
+ 0.661266f, 0.661338f, 0.661410f, 0.661482f, 0.661553f, 0.661625f, 0.661697f, 0.661769f,
+ 0.661841f, 0.661913f, 0.661985f, 0.662057f, 0.662128f, 0.662200f, 0.662272f, 0.662344f,
+ 0.662416f, 0.662488f, 0.662559f, 0.662631f, 0.662703f, 0.662775f, 0.662847f, 0.662918f,
+ 0.662990f, 0.663062f, 0.663134f, 0.663205f, 0.663277f, 0.663349f, 0.663421f, 0.663492f,
+ 0.663564f, 0.663636f, 0.663708f, 0.663779f, 0.663851f, 0.663923f, 0.663994f, 0.664066f,
+ 0.664138f, 0.664209f, 0.664281f, 0.664353f, 0.664424f, 0.664496f, 0.664568f, 0.664639f,
+ 0.664711f, 0.664783f, 0.664854f, 0.664926f, 0.664997f, 0.665069f, 0.665141f, 0.665212f,
+ 0.665284f, 0.665355f, 0.665427f, 0.665498f, 0.665570f, 0.665642f, 0.665713f, 0.665785f,
+ 0.665856f, 0.665928f, 0.665999f, 0.666071f, 0.666142f, 0.666214f, 0.666285f, 0.666357f,
+ 0.666428f, 0.666500f, 0.666571f, 0.666643f, 0.666714f, 0.666786f, 0.666857f, 0.666928f,
+ 0.667000f, 0.667071f, 0.667143f, 0.667214f, 0.667286f, 0.667357f, 0.667428f, 0.667500f,
+ 0.667571f, 0.667643f, 0.667714f, 0.667785f, 0.667857f, 0.667928f, 0.667999f, 0.668071f,
+ 0.668142f, 0.668213f, 0.668285f, 0.668356f, 0.668427f, 0.668499f, 0.668570f, 0.668641f,
+ 0.668712f, 0.668784f, 0.668855f, 0.668926f, 0.668998f, 0.669069f, 0.669140f, 0.669211f,
+ 0.669283f, 0.669354f, 0.669425f, 0.669496f, 0.669567f, 0.669639f, 0.669710f, 0.669781f,
+ 0.669852f, 0.669923f, 0.669995f, 0.670066f, 0.670137f, 0.670208f, 0.670279f, 0.670350f,
+ 0.670422f, 0.670493f, 0.670564f, 0.670635f, 0.670706f, 0.670777f, 0.670848f, 0.670919f,
+ 0.670990f, 0.671062f, 0.671133f, 0.671204f, 0.671275f, 0.671346f, 0.671417f, 0.671488f,
+ 0.671559f, 0.671630f, 0.671701f, 0.671772f, 0.671843f, 0.671914f, 0.671985f, 0.672056f,
+ 0.672127f, 0.672198f, 0.672269f, 0.672340f, 0.672411f, 0.672482f, 0.672553f, 0.672624f,
+ 0.672695f, 0.672766f, 0.672837f, 0.672908f, 0.672978f, 0.673049f, 0.673120f, 0.673191f,
+ 0.673262f, 0.673333f, 0.673404f, 0.673475f, 0.673546f, 0.673616f, 0.673687f, 0.673758f,
+ 0.673829f, 0.673900f, 0.673971f, 0.674042f, 0.674112f, 0.674183f, 0.674254f, 0.674325f,
+ 0.674396f, 0.674466f, 0.674537f, 0.674608f, 0.674679f, 0.674749f, 0.674820f, 0.674891f,
+ 0.674962f, 0.675032f, 0.675103f, 0.675174f, 0.675245f, 0.675315f, 0.675386f, 0.675457f,
+ 0.675527f, 0.675598f, 0.675669f, 0.675739f, 0.675810f, 0.675881f, 0.675951f, 0.676022f,
+ 0.676093f, 0.676163f, 0.676234f, 0.676305f, 0.676375f, 0.676446f, 0.676516f, 0.676587f,
+ 0.676658f, 0.676728f, 0.676799f, 0.676869f, 0.676940f, 0.677011f, 0.677081f, 0.677152f,
+ 0.677222f, 0.677293f, 0.677363f, 0.677434f, 0.677504f, 0.677575f, 0.677645f, 0.677716f,
+ 0.677786f, 0.677857f, 0.677927f, 0.677998f, 0.678068f, 0.678139f, 0.678209f, 0.678280f,
+ 0.678350f, 0.678420f, 0.678491f, 0.678561f, 0.678632f, 0.678702f, 0.678773f, 0.678843f,
+ 0.678913f, 0.678984f, 0.679054f, 0.679125f, 0.679195f, 0.679265f, 0.679336f, 0.679406f,
+ 0.679476f, 0.679547f, 0.679617f, 0.679687f, 0.679758f, 0.679828f, 0.679898f, 0.679969f,
+ 0.680039f, 0.680109f, 0.680179f, 0.680250f, 0.680320f, 0.680390f, 0.680461f, 0.680531f,
+ 0.680601f, 0.680671f, 0.680741f, 0.680812f, 0.680882f, 0.680952f, 0.681022f, 0.681093f,
+ 0.681163f, 0.681233f, 0.681303f, 0.681373f, 0.681443f, 0.681514f, 0.681584f, 0.681654f,
+ 0.681724f, 0.681794f, 0.681864f, 0.681934f, 0.682005f, 0.682075f, 0.682145f, 0.682215f,
+ 0.682285f, 0.682355f, 0.682425f, 0.682495f, 0.682565f, 0.682635f, 0.682705f, 0.682775f,
+ 0.682846f, 0.682916f, 0.682986f, 0.683056f, 0.683126f, 0.683196f, 0.683266f, 0.683336f,
+ 0.683406f, 0.683476f, 0.683546f, 0.683616f, 0.683686f, 0.683756f, 0.683825f, 0.683895f,
+ 0.683965f, 0.684035f, 0.684105f, 0.684175f, 0.684245f, 0.684315f, 0.684385f, 0.684455f,
+ 0.684525f, 0.684595f, 0.684664f, 0.684734f, 0.684804f, 0.684874f, 0.684944f, 0.685014f,
+ 0.685084f, 0.685153f, 0.685223f, 0.685293f, 0.685363f, 0.685433f, 0.685503f, 0.685572f,
+ 0.685642f, 0.685712f, 0.685782f, 0.685852f, 0.685921f, 0.685991f, 0.686061f, 0.686131f,
+ 0.686200f, 0.686270f, 0.686340f, 0.686409f, 0.686479f, 0.686549f, 0.686619f, 0.686688f,
+ 0.686758f, 0.686828f, 0.686897f, 0.686967f, 0.687037f, 0.687106f, 0.687176f, 0.687246f,
+ 0.687315f, 0.687385f, 0.687455f, 0.687524f, 0.687594f, 0.687663f, 0.687733f, 0.687803f,
+ 0.687872f, 0.687942f, 0.688011f, 0.688081f, 0.688151f, 0.688220f, 0.688290f, 0.688359f,
+ 0.688429f, 0.688498f, 0.688568f, 0.688637f, 0.688707f, 0.688776f, 0.688846f, 0.688915f,
+ 0.688985f, 0.689054f, 0.689124f, 0.689193f, 0.689263f, 0.689332f, 0.689402f, 0.689471f,
+ 0.689541f, 0.689610f, 0.689679f, 0.689749f, 0.689818f, 0.689888f, 0.689957f, 0.690026f,
+ 0.690096f, 0.690165f, 0.690235f, 0.690304f, 0.690373f, 0.690443f, 0.690512f, 0.690581f,
+ 0.690651f, 0.690720f, 0.690789f, 0.690859f, 0.690928f, 0.690997f, 0.691067f, 0.691136f,
+ 0.691205f, 0.691274f, 0.691344f, 0.691413f, 0.691482f, 0.691552f, 0.691621f, 0.691690f,
+ 0.691759f, 0.691828f, 0.691898f, 0.691967f, 0.692036f, 0.692105f, 0.692175f, 0.692244f,
+ 0.692313f, 0.692382f, 0.692451f, 0.692520f, 0.692590f, 0.692659f, 0.692728f, 0.692797f,
+ 0.692866f, 0.692935f, 0.693004f, 0.693074f, 0.693143f, 0.693212f, 0.693281f, 0.693350f,
+ 0.693419f, 0.693488f, 0.693557f, 0.693626f, 0.693695f, 0.693764f, 0.693833f, 0.693902f,
+ 0.693971f, 0.694040f, 0.694109f, 0.694179f, 0.694248f, 0.694317f, 0.694386f, 0.694454f,
+ 0.694524f, 0.694592f, 0.694661f, 0.694730f, 0.694799f, 0.694868f, 0.694937f, 0.695006f,
+ 0.695075f, 0.695144f, 0.695213f, 0.695282f, 0.695351f, 0.695420f, 0.695489f, 0.695557f,
+ 0.695626f, 0.695695f, 0.695764f, 0.695833f, 0.695902f, 0.695971f, 0.696039f, 0.696108f,
+ 0.696177f, 0.696246f, 0.696315f, 0.696384f, 0.696452f, 0.696521f, 0.696590f, 0.696659f,
+ 0.696728f, 0.696796f, 0.696865f, 0.696934f, 0.697003f, 0.697071f, 0.697140f, 0.697209f,
+ 0.697277f, 0.697346f, 0.697415f, 0.697484f, 0.697552f, 0.697621f, 0.697690f, 0.697758f,
+ 0.697827f, 0.697896f, 0.697964f, 0.698033f, 0.698102f, 0.698170f, 0.698239f, 0.698308f,
+ 0.698376f, 0.698445f, 0.698513f, 0.698582f, 0.698651f, 0.698719f, 0.698788f, 0.698856f,
+ 0.698925f, 0.698994f, 0.699062f, 0.699131f, 0.699199f, 0.699268f, 0.699336f, 0.699405f,
+ 0.699473f, 0.699542f, 0.699610f, 0.699679f, 0.699747f, 0.699816f, 0.699884f, 0.699953f,
+ 0.700021f, 0.700090f, 0.700158f, 0.700227f, 0.700295f, 0.700364f, 0.700432f, 0.700500f,
+ 0.700569f, 0.700637f, 0.700706f, 0.700774f, 0.700842f, 0.700911f, 0.700979f, 0.701048f,
+ 0.701116f, 0.701184f, 0.701253f, 0.701321f, 0.701389f, 0.701458f, 0.701526f, 0.701594f,
+ 0.701663f, 0.701731f, 0.701799f, 0.701868f, 0.701936f, 0.702004f, 0.702072f, 0.702141f,
+ 0.702209f, 0.702277f, 0.702345f, 0.702414f, 0.702482f, 0.702550f, 0.702618f, 0.702687f,
+ 0.702755f, 0.702823f, 0.702891f, 0.702959f, 0.703028f, 0.703096f, 0.703164f, 0.703232f,
+ 0.703300f, 0.703368f, 0.703436f, 0.703505f, 0.703573f, 0.703641f, 0.703709f, 0.703777f,
+ 0.703845f, 0.703913f, 0.703981f, 0.704050f, 0.704118f, 0.704186f, 0.704254f, 0.704322f,
+ 0.704390f, 0.704458f, 0.704526f, 0.704594f, 0.704662f, 0.704730f, 0.704798f, 0.704866f,
+ 0.704934f, 0.705002f, 0.705070f, 0.705138f, 0.705206f, 0.705274f, 0.705342f, 0.705410f,
+ 0.705478f, 0.705546f, 0.705614f, 0.705682f, 0.705750f, 0.705818f, 0.705885f, 0.705953f,
+ 0.706021f, 0.706089f, 0.706157f, 0.706225f, 0.706293f, 0.706361f, 0.706429f, 0.706496f,
+ 0.706564f, 0.706632f, 0.706700f, 0.706768f, 0.706836f, 0.706903f, 0.706971f, 0.707039f,
+ 0.707107f, 0.707175f, 0.707242f, 0.707310f, 0.707378f, 0.707446f, 0.707513f, 0.707581f,
+ 0.707649f, 0.707717f, 0.707784f, 0.707852f, 0.707920f, 0.707988f, 0.708055f, 0.708123f,
+ 0.708191f, 0.708258f, 0.708326f, 0.708394f, 0.708461f, 0.708529f, 0.708597f, 0.708664f,
+ 0.708732f, 0.708800f, 0.708867f, 0.708935f, 0.709002f, 0.709070f, 0.709138f, 0.709205f,
+ 0.709273f, 0.709340f, 0.709408f, 0.709476f, 0.709543f, 0.709611f, 0.709678f, 0.709746f,
+ 0.709813f, 0.709881f, 0.709948f, 0.710016f, 0.710083f, 0.710151f, 0.710218f, 0.710286f,
+ 0.710353f, 0.710421f, 0.710488f, 0.710556f, 0.710623f, 0.710691f, 0.710758f, 0.710826f,
+ 0.710893f, 0.710960f, 0.711028f, 0.711095f, 0.711163f, 0.711230f, 0.711297f, 0.711365f,
+ 0.711432f, 0.711500f, 0.711567f, 0.711634f, 0.711702f, 0.711769f, 0.711836f, 0.711904f,
+ 0.711971f, 0.712038f, 0.712106f, 0.712173f, 0.712240f, 0.712308f, 0.712375f, 0.712442f,
+ 0.712509f, 0.712577f, 0.712644f, 0.712711f, 0.712778f, 0.712846f, 0.712913f, 0.712980f,
+ 0.713047f, 0.713115f, 0.713182f, 0.713249f, 0.713316f, 0.713383f, 0.713451f, 0.713518f,
+ 0.713585f, 0.713652f, 0.713719f, 0.713786f, 0.713853f, 0.713921f, 0.713988f, 0.714055f,
+ 0.714122f, 0.714189f, 0.714256f, 0.714323f, 0.714390f, 0.714457f, 0.714525f, 0.714592f,
+ 0.714659f, 0.714726f, 0.714793f, 0.714860f, 0.714927f, 0.714994f, 0.715061f, 0.715128f,
+ 0.715195f, 0.715262f, 0.715329f, 0.715396f, 0.715463f, 0.715530f, 0.715597f, 0.715664f,
+ 0.715731f, 0.715798f, 0.715865f, 0.715932f, 0.715999f, 0.716066f, 0.716132f, 0.716199f,
+ 0.716266f, 0.716333f, 0.716400f, 0.716467f, 0.716534f, 0.716601f, 0.716668f, 0.716734f,
+ 0.716801f, 0.716868f, 0.716935f, 0.717002f, 0.717069f, 0.717135f, 0.717202f, 0.717269f,
+ 0.717336f, 0.717403f, 0.717469f, 0.717536f, 0.717603f, 0.717670f, 0.717737f, 0.717803f,
+ 0.717870f, 0.717937f, 0.718004f, 0.718070f, 0.718137f, 0.718204f, 0.718270f, 0.718337f,
+ 0.718404f, 0.718471f, 0.718537f, 0.718604f, 0.718670f, 0.718737f, 0.718804f, 0.718870f,
+ 0.718937f, 0.719004f, 0.719070f, 0.719137f, 0.719204f, 0.719270f, 0.719337f, 0.719403f,
+ 0.719470f, 0.719537f, 0.719603f, 0.719670f, 0.719736f, 0.719803f, 0.719869f, 0.719936f,
+ 0.720003f, 0.720069f, 0.720136f, 0.720202f, 0.720269f, 0.720335f, 0.720402f, 0.720468f,
+ 0.720535f, 0.720601f, 0.720668f, 0.720734f, 0.720800f, 0.720867f, 0.720933f, 0.721000f,
+ 0.721066f, 0.721133f, 0.721199f, 0.721265f, 0.721332f, 0.721398f, 0.721465f, 0.721531f,
+ 0.721597f, 0.721664f, 0.721730f, 0.721797f, 0.721863f, 0.721929f, 0.721996f, 0.722062f,
+ 0.722128f, 0.722194f, 0.722261f, 0.722327f, 0.722393f, 0.722460f, 0.722526f, 0.722592f,
+ 0.722659f, 0.722725f, 0.722791f, 0.722857f, 0.722924f, 0.722990f, 0.723056f, 0.723122f,
+ 0.723188f, 0.723255f, 0.723321f, 0.723387f, 0.723453f, 0.723520f, 0.723586f, 0.723652f,
+ 0.723718f, 0.723784f, 0.723850f, 0.723916f, 0.723983f, 0.724049f, 0.724115f, 0.724181f,
+ 0.724247f, 0.724313f, 0.724379f, 0.724445f, 0.724511f, 0.724578f, 0.724644f, 0.724710f,
+ 0.724776f, 0.724842f, 0.724908f, 0.724974f, 0.725040f, 0.725106f, 0.725172f, 0.725238f,
+ 0.725304f, 0.725370f, 0.725436f, 0.725502f, 0.725568f, 0.725634f, 0.725700f, 0.725766f,
+ 0.725832f, 0.725898f, 0.725964f, 0.726030f, 0.726095f, 0.726161f, 0.726227f, 0.726293f,
+ 0.726359f, 0.726425f, 0.726491f, 0.726557f, 0.726623f, 0.726689f, 0.726754f, 0.726820f,
+ 0.726886f, 0.726952f, 0.727018f, 0.727084f, 0.727149f, 0.727215f, 0.727281f, 0.727347f,
+ 0.727413f, 0.727478f, 0.727544f, 0.727610f, 0.727676f, 0.727741f, 0.727807f, 0.727873f,
+ 0.727939f, 0.728004f, 0.728070f, 0.728136f, 0.728202f, 0.728267f, 0.728333f, 0.728399f,
+ 0.728464f, 0.728530f, 0.728596f, 0.728661f, 0.728727f, 0.728793f, 0.728858f, 0.728924f,
+ 0.728990f, 0.729055f, 0.729121f, 0.729186f, 0.729252f, 0.729318f, 0.729383f, 0.729449f,
+ 0.729514f, 0.729580f, 0.729646f, 0.729711f, 0.729777f, 0.729842f, 0.729908f, 0.729973f,
+ 0.730039f, 0.730104f, 0.730170f, 0.730235f, 0.730301f, 0.730366f, 0.730432f, 0.730497f,
+ 0.730563f, 0.730628f, 0.730694f, 0.730759f, 0.730825f, 0.730890f, 0.730955f, 0.731021f,
+ 0.731086f, 0.731152f, 0.731217f, 0.731282f, 0.731348f, 0.731413f, 0.731479f, 0.731544f,
+ 0.731609f, 0.731675f, 0.731740f, 0.731805f, 0.731871f, 0.731936f, 0.732001f, 0.732067f,
+ 0.732132f, 0.732197f, 0.732263f, 0.732328f, 0.732393f, 0.732458f, 0.732524f, 0.732589f,
+ 0.732654f, 0.732720f, 0.732785f, 0.732850f, 0.732915f, 0.732980f, 0.733046f, 0.733111f,
+ 0.733176f, 0.733241f, 0.733306f, 0.733372f, 0.733437f, 0.733502f, 0.733567f, 0.733632f,
+ 0.733697f, 0.733763f, 0.733828f, 0.733893f, 0.733958f, 0.734023f, 0.734088f, 0.734153f,
+ 0.734218f, 0.734283f, 0.734349f, 0.734414f, 0.734479f, 0.734544f, 0.734609f, 0.734674f,
+ 0.734739f, 0.734804f, 0.734869f, 0.734934f, 0.734999f, 0.735064f, 0.735129f, 0.735194f,
+ 0.735259f, 0.735324f, 0.735389f, 0.735454f, 0.735519f, 0.735584f, 0.735649f, 0.735714f,
+ 0.735779f, 0.735844f, 0.735908f, 0.735973f, 0.736038f, 0.736103f, 0.736168f, 0.736233f,
+ 0.736298f, 0.736363f, 0.736428f, 0.736492f, 0.736557f, 0.736622f, 0.736687f, 0.736752f,
+ 0.736817f, 0.736881f, 0.736946f, 0.737011f, 0.737076f, 0.737141f, 0.737205f, 0.737270f,
+ 0.737335f, 0.737400f, 0.737464f, 0.737529f, 0.737594f, 0.737659f, 0.737723f, 0.737788f,
+ 0.737853f, 0.737918f, 0.737982f, 0.738047f, 0.738112f, 0.738176f, 0.738241f, 0.738306f,
+ 0.738370f, 0.738435f, 0.738500f, 0.738564f, 0.738629f, 0.738693f, 0.738758f, 0.738823f,
+ 0.738887f, 0.738952f, 0.739017f, 0.739081f, 0.739146f, 0.739210f, 0.739275f, 0.739339f,
+ 0.739404f, 0.739468f, 0.739533f, 0.739598f, 0.739662f, 0.739727f, 0.739791f, 0.739856f,
+ 0.739920f, 0.739985f, 0.740049f, 0.740114f, 0.740178f, 0.740242f, 0.740307f, 0.740371f,
+ 0.740436f, 0.740500f, 0.740565f, 0.740629f, 0.740694f, 0.740758f, 0.740822f, 0.740887f,
+ 0.740951f, 0.741015f, 0.741080f, 0.741144f, 0.741209f, 0.741273f, 0.741337f, 0.741402f,
+ 0.741466f, 0.741530f, 0.741595f, 0.741659f, 0.741723f, 0.741788f, 0.741852f, 0.741916f,
+ 0.741980f, 0.742045f, 0.742109f, 0.742173f, 0.742237f, 0.742302f, 0.742366f, 0.742430f,
+ 0.742494f, 0.742559f, 0.742623f, 0.742687f, 0.742751f, 0.742815f, 0.742880f, 0.742944f,
+ 0.743008f, 0.743072f, 0.743136f, 0.743200f, 0.743265f, 0.743329f, 0.743393f, 0.743457f,
+ 0.743521f, 0.743585f, 0.743649f, 0.743713f, 0.743777f, 0.743842f, 0.743906f, 0.743970f,
+ 0.744034f, 0.744098f, 0.744162f, 0.744226f, 0.744290f, 0.744354f, 0.744418f, 0.744482f,
+ 0.744546f, 0.744610f, 0.744674f, 0.744738f, 0.744802f, 0.744866f, 0.744930f, 0.744994f,
+ 0.745058f, 0.745122f, 0.745186f, 0.745250f, 0.745314f, 0.745377f, 0.745441f, 0.745505f,
+ 0.745569f, 0.745633f, 0.745697f, 0.745761f, 0.745825f, 0.745889f, 0.745952f, 0.746016f,
+ 0.746080f, 0.746144f, 0.746208f, 0.746272f, 0.746335f, 0.746399f, 0.746463f, 0.746527f,
+ 0.746591f, 0.746654f, 0.746718f, 0.746782f, 0.746846f, 0.746909f, 0.746973f, 0.747037f,
+ 0.747101f, 0.747164f, 0.747228f, 0.747292f, 0.747355f, 0.747419f, 0.747483f, 0.747547f,
+ 0.747610f, 0.747674f, 0.747738f, 0.747801f, 0.747865f, 0.747929f, 0.747992f, 0.748056f,
+ 0.748119f, 0.748183f, 0.748247f, 0.748310f, 0.748374f, 0.748437f, 0.748501f, 0.748565f,
+ 0.748628f, 0.748692f, 0.748755f, 0.748819f, 0.748882f, 0.748946f, 0.749009f, 0.749073f,
+ 0.749136f, 0.749200f, 0.749263f, 0.749327f, 0.749390f, 0.749454f, 0.749517f, 0.749581f,
+ 0.749644f, 0.749708f, 0.749771f, 0.749835f, 0.749898f, 0.749961f, 0.750025f, 0.750088f,
+ 0.750152f, 0.750215f, 0.750278f, 0.750342f, 0.750405f, 0.750469f, 0.750532f, 0.750595f,
+ 0.750659f, 0.750722f, 0.750785f, 0.750849f, 0.750912f, 0.750975f, 0.751039f, 0.751102f,
+ 0.751165f, 0.751228f, 0.751292f, 0.751355f, 0.751418f, 0.751481f, 0.751545f, 0.751608f,
+ 0.751671f, 0.751734f, 0.751798f, 0.751861f, 0.751924f, 0.751987f, 0.752050f, 0.752114f,
+ 0.752177f, 0.752240f, 0.752303f, 0.752366f, 0.752429f, 0.752493f, 0.752556f, 0.752619f,
+ 0.752682f, 0.752745f, 0.752808f, 0.752871f, 0.752934f, 0.752998f, 0.753061f, 0.753124f,
+ 0.753187f, 0.753250f, 0.753313f, 0.753376f, 0.753439f, 0.753502f, 0.753565f, 0.753628f,
+ 0.753691f, 0.753754f, 0.753817f, 0.753880f, 0.753943f, 0.754006f, 0.754069f, 0.754132f,
+ 0.754195f, 0.754258f, 0.754321f, 0.754384f, 0.754447f, 0.754510f, 0.754573f, 0.754636f,
+ 0.754698f, 0.754761f, 0.754824f, 0.754887f, 0.754950f, 0.755013f, 0.755076f, 0.755139f,
+ 0.755201f, 0.755264f, 0.755327f, 0.755390f, 0.755453f, 0.755516f, 0.755578f, 0.755641f,
+ 0.755704f, 0.755767f, 0.755829f, 0.755892f, 0.755955f, 0.756018f, 0.756081f, 0.756143f,
+ 0.756206f, 0.756269f, 0.756331f, 0.756394f, 0.756457f, 0.756520f, 0.756582f, 0.756645f,
+ 0.756708f, 0.756770f, 0.756833f, 0.756896f, 0.756958f, 0.757021f, 0.757084f, 0.757146f,
+ 0.757209f, 0.757271f, 0.757334f, 0.757397f, 0.757459f, 0.757522f, 0.757584f, 0.757647f,
+ 0.757710f, 0.757772f, 0.757835f, 0.757897f, 0.757960f, 0.758022f, 0.758085f, 0.758147f,
+ 0.758210f, 0.758272f, 0.758335f, 0.758397f, 0.758460f, 0.758522f, 0.758585f, 0.758647f,
+ 0.758710f, 0.758772f, 0.758835f, 0.758897f, 0.758960f, 0.759022f, 0.759084f, 0.759147f,
+ 0.759209f, 0.759272f, 0.759334f, 0.759396f, 0.759459f, 0.759521f, 0.759583f, 0.759646f,
+ 0.759708f, 0.759771f, 0.759833f, 0.759895f, 0.759957f, 0.760020f, 0.760082f, 0.760144f,
+ 0.760207f, 0.760269f, 0.760331f, 0.760394f, 0.760456f, 0.760518f, 0.760580f, 0.760643f,
+ 0.760705f, 0.760767f, 0.760829f, 0.760891f, 0.760954f, 0.761016f, 0.761078f, 0.761140f,
+ 0.761202f, 0.761265f, 0.761327f, 0.761389f, 0.761451f, 0.761513f, 0.761575f, 0.761637f,
+ 0.761700f, 0.761762f, 0.761824f, 0.761886f, 0.761948f, 0.762010f, 0.762072f, 0.762134f,
+ 0.762196f, 0.762258f, 0.762320f, 0.762382f, 0.762444f, 0.762507f, 0.762569f, 0.762631f,
+ 0.762693f, 0.762755f, 0.762817f, 0.762879f, 0.762941f, 0.763003f, 0.763065f, 0.763126f,
+ 0.763188f, 0.763250f, 0.763312f, 0.763374f, 0.763436f, 0.763498f, 0.763560f, 0.763622f,
+ 0.763684f, 0.763746f, 0.763808f, 0.763869f, 0.763931f, 0.763993f, 0.764055f, 0.764117f,
+ 0.764179f, 0.764241f, 0.764302f, 0.764364f, 0.764426f, 0.764488f, 0.764550f, 0.764611f,
+ 0.764673f, 0.764735f, 0.764797f, 0.764859f, 0.764920f, 0.764982f, 0.765044f, 0.765106f,
+ 0.765167f, 0.765229f, 0.765291f, 0.765352f, 0.765414f, 0.765476f, 0.765538f, 0.765599f,
+ 0.765661f, 0.765723f, 0.765784f, 0.765846f, 0.765907f, 0.765969f, 0.766031f, 0.766092f,
+ 0.766154f, 0.766216f, 0.766277f, 0.766339f, 0.766400f, 0.766462f, 0.766524f, 0.766585f,
+ 0.766647f, 0.766708f, 0.766770f, 0.766831f, 0.766893f, 0.766954f, 0.767016f, 0.767077f,
+ 0.767139f, 0.767200f, 0.767262f, 0.767323f, 0.767385f, 0.767446f, 0.767508f, 0.767569f,
+ 0.767631f, 0.767692f, 0.767754f, 0.767815f, 0.767876f, 0.767938f, 0.767999f, 0.768061f,
+ 0.768122f, 0.768183f, 0.768245f, 0.768306f, 0.768368f, 0.768429f, 0.768490f, 0.768552f,
+ 0.768613f, 0.768674f, 0.768736f, 0.768797f, 0.768858f, 0.768919f, 0.768981f, 0.769042f,
+ 0.769103f, 0.769165f, 0.769226f, 0.769287f, 0.769348f, 0.769410f, 0.769471f, 0.769532f,
+ 0.769593f, 0.769655f, 0.769716f, 0.769777f, 0.769838f, 0.769899f, 0.769961f, 0.770022f,
+ 0.770083f, 0.770144f, 0.770205f, 0.770266f, 0.770327f, 0.770389f, 0.770450f, 0.770511f,
+ 0.770572f, 0.770633f, 0.770694f, 0.770755f, 0.770816f, 0.770877f, 0.770938f, 0.770999f,
+ 0.771061f, 0.771122f, 0.771183f, 0.771244f, 0.771305f, 0.771366f, 0.771427f, 0.771488f,
+ 0.771549f, 0.771610f, 0.771671f, 0.771732f, 0.771793f, 0.771854f, 0.771915f, 0.771975f,
+ 0.772036f, 0.772097f, 0.772158f, 0.772219f, 0.772280f, 0.772341f, 0.772402f, 0.772463f,
+ 0.772524f, 0.772584f, 0.772645f, 0.772706f, 0.772767f, 0.772828f, 0.772889f, 0.772950f,
+ 0.773010f, 0.773071f, 0.773132f, 0.773193f, 0.773254f, 0.773314f, 0.773375f, 0.773436f,
+ 0.773497f, 0.773558f, 0.773618f, 0.773679f, 0.773740f, 0.773801f, 0.773861f, 0.773922f,
+ 0.773983f, 0.774043f, 0.774104f, 0.774165f, 0.774225f, 0.774286f, 0.774347f, 0.774407f,
+ 0.774468f, 0.774529f, 0.774589f, 0.774650f, 0.774711f, 0.774771f, 0.774832f, 0.774893f,
+ 0.774953f, 0.775014f, 0.775074f, 0.775135f, 0.775195f, 0.775256f, 0.775317f, 0.775377f,
+ 0.775438f, 0.775498f, 0.775559f, 0.775619f, 0.775680f, 0.775740f, 0.775801f, 0.775861f,
+ 0.775922f, 0.775982f, 0.776043f, 0.776103f, 0.776164f, 0.776224f, 0.776284f, 0.776345f,
+ 0.776405f, 0.776466f, 0.776526f, 0.776587f, 0.776647f, 0.776707f, 0.776768f, 0.776828f,
+ 0.776888f, 0.776949f, 0.777009f, 0.777070f, 0.777130f, 0.777190f, 0.777251f, 0.777311f,
+ 0.777371f, 0.777431f, 0.777492f, 0.777552f, 0.777612f, 0.777673f, 0.777733f, 0.777793f,
+ 0.777853f, 0.777914f, 0.777974f, 0.778034f, 0.778094f, 0.778155f, 0.778215f, 0.778275f,
+ 0.778335f, 0.778395f, 0.778456f, 0.778516f, 0.778576f, 0.778636f, 0.778696f, 0.778756f,
+ 0.778817f, 0.778877f, 0.778937f, 0.778997f, 0.779057f, 0.779117f, 0.779177f, 0.779237f,
+ 0.779297f, 0.779357f, 0.779418f, 0.779478f, 0.779538f, 0.779598f, 0.779658f, 0.779718f,
+ 0.779778f, 0.779838f, 0.779898f, 0.779958f, 0.780018f, 0.780078f, 0.780138f, 0.780198f,
+ 0.780258f, 0.780318f, 0.780378f, 0.780438f, 0.780498f, 0.780557f, 0.780617f, 0.780677f,
+ 0.780737f, 0.780797f, 0.780857f, 0.780917f, 0.780977f, 0.781037f, 0.781097f, 0.781156f,
+ 0.781216f, 0.781276f, 0.781336f, 0.781396f, 0.781456f, 0.781515f, 0.781575f, 0.781635f,
+ 0.781695f, 0.781755f, 0.781814f, 0.781874f, 0.781934f, 0.781994f, 0.782053f, 0.782113f,
+ 0.782173f, 0.782233f, 0.782292f, 0.782352f, 0.782412f, 0.782472f, 0.782531f, 0.782591f,
+ 0.782651f, 0.782710f, 0.782770f, 0.782830f, 0.782889f, 0.782949f, 0.783009f, 0.783068f,
+ 0.783128f, 0.783187f, 0.783247f, 0.783307f, 0.783366f, 0.783426f, 0.783485f, 0.783545f,
+ 0.783605f, 0.783664f, 0.783724f, 0.783783f, 0.783843f, 0.783902f, 0.783962f, 0.784021f,
+ 0.784081f, 0.784140f, 0.784200f, 0.784259f, 0.784319f, 0.784378f, 0.784438f, 0.784497f,
+ 0.784557f, 0.784616f, 0.784675f, 0.784735f, 0.784794f, 0.784854f, 0.784913f, 0.784973f,
+ 0.785032f, 0.785091f, 0.785151f, 0.785210f, 0.785269f, 0.785329f, 0.785388f, 0.785447f,
+ 0.785507f, 0.785566f, 0.785625f, 0.785685f, 0.785744f, 0.785803f, 0.785863f, 0.785922f,
+ 0.785981f, 0.786041f, 0.786100f, 0.786159f, 0.786218f, 0.786278f, 0.786337f, 0.786396f,
+ 0.786455f, 0.786514f, 0.786574f, 0.786633f, 0.786692f, 0.786751f, 0.786810f, 0.786870f,
+ 0.786929f, 0.786988f, 0.787047f, 0.787106f, 0.787165f, 0.787224f, 0.787284f, 0.787343f,
+ 0.787402f, 0.787461f, 0.787520f, 0.787579f, 0.787638f, 0.787697f, 0.787756f, 0.787815f,
+ 0.787874f, 0.787933f, 0.787992f, 0.788051f, 0.788110f, 0.788169f, 0.788228f, 0.788287f,
+ 0.788346f, 0.788405f, 0.788464f, 0.788523f, 0.788582f, 0.788641f, 0.788700f, 0.788759f,
+ 0.788818f, 0.788877f, 0.788936f, 0.788995f, 0.789054f, 0.789113f, 0.789172f, 0.789230f,
+ 0.789289f, 0.789348f, 0.789407f, 0.789466f, 0.789525f, 0.789584f, 0.789642f, 0.789701f,
+ 0.789760f, 0.789819f, 0.789878f, 0.789936f, 0.789995f, 0.790054f, 0.790113f, 0.790171f,
+ 0.790230f, 0.790289f, 0.790348f, 0.790406f, 0.790465f, 0.790524f, 0.790583f, 0.790641f,
+ 0.790700f, 0.790759f, 0.790817f, 0.790876f, 0.790935f, 0.790993f, 0.791052f, 0.791111f,
+ 0.791169f, 0.791228f, 0.791287f, 0.791345f, 0.791404f, 0.791462f, 0.791521f, 0.791580f,
+ 0.791638f, 0.791697f, 0.791755f, 0.791814f, 0.791872f, 0.791931f, 0.791990f, 0.792048f,
+ 0.792107f, 0.792165f, 0.792224f, 0.792282f, 0.792341f, 0.792399f, 0.792458f, 0.792516f,
+ 0.792575f, 0.792633f, 0.792691f, 0.792750f, 0.792808f, 0.792867f, 0.792925f, 0.792984f,
+ 0.793042f, 0.793100f, 0.793159f, 0.793217f, 0.793276f, 0.793334f, 0.793392f, 0.793451f,
+ 0.793509f, 0.793567f, 0.793626f, 0.793684f, 0.793742f, 0.793801f, 0.793859f, 0.793917f,
+ 0.793975f, 0.794034f, 0.794092f, 0.794150f, 0.794209f, 0.794267f, 0.794325f, 0.794383f,
+ 0.794442f, 0.794500f, 0.794558f, 0.794616f, 0.794674f, 0.794733f, 0.794791f, 0.794849f,
+ 0.794907f, 0.794965f, 0.795023f, 0.795082f, 0.795140f, 0.795198f, 0.795256f, 0.795314f,
+ 0.795372f, 0.795430f, 0.795488f, 0.795547f, 0.795605f, 0.795663f, 0.795721f, 0.795779f,
+ 0.795837f, 0.795895f, 0.795953f, 0.796011f, 0.796069f, 0.796127f, 0.796185f, 0.796243f,
+ 0.796301f, 0.796359f, 0.796417f, 0.796475f, 0.796533f, 0.796591f, 0.796649f, 0.796707f,
+ 0.796765f, 0.796823f, 0.796881f, 0.796939f, 0.796996f, 0.797054f, 0.797112f, 0.797170f,
+ 0.797228f, 0.797286f, 0.797344f, 0.797402f, 0.797459f, 0.797517f, 0.797575f, 0.797633f,
+ 0.797691f, 0.797749f, 0.797806f, 0.797864f, 0.797922f, 0.797980f, 0.798038f, 0.798095f,
+ 0.798153f, 0.798211f, 0.798269f, 0.798326f, 0.798384f, 0.798442f, 0.798500f, 0.798557f,
+ 0.798615f, 0.798673f, 0.798730f, 0.798788f, 0.798846f, 0.798903f, 0.798961f, 0.799019f,
+ 0.799076f, 0.799134f, 0.799192f, 0.799249f, 0.799307f, 0.799365f, 0.799422f, 0.799480f,
+ 0.799537f, 0.799595f, 0.799652f, 0.799710f, 0.799768f, 0.799825f, 0.799883f, 0.799940f,
+ 0.799998f, 0.800055f, 0.800113f, 0.800170f, 0.800228f, 0.800285f, 0.800343f, 0.800400f,
+ 0.800458f, 0.800515f, 0.800573f, 0.800630f, 0.800687f, 0.800745f, 0.800802f, 0.800860f,
+ 0.800917f, 0.800975f, 0.801032f, 0.801089f, 0.801147f, 0.801204f, 0.801261f, 0.801319f,
+ 0.801376f, 0.801434f, 0.801491f, 0.801548f, 0.801606f, 0.801663f, 0.801720f, 0.801777f,
+ 0.801835f, 0.801892f, 0.801949f, 0.802007f, 0.802064f, 0.802121f, 0.802178f, 0.802236f,
+ 0.802293f, 0.802350f, 0.802407f, 0.802464f, 0.802522f, 0.802579f, 0.802636f, 0.802693f,
+ 0.802750f, 0.802808f, 0.802865f, 0.802922f, 0.802979f, 0.803036f, 0.803093f, 0.803150f,
+ 0.803208f, 0.803265f, 0.803322f, 0.803379f, 0.803436f, 0.803493f, 0.803550f, 0.803607f,
+ 0.803664f, 0.803721f, 0.803778f, 0.803835f, 0.803892f, 0.803949f, 0.804006f, 0.804063f,
+ 0.804120f, 0.804177f, 0.804234f, 0.804291f, 0.804348f, 0.804405f, 0.804462f, 0.804519f,
+ 0.804576f, 0.804633f, 0.804690f, 0.804747f, 0.804804f, 0.804861f, 0.804918f, 0.804974f,
+ 0.805031f, 0.805088f, 0.805145f, 0.805202f, 0.805259f, 0.805316f, 0.805372f, 0.805429f,
+ 0.805486f, 0.805543f, 0.805600f, 0.805656f, 0.805713f, 0.805770f, 0.805827f, 0.805884f,
+ 0.805940f, 0.805997f, 0.806054f, 0.806111f, 0.806167f, 0.806224f, 0.806281f, 0.806338f,
+ 0.806394f, 0.806451f, 0.806508f, 0.806564f, 0.806621f, 0.806678f, 0.806734f, 0.806791f,
+ 0.806848f, 0.806904f, 0.806961f, 0.807017f, 0.807074f, 0.807131f, 0.807187f, 0.807244f,
+ 0.807300f, 0.807357f, 0.807414f, 0.807470f, 0.807527f, 0.807583f, 0.807640f, 0.807696f,
+ 0.807753f, 0.807809f, 0.807866f, 0.807922f, 0.807979f, 0.808035f, 0.808092f, 0.808148f,
+ 0.808205f, 0.808261f, 0.808318f, 0.808374f, 0.808430f, 0.808487f, 0.808543f, 0.808600f,
+ 0.808656f, 0.808713f, 0.808769f, 0.808825f, 0.808882f, 0.808938f, 0.808994f, 0.809051f,
+ 0.809107f, 0.809164f, 0.809220f, 0.809276f, 0.809332f, 0.809389f, 0.809445f, 0.809501f,
+ 0.809558f, 0.809614f, 0.809670f, 0.809726f, 0.809783f, 0.809839f, 0.809895f, 0.809951f,
+ 0.810008f, 0.810064f, 0.810120f, 0.810176f, 0.810232f, 0.810289f, 0.810345f, 0.810401f,
+ 0.810457f, 0.810513f, 0.810570f, 0.810626f, 0.810682f, 0.810738f, 0.810794f, 0.810850f,
+ 0.810906f, 0.810962f, 0.811018f, 0.811075f, 0.811131f, 0.811187f, 0.811243f, 0.811299f,
+ 0.811355f, 0.811411f, 0.811467f, 0.811523f, 0.811579f, 0.811635f, 0.811691f, 0.811747f,
+ 0.811803f, 0.811859f, 0.811915f, 0.811971f, 0.812027f, 0.812083f, 0.812139f, 0.812195f,
+ 0.812251f, 0.812307f, 0.812362f, 0.812418f, 0.812474f, 0.812530f, 0.812586f, 0.812642f,
+ 0.812698f, 0.812754f, 0.812809f, 0.812865f, 0.812921f, 0.812977f, 0.813033f, 0.813089f,
+ 0.813144f, 0.813200f, 0.813256f, 0.813312f, 0.813368f, 0.813423f, 0.813479f, 0.813535f,
+ 0.813591f, 0.813646f, 0.813702f, 0.813758f, 0.813814f, 0.813869f, 0.813925f, 0.813981f,
+ 0.814036f, 0.814092f, 0.814148f, 0.814203f, 0.814259f, 0.814315f, 0.814370f, 0.814426f,
+ 0.814482f, 0.814537f, 0.814593f, 0.814648f, 0.814704f, 0.814760f, 0.814815f, 0.814871f,
+ 0.814926f, 0.814982f, 0.815037f, 0.815093f, 0.815149f, 0.815204f, 0.815260f, 0.815315f,
+ 0.815371f, 0.815426f, 0.815482f, 0.815537f, 0.815593f, 0.815648f, 0.815704f, 0.815759f,
+ 0.815814f, 0.815870f, 0.815925f, 0.815981f, 0.816036f, 0.816092f, 0.816147f, 0.816202f,
+ 0.816258f, 0.816313f, 0.816368f, 0.816424f, 0.816479f, 0.816535f, 0.816590f, 0.816645f,
+ 0.816701f, 0.816756f, 0.816811f, 0.816867f, 0.816922f, 0.816977f, 0.817032f, 0.817088f,
+ 0.817143f, 0.817198f, 0.817253f, 0.817309f, 0.817364f, 0.817419f, 0.817474f, 0.817530f,
+ 0.817585f, 0.817640f, 0.817695f, 0.817750f, 0.817806f, 0.817861f, 0.817916f, 0.817971f,
+ 0.818026f, 0.818081f, 0.818137f, 0.818192f, 0.818247f, 0.818302f, 0.818357f, 0.818412f,
+ 0.818467f, 0.818522f, 0.818577f, 0.818632f, 0.818687f, 0.818742f, 0.818798f, 0.818853f,
+ 0.818908f, 0.818963f, 0.819018f, 0.819073f, 0.819128f, 0.819183f, 0.819238f, 0.819293f,
+ 0.819348f, 0.819402f, 0.819457f, 0.819512f, 0.819567f, 0.819622f, 0.819677f, 0.819732f,
+ 0.819787f, 0.819842f, 0.819897f, 0.819952f, 0.820007f, 0.820061f, 0.820116f, 0.820171f,
+ 0.820226f, 0.820281f, 0.820336f, 0.820390f, 0.820445f, 0.820500f, 0.820555f, 0.820610f,
+ 0.820664f, 0.820719f, 0.820774f, 0.820829f, 0.820884f, 0.820938f, 0.820993f, 0.821048f,
+ 0.821102f, 0.821157f, 0.821212f, 0.821267f, 0.821321f, 0.821376f, 0.821431f, 0.821485f,
+ 0.821540f, 0.821595f, 0.821649f, 0.821704f, 0.821759f, 0.821813f, 0.821868f, 0.821922f,
+ 0.821977f, 0.822032f, 0.822086f, 0.822141f, 0.822195f, 0.822250f, 0.822305f, 0.822359f,
+ 0.822414f, 0.822468f, 0.822523f, 0.822577f, 0.822632f, 0.822686f, 0.822741f, 0.822795f,
+ 0.822850f, 0.822904f, 0.822959f, 0.823013f, 0.823068f, 0.823122f, 0.823177f, 0.823231f,
+ 0.823285f, 0.823340f, 0.823394f, 0.823449f, 0.823503f, 0.823557f, 0.823612f, 0.823666f,
+ 0.823721f, 0.823775f, 0.823829f, 0.823884f, 0.823938f, 0.823992f, 0.824047f, 0.824101f,
+ 0.824155f, 0.824209f, 0.824264f, 0.824318f, 0.824372f, 0.824427f, 0.824481f, 0.824535f,
+ 0.824589f, 0.824644f, 0.824698f, 0.824752f, 0.824806f, 0.824860f, 0.824915f, 0.824969f,
+ 0.825023f, 0.825077f, 0.825131f, 0.825185f, 0.825240f, 0.825294f, 0.825348f, 0.825402f,
+ 0.825456f, 0.825510f, 0.825564f, 0.825618f, 0.825673f, 0.825727f, 0.825781f, 0.825835f,
+ 0.825889f, 0.825943f, 0.825997f, 0.826051f, 0.826105f, 0.826159f, 0.826213f, 0.826267f,
+ 0.826321f, 0.826375f, 0.826429f, 0.826483f, 0.826537f, 0.826591f, 0.826645f, 0.826699f,
+ 0.826753f, 0.826807f, 0.826861f, 0.826915f, 0.826968f, 0.827022f, 0.827076f, 0.827130f,
+ 0.827184f, 0.827238f, 0.827292f, 0.827346f, 0.827399f, 0.827453f, 0.827507f, 0.827561f,
+ 0.827615f, 0.827669f, 0.827722f, 0.827776f, 0.827830f, 0.827884f, 0.827938f, 0.827991f,
+ 0.828045f, 0.828099f, 0.828153f, 0.828206f, 0.828260f, 0.828314f, 0.828367f, 0.828421f,
+ 0.828475f, 0.828529f, 0.828582f, 0.828636f, 0.828690f, 0.828743f, 0.828797f, 0.828851f,
+ 0.828904f, 0.828958f, 0.829011f, 0.829065f, 0.829119f, 0.829172f, 0.829226f, 0.829279f,
+ 0.829333f, 0.829386f, 0.829440f, 0.829494f, 0.829547f, 0.829601f, 0.829654f, 0.829708f,
+ 0.829761f, 0.829815f, 0.829868f, 0.829922f, 0.829975f, 0.830029f, 0.830082f, 0.830136f,
+ 0.830189f, 0.830243f, 0.830296f, 0.830349f, 0.830403f, 0.830456f, 0.830510f, 0.830563f,
+ 0.830616f, 0.830670f, 0.830723f, 0.830777f, 0.830830f, 0.830883f, 0.830937f, 0.830990f,
+ 0.831043f, 0.831097f, 0.831150f, 0.831203f, 0.831257f, 0.831310f, 0.831363f, 0.831416f,
+ 0.831470f, 0.831523f, 0.831576f, 0.831629f, 0.831683f, 0.831736f, 0.831789f, 0.831842f,
+ 0.831895f, 0.831949f, 0.832002f, 0.832055f, 0.832108f, 0.832161f, 0.832215f, 0.832268f,
+ 0.832321f, 0.832374f, 0.832427f, 0.832480f, 0.832533f, 0.832586f, 0.832640f, 0.832693f,
+ 0.832746f, 0.832799f, 0.832852f, 0.832905f, 0.832958f, 0.833011f, 0.833064f, 0.833117f,
+ 0.833170f, 0.833223f, 0.833276f, 0.833329f, 0.833382f, 0.833435f, 0.833488f, 0.833541f,
+ 0.833594f, 0.833647f, 0.833700f, 0.833753f, 0.833806f, 0.833859f, 0.833912f, 0.833965f,
+ 0.834018f, 0.834070f, 0.834123f, 0.834176f, 0.834229f, 0.834282f, 0.834335f, 0.834388f,
+ 0.834440f, 0.834493f, 0.834546f, 0.834599f, 0.834652f, 0.834705f, 0.834757f, 0.834810f,
+ 0.834863f, 0.834916f, 0.834968f, 0.835021f, 0.835074f, 0.835127f, 0.835179f, 0.835232f,
+ 0.835285f, 0.835338f, 0.835390f, 0.835443f, 0.835496f, 0.835548f, 0.835601f, 0.835654f,
+ 0.835706f, 0.835759f, 0.835812f, 0.835864f, 0.835917f, 0.835969f, 0.836022f, 0.836075f,
+ 0.836127f, 0.836180f, 0.836232f, 0.836285f, 0.836338f, 0.836390f, 0.836443f, 0.836495f,
+ 0.836548f, 0.836600f, 0.836653f, 0.836705f, 0.836758f, 0.836810f, 0.836863f, 0.836915f,
+ 0.836968f, 0.837020f, 0.837073f, 0.837125f, 0.837178f, 0.837230f, 0.837282f, 0.837335f,
+ 0.837387f, 0.837440f, 0.837492f, 0.837544f, 0.837597f, 0.837649f, 0.837701f, 0.837754f,
+ 0.837806f, 0.837859f, 0.837911f, 0.837963f, 0.838015f, 0.838068f, 0.838120f, 0.838172f,
+ 0.838225f, 0.838277f, 0.838329f, 0.838382f, 0.838434f, 0.838486f, 0.838538f, 0.838591f,
+ 0.838643f, 0.838695f, 0.838747f, 0.838799f, 0.838852f, 0.838904f, 0.838956f, 0.839008f,
+ 0.839060f, 0.839112f, 0.839165f, 0.839217f, 0.839269f, 0.839321f, 0.839373f, 0.839425f,
+ 0.839477f, 0.839529f, 0.839581f, 0.839634f, 0.839686f, 0.839738f, 0.839790f, 0.839842f,
+ 0.839894f, 0.839946f, 0.839998f, 0.840050f, 0.840102f, 0.840154f, 0.840206f, 0.840258f,
+ 0.840310f, 0.840362f, 0.840414f, 0.840466f, 0.840518f, 0.840570f, 0.840622f, 0.840673f,
+ 0.840725f, 0.840777f, 0.840829f, 0.840881f, 0.840933f, 0.840985f, 0.841037f, 0.841089f,
+ 0.841140f, 0.841192f, 0.841244f, 0.841296f, 0.841348f, 0.841400f, 0.841451f, 0.841503f,
+ 0.841555f, 0.841607f, 0.841659f, 0.841710f, 0.841762f, 0.841814f, 0.841866f, 0.841917f,
+ 0.841969f, 0.842021f, 0.842072f, 0.842124f, 0.842176f, 0.842228f, 0.842279f, 0.842331f,
+ 0.842383f, 0.842434f, 0.842486f, 0.842538f, 0.842589f, 0.842641f, 0.842692f, 0.842744f,
+ 0.842796f, 0.842847f, 0.842899f, 0.842950f, 0.843002f, 0.843054f, 0.843105f, 0.843157f,
+ 0.843208f, 0.843260f, 0.843311f, 0.843363f, 0.843414f, 0.843466f, 0.843517f, 0.843569f,
+ 0.843620f, 0.843672f, 0.843723f, 0.843775f, 0.843826f, 0.843878f, 0.843929f, 0.843980f,
+ 0.844032f, 0.844083f, 0.844135f, 0.844186f, 0.844238f, 0.844289f, 0.844340f, 0.844392f,
+ 0.844443f, 0.844494f, 0.844546f, 0.844597f, 0.844648f, 0.844700f, 0.844751f, 0.844802f,
+ 0.844854f, 0.844905f, 0.844956f, 0.845007f, 0.845059f, 0.845110f, 0.845161f, 0.845212f,
+ 0.845264f, 0.845315f, 0.845366f, 0.845417f, 0.845469f, 0.845520f, 0.845571f, 0.845622f,
+ 0.845673f, 0.845724f, 0.845776f, 0.845827f, 0.845878f, 0.845929f, 0.845980f, 0.846031f,
+ 0.846082f, 0.846133f, 0.846185f, 0.846236f, 0.846287f, 0.846338f, 0.846389f, 0.846440f,
+ 0.846491f, 0.846542f, 0.846593f, 0.846644f, 0.846695f, 0.846746f, 0.846797f, 0.846848f,
+ 0.846899f, 0.846950f, 0.847001f, 0.847052f, 0.847103f, 0.847154f, 0.847205f, 0.847256f,
+ 0.847307f, 0.847358f, 0.847408f, 0.847459f, 0.847510f, 0.847561f, 0.847612f, 0.847663f,
+ 0.847714f, 0.847765f, 0.847815f, 0.847866f, 0.847917f, 0.847968f, 0.848019f, 0.848070f,
+ 0.848120f, 0.848171f, 0.848222f, 0.848273f, 0.848323f, 0.848374f, 0.848425f, 0.848476f,
+ 0.848526f, 0.848577f, 0.848628f, 0.848679f, 0.848729f, 0.848780f, 0.848831f, 0.848881f,
+ 0.848932f, 0.848983f, 0.849033f, 0.849084f, 0.849135f, 0.849185f, 0.849236f, 0.849287f,
+ 0.849337f, 0.849388f, 0.849438f, 0.849489f, 0.849540f, 0.849590f, 0.849641f, 0.849691f,
+ 0.849742f, 0.849792f, 0.849843f, 0.849893f, 0.849944f, 0.849994f, 0.850045f, 0.850095f,
+ 0.850146f, 0.850196f, 0.850247f, 0.850297f, 0.850348f, 0.850398f, 0.850449f, 0.850499f,
+ 0.850549f, 0.850600f, 0.850650f, 0.850701f, 0.850751f, 0.850801f, 0.850852f, 0.850902f,
+ 0.850953f, 0.851003f, 0.851053f, 0.851104f, 0.851154f, 0.851204f, 0.851255f, 0.851305f,
+ 0.851355f, 0.851406f, 0.851456f, 0.851506f, 0.851556f, 0.851607f, 0.851657f, 0.851707f,
+ 0.851757f, 0.851808f, 0.851858f, 0.851908f, 0.851958f, 0.852008f, 0.852059f, 0.852109f,
+ 0.852159f, 0.852209f, 0.852259f, 0.852309f, 0.852360f, 0.852410f, 0.852460f, 0.852510f,
+ 0.852560f, 0.852610f, 0.852660f, 0.852710f, 0.852760f, 0.852810f, 0.852861f, 0.852911f,
+ 0.852961f, 0.853011f, 0.853061f, 0.853111f, 0.853161f, 0.853211f, 0.853261f, 0.853311f,
+ 0.853361f, 0.853411f, 0.853461f, 0.853511f, 0.853561f, 0.853611f, 0.853660f, 0.853710f,
+ 0.853760f, 0.853810f, 0.853860f, 0.853910f, 0.853960f, 0.854010f, 0.854060f, 0.854110f,
+ 0.854159f, 0.854209f, 0.854259f, 0.854309f, 0.854359f, 0.854409f, 0.854458f, 0.854508f,
+ 0.854558f, 0.854608f, 0.854658f, 0.854707f, 0.854757f, 0.854807f, 0.854857f, 0.854906f,
+ 0.854956f, 0.855006f, 0.855056f, 0.855105f, 0.855155f, 0.855205f, 0.855254f, 0.855304f,
+ 0.855354f, 0.855403f, 0.855453f, 0.855503f, 0.855552f, 0.855602f, 0.855651f, 0.855701f,
+ 0.855751f, 0.855800f, 0.855850f, 0.855900f, 0.855949f, 0.855999f, 0.856048f, 0.856098f,
+ 0.856147f, 0.856197f, 0.856246f, 0.856296f, 0.856345f, 0.856395f, 0.856444f, 0.856494f,
+ 0.856543f, 0.856593f, 0.856642f, 0.856692f, 0.856741f, 0.856791f, 0.856840f, 0.856890f,
+ 0.856939f, 0.856988f, 0.857038f, 0.857087f, 0.857137f, 0.857186f, 0.857235f, 0.857285f,
+ 0.857334f, 0.857383f, 0.857433f, 0.857482f, 0.857531f, 0.857581f, 0.857630f, 0.857679f,
+ 0.857729f, 0.857778f, 0.857827f, 0.857876f, 0.857926f, 0.857975f, 0.858024f, 0.858073f,
+ 0.858123f, 0.858172f, 0.858221f, 0.858270f, 0.858320f, 0.858369f, 0.858418f, 0.858467f,
+ 0.858516f, 0.858565f, 0.858615f, 0.858664f, 0.858713f, 0.858762f, 0.858811f, 0.858860f,
+ 0.858909f, 0.858958f, 0.859007f, 0.859057f, 0.859106f, 0.859155f, 0.859204f, 0.859253f,
+ 0.859302f, 0.859351f, 0.859400f, 0.859449f, 0.859498f, 0.859547f, 0.859596f, 0.859645f,
+ 0.859694f, 0.859743f, 0.859792f, 0.859841f, 0.859890f, 0.859939f, 0.859988f, 0.860036f,
+ 0.860085f, 0.860134f, 0.860183f, 0.860232f, 0.860281f, 0.860330f, 0.860379f, 0.860428f,
+ 0.860476f, 0.860525f, 0.860574f, 0.860623f, 0.860672f, 0.860721f, 0.860769f, 0.860818f,
+ 0.860867f, 0.860916f, 0.860964f, 0.861013f, 0.861062f, 0.861111f, 0.861160f, 0.861208f,
+ 0.861257f, 0.861306f, 0.861354f, 0.861403f, 0.861452f, 0.861500f, 0.861549f, 0.861598f,
+ 0.861646f, 0.861695f, 0.861744f, 0.861792f, 0.861841f, 0.861890f, 0.861938f, 0.861987f,
+ 0.862035f, 0.862084f, 0.862133f, 0.862181f, 0.862230f, 0.862278f, 0.862327f, 0.862375f,
+ 0.862424f, 0.862472f, 0.862521f, 0.862570f, 0.862618f, 0.862666f, 0.862715f, 0.862763f,
+ 0.862812f, 0.862860f, 0.862909f, 0.862957f, 0.863006f, 0.863054f, 0.863103f, 0.863151f,
+ 0.863199f, 0.863248f, 0.863296f, 0.863345f, 0.863393f, 0.863441f, 0.863490f, 0.863538f,
+ 0.863586f, 0.863635f, 0.863683f, 0.863731f, 0.863780f, 0.863828f, 0.863876f, 0.863925f,
+ 0.863973f, 0.864021f, 0.864069f, 0.864118f, 0.864166f, 0.864214f, 0.864262f, 0.864311f,
+ 0.864359f, 0.864407f, 0.864455f, 0.864503f, 0.864552f, 0.864600f, 0.864648f, 0.864696f,
+ 0.864744f, 0.864792f, 0.864841f, 0.864889f, 0.864937f, 0.864985f, 0.865033f, 0.865081f,
+ 0.865129f, 0.865177f, 0.865225f, 0.865273f, 0.865321f, 0.865369f, 0.865418f, 0.865466f,
+ 0.865514f, 0.865562f, 0.865610f, 0.865658f, 0.865706f, 0.865754f, 0.865802f, 0.865850f,
+ 0.865898f, 0.865946f, 0.865993f, 0.866041f, 0.866089f, 0.866137f, 0.866185f, 0.866233f,
+ 0.866281f, 0.866329f, 0.866377f, 0.866425f, 0.866472f, 0.866520f, 0.866568f, 0.866616f,
+ 0.866664f, 0.866712f, 0.866759f, 0.866807f, 0.866855f, 0.866903f, 0.866951f, 0.866998f,
+ 0.867046f, 0.867094f, 0.867142f, 0.867190f, 0.867237f, 0.867285f, 0.867333f, 0.867380f,
+ 0.867428f, 0.867476f, 0.867523f, 0.867571f, 0.867619f, 0.867667f, 0.867714f, 0.867762f,
+ 0.867809f, 0.867857f, 0.867905f, 0.867952f, 0.868000f, 0.868048f, 0.868095f, 0.868143f,
+ 0.868190f, 0.868238f, 0.868285f, 0.868333f, 0.868381f, 0.868428f, 0.868476f, 0.868523f,
+ 0.868571f, 0.868618f, 0.868666f, 0.868713f, 0.868761f, 0.868808f, 0.868856f, 0.868903f,
+ 0.868951f, 0.868998f, 0.869045f, 0.869093f, 0.869140f, 0.869188f, 0.869235f, 0.869282f,
+ 0.869330f, 0.869377f, 0.869425f, 0.869472f, 0.869519f, 0.869567f, 0.869614f, 0.869661f,
+ 0.869709f, 0.869756f, 0.869803f, 0.869851f, 0.869898f, 0.869945f, 0.869992f, 0.870040f,
+ 0.870087f, 0.870134f, 0.870182f, 0.870229f, 0.870276f, 0.870323f, 0.870370f, 0.870418f,
+ 0.870465f, 0.870512f, 0.870559f, 0.870606f, 0.870654f, 0.870701f, 0.870748f, 0.870795f,
+ 0.870842f, 0.870889f, 0.870936f, 0.870983f, 0.871031f, 0.871078f, 0.871125f, 0.871172f,
+ 0.871219f, 0.871266f, 0.871313f, 0.871360f, 0.871407f, 0.871454f, 0.871501f, 0.871548f,
+ 0.871595f, 0.871642f, 0.871689f, 0.871736f, 0.871783f, 0.871830f, 0.871877f, 0.871924f,
+ 0.871971f, 0.872018f, 0.872065f, 0.872112f, 0.872159f, 0.872205f, 0.872252f, 0.872299f,
+ 0.872346f, 0.872393f, 0.872440f, 0.872487f, 0.872534f, 0.872580f, 0.872627f, 0.872674f,
+ 0.872721f, 0.872768f, 0.872814f, 0.872861f, 0.872908f, 0.872955f, 0.873001f, 0.873048f,
+ 0.873095f, 0.873142f, 0.873188f, 0.873235f, 0.873282f, 0.873329f, 0.873375f, 0.873422f,
+ 0.873469f, 0.873515f, 0.873562f, 0.873609f, 0.873655f, 0.873702f, 0.873749f, 0.873795f,
+ 0.873842f, 0.873888f, 0.873935f, 0.873982f, 0.874028f, 0.874075f, 0.874121f, 0.874168f,
+ 0.874215f, 0.874261f, 0.874308f, 0.874354f, 0.874401f, 0.874447f, 0.874494f, 0.874540f,
+ 0.874587f, 0.874633f, 0.874680f, 0.874726f, 0.874773f, 0.874819f, 0.874865f, 0.874912f,
+ 0.874958f, 0.875005f, 0.875051f, 0.875098f, 0.875144f, 0.875190f, 0.875237f, 0.875283f,
+ 0.875329f, 0.875376f, 0.875422f, 0.875468f, 0.875515f, 0.875561f, 0.875607f, 0.875654f,
+ 0.875700f, 0.875746f, 0.875793f, 0.875839f, 0.875885f, 0.875931f, 0.875978f, 0.876024f,
+ 0.876070f, 0.876116f, 0.876163f, 0.876209f, 0.876255f, 0.876301f, 0.876347f, 0.876393f,
+ 0.876440f, 0.876486f, 0.876532f, 0.876578f, 0.876624f, 0.876670f, 0.876716f, 0.876763f,
+ 0.876809f, 0.876855f, 0.876901f, 0.876947f, 0.876993f, 0.877039f, 0.877085f, 0.877131f,
+ 0.877177f, 0.877223f, 0.877269f, 0.877315f, 0.877361f, 0.877407f, 0.877453f, 0.877499f,
+ 0.877545f, 0.877591f, 0.877637f, 0.877683f, 0.877729f, 0.877775f, 0.877821f, 0.877867f,
+ 0.877913f, 0.877959f, 0.878005f, 0.878051f, 0.878096f, 0.878142f, 0.878188f, 0.878234f,
+ 0.878280f, 0.878326f, 0.878371f, 0.878417f, 0.878463f, 0.878509f, 0.878555f, 0.878600f,
+ 0.878646f, 0.878692f, 0.878738f, 0.878784f, 0.878829f, 0.878875f, 0.878921f, 0.878967f,
+ 0.879012f, 0.879058f, 0.879104f, 0.879149f, 0.879195f, 0.879241f, 0.879286f, 0.879332f,
+ 0.879378f, 0.879423f, 0.879469f, 0.879515f, 0.879560f, 0.879606f, 0.879651f, 0.879697f,
+ 0.879743f, 0.879788f, 0.879834f, 0.879879f, 0.879925f, 0.879970f, 0.880016f, 0.880061f,
+ 0.880107f, 0.880153f, 0.880198f, 0.880244f, 0.880289f, 0.880334f, 0.880380f, 0.880425f,
+ 0.880471f, 0.880516f, 0.880562f, 0.880607f, 0.880653f, 0.880698f, 0.880743f, 0.880789f,
+ 0.880834f, 0.880880f, 0.880925f, 0.880970f, 0.881016f, 0.881061f, 0.881106f, 0.881152f,
+ 0.881197f, 0.881242f, 0.881288f, 0.881333f, 0.881378f, 0.881424f, 0.881469f, 0.881514f,
+ 0.881559f, 0.881605f, 0.881650f, 0.881695f, 0.881740f, 0.881786f, 0.881831f, 0.881876f,
+ 0.881921f, 0.881966f, 0.882012f, 0.882057f, 0.882102f, 0.882147f, 0.882192f, 0.882237f,
+ 0.882283f, 0.882328f, 0.882373f, 0.882418f, 0.882463f, 0.882508f, 0.882553f, 0.882598f,
+ 0.882643f, 0.882688f, 0.882733f, 0.882779f, 0.882824f, 0.882869f, 0.882914f, 0.882959f,
+ 0.883004f, 0.883049f, 0.883094f, 0.883139f, 0.883184f, 0.883228f, 0.883273f, 0.883318f,
+ 0.883363f, 0.883408f, 0.883453f, 0.883498f, 0.883543f, 0.883588f, 0.883633f, 0.883678f,
+ 0.883723f, 0.883767f, 0.883812f, 0.883857f, 0.883902f, 0.883947f, 0.883992f, 0.884036f,
+ 0.884081f, 0.884126f, 0.884171f, 0.884216f, 0.884260f, 0.884305f, 0.884350f, 0.884395f,
+ 0.884439f, 0.884484f, 0.884529f, 0.884574f, 0.884618f, 0.884663f, 0.884708f, 0.884752f,
+ 0.884797f, 0.884842f, 0.884886f, 0.884931f, 0.884976f, 0.885020f, 0.885065f, 0.885110f,
+ 0.885154f, 0.885199f, 0.885243f, 0.885288f, 0.885333f, 0.885377f, 0.885422f, 0.885466f,
+ 0.885511f, 0.885555f, 0.885600f, 0.885644f, 0.885689f, 0.885733f, 0.885778f, 0.885822f,
+ 0.885867f, 0.885911f, 0.885956f, 0.886000f, 0.886045f, 0.886089f, 0.886134f, 0.886178f,
+ 0.886223f, 0.886267f, 0.886311f, 0.886356f, 0.886400f, 0.886445f, 0.886489f, 0.886533f,
+ 0.886578f, 0.886622f, 0.886666f, 0.886711f, 0.886755f, 0.886799f, 0.886844f, 0.886888f,
+ 0.886932f, 0.886976f, 0.887021f, 0.887065f, 0.887109f, 0.887153f, 0.887198f, 0.887242f,
+ 0.887286f, 0.887330f, 0.887375f, 0.887419f, 0.887463f, 0.887507f, 0.887551f, 0.887595f,
+ 0.887640f, 0.887684f, 0.887728f, 0.887772f, 0.887816f, 0.887860f, 0.887904f, 0.887949f,
+ 0.887993f, 0.888037f, 0.888081f, 0.888125f, 0.888169f, 0.888213f, 0.888257f, 0.888301f,
+ 0.888345f, 0.888389f, 0.888433f, 0.888477f, 0.888521f, 0.888565f, 0.888609f, 0.888653f,
+ 0.888697f, 0.888741f, 0.888785f, 0.888829f, 0.888873f, 0.888917f, 0.888961f, 0.889004f,
+ 0.889048f, 0.889092f, 0.889136f, 0.889180f, 0.889224f, 0.889268f, 0.889312f, 0.889355f,
+ 0.889399f, 0.889443f, 0.889487f, 0.889531f, 0.889574f, 0.889618f, 0.889662f, 0.889706f,
+ 0.889750f, 0.889793f, 0.889837f, 0.889881f, 0.889925f, 0.889968f, 0.890012f, 0.890056f,
+ 0.890099f, 0.890143f, 0.890187f, 0.890230f, 0.890274f, 0.890318f, 0.890361f, 0.890405f,
+ 0.890449f, 0.890492f, 0.890536f, 0.890580f, 0.890623f, 0.890667f, 0.890710f, 0.890754f,
+ 0.890797f, 0.890841f, 0.890885f, 0.890928f, 0.890972f, 0.891015f, 0.891059f, 0.891102f,
+ 0.891146f, 0.891189f, 0.891233f, 0.891276f, 0.891320f, 0.891363f, 0.891407f, 0.891450f,
+ 0.891493f, 0.891537f, 0.891580f, 0.891624f, 0.891667f, 0.891711f, 0.891754f, 0.891797f,
+ 0.891841f, 0.891884f, 0.891927f, 0.891971f, 0.892014f, 0.892057f, 0.892101f, 0.892144f,
+ 0.892187f, 0.892231f, 0.892274f, 0.892317f, 0.892361f, 0.892404f, 0.892447f, 0.892490f,
+ 0.892534f, 0.892577f, 0.892620f, 0.892663f, 0.892706f, 0.892750f, 0.892793f, 0.892836f,
+ 0.892879f, 0.892922f, 0.892965f, 0.893009f, 0.893052f, 0.893095f, 0.893138f, 0.893181f,
+ 0.893224f, 0.893267f, 0.893310f, 0.893354f, 0.893397f, 0.893440f, 0.893483f, 0.893526f,
+ 0.893569f, 0.893612f, 0.893655f, 0.893698f, 0.893741f, 0.893784f, 0.893827f, 0.893870f,
+ 0.893913f, 0.893956f, 0.893999f, 0.894042f, 0.894085f, 0.894128f, 0.894171f, 0.894214f,
+ 0.894256f, 0.894299f, 0.894342f, 0.894385f, 0.894428f, 0.894471f, 0.894514f, 0.894557f,
+ 0.894599f, 0.894642f, 0.894685f, 0.894728f, 0.894771f, 0.894814f, 0.894856f, 0.894899f,
+ 0.894942f, 0.894985f, 0.895028f, 0.895070f, 0.895113f, 0.895156f, 0.895198f, 0.895241f,
+ 0.895284f, 0.895327f, 0.895369f, 0.895412f, 0.895455f, 0.895497f, 0.895540f, 0.895583f,
+ 0.895625f, 0.895668f, 0.895711f, 0.895753f, 0.895796f, 0.895838f, 0.895881f, 0.895924f,
+ 0.895966f, 0.896009f, 0.896051f, 0.896094f, 0.896137f, 0.896179f, 0.896222f, 0.896264f,
+ 0.896307f, 0.896349f, 0.896392f, 0.896434f, 0.896477f, 0.896519f, 0.896562f, 0.896604f,
+ 0.896646f, 0.896689f, 0.896731f, 0.896774f, 0.896816f, 0.896859f, 0.896901f, 0.896943f,
+ 0.896986f, 0.897028f, 0.897071f, 0.897113f, 0.897155f, 0.897198f, 0.897240f, 0.897282f,
+ 0.897325f, 0.897367f, 0.897409f, 0.897452f, 0.897494f, 0.897536f, 0.897578f, 0.897621f,
+ 0.897663f, 0.897705f, 0.897747f, 0.897790f, 0.897832f, 0.897874f, 0.897916f, 0.897958f,
+ 0.898001f, 0.898043f, 0.898085f, 0.898127f, 0.898169f, 0.898211f, 0.898254f, 0.898296f,
+ 0.898338f, 0.898380f, 0.898422f, 0.898464f, 0.898506f, 0.898548f, 0.898590f, 0.898632f,
+ 0.898674f, 0.898717f, 0.898759f, 0.898801f, 0.898843f, 0.898885f, 0.898927f, 0.898969f,
+ 0.899011f, 0.899053f, 0.899095f, 0.899137f, 0.899179f, 0.899220f, 0.899262f, 0.899304f,
+ 0.899346f, 0.899388f, 0.899430f, 0.899472f, 0.899514f, 0.899556f, 0.899598f, 0.899639f,
+ 0.899681f, 0.899723f, 0.899765f, 0.899807f, 0.899849f, 0.899890f, 0.899932f, 0.899974f,
+ 0.900016f, 0.900058f, 0.900099f, 0.900141f, 0.900183f, 0.900225f, 0.900266f, 0.900308f,
+ 0.900350f, 0.900392f, 0.900433f, 0.900475f, 0.900517f, 0.900558f, 0.900600f, 0.900642f,
+ 0.900683f, 0.900725f, 0.900767f, 0.900808f, 0.900850f, 0.900892f, 0.900933f, 0.900975f,
+ 0.901016f, 0.901058f, 0.901100f, 0.901141f, 0.901183f, 0.901224f, 0.901266f, 0.901307f,
+ 0.901349f, 0.901390f, 0.901432f, 0.901473f, 0.901515f, 0.901556f, 0.901598f, 0.901639f,
+ 0.901681f, 0.901722f, 0.901764f, 0.901805f, 0.901847f, 0.901888f, 0.901929f, 0.901971f,
+ 0.902012f, 0.902054f, 0.902095f, 0.902136f, 0.902178f, 0.902219f, 0.902260f, 0.902302f,
+ 0.902343f, 0.902384f, 0.902426f, 0.902467f, 0.902508f, 0.902550f, 0.902591f, 0.902632f,
+ 0.902673f, 0.902715f, 0.902756f, 0.902797f, 0.902838f, 0.902879f, 0.902921f, 0.902962f,
+ 0.903003f, 0.903044f, 0.903085f, 0.903127f, 0.903168f, 0.903209f, 0.903250f, 0.903291f,
+ 0.903332f, 0.903373f, 0.903415f, 0.903456f, 0.903497f, 0.903538f, 0.903579f, 0.903620f,
+ 0.903661f, 0.903702f, 0.903743f, 0.903784f, 0.903825f, 0.903866f, 0.903907f, 0.903948f,
+ 0.903989f, 0.904030f, 0.904071f, 0.904112f, 0.904153f, 0.904194f, 0.904235f, 0.904276f,
+ 0.904317f, 0.904358f, 0.904399f, 0.904440f, 0.904481f, 0.904521f, 0.904562f, 0.904603f,
+ 0.904644f, 0.904685f, 0.904726f, 0.904767f, 0.904807f, 0.904848f, 0.904889f, 0.904930f,
+ 0.904971f, 0.905011f, 0.905052f, 0.905093f, 0.905134f, 0.905175f, 0.905215f, 0.905256f,
+ 0.905297f, 0.905337f, 0.905378f, 0.905419f, 0.905460f, 0.905500f, 0.905541f, 0.905582f,
+ 0.905622f, 0.905663f, 0.905704f, 0.905744f, 0.905785f, 0.905825f, 0.905866f, 0.905907f,
+ 0.905947f, 0.905988f, 0.906028f, 0.906069f, 0.906110f, 0.906150f, 0.906191f, 0.906231f,
+ 0.906272f, 0.906312f, 0.906353f, 0.906393f, 0.906434f, 0.906474f, 0.906515f, 0.906555f,
+ 0.906596f, 0.906636f, 0.906677f, 0.906717f, 0.906757f, 0.906798f, 0.906838f, 0.906879f,
+ 0.906919f, 0.906959f, 0.907000f, 0.907040f, 0.907081f, 0.907121f, 0.907161f, 0.907202f,
+ 0.907242f, 0.907282f, 0.907323f, 0.907363f, 0.907403f, 0.907444f, 0.907484f, 0.907524f,
+ 0.907564f, 0.907605f, 0.907645f, 0.907685f, 0.907725f, 0.907766f, 0.907806f, 0.907846f,
+ 0.907886f, 0.907926f, 0.907966f, 0.908007f, 0.908047f, 0.908087f, 0.908127f, 0.908167f,
+ 0.908207f, 0.908248f, 0.908288f, 0.908328f, 0.908368f, 0.908408f, 0.908448f, 0.908488f,
+ 0.908528f, 0.908568f, 0.908608f, 0.908648f, 0.908688f, 0.908728f, 0.908768f, 0.908808f,
+ 0.908848f, 0.908888f, 0.908928f, 0.908968f, 0.909008f, 0.909048f, 0.909088f, 0.909128f,
+ 0.909168f, 0.909208f, 0.909248f, 0.909288f, 0.909328f, 0.909368f, 0.909407f, 0.909447f,
+ 0.909487f, 0.909527f, 0.909567f, 0.909607f, 0.909646f, 0.909686f, 0.909726f, 0.909766f,
+ 0.909806f, 0.909845f, 0.909885f, 0.909925f, 0.909965f, 0.910005f, 0.910044f, 0.910084f,
+ 0.910124f, 0.910163f, 0.910203f, 0.910243f, 0.910283f, 0.910322f, 0.910362f, 0.910402f,
+ 0.910441f, 0.910481f, 0.910521f, 0.910560f, 0.910600f, 0.910639f, 0.910679f, 0.910719f,
+ 0.910758f, 0.910798f, 0.910837f, 0.910877f, 0.910917f, 0.910956f, 0.910996f, 0.911035f,
+ 0.911075f, 0.911114f, 0.911154f, 0.911193f, 0.911233f, 0.911272f, 0.911312f, 0.911351f,
+ 0.911391f, 0.911430f, 0.911470f, 0.911509f, 0.911548f, 0.911588f, 0.911627f, 0.911667f,
+ 0.911706f, 0.911745f, 0.911785f, 0.911824f, 0.911864f, 0.911903f, 0.911942f, 0.911982f,
+ 0.912021f, 0.912060f, 0.912099f, 0.912139f, 0.912178f, 0.912217f, 0.912257f, 0.912296f,
+ 0.912335f, 0.912374f, 0.912414f, 0.912453f, 0.912492f, 0.912531f, 0.912571f, 0.912610f,
+ 0.912649f, 0.912688f, 0.912727f, 0.912766f, 0.912806f, 0.912845f, 0.912884f, 0.912923f,
+ 0.912962f, 0.913001f, 0.913040f, 0.913080f, 0.913119f, 0.913158f, 0.913197f, 0.913236f,
+ 0.913275f, 0.913314f, 0.913353f, 0.913392f, 0.913431f, 0.913470f, 0.913509f, 0.913548f,
+ 0.913587f, 0.913626f, 0.913665f, 0.913704f, 0.913743f, 0.913782f, 0.913821f, 0.913860f,
+ 0.913899f, 0.913938f, 0.913976f, 0.914015f, 0.914054f, 0.914093f, 0.914132f, 0.914171f,
+ 0.914210f, 0.914249f, 0.914287f, 0.914326f, 0.914365f, 0.914404f, 0.914443f, 0.914482f,
+ 0.914520f, 0.914559f, 0.914598f, 0.914637f, 0.914675f, 0.914714f, 0.914753f, 0.914792f,
+ 0.914830f, 0.914869f, 0.914908f, 0.914946f, 0.914985f, 0.915024f, 0.915062f, 0.915101f,
+ 0.915140f, 0.915178f, 0.915217f, 0.915256f, 0.915294f, 0.915333f, 0.915372f, 0.915410f,
+ 0.915449f, 0.915487f, 0.915526f, 0.915564f, 0.915603f, 0.915642f, 0.915680f, 0.915719f,
+ 0.915757f, 0.915796f, 0.915834f, 0.915873f, 0.915911f, 0.915950f, 0.915988f, 0.916027f,
+ 0.916065f, 0.916103f, 0.916142f, 0.916180f, 0.916219f, 0.916257f, 0.916296f, 0.916334f,
+ 0.916372f, 0.916411f, 0.916449f, 0.916487f, 0.916526f, 0.916564f, 0.916602f, 0.916641f,
+ 0.916679f, 0.916717f, 0.916756f, 0.916794f, 0.916832f, 0.916871f, 0.916909f, 0.916947f,
+ 0.916985f, 0.917024f, 0.917062f, 0.917100f, 0.917138f, 0.917176f, 0.917215f, 0.917253f,
+ 0.917291f, 0.917329f, 0.917367f, 0.917405f, 0.917444f, 0.917482f, 0.917520f, 0.917558f,
+ 0.917596f, 0.917634f, 0.917672f, 0.917710f, 0.917749f, 0.917787f, 0.917825f, 0.917863f,
+ 0.917901f, 0.917939f, 0.917977f, 0.918015f, 0.918053f, 0.918091f, 0.918129f, 0.918167f,
+ 0.918205f, 0.918243f, 0.918281f, 0.918319f, 0.918357f, 0.918395f, 0.918433f, 0.918471f,
+ 0.918508f, 0.918546f, 0.918584f, 0.918622f, 0.918660f, 0.918698f, 0.918736f, 0.918774f,
+ 0.918811f, 0.918849f, 0.918887f, 0.918925f, 0.918963f, 0.919001f, 0.919038f, 0.919076f,
+ 0.919114f, 0.919152f, 0.919189f, 0.919227f, 0.919265f, 0.919303f, 0.919340f, 0.919378f,
+ 0.919416f, 0.919453f, 0.919491f, 0.919529f, 0.919567f, 0.919604f, 0.919642f, 0.919680f,
+ 0.919717f, 0.919755f, 0.919792f, 0.919830f, 0.919868f, 0.919905f, 0.919943f, 0.919980f,
+ 0.920018f, 0.920056f, 0.920093f, 0.920131f, 0.920168f, 0.920206f, 0.920243f, 0.920281f,
+ 0.920318f, 0.920356f, 0.920393f, 0.920431f, 0.920468f, 0.920506f, 0.920543f, 0.920581f,
+ 0.920618f, 0.920655f, 0.920693f, 0.920730f, 0.920768f, 0.920805f, 0.920842f, 0.920880f,
+ 0.920917f, 0.920955f, 0.920992f, 0.921029f, 0.921067f, 0.921104f, 0.921141f, 0.921179f,
+ 0.921216f, 0.921253f, 0.921291f, 0.921328f, 0.921365f, 0.921402f, 0.921440f, 0.921477f,
+ 0.921514f, 0.921551f, 0.921588f, 0.921626f, 0.921663f, 0.921700f, 0.921737f, 0.921774f,
+ 0.921812f, 0.921849f, 0.921886f, 0.921923f, 0.921960f, 0.921997f, 0.922034f, 0.922072f,
+ 0.922109f, 0.922146f, 0.922183f, 0.922220f, 0.922257f, 0.922294f, 0.922331f, 0.922368f,
+ 0.922405f, 0.922442f, 0.922479f, 0.922516f, 0.922553f, 0.922590f, 0.922627f, 0.922664f,
+ 0.922701f, 0.922738f, 0.922775f, 0.922812f, 0.922849f, 0.922886f, 0.922923f, 0.922960f,
+ 0.922997f, 0.923033f, 0.923070f, 0.923107f, 0.923144f, 0.923181f, 0.923218f, 0.923255f,
+ 0.923291f, 0.923328f, 0.923365f, 0.923402f, 0.923439f, 0.923475f, 0.923512f, 0.923549f,
+ 0.923586f, 0.923622f, 0.923659f, 0.923696f, 0.923733f, 0.923769f, 0.923806f, 0.923843f,
+ 0.923880f, 0.923916f, 0.923953f, 0.923990f, 0.924026f, 0.924063f, 0.924100f, 0.924136f,
+ 0.924173f, 0.924209f, 0.924246f, 0.924283f, 0.924319f, 0.924356f, 0.924392f, 0.924429f,
+ 0.924465f, 0.924502f, 0.924539f, 0.924575f, 0.924612f, 0.924648f, 0.924685f, 0.924721f,
+ 0.924758f, 0.924794f, 0.924831f, 0.924867f, 0.924904f, 0.924940f, 0.924976f, 0.925013f,
+ 0.925049f, 0.925086f, 0.925122f, 0.925158f, 0.925195f, 0.925231f, 0.925268f, 0.925304f,
+ 0.925340f, 0.925377f, 0.925413f, 0.925449f, 0.925486f, 0.925522f, 0.925558f, 0.925595f,
+ 0.925631f, 0.925667f, 0.925703f, 0.925740f, 0.925776f, 0.925812f, 0.925848f, 0.925885f,
+ 0.925921f, 0.925957f, 0.925993f, 0.926029f, 0.926066f, 0.926102f, 0.926138f, 0.926174f,
+ 0.926210f, 0.926246f, 0.926283f, 0.926319f, 0.926355f, 0.926391f, 0.926427f, 0.926463f,
+ 0.926499f, 0.926535f, 0.926571f, 0.926607f, 0.926643f, 0.926679f, 0.926715f, 0.926751f,
+ 0.926787f, 0.926823f, 0.926859f, 0.926895f, 0.926931f, 0.926967f, 0.927003f, 0.927039f,
+ 0.927075f, 0.927111f, 0.927147f, 0.927183f, 0.927219f, 0.927255f, 0.927291f, 0.927327f,
+ 0.927363f, 0.927398f, 0.927434f, 0.927470f, 0.927506f, 0.927542f, 0.927578f, 0.927613f,
+ 0.927649f, 0.927685f, 0.927721f, 0.927757f, 0.927792f, 0.927828f, 0.927864f, 0.927900f,
+ 0.927935f, 0.927971f, 0.928007f, 0.928043f, 0.928078f, 0.928114f, 0.928150f, 0.928185f,
+ 0.928221f, 0.928257f, 0.928292f, 0.928328f, 0.928364f, 0.928399f, 0.928435f, 0.928470f,
+ 0.928506f, 0.928542f, 0.928577f, 0.928613f, 0.928648f, 0.928684f, 0.928720f, 0.928755f,
+ 0.928791f, 0.928826f, 0.928862f, 0.928897f, 0.928933f, 0.928968f, 0.929004f, 0.929039f,
+ 0.929075f, 0.929110f, 0.929146f, 0.929181f, 0.929216f, 0.929252f, 0.929287f, 0.929323f,
+ 0.929358f, 0.929393f, 0.929429f, 0.929464f, 0.929500f, 0.929535f, 0.929570f, 0.929606f,
+ 0.929641f, 0.929676f, 0.929712f, 0.929747f, 0.929782f, 0.929817f, 0.929853f, 0.929888f,
+ 0.929923f, 0.929958f, 0.929994f, 0.930029f, 0.930064f, 0.930099f, 0.930135f, 0.930170f,
+ 0.930205f, 0.930240f, 0.930275f, 0.930311f, 0.930346f, 0.930381f, 0.930416f, 0.930451f,
+ 0.930486f, 0.930521f, 0.930556f, 0.930592f, 0.930627f, 0.930662f, 0.930697f, 0.930732f,
+ 0.930767f, 0.930802f, 0.930837f, 0.930872f, 0.930907f, 0.930942f, 0.930977f, 0.931012f,
+ 0.931047f, 0.931082f, 0.931117f, 0.931152f, 0.931187f, 0.931222f, 0.931257f, 0.931292f,
+ 0.931327f, 0.931362f, 0.931397f, 0.931431f, 0.931466f, 0.931501f, 0.931536f, 0.931571f,
+ 0.931606f, 0.931641f, 0.931675f, 0.931710f, 0.931745f, 0.931780f, 0.931815f, 0.931849f,
+ 0.931884f, 0.931919f, 0.931954f, 0.931989f, 0.932023f, 0.932058f, 0.932093f, 0.932128f,
+ 0.932162f, 0.932197f, 0.932232f, 0.932266f, 0.932301f, 0.932336f, 0.932370f, 0.932405f,
+ 0.932440f, 0.932474f, 0.932509f, 0.932544f, 0.932578f, 0.932613f, 0.932647f, 0.932682f,
+ 0.932716f, 0.932751f, 0.932786f, 0.932820f, 0.932855f, 0.932889f, 0.932924f, 0.932958f,
+ 0.932993f, 0.933027f, 0.933062f, 0.933096f, 0.933131f, 0.933165f, 0.933200f, 0.933234f,
+ 0.933269f, 0.933303f, 0.933337f, 0.933372f, 0.933406f, 0.933441f, 0.933475f, 0.933509f,
+ 0.933544f, 0.933578f, 0.933612f, 0.933647f, 0.933681f, 0.933716f, 0.933750f, 0.933784f,
+ 0.933818f, 0.933853f, 0.933887f, 0.933921f, 0.933956f, 0.933990f, 0.934024f, 0.934058f,
+ 0.934093f, 0.934127f, 0.934161f, 0.934195f, 0.934229f, 0.934264f, 0.934298f, 0.934332f,
+ 0.934366f, 0.934400f, 0.934434f, 0.934469f, 0.934503f, 0.934537f, 0.934571f, 0.934605f,
+ 0.934639f, 0.934673f, 0.934707f, 0.934741f, 0.934775f, 0.934810f, 0.934844f, 0.934878f,
+ 0.934912f, 0.934946f, 0.934980f, 0.935014f, 0.935048f, 0.935082f, 0.935116f, 0.935150f,
+ 0.935184f, 0.935217f, 0.935251f, 0.935285f, 0.935319f, 0.935353f, 0.935387f, 0.935421f,
+ 0.935455f, 0.935489f, 0.935523f, 0.935556f, 0.935590f, 0.935624f, 0.935658f, 0.935692f,
+ 0.935726f, 0.935759f, 0.935793f, 0.935827f, 0.935861f, 0.935895f, 0.935928f, 0.935962f,
+ 0.935996f, 0.936030f, 0.936063f, 0.936097f, 0.936131f, 0.936165f, 0.936198f, 0.936232f,
+ 0.936266f, 0.936299f, 0.936333f, 0.936367f, 0.936400f, 0.936434f, 0.936468f, 0.936501f,
+ 0.936535f, 0.936568f, 0.936602f, 0.936636f, 0.936669f, 0.936703f, 0.936736f, 0.936770f,
+ 0.936803f, 0.936837f, 0.936871f, 0.936904f, 0.936938f, 0.936971f, 0.937005f, 0.937038f,
+ 0.937072f, 0.937105f, 0.937138f, 0.937172f, 0.937205f, 0.937239f, 0.937272f, 0.937306f,
+ 0.937339f, 0.937372f, 0.937406f, 0.937439f, 0.937473f, 0.937506f, 0.937539f, 0.937573f,
+ 0.937606f, 0.937639f, 0.937673f, 0.937706f, 0.937739f, 0.937773f, 0.937806f, 0.937839f,
+ 0.937872f, 0.937906f, 0.937939f, 0.937972f, 0.938005f, 0.938039f, 0.938072f, 0.938105f,
+ 0.938138f, 0.938171f, 0.938205f, 0.938238f, 0.938271f, 0.938304f, 0.938337f, 0.938370f,
+ 0.938404f, 0.938437f, 0.938470f, 0.938503f, 0.938536f, 0.938569f, 0.938602f, 0.938635f,
+ 0.938668f, 0.938701f, 0.938734f, 0.938767f, 0.938800f, 0.938833f, 0.938866f, 0.938900f,
+ 0.938932f, 0.938965f, 0.938998f, 0.939031f, 0.939064f, 0.939097f, 0.939130f, 0.939163f,
+ 0.939196f, 0.939229f, 0.939262f, 0.939295f, 0.939328f, 0.939361f, 0.939394f, 0.939426f,
+ 0.939459f, 0.939492f, 0.939525f, 0.939558f, 0.939591f, 0.939623f, 0.939656f, 0.939689f,
+ 0.939722f, 0.939755f, 0.939787f, 0.939820f, 0.939853f, 0.939886f, 0.939918f, 0.939951f,
+ 0.939984f, 0.940016f, 0.940049f, 0.940082f, 0.940115f, 0.940147f, 0.940180f, 0.940213f,
+ 0.940245f, 0.940278f, 0.940310f, 0.940343f, 0.940376f, 0.940408f, 0.940441f, 0.940473f,
+ 0.940506f, 0.940539f, 0.940571f, 0.940604f, 0.940636f, 0.940669f, 0.940701f, 0.940734f,
+ 0.940766f, 0.940799f, 0.940831f, 0.940864f, 0.940896f, 0.940929f, 0.940961f, 0.940994f,
+ 0.941026f, 0.941059f, 0.941091f, 0.941123f, 0.941156f, 0.941188f, 0.941221f, 0.941253f,
+ 0.941285f, 0.941318f, 0.941350f, 0.941382f, 0.941415f, 0.941447f, 0.941479f, 0.941512f,
+ 0.941544f, 0.941576f, 0.941609f, 0.941641f, 0.941673f, 0.941705f, 0.941738f, 0.941770f,
+ 0.941802f, 0.941834f, 0.941867f, 0.941899f, 0.941931f, 0.941963f, 0.941995f, 0.942028f,
+ 0.942060f, 0.942092f, 0.942124f, 0.942156f, 0.942188f, 0.942220f, 0.942253f, 0.942285f,
+ 0.942317f, 0.942349f, 0.942381f, 0.942413f, 0.942445f, 0.942477f, 0.942509f, 0.942541f,
+ 0.942573f, 0.942605f, 0.942637f, 0.942669f, 0.942701f, 0.942733f, 0.942765f, 0.942797f,
+ 0.942829f, 0.942861f, 0.942893f, 0.942925f, 0.942957f, 0.942989f, 0.943021f, 0.943053f,
+ 0.943084f, 0.943116f, 0.943148f, 0.943180f, 0.943212f, 0.943244f, 0.943276f, 0.943307f,
+ 0.943339f, 0.943371f, 0.943403f, 0.943435f, 0.943466f, 0.943498f, 0.943530f, 0.943562f,
+ 0.943593f, 0.943625f, 0.943657f, 0.943689f, 0.943720f, 0.943752f, 0.943784f, 0.943815f,
+ 0.943847f, 0.943879f, 0.943910f, 0.943942f, 0.943974f, 0.944005f, 0.944037f, 0.944069f,
+ 0.944100f, 0.944132f, 0.944163f, 0.944195f, 0.944227f, 0.944258f, 0.944290f, 0.944321f,
+ 0.944353f, 0.944384f, 0.944416f, 0.944447f, 0.944479f, 0.944510f, 0.944542f, 0.944573f,
+ 0.944605f, 0.944636f, 0.944668f, 0.944699f, 0.944731f, 0.944762f, 0.944793f, 0.944825f,
+ 0.944856f, 0.944888f, 0.944919f, 0.944950f, 0.944982f, 0.945013f, 0.945045f, 0.945076f,
+ 0.945107f, 0.945139f, 0.945170f, 0.945201f, 0.945232f, 0.945264f, 0.945295f, 0.945326f,
+ 0.945358f, 0.945389f, 0.945420f, 0.945451f, 0.945482f, 0.945514f, 0.945545f, 0.945576f,
+ 0.945607f, 0.945639f, 0.945670f, 0.945701f, 0.945732f, 0.945763f, 0.945794f, 0.945825f,
+ 0.945857f, 0.945888f, 0.945919f, 0.945950f, 0.945981f, 0.946012f, 0.946043f, 0.946074f,
+ 0.946105f, 0.946136f, 0.946167f, 0.946198f, 0.946229f, 0.946260f, 0.946291f, 0.946322f,
+ 0.946353f, 0.946384f, 0.946415f, 0.946446f, 0.946477f, 0.946508f, 0.946539f, 0.946570f,
+ 0.946601f, 0.946632f, 0.946663f, 0.946694f, 0.946724f, 0.946755f, 0.946786f, 0.946817f,
+ 0.946848f, 0.946879f, 0.946910f, 0.946940f, 0.946971f, 0.947002f, 0.947033f, 0.947064f,
+ 0.947094f, 0.947125f, 0.947156f, 0.947187f, 0.947217f, 0.947248f, 0.947279f, 0.947310f,
+ 0.947340f, 0.947371f, 0.947402f, 0.947432f, 0.947463f, 0.947494f, 0.947524f, 0.947555f,
+ 0.947586f, 0.947616f, 0.947647f, 0.947677f, 0.947708f, 0.947739f, 0.947769f, 0.947800f,
+ 0.947830f, 0.947861f, 0.947891f, 0.947922f, 0.947953f, 0.947983f, 0.948014f, 0.948044f,
+ 0.948075f, 0.948105f, 0.948136f, 0.948166f, 0.948196f, 0.948227f, 0.948257f, 0.948288f,
+ 0.948318f, 0.948349f, 0.948379f, 0.948409f, 0.948440f, 0.948470f, 0.948501f, 0.948531f,
+ 0.948561f, 0.948592f, 0.948622f, 0.948652f, 0.948683f, 0.948713f, 0.948743f, 0.948774f,
+ 0.948804f, 0.948834f, 0.948864f, 0.948895f, 0.948925f, 0.948955f, 0.948985f, 0.949016f,
+ 0.949046f, 0.949076f, 0.949106f, 0.949136f, 0.949167f, 0.949197f, 0.949227f, 0.949257f,
+ 0.949287f, 0.949317f, 0.949348f, 0.949378f, 0.949408f, 0.949438f, 0.949468f, 0.949498f,
+ 0.949528f, 0.949558f, 0.949588f, 0.949618f, 0.949648f, 0.949678f, 0.949708f, 0.949739f,
+ 0.949768f, 0.949798f, 0.949829f, 0.949858f, 0.949888f, 0.949918f, 0.949948f, 0.949978f,
+ 0.950008f, 0.950038f, 0.950068f, 0.950098f, 0.950128f, 0.950158f, 0.950188f, 0.950218f,
+ 0.950247f, 0.950277f, 0.950307f, 0.950337f, 0.950367f, 0.950397f, 0.950426f, 0.950456f,
+ 0.950486f, 0.950516f, 0.950546f, 0.950575f, 0.950605f, 0.950635f, 0.950665f, 0.950694f,
+ 0.950724f, 0.950754f, 0.950784f, 0.950813f, 0.950843f, 0.950873f, 0.950902f, 0.950932f,
+ 0.950962f, 0.950991f, 0.951021f, 0.951051f, 0.951080f, 0.951110f, 0.951139f, 0.951169f,
+ 0.951199f, 0.951228f, 0.951258f, 0.951287f, 0.951317f, 0.951346f, 0.951376f, 0.951406f,
+ 0.951435f, 0.951465f, 0.951494f, 0.951524f, 0.951553f, 0.951582f, 0.951612f, 0.951641f,
+ 0.951671f, 0.951700f, 0.951730f, 0.951759f, 0.951789f, 0.951818f, 0.951847f, 0.951877f,
+ 0.951906f, 0.951936f, 0.951965f, 0.951994f, 0.952024f, 0.952053f, 0.952082f, 0.952112f,
+ 0.952141f, 0.952170f, 0.952199f, 0.952229f, 0.952258f, 0.952287f, 0.952317f, 0.952346f,
+ 0.952375f, 0.952404f, 0.952433f, 0.952463f, 0.952492f, 0.952521f, 0.952550f, 0.952579f,
+ 0.952609f, 0.952638f, 0.952667f, 0.952696f, 0.952725f, 0.952754f, 0.952783f, 0.952813f,
+ 0.952842f, 0.952871f, 0.952900f, 0.952929f, 0.952958f, 0.952987f, 0.953016f, 0.953045f,
+ 0.953074f, 0.953103f, 0.953132f, 0.953161f, 0.953190f, 0.953219f, 0.953248f, 0.953277f,
+ 0.953306f, 0.953335f, 0.953364f, 0.953393f, 0.953422f, 0.953451f, 0.953480f, 0.953508f,
+ 0.953537f, 0.953566f, 0.953595f, 0.953624f, 0.953653f, 0.953682f, 0.953711f, 0.953739f,
+ 0.953768f, 0.953797f, 0.953826f, 0.953855f, 0.953883f, 0.953912f, 0.953941f, 0.953970f,
+ 0.953998f, 0.954027f, 0.954056f, 0.954085f, 0.954113f, 0.954142f, 0.954171f, 0.954199f,
+ 0.954228f, 0.954257f, 0.954285f, 0.954314f, 0.954343f, 0.954371f, 0.954400f, 0.954429f,
+ 0.954457f, 0.954486f, 0.954514f, 0.954543f, 0.954572f, 0.954600f, 0.954629f, 0.954657f,
+ 0.954686f, 0.954714f, 0.954743f, 0.954771f, 0.954800f, 0.954828f, 0.954857f, 0.954885f,
+ 0.954914f, 0.954942f, 0.954971f, 0.954999f, 0.955028f, 0.955056f, 0.955084f, 0.955113f,
+ 0.955141f, 0.955170f, 0.955198f, 0.955226f, 0.955255f, 0.955283f, 0.955311f, 0.955340f,
+ 0.955368f, 0.955396f, 0.955425f, 0.955453f, 0.955481f, 0.955510f, 0.955538f, 0.955566f,
+ 0.955594f, 0.955623f, 0.955651f, 0.955679f, 0.955707f, 0.955736f, 0.955764f, 0.955792f,
+ 0.955820f, 0.955848f, 0.955876f, 0.955905f, 0.955933f, 0.955961f, 0.955989f, 0.956017f,
+ 0.956045f, 0.956073f, 0.956101f, 0.956130f, 0.956158f, 0.956186f, 0.956214f, 0.956242f,
+ 0.956270f, 0.956298f, 0.956326f, 0.956354f, 0.956382f, 0.956410f, 0.956438f, 0.956466f,
+ 0.956494f, 0.956522f, 0.956550f, 0.956578f, 0.956606f, 0.956634f, 0.956662f, 0.956689f,
+ 0.956717f, 0.956745f, 0.956773f, 0.956801f, 0.956829f, 0.956857f, 0.956885f, 0.956913f,
+ 0.956940f, 0.956968f, 0.956996f, 0.957024f, 0.957052f, 0.957079f, 0.957107f, 0.957135f,
+ 0.957163f, 0.957190f, 0.957218f, 0.957246f, 0.957274f, 0.957301f, 0.957329f, 0.957357f,
+ 0.957385f, 0.957412f, 0.957440f, 0.957468f, 0.957495f, 0.957523f, 0.957550f, 0.957578f,
+ 0.957606f, 0.957633f, 0.957661f, 0.957689f, 0.957716f, 0.957744f, 0.957771f, 0.957799f,
+ 0.957826f, 0.957854f, 0.957882f, 0.957909f, 0.957937f, 0.957964f, 0.957992f, 0.958019f,
+ 0.958046f, 0.958074f, 0.958101f, 0.958129f, 0.958156f, 0.958184f, 0.958211f, 0.958239f,
+ 0.958266f, 0.958293f, 0.958321f, 0.958348f, 0.958376f, 0.958403f, 0.958430f, 0.958458f,
+ 0.958485f, 0.958512f, 0.958540f, 0.958567f, 0.958594f, 0.958622f, 0.958649f, 0.958676f,
+ 0.958703f, 0.958731f, 0.958758f, 0.958785f, 0.958812f, 0.958840f, 0.958867f, 0.958894f,
+ 0.958921f, 0.958949f, 0.958976f, 0.959003f, 0.959030f, 0.959057f, 0.959084f, 0.959112f,
+ 0.959139f, 0.959166f, 0.959193f, 0.959220f, 0.959247f, 0.959274f, 0.959301f, 0.959328f,
+ 0.959355f, 0.959382f, 0.959409f, 0.959436f, 0.959463f, 0.959491f, 0.959518f, 0.959545f,
+ 0.959572f, 0.959598f, 0.959625f, 0.959652f, 0.959679f, 0.959706f, 0.959733f, 0.959760f,
+ 0.959787f, 0.959814f, 0.959841f, 0.959868f, 0.959895f, 0.959922f, 0.959948f, 0.959975f,
+ 0.960002f, 0.960029f, 0.960056f, 0.960083f, 0.960109f, 0.960136f, 0.960163f, 0.960190f,
+ 0.960217f, 0.960243f, 0.960270f, 0.960297f, 0.960324f, 0.960350f, 0.960377f, 0.960404f,
+ 0.960431f, 0.960457f, 0.960484f, 0.960511f, 0.960537f, 0.960564f, 0.960591f, 0.960617f,
+ 0.960644f, 0.960670f, 0.960697f, 0.960724f, 0.960750f, 0.960777f, 0.960804f, 0.960830f,
+ 0.960857f, 0.960883f, 0.960910f, 0.960936f, 0.960963f, 0.960989f, 0.961016f, 0.961042f,
+ 0.961069f, 0.961095f, 0.961122f, 0.961148f, 0.961175f, 0.961201f, 0.961228f, 0.961254f,
+ 0.961280f, 0.961307f, 0.961333f, 0.961360f, 0.961386f, 0.961412f, 0.961439f, 0.961465f,
+ 0.961492f, 0.961518f, 0.961544f, 0.961571f, 0.961597f, 0.961623f, 0.961649f, 0.961676f,
+ 0.961702f, 0.961728f, 0.961755f, 0.961781f, 0.961807f, 0.961833f, 0.961860f, 0.961886f,
+ 0.961912f, 0.961938f, 0.961964f, 0.961991f, 0.962017f, 0.962043f, 0.962069f, 0.962095f,
+ 0.962121f, 0.962148f, 0.962174f, 0.962200f, 0.962226f, 0.962252f, 0.962278f, 0.962304f,
+ 0.962330f, 0.962356f, 0.962382f, 0.962408f, 0.962434f, 0.962460f, 0.962486f, 0.962512f,
+ 0.962538f, 0.962564f, 0.962590f, 0.962616f, 0.962642f, 0.962668f, 0.962694f, 0.962720f,
+ 0.962746f, 0.962772f, 0.962798f, 0.962824f, 0.962850f, 0.962876f, 0.962902f, 0.962927f,
+ 0.962953f, 0.962979f, 0.963005f, 0.963031f, 0.963057f, 0.963082f, 0.963108f, 0.963134f,
+ 0.963160f, 0.963186f, 0.963211f, 0.963237f, 0.963263f, 0.963289f, 0.963314f, 0.963340f,
+ 0.963366f, 0.963391f, 0.963417f, 0.963443f, 0.963469f, 0.963494f, 0.963520f, 0.963546f,
+ 0.963571f, 0.963597f, 0.963623f, 0.963648f, 0.963674f, 0.963699f, 0.963725f, 0.963750f,
+ 0.963776f, 0.963802f, 0.963827f, 0.963853f, 0.963878f, 0.963904f, 0.963929f, 0.963955f,
+ 0.963980f, 0.964006f, 0.964031f, 0.964057f, 0.964082f, 0.964108f, 0.964133f, 0.964159f,
+ 0.964184f, 0.964209f, 0.964235f, 0.964260f, 0.964286f, 0.964311f, 0.964336f, 0.964362f,
+ 0.964387f, 0.964413f, 0.964438f, 0.964463f, 0.964489f, 0.964514f, 0.964539f, 0.964565f,
+ 0.964590f, 0.964615f, 0.964640f, 0.964666f, 0.964691f, 0.964716f, 0.964741f, 0.964767f,
+ 0.964792f, 0.964817f, 0.964842f, 0.964867f, 0.964893f, 0.964918f, 0.964943f, 0.964968f,
+ 0.964993f, 0.965018f, 0.965044f, 0.965069f, 0.965094f, 0.965119f, 0.965144f, 0.965169f,
+ 0.965194f, 0.965219f, 0.965244f, 0.965269f, 0.965294f, 0.965319f, 0.965344f, 0.965369f,
+ 0.965394f, 0.965419f, 0.965444f, 0.965469f, 0.965494f, 0.965519f, 0.965544f, 0.965569f,
+ 0.965594f, 0.965619f, 0.965644f, 0.965669f, 0.965694f, 0.965719f, 0.965744f, 0.965769f,
+ 0.965793f, 0.965818f, 0.965843f, 0.965868f, 0.965893f, 0.965918f, 0.965942f, 0.965967f,
+ 0.965992f, 0.966017f, 0.966042f, 0.966066f, 0.966091f, 0.966116f, 0.966141f, 0.966165f,
+ 0.966190f, 0.966215f, 0.966239f, 0.966264f, 0.966289f, 0.966313f, 0.966338f, 0.966363f,
+ 0.966387f, 0.966412f, 0.966437f, 0.966461f, 0.966486f, 0.966511f, 0.966535f, 0.966560f,
+ 0.966584f, 0.966609f, 0.966633f, 0.966658f, 0.966683f, 0.966707f, 0.966732f, 0.966756f,
+ 0.966781f, 0.966805f, 0.966830f, 0.966854f, 0.966879f, 0.966903f, 0.966928f, 0.966952f,
+ 0.966976f, 0.967001f, 0.967025f, 0.967050f, 0.967074f, 0.967099f, 0.967123f, 0.967147f,
+ 0.967172f, 0.967196f, 0.967220f, 0.967245f, 0.967269f, 0.967293f, 0.967318f, 0.967342f,
+ 0.967366f, 0.967391f, 0.967415f, 0.967439f, 0.967463f, 0.967488f, 0.967512f, 0.967536f,
+ 0.967560f, 0.967585f, 0.967609f, 0.967633f, 0.967657f, 0.967681f, 0.967706f, 0.967730f,
+ 0.967754f, 0.967778f, 0.967802f, 0.967826f, 0.967850f, 0.967874f, 0.967899f, 0.967923f,
+ 0.967947f, 0.967971f, 0.967995f, 0.968019f, 0.968043f, 0.968067f, 0.968091f, 0.968115f,
+ 0.968139f, 0.968163f, 0.968187f, 0.968211f, 0.968235f, 0.968259f, 0.968283f, 0.968307f,
+ 0.968331f, 0.968355f, 0.968379f, 0.968403f, 0.968427f, 0.968450f, 0.968474f, 0.968498f,
+ 0.968522f, 0.968546f, 0.968570f, 0.968594f, 0.968617f, 0.968641f, 0.968665f, 0.968689f,
+ 0.968713f, 0.968737f, 0.968760f, 0.968784f, 0.968808f, 0.968832f, 0.968855f, 0.968879f,
+ 0.968903f, 0.968927f, 0.968950f, 0.968974f, 0.968998f, 0.969021f, 0.969045f, 0.969069f,
+ 0.969092f, 0.969116f, 0.969140f, 0.969163f, 0.969187f, 0.969210f, 0.969234f, 0.969258f,
+ 0.969281f, 0.969305f, 0.969328f, 0.969352f, 0.969375f, 0.969399f, 0.969423f, 0.969446f,
+ 0.969470f, 0.969493f, 0.969517f, 0.969540f, 0.969564f, 0.969587f, 0.969611f, 0.969634f,
+ 0.969657f, 0.969681f, 0.969704f, 0.969728f, 0.969751f, 0.969774f, 0.969798f, 0.969821f,
+ 0.969845f, 0.969868f, 0.969891f, 0.969915f, 0.969938f, 0.969961f, 0.969985f, 0.970008f,
+ 0.970031f, 0.970055f, 0.970078f, 0.970101f, 0.970124f, 0.970148f, 0.970171f, 0.970194f,
+ 0.970217f, 0.970241f, 0.970264f, 0.970287f, 0.970310f, 0.970333f, 0.970357f, 0.970380f,
+ 0.970403f, 0.970426f, 0.970449f, 0.970472f, 0.970495f, 0.970518f, 0.970542f, 0.970565f,
+ 0.970588f, 0.970611f, 0.970634f, 0.970657f, 0.970680f, 0.970703f, 0.970726f, 0.970749f,
+ 0.970772f, 0.970795f, 0.970818f, 0.970841f, 0.970864f, 0.970887f, 0.970910f, 0.970933f,
+ 0.970956f, 0.970979f, 0.971002f, 0.971025f, 0.971048f, 0.971071f, 0.971093f, 0.971116f,
+ 0.971139f, 0.971162f, 0.971185f, 0.971208f, 0.971231f, 0.971253f, 0.971276f, 0.971299f,
+ 0.971322f, 0.971345f, 0.971367f, 0.971390f, 0.971413f, 0.971436f, 0.971458f, 0.971481f,
+ 0.971504f, 0.971527f, 0.971549f, 0.971572f, 0.971595f, 0.971617f, 0.971640f, 0.971663f,
+ 0.971685f, 0.971708f, 0.971731f, 0.971753f, 0.971776f, 0.971799f, 0.971821f, 0.971844f,
+ 0.971866f, 0.971889f, 0.971911f, 0.971934f, 0.971957f, 0.971979f, 0.972002f, 0.972024f,
+ 0.972047f, 0.972069f, 0.972092f, 0.972114f, 0.972137f, 0.972159f, 0.972182f, 0.972204f,
+ 0.972227f, 0.972249f, 0.972271f, 0.972294f, 0.972316f, 0.972339f, 0.972361f, 0.972383f,
+ 0.972406f, 0.972428f, 0.972450f, 0.972473f, 0.972495f, 0.972517f, 0.972540f, 0.972562f,
+ 0.972584f, 0.972607f, 0.972629f, 0.972651f, 0.972673f, 0.972696f, 0.972718f, 0.972740f,
+ 0.972762f, 0.972785f, 0.972807f, 0.972829f, 0.972851f, 0.972873f, 0.972896f, 0.972918f,
+ 0.972940f, 0.972962f, 0.972984f, 0.973006f, 0.973028f, 0.973051f, 0.973073f, 0.973095f,
+ 0.973117f, 0.973139f, 0.973161f, 0.973183f, 0.973205f, 0.973227f, 0.973249f, 0.973271f,
+ 0.973293f, 0.973315f, 0.973337f, 0.973359f, 0.973381f, 0.973403f, 0.973425f, 0.973447f,
+ 0.973469f, 0.973491f, 0.973513f, 0.973535f, 0.973557f, 0.973579f, 0.973601f, 0.973622f,
+ 0.973644f, 0.973666f, 0.973688f, 0.973710f, 0.973732f, 0.973753f, 0.973775f, 0.973797f,
+ 0.973819f, 0.973841f, 0.973862f, 0.973884f, 0.973906f, 0.973928f, 0.973949f, 0.973971f,
+ 0.973993f, 0.974015f, 0.974036f, 0.974058f, 0.974080f, 0.974101f, 0.974123f, 0.974145f,
+ 0.974166f, 0.974188f, 0.974210f, 0.974231f, 0.974253f, 0.974275f, 0.974296f, 0.974318f,
+ 0.974339f, 0.974361f, 0.974383f, 0.974404f, 0.974426f, 0.974447f, 0.974469f, 0.974490f,
+ 0.974512f, 0.974533f, 0.974555f, 0.974576f, 0.974598f, 0.974619f, 0.974641f, 0.974662f,
+ 0.974684f, 0.974705f, 0.974726f, 0.974748f, 0.974769f, 0.974791f, 0.974812f, 0.974833f,
+ 0.974855f, 0.974876f, 0.974897f, 0.974919f, 0.974940f, 0.974961f, 0.974983f, 0.975004f,
+ 0.975025f, 0.975047f, 0.975068f, 0.975089f, 0.975110f, 0.975132f, 0.975153f, 0.975174f,
+ 0.975195f, 0.975217f, 0.975238f, 0.975259f, 0.975280f, 0.975301f, 0.975323f, 0.975344f,
+ 0.975365f, 0.975386f, 0.975407f, 0.975428f, 0.975449f, 0.975471f, 0.975492f, 0.975513f,
+ 0.975534f, 0.975555f, 0.975576f, 0.975597f, 0.975618f, 0.975639f, 0.975660f, 0.975681f,
+ 0.975702f, 0.975723f, 0.975744f, 0.975765f, 0.975786f, 0.975807f, 0.975828f, 0.975849f,
+ 0.975870f, 0.975891f, 0.975912f, 0.975933f, 0.975954f, 0.975974f, 0.975995f, 0.976016f,
+ 0.976037f, 0.976058f, 0.976079f, 0.976100f, 0.976120f, 0.976141f, 0.976162f, 0.976183f,
+ 0.976204f, 0.976224f, 0.976245f, 0.976266f, 0.976287f, 0.976308f, 0.976328f, 0.976349f,
+ 0.976370f, 0.976390f, 0.976411f, 0.976432f, 0.976453f, 0.976473f, 0.976494f, 0.976515f,
+ 0.976535f, 0.976556f, 0.976576f, 0.976597f, 0.976618f, 0.976638f, 0.976659f, 0.976680f,
+ 0.976700f, 0.976721f, 0.976741f, 0.976762f, 0.976782f, 0.976803f, 0.976823f, 0.976844f,
+ 0.976864f, 0.976885f, 0.976905f, 0.976926f, 0.976946f, 0.976967f, 0.976987f, 0.977008f,
+ 0.977028f, 0.977049f, 0.977069f, 0.977089f, 0.977110f, 0.977130f, 0.977151f, 0.977171f,
+ 0.977191f, 0.977212f, 0.977232f, 0.977252f, 0.977273f, 0.977293f, 0.977313f, 0.977334f,
+ 0.977354f, 0.977374f, 0.977394f, 0.977415f, 0.977435f, 0.977455f, 0.977475f, 0.977496f,
+ 0.977516f, 0.977536f, 0.977556f, 0.977577f, 0.977597f, 0.977617f, 0.977637f, 0.977657f,
+ 0.977677f, 0.977697f, 0.977718f, 0.977738f, 0.977758f, 0.977778f, 0.977798f, 0.977818f,
+ 0.977838f, 0.977858f, 0.977878f, 0.977898f, 0.977918f, 0.977938f, 0.977959f, 0.977979f,
+ 0.977998f, 0.978019f, 0.978038f, 0.978058f, 0.978078f, 0.978098f, 0.978118f, 0.978138f,
+ 0.978158f, 0.978178f, 0.978198f, 0.978218f, 0.978238f, 0.978258f, 0.978278f, 0.978298f,
+ 0.978317f, 0.978337f, 0.978357f, 0.978377f, 0.978397f, 0.978417f, 0.978436f, 0.978456f,
+ 0.978476f, 0.978496f, 0.978516f, 0.978535f, 0.978555f, 0.978575f, 0.978594f, 0.978614f,
+ 0.978634f, 0.978654f, 0.978673f, 0.978693f, 0.978713f, 0.978732f, 0.978752f, 0.978772f,
+ 0.978791f, 0.978811f, 0.978831f, 0.978850f, 0.978870f, 0.978889f, 0.978909f, 0.978929f,
+ 0.978948f, 0.978968f, 0.978987f, 0.979007f, 0.979026f, 0.979046f, 0.979065f, 0.979085f,
+ 0.979104f, 0.979124f, 0.979143f, 0.979163f, 0.979182f, 0.979202f, 0.979221f, 0.979241f,
+ 0.979260f, 0.979280f, 0.979299f, 0.979318f, 0.979338f, 0.979357f, 0.979376f, 0.979396f,
+ 0.979415f, 0.979435f, 0.979454f, 0.979473f, 0.979493f, 0.979512f, 0.979531f, 0.979550f,
+ 0.979570f, 0.979589f, 0.979608f, 0.979628f, 0.979647f, 0.979666f, 0.979685f, 0.979704f,
+ 0.979724f, 0.979743f, 0.979762f, 0.979781f, 0.979800f, 0.979820f, 0.979839f, 0.979858f,
+ 0.979877f, 0.979896f, 0.979915f, 0.979934f, 0.979954f, 0.979973f, 0.979992f, 0.980011f,
+ 0.980030f, 0.980049f, 0.980068f, 0.980087f, 0.980106f, 0.980125f, 0.980144f, 0.980163f,
+ 0.980182f, 0.980201f, 0.980220f, 0.980239f, 0.980258f, 0.980277f, 0.980296f, 0.980315f,
+ 0.980334f, 0.980353f, 0.980372f, 0.980390f, 0.980409f, 0.980428f, 0.980447f, 0.980466f,
+ 0.980485f, 0.980504f, 0.980523f, 0.980541f, 0.980560f, 0.980579f, 0.980598f, 0.980617f,
+ 0.980635f, 0.980654f, 0.980673f, 0.980692f, 0.980710f, 0.980729f, 0.980748f, 0.980767f,
+ 0.980785f, 0.980804f, 0.980823f, 0.980841f, 0.980860f, 0.980879f, 0.980897f, 0.980916f,
+ 0.980935f, 0.980953f, 0.980972f, 0.980990f, 0.981009f, 0.981028f, 0.981046f, 0.981065f,
+ 0.981083f, 0.981102f, 0.981120f, 0.981139f, 0.981158f, 0.981176f, 0.981195f, 0.981213f,
+ 0.981232f, 0.981250f, 0.981269f, 0.981287f, 0.981305f, 0.981324f, 0.981342f, 0.981361f,
+ 0.981379f, 0.981398f, 0.981416f, 0.981434f, 0.981453f, 0.981471f, 0.981490f, 0.981508f,
+ 0.981526f, 0.981545f, 0.981563f, 0.981581f, 0.981600f, 0.981618f, 0.981636f, 0.981654f,
+ 0.981673f, 0.981691f, 0.981709f, 0.981727f, 0.981746f, 0.981764f, 0.981782f, 0.981800f,
+ 0.981819f, 0.981837f, 0.981855f, 0.981873f, 0.981891f, 0.981909f, 0.981928f, 0.981946f,
+ 0.981964f, 0.981982f, 0.982000f, 0.982018f, 0.982036f, 0.982054f, 0.982072f, 0.982091f,
+ 0.982109f, 0.982127f, 0.982145f, 0.982163f, 0.982181f, 0.982199f, 0.982217f, 0.982235f,
+ 0.982253f, 0.982271f, 0.982289f, 0.982307f, 0.982325f, 0.982343f, 0.982360f, 0.982378f,
+ 0.982396f, 0.982414f, 0.982432f, 0.982450f, 0.982468f, 0.982486f, 0.982504f, 0.982521f,
+ 0.982539f, 0.982557f, 0.982575f, 0.982593f, 0.982611f, 0.982628f, 0.982646f, 0.982664f,
+ 0.982682f, 0.982699f, 0.982717f, 0.982735f, 0.982753f, 0.982770f, 0.982788f, 0.982806f,
+ 0.982824f, 0.982841f, 0.982859f, 0.982877f, 0.982894f, 0.982912f, 0.982930f, 0.982947f,
+ 0.982965f, 0.982982f, 0.983000f, 0.983018f, 0.983035f, 0.983053f, 0.983070f, 0.983088f,
+ 0.983105f, 0.983123f, 0.983141f, 0.983158f, 0.983176f, 0.983193f, 0.983211f, 0.983228f,
+ 0.983246f, 0.983263f, 0.983281f, 0.983298f, 0.983315f, 0.983333f, 0.983350f, 0.983368f,
+ 0.983385f, 0.983402f, 0.983420f, 0.983437f, 0.983455f, 0.983472f, 0.983489f, 0.983507f,
+ 0.983524f, 0.983541f, 0.983559f, 0.983576f, 0.983593f, 0.983611f, 0.983628f, 0.983645f,
+ 0.983662f, 0.983680f, 0.983697f, 0.983714f, 0.983731f, 0.983749f, 0.983766f, 0.983783f,
+ 0.983800f, 0.983817f, 0.983835f, 0.983852f, 0.983869f, 0.983886f, 0.983903f, 0.983920f,
+ 0.983937f, 0.983955f, 0.983972f, 0.983989f, 0.984006f, 0.984023f, 0.984040f, 0.984057f,
+ 0.984074f, 0.984091f, 0.984108f, 0.984125f, 0.984142f, 0.984159f, 0.984176f, 0.984193f,
+ 0.984210f, 0.984227f, 0.984244f, 0.984261f, 0.984278f, 0.984295f, 0.984312f, 0.984329f,
+ 0.984346f, 0.984362f, 0.984379f, 0.984396f, 0.984413f, 0.984430f, 0.984447f, 0.984464f,
+ 0.984480f, 0.984497f, 0.984514f, 0.984531f, 0.984548f, 0.984564f, 0.984581f, 0.984598f,
+ 0.984615f, 0.984632f, 0.984648f, 0.984665f, 0.984682f, 0.984698f, 0.984715f, 0.984732f,
+ 0.984748f, 0.984765f, 0.984782f, 0.984798f, 0.984815f, 0.984832f, 0.984848f, 0.984865f,
+ 0.984882f, 0.984898f, 0.984915f, 0.984931f, 0.984948f, 0.984965f, 0.984981f, 0.984998f,
+ 0.985014f, 0.985031f, 0.985047f, 0.985064f, 0.985080f, 0.985097f, 0.985113f, 0.985130f,
+ 0.985146f, 0.985163f, 0.985179f, 0.985196f, 0.985212f, 0.985228f, 0.985245f, 0.985261f,
+ 0.985278f, 0.985294f, 0.985310f, 0.985327f, 0.985343f, 0.985359f, 0.985376f, 0.985392f,
+ 0.985408f, 0.985425f, 0.985441f, 0.985457f, 0.985474f, 0.985490f, 0.985506f, 0.985523f,
+ 0.985539f, 0.985555f, 0.985571f, 0.985587f, 0.985604f, 0.985620f, 0.985636f, 0.985652f,
+ 0.985668f, 0.985685f, 0.985701f, 0.985717f, 0.985733f, 0.985749f, 0.985765f, 0.985781f,
+ 0.985798f, 0.985814f, 0.985830f, 0.985846f, 0.985862f, 0.985878f, 0.985894f, 0.985910f,
+ 0.985926f, 0.985942f, 0.985958f, 0.985974f, 0.985990f, 0.986006f, 0.986022f, 0.986038f,
+ 0.986054f, 0.986070f, 0.986086f, 0.986102f, 0.986118f, 0.986134f, 0.986150f, 0.986165f,
+ 0.986181f, 0.986197f, 0.986213f, 0.986229f, 0.986245f, 0.986261f, 0.986276f, 0.986292f,
+ 0.986308f, 0.986324f, 0.986340f, 0.986355f, 0.986371f, 0.986387f, 0.986403f, 0.986419f,
+ 0.986434f, 0.986450f, 0.986466f, 0.986481f, 0.986497f, 0.986513f, 0.986529f, 0.986544f,
+ 0.986560f, 0.986576f, 0.986591f, 0.986607f, 0.986623f, 0.986638f, 0.986654f, 0.986669f,
+ 0.986685f, 0.986701f, 0.986716f, 0.986732f, 0.986747f, 0.986763f, 0.986778f, 0.986794f,
+ 0.986809f, 0.986825f, 0.986840f, 0.986856f, 0.986871f, 0.986887f, 0.986902f, 0.986918f,
+ 0.986933f, 0.986949f, 0.986964f, 0.986980f, 0.986995f, 0.987010f, 0.987026f, 0.987041f,
+ 0.987057f, 0.987072f, 0.987087f, 0.987103f, 0.987118f, 0.987133f, 0.987149f, 0.987164f,
+ 0.987179f, 0.987195f, 0.987210f, 0.987225f, 0.987240f, 0.987256f, 0.987271f, 0.987286f,
+ 0.987301f, 0.987317f, 0.987332f, 0.987347f, 0.987362f, 0.987377f, 0.987393f, 0.987408f,
+ 0.987423f, 0.987438f, 0.987453f, 0.987468f, 0.987484f, 0.987499f, 0.987514f, 0.987529f,
+ 0.987544f, 0.987559f, 0.987574f, 0.987589f, 0.987604f, 0.987619f, 0.987634f, 0.987649f,
+ 0.987664f, 0.987679f, 0.987694f, 0.987709f, 0.987724f, 0.987739f, 0.987754f, 0.987769f,
+ 0.987784f, 0.987799f, 0.987814f, 0.987829f, 0.987844f, 0.987859f, 0.987874f, 0.987889f,
+ 0.987903f, 0.987918f, 0.987933f, 0.987948f, 0.987963f, 0.987978f, 0.987992f, 0.988007f,
+ 0.988022f, 0.988037f, 0.988052f, 0.988066f, 0.988081f, 0.988096f, 0.988111f, 0.988125f,
+ 0.988140f, 0.988155f, 0.988169f, 0.988184f, 0.988199f, 0.988214f, 0.988228f, 0.988243f,
+ 0.988258f, 0.988272f, 0.988287f, 0.988301f, 0.988316f, 0.988331f, 0.988345f, 0.988360f,
+ 0.988374f, 0.988389f, 0.988404f, 0.988418f, 0.988433f, 0.988447f, 0.988462f, 0.988476f,
+ 0.988491f, 0.988505f, 0.988520f, 0.988534f, 0.988549f, 0.988563f, 0.988578f, 0.988592f,
+ 0.988607f, 0.988621f, 0.988635f, 0.988650f, 0.988664f, 0.988679f, 0.988693f, 0.988707f,
+ 0.988722f, 0.988736f, 0.988750f, 0.988765f, 0.988779f, 0.988793f, 0.988808f, 0.988822f,
+ 0.988836f, 0.988851f, 0.988865f, 0.988879f, 0.988893f, 0.988908f, 0.988922f, 0.988936f,
+ 0.988950f, 0.988964f, 0.988979f, 0.988993f, 0.989007f, 0.989021f, 0.989035f, 0.989050f,
+ 0.989064f, 0.989078f, 0.989092f, 0.989106f, 0.989120f, 0.989134f, 0.989148f, 0.989162f,
+ 0.989177f, 0.989191f, 0.989205f, 0.989219f, 0.989233f, 0.989247f, 0.989261f, 0.989275f,
+ 0.989289f, 0.989303f, 0.989317f, 0.989331f, 0.989345f, 0.989359f, 0.989373f, 0.989386f,
+ 0.989400f, 0.989414f, 0.989428f, 0.989442f, 0.989456f, 0.989470f, 0.989484f, 0.989498f,
+ 0.989511f, 0.989525f, 0.989539f, 0.989553f, 0.989567f, 0.989581f, 0.989594f, 0.989608f,
+ 0.989622f, 0.989636f, 0.989650f, 0.989663f, 0.989677f, 0.989691f, 0.989704f, 0.989718f,
+ 0.989732f, 0.989746f, 0.989759f, 0.989773f, 0.989787f, 0.989800f, 0.989814f, 0.989828f,
+ 0.989841f, 0.989855f, 0.989869f, 0.989882f, 0.989896f, 0.989909f, 0.989923f, 0.989936f,
+ 0.989950f, 0.989964f, 0.989977f, 0.989991f, 0.990004f, 0.990018f, 0.990031f, 0.990045f,
+ 0.990058f, 0.990072f, 0.990085f, 0.990099f, 0.990112f, 0.990126f, 0.990139f, 0.990152f,
+ 0.990166f, 0.990179f, 0.990193f, 0.990206f, 0.990219f, 0.990233f, 0.990246f, 0.990259f,
+ 0.990273f, 0.990286f, 0.990299f, 0.990313f, 0.990326f, 0.990339f, 0.990353f, 0.990366f,
+ 0.990379f, 0.990393f, 0.990406f, 0.990419f, 0.990432f, 0.990445f, 0.990459f, 0.990472f,
+ 0.990485f, 0.990498f, 0.990511f, 0.990525f, 0.990538f, 0.990551f, 0.990564f, 0.990577f,
+ 0.990590f, 0.990603f, 0.990617f, 0.990630f, 0.990643f, 0.990656f, 0.990669f, 0.990682f,
+ 0.990695f, 0.990708f, 0.990721f, 0.990734f, 0.990747f, 0.990760f, 0.990773f, 0.990786f,
+ 0.990799f, 0.990812f, 0.990825f, 0.990838f, 0.990851f, 0.990864f, 0.990877f, 0.990890f,
+ 0.990903f, 0.990916f, 0.990928f, 0.990941f, 0.990954f, 0.990967f, 0.990980f, 0.990993f,
+ 0.991006f, 0.991018f, 0.991031f, 0.991044f, 0.991057f, 0.991070f, 0.991082f, 0.991095f,
+ 0.991108f, 0.991121f, 0.991133f, 0.991146f, 0.991159f, 0.991172f, 0.991184f, 0.991197f,
+ 0.991210f, 0.991222f, 0.991235f, 0.991248f, 0.991260f, 0.991273f, 0.991286f, 0.991298f,
+ 0.991311f, 0.991323f, 0.991336f, 0.991349f, 0.991361f, 0.991374f, 0.991386f, 0.991399f,
+ 0.991411f, 0.991424f, 0.991437f, 0.991449f, 0.991462f, 0.991474f, 0.991487f, 0.991499f,
+ 0.991511f, 0.991524f, 0.991536f, 0.991549f, 0.991561f, 0.991574f, 0.991586f, 0.991598f,
+ 0.991611f, 0.991623f, 0.991636f, 0.991648f, 0.991660f, 0.991673f, 0.991685f, 0.991697f,
+ 0.991710f, 0.991722f, 0.991734f, 0.991747f, 0.991759f, 0.991771f, 0.991783f, 0.991796f,
+ 0.991808f, 0.991820f, 0.991832f, 0.991845f, 0.991857f, 0.991869f, 0.991881f, 0.991894f,
+ 0.991906f, 0.991918f, 0.991930f, 0.991942f, 0.991954f, 0.991966f, 0.991979f, 0.991991f,
+ 0.992003f, 0.992015f, 0.992027f, 0.992039f, 0.992051f, 0.992063f, 0.992075f, 0.992087f,
+ 0.992099f, 0.992111f, 0.992123f, 0.992135f, 0.992147f, 0.992159f, 0.992171f, 0.992183f,
+ 0.992195f, 0.992207f, 0.992219f, 0.992231f, 0.992243f, 0.992255f, 0.992267f, 0.992279f,
+ 0.992291f, 0.992302f, 0.992314f, 0.992326f, 0.992338f, 0.992350f, 0.992362f, 0.992374f,
+ 0.992385f, 0.992397f, 0.992409f, 0.992421f, 0.992433f, 0.992444f, 0.992456f, 0.992468f,
+ 0.992480f, 0.992491f, 0.992503f, 0.992515f, 0.992526f, 0.992538f, 0.992550f, 0.992561f,
+ 0.992573f, 0.992585f, 0.992596f, 0.992608f, 0.992620f, 0.992631f, 0.992643f, 0.992655f,
+ 0.992666f, 0.992678f, 0.992689f, 0.992701f, 0.992712f, 0.992724f, 0.992736f, 0.992747f,
+ 0.992759f, 0.992770f, 0.992782f, 0.992793f, 0.992805f, 0.992816f, 0.992828f, 0.992839f,
+ 0.992850f, 0.992862f, 0.992873f, 0.992885f, 0.992896f, 0.992908f, 0.992919f, 0.992930f,
+ 0.992942f, 0.992953f, 0.992964f, 0.992976f, 0.992987f, 0.992998f, 0.993010f, 0.993021f,
+ 0.993032f, 0.993044f, 0.993055f, 0.993066f, 0.993077f, 0.993089f, 0.993100f, 0.993111f,
+ 0.993122f, 0.993134f, 0.993145f, 0.993156f, 0.993167f, 0.993178f, 0.993190f, 0.993201f,
+ 0.993212f, 0.993223f, 0.993234f, 0.993245f, 0.993257f, 0.993268f, 0.993279f, 0.993290f,
+ 0.993301f, 0.993312f, 0.993323f, 0.993334f, 0.993345f, 0.993356f, 0.993367f, 0.993378f,
+ 0.993389f, 0.993400f, 0.993411f, 0.993422f, 0.993433f, 0.993444f, 0.993455f, 0.993466f,
+ 0.993477f, 0.993488f, 0.993499f, 0.993510f, 0.993521f, 0.993532f, 0.993542f, 0.993553f,
+ 0.993564f, 0.993575f, 0.993586f, 0.993597f, 0.993608f, 0.993618f, 0.993629f, 0.993640f,
+ 0.993651f, 0.993662f, 0.993672f, 0.993683f, 0.993694f, 0.993705f, 0.993715f, 0.993726f,
+ 0.993737f, 0.993747f, 0.993758f, 0.993769f, 0.993779f, 0.993790f, 0.993801f, 0.993811f,
+ 0.993822f, 0.993833f, 0.993843f, 0.993854f, 0.993865f, 0.993875f, 0.993886f, 0.993896f,
+ 0.993907f, 0.993918f, 0.993928f, 0.993939f, 0.993949f, 0.993960f, 0.993970f, 0.993981f,
+ 0.993991f, 0.994002f, 0.994012f, 0.994023f, 0.994033f, 0.994044f, 0.994054f, 0.994064f,
+ 0.994075f, 0.994085f, 0.994096f, 0.994106f, 0.994116f, 0.994127f, 0.994137f, 0.994148f,
+ 0.994158f, 0.994168f, 0.994179f, 0.994189f, 0.994199f, 0.994210f, 0.994220f, 0.994230f,
+ 0.994240f, 0.994251f, 0.994261f, 0.994271f, 0.994281f, 0.994292f, 0.994302f, 0.994312f,
+ 0.994322f, 0.994333f, 0.994343f, 0.994353f, 0.994363f, 0.994373f, 0.994383f, 0.994394f,
+ 0.994404f, 0.994414f, 0.994424f, 0.994434f, 0.994444f, 0.994454f, 0.994464f, 0.994474f,
+ 0.994484f, 0.994494f, 0.994505f, 0.994515f, 0.994525f, 0.994535f, 0.994545f, 0.994555f,
+ 0.994565f, 0.994575f, 0.994585f, 0.994594f, 0.994604f, 0.994614f, 0.994624f, 0.994634f,
+ 0.994644f, 0.994654f, 0.994664f, 0.994674f, 0.994684f, 0.994694f, 0.994703f, 0.994713f,
+ 0.994723f, 0.994733f, 0.994743f, 0.994753f, 0.994762f, 0.994772f, 0.994782f, 0.994792f,
+ 0.994802f, 0.994811f, 0.994821f, 0.994831f, 0.994841f, 0.994850f, 0.994860f, 0.994870f,
+ 0.994879f, 0.994889f, 0.994899f, 0.994908f, 0.994918f, 0.994928f, 0.994937f, 0.994947f,
+ 0.994957f, 0.994966f, 0.994976f, 0.994985f, 0.994995f, 0.995005f, 0.995014f, 0.995024f,
+ 0.995033f, 0.995043f, 0.995052f, 0.995062f, 0.995071f, 0.995081f, 0.995090f, 0.995100f,
+ 0.995109f, 0.995119f, 0.995128f, 0.995138f, 0.995147f, 0.995156f, 0.995166f, 0.995175f,
+ 0.995185f, 0.995194f, 0.995203f, 0.995213f, 0.995222f, 0.995232f, 0.995241f, 0.995250f,
+ 0.995260f, 0.995269f, 0.995278f, 0.995288f, 0.995297f, 0.995306f, 0.995315f, 0.995325f,
+ 0.995334f, 0.995343f, 0.995352f, 0.995362f, 0.995371f, 0.995380f, 0.995389f, 0.995398f,
+ 0.995408f, 0.995417f, 0.995426f, 0.995435f, 0.995444f, 0.995453f, 0.995463f, 0.995472f,
+ 0.995481f, 0.995490f, 0.995499f, 0.995508f, 0.995517f, 0.995526f, 0.995535f, 0.995544f,
+ 0.995553f, 0.995562f, 0.995571f, 0.995580f, 0.995589f, 0.995598f, 0.995607f, 0.995616f,
+ 0.995625f, 0.995634f, 0.995643f, 0.995652f, 0.995661f, 0.995670f, 0.995679f, 0.995688f,
+ 0.995697f, 0.995705f, 0.995714f, 0.995723f, 0.995732f, 0.995741f, 0.995750f, 0.995759f,
+ 0.995767f, 0.995776f, 0.995785f, 0.995794f, 0.995803f, 0.995811f, 0.995820f, 0.995829f,
+ 0.995838f, 0.995846f, 0.995855f, 0.995864f, 0.995872f, 0.995881f, 0.995890f, 0.995899f,
+ 0.995907f, 0.995916f, 0.995925f, 0.995933f, 0.995942f, 0.995950f, 0.995959f, 0.995968f,
+ 0.995976f, 0.995985f, 0.995993f, 0.996002f, 0.996011f, 0.996019f, 0.996028f, 0.996036f,
+ 0.996045f, 0.996053f, 0.996062f, 0.996070f, 0.996079f, 0.996087f, 0.996096f, 0.996104f,
+ 0.996113f, 0.996121f, 0.996129f, 0.996138f, 0.996146f, 0.996155f, 0.996163f, 0.996171f,
+ 0.996180f, 0.996188f, 0.996197f, 0.996205f, 0.996213f, 0.996222f, 0.996230f, 0.996238f,
+ 0.996247f, 0.996255f, 0.996263f, 0.996271f, 0.996280f, 0.996288f, 0.996296f, 0.996304f,
+ 0.996313f, 0.996321f, 0.996329f, 0.996337f, 0.996345f, 0.996354f, 0.996362f, 0.996370f,
+ 0.996378f, 0.996386f, 0.996394f, 0.996403f, 0.996411f, 0.996419f, 0.996427f, 0.996435f,
+ 0.996443f, 0.996451f, 0.996459f, 0.996467f, 0.996475f, 0.996483f, 0.996491f, 0.996499f,
+ 0.996507f, 0.996515f, 0.996523f, 0.996531f, 0.996539f, 0.996547f, 0.996555f, 0.996563f,
+ 0.996571f, 0.996579f, 0.996587f, 0.996595f, 0.996603f, 0.996611f, 0.996619f, 0.996626f,
+ 0.996634f, 0.996642f, 0.996650f, 0.996658f, 0.996666f, 0.996674f, 0.996681f, 0.996689f,
+ 0.996697f, 0.996705f, 0.996712f, 0.996720f, 0.996728f, 0.996736f, 0.996743f, 0.996751f,
+ 0.996759f, 0.996767f, 0.996774f, 0.996782f, 0.996790f, 0.996797f, 0.996805f, 0.996813f,
+ 0.996820f, 0.996828f, 0.996836f, 0.996843f, 0.996851f, 0.996858f, 0.996866f, 0.996874f,
+ 0.996881f, 0.996889f, 0.996896f, 0.996904f, 0.996911f, 0.996919f, 0.996926f, 0.996934f,
+ 0.996941f, 0.996949f, 0.996956f, 0.996964f, 0.996971f, 0.996979f, 0.996986f, 0.996994f,
+ 0.997001f, 0.997008f, 0.997016f, 0.997023f, 0.997031f, 0.997038f, 0.997045f, 0.997053f,
+ 0.997060f, 0.997067f, 0.997075f, 0.997082f, 0.997089f, 0.997097f, 0.997104f, 0.997111f,
+ 0.997119f, 0.997126f, 0.997133f, 0.997140f, 0.997148f, 0.997155f, 0.997162f, 0.997169f,
+ 0.997176f, 0.997184f, 0.997191f, 0.997198f, 0.997205f, 0.997212f, 0.997219f, 0.997227f,
+ 0.997234f, 0.997241f, 0.997248f, 0.997255f, 0.997262f, 0.997269f, 0.997276f, 0.997283f,
+ 0.997290f, 0.997298f, 0.997305f, 0.997312f, 0.997319f, 0.997326f, 0.997333f, 0.997340f,
+ 0.997347f, 0.997354f, 0.997361f, 0.997368f, 0.997374f, 0.997381f, 0.997388f, 0.997395f,
+ 0.997402f, 0.997409f, 0.997416f, 0.997423f, 0.997430f, 0.997437f, 0.997443f, 0.997450f,
+ 0.997457f, 0.997464f, 0.997471f, 0.997478f, 0.997484f, 0.997491f, 0.997498f, 0.997505f,
+ 0.997511f, 0.997518f, 0.997525f, 0.997532f, 0.997538f, 0.997545f, 0.997552f, 0.997559f,
+ 0.997565f, 0.997572f, 0.997579f, 0.997585f, 0.997592f, 0.997599f, 0.997605f, 0.997612f,
+ 0.997618f, 0.997625f, 0.997632f, 0.997638f, 0.997645f, 0.997651f, 0.997658f, 0.997665f,
+ 0.997671f, 0.997678f, 0.997684f, 0.997691f, 0.997697f, 0.997704f, 0.997710f, 0.997717f,
+ 0.997723f, 0.997730f, 0.997736f, 0.997742f, 0.997749f, 0.997755f, 0.997762f, 0.997768f,
+ 0.997774f, 0.997781f, 0.997787f, 0.997794f, 0.997800f, 0.997806f, 0.997813f, 0.997819f,
+ 0.997825f, 0.997832f, 0.997838f, 0.997844f, 0.997851f, 0.997857f, 0.997863f, 0.997869f,
+ 0.997876f, 0.997882f, 0.997888f, 0.997894f, 0.997901f, 0.997907f, 0.997913f, 0.997919f,
+ 0.997925f, 0.997931f, 0.997938f, 0.997944f, 0.997950f, 0.997956f, 0.997962f, 0.997968f,
+ 0.997974f, 0.997980f, 0.997987f, 0.997993f, 0.997999f, 0.998005f, 0.998011f, 0.998017f,
+ 0.998023f, 0.998029f, 0.998035f, 0.998041f, 0.998047f, 0.998053f, 0.998059f, 0.998065f,
+ 0.998071f, 0.998077f, 0.998083f, 0.998089f, 0.998094f, 0.998100f, 0.998106f, 0.998112f,
+ 0.998118f, 0.998124f, 0.998130f, 0.998136f, 0.998142f, 0.998147f, 0.998153f, 0.998159f,
+ 0.998165f, 0.998171f, 0.998176f, 0.998182f, 0.998188f, 0.998194f, 0.998200f, 0.998205f,
+ 0.998211f, 0.998217f, 0.998222f, 0.998228f, 0.998234f, 0.998240f, 0.998245f, 0.998251f,
+ 0.998257f, 0.998262f, 0.998268f, 0.998273f, 0.998279f, 0.998285f, 0.998290f, 0.998296f,
+ 0.998302f, 0.998307f, 0.998313f, 0.998318f, 0.998324f, 0.998329f, 0.998335f, 0.998340f,
+ 0.998346f, 0.998351f, 0.998357f, 0.998362f, 0.998368f, 0.998373f, 0.998379f, 0.998384f,
+ 0.998390f, 0.998395f, 0.998401f, 0.998406f, 0.998411f, 0.998417f, 0.998422f, 0.998428f,
+ 0.998433f, 0.998438f, 0.998444f, 0.998449f, 0.998454f, 0.998460f, 0.998465f, 0.998470f,
+ 0.998476f, 0.998481f, 0.998486f, 0.998491f, 0.998497f, 0.998502f, 0.998507f, 0.998512f,
+ 0.998518f, 0.998523f, 0.998528f, 0.998533f, 0.998538f, 0.998544f, 0.998549f, 0.998554f,
+ 0.998559f, 0.998564f, 0.998569f, 0.998574f, 0.998580f, 0.998585f, 0.998590f, 0.998595f,
+ 0.998600f, 0.998605f, 0.998610f, 0.998615f, 0.998620f, 0.998625f, 0.998630f, 0.998635f,
+ 0.998640f, 0.998645f, 0.998650f, 0.998655f, 0.998660f, 0.998665f, 0.998670f, 0.998675f,
+ 0.998680f, 0.998685f, 0.998690f, 0.998695f, 0.998700f, 0.998704f, 0.998709f, 0.998714f,
+ 0.998719f, 0.998724f, 0.998729f, 0.998734f, 0.998738f, 0.998743f, 0.998748f, 0.998753f,
+ 0.998758f, 0.998762f, 0.998767f, 0.998772f, 0.998777f, 0.998781f, 0.998786f, 0.998791f,
+ 0.998795f, 0.998800f, 0.998805f, 0.998810f, 0.998814f, 0.998819f, 0.998824f, 0.998828f,
+ 0.998833f, 0.998837f, 0.998842f, 0.998847f, 0.998851f, 0.998856f, 0.998860f, 0.998865f,
+ 0.998870f, 0.998874f, 0.998879f, 0.998883f, 0.998888f, 0.998892f, 0.998897f, 0.998901f,
+ 0.998906f, 0.998910f, 0.998915f, 0.998919f, 0.998924f, 0.998928f, 0.998932f, 0.998937f,
+ 0.998941f, 0.998946f, 0.998950f, 0.998954f, 0.998959f, 0.998963f, 0.998968f, 0.998972f,
+ 0.998976f, 0.998981f, 0.998985f, 0.998989f, 0.998994f, 0.998998f, 0.999002f, 0.999006f,
+ 0.999011f, 0.999015f, 0.999019f, 0.999023f, 0.999028f, 0.999032f, 0.999036f, 0.999040f,
+ 0.999044f, 0.999049f, 0.999053f, 0.999057f, 0.999061f, 0.999065f, 0.999069f, 0.999074f,
+ 0.999078f, 0.999082f, 0.999086f, 0.999090f, 0.999094f, 0.999098f, 0.999102f, 0.999106f,
+ 0.999110f, 0.999114f, 0.999118f, 0.999122f, 0.999126f, 0.999130f, 0.999134f, 0.999138f,
+ 0.999142f, 0.999146f, 0.999150f, 0.999154f, 0.999158f, 0.999162f, 0.999166f, 0.999170f,
+ 0.999174f, 0.999178f, 0.999182f, 0.999186f, 0.999189f, 0.999193f, 0.999197f, 0.999201f,
+ 0.999205f, 0.999209f, 0.999212f, 0.999216f, 0.999220f, 0.999224f, 0.999228f, 0.999231f,
+ 0.999235f, 0.999239f, 0.999243f, 0.999246f, 0.999250f, 0.999254f, 0.999257f, 0.999261f,
+ 0.999265f, 0.999268f, 0.999272f, 0.999276f, 0.999279f, 0.999283f, 0.999287f, 0.999290f,
+ 0.999294f, 0.999297f, 0.999301f, 0.999305f, 0.999308f, 0.999312f, 0.999315f, 0.999319f,
+ 0.999322f, 0.999326f, 0.999329f, 0.999333f, 0.999336f, 0.999340f, 0.999343f, 0.999347f,
+ 0.999350f, 0.999354f, 0.999357f, 0.999361f, 0.999364f, 0.999367f, 0.999371f, 0.999374f,
+ 0.999378f, 0.999381f, 0.999384f, 0.999388f, 0.999391f, 0.999394f, 0.999398f, 0.999401f,
+ 0.999404f, 0.999408f, 0.999411f, 0.999414f, 0.999418f, 0.999421f, 0.999424f, 0.999427f,
+ 0.999431f, 0.999434f, 0.999437f, 0.999440f, 0.999443f, 0.999447f, 0.999450f, 0.999453f,
+ 0.999456f, 0.999459f, 0.999462f, 0.999466f, 0.999469f, 0.999472f, 0.999475f, 0.999478f,
+ 0.999481f, 0.999484f, 0.999487f, 0.999490f, 0.999493f, 0.999497f, 0.999500f, 0.999503f,
+ 0.999506f, 0.999509f, 0.999512f, 0.999515f, 0.999518f, 0.999521f, 0.999524f, 0.999527f,
+ 0.999529f, 0.999532f, 0.999535f, 0.999538f, 0.999541f, 0.999544f, 0.999547f, 0.999550f,
+ 0.999553f, 0.999556f, 0.999558f, 0.999561f, 0.999564f, 0.999567f, 0.999570f, 0.999573f,
+ 0.999575f, 0.999578f, 0.999581f, 0.999584f, 0.999586f, 0.999589f, 0.999592f, 0.999595f,
+ 0.999597f, 0.999600f, 0.999603f, 0.999605f, 0.999608f, 0.999611f, 0.999614f, 0.999616f,
+ 0.999619f, 0.999621f, 0.999624f, 0.999627f, 0.999629f, 0.999632f, 0.999635f, 0.999637f,
+ 0.999640f, 0.999642f, 0.999645f, 0.999647f, 0.999650f, 0.999652f, 0.999655f, 0.999658f,
+ 0.999660f, 0.999663f, 0.999665f, 0.999667f, 0.999670f, 0.999672f, 0.999675f, 0.999677f,
+ 0.999680f, 0.999682f, 0.999685f, 0.999687f, 0.999689f, 0.999692f, 0.999694f, 0.999696f,
+ 0.999699f, 0.999701f, 0.999704f, 0.999706f, 0.999708f, 0.999710f, 0.999713f, 0.999715f,
+ 0.999717f, 0.999720f, 0.999722f, 0.999724f, 0.999726f, 0.999729f, 0.999731f, 0.999733f,
+ 0.999735f, 0.999738f, 0.999740f, 0.999742f, 0.999744f, 0.999746f, 0.999748f, 0.999750f,
+ 0.999753f, 0.999755f, 0.999757f, 0.999759f, 0.999761f, 0.999763f, 0.999765f, 0.999767f,
+ 0.999769f, 0.999771f, 0.999774f, 0.999776f, 0.999778f, 0.999780f, 0.999782f, 0.999784f,
+ 0.999786f, 0.999788f, 0.999790f, 0.999792f, 0.999793f, 0.999795f, 0.999797f, 0.999799f,
+ 0.999801f, 0.999803f, 0.999805f, 0.999807f, 0.999809f, 0.999811f, 0.999812f, 0.999814f,
+ 0.999816f, 0.999818f, 0.999820f, 0.999822f, 0.999823f, 0.999825f, 0.999827f, 0.999829f,
+ 0.999831f, 0.999832f, 0.999834f, 0.999836f, 0.999838f, 0.999839f, 0.999841f, 0.999843f,
+ 0.999844f, 0.999846f, 0.999848f, 0.999849f, 0.999851f, 0.999853f, 0.999854f, 0.999856f,
+ 0.999858f, 0.999859f, 0.999861f, 0.999862f, 0.999864f, 0.999866f, 0.999867f, 0.999869f,
+ 0.999870f, 0.999872f, 0.999873f, 0.999875f, 0.999876f, 0.999878f, 0.999879f, 0.999881f,
+ 0.999882f, 0.999884f, 0.999885f, 0.999887f, 0.999888f, 0.999890f, 0.999891f, 0.999892f,
+ 0.999894f, 0.999895f, 0.999897f, 0.999898f, 0.999899f, 0.999901f, 0.999902f, 0.999903f,
+ 0.999905f, 0.999906f, 0.999907f, 0.999909f, 0.999910f, 0.999911f, 0.999913f, 0.999914f,
+ 0.999915f, 0.999916f, 0.999917f, 0.999919f, 0.999920f, 0.999921f, 0.999922f, 0.999924f,
+ 0.999925f, 0.999926f, 0.999927f, 0.999928f, 0.999929f, 0.999930f, 0.999932f, 0.999933f,
+ 0.999934f, 0.999935f, 0.999936f, 0.999937f, 0.999938f, 0.999939f, 0.999940f, 0.999941f,
+ 0.999942f, 0.999943f, 0.999944f, 0.999945f, 0.999946f, 0.999947f, 0.999948f, 0.999949f,
+ 0.999950f, 0.999951f, 0.999952f, 0.999953f, 0.999954f, 0.999955f, 0.999956f, 0.999957f,
+ 0.999958f, 0.999959f, 0.999959f, 0.999960f, 0.999961f, 0.999962f, 0.999963f, 0.999964f,
+ 0.999964f, 0.999965f, 0.999966f, 0.999967f, 0.999968f, 0.999968f, 0.999969f, 0.999970f,
+ 0.999971f, 0.999971f, 0.999972f, 0.999973f, 0.999973f, 0.999974f, 0.999975f, 0.999976f,
+ 0.999976f, 0.999977f, 0.999977f, 0.999978f, 0.999979f, 0.999979f, 0.999980f, 0.999981f,
+ 0.999981f, 0.999982f, 0.999982f, 0.999983f, 0.999983f, 0.999984f, 0.999985f, 0.999985f,
+ 0.999986f, 0.999986f, 0.999987f, 0.999987f, 0.999988f, 0.999988f, 0.999988f, 0.999989f,
+ 0.999989f, 0.999990f, 0.999990f, 0.999991f, 0.999991f, 0.999991f, 0.999992f, 0.999992f,
+ 0.999993f, 0.999993f, 0.999993f, 0.999994f, 0.999994f, 0.999994f, 0.999995f, 0.999995f,
+ 0.999995f, 0.999996f, 0.999996f, 0.999996f, 0.999996f, 0.999997f, 0.999997f, 0.999997f,
+ 0.999997f, 0.999998f, 0.999998f, 0.999998f, 0.999998f, 0.999998f, 0.999999f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999999f, 0.999999f, 0.999999f, 0.999999f, 1.000000f, 1.000000f,
+ 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f
+};
+
+static const float *cosTables[17] = {
+ 0 , 0 , 0 , 0 ,
+ cosTable16 , cosTable32 , cosTable64 , cosTable128 ,
+ cosTable256 , cosTable512 , cosTable1024 , cosTable2048 ,
+ cosTable4096, cosTable8192, cosTable16384, cosTable32768,
+ cosTable65536
+};
+
+const float *getCosineTable(int bits) {
+ assert((bits >= 4) && (bits <= 16));
+
+ return cosTables[bits];
+}
+
+} // End of namespace Common
diff --git a/common/cosinetables.h b/common/cosinetables.h
new file mode 100644
index 0000000000..5744d21569
--- /dev/null
+++ b/common/cosinetables.h
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef COMMON_COSINETABLES_H
+#define COMMON_COSINETABLES_H
+
+namespace Common {
+
+/**
+ * Get a cosine table with the specified bit precision
+ *
+ * @param bits Precision of the table, which must be in range [4, 16]
+ */
+const float *getCosineTable(int bits);
+
+} // End of namespace Common
+
+#endif // COMMON_COSINETABLES_H
diff --git a/common/dcl.cpp b/common/dcl.cpp
index b75f7f3fa6..1879be992d 100644
--- a/common/dcl.cpp
+++ b/common/dcl.cpp
@@ -30,7 +30,7 @@ namespace Common {
class DecompressorDCL {
public:
- bool unpack(Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
+ bool unpack(ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
protected:
/**
@@ -41,7 +41,7 @@ protected:
* @param nUnpacket size of unpacked data
* @return 0 on success, non-zero on error
*/
- void init(Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
+ void init(ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked);
/**
* Get a number of bits from _src stream, starting with the least
@@ -73,12 +73,11 @@ protected:
uint32 _szUnpacked; ///< size of the decompressed data
uint32 _dwRead; ///< number of bytes read from _src
uint32 _dwWrote; ///< number of bytes written to _dest
- Common::ReadStream *_src;
+ ReadStream *_src;
byte *_dest;
};
-void DecompressorDCL::init(Common::ReadStream *src, byte *dest, uint32 nPacked,
- uint32 nUnpacked) {
+void DecompressorDCL::init(ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked) {
_src = src;
_dest = dest;
_szPacked = nPacked;
@@ -333,7 +332,7 @@ int DecompressorDCL::huffman_lookup(const int *tree) {
#define DCL_BINARY_MODE 0
#define DCL_ASCII_MODE 1
-bool DecompressorDCL::unpack(Common::ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked) {
+bool DecompressorDCL::unpack(ReadStream *src, byte *dest, uint32 nPacked, uint32 nUnpacked) {
init(src, dest, nPacked, nUnpacked);
int value;
diff --git a/common/dcl.h b/common/dcl.h
index 12c4e12772..78ffa631ed 100644
--- a/common/dcl.h
+++ b/common/dcl.h
@@ -52,4 +52,3 @@ SeekableReadStream *decompressDCL(ReadStream *src, uint32 packedSize, uint32 unp
} // End of namespace Common
#endif
-
diff --git a/common/dct.cpp b/common/dct.cpp
new file mode 100644
index 0000000000..6525c727ae
--- /dev/null
+++ b/common/dct.cpp
@@ -0,0 +1,208 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)RDFT code which is in turn
+// Based upon the (I)DCT code in FFmpeg
+// Copyright (c) 2009 Peter Ross <pross@xvid.org>
+// Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
+// Copyright (c) 2010 Vitor Sessak
+
+#include "common/cosinetables.h"
+#include "common/dct.h"
+
+namespace Common {
+
+DCT::DCT(int bits, TransformType trans) : _bits(bits), _trans(trans), _rdft(0) {
+ int n = 1 << _bits;
+
+ _tCos = getCosineTable(_bits + 2);
+
+ _csc2 = new float[n / 2];
+
+ _rdft = new RDFT(_bits, (_trans == DCT_III) ? RDFT::IDFT_C2R : RDFT::DFT_R2C);
+
+ for (int i = 0; i < (n / 2); i++)
+ _csc2[i] = 0.5 / sin((M_PI / (2 * n) * (2 * i + 1)));
+}
+
+DCT::~DCT() {
+ delete _rdft;
+ delete[] _csc2;
+}
+
+void DCT::calc(float *data) {
+ switch (_trans) {
+ case DCT_I:
+ calcDCTI(data);
+ break;
+ case DCT_II:
+ calcDCTII(data);
+ break;
+ case DCT_III:
+ calcDCTIII(data);
+ break;
+ case DST_I:
+ calcDSTI(data);
+ break;
+ }
+}
+
+/* sin((M_PI * x / (2*n)) */
+#define SIN(n,x) (_tCos[(n) - (x)])
+/* cos((M_PI * x / (2*n)) */
+#define COS(n,x) (_tCos[x])
+
+void DCT::calcDCTI(float *data) {
+ int n = 1 << _bits;
+
+ float next = -0.5 * (data[0] - data[n]);
+
+ for (int i = 0; i < (n / 2); i++) {
+ float tmp1 = data[i ];
+ float tmp2 = data[n - i];
+
+ float s = SIN(n, 2 * i);
+ float c = COS(n, 2 * i);
+
+ c *= tmp1 - tmp2;
+ s *= tmp1 - tmp2;
+
+ next += c;
+
+ tmp1 = (tmp1 + tmp2) * 0.5;
+
+ data[i ] = tmp1 - s;
+ data[n - i] = tmp1 + s;
+ }
+
+ _rdft->calc(data);
+
+ data[n] = data[1];
+ data[1] = next;
+
+ for (int i = 3; i <= n; i += 2)
+ data[i] = data[i - 2] - data[i];
+}
+
+void DCT::calcDCTII(float *data) {
+ int n = 1 << _bits;
+
+ for (int i = 0; i < (n / 2); i++) {
+ float tmp1 = data[i ];
+ float tmp2 = data[n - i - 1];
+
+ float s = SIN(n, 2 * i + 1);
+
+ s *= tmp1 - tmp2;
+
+ tmp1 = (tmp1 + tmp2) * 0.5;
+
+ data[i ] = tmp1 + s;
+ data[n - i - 1] = tmp1 - s;
+ }
+
+ _rdft->calc(data);
+
+ float next = data[1] * 0.5;
+
+ data[1] *= -1;
+
+ for (int i = n - 2; i >= 0; i -= 2) {
+ float inr = data[i ];
+ float ini = data[i + 1];
+
+ float c = COS(n, i);
+ float s = SIN(n, i);
+
+ data[i ] = c * inr + s * ini;
+ data[i + 1] = next;
+
+ next += s * inr - c * ini;
+ }
+}
+
+void DCT::calcDCTIII(float *data) {
+ int n = 1 << _bits;
+
+ float next = data[n - 1];
+ float inv_n = 1.0 / n;
+
+ for (int i = n - 2; i >= 2; i -= 2) {
+ float val1 = data[i ];
+ float val2 = data[i - 1] - data[i + 1];
+
+ float c = COS(n, i);
+ float s = SIN(n, i);
+
+ data[i ] = c * val1 + s * val2;
+ data[i + 1] = s * val1 - c * val2;
+ }
+
+ data[1] = 2 * next;
+
+ _rdft->calc(data);
+
+ for (int i = 0; i < (n / 2); i++) {
+ float tmp1 = data[i ] * inv_n;
+ float tmp2 = data[n - i - 1] * inv_n;
+
+ float csc = _csc2[i] * (tmp1 - tmp2);
+
+ tmp1 += tmp2;
+
+ data[i ] = tmp1 + csc;
+ data[n - i - 1] = tmp1 - csc;
+ }
+}
+
+void DCT::calcDSTI(float *data) {
+ int n = 1 << _bits;
+
+ data[0] = 0;
+
+ for (int i = 1; i < (n / 2); i++) {
+ float tmp1 = data[i ];
+ float tmp2 = data[n - i];
+ float s = SIN(n, 2 * i);
+
+ s *= tmp1 + tmp2;
+ tmp1 = (tmp1 - tmp2) * 0.5;
+
+ data[i ] = s + tmp1;
+ data[n - i] = s - tmp1;
+ }
+
+ data[n / 2] *= 2;
+
+ _rdft->calc(data);
+
+ data[0] *= 0.5;
+
+ for (int i = 1; i < (n - 2); i += 2) {
+ data[i + 1] += data[i - 1];
+ data[i ] = -data[i + 2];
+ }
+
+ data[n - 1] = 0;
+}
+
+} // End of namespace Common
diff --git a/common/dct.h b/common/dct.h
new file mode 100644
index 0000000000..2c8c5129b8
--- /dev/null
+++ b/common/dct.h
@@ -0,0 +1,76 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)RDFT code which is in turn
+// Based upon the (I)DCT code in FFmpeg
+// Copyright (c) 2009 Peter Ross <pross@xvid.org>
+// Copyright (c) 2010 Alex Converse <alex.converse@gmail.com>
+// Copyright (c) 2010 Vitor Sessak
+
+#ifndef COMMON_DCT_H
+#define COMMON_DCT_H
+
+#include "common/scummsys.h"
+#include "common/math.h"
+#include "common/rdft.h"
+
+namespace Common {
+
+/**
+ * (Inverse) Discrete Cosine Transforms.
+ *
+ * Used in engines:
+ * - scumm
+ */
+class DCT {
+public:
+ enum TransformType {
+ DCT_II,
+ DCT_III,
+ DCT_I,
+ DST_I
+ };
+
+ DCT(int bits, TransformType trans);
+ ~DCT();
+
+ void calc(float *data);
+
+private:
+ int _bits;
+ TransformType _trans;
+
+ const float *_tCos;
+
+ float *_csc2;
+
+ RDFT *_rdft;
+
+ void calcDCTI (float *data);
+ void calcDCTII (float *data);
+ void calcDCTIII(float *data);
+ void calcDSTI (float *data);
+};
+
+} // End of namespace Common
+
+#endif // COMMON_DCT_H
diff --git a/common/events.h b/common/events.h
index 371080c1b2..f5ace7481b 100644
--- a/common/events.h
+++ b/common/events.h
@@ -97,7 +97,7 @@ struct Event {
* Virtual screen coordinates means: the coordinate system of the
* screen area as defined by the most recent call to initSize().
*/
- Common::Point mouse;
+ Point mouse;
Event() : type(EVENT_INVALID), synthetic(false) {}
};
@@ -139,13 +139,13 @@ public:
*/
class ArtificialEventSource : public EventSource {
protected:
- Common::Queue<Common::Event> _artificialEventQueue;
+ Queue<Event> _artificialEventQueue;
public:
- void addEvent(const Common::Event &ev) {
+ void addEvent(const Event &ev) {
_artificialEventQueue.push(ev);
}
- bool pollEvent(Common::Event &ev) {
+ bool pollEvent(Event &ev) {
if (!_artificialEventQueue.empty()) {
ev = _artificialEventQueue.pop();
return true;
@@ -184,6 +184,14 @@ public:
* false otherwise.
*/
virtual bool notifyEvent(const Event &event) = 0;
+
+ /**
+ * Notifies the observer of pollEvent() query.
+ *
+ * @return true if the event should not be passed to other observers,
+ * false otherwise.
+ */
+ virtual bool notifyPoll() { return false; }
};
/**
@@ -255,8 +263,11 @@ public:
/**
* Registers a new EventObserver with the Dispatcher.
+ *
+ * @param listenPools if set, then all pollEvent() calls are passed to observer
+ * currently it is used by keyMapper
*/
- void registerObserver(EventObserver *obs, uint priority, bool autoFree);
+ void registerObserver(EventObserver *obs, uint priority, bool autoFree, bool listenPolls = false);
/**
* Unregisters a EventObserver.
@@ -275,16 +286,18 @@ private:
EventSource *source;
};
- Common::List<SourceEntry> _sources;
+ List<SourceEntry> _sources;
struct ObserverEntry : public Entry {
uint priority;
EventObserver *observer;
+ bool poll;
};
- Common::List<ObserverEntry> _observers;
+ List<ObserverEntry> _observers;
void dispatchEvent(const Event &event);
+ void dispatchPoll();
};
class Keymapper;
@@ -315,15 +328,15 @@ public:
* @param event point to an Event struct, which will be filled with the event data.
* @return true if an event was retrieved.
*/
- virtual bool pollEvent(Common::Event &event) = 0;
+ virtual bool pollEvent(Event &event) = 0;
/**
* Pushes a "fake" event into the event queue
*/
- virtual void pushEvent(const Common::Event &event) = 0;
+ virtual void pushEvent(const Event &event) = 0;
/** Return the current mouse position */
- virtual Common::Point getMousePos() const = 0;
+ virtual Point getMousePos() const = 0;
/**
* Return a bitmask with the button states:
@@ -362,7 +375,7 @@ public:
// TODO: Consider removing OSystem::getScreenChangeID and
// replacing it by a generic getScreenChangeID method here
#ifdef ENABLE_KEYMAPPER
- virtual Common::Keymapper *getKeymapper() = 0;
+ virtual Keymapper *getKeymapper() = 0;
#endif
enum {
@@ -370,7 +383,12 @@ public:
* Priority of the event manager, for now it's lowest since it eats
* *all* events, we might to change that in the future though.
*/
- kEventManPriority = 0
+ kEventManPriority = 0,
+ /**
+ * Priority of the event recorder. It has to go after event manager
+ * in order to record events generated by it
+ */
+ kEventRecorderPriority = 1
};
/**
diff --git a/common/fft.cpp b/common/fft.cpp
new file mode 100644
index 0000000000..5852698b61
--- /dev/null
+++ b/common/fft.cpp
@@ -0,0 +1,243 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)FFT code which is in turn
+// Based upon the (I)FFT code in FFmpeg
+// Copyright (c) 2008 Loren Merritt
+// Copyright (c) 2002 Fabrice Bellard
+// Partly based on libdjbfft by D. J. Bernstein
+
+#include "common/cosinetables.h"
+#include "common/fft.h"
+#include "common/util.h"
+
+namespace Common {
+
+FFT::FFT(int bits, int inverse) : _bits(bits), _inverse(inverse) {
+ assert((_bits >= 2) && (_bits <= 16));
+
+ int n = 1 << bits;
+
+ _tmpBuf = new Complex[n];
+ _expTab = new Complex[n / 2];
+ _revTab = new uint16[n];
+
+ _splitRadix = 1;
+
+ for (int i = 0; i < n; i++)
+ _revTab[-splitRadixPermutation(i, n, _inverse) & (n - 1)] = i;
+}
+
+FFT::~FFT() {
+ delete[] _revTab;
+ delete[] _expTab;
+ delete[] _tmpBuf;
+}
+
+void FFT::permute(Complex *z) {
+ int np = 1 << _bits;
+
+ if (_tmpBuf) {
+ for (int j = 0; j < np; j++)
+ _tmpBuf[_revTab[j]] = z[j];
+
+ memcpy(z, _tmpBuf, np * sizeof(Complex));
+
+ return;
+ }
+
+ // Reverse
+ for (int j = 0; j < np; j++) {
+ int k = _revTab[j];
+
+ if (k < j)
+ SWAP(z[k], z[j]);
+ }
+}
+
+int FFT::splitRadixPermutation(int i, int n, int inverse) {
+ if (n <= 2)
+ return i & 1;
+
+ int m = n >> 1;
+
+ if (!(i & m))
+ return splitRadixPermutation(i, m, inverse) * 2;
+
+ m >>= 1;
+
+ if (inverse == !(i & m))
+ return splitRadixPermutation(i, m, inverse) * 4 + 1;
+
+ return splitRadixPermutation(i, m, inverse) * 4 - 1;
+}
+
+#define sqrthalf (float)M_SQRT1_2
+
+#define BF(x, y, a, b) { \
+ x = a - b; \
+ y = a + b; \
+}
+
+#define BUTTERFLIES(a0, a1, a2, a3) { \
+ BF(t3, t5, t5, t1); \
+ BF(a2.re, a0.re, a0.re, t5); \
+ BF(a3.im, a1.im, a1.im, t3); \
+ BF(t4, t6, t2, t6); \
+ BF(a3.re, a1.re, a1.re, t4); \
+ BF(a2.im, a0.im, a0.im, t6); \
+}
+
+// force loading all the inputs before storing any.
+// this is slightly slower for small data, but avoids store->load aliasing
+// for addresses separated by large powers of 2.
+#define BUTTERFLIES_BIG(a0, a1, a2, a3) { \
+ float r0 = a0.re, i0 = a0.im, r1 = a1.re, i1 = a1.im; \
+ BF(t3, t5, t5, t1); \
+ BF(a2.re, a0.re, r0, t5); \
+ BF(a3.im, a1.im, i1, t3); \
+ BF(t4, t6, t2, t6); \
+ BF(a3.re, a1.re, r1, t4); \
+ BF(a2.im, a0.im, i0, t6); \
+}
+
+#define TRANSFORM(a0, a1, a2, a3, wre, wim) { \
+ t1 = a2.re * wre + a2.im * wim; \
+ t2 = a2.im * wre - a2.re * wim; \
+ t5 = a3.re * wre - a3.im * wim; \
+ t6 = a3.im * wre + a3.re * wim; \
+ BUTTERFLIES(a0, a1, a2, a3) \
+}
+
+#define TRANSFORM_ZERO(a0, a1, a2, a3) { \
+ t1 = a2.re; \
+ t2 = a2.im; \
+ t5 = a3.re; \
+ t6 = a3.im; \
+ BUTTERFLIES(a0, a1, a2, a3) \
+}
+
+/* z[0...8n-1], w[1...2n-1] */
+#define PASS(name) \
+static void name(Complex *z, const float *wre, unsigned int n) { \
+ float t1, t2, t3, t4, t5, t6; \
+ int o1 = 2 * n; \
+ int o2 = 4 * n; \
+ int o3 = 6 * n; \
+ const float *wim = wre + o1; \
+ n--; \
+ \
+ TRANSFORM_ZERO(z[0], z[o1], z[o2], z[o3]); \
+ TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]); \
+ do { \
+ z += 2; \
+ wre += 2; \
+ wim -= 2; \
+ TRANSFORM(z[0], z[o1], z[o2], z[o3], wre[0], wim[0]);\
+ TRANSFORM(z[1], z[o1 + 1], z[o2 + 1], z[o3 + 1], wre[1], wim[-1]);\
+ } while(--n);\
+}
+
+PASS(pass)
+#undef BUTTERFLIES
+#define BUTTERFLIES BUTTERFLIES_BIG
+PASS(pass_big)
+
+#define DECL_FFT(t, n, n2, n4) \
+static void fft##n(Complex *z) { \
+ fft##n2(z); \
+ fft##n4(z + n4 * 2); \
+ fft##n4(z + n4 * 3); \
+ pass(z, getCosineTable(t), n4 / 2);\
+}
+
+static void fft4(Complex *z) {
+ float t1, t2, t3, t4, t5, t6, t7, t8;
+
+ BF(t3, t1, z[0].re, z[1].re);
+ BF(t8, t6, z[3].re, z[2].re);
+ BF(z[2].re, z[0].re, t1, t6);
+ BF(t4, t2, z[0].im, z[1].im);
+ BF(t7, t5, z[2].im, z[3].im);
+ BF(z[3].im, z[1].im, t4, t8);
+ BF(z[3].re, z[1].re, t3, t7);
+ BF(z[2].im, z[0].im, t2, t5);
+}
+
+static void fft8(Complex *z) {
+ float t1, t2, t3, t4, t5, t6, t7, t8;
+
+ fft4(z);
+
+ BF(t1, z[5].re, z[4].re, -z[5].re);
+ BF(t2, z[5].im, z[4].im, -z[5].im);
+ BF(t3, z[7].re, z[6].re, -z[7].re);
+ BF(t4, z[7].im, z[6].im, -z[7].im);
+ BF(t8, t1, t3, t1);
+ BF(t7, t2, t2, t4);
+ BF(z[4].re, z[0].re, z[0].re, t1);
+ BF(z[4].im, z[0].im, z[0].im, t2);
+ BF(z[6].re, z[2].re, z[2].re, t7);
+ BF(z[6].im, z[2].im, z[2].im, t8);
+
+ TRANSFORM(z[1], z[3], z[5], z[7], sqrthalf, sqrthalf);
+}
+
+static void fft16(Complex *z) {
+ float t1, t2, t3, t4, t5, t6;
+
+ fft8(z);
+ fft4(z + 8);
+ fft4(z + 12);
+
+ const float * const cosTable = getCosineTable(4);
+
+ TRANSFORM_ZERO(z[0], z[4], z[8], z[12]);
+ TRANSFORM(z[2], z[6], z[10], z[14], sqrthalf, sqrthalf);
+ TRANSFORM(z[1], z[5], z[9], z[13], cosTable[1],cosTable[3]);
+ TRANSFORM(z[3], z[7], z[11], z[15], cosTable[3], cosTable[1]);
+}
+
+DECL_FFT(5, 32, 16, 8)
+DECL_FFT(6, 64, 32, 16)
+DECL_FFT(7, 128, 64, 32)
+DECL_FFT(8, 256, 128, 64)
+DECL_FFT(9, 512, 256, 128)
+#define pass pass_big
+DECL_FFT(10, 1024, 512, 256)
+DECL_FFT(11, 2048, 1024, 512)
+DECL_FFT(12, 4096, 2048, 1024)
+DECL_FFT(13, 8192, 4096, 2048)
+DECL_FFT(14, 16384, 8192, 4096)
+DECL_FFT(15, 32768, 16384, 8192)
+DECL_FFT(16, 65536, 32768, 16384)
+
+static void (* const fft_dispatch[])(Complex*) = {
+ fft4, fft8, fft16, fft32, fft64, fft128, fft256, fft512, fft1024,
+ fft2048, fft4096, fft8192, fft16384, fft32768, fft65536,
+};
+
+void FFT::calc(Complex *z) {
+ fft_dispatch[_bits - 2](z);
+}
+
+} // End of namespace Common
diff --git a/common/fft.h b/common/fft.h
new file mode 100644
index 0000000000..e77c53c2a7
--- /dev/null
+++ b/common/fft.h
@@ -0,0 +1,78 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)FFT code which is in turn
+// based upon the (I)FFT code in FFmpeg
+// Copyright (c) 2008 Loren Merritt
+// Copyright (c) 2002 Fabrice Bellard
+// Partly based on libdjbfft by D. J. Bernstein
+
+#ifndef COMMON_FFT_H
+#define COMMON_FFT_H
+
+#include "common/scummsys.h"
+#include "common/math.h"
+
+namespace Common {
+
+/**
+ * (Inverse) Fast Fourier Transform.
+ *
+ * Used in engines:
+ * - scumm
+ */
+class FFT {
+public:
+ FFT(int bits, int inverse);
+ ~FFT();
+
+ /** Do the permutation needed BEFORE calling calc(). */
+ void permute(Complex *z);
+
+ /** Do a complex FFT.
+ *
+ * The input data must be permuted before.
+ * No 1.0/sqrt(n) normalization is done.
+ */
+ void calc(Complex *z);
+
+private:
+ int _bits;
+ int _inverse;
+
+ uint16 *_revTab;
+
+ Complex *_expTab;
+ Complex *_tmpBuf;
+
+ const float *_tSin;
+ const float *_tCos;
+
+ int _splitRadix;
+ int _permutation;
+
+ static int splitRadixPermutation(int i, int n, int inverse);
+};
+
+} // End of namespace Common
+
+#endif // COMMON_FFT_H
diff --git a/common/file.cpp b/common/file.cpp
index 381bf12ecf..12d73c9973 100644
--- a/common/file.cpp
+++ b/common/file.cpp
@@ -72,7 +72,7 @@ bool File::open(const FSNode &node) {
return open(stream, node.getPath());
}
-bool File::open(SeekableReadStream *stream, const Common::String &name) {
+bool File::open(SeekableReadStream *stream, const String &name) {
assert(!_handle);
if (stream) {
diff --git a/common/file.h b/common/file.h
index 86c67c077c..b6319dfc3c 100644
--- a/common/file.h
+++ b/common/file.h
@@ -97,7 +97,7 @@ public:
* @param name a string describing the 'file' corresponding to stream
* @return true if stream was non-zero, false otherwise
*/
- virtual bool open(SeekableReadStream *stream, const Common::String &name);
+ virtual bool open(SeekableReadStream *stream, const String &name);
/**
* Close the file, if open.
diff --git a/common/fs.cpp b/common/fs.cpp
index 3dc8c289aa..8aa1115f9d 100644
--- a/common/fs.cpp
+++ b/common/fs.cpp
@@ -33,7 +33,7 @@ FSNode::FSNode(AbstractFSNode *realNode)
: _realNode(realNode) {
}
-FSNode::FSNode(const Common::String &p) {
+FSNode::FSNode(const String &p) {
assert(g_system);
FilesystemFactory *factory = g_system->getFilesystemFactory();
AbstractFSNode *tmp = 0;
@@ -42,7 +42,7 @@ FSNode::FSNode(const Common::String &p) {
tmp = factory->makeCurrentDirectoryFileNode();
else
tmp = factory->makeFileNodePath(p);
- _realNode = Common::SharedPtr<AbstractFSNode>(tmp);
+ _realNode = SharedPtr<AbstractFSNode>(tmp);
}
bool FSNode::operator<(const FSNode& node) const {
@@ -59,7 +59,7 @@ bool FSNode::exists() const {
return _realNode && _realNode->exists();
}
-FSNode FSNode::getChild(const Common::String &n) const {
+FSNode FSNode::getChild(const String &n) const {
// If this node is invalid or not a directory, return an invalid node
if (_realNode == 0 || !_realNode->isDirectory())
return FSNode();
@@ -85,12 +85,12 @@ bool FSNode::getChildren(FSList &fslist, ListMode mode, bool hidden) const {
return true;
}
-Common::String FSNode::getDisplayName() const {
+String FSNode::getDisplayName() const {
assert(_realNode);
return _realNode->getDisplayName();
}
-Common::String FSNode::getName() const {
+String FSNode::getName() const {
assert(_realNode);
return _realNode->getName();
}
@@ -107,7 +107,7 @@ FSNode FSNode::getParent() const {
}
}
-Common::String FSNode::getPath() const {
+String FSNode::getPath() const {
assert(_realNode);
return _realNode->getPath();
}
@@ -124,7 +124,7 @@ bool FSNode::isWritable() const {
return _realNode && _realNode->isWritable();
}
-Common::SeekableReadStream *FSNode::createReadStream() const {
+SeekableReadStream *FSNode::createReadStream() const {
if (_realNode == 0)
return 0;
@@ -139,7 +139,7 @@ Common::SeekableReadStream *FSNode::createReadStream() const {
return _realNode->createReadStream();
}
-Common::WriteStream *FSNode::createWriteStream() const {
+WriteStream *FSNode::createWriteStream() const {
if (_realNode == 0)
return 0;
diff --git a/common/func.h b/common/func.h
index e09ab1a438..db57d73668 100644
--- a/common/func.h
+++ b/common/func.h
@@ -424,7 +424,7 @@ private:
* are interesting for that matter.
*/
template<class Arg, class Res>
-struct Functor1 : public Common::UnaryFunction<Arg, Res> {
+struct Functor1 : public UnaryFunction<Arg, Res> {
virtual ~Functor1() {}
virtual bool isValid() const = 0;
@@ -460,7 +460,7 @@ private:
* @see Functor1
*/
template<class Arg1, class Arg2, class Res>
-struct Functor2 : public Common::BinaryFunction<Arg1, Arg2, Res> {
+struct Functor2 : public BinaryFunction<Arg1, Arg2, Res> {
virtual ~Functor2() {}
virtual bool isValid() const = 0;
@@ -538,4 +538,3 @@ GENERATE_TRIVIAL_HASH_FUNCTOR(unsigned long);
} // End of namespace Common
#endif
-
diff --git a/common/huffman.cpp b/common/huffman.cpp
new file mode 100644
index 0000000000..a8ebe4142a
--- /dev/null
+++ b/common/huffman.cpp
@@ -0,0 +1,86 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' Huffman code
+
+#include "common/huffman.h"
+#include "common/util.h"
+#include "common/textconsole.h"
+#include "common/bitstream.h"
+
+namespace Common {
+
+Huffman::Symbol::Symbol(uint32 c, uint32 s) : code(c), symbol(s) {
+}
+
+
+Huffman::Huffman(uint8 maxLength, uint32 codeCount, const uint32 *codes, const uint8 *lengths, const uint32 *symbols) {
+ assert(codeCount > 0);
+
+ assert(codes);
+ assert(lengths);
+
+ if (maxLength == 0)
+ for (uint32 i = 0; i < codeCount; i++)
+ maxLength = MAX(maxLength, lengths[i]);
+
+ assert(maxLength <= 32);
+
+ _codes.resize(maxLength);
+ _symbols.resize(codeCount);
+
+ for (uint32 i = 0; i < codeCount; i++) {
+ // The symbol. If none were specified, just assume it's identical to the code index
+ uint32 symbol = symbols ? symbols[i] : i;
+
+ // Put the code and symbol into the correct list
+ _codes[lengths[i] - 1].push_back(Symbol(codes[i], symbol));
+
+ // And put the pointer to the symbol/code struct into the symbol list.
+ _symbols[i] = &_codes[lengths[i] - 1].back();
+ }
+}
+
+Huffman::~Huffman() {
+}
+
+void Huffman::setSymbols(const uint32 *symbols) {
+ for (uint32 i = 0; i < _symbols.size(); i++)
+ _symbols[i]->symbol = symbols ? *symbols++ : i;
+}
+
+uint32 Huffman::getSymbol(BitStream &bits) const {
+ uint32 code = 0;
+
+ for (uint32 i = 0; i < _codes.size(); i++) {
+ bits.addBit(code, i);
+
+ for (CodeList::const_iterator cCode = _codes[i].begin(); cCode != _codes[i].end(); ++cCode)
+ if (code == cCode->code)
+ return cCode->symbol;
+ }
+
+ error("Unknown Huffman code");
+ return 0;
+}
+
+} // End of namespace Common
diff --git a/common/huffman.h b/common/huffman.h
new file mode 100644
index 0000000000..4175d0d309
--- /dev/null
+++ b/common/huffman.h
@@ -0,0 +1,82 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' Huffman code
+
+#ifndef COMMON_HUFFMAN_H
+#define COMMON_HUFFMAN_H
+
+#include "common/array.h"
+#include "common/list.h"
+#include "common/types.h"
+
+namespace Common {
+
+class BitStream;
+
+/**
+ * Huffman bitstream decoding
+ *
+ * Used in engines:
+ * - scumm
+ */
+class Huffman {
+public:
+ /** Construct a Huffman decoder.
+ *
+ * @param maxLength Maximal code length. If 0, it's searched for.
+ * @param codeCount Number of codes.
+ * @param codes The actual codes.
+ * @param lengths Lengths of the individual codes.
+ * @param symbols The symbols. If 0, assume they are identical to the code indices.
+ */
+ Huffman(uint8 maxLength, uint32 codeCount, const uint32 *codes, const uint8 *lengths, const uint32 *symbols = 0);
+ ~Huffman();
+
+ /** Modify the codes' symbols. */
+ void setSymbols(const uint32 *symbols = 0);
+
+ /** Return the next symbol in the bitstream. */
+ uint32 getSymbol(BitStream &bits) const;
+
+private:
+ struct Symbol {
+ uint32 code;
+ uint32 symbol;
+
+ Symbol(uint32 c, uint32 s);
+ };
+
+ typedef List<Symbol> CodeList;
+ typedef Array<CodeList> CodeLists;
+ typedef Array<Symbol*> SymbolList;
+
+ /** Lists of codes and their symbols, sorted by code length. */
+ CodeLists _codes;
+
+ /** Sorted list of pointers to the symbols. */
+ SymbolList _symbols;
+};
+
+} // End of namespace Common
+
+#endif // COMMON_HUFFMAN_H
diff --git a/common/iff_container.cpp b/common/iff_container.cpp
index 02b445ae05..7bcbf86e0f 100644
--- a/common/iff_container.cpp
+++ b/common/iff_container.cpp
@@ -25,7 +25,7 @@
namespace Common {
-IFFParser::IFFParser(Common::ReadStream *stream, bool disposeStream) : _stream(stream), _disposeStream(disposeStream) {
+IFFParser::IFFParser(ReadStream *stream, bool disposeStream) : _stream(stream), _disposeStream(disposeStream) {
setInputStream(stream);
}
@@ -36,7 +36,7 @@ IFFParser::~IFFParser() {
_stream = 0;
}
-void IFFParser::setInputStream(Common::ReadStream *stream) {
+void IFFParser::setInputStream(ReadStream *stream) {
assert(stream);
_formChunk.setInputStream(stream);
_chunk.setInputStream(stream);
@@ -63,7 +63,7 @@ void IFFParser::parse(IFFCallback &callback) {
_chunk.readHeader();
// invoke the callback
- Common::SubReadStream stream(&_chunk, _chunk.size);
+ SubReadStream stream(&_chunk, _chunk.size);
IFFChunk chunk(_chunk.id, _chunk.size, &stream);
stop = callback(chunk);
diff --git a/common/iff_container.h b/common/iff_container.h
index 1b12ef70e5..104ecf0f36 100644
--- a/common/iff_container.h
+++ b/common/iff_container.h
@@ -146,11 +146,11 @@ page 376) */
* Client code must *not* deallocate _stream when done.
*/
struct IFFChunk {
- Common::IFF_ID _type;
- uint32 _size;
- Common::ReadStream *_stream;
+ IFF_ID _type;
+ uint32 _size;
+ ReadStream *_stream;
- IFFChunk(Common::IFF_ID type, uint32 size, Common::ReadStream *stream) : _type(type), _size(size), _stream(stream) {
+ IFFChunk(IFF_ID type, uint32 size, ReadStream *stream) : _type(type), _size(size), _stream(stream) {
assert(_stream);
}
};
@@ -163,17 +163,17 @@ class IFFParser {
/**
* This private class implements IFF chunk navigation.
*/
- class IFFChunkNav : public Common::ReadStream {
+ class IFFChunkNav : public ReadStream {
protected:
- Common::ReadStream *_input;
+ ReadStream *_input;
uint32 _bytesRead;
public:
- Common::IFF_ID id;
+ IFF_ID id;
uint32 size;
IFFChunkNav() : _input(0) {
}
- void setInputStream(Common::ReadStream *input) {
+ void setInputStream(ReadStream *input) {
_input = input;
size = _bytesRead = 0;
}
@@ -199,7 +199,7 @@ class IFFParser {
readByte();
}
}
- // Common::ReadStream implementation
+ // ReadStream implementation
bool eos() const { return _input->eos(); }
bool err() const { return _input->err(); }
void clearErr() { _input->clearErr(); }
@@ -215,21 +215,21 @@ protected:
IFFChunkNav _chunk; ///< The current chunk.
uint32 _formSize;
- Common::IFF_ID _formType;
+ IFF_ID _formType;
- Common::ReadStream *_stream;
+ ReadStream *_stream;
bool _disposeStream;
- void setInputStream(Common::ReadStream *stream);
+ void setInputStream(ReadStream *stream);
public:
- IFFParser(Common::ReadStream *stream, bool disposeStream = false);
+ IFFParser(ReadStream *stream, bool disposeStream = false);
~IFFParser();
/**
* Callback type for the parser.
*/
- typedef Common::Functor1< IFFChunk&, bool > IFFCallback;
+ typedef Functor1< IFFChunk&, bool > IFFCallback;
/**
* Parse the IFF container, invoking the callback on each chunk encountered.
diff --git a/common/keyboard.h b/common/keyboard.h
index 74b8775a0f..bdd0a2d4af 100644
--- a/common/keyboard.h
+++ b/common/keyboard.h
@@ -291,7 +291,7 @@ struct KeyState {
return f == (flags & ~(KBD_NUM|KBD_CAPS|KBD_SCRL));
}
- bool operator ==(const KeyState &x) const {
+ bool operator==(const KeyState &x) const {
return keycode == x.keycode && ascii == x.ascii && flags == x.flags;
}
};
diff --git a/common/localization.cpp b/common/localization.cpp
new file mode 100644
index 0000000000..afd31b8d22
--- /dev/null
+++ b/common/localization.cpp
@@ -0,0 +1,66 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "common/localization.h"
+#include "common/translation.h"
+
+namespace Common {
+
+void getLanguageYesNo(Language id, KeyCode &keyYes, KeyCode &keyNo) {
+ // If all else fails, use English as fallback.
+ keyYes = KEYCODE_y;
+ keyNo = KEYCODE_n;
+
+ switch (id) {
+ case Common::RU_RUS:
+ break;
+ case Common::PL_POL:
+ keyYes = Common::KEYCODE_t;
+ break;
+ case Common::HE_ISR:
+ keyYes = Common::KEYCODE_f;
+ break;
+ case Common::ES_ESP:
+ keyYes = Common::KEYCODE_s;
+ break;
+ case Common::IT_ITA:
+ keyYes = Common::KEYCODE_s;
+ break;
+ case Common::FR_FRA:
+ keyYes = Common::KEYCODE_o;
+ break;
+ case Common::DE_DEU:
+ keyYes = Common::KEYCODE_j;
+ break;
+ default:
+ break;
+ }
+}
+
+void getLanguageYesNo(KeyCode &keyYes, KeyCode &keyNo) {
+#ifdef USE_TRANSLATION
+ getLanguageYesNo(Common::parseLanguageFromLocale(TransMan.getCurrentLanguage().c_str()), keyYes, keyNo);
+#else
+ getLanguageYesNo(Common::EN_ANY, keyYes, keyNo);
+#endif
+}
+
+} // End of namespace Common
diff --git a/common/localization.h b/common/localization.h
new file mode 100644
index 0000000000..3945cf5fab
--- /dev/null
+++ b/common/localization.h
@@ -0,0 +1,52 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef COMMON_LOCALIZATION_H
+#define COMMON_LOCALIZATION_H
+
+#include "common/util.h"
+#include "common/keyboard.h"
+
+namespace Common {
+
+/**
+ * Get localized equivalents for Y/N buttons of the specified language. In
+ * case there is no specialized keys for the given language it will fall back
+ * to the English keys.
+ *
+ * @param id Language id
+ * @param keyYes Key code for yes
+ * @param keyYes Key code for no
+ */
+void getLanguageYesNo(Language id, KeyCode &keyYes, KeyCode &keyNo);
+
+/**
+ * Get localized equivalents for Y/N buttons of the current translation
+ * language of the ScummVM GUI.
+ *
+ * @param keyYes Key code for yes
+ * @param keyYes Key code for no
+ */
+void getLanguageYesNo(KeyCode &keyYes, KeyCode &keyNo);
+
+} // End of namespace Common
+
+#endif
diff --git a/common/math.h b/common/math.h
new file mode 100644
index 0000000000..f787b84fa6
--- /dev/null
+++ b/common/math.h
@@ -0,0 +1,128 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' math code
+
+#ifndef COMMON_MATH_H
+#define COMMON_MATH_H
+
+#include "common/scummsys.h"
+#ifdef _MSC_VER
+// HACK:
+// intrin.h on MSVC includes setjmp.h, which will fail compiling due to our
+// forbidden symbol colde. Since we also can not assure that defining
+// FORBIDDEN_SYMBOL_EXCEPTION_setjmp and FORBIDDEN_SYMBOL_EXCEPTION_longjmp
+// will actually allow the symbols, since forbidden.h might be included
+// earlier already we need to undefine them here...
+#undef setjmp
+#undef longjmp
+#include <intrin.h>
+// ...and redefine them here so no code can actually use it.
+// This could be resolved by including intrin.h on MSVC in scummsys.h before
+// the forbidden.h include. This might make sense, in case we use MSVC
+// extensions like _BitScanReverse in more places. But for now this hack should
+// be ok...
+#ifndef FORBIDDEN_SYMBOL_EXCEPTION_setjmp
+#undef setjmp
+#define setjmp(a) FORBIDDEN_SYMBOL_REPLACEMENT
+#endif
+
+#ifndef FORBIDDEN_SYMBOL_EXCEPTION_longjmp
+#undef longjmp
+#define longjmp(a,b) FORBIDDEN_SYMBOL_REPLACEMENT
+#endif
+#endif
+
+#ifndef M_SQRT1_2
+ #define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
+#endif
+
+#ifndef M_PI
+ #define M_PI 3.14159265358979323846
+#endif
+
+#ifndef FLT_MIN
+ #define FLT_MIN 1E-37
+#endif
+
+#ifndef FLT_MAX
+ #define FLT_MAX 1E+37
+#endif
+
+namespace Common {
+
+/** A complex number. */
+struct Complex {
+ float re, im;
+};
+
+#if defined(__GNUC__) && (__GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ >= 4))
+inline int intLog2(uint32 v) {
+ // This is a slightly optimized implementation of log2 for natural numbers
+ // targeting gcc. It also saves some binary size over our fallback
+ // implementation, since it does not need any table.
+ if (v == 0)
+ return -1;
+ else
+ // This is really "sizeof(unsigned int) * CHAR_BIT - 1" but using 8
+ // instead of CHAR_BIT is sane enough and it saves us from including
+ // limits.h
+ return (sizeof(unsigned int) * 8 - 1) - __builtin_clz(v);
+}
+#elif defined(_MSC_VER)
+inline int intLog2(uint32 v) {
+ unsigned long result = 0;
+ unsigned char nonZero = _BitScanReverse(&result, v);
+ // _BitScanReverse stores the position of the MSB set in case its result
+ // is non zero, thus we can just return it as is.
+ return nonZero ? result : -1;
+}
+#else
+// See http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogLookup
+static const char LogTable256[256] = {
+#define LT(n) n, n, n, n, n, n, n, n, n, n, n, n, n, n, n, n
+ -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
+ LT(4), LT(5), LT(5), LT(6), LT(6), LT(6), LT(6),
+ LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7), LT(7)
+};
+
+inline int intLog2(uint32 v) {
+ register uint32 t, tt;
+
+ if ((tt = v >> 16))
+ return (t = tt >> 8) ? 24 + LogTable256[t] : 16 + LogTable256[tt];
+ else
+ return (t = v >> 8) ? 8 + LogTable256[t] : LogTable256[v];
+}
+#endif
+
+inline float rad2deg(float rad) {
+ return rad * 180.0 / M_PI;
+}
+
+inline float deg2rad(float deg) {
+ return deg * M_PI / 180.0;
+}
+
+} // End of namespace Common
+
+#endif // COMMON_MATH_H
diff --git a/common/memorypool.cpp b/common/memorypool.cpp
index 3a570ac50e..19adc54d00 100644
--- a/common/memorypool.cpp
+++ b/common/memorypool.cpp
@@ -180,4 +180,3 @@ void MemoryPool::freeUnusedPages() {
}
} // End of namespace Common
-
diff --git a/common/module.mk b/common/module.mk
index 5f6a529595..b55c11637a 100644
--- a/common/module.mk
+++ b/common/module.mk
@@ -13,6 +13,7 @@ MODULE_OBJS := \
fs.o \
hashmap.o \
iff_container.o \
+ localization.o \
macresman.o \
memorypool.o \
md5.o \
@@ -35,5 +36,16 @@ MODULE_OBJS := \
xmlparser.o \
zlib.o
+ifdef USE_BINK
+MODULE_OBJS += \
+ bitstream.o \
+ cosinetables.o \
+ dct.o \
+ fft.o \
+ huffman.o \
+ rdft.o \
+ sinetables.o
+endif
+
# Include common rules
include $(srcdir)/rules.mk
diff --git a/common/ptr.h b/common/ptr.h
index fc272d3d41..2b0670caae 100644
--- a/common/ptr.h
+++ b/common/ptr.h
@@ -24,6 +24,7 @@
#include "common/scummsys.h"
#include "common/noncopyable.h"
+#include "common/types.h"
namespace Common {
@@ -185,12 +186,12 @@ public:
}
template<class T2>
- bool operator==(const Common::SharedPtr<T2> &r) const {
+ bool operator==(const SharedPtr<T2> &r) const {
return _pointer == r.get();
}
template<class T2>
- bool operator!=(const Common::SharedPtr<T2> &r) const {
+ bool operator!=(const SharedPtr<T2> &r) const {
return _pointer != r.get();
}
@@ -231,7 +232,6 @@ public:
ReferenceType operator*() const { return *_pointer; }
PointerType operator->() const { return _pointer; }
- operator PointerType() const { return _pointer; }
/**
* Implicit conversion operator to bool for convenience, to make
@@ -274,6 +274,41 @@ private:
PointerType _pointer;
};
+
+template<typename T>
+class DisposablePtr : NonCopyable {
+public:
+ typedef T ValueType;
+ typedef T *PointerType;
+ typedef T &ReferenceType;
+
+ explicit DisposablePtr(PointerType o, DisposeAfterUse::Flag dispose) : _pointer(o), _dispose(dispose) {}
+
+ ~DisposablePtr() {
+ if (_dispose) delete _pointer;
+ }
+
+ ReferenceType operator*() const { return *_pointer; }
+ PointerType operator->() const { return _pointer; }
+
+ /**
+ * Implicit conversion operator to bool for convenience, to make
+ * checks like "if (scopedPtr) ..." possible.
+ */
+ operator bool() const { return _pointer; }
+
+ /**
+ * Returns the plain pointer value.
+ *
+ * @return the pointer the DisposablePtr manages
+ */
+ PointerType get() const { return _pointer; }
+
+private:
+ PointerType _pointer;
+ DisposeAfterUse::Flag _dispose;
+};
+
} // End of namespace Common
#endif
diff --git a/common/quicktime.cpp b/common/quicktime.cpp
index ee49b092a4..9ea8c229ea 100644
--- a/common/quicktime.cpp
+++ b/common/quicktime.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
//
@@ -51,7 +48,7 @@ QuickTimeParser::QuickTimeParser() {
_fd = 0;
_scaleFactorX = 1;
_scaleFactorY = 1;
- _resFork = new Common::MacResManager();
+ _resFork = new MacResManager();
_disposeFileHandle = DisposeAfterUse::YES;
initParseTable();
@@ -62,7 +59,7 @@ QuickTimeParser::~QuickTimeParser() {
delete _resFork;
}
-bool QuickTimeParser::parseFile(const Common::String &filename) {
+bool QuickTimeParser::parseFile(const String &filename) {
if (!_resFork->open(filename) || !_resFork->hasDataFork())
return false;
@@ -73,7 +70,7 @@ bool QuickTimeParser::parseFile(const Common::String &filename) {
if (_resFork->hasResFork()) {
// Search for a 'moov' resource
- Common::MacResIDArray idArray = _resFork->getResIDArray(MKTAG('m', 'o', 'o', 'v'));
+ MacResIDArray idArray = _resFork->getResIDArray(MKTAG('m', 'o', 'o', 'v'));
if (!idArray.empty())
_fd = _resFork->getResource(MKTAG('m', 'o', 'o', 'v'), idArray[0]);
@@ -99,7 +96,7 @@ bool QuickTimeParser::parseFile(const Common::String &filename) {
return true;
}
-bool QuickTimeParser::parseStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeFileHandle) {
+bool QuickTimeParser::parseStream(SeekableReadStream *stream, DisposeAfterUse::Flag disposeFileHandle) {
_fd = stream;
_foundMOOV = false;
_disposeFileHandle = disposeFileHandle;
@@ -277,7 +274,7 @@ int QuickTimeParser::readCMOV(Atom atom) {
// Uncompress the data
unsigned long dstLen = uncompressedSize;
- if (!Common::uncompress(uncompressedData, &dstLen, compressedData, compressedSize)) {
+ if (!uncompress(uncompressedData, &dstLen, compressedData, compressedSize)) {
warning ("Could not uncompress cmov chunk");
free(compressedData);
free(uncompressedData);
@@ -285,8 +282,8 @@ int QuickTimeParser::readCMOV(Atom atom) {
}
// Load data into a new MemoryReadStream and assign _fd to be that
- Common::SeekableReadStream *oldStream = _fd;
- _fd = new Common::MemoryReadStream(uncompressedData, uncompressedSize, DisposeAfterUse::YES);
+ SeekableReadStream *oldStream = _fd;
+ _fd = new MemoryReadStream(uncompressedData, uncompressedSize, DisposeAfterUse::YES);
// Read the contents of the uncompressed data
Atom a = { MKTAG('m', 'o', 'o', 'v'), 0, uncompressedSize };
@@ -336,8 +333,8 @@ int QuickTimeParser::readMVHD(Atom atom) {
uint32 yMod = _fd->readUint32BE();
_fd->skip(16);
- _scaleFactorX = Common::Rational(0x10000, xMod);
- _scaleFactorY = Common::Rational(0x10000, yMod);
+ _scaleFactorX = Rational(0x10000, xMod);
+ _scaleFactorY = Rational(0x10000, yMod);
_scaleFactorX.debugPrint(1, "readMVHD(): scaleFactorX =");
_scaleFactorY.debugPrint(1, "readMVHD(): scaleFactorY =");
@@ -406,8 +403,8 @@ int QuickTimeParser::readTKHD(Atom atom) {
uint32 yMod = _fd->readUint32BE();
_fd->skip(16);
- track->scaleFactorX = Common::Rational(0x10000, xMod);
- track->scaleFactorY = Common::Rational(0x10000, yMod);
+ track->scaleFactorX = Rational(0x10000, xMod);
+ track->scaleFactorY = Rational(0x10000, yMod);
track->scaleFactorX.debugPrint(1, "readTKHD(): scaleFactorX =");
track->scaleFactorY.debugPrint(1, "readTKHD(): scaleFactorY =");
@@ -434,7 +431,7 @@ int QuickTimeParser::readELST(Atom atom) {
for (uint32 i = 0; i < track->editCount; i++){
track->editList[i].trackDuration = _fd->readUint32BE();
track->editList[i].mediaTime = _fd->readSint32BE();
- track->editList[i].mediaRate = Common::Rational(_fd->readUint32BE(), 0x10000);
+ track->editList[i].mediaRate = Rational(_fd->readUint32BE(), 0x10000);
debugN(3, "\tDuration = %d, Media Time = %d, ", track->editList[i].trackDuration, track->editList[i].mediaTime);
track->editList[i].mediaRate.debugPrint(3, "Media Rate =");
}
@@ -698,7 +695,7 @@ enum {
kMP4DecSpecificDescTag = 5
};
-static int readMP4DescLength(Common::SeekableReadStream *stream) {
+static int readMP4DescLength(SeekableReadStream *stream) {
int length = 0;
int count = 4;
@@ -713,7 +710,7 @@ static int readMP4DescLength(Common::SeekableReadStream *stream) {
return length;
}
-static void readMP4Desc(Common::SeekableReadStream *stream, byte &tag, int &length) {
+static void readMP4Desc(SeekableReadStream *stream, byte &tag, int &length) {
tag = stream->readByte();
length = readMP4DescLength(stream);
}
diff --git a/common/quicktime.h b/common/quicktime.h
index cb2bed1202..e4c821e209 100644
--- a/common/quicktime.h
+++ b/common/quicktime.h
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
//
@@ -59,14 +56,14 @@ public:
* Load a QuickTime file
* @param filename the filename to load
*/
- bool parseFile(const Common::String &filename);
+ bool parseFile(const String &filename);
/**
* Load a QuickTime file from a SeekableReadStream
* @param stream the stream to load
* @param disposeFileHandle whether to delete the stream after use
*/
- bool parseStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeFileHandle = DisposeAfterUse::YES);
+ bool parseStream(SeekableReadStream *stream, DisposeAfterUse::Flag disposeFileHandle = DisposeAfterUse::YES);
/**
* Close a QuickTime file
@@ -84,7 +81,7 @@ public:
protected:
// This is the file handle from which data is read from. It can be the actual file handle or a decompressed stream.
- Common::SeekableReadStream *_fd;
+ SeekableReadStream *_fd;
DisposeAfterUse::Flag _disposeFileHandle;
@@ -113,7 +110,7 @@ protected:
struct EditListEntry {
uint32 trackDuration;
int32 mediaTime;
- Common::Rational mediaRate;
+ Rational mediaRate;
};
struct Track;
@@ -157,18 +154,18 @@ protected:
uint16 height;
CodecType codecType;
- Common::Array<SampleDesc *> sampleDescs;
+ Array<SampleDesc*> sampleDescs;
uint32 editCount;
EditListEntry *editList;
- Common::SeekableReadStream *extraData;
+ SeekableReadStream *extraData;
uint32 frameCount;
uint32 duration;
uint32 startTime;
- Common::Rational scaleFactorX;
- Common::Rational scaleFactorY;
+ Rational scaleFactorX;
+ Rational scaleFactorY;
byte objectTypeMP4;
};
@@ -179,11 +176,11 @@ protected:
bool _foundMOOV;
uint32 _timeScale;
uint32 _duration;
- Common::Rational _scaleFactorX;
- Common::Rational _scaleFactorY;
- Common::Array<Track *> _tracks;
+ Rational _scaleFactorX;
+ Rational _scaleFactorY;
+ Array<Track*> _tracks;
uint32 _beginOffset;
- Common::MacResManager *_resFork;
+ MacResManager *_resFork;
void initParseTable();
void init();
diff --git a/common/rational.cpp b/common/rational.cpp
index cb287869bb..f5495da3a9 100644
--- a/common/rational.cpp
+++ b/common/rational.cpp
@@ -107,8 +107,8 @@ Rational &Rational::operator-=(const Rational &right) {
Rational &Rational::operator*=(const Rational &right) {
// Cross-cancel to avoid unnecessary overflow;
// the result then is automatically normalized
- const int gcd1 = Common::gcd(_num, right._denom);
- const int gcd2 = Common::gcd(right._num, _denom);
+ const int gcd1 = gcd(_num, right._denom);
+ const int gcd2 = gcd(right._num, _denom);
_num = (_num / gcd1) * (right._num / gcd2);
_denom = (_denom / gcd2) * (right._denom / gcd1);
diff --git a/common/rdft.cpp b/common/rdft.cpp
new file mode 100644
index 0000000000..3f52a89cba
--- /dev/null
+++ b/common/rdft.cpp
@@ -0,0 +1,102 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)RDFT code which is in turn
+// Based upon the (I)RDFT code in FFmpeg
+// Copyright (c) 2009 Alex Converse <alex dot converse at gmail dot com>
+
+#include "common/rdft.h"
+#include "common/cosinetables.h"
+#include "common/sinetables.h"
+
+namespace Common {
+
+RDFT::RDFT(int bits, TransformType trans) : _bits(bits), _fft(0) {
+ assert ((_bits >= 4) && (_bits <= 16));
+
+ _inverse = trans == IDFT_C2R || trans == DFT_C2R;
+ _signConvention = trans == IDFT_R2C || trans == DFT_C2R ? 1 : -1;
+
+ _fft = new FFT(bits - 1, trans == IDFT_C2R || trans == IDFT_R2C);
+
+ int n = 1 << bits;
+
+ _tSin = getSineTable(bits) + (trans == DFT_R2C || trans == DFT_C2R) * (n >> 2);
+ _tCos = getCosineTable(bits);
+}
+
+RDFT::~RDFT() {
+ delete _fft;
+}
+
+void RDFT::calc(float *data) {
+ const int n = 1 << _bits;
+
+ const float k1 = 0.5;
+ const float k2 = 0.5 - _inverse;
+
+ if (!_inverse) {
+ _fft->permute((Complex *) data);
+ _fft->calc ((Complex *) data);
+ }
+
+ Complex ev, od;
+
+ /* i=0 is a special case because of packing, the DC term is real, so we
+ are going to throw the N/2 term (also real) in with it. */
+
+ ev.re = data[0];
+
+ data[0] = ev.re + data[1];
+ data[1] = ev.re - data[1];
+
+ int i;
+ for (i = 1; i < (n >> 2); i++) {
+ int i1 = 2 * i;
+ int i2 = n - i1;
+
+ /* Separate even and odd FFTs */
+ ev.re = k1 * (data[i1 ] + data[i2 ]);
+ od.im = -k2 * (data[i1 ] - data[i2 ]);
+ ev.im = k1 * (data[i1 + 1] - data[i2 + 1]);
+ od.re = k2 * (data[i1 + 1] + data[i2 + 1]);
+
+ /* Apply twiddle factors to the odd FFT and add to the even FFT */
+ data[i1 ] = ev.re + od.re * _tCos[i] - od.im * _tSin[i];
+ data[i1 + 1] = ev.im + od.im * _tCos[i] + od.re * _tSin[i];
+ data[i2 ] = ev.re - od.re * _tCos[i] + od.im * _tSin[i];
+ data[i2 + 1] = -ev.im + od.im * _tCos[i] + od.re * _tSin[i];
+ }
+
+ data[2 * i + 1] = _signConvention * data[2 * i + 1];
+
+ if (_inverse) {
+ data[0] *= k1;
+ data[1] *= k1;
+
+ _fft->permute((Complex *) data);
+ _fft->calc ((Complex *) data);
+ }
+
+}
+
+} // End of namespace Common
diff --git a/common/rdft.h b/common/rdft.h
new file mode 100644
index 0000000000..68be0f4dac
--- /dev/null
+++ b/common/rdft.h
@@ -0,0 +1,70 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' (I)RDFT code which is in turn
+// Based upon the (I)RDFT code in FFmpeg
+// Copyright (c) 2009 Alex Converse <alex dot converse at gmail dot com>
+
+#ifndef COMMON_RDFT_H
+#define COMMON_RDFT_H
+
+#include "common/scummsys.h"
+#include "common/math.h"
+#include "common/fft.h"
+
+namespace Common {
+
+/**
+ * (Inverse) Real Discrete Fourier Transform.
+ *
+ * Used in engines:
+ * - scumm
+ */
+
+class RDFT {
+public:
+ enum TransformType {
+ DFT_R2C,
+ IDFT_C2R,
+ IDFT_R2C,
+ DFT_C2R
+ };
+
+ RDFT(int bits, TransformType trans);
+ ~RDFT();
+
+ void calc(float *data);
+
+private:
+ int _bits;
+ int _inverse;
+ int _signConvention;
+
+ const float *_tSin;
+ const float *_tCos;
+
+ FFT *_fft;
+};
+
+} // End of namespace Common
+
+#endif // COMMON_RDFT_H
diff --git a/common/serializer.h b/common/serializer.h
index b874624d38..5b08a9a9fa 100644
--- a/common/serializer.h
+++ b/common/serializer.h
@@ -68,15 +68,15 @@ public:
static const Version kLastVersion = 0xFFFFFFFF;
protected:
- Common::SeekableReadStream *_loadStream;
- Common::WriteStream *_saveStream;
+ SeekableReadStream *_loadStream;
+ WriteStream *_saveStream;
uint _bytesSynced;
Version _version;
public:
- Serializer(Common::SeekableReadStream *in, Common::WriteStream *out)
+ Serializer(SeekableReadStream *in, WriteStream *out)
: _loadStream(in), _saveStream(out), _bytesSynced(0), _version(0) {
assert(in || out);
}
@@ -214,7 +214,7 @@ public:
* Sync a C-string, by treating it as a zero-terminated byte sequence.
* @todo Replace this method with a special Syncer class for Common::String
*/
- void syncString(Common::String &str, Version minVersion = 0, Version maxVersion = kLastVersion) {
+ void syncString(String &str, Version minVersion = 0, Version maxVersion = kLastVersion) {
if (_version < minVersion || _version > maxVersion)
return; // Ignore anything which is not supposed to be present in this save game version
diff --git a/common/sinetables.cpp b/common/sinetables.cpp
new file mode 100644
index 0000000000..79721ec401
--- /dev/null
+++ b/common/sinetables.cpp
@@ -0,0 +1,8274 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' sine tables
+
+#include "common/scummsys.h"
+#include "common/sinetables.h"
+
+namespace Common {
+
+static const float sinTable16[8] = {
+ 0.000000f, 0.382683f, 0.707107f, 0.923880f, 0.000000f, -0.382683f, -0.707107f, -0.923880f
+};
+
+static const float sinTable32[16] = {
+ 0.000000f, 0.195090f, 0.382683f, 0.555570f, 0.707107f, 0.831470f, 0.923880f, 0.980785f,
+ 0.000000f, -0.195090f, -0.382683f, -0.555570f, -0.707107f, -0.831470f, -0.923880f, -0.980785f
+};
+
+static const float sinTable64[32] = {
+ 0.000000f, 0.098017f, 0.195090f, 0.290285f, 0.382683f, 0.471397f, 0.555570f, 0.634393f,
+ 0.707107f, 0.773010f, 0.831470f, 0.881921f, 0.923880f, 0.956940f, 0.980785f, 0.995185f,
+ 0.000000f, -0.098017f, -0.195090f, -0.290285f, -0.382683f, -0.471397f, -0.555570f, -0.634393f,
+ -0.707107f, -0.773010f, -0.831470f, -0.881921f, -0.923880f, -0.956940f, -0.980785f, -0.995185f
+};
+
+static const float sinTable128[64] = {
+ 0.000000f, 0.049068f, 0.098017f, 0.146730f, 0.195090f, 0.242980f, 0.290285f, 0.336890f,
+ 0.382683f, 0.427555f, 0.471397f, 0.514103f, 0.555570f, 0.595699f, 0.634393f, 0.671559f,
+ 0.707107f, 0.740951f, 0.773010f, 0.803208f, 0.831470f, 0.857729f, 0.881921f, 0.903989f,
+ 0.923880f, 0.941544f, 0.956940f, 0.970031f, 0.980785f, 0.989177f, 0.995185f, 0.998795f,
+ 0.000000f, -0.049068f, -0.098017f, -0.146730f, -0.195090f, -0.242980f, -0.290285f, -0.336890f,
+ -0.382683f, -0.427555f, -0.471397f, -0.514103f, -0.555570f, -0.595699f, -0.634393f, -0.671559f,
+ -0.707107f, -0.740951f, -0.773010f, -0.803208f, -0.831470f, -0.857729f, -0.881921f, -0.903989f,
+ -0.923880f, -0.941544f, -0.956940f, -0.970031f, -0.980785f, -0.989177f, -0.995185f, -0.998795f
+};
+
+static const float sinTable256[128] = {
+ 0.000000f, 0.024541f, 0.049068f, 0.073565f, 0.098017f, 0.122411f, 0.146730f, 0.170962f,
+ 0.195090f, 0.219101f, 0.242980f, 0.266713f, 0.290285f, 0.313682f, 0.336890f, 0.359895f,
+ 0.382683f, 0.405241f, 0.427555f, 0.449611f, 0.471397f, 0.492898f, 0.514103f, 0.534998f,
+ 0.555570f, 0.575808f, 0.595699f, 0.615232f, 0.634393f, 0.653173f, 0.671559f, 0.689541f,
+ 0.707107f, 0.724247f, 0.740951f, 0.757209f, 0.773010f, 0.788346f, 0.803208f, 0.817585f,
+ 0.831470f, 0.844854f, 0.857729f, 0.870087f, 0.881921f, 0.893224f, 0.903989f, 0.914210f,
+ 0.923880f, 0.932993f, 0.941544f, 0.949528f, 0.956940f, 0.963776f, 0.970031f, 0.975702f,
+ 0.980785f, 0.985278f, 0.989177f, 0.992480f, 0.995185f, 0.997290f, 0.998795f, 0.999699f,
+ 0.000000f, -0.024541f, -0.049068f, -0.073565f, -0.098017f, -0.122411f, -0.146730f, -0.170962f,
+ -0.195090f, -0.219101f, -0.242980f, -0.266713f, -0.290285f, -0.313682f, -0.336890f, -0.359895f,
+ -0.382683f, -0.405241f, -0.427555f, -0.449611f, -0.471397f, -0.492898f, -0.514103f, -0.534998f,
+ -0.555570f, -0.575808f, -0.595699f, -0.615232f, -0.634393f, -0.653173f, -0.671559f, -0.689541f,
+ -0.707107f, -0.724247f, -0.740951f, -0.757209f, -0.773010f, -0.788346f, -0.803208f, -0.817585f,
+ -0.831470f, -0.844854f, -0.857729f, -0.870087f, -0.881921f, -0.893224f, -0.903989f, -0.914210f,
+ -0.923880f, -0.932993f, -0.941544f, -0.949528f, -0.956940f, -0.963776f, -0.970031f, -0.975702f,
+ -0.980785f, -0.985278f, -0.989177f, -0.992480f, -0.995185f, -0.997290f, -0.998795f, -0.999699f
+};
+
+static const float sinTable512[256] = {
+ 0.000000f, 0.012272f, 0.024541f, 0.036807f, 0.049068f, 0.061321f, 0.073565f, 0.085797f,
+ 0.098017f, 0.110222f, 0.122411f, 0.134581f, 0.146730f, 0.158858f, 0.170962f, 0.183040f,
+ 0.195090f, 0.207111f, 0.219101f, 0.231058f, 0.242980f, 0.254866f, 0.266713f, 0.278520f,
+ 0.290285f, 0.302006f, 0.313682f, 0.325310f, 0.336890f, 0.348419f, 0.359895f, 0.371317f,
+ 0.382683f, 0.393992f, 0.405241f, 0.416430f, 0.427555f, 0.438616f, 0.449611f, 0.460539f,
+ 0.471397f, 0.482184f, 0.492898f, 0.503538f, 0.514103f, 0.524590f, 0.534998f, 0.545325f,
+ 0.555570f, 0.565732f, 0.575808f, 0.585798f, 0.595699f, 0.605511f, 0.615232f, 0.624860f,
+ 0.634393f, 0.643832f, 0.653173f, 0.662416f, 0.671559f, 0.680601f, 0.689541f, 0.698376f,
+ 0.707107f, 0.715731f, 0.724247f, 0.732654f, 0.740951f, 0.749136f, 0.757209f, 0.765167f,
+ 0.773010f, 0.780737f, 0.788346f, 0.795837f, 0.803208f, 0.810457f, 0.817585f, 0.824589f,
+ 0.831470f, 0.838225f, 0.844854f, 0.851355f, 0.857729f, 0.863973f, 0.870087f, 0.876070f,
+ 0.881921f, 0.887640f, 0.893224f, 0.898674f, 0.903989f, 0.909168f, 0.914210f, 0.919114f,
+ 0.923880f, 0.928506f, 0.932993f, 0.937339f, 0.941544f, 0.945607f, 0.949528f, 0.953306f,
+ 0.956940f, 0.960431f, 0.963776f, 0.966976f, 0.970031f, 0.972940f, 0.975702f, 0.978317f,
+ 0.980785f, 0.983105f, 0.985278f, 0.987301f, 0.989177f, 0.990903f, 0.992480f, 0.993907f,
+ 0.995185f, 0.996313f, 0.997290f, 0.998118f, 0.998795f, 0.999322f, 0.999699f, 0.999925f,
+ 0.000000f, -0.012272f, -0.024541f, -0.036807f, -0.049068f, -0.061321f, -0.073565f, -0.085797f,
+ -0.098017f, -0.110222f, -0.122411f, -0.134581f, -0.146730f, -0.158858f, -0.170962f, -0.183040f,
+ -0.195090f, -0.207111f, -0.219101f, -0.231058f, -0.242980f, -0.254866f, -0.266713f, -0.278520f,
+ -0.290285f, -0.302006f, -0.313682f, -0.325310f, -0.336890f, -0.348419f, -0.359895f, -0.371317f,
+ -0.382683f, -0.393992f, -0.405241f, -0.416430f, -0.427555f, -0.438616f, -0.449611f, -0.460539f,
+ -0.471397f, -0.482184f, -0.492898f, -0.503538f, -0.514103f, -0.524590f, -0.534998f, -0.545325f,
+ -0.555570f, -0.565732f, -0.575808f, -0.585798f, -0.595699f, -0.605511f, -0.615232f, -0.624860f,
+ -0.634393f, -0.643832f, -0.653173f, -0.662416f, -0.671559f, -0.680601f, -0.689541f, -0.698376f,
+ -0.707107f, -0.715731f, -0.724247f, -0.732654f, -0.740951f, -0.749136f, -0.757209f, -0.765167f,
+ -0.773010f, -0.780737f, -0.788346f, -0.795837f, -0.803208f, -0.810457f, -0.817585f, -0.824589f,
+ -0.831470f, -0.838225f, -0.844854f, -0.851355f, -0.857729f, -0.863973f, -0.870087f, -0.876070f,
+ -0.881921f, -0.887640f, -0.893224f, -0.898674f, -0.903989f, -0.909168f, -0.914210f, -0.919114f,
+ -0.923880f, -0.928506f, -0.932993f, -0.937339f, -0.941544f, -0.945607f, -0.949528f, -0.953306f,
+ -0.956940f, -0.960431f, -0.963776f, -0.966976f, -0.970031f, -0.972940f, -0.975702f, -0.978317f,
+ -0.980785f, -0.983105f, -0.985278f, -0.987301f, -0.989177f, -0.990903f, -0.992480f, -0.993907f,
+ -0.995185f, -0.996313f, -0.997290f, -0.998118f, -0.998795f, -0.999322f, -0.999699f, -0.999925f
+};
+
+static const float sinTable1024[512] = {
+ 0.000000f, 0.006136f, 0.012272f, 0.018407f, 0.024541f, 0.030675f, 0.036807f, 0.042938f,
+ 0.049068f, 0.055195f, 0.061321f, 0.067444f, 0.073565f, 0.079682f, 0.085797f, 0.091909f,
+ 0.098017f, 0.104122f, 0.110222f, 0.116319f, 0.122411f, 0.128498f, 0.134581f, 0.140658f,
+ 0.146730f, 0.152797f, 0.158858f, 0.164913f, 0.170962f, 0.177004f, 0.183040f, 0.189069f,
+ 0.195090f, 0.201105f, 0.207111f, 0.213110f, 0.219101f, 0.225084f, 0.231058f, 0.237024f,
+ 0.242980f, 0.248928f, 0.254866f, 0.260794f, 0.266713f, 0.272621f, 0.278520f, 0.284408f,
+ 0.290285f, 0.296151f, 0.302006f, 0.307850f, 0.313682f, 0.319502f, 0.325310f, 0.331106f,
+ 0.336890f, 0.342661f, 0.348419f, 0.354164f, 0.359895f, 0.365613f, 0.371317f, 0.377007f,
+ 0.382683f, 0.388345f, 0.393992f, 0.399624f, 0.405241f, 0.410843f, 0.416430f, 0.422000f,
+ 0.427555f, 0.433094f, 0.438616f, 0.444122f, 0.449611f, 0.455084f, 0.460539f, 0.465977f,
+ 0.471397f, 0.476799f, 0.482184f, 0.487550f, 0.492898f, 0.498228f, 0.503538f, 0.508830f,
+ 0.514103f, 0.519356f, 0.524590f, 0.529804f, 0.534998f, 0.540171f, 0.545325f, 0.550458f,
+ 0.555570f, 0.560662f, 0.565732f, 0.570781f, 0.575808f, 0.580814f, 0.585798f, 0.590760f,
+ 0.595699f, 0.600616f, 0.605511f, 0.610383f, 0.615232f, 0.620057f, 0.624860f, 0.629638f,
+ 0.634393f, 0.639124f, 0.643832f, 0.648514f, 0.653173f, 0.657807f, 0.662416f, 0.667000f,
+ 0.671559f, 0.676093f, 0.680601f, 0.685084f, 0.689541f, 0.693971f, 0.698376f, 0.702755f,
+ 0.707107f, 0.711432f, 0.715731f, 0.720003f, 0.724247f, 0.728464f, 0.732654f, 0.736817f,
+ 0.740951f, 0.745058f, 0.749136f, 0.753187f, 0.757209f, 0.761202f, 0.765167f, 0.769103f,
+ 0.773010f, 0.776888f, 0.780737f, 0.784557f, 0.788346f, 0.792107f, 0.795837f, 0.799537f,
+ 0.803208f, 0.806848f, 0.810457f, 0.814036f, 0.817585f, 0.821102f, 0.824589f, 0.828045f,
+ 0.831470f, 0.834863f, 0.838225f, 0.841555f, 0.844854f, 0.848120f, 0.851355f, 0.854558f,
+ 0.857729f, 0.860867f, 0.863973f, 0.867046f, 0.870087f, 0.873095f, 0.876070f, 0.879012f,
+ 0.881921f, 0.884797f, 0.887640f, 0.890449f, 0.893224f, 0.895966f, 0.898674f, 0.901349f,
+ 0.903989f, 0.906596f, 0.909168f, 0.911706f, 0.914210f, 0.916679f, 0.919114f, 0.921514f,
+ 0.923880f, 0.926210f, 0.928506f, 0.930767f, 0.932993f, 0.935184f, 0.937339f, 0.939459f,
+ 0.941544f, 0.943593f, 0.945607f, 0.947586f, 0.949528f, 0.951435f, 0.953306f, 0.955141f,
+ 0.956940f, 0.958703f, 0.960431f, 0.962121f, 0.963776f, 0.965394f, 0.966976f, 0.968522f,
+ 0.970031f, 0.971504f, 0.972940f, 0.974339f, 0.975702f, 0.977028f, 0.978317f, 0.979570f,
+ 0.980785f, 0.981964f, 0.983105f, 0.984210f, 0.985278f, 0.986308f, 0.987301f, 0.988258f,
+ 0.989177f, 0.990058f, 0.990903f, 0.991710f, 0.992480f, 0.993212f, 0.993907f, 0.994565f,
+ 0.995185f, 0.995767f, 0.996313f, 0.996820f, 0.997290f, 0.997723f, 0.998118f, 0.998476f,
+ 0.998795f, 0.999078f, 0.999322f, 0.999529f, 0.999699f, 0.999831f, 0.999925f, 0.999981f,
+ 0.000000f, -0.006136f, -0.012272f, -0.018407f, -0.024541f, -0.030675f, -0.036807f, -0.042938f,
+ -0.049068f, -0.055195f, -0.061321f, -0.067444f, -0.073565f, -0.079682f, -0.085797f, -0.091909f,
+ -0.098017f, -0.104122f, -0.110222f, -0.116319f, -0.122411f, -0.128498f, -0.134581f, -0.140658f,
+ -0.146730f, -0.152797f, -0.158858f, -0.164913f, -0.170962f, -0.177004f, -0.183040f, -0.189069f,
+ -0.195090f, -0.201105f, -0.207111f, -0.213110f, -0.219101f, -0.225084f, -0.231058f, -0.237024f,
+ -0.242980f, -0.248928f, -0.254866f, -0.260794f, -0.266713f, -0.272621f, -0.278520f, -0.284408f,
+ -0.290285f, -0.296151f, -0.302006f, -0.307850f, -0.313682f, -0.319502f, -0.325310f, -0.331106f,
+ -0.336890f, -0.342661f, -0.348419f, -0.354164f, -0.359895f, -0.365613f, -0.371317f, -0.377007f,
+ -0.382683f, -0.388345f, -0.393992f, -0.399624f, -0.405241f, -0.410843f, -0.416430f, -0.422000f,
+ -0.427555f, -0.433094f, -0.438616f, -0.444122f, -0.449611f, -0.455084f, -0.460539f, -0.465977f,
+ -0.471397f, -0.476799f, -0.482184f, -0.487550f, -0.492898f, -0.498228f, -0.503538f, -0.508830f,
+ -0.514103f, -0.519356f, -0.524590f, -0.529804f, -0.534998f, -0.540171f, -0.545325f, -0.550458f,
+ -0.555570f, -0.560662f, -0.565732f, -0.570781f, -0.575808f, -0.580814f, -0.585798f, -0.590760f,
+ -0.595699f, -0.600616f, -0.605511f, -0.610383f, -0.615232f, -0.620057f, -0.624860f, -0.629638f,
+ -0.634393f, -0.639124f, -0.643832f, -0.648514f, -0.653173f, -0.657807f, -0.662416f, -0.667000f,
+ -0.671559f, -0.676093f, -0.680601f, -0.685084f, -0.689541f, -0.693971f, -0.698376f, -0.702755f,
+ -0.707107f, -0.711432f, -0.715731f, -0.720003f, -0.724247f, -0.728464f, -0.732654f, -0.736817f,
+ -0.740951f, -0.745058f, -0.749136f, -0.753187f, -0.757209f, -0.761202f, -0.765167f, -0.769103f,
+ -0.773010f, -0.776888f, -0.780737f, -0.784557f, -0.788346f, -0.792107f, -0.795837f, -0.799537f,
+ -0.803208f, -0.806848f, -0.810457f, -0.814036f, -0.817585f, -0.821102f, -0.824589f, -0.828045f,
+ -0.831470f, -0.834863f, -0.838225f, -0.841555f, -0.844854f, -0.848120f, -0.851355f, -0.854558f,
+ -0.857729f, -0.860867f, -0.863973f, -0.867046f, -0.870087f, -0.873095f, -0.876070f, -0.879012f,
+ -0.881921f, -0.884797f, -0.887640f, -0.890449f, -0.893224f, -0.895966f, -0.898674f, -0.901349f,
+ -0.903989f, -0.906596f, -0.909168f, -0.911706f, -0.914210f, -0.916679f, -0.919114f, -0.921514f,
+ -0.923880f, -0.926210f, -0.928506f, -0.930767f, -0.932993f, -0.935184f, -0.937339f, -0.939459f,
+ -0.941544f, -0.943593f, -0.945607f, -0.947586f, -0.949528f, -0.951435f, -0.953306f, -0.955141f,
+ -0.956940f, -0.958703f, -0.960431f, -0.962121f, -0.963776f, -0.965394f, -0.966976f, -0.968522f,
+ -0.970031f, -0.971504f, -0.972940f, -0.974339f, -0.975702f, -0.977028f, -0.978317f, -0.979570f,
+ -0.980785f, -0.981964f, -0.983105f, -0.984210f, -0.985278f, -0.986308f, -0.987301f, -0.988258f,
+ -0.989177f, -0.990058f, -0.990903f, -0.991710f, -0.992480f, -0.993212f, -0.993907f, -0.994565f,
+ -0.995185f, -0.995767f, -0.996313f, -0.996820f, -0.997290f, -0.997723f, -0.998118f, -0.998476f,
+ -0.998795f, -0.999078f, -0.999322f, -0.999529f, -0.999699f, -0.999831f, -0.999925f, -0.999981f
+};
+
+static const float sinTable2048[1024] = {
+ 0.000000f, 0.003068f, 0.006136f, 0.009204f, 0.012272f, 0.015339f, 0.018407f, 0.021474f,
+ 0.024541f, 0.027608f, 0.030675f, 0.033741f, 0.036807f, 0.039873f, 0.042938f, 0.046003f,
+ 0.049068f, 0.052132f, 0.055195f, 0.058258f, 0.061321f, 0.064383f, 0.067444f, 0.070505f,
+ 0.073565f, 0.076624f, 0.079682f, 0.082740f, 0.085797f, 0.088854f, 0.091909f, 0.094963f,
+ 0.098017f, 0.101070f, 0.104122f, 0.107172f, 0.110222f, 0.113271f, 0.116319f, 0.119365f,
+ 0.122411f, 0.125455f, 0.128498f, 0.131540f, 0.134581f, 0.137620f, 0.140658f, 0.143695f,
+ 0.146730f, 0.149765f, 0.152797f, 0.155828f, 0.158858f, 0.161886f, 0.164913f, 0.167938f,
+ 0.170962f, 0.173984f, 0.177004f, 0.180023f, 0.183040f, 0.186055f, 0.189069f, 0.192080f,
+ 0.195090f, 0.198098f, 0.201105f, 0.204109f, 0.207111f, 0.210112f, 0.213110f, 0.216107f,
+ 0.219101f, 0.222094f, 0.225084f, 0.228072f, 0.231058f, 0.234042f, 0.237024f, 0.240003f,
+ 0.242980f, 0.245955f, 0.248928f, 0.251898f, 0.254866f, 0.257831f, 0.260794f, 0.263755f,
+ 0.266713f, 0.269668f, 0.272621f, 0.275572f, 0.278520f, 0.281465f, 0.284408f, 0.287347f,
+ 0.290285f, 0.293219f, 0.296151f, 0.299080f, 0.302006f, 0.304929f, 0.307850f, 0.310767f,
+ 0.313682f, 0.316593f, 0.319502f, 0.322408f, 0.325310f, 0.328210f, 0.331106f, 0.334000f,
+ 0.336890f, 0.339777f, 0.342661f, 0.345541f, 0.348419f, 0.351293f, 0.354164f, 0.357031f,
+ 0.359895f, 0.362756f, 0.365613f, 0.368467f, 0.371317f, 0.374164f, 0.377007f, 0.379847f,
+ 0.382683f, 0.385516f, 0.388345f, 0.391170f, 0.393992f, 0.396810f, 0.399624f, 0.402435f,
+ 0.405241f, 0.408044f, 0.410843f, 0.413638f, 0.416430f, 0.419217f, 0.422000f, 0.424780f,
+ 0.427555f, 0.430326f, 0.433094f, 0.435857f, 0.438616f, 0.441371f, 0.444122f, 0.446869f,
+ 0.449611f, 0.452350f, 0.455084f, 0.457813f, 0.460539f, 0.463260f, 0.465977f, 0.468689f,
+ 0.471397f, 0.474100f, 0.476799f, 0.479494f, 0.482184f, 0.484869f, 0.487550f, 0.490226f,
+ 0.492898f, 0.495565f, 0.498228f, 0.500885f, 0.503538f, 0.506187f, 0.508830f, 0.511469f,
+ 0.514103f, 0.516732f, 0.519356f, 0.521975f, 0.524590f, 0.527199f, 0.529804f, 0.532403f,
+ 0.534998f, 0.537587f, 0.540171f, 0.542751f, 0.545325f, 0.547894f, 0.550458f, 0.553017f,
+ 0.555570f, 0.558119f, 0.560662f, 0.563199f, 0.565732f, 0.568259f, 0.570781f, 0.573297f,
+ 0.575808f, 0.578314f, 0.580814f, 0.583309f, 0.585798f, 0.588282f, 0.590760f, 0.593232f,
+ 0.595699f, 0.598161f, 0.600616f, 0.603067f, 0.605511f, 0.607950f, 0.610383f, 0.612810f,
+ 0.615232f, 0.617647f, 0.620057f, 0.622461f, 0.624860f, 0.627252f, 0.629638f, 0.632019f,
+ 0.634393f, 0.636762f, 0.639124f, 0.641481f, 0.643832f, 0.646176f, 0.648514f, 0.650847f,
+ 0.653173f, 0.655493f, 0.657807f, 0.660114f, 0.662416f, 0.664711f, 0.667000f, 0.669283f,
+ 0.671559f, 0.673829f, 0.676093f, 0.678350f, 0.680601f, 0.682846f, 0.685084f, 0.687315f,
+ 0.689541f, 0.691759f, 0.693971f, 0.696177f, 0.698376f, 0.700569f, 0.702755f, 0.704934f,
+ 0.707107f, 0.709273f, 0.711432f, 0.713585f, 0.715731f, 0.717870f, 0.720003f, 0.722128f,
+ 0.724247f, 0.726359f, 0.728464f, 0.730563f, 0.732654f, 0.734739f, 0.736817f, 0.738887f,
+ 0.740951f, 0.743008f, 0.745058f, 0.747101f, 0.749136f, 0.751165f, 0.753187f, 0.755201f,
+ 0.757209f, 0.759209f, 0.761202f, 0.763188f, 0.765167f, 0.767139f, 0.769103f, 0.771061f,
+ 0.773010f, 0.774953f, 0.776888f, 0.778817f, 0.780737f, 0.782651f, 0.784557f, 0.786455f,
+ 0.788346f, 0.790230f, 0.792107f, 0.793975f, 0.795837f, 0.797691f, 0.799537f, 0.801376f,
+ 0.803208f, 0.805031f, 0.806848f, 0.808656f, 0.810457f, 0.812251f, 0.814036f, 0.815814f,
+ 0.817585f, 0.819348f, 0.821102f, 0.822850f, 0.824589f, 0.826321f, 0.828045f, 0.829761f,
+ 0.831470f, 0.833170f, 0.834863f, 0.836548f, 0.838225f, 0.839894f, 0.841555f, 0.843208f,
+ 0.844854f, 0.846491f, 0.848120f, 0.849742f, 0.851355f, 0.852961f, 0.854558f, 0.856147f,
+ 0.857729f, 0.859302f, 0.860867f, 0.862424f, 0.863973f, 0.865514f, 0.867046f, 0.868571f,
+ 0.870087f, 0.871595f, 0.873095f, 0.874587f, 0.876070f, 0.877545f, 0.879012f, 0.880471f,
+ 0.881921f, 0.883363f, 0.884797f, 0.886223f, 0.887640f, 0.889048f, 0.890449f, 0.891841f,
+ 0.893224f, 0.894599f, 0.895966f, 0.897325f, 0.898674f, 0.900016f, 0.901349f, 0.902673f,
+ 0.903989f, 0.905297f, 0.906596f, 0.907886f, 0.909168f, 0.910441f, 0.911706f, 0.912962f,
+ 0.914210f, 0.915449f, 0.916679f, 0.917901f, 0.919114f, 0.920318f, 0.921514f, 0.922701f,
+ 0.923880f, 0.925049f, 0.926210f, 0.927363f, 0.928506f, 0.929641f, 0.930767f, 0.931884f,
+ 0.932993f, 0.934093f, 0.935184f, 0.936266f, 0.937339f, 0.938404f, 0.939459f, 0.940506f,
+ 0.941544f, 0.942573f, 0.943593f, 0.944605f, 0.945607f, 0.946601f, 0.947586f, 0.948561f,
+ 0.949528f, 0.950486f, 0.951435f, 0.952375f, 0.953306f, 0.954228f, 0.955141f, 0.956045f,
+ 0.956940f, 0.957826f, 0.958703f, 0.959572f, 0.960431f, 0.961280f, 0.962121f, 0.962953f,
+ 0.963776f, 0.964590f, 0.965394f, 0.966190f, 0.966976f, 0.967754f, 0.968522f, 0.969281f,
+ 0.970031f, 0.970772f, 0.971504f, 0.972227f, 0.972940f, 0.973644f, 0.974339f, 0.975025f,
+ 0.975702f, 0.976370f, 0.977028f, 0.977677f, 0.978317f, 0.978948f, 0.979570f, 0.980182f,
+ 0.980785f, 0.981379f, 0.981964f, 0.982539f, 0.983105f, 0.983662f, 0.984210f, 0.984748f,
+ 0.985278f, 0.985798f, 0.986308f, 0.986809f, 0.987301f, 0.987784f, 0.988258f, 0.988722f,
+ 0.989177f, 0.989622f, 0.990058f, 0.990485f, 0.990903f, 0.991311f, 0.991710f, 0.992099f,
+ 0.992480f, 0.992850f, 0.993212f, 0.993564f, 0.993907f, 0.994240f, 0.994565f, 0.994879f,
+ 0.995185f, 0.995481f, 0.995767f, 0.996045f, 0.996313f, 0.996571f, 0.996820f, 0.997060f,
+ 0.997290f, 0.997511f, 0.997723f, 0.997925f, 0.998118f, 0.998302f, 0.998476f, 0.998640f,
+ 0.998795f, 0.998941f, 0.999078f, 0.999205f, 0.999322f, 0.999431f, 0.999529f, 0.999619f,
+ 0.999699f, 0.999769f, 0.999831f, 0.999882f, 0.999925f, 0.999958f, 0.999981f, 0.999995f,
+ 0.000000f, -0.003068f, -0.006136f, -0.009204f, -0.012272f, -0.015339f, -0.018407f, -0.021474f,
+ -0.024541f, -0.027608f, -0.030675f, -0.033741f, -0.036807f, -0.039873f, -0.042938f, -0.046003f,
+ -0.049068f, -0.052132f, -0.055195f, -0.058258f, -0.061321f, -0.064383f, -0.067444f, -0.070505f,
+ -0.073565f, -0.076624f, -0.079682f, -0.082740f, -0.085797f, -0.088854f, -0.091909f, -0.094963f,
+ -0.098017f, -0.101070f, -0.104122f, -0.107172f, -0.110222f, -0.113271f, -0.116319f, -0.119365f,
+ -0.122411f, -0.125455f, -0.128498f, -0.131540f, -0.134581f, -0.137620f, -0.140658f, -0.143695f,
+ -0.146730f, -0.149765f, -0.152797f, -0.155828f, -0.158858f, -0.161886f, -0.164913f, -0.167938f,
+ -0.170962f, -0.173984f, -0.177004f, -0.180023f, -0.183040f, -0.186055f, -0.189069f, -0.192080f,
+ -0.195090f, -0.198098f, -0.201105f, -0.204109f, -0.207111f, -0.210112f, -0.213110f, -0.216107f,
+ -0.219101f, -0.222094f, -0.225084f, -0.228072f, -0.231058f, -0.234042f, -0.237024f, -0.240003f,
+ -0.242980f, -0.245955f, -0.248928f, -0.251898f, -0.254866f, -0.257831f, -0.260794f, -0.263755f,
+ -0.266713f, -0.269668f, -0.272621f, -0.275572f, -0.278520f, -0.281465f, -0.284408f, -0.287347f,
+ -0.290285f, -0.293219f, -0.296151f, -0.299080f, -0.302006f, -0.304929f, -0.307850f, -0.310767f,
+ -0.313682f, -0.316593f, -0.319502f, -0.322408f, -0.325310f, -0.328210f, -0.331106f, -0.334000f,
+ -0.336890f, -0.339777f, -0.342661f, -0.345541f, -0.348419f, -0.351293f, -0.354164f, -0.357031f,
+ -0.359895f, -0.362756f, -0.365613f, -0.368467f, -0.371317f, -0.374164f, -0.377007f, -0.379847f,
+ -0.382683f, -0.385516f, -0.388345f, -0.391170f, -0.393992f, -0.396810f, -0.399624f, -0.402435f,
+ -0.405241f, -0.408044f, -0.410843f, -0.413638f, -0.416430f, -0.419217f, -0.422000f, -0.424780f,
+ -0.427555f, -0.430326f, -0.433094f, -0.435857f, -0.438616f, -0.441371f, -0.444122f, -0.446869f,
+ -0.449611f, -0.452350f, -0.455084f, -0.457813f, -0.460539f, -0.463260f, -0.465977f, -0.468689f,
+ -0.471397f, -0.474100f, -0.476799f, -0.479494f, -0.482184f, -0.484869f, -0.487550f, -0.490226f,
+ -0.492898f, -0.495565f, -0.498228f, -0.500885f, -0.503538f, -0.506187f, -0.508830f, -0.511469f,
+ -0.514103f, -0.516732f, -0.519356f, -0.521975f, -0.524590f, -0.527199f, -0.529804f, -0.532403f,
+ -0.534998f, -0.537587f, -0.540171f, -0.542751f, -0.545325f, -0.547894f, -0.550458f, -0.553017f,
+ -0.555570f, -0.558119f, -0.560662f, -0.563199f, -0.565732f, -0.568259f, -0.570781f, -0.573297f,
+ -0.575808f, -0.578314f, -0.580814f, -0.583309f, -0.585798f, -0.588282f, -0.590760f, -0.593232f,
+ -0.595699f, -0.598161f, -0.600616f, -0.603067f, -0.605511f, -0.607950f, -0.610383f, -0.612810f,
+ -0.615232f, -0.617647f, -0.620057f, -0.622461f, -0.624860f, -0.627252f, -0.629638f, -0.632019f,
+ -0.634393f, -0.636762f, -0.639124f, -0.641481f, -0.643832f, -0.646176f, -0.648514f, -0.650847f,
+ -0.653173f, -0.655493f, -0.657807f, -0.660114f, -0.662416f, -0.664711f, -0.667000f, -0.669283f,
+ -0.671559f, -0.673829f, -0.676093f, -0.678350f, -0.680601f, -0.682846f, -0.685084f, -0.687315f,
+ -0.689541f, -0.691759f, -0.693971f, -0.696177f, -0.698376f, -0.700569f, -0.702755f, -0.704934f,
+ -0.707107f, -0.709273f, -0.711432f, -0.713585f, -0.715731f, -0.717870f, -0.720003f, -0.722128f,
+ -0.724247f, -0.726359f, -0.728464f, -0.730563f, -0.732654f, -0.734739f, -0.736817f, -0.738887f,
+ -0.740951f, -0.743008f, -0.745058f, -0.747101f, -0.749136f, -0.751165f, -0.753187f, -0.755201f,
+ -0.757209f, -0.759209f, -0.761202f, -0.763188f, -0.765167f, -0.767139f, -0.769103f, -0.771061f,
+ -0.773010f, -0.774953f, -0.776888f, -0.778817f, -0.780737f, -0.782651f, -0.784557f, -0.786455f,
+ -0.788346f, -0.790230f, -0.792107f, -0.793975f, -0.795837f, -0.797691f, -0.799537f, -0.801376f,
+ -0.803208f, -0.805031f, -0.806848f, -0.808656f, -0.810457f, -0.812251f, -0.814036f, -0.815814f,
+ -0.817585f, -0.819348f, -0.821102f, -0.822850f, -0.824589f, -0.826321f, -0.828045f, -0.829761f,
+ -0.831470f, -0.833170f, -0.834863f, -0.836548f, -0.838225f, -0.839894f, -0.841555f, -0.843208f,
+ -0.844854f, -0.846491f, -0.848120f, -0.849742f, -0.851355f, -0.852961f, -0.854558f, -0.856147f,
+ -0.857729f, -0.859302f, -0.860867f, -0.862424f, -0.863973f, -0.865514f, -0.867046f, -0.868571f,
+ -0.870087f, -0.871595f, -0.873095f, -0.874587f, -0.876070f, -0.877545f, -0.879012f, -0.880471f,
+ -0.881921f, -0.883363f, -0.884797f, -0.886223f, -0.887640f, -0.889048f, -0.890449f, -0.891841f,
+ -0.893224f, -0.894599f, -0.895966f, -0.897325f, -0.898674f, -0.900016f, -0.901349f, -0.902673f,
+ -0.903989f, -0.905297f, -0.906596f, -0.907886f, -0.909168f, -0.910441f, -0.911706f, -0.912962f,
+ -0.914210f, -0.915449f, -0.916679f, -0.917901f, -0.919114f, -0.920318f, -0.921514f, -0.922701f,
+ -0.923880f, -0.925049f, -0.926210f, -0.927363f, -0.928506f, -0.929641f, -0.930767f, -0.931884f,
+ -0.932993f, -0.934093f, -0.935184f, -0.936266f, -0.937339f, -0.938404f, -0.939459f, -0.940506f,
+ -0.941544f, -0.942573f, -0.943593f, -0.944605f, -0.945607f, -0.946601f, -0.947586f, -0.948561f,
+ -0.949528f, -0.950486f, -0.951435f, -0.952375f, -0.953306f, -0.954228f, -0.955141f, -0.956045f,
+ -0.956940f, -0.957826f, -0.958703f, -0.959572f, -0.960431f, -0.961280f, -0.962121f, -0.962953f,
+ -0.963776f, -0.964590f, -0.965394f, -0.966190f, -0.966976f, -0.967754f, -0.968522f, -0.969281f,
+ -0.970031f, -0.970772f, -0.971504f, -0.972227f, -0.972940f, -0.973644f, -0.974339f, -0.975025f,
+ -0.975702f, -0.976370f, -0.977028f, -0.977677f, -0.978317f, -0.978948f, -0.979570f, -0.980182f,
+ -0.980785f, -0.981379f, -0.981964f, -0.982539f, -0.983105f, -0.983662f, -0.984210f, -0.984748f,
+ -0.985278f, -0.985798f, -0.986308f, -0.986809f, -0.987301f, -0.987784f, -0.988258f, -0.988722f,
+ -0.989177f, -0.989622f, -0.990058f, -0.990485f, -0.990903f, -0.991311f, -0.991710f, -0.992099f,
+ -0.992480f, -0.992850f, -0.993212f, -0.993564f, -0.993907f, -0.994240f, -0.994565f, -0.994879f,
+ -0.995185f, -0.995481f, -0.995767f, -0.996045f, -0.996313f, -0.996571f, -0.996820f, -0.997060f,
+ -0.997290f, -0.997511f, -0.997723f, -0.997925f, -0.998118f, -0.998302f, -0.998476f, -0.998640f,
+ -0.998795f, -0.998941f, -0.999078f, -0.999205f, -0.999322f, -0.999431f, -0.999529f, -0.999619f,
+ -0.999699f, -0.999769f, -0.999831f, -0.999882f, -0.999925f, -0.999958f, -0.999981f, -0.999995f
+};
+
+static const float sinTable4096[2048] = {
+ 0.000000f, 0.001534f, 0.003068f, 0.004602f, 0.006136f, 0.007670f, 0.009204f, 0.010738f,
+ 0.012272f, 0.013805f, 0.015339f, 0.016873f, 0.018407f, 0.019940f, 0.021474f, 0.023008f,
+ 0.024541f, 0.026075f, 0.027608f, 0.029142f, 0.030675f, 0.032208f, 0.033741f, 0.035274f,
+ 0.036807f, 0.038340f, 0.039873f, 0.041406f, 0.042938f, 0.044471f, 0.046003f, 0.047535f,
+ 0.049068f, 0.050600f, 0.052132f, 0.053664f, 0.055195f, 0.056727f, 0.058258f, 0.059790f,
+ 0.061321f, 0.062852f, 0.064383f, 0.065913f, 0.067444f, 0.068974f, 0.070505f, 0.072035f,
+ 0.073565f, 0.075094f, 0.076624f, 0.078153f, 0.079682f, 0.081211f, 0.082740f, 0.084269f,
+ 0.085797f, 0.087326f, 0.088854f, 0.090381f, 0.091909f, 0.093436f, 0.094963f, 0.096490f,
+ 0.098017f, 0.099544f, 0.101070f, 0.102596f, 0.104122f, 0.105647f, 0.107172f, 0.108697f,
+ 0.110222f, 0.111747f, 0.113271f, 0.114795f, 0.116319f, 0.117842f, 0.119365f, 0.120888f,
+ 0.122411f, 0.123933f, 0.125455f, 0.126977f, 0.128498f, 0.130019f, 0.131540f, 0.133061f,
+ 0.134581f, 0.136101f, 0.137620f, 0.139139f, 0.140658f, 0.142177f, 0.143695f, 0.145213f,
+ 0.146730f, 0.148248f, 0.149765f, 0.151281f, 0.152797f, 0.154313f, 0.155828f, 0.157343f,
+ 0.158858f, 0.160372f, 0.161886f, 0.163400f, 0.164913f, 0.166426f, 0.167938f, 0.169450f,
+ 0.170962f, 0.172473f, 0.173984f, 0.175494f, 0.177004f, 0.178514f, 0.180023f, 0.181532f,
+ 0.183040f, 0.184548f, 0.186055f, 0.187562f, 0.189069f, 0.190575f, 0.192080f, 0.193586f,
+ 0.195090f, 0.196595f, 0.198098f, 0.199602f, 0.201105f, 0.202607f, 0.204109f, 0.205610f,
+ 0.207111f, 0.208612f, 0.210112f, 0.211611f, 0.213110f, 0.214609f, 0.216107f, 0.217604f,
+ 0.219101f, 0.220598f, 0.222094f, 0.223589f, 0.225084f, 0.226578f, 0.228072f, 0.229565f,
+ 0.231058f, 0.232550f, 0.234042f, 0.235533f, 0.237024f, 0.238514f, 0.240003f, 0.241492f,
+ 0.242980f, 0.244468f, 0.245955f, 0.247442f, 0.248928f, 0.250413f, 0.251898f, 0.253382f,
+ 0.254866f, 0.256349f, 0.257831f, 0.259313f, 0.260794f, 0.262275f, 0.263755f, 0.265234f,
+ 0.266713f, 0.268191f, 0.269668f, 0.271145f, 0.272621f, 0.274097f, 0.275572f, 0.277046f,
+ 0.278520f, 0.279993f, 0.281465f, 0.282937f, 0.284408f, 0.285878f, 0.287347f, 0.288816f,
+ 0.290285f, 0.291752f, 0.293219f, 0.294685f, 0.296151f, 0.297616f, 0.299080f, 0.300543f,
+ 0.302006f, 0.303468f, 0.304929f, 0.306390f, 0.307850f, 0.309309f, 0.310767f, 0.312225f,
+ 0.313682f, 0.315138f, 0.316593f, 0.318048f, 0.319502f, 0.320955f, 0.322408f, 0.323859f,
+ 0.325310f, 0.326760f, 0.328210f, 0.329658f, 0.331106f, 0.332553f, 0.334000f, 0.335445f,
+ 0.336890f, 0.338334f, 0.339777f, 0.341219f, 0.342661f, 0.344101f, 0.345541f, 0.346980f,
+ 0.348419f, 0.349856f, 0.351293f, 0.352729f, 0.354164f, 0.355598f, 0.357031f, 0.358463f,
+ 0.359895f, 0.361326f, 0.362756f, 0.364185f, 0.365613f, 0.367040f, 0.368467f, 0.369892f,
+ 0.371317f, 0.372741f, 0.374164f, 0.375586f, 0.377007f, 0.378428f, 0.379847f, 0.381266f,
+ 0.382683f, 0.384100f, 0.385516f, 0.386931f, 0.388345f, 0.389758f, 0.391170f, 0.392582f,
+ 0.393992f, 0.395401f, 0.396810f, 0.398218f, 0.399624f, 0.401030f, 0.402435f, 0.403838f,
+ 0.405241f, 0.406643f, 0.408044f, 0.409444f, 0.410843f, 0.412241f, 0.413638f, 0.415034f,
+ 0.416430f, 0.417824f, 0.419217f, 0.420609f, 0.422000f, 0.423390f, 0.424780f, 0.426168f,
+ 0.427555f, 0.428941f, 0.430326f, 0.431711f, 0.433094f, 0.434476f, 0.435857f, 0.437237f,
+ 0.438616f, 0.439994f, 0.441371f, 0.442747f, 0.444122f, 0.445496f, 0.446869f, 0.448241f,
+ 0.449611f, 0.450981f, 0.452350f, 0.453717f, 0.455084f, 0.456449f, 0.457813f, 0.459177f,
+ 0.460539f, 0.461900f, 0.463260f, 0.464619f, 0.465977f, 0.467333f, 0.468689f, 0.470043f,
+ 0.471397f, 0.472749f, 0.474100f, 0.475450f, 0.476799f, 0.478147f, 0.479494f, 0.480839f,
+ 0.482184f, 0.483527f, 0.484869f, 0.486210f, 0.487550f, 0.488889f, 0.490226f, 0.491563f,
+ 0.492898f, 0.494232f, 0.495565f, 0.496897f, 0.498228f, 0.499557f, 0.500885f, 0.502212f,
+ 0.503538f, 0.504863f, 0.506187f, 0.507509f, 0.508830f, 0.510150f, 0.511469f, 0.512786f,
+ 0.514103f, 0.515418f, 0.516732f, 0.518045f, 0.519356f, 0.520666f, 0.521975f, 0.523283f,
+ 0.524590f, 0.525895f, 0.527199f, 0.528502f, 0.529804f, 0.531104f, 0.532403f, 0.533701f,
+ 0.534998f, 0.536293f, 0.537587f, 0.538880f, 0.540171f, 0.541462f, 0.542751f, 0.544039f,
+ 0.545325f, 0.546610f, 0.547894f, 0.549177f, 0.550458f, 0.551738f, 0.553017f, 0.554294f,
+ 0.555570f, 0.556845f, 0.558119f, 0.559391f, 0.560662f, 0.561931f, 0.563199f, 0.564466f,
+ 0.565732f, 0.566996f, 0.568259f, 0.569521f, 0.570781f, 0.572040f, 0.573297f, 0.574553f,
+ 0.575808f, 0.577062f, 0.578314f, 0.579565f, 0.580814f, 0.582062f, 0.583309f, 0.584554f,
+ 0.585798f, 0.587040f, 0.588282f, 0.589521f, 0.590760f, 0.591997f, 0.593232f, 0.594467f,
+ 0.595699f, 0.596931f, 0.598161f, 0.599389f, 0.600616f, 0.601842f, 0.603067f, 0.604290f,
+ 0.605511f, 0.606731f, 0.607950f, 0.609167f, 0.610383f, 0.611597f, 0.612810f, 0.614022f,
+ 0.615232f, 0.616440f, 0.617647f, 0.618853f, 0.620057f, 0.621260f, 0.622461f, 0.623661f,
+ 0.624860f, 0.626056f, 0.627252f, 0.628446f, 0.629638f, 0.630829f, 0.632019f, 0.633207f,
+ 0.634393f, 0.635578f, 0.636762f, 0.637944f, 0.639124f, 0.640303f, 0.641481f, 0.642657f,
+ 0.643832f, 0.645005f, 0.646176f, 0.647346f, 0.648514f, 0.649681f, 0.650847f, 0.652011f,
+ 0.653173f, 0.654334f, 0.655493f, 0.656651f, 0.657807f, 0.658961f, 0.660114f, 0.661266f,
+ 0.662416f, 0.663564f, 0.664711f, 0.665856f, 0.667000f, 0.668142f, 0.669283f, 0.670422f,
+ 0.671559f, 0.672695f, 0.673829f, 0.674962f, 0.676093f, 0.677222f, 0.678350f, 0.679476f,
+ 0.680601f, 0.681724f, 0.682846f, 0.683965f, 0.685084f, 0.686200f, 0.687315f, 0.688429f,
+ 0.689541f, 0.690651f, 0.691759f, 0.692866f, 0.693971f, 0.695075f, 0.696177f, 0.697277f,
+ 0.698376f, 0.699473f, 0.700569f, 0.701663f, 0.702755f, 0.703845f, 0.704934f, 0.706021f,
+ 0.707107f, 0.708191f, 0.709273f, 0.710353f, 0.711432f, 0.712509f, 0.713585f, 0.714659f,
+ 0.715731f, 0.716801f, 0.717870f, 0.718937f, 0.720003f, 0.721066f, 0.722128f, 0.723188f,
+ 0.724247f, 0.725304f, 0.726359f, 0.727413f, 0.728464f, 0.729514f, 0.730563f, 0.731609f,
+ 0.732654f, 0.733697f, 0.734739f, 0.735779f, 0.736817f, 0.737853f, 0.738887f, 0.739920f,
+ 0.740951f, 0.741980f, 0.743008f, 0.744034f, 0.745058f, 0.746080f, 0.747101f, 0.748119f,
+ 0.749136f, 0.750152f, 0.751165f, 0.752177f, 0.753187f, 0.754195f, 0.755201f, 0.756206f,
+ 0.757209f, 0.758210f, 0.759209f, 0.760207f, 0.761202f, 0.762196f, 0.763188f, 0.764179f,
+ 0.765167f, 0.766154f, 0.767139f, 0.768122f, 0.769103f, 0.770083f, 0.771061f, 0.772036f,
+ 0.773010f, 0.773983f, 0.774953f, 0.775922f, 0.776888f, 0.777853f, 0.778817f, 0.779778f,
+ 0.780737f, 0.781695f, 0.782651f, 0.783605f, 0.784557f, 0.785507f, 0.786455f, 0.787402f,
+ 0.788346f, 0.789289f, 0.790230f, 0.791169f, 0.792107f, 0.793042f, 0.793975f, 0.794907f,
+ 0.795837f, 0.796765f, 0.797691f, 0.798615f, 0.799537f, 0.800458f, 0.801376f, 0.802293f,
+ 0.803208f, 0.804120f, 0.805031f, 0.805940f, 0.806848f, 0.807753f, 0.808656f, 0.809558f,
+ 0.810457f, 0.811355f, 0.812251f, 0.813144f, 0.814036f, 0.814926f, 0.815814f, 0.816701f,
+ 0.817585f, 0.818467f, 0.819348f, 0.820226f, 0.821102f, 0.821977f, 0.822850f, 0.823721f,
+ 0.824589f, 0.825456f, 0.826321f, 0.827184f, 0.828045f, 0.828904f, 0.829761f, 0.830616f,
+ 0.831470f, 0.832321f, 0.833170f, 0.834018f, 0.834863f, 0.835706f, 0.836548f, 0.837387f,
+ 0.838225f, 0.839060f, 0.839894f, 0.840725f, 0.841555f, 0.842383f, 0.843208f, 0.844032f,
+ 0.844854f, 0.845673f, 0.846491f, 0.847307f, 0.848120f, 0.848932f, 0.849742f, 0.850549f,
+ 0.851355f, 0.852159f, 0.852961f, 0.853760f, 0.854558f, 0.855354f, 0.856147f, 0.856939f,
+ 0.857729f, 0.858516f, 0.859302f, 0.860085f, 0.860867f, 0.861646f, 0.862424f, 0.863199f,
+ 0.863973f, 0.864744f, 0.865514f, 0.866281f, 0.867046f, 0.867809f, 0.868571f, 0.869330f,
+ 0.870087f, 0.870842f, 0.871595f, 0.872346f, 0.873095f, 0.873842f, 0.874587f, 0.875329f,
+ 0.876070f, 0.876809f, 0.877545f, 0.878280f, 0.879012f, 0.879743f, 0.880471f, 0.881197f,
+ 0.881921f, 0.882643f, 0.883363f, 0.884081f, 0.884797f, 0.885511f, 0.886223f, 0.886932f,
+ 0.887640f, 0.888345f, 0.889048f, 0.889750f, 0.890449f, 0.891146f, 0.891841f, 0.892534f,
+ 0.893224f, 0.893913f, 0.894599f, 0.895284f, 0.895966f, 0.896646f, 0.897325f, 0.898001f,
+ 0.898674f, 0.899346f, 0.900016f, 0.900683f, 0.901349f, 0.902012f, 0.902673f, 0.903332f,
+ 0.903989f, 0.904644f, 0.905297f, 0.905947f, 0.906596f, 0.907242f, 0.907886f, 0.908528f,
+ 0.909168f, 0.909806f, 0.910441f, 0.911075f, 0.911706f, 0.912335f, 0.912962f, 0.913587f,
+ 0.914210f, 0.914830f, 0.915449f, 0.916065f, 0.916679f, 0.917291f, 0.917901f, 0.918508f,
+ 0.919114f, 0.919717f, 0.920318f, 0.920917f, 0.921514f, 0.922109f, 0.922701f, 0.923291f,
+ 0.923880f, 0.924465f, 0.925049f, 0.925631f, 0.926210f, 0.926787f, 0.927363f, 0.927935f,
+ 0.928506f, 0.929075f, 0.929641f, 0.930205f, 0.930767f, 0.931327f, 0.931884f, 0.932440f,
+ 0.932993f, 0.933544f, 0.934093f, 0.934639f, 0.935184f, 0.935726f, 0.936266f, 0.936803f,
+ 0.937339f, 0.937872f, 0.938404f, 0.938932f, 0.939459f, 0.939984f, 0.940506f, 0.941026f,
+ 0.941544f, 0.942060f, 0.942573f, 0.943084f, 0.943593f, 0.944100f, 0.944605f, 0.945107f,
+ 0.945607f, 0.946105f, 0.946601f, 0.947094f, 0.947586f, 0.948075f, 0.948561f, 0.949046f,
+ 0.949528f, 0.950008f, 0.950486f, 0.950962f, 0.951435f, 0.951906f, 0.952375f, 0.952842f,
+ 0.953306f, 0.953768f, 0.954228f, 0.954686f, 0.955141f, 0.955594f, 0.956045f, 0.956494f,
+ 0.956940f, 0.957385f, 0.957826f, 0.958266f, 0.958703f, 0.959139f, 0.959572f, 0.960002f,
+ 0.960431f, 0.960857f, 0.961280f, 0.961702f, 0.962121f, 0.962538f, 0.962953f, 0.963366f,
+ 0.963776f, 0.964184f, 0.964590f, 0.964993f, 0.965394f, 0.965793f, 0.966190f, 0.966584f,
+ 0.966976f, 0.967366f, 0.967754f, 0.968139f, 0.968522f, 0.968903f, 0.969281f, 0.969657f,
+ 0.970031f, 0.970403f, 0.970772f, 0.971139f, 0.971504f, 0.971866f, 0.972227f, 0.972584f,
+ 0.972940f, 0.973293f, 0.973644f, 0.973993f, 0.974339f, 0.974684f, 0.975025f, 0.975365f,
+ 0.975702f, 0.976037f, 0.976370f, 0.976700f, 0.977028f, 0.977354f, 0.977677f, 0.977998f,
+ 0.978317f, 0.978634f, 0.978948f, 0.979260f, 0.979570f, 0.979877f, 0.980182f, 0.980485f,
+ 0.980785f, 0.981083f, 0.981379f, 0.981673f, 0.981964f, 0.982253f, 0.982539f, 0.982824f,
+ 0.983105f, 0.983385f, 0.983662f, 0.983937f, 0.984210f, 0.984480f, 0.984748f, 0.985014f,
+ 0.985278f, 0.985539f, 0.985798f, 0.986054f, 0.986308f, 0.986560f, 0.986809f, 0.987057f,
+ 0.987301f, 0.987544f, 0.987784f, 0.988022f, 0.988258f, 0.988491f, 0.988722f, 0.988950f,
+ 0.989177f, 0.989400f, 0.989622f, 0.989841f, 0.990058f, 0.990273f, 0.990485f, 0.990695f,
+ 0.990903f, 0.991108f, 0.991311f, 0.991511f, 0.991710f, 0.991906f, 0.992099f, 0.992291f,
+ 0.992480f, 0.992666f, 0.992850f, 0.993032f, 0.993212f, 0.993389f, 0.993564f, 0.993737f,
+ 0.993907f, 0.994075f, 0.994240f, 0.994404f, 0.994565f, 0.994723f, 0.994879f, 0.995033f,
+ 0.995185f, 0.995334f, 0.995481f, 0.995625f, 0.995767f, 0.995907f, 0.996045f, 0.996180f,
+ 0.996313f, 0.996443f, 0.996571f, 0.996697f, 0.996820f, 0.996941f, 0.997060f, 0.997176f,
+ 0.997290f, 0.997402f, 0.997511f, 0.997618f, 0.997723f, 0.997825f, 0.997925f, 0.998023f,
+ 0.998118f, 0.998211f, 0.998302f, 0.998390f, 0.998476f, 0.998559f, 0.998640f, 0.998719f,
+ 0.998795f, 0.998870f, 0.998941f, 0.999011f, 0.999078f, 0.999142f, 0.999205f, 0.999265f,
+ 0.999322f, 0.999378f, 0.999431f, 0.999481f, 0.999529f, 0.999575f, 0.999619f, 0.999660f,
+ 0.999699f, 0.999735f, 0.999769f, 0.999801f, 0.999831f, 0.999858f, 0.999882f, 0.999905f,
+ 0.999925f, 0.999942f, 0.999958f, 0.999971f, 0.999981f, 0.999989f, 0.999995f, 0.999999f,
+ 0.000000f, -0.001534f, -0.003068f, -0.004602f, -0.006136f, -0.007670f, -0.009204f, -0.010738f,
+ -0.012272f, -0.013805f, -0.015339f, -0.016873f, -0.018407f, -0.019940f, -0.021474f, -0.023008f,
+ -0.024541f, -0.026075f, -0.027608f, -0.029142f, -0.030675f, -0.032208f, -0.033741f, -0.035274f,
+ -0.036807f, -0.038340f, -0.039873f, -0.041406f, -0.042938f, -0.044471f, -0.046003f, -0.047535f,
+ -0.049068f, -0.050600f, -0.052132f, -0.053664f, -0.055195f, -0.056727f, -0.058258f, -0.059790f,
+ -0.061321f, -0.062852f, -0.064383f, -0.065913f, -0.067444f, -0.068974f, -0.070505f, -0.072035f,
+ -0.073565f, -0.075094f, -0.076624f, -0.078153f, -0.079682f, -0.081211f, -0.082740f, -0.084269f,
+ -0.085797f, -0.087326f, -0.088854f, -0.090381f, -0.091909f, -0.093436f, -0.094963f, -0.096490f,
+ -0.098017f, -0.099544f, -0.101070f, -0.102596f, -0.104122f, -0.105647f, -0.107172f, -0.108697f,
+ -0.110222f, -0.111747f, -0.113271f, -0.114795f, -0.116319f, -0.117842f, -0.119365f, -0.120888f,
+ -0.122411f, -0.123933f, -0.125455f, -0.126977f, -0.128498f, -0.130019f, -0.131540f, -0.133061f,
+ -0.134581f, -0.136101f, -0.137620f, -0.139139f, -0.140658f, -0.142177f, -0.143695f, -0.145213f,
+ -0.146730f, -0.148248f, -0.149765f, -0.151281f, -0.152797f, -0.154313f, -0.155828f, -0.157343f,
+ -0.158858f, -0.160372f, -0.161886f, -0.163400f, -0.164913f, -0.166426f, -0.167938f, -0.169450f,
+ -0.170962f, -0.172473f, -0.173984f, -0.175494f, -0.177004f, -0.178514f, -0.180023f, -0.181532f,
+ -0.183040f, -0.184548f, -0.186055f, -0.187562f, -0.189069f, -0.190575f, -0.192080f, -0.193586f,
+ -0.195090f, -0.196595f, -0.198098f, -0.199602f, -0.201105f, -0.202607f, -0.204109f, -0.205610f,
+ -0.207111f, -0.208612f, -0.210112f, -0.211611f, -0.213110f, -0.214609f, -0.216107f, -0.217604f,
+ -0.219101f, -0.220598f, -0.222094f, -0.223589f, -0.225084f, -0.226578f, -0.228072f, -0.229565f,
+ -0.231058f, -0.232550f, -0.234042f, -0.235533f, -0.237024f, -0.238514f, -0.240003f, -0.241492f,
+ -0.242980f, -0.244468f, -0.245955f, -0.247442f, -0.248928f, -0.250413f, -0.251898f, -0.253382f,
+ -0.254866f, -0.256349f, -0.257831f, -0.259313f, -0.260794f, -0.262275f, -0.263755f, -0.265234f,
+ -0.266713f, -0.268191f, -0.269668f, -0.271145f, -0.272621f, -0.274097f, -0.275572f, -0.277046f,
+ -0.278520f, -0.279993f, -0.281465f, -0.282937f, -0.284408f, -0.285878f, -0.287347f, -0.288816f,
+ -0.290285f, -0.291752f, -0.293219f, -0.294685f, -0.296151f, -0.297616f, -0.299080f, -0.300543f,
+ -0.302006f, -0.303468f, -0.304929f, -0.306390f, -0.307850f, -0.309309f, -0.310767f, -0.312225f,
+ -0.313682f, -0.315138f, -0.316593f, -0.318048f, -0.319502f, -0.320955f, -0.322408f, -0.323859f,
+ -0.325310f, -0.326760f, -0.328210f, -0.329658f, -0.331106f, -0.332553f, -0.334000f, -0.335445f,
+ -0.336890f, -0.338334f, -0.339777f, -0.341219f, -0.342661f, -0.344101f, -0.345541f, -0.346980f,
+ -0.348419f, -0.349856f, -0.351293f, -0.352729f, -0.354164f, -0.355598f, -0.357031f, -0.358463f,
+ -0.359895f, -0.361326f, -0.362756f, -0.364185f, -0.365613f, -0.367040f, -0.368467f, -0.369892f,
+ -0.371317f, -0.372741f, -0.374164f, -0.375586f, -0.377007f, -0.378428f, -0.379847f, -0.381266f,
+ -0.382683f, -0.384100f, -0.385516f, -0.386931f, -0.388345f, -0.389758f, -0.391170f, -0.392582f,
+ -0.393992f, -0.395401f, -0.396810f, -0.398218f, -0.399624f, -0.401030f, -0.402435f, -0.403838f,
+ -0.405241f, -0.406643f, -0.408044f, -0.409444f, -0.410843f, -0.412241f, -0.413638f, -0.415034f,
+ -0.416430f, -0.417824f, -0.419217f, -0.420609f, -0.422000f, -0.423390f, -0.424780f, -0.426168f,
+ -0.427555f, -0.428941f, -0.430326f, -0.431711f, -0.433094f, -0.434476f, -0.435857f, -0.437237f,
+ -0.438616f, -0.439994f, -0.441371f, -0.442747f, -0.444122f, -0.445496f, -0.446869f, -0.448241f,
+ -0.449611f, -0.450981f, -0.452350f, -0.453717f, -0.455084f, -0.456449f, -0.457813f, -0.459177f,
+ -0.460539f, -0.461900f, -0.463260f, -0.464619f, -0.465977f, -0.467333f, -0.468689f, -0.470043f,
+ -0.471397f, -0.472749f, -0.474100f, -0.475450f, -0.476799f, -0.478147f, -0.479494f, -0.480839f,
+ -0.482184f, -0.483527f, -0.484869f, -0.486210f, -0.487550f, -0.488889f, -0.490226f, -0.491563f,
+ -0.492898f, -0.494232f, -0.495565f, -0.496897f, -0.498228f, -0.499557f, -0.500885f, -0.502212f,
+ -0.503538f, -0.504863f, -0.506187f, -0.507509f, -0.508830f, -0.510150f, -0.511469f, -0.512786f,
+ -0.514103f, -0.515418f, -0.516732f, -0.518045f, -0.519356f, -0.520666f, -0.521975f, -0.523283f,
+ -0.524590f, -0.525895f, -0.527199f, -0.528502f, -0.529804f, -0.531104f, -0.532403f, -0.533701f,
+ -0.534998f, -0.536293f, -0.537587f, -0.538880f, -0.540171f, -0.541462f, -0.542751f, -0.544039f,
+ -0.545325f, -0.546610f, -0.547894f, -0.549177f, -0.550458f, -0.551738f, -0.553017f, -0.554294f,
+ -0.555570f, -0.556845f, -0.558119f, -0.559391f, -0.560662f, -0.561931f, -0.563199f, -0.564466f,
+ -0.565732f, -0.566996f, -0.568259f, -0.569521f, -0.570781f, -0.572040f, -0.573297f, -0.574553f,
+ -0.575808f, -0.577062f, -0.578314f, -0.579565f, -0.580814f, -0.582062f, -0.583309f, -0.584554f,
+ -0.585798f, -0.587040f, -0.588282f, -0.589521f, -0.590760f, -0.591997f, -0.593232f, -0.594467f,
+ -0.595699f, -0.596931f, -0.598161f, -0.599389f, -0.600616f, -0.601842f, -0.603067f, -0.604290f,
+ -0.605511f, -0.606731f, -0.607950f, -0.609167f, -0.610383f, -0.611597f, -0.612810f, -0.614022f,
+ -0.615232f, -0.616440f, -0.617647f, -0.618853f, -0.620057f, -0.621260f, -0.622461f, -0.623661f,
+ -0.624860f, -0.626056f, -0.627252f, -0.628446f, -0.629638f, -0.630829f, -0.632019f, -0.633207f,
+ -0.634393f, -0.635578f, -0.636762f, -0.637944f, -0.639124f, -0.640303f, -0.641481f, -0.642657f,
+ -0.643832f, -0.645005f, -0.646176f, -0.647346f, -0.648514f, -0.649681f, -0.650847f, -0.652011f,
+ -0.653173f, -0.654334f, -0.655493f, -0.656651f, -0.657807f, -0.658961f, -0.660114f, -0.661266f,
+ -0.662416f, -0.663564f, -0.664711f, -0.665856f, -0.667000f, -0.668142f, -0.669283f, -0.670422f,
+ -0.671559f, -0.672695f, -0.673829f, -0.674962f, -0.676093f, -0.677222f, -0.678350f, -0.679476f,
+ -0.680601f, -0.681724f, -0.682846f, -0.683965f, -0.685084f, -0.686200f, -0.687315f, -0.688429f,
+ -0.689541f, -0.690651f, -0.691759f, -0.692866f, -0.693971f, -0.695075f, -0.696177f, -0.697277f,
+ -0.698376f, -0.699473f, -0.700569f, -0.701663f, -0.702755f, -0.703845f, -0.704934f, -0.706021f,
+ -0.707107f, -0.708191f, -0.709273f, -0.710353f, -0.711432f, -0.712509f, -0.713585f, -0.714659f,
+ -0.715731f, -0.716801f, -0.717870f, -0.718937f, -0.720003f, -0.721066f, -0.722128f, -0.723188f,
+ -0.724247f, -0.725304f, -0.726359f, -0.727413f, -0.728464f, -0.729514f, -0.730563f, -0.731609f,
+ -0.732654f, -0.733697f, -0.734739f, -0.735779f, -0.736817f, -0.737853f, -0.738887f, -0.739920f,
+ -0.740951f, -0.741980f, -0.743008f, -0.744034f, -0.745058f, -0.746080f, -0.747101f, -0.748119f,
+ -0.749136f, -0.750152f, -0.751165f, -0.752177f, -0.753187f, -0.754195f, -0.755201f, -0.756206f,
+ -0.757209f, -0.758210f, -0.759209f, -0.760207f, -0.761202f, -0.762196f, -0.763188f, -0.764179f,
+ -0.765167f, -0.766154f, -0.767139f, -0.768122f, -0.769103f, -0.770083f, -0.771061f, -0.772036f,
+ -0.773010f, -0.773983f, -0.774953f, -0.775922f, -0.776888f, -0.777853f, -0.778817f, -0.779778f,
+ -0.780737f, -0.781695f, -0.782651f, -0.783605f, -0.784557f, -0.785507f, -0.786455f, -0.787402f,
+ -0.788346f, -0.789289f, -0.790230f, -0.791169f, -0.792107f, -0.793042f, -0.793975f, -0.794907f,
+ -0.795837f, -0.796765f, -0.797691f, -0.798615f, -0.799537f, -0.800458f, -0.801376f, -0.802293f,
+ -0.803208f, -0.804120f, -0.805031f, -0.805940f, -0.806848f, -0.807753f, -0.808656f, -0.809558f,
+ -0.810457f, -0.811355f, -0.812251f, -0.813144f, -0.814036f, -0.814926f, -0.815814f, -0.816701f,
+ -0.817585f, -0.818467f, -0.819348f, -0.820226f, -0.821102f, -0.821977f, -0.822850f, -0.823721f,
+ -0.824589f, -0.825456f, -0.826321f, -0.827184f, -0.828045f, -0.828904f, -0.829761f, -0.830616f,
+ -0.831470f, -0.832321f, -0.833170f, -0.834018f, -0.834863f, -0.835706f, -0.836548f, -0.837387f,
+ -0.838225f, -0.839060f, -0.839894f, -0.840725f, -0.841555f, -0.842383f, -0.843208f, -0.844032f,
+ -0.844854f, -0.845673f, -0.846491f, -0.847307f, -0.848120f, -0.848932f, -0.849742f, -0.850549f,
+ -0.851355f, -0.852159f, -0.852961f, -0.853760f, -0.854558f, -0.855354f, -0.856147f, -0.856939f,
+ -0.857729f, -0.858516f, -0.859302f, -0.860085f, -0.860867f, -0.861646f, -0.862424f, -0.863199f,
+ -0.863973f, -0.864744f, -0.865514f, -0.866281f, -0.867046f, -0.867809f, -0.868571f, -0.869330f,
+ -0.870087f, -0.870842f, -0.871595f, -0.872346f, -0.873095f, -0.873842f, -0.874587f, -0.875329f,
+ -0.876070f, -0.876809f, -0.877545f, -0.878280f, -0.879012f, -0.879743f, -0.880471f, -0.881197f,
+ -0.881921f, -0.882643f, -0.883363f, -0.884081f, -0.884797f, -0.885511f, -0.886223f, -0.886932f,
+ -0.887640f, -0.888345f, -0.889048f, -0.889750f, -0.890449f, -0.891146f, -0.891841f, -0.892534f,
+ -0.893224f, -0.893913f, -0.894599f, -0.895284f, -0.895966f, -0.896646f, -0.897325f, -0.898001f,
+ -0.898674f, -0.899346f, -0.900016f, -0.900683f, -0.901349f, -0.902012f, -0.902673f, -0.903332f,
+ -0.903989f, -0.904644f, -0.905297f, -0.905947f, -0.906596f, -0.907242f, -0.907886f, -0.908528f,
+ -0.909168f, -0.909806f, -0.910441f, -0.911075f, -0.911706f, -0.912335f, -0.912962f, -0.913587f,
+ -0.914210f, -0.914830f, -0.915449f, -0.916065f, -0.916679f, -0.917291f, -0.917901f, -0.918508f,
+ -0.919114f, -0.919717f, -0.920318f, -0.920917f, -0.921514f, -0.922109f, -0.922701f, -0.923291f,
+ -0.923880f, -0.924465f, -0.925049f, -0.925631f, -0.926210f, -0.926787f, -0.927363f, -0.927935f,
+ -0.928506f, -0.929075f, -0.929641f, -0.930205f, -0.930767f, -0.931327f, -0.931884f, -0.932440f,
+ -0.932993f, -0.933544f, -0.934093f, -0.934639f, -0.935184f, -0.935726f, -0.936266f, -0.936803f,
+ -0.937339f, -0.937872f, -0.938404f, -0.938932f, -0.939459f, -0.939984f, -0.940506f, -0.941026f,
+ -0.941544f, -0.942060f, -0.942573f, -0.943084f, -0.943593f, -0.944100f, -0.944605f, -0.945107f,
+ -0.945607f, -0.946105f, -0.946601f, -0.947094f, -0.947586f, -0.948075f, -0.948561f, -0.949046f,
+ -0.949528f, -0.950008f, -0.950486f, -0.950962f, -0.951435f, -0.951906f, -0.952375f, -0.952842f,
+ -0.953306f, -0.953768f, -0.954228f, -0.954686f, -0.955141f, -0.955594f, -0.956045f, -0.956494f,
+ -0.956940f, -0.957385f, -0.957826f, -0.958266f, -0.958703f, -0.959139f, -0.959572f, -0.960002f,
+ -0.960431f, -0.960857f, -0.961280f, -0.961702f, -0.962121f, -0.962538f, -0.962953f, -0.963366f,
+ -0.963776f, -0.964184f, -0.964590f, -0.964993f, -0.965394f, -0.965793f, -0.966190f, -0.966584f,
+ -0.966976f, -0.967366f, -0.967754f, -0.968139f, -0.968522f, -0.968903f, -0.969281f, -0.969657f,
+ -0.970031f, -0.970403f, -0.970772f, -0.971139f, -0.971504f, -0.971866f, -0.972227f, -0.972584f,
+ -0.972940f, -0.973293f, -0.973644f, -0.973993f, -0.974339f, -0.974684f, -0.975025f, -0.975365f,
+ -0.975702f, -0.976037f, -0.976370f, -0.976700f, -0.977028f, -0.977354f, -0.977677f, -0.977998f,
+ -0.978317f, -0.978634f, -0.978948f, -0.979260f, -0.979570f, -0.979877f, -0.980182f, -0.980485f,
+ -0.980785f, -0.981083f, -0.981379f, -0.981673f, -0.981964f, -0.982253f, -0.982539f, -0.982824f,
+ -0.983105f, -0.983385f, -0.983662f, -0.983937f, -0.984210f, -0.984480f, -0.984748f, -0.985014f,
+ -0.985278f, -0.985539f, -0.985798f, -0.986054f, -0.986308f, -0.986560f, -0.986809f, -0.987057f,
+ -0.987301f, -0.987544f, -0.987784f, -0.988022f, -0.988258f, -0.988491f, -0.988722f, -0.988950f,
+ -0.989177f, -0.989400f, -0.989622f, -0.989841f, -0.990058f, -0.990273f, -0.990485f, -0.990695f,
+ -0.990903f, -0.991108f, -0.991311f, -0.991511f, -0.991710f, -0.991906f, -0.992099f, -0.992291f,
+ -0.992480f, -0.992666f, -0.992850f, -0.993032f, -0.993212f, -0.993389f, -0.993564f, -0.993737f,
+ -0.993907f, -0.994075f, -0.994240f, -0.994404f, -0.994565f, -0.994723f, -0.994879f, -0.995033f,
+ -0.995185f, -0.995334f, -0.995481f, -0.995625f, -0.995767f, -0.995907f, -0.996045f, -0.996180f,
+ -0.996313f, -0.996443f, -0.996571f, -0.996697f, -0.996820f, -0.996941f, -0.997060f, -0.997176f,
+ -0.997290f, -0.997402f, -0.997511f, -0.997618f, -0.997723f, -0.997825f, -0.997925f, -0.998023f,
+ -0.998118f, -0.998211f, -0.998302f, -0.998390f, -0.998476f, -0.998559f, -0.998640f, -0.998719f,
+ -0.998795f, -0.998870f, -0.998941f, -0.999011f, -0.999078f, -0.999142f, -0.999205f, -0.999265f,
+ -0.999322f, -0.999378f, -0.999431f, -0.999481f, -0.999529f, -0.999575f, -0.999619f, -0.999660f,
+ -0.999699f, -0.999735f, -0.999769f, -0.999801f, -0.999831f, -0.999858f, -0.999882f, -0.999905f,
+ -0.999925f, -0.999942f, -0.999958f, -0.999971f, -0.999981f, -0.999989f, -0.999995f, -0.999999f
+};
+
+static const float sinTable8192[4096] = {
+ 0.000000f, 0.000767f, 0.001534f, 0.002301f, 0.003068f, 0.003835f, 0.004602f, 0.005369f,
+ 0.006136f, 0.006903f, 0.007670f, 0.008437f, 0.009204f, 0.009971f, 0.010738f, 0.011505f,
+ 0.012272f, 0.013038f, 0.013805f, 0.014572f, 0.015339f, 0.016106f, 0.016873f, 0.017640f,
+ 0.018407f, 0.019174f, 0.019940f, 0.020707f, 0.021474f, 0.022241f, 0.023008f, 0.023774f,
+ 0.024541f, 0.025308f, 0.026075f, 0.026841f, 0.027608f, 0.028375f, 0.029142f, 0.029908f,
+ 0.030675f, 0.031441f, 0.032208f, 0.032975f, 0.033741f, 0.034508f, 0.035274f, 0.036041f,
+ 0.036807f, 0.037574f, 0.038340f, 0.039107f, 0.039873f, 0.040639f, 0.041406f, 0.042172f,
+ 0.042938f, 0.043705f, 0.044471f, 0.045237f, 0.046003f, 0.046769f, 0.047535f, 0.048302f,
+ 0.049068f, 0.049834f, 0.050600f, 0.051366f, 0.052132f, 0.052898f, 0.053664f, 0.054429f,
+ 0.055195f, 0.055961f, 0.056727f, 0.057493f, 0.058258f, 0.059024f, 0.059790f, 0.060555f,
+ 0.061321f, 0.062086f, 0.062852f, 0.063617f, 0.064383f, 0.065148f, 0.065913f, 0.066679f,
+ 0.067444f, 0.068209f, 0.068974f, 0.069739f, 0.070505f, 0.071270f, 0.072035f, 0.072800f,
+ 0.073565f, 0.074329f, 0.075094f, 0.075859f, 0.076624f, 0.077389f, 0.078153f, 0.078918f,
+ 0.079682f, 0.080447f, 0.081211f, 0.081976f, 0.082740f, 0.083505f, 0.084269f, 0.085033f,
+ 0.085797f, 0.086561f, 0.087326f, 0.088090f, 0.088854f, 0.089617f, 0.090381f, 0.091145f,
+ 0.091909f, 0.092673f, 0.093436f, 0.094200f, 0.094963f, 0.095727f, 0.096490f, 0.097254f,
+ 0.098017f, 0.098780f, 0.099544f, 0.100307f, 0.101070f, 0.101833f, 0.102596f, 0.103359f,
+ 0.104122f, 0.104884f, 0.105647f, 0.106410f, 0.107172f, 0.107935f, 0.108697f, 0.109460f,
+ 0.110222f, 0.110984f, 0.111747f, 0.112509f, 0.113271f, 0.114033f, 0.114795f, 0.115557f,
+ 0.116319f, 0.117080f, 0.117842f, 0.118604f, 0.119365f, 0.120127f, 0.120888f, 0.121649f,
+ 0.122411f, 0.123172f, 0.123933f, 0.124694f, 0.125455f, 0.126216f, 0.126977f, 0.127737f,
+ 0.128498f, 0.129259f, 0.130019f, 0.130780f, 0.131540f, 0.132300f, 0.133061f, 0.133821f,
+ 0.134581f, 0.135341f, 0.136101f, 0.136860f, 0.137620f, 0.138380f, 0.139139f, 0.139899f,
+ 0.140658f, 0.141418f, 0.142177f, 0.142936f, 0.143695f, 0.144454f, 0.145213f, 0.145972f,
+ 0.146730f, 0.147489f, 0.148248f, 0.149006f, 0.149765f, 0.150523f, 0.151281f, 0.152039f,
+ 0.152797f, 0.153555f, 0.154313f, 0.155071f, 0.155828f, 0.156586f, 0.157343f, 0.158101f,
+ 0.158858f, 0.159615f, 0.160372f, 0.161129f, 0.161886f, 0.162643f, 0.163400f, 0.164157f,
+ 0.164913f, 0.165670f, 0.166426f, 0.167182f, 0.167938f, 0.168694f, 0.169450f, 0.170206f,
+ 0.170962f, 0.171718f, 0.172473f, 0.173229f, 0.173984f, 0.174739f, 0.175494f, 0.176249f,
+ 0.177004f, 0.177759f, 0.178514f, 0.179268f, 0.180023f, 0.180777f, 0.181532f, 0.182286f,
+ 0.183040f, 0.183794f, 0.184548f, 0.185301f, 0.186055f, 0.186809f, 0.187562f, 0.188315f,
+ 0.189069f, 0.189822f, 0.190575f, 0.191328f, 0.192080f, 0.192833f, 0.193586f, 0.194338f,
+ 0.195090f, 0.195843f, 0.196595f, 0.197347f, 0.198098f, 0.198850f, 0.199602f, 0.200353f,
+ 0.201105f, 0.201856f, 0.202607f, 0.203358f, 0.204109f, 0.204860f, 0.205610f, 0.206361f,
+ 0.207111f, 0.207862f, 0.208612f, 0.209362f, 0.210112f, 0.210862f, 0.211611f, 0.212361f,
+ 0.213110f, 0.213860f, 0.214609f, 0.215358f, 0.216107f, 0.216856f, 0.217604f, 0.218353f,
+ 0.219101f, 0.219850f, 0.220598f, 0.221346f, 0.222094f, 0.222841f, 0.223589f, 0.224337f,
+ 0.225084f, 0.225831f, 0.226578f, 0.227325f, 0.228072f, 0.228819f, 0.229565f, 0.230312f,
+ 0.231058f, 0.231804f, 0.232550f, 0.233296f, 0.234042f, 0.234788f, 0.235533f, 0.236278f,
+ 0.237024f, 0.237769f, 0.238514f, 0.239258f, 0.240003f, 0.240748f, 0.241492f, 0.242236f,
+ 0.242980f, 0.243724f, 0.244468f, 0.245212f, 0.245955f, 0.246698f, 0.247442f, 0.248185f,
+ 0.248928f, 0.249670f, 0.250413f, 0.251155f, 0.251898f, 0.252640f, 0.253382f, 0.254124f,
+ 0.254866f, 0.255607f, 0.256349f, 0.257090f, 0.257831f, 0.258572f, 0.259313f, 0.260054f,
+ 0.260794f, 0.261534f, 0.262275f, 0.263015f, 0.263755f, 0.264494f, 0.265234f, 0.265973f,
+ 0.266713f, 0.267452f, 0.268191f, 0.268930f, 0.269668f, 0.270407f, 0.271145f, 0.271883f,
+ 0.272621f, 0.273359f, 0.274097f, 0.274834f, 0.275572f, 0.276309f, 0.277046f, 0.277783f,
+ 0.278520f, 0.279256f, 0.279993f, 0.280729f, 0.281465f, 0.282201f, 0.282937f, 0.283672f,
+ 0.284408f, 0.285143f, 0.285878f, 0.286613f, 0.287347f, 0.288082f, 0.288816f, 0.289551f,
+ 0.290285f, 0.291019f, 0.291752f, 0.292486f, 0.293219f, 0.293952f, 0.294685f, 0.295418f,
+ 0.296151f, 0.296883f, 0.297616f, 0.298348f, 0.299080f, 0.299812f, 0.300543f, 0.301275f,
+ 0.302006f, 0.302737f, 0.303468f, 0.304199f, 0.304929f, 0.305660f, 0.306390f, 0.307120f,
+ 0.307850f, 0.308579f, 0.309309f, 0.310038f, 0.310767f, 0.311496f, 0.312225f, 0.312953f,
+ 0.313682f, 0.314410f, 0.315138f, 0.315866f, 0.316593f, 0.317321f, 0.318048f, 0.318775f,
+ 0.319502f, 0.320229f, 0.320955f, 0.321682f, 0.322408f, 0.323134f, 0.323859f, 0.324585f,
+ 0.325310f, 0.326035f, 0.326760f, 0.327485f, 0.328210f, 0.328934f, 0.329658f, 0.330382f,
+ 0.331106f, 0.331830f, 0.332553f, 0.333277f, 0.334000f, 0.334722f, 0.335445f, 0.336168f,
+ 0.336890f, 0.337612f, 0.338334f, 0.339055f, 0.339777f, 0.340498f, 0.341219f, 0.341940f,
+ 0.342661f, 0.343381f, 0.344101f, 0.344821f, 0.345541f, 0.346261f, 0.346980f, 0.347700f,
+ 0.348419f, 0.349138f, 0.349856f, 0.350575f, 0.351293f, 0.352011f, 0.352729f, 0.353446f,
+ 0.354164f, 0.354881f, 0.355598f, 0.356314f, 0.357031f, 0.357747f, 0.358463f, 0.359179f,
+ 0.359895f, 0.360611f, 0.361326f, 0.362041f, 0.362756f, 0.363470f, 0.364185f, 0.364899f,
+ 0.365613f, 0.366327f, 0.367040f, 0.367754f, 0.368467f, 0.369180f, 0.369892f, 0.370605f,
+ 0.371317f, 0.372029f, 0.372741f, 0.373453f, 0.374164f, 0.374875f, 0.375586f, 0.376297f,
+ 0.377007f, 0.377718f, 0.378428f, 0.379138f, 0.379847f, 0.380557f, 0.381266f, 0.381975f,
+ 0.382683f, 0.383392f, 0.384100f, 0.384808f, 0.385516f, 0.386224f, 0.386931f, 0.387638f,
+ 0.388345f, 0.389052f, 0.389758f, 0.390464f, 0.391170f, 0.391876f, 0.392582f, 0.393287f,
+ 0.393992f, 0.394697f, 0.395401f, 0.396106f, 0.396810f, 0.397514f, 0.398218f, 0.398921f,
+ 0.399624f, 0.400327f, 0.401030f, 0.401732f, 0.402435f, 0.403137f, 0.403838f, 0.404540f,
+ 0.405241f, 0.405942f, 0.406643f, 0.407344f, 0.408044f, 0.408744f, 0.409444f, 0.410144f,
+ 0.410843f, 0.411542f, 0.412241f, 0.412940f, 0.413638f, 0.414337f, 0.415034f, 0.415732f,
+ 0.416430f, 0.417127f, 0.417824f, 0.418520f, 0.419217f, 0.419913f, 0.420609f, 0.421305f,
+ 0.422000f, 0.422695f, 0.423390f, 0.424085f, 0.424780f, 0.425474f, 0.426168f, 0.426862f,
+ 0.427555f, 0.428248f, 0.428941f, 0.429634f, 0.430326f, 0.431019f, 0.431711f, 0.432402f,
+ 0.433094f, 0.433785f, 0.434476f, 0.435167f, 0.435857f, 0.436547f, 0.437237f, 0.437927f,
+ 0.438616f, 0.439305f, 0.439994f, 0.440683f, 0.441371f, 0.442059f, 0.442747f, 0.443435f,
+ 0.444122f, 0.444809f, 0.445496f, 0.446183f, 0.446869f, 0.447555f, 0.448241f, 0.448926f,
+ 0.449611f, 0.450296f, 0.450981f, 0.451665f, 0.452350f, 0.453033f, 0.453717f, 0.454400f,
+ 0.455084f, 0.455766f, 0.456449f, 0.457131f, 0.457813f, 0.458495f, 0.459177f, 0.459858f,
+ 0.460539f, 0.461219f, 0.461900f, 0.462580f, 0.463260f, 0.463939f, 0.464619f, 0.465298f,
+ 0.465977f, 0.466655f, 0.467333f, 0.468011f, 0.468689f, 0.469366f, 0.470043f, 0.470720f,
+ 0.471397f, 0.472073f, 0.472749f, 0.473425f, 0.474100f, 0.474775f, 0.475450f, 0.476125f,
+ 0.476799f, 0.477473f, 0.478147f, 0.478821f, 0.479494f, 0.480167f, 0.480839f, 0.481512f,
+ 0.482184f, 0.482856f, 0.483527f, 0.484198f, 0.484869f, 0.485540f, 0.486210f, 0.486880f,
+ 0.487550f, 0.488220f, 0.488889f, 0.489558f, 0.490226f, 0.490895f, 0.491563f, 0.492231f,
+ 0.492898f, 0.493565f, 0.494232f, 0.494899f, 0.495565f, 0.496231f, 0.496897f, 0.497562f,
+ 0.498228f, 0.498893f, 0.499557f, 0.500221f, 0.500885f, 0.501549f, 0.502212f, 0.502876f,
+ 0.503538f, 0.504201f, 0.504863f, 0.505525f, 0.506187f, 0.506848f, 0.507509f, 0.508170f,
+ 0.508830f, 0.509490f, 0.510150f, 0.510810f, 0.511469f, 0.512128f, 0.512786f, 0.513445f,
+ 0.514103f, 0.514760f, 0.515418f, 0.516075f, 0.516732f, 0.517388f, 0.518045f, 0.518700f,
+ 0.519356f, 0.520011f, 0.520666f, 0.521321f, 0.521975f, 0.522629f, 0.523283f, 0.523937f,
+ 0.524590f, 0.525243f, 0.525895f, 0.526547f, 0.527199f, 0.527851f, 0.528502f, 0.529153f,
+ 0.529804f, 0.530454f, 0.531104f, 0.531754f, 0.532403f, 0.533052f, 0.533701f, 0.534349f,
+ 0.534998f, 0.535645f, 0.536293f, 0.536940f, 0.537587f, 0.538234f, 0.538880f, 0.539526f,
+ 0.540171f, 0.540817f, 0.541462f, 0.542106f, 0.542751f, 0.543395f, 0.544039f, 0.544682f,
+ 0.545325f, 0.545968f, 0.546610f, 0.547252f, 0.547894f, 0.548536f, 0.549177f, 0.549818f,
+ 0.550458f, 0.551098f, 0.551738f, 0.552378f, 0.553017f, 0.553656f, 0.554294f, 0.554932f,
+ 0.555570f, 0.556208f, 0.556845f, 0.557482f, 0.558119f, 0.558755f, 0.559391f, 0.560026f,
+ 0.560662f, 0.561297f, 0.561931f, 0.562565f, 0.563199f, 0.563833f, 0.564466f, 0.565099f,
+ 0.565732f, 0.566364f, 0.566996f, 0.567628f, 0.568259f, 0.568890f, 0.569521f, 0.570151f,
+ 0.570781f, 0.571410f, 0.572040f, 0.572669f, 0.573297f, 0.573925f, 0.574553f, 0.575181f,
+ 0.575808f, 0.576435f, 0.577062f, 0.577688f, 0.578314f, 0.578939f, 0.579565f, 0.580189f,
+ 0.580814f, 0.581438f, 0.582062f, 0.582685f, 0.583309f, 0.583931f, 0.584554f, 0.585176f,
+ 0.585798f, 0.586419f, 0.587040f, 0.587661f, 0.588282f, 0.588902f, 0.589521f, 0.590141f,
+ 0.590760f, 0.591378f, 0.591997f, 0.592615f, 0.593232f, 0.593850f, 0.594467f, 0.595083f,
+ 0.595699f, 0.596315f, 0.596931f, 0.597546f, 0.598161f, 0.598775f, 0.599389f, 0.600003f,
+ 0.600616f, 0.601230f, 0.601842f, 0.602455f, 0.603067f, 0.603678f, 0.604290f, 0.604900f,
+ 0.605511f, 0.606121f, 0.606731f, 0.607341f, 0.607950f, 0.608559f, 0.609167f, 0.609775f,
+ 0.610383f, 0.610990f, 0.611597f, 0.612204f, 0.612810f, 0.613416f, 0.614022f, 0.614627f,
+ 0.615232f, 0.615836f, 0.616440f, 0.617044f, 0.617647f, 0.618250f, 0.618853f, 0.619455f,
+ 0.620057f, 0.620659f, 0.621260f, 0.621861f, 0.622461f, 0.623061f, 0.623661f, 0.624260f,
+ 0.624860f, 0.625458f, 0.626056f, 0.626654f, 0.627252f, 0.627849f, 0.628446f, 0.629042f,
+ 0.629638f, 0.630234f, 0.630829f, 0.631424f, 0.632019f, 0.632613f, 0.633207f, 0.633800f,
+ 0.634393f, 0.634986f, 0.635578f, 0.636170f, 0.636762f, 0.637353f, 0.637944f, 0.638534f,
+ 0.639124f, 0.639714f, 0.640303f, 0.640892f, 0.641481f, 0.642069f, 0.642657f, 0.643245f,
+ 0.643832f, 0.644418f, 0.645005f, 0.645590f, 0.646176f, 0.646761f, 0.647346f, 0.647930f,
+ 0.648514f, 0.649098f, 0.649681f, 0.650264f, 0.650847f, 0.651429f, 0.652011f, 0.652592f,
+ 0.653173f, 0.653753f, 0.654334f, 0.654913f, 0.655493f, 0.656072f, 0.656651f, 0.657229f,
+ 0.657807f, 0.658384f, 0.658961f, 0.659538f, 0.660114f, 0.660690f, 0.661266f, 0.661841f,
+ 0.662416f, 0.662990f, 0.663564f, 0.664138f, 0.664711f, 0.665284f, 0.665856f, 0.666428f,
+ 0.667000f, 0.667571f, 0.668142f, 0.668712f, 0.669283f, 0.669852f, 0.670422f, 0.670990f,
+ 0.671559f, 0.672127f, 0.672695f, 0.673262f, 0.673829f, 0.674396f, 0.674962f, 0.675527f,
+ 0.676093f, 0.676658f, 0.677222f, 0.677786f, 0.678350f, 0.678913f, 0.679476f, 0.680039f,
+ 0.680601f, 0.681163f, 0.681724f, 0.682285f, 0.682846f, 0.683406f, 0.683965f, 0.684525f,
+ 0.685084f, 0.685642f, 0.686200f, 0.686758f, 0.687315f, 0.687872f, 0.688429f, 0.688985f,
+ 0.689541f, 0.690096f, 0.690651f, 0.691205f, 0.691759f, 0.692313f, 0.692866f, 0.693419f,
+ 0.693971f, 0.694524f, 0.695075f, 0.695626f, 0.696177f, 0.696728f, 0.697277f, 0.697827f,
+ 0.698376f, 0.698925f, 0.699473f, 0.700021f, 0.700569f, 0.701116f, 0.701663f, 0.702209f,
+ 0.702755f, 0.703300f, 0.703845f, 0.704390f, 0.704934f, 0.705478f, 0.706021f, 0.706564f,
+ 0.707107f, 0.707649f, 0.708191f, 0.708732f, 0.709273f, 0.709813f, 0.710353f, 0.710893f,
+ 0.711432f, 0.711971f, 0.712509f, 0.713047f, 0.713585f, 0.714122f, 0.714659f, 0.715195f,
+ 0.715731f, 0.716266f, 0.716801f, 0.717336f, 0.717870f, 0.718404f, 0.718937f, 0.719470f,
+ 0.720003f, 0.720535f, 0.721066f, 0.721597f, 0.722128f, 0.722659f, 0.723188f, 0.723718f,
+ 0.724247f, 0.724776f, 0.725304f, 0.725832f, 0.726359f, 0.726886f, 0.727413f, 0.727939f,
+ 0.728464f, 0.728990f, 0.729514f, 0.730039f, 0.730563f, 0.731086f, 0.731609f, 0.732132f,
+ 0.732654f, 0.733176f, 0.733697f, 0.734218f, 0.734739f, 0.735259f, 0.735779f, 0.736298f,
+ 0.736817f, 0.737335f, 0.737853f, 0.738370f, 0.738887f, 0.739404f, 0.739920f, 0.740436f,
+ 0.740951f, 0.741466f, 0.741980f, 0.742494f, 0.743008f, 0.743521f, 0.744034f, 0.744546f,
+ 0.745058f, 0.745569f, 0.746080f, 0.746591f, 0.747101f, 0.747610f, 0.748119f, 0.748628f,
+ 0.749136f, 0.749644f, 0.750152f, 0.750659f, 0.751165f, 0.751671f, 0.752177f, 0.752682f,
+ 0.753187f, 0.753691f, 0.754195f, 0.754698f, 0.755201f, 0.755704f, 0.756206f, 0.756708f,
+ 0.757209f, 0.757710f, 0.758210f, 0.758710f, 0.759209f, 0.759708f, 0.760207f, 0.760705f,
+ 0.761202f, 0.761700f, 0.762196f, 0.762693f, 0.763188f, 0.763684f, 0.764179f, 0.764673f,
+ 0.765167f, 0.765661f, 0.766154f, 0.766647f, 0.767139f, 0.767631f, 0.768122f, 0.768613f,
+ 0.769103f, 0.769593f, 0.770083f, 0.770572f, 0.771061f, 0.771549f, 0.772036f, 0.772524f,
+ 0.773010f, 0.773497f, 0.773983f, 0.774468f, 0.774953f, 0.775438f, 0.775922f, 0.776405f,
+ 0.776888f, 0.777371f, 0.777853f, 0.778335f, 0.778817f, 0.779297f, 0.779778f, 0.780258f,
+ 0.780737f, 0.781216f, 0.781695f, 0.782173f, 0.782651f, 0.783128f, 0.783605f, 0.784081f,
+ 0.784557f, 0.785032f, 0.785507f, 0.785981f, 0.786455f, 0.786929f, 0.787402f, 0.787874f,
+ 0.788346f, 0.788818f, 0.789289f, 0.789760f, 0.790230f, 0.790700f, 0.791169f, 0.791638f,
+ 0.792107f, 0.792575f, 0.793042f, 0.793509f, 0.793975f, 0.794442f, 0.794907f, 0.795372f,
+ 0.795837f, 0.796301f, 0.796765f, 0.797228f, 0.797691f, 0.798153f, 0.798615f, 0.799076f,
+ 0.799537f, 0.799998f, 0.800458f, 0.800917f, 0.801376f, 0.801835f, 0.802293f, 0.802750f,
+ 0.803208f, 0.803664f, 0.804120f, 0.804576f, 0.805031f, 0.805486f, 0.805940f, 0.806394f,
+ 0.806848f, 0.807300f, 0.807753f, 0.808205f, 0.808656f, 0.809107f, 0.809558f, 0.810008f,
+ 0.810457f, 0.810906f, 0.811355f, 0.811803f, 0.812251f, 0.812698f, 0.813144f, 0.813591f,
+ 0.814036f, 0.814482f, 0.814926f, 0.815371f, 0.815814f, 0.816258f, 0.816701f, 0.817143f,
+ 0.817585f, 0.818026f, 0.818467f, 0.818908f, 0.819348f, 0.819787f, 0.820226f, 0.820664f,
+ 0.821102f, 0.821540f, 0.821977f, 0.822414f, 0.822850f, 0.823285f, 0.823721f, 0.824155f,
+ 0.824589f, 0.825023f, 0.825456f, 0.825889f, 0.826321f, 0.826753f, 0.827184f, 0.827615f,
+ 0.828045f, 0.828475f, 0.828904f, 0.829333f, 0.829761f, 0.830189f, 0.830616f, 0.831043f,
+ 0.831470f, 0.831895f, 0.832321f, 0.832746f, 0.833170f, 0.833594f, 0.834018f, 0.834440f,
+ 0.834863f, 0.835285f, 0.835706f, 0.836127f, 0.836548f, 0.836968f, 0.837387f, 0.837806f,
+ 0.838225f, 0.838643f, 0.839060f, 0.839477f, 0.839894f, 0.840310f, 0.840725f, 0.841140f,
+ 0.841555f, 0.841969f, 0.842383f, 0.842796f, 0.843208f, 0.843620f, 0.844032f, 0.844443f,
+ 0.844854f, 0.845264f, 0.845673f, 0.846082f, 0.846491f, 0.846899f, 0.847307f, 0.847714f,
+ 0.848120f, 0.848526f, 0.848932f, 0.849337f, 0.849742f, 0.850146f, 0.850549f, 0.850953f,
+ 0.851355f, 0.851757f, 0.852159f, 0.852560f, 0.852961f, 0.853361f, 0.853760f, 0.854159f,
+ 0.854558f, 0.854956f, 0.855354f, 0.855751f, 0.856147f, 0.856543f, 0.856939f, 0.857334f,
+ 0.857729f, 0.858123f, 0.858516f, 0.858909f, 0.859302f, 0.859694f, 0.860085f, 0.860476f,
+ 0.860867f, 0.861257f, 0.861646f, 0.862035f, 0.862424f, 0.862812f, 0.863199f, 0.863586f,
+ 0.863973f, 0.864359f, 0.864744f, 0.865129f, 0.865514f, 0.865898f, 0.866281f, 0.866664f,
+ 0.867046f, 0.867428f, 0.867809f, 0.868190f, 0.868571f, 0.868951f, 0.869330f, 0.869709f,
+ 0.870087f, 0.870465f, 0.870842f, 0.871219f, 0.871595f, 0.871971f, 0.872346f, 0.872721f,
+ 0.873095f, 0.873469f, 0.873842f, 0.874215f, 0.874587f, 0.874958f, 0.875329f, 0.875700f,
+ 0.876070f, 0.876440f, 0.876809f, 0.877177f, 0.877545f, 0.877913f, 0.878280f, 0.878646f,
+ 0.879012f, 0.879378f, 0.879743f, 0.880107f, 0.880471f, 0.880834f, 0.881197f, 0.881559f,
+ 0.881921f, 0.882283f, 0.882643f, 0.883004f, 0.883363f, 0.883723f, 0.884081f, 0.884439f,
+ 0.884797f, 0.885154f, 0.885511f, 0.885867f, 0.886223f, 0.886578f, 0.886932f, 0.887286f,
+ 0.887640f, 0.887993f, 0.888345f, 0.888697f, 0.889048f, 0.889399f, 0.889750f, 0.890099f,
+ 0.890449f, 0.890797f, 0.891146f, 0.891493f, 0.891841f, 0.892187f, 0.892534f, 0.892879f,
+ 0.893224f, 0.893569f, 0.893913f, 0.894256f, 0.894599f, 0.894942f, 0.895284f, 0.895625f,
+ 0.895966f, 0.896307f, 0.896646f, 0.896986f, 0.897325f, 0.897663f, 0.898001f, 0.898338f,
+ 0.898674f, 0.899011f, 0.899346f, 0.899681f, 0.900016f, 0.900350f, 0.900683f, 0.901016f,
+ 0.901349f, 0.901681f, 0.902012f, 0.902343f, 0.902673f, 0.903003f, 0.903332f, 0.903661f,
+ 0.903989f, 0.904317f, 0.904644f, 0.904971f, 0.905297f, 0.905622f, 0.905947f, 0.906272f,
+ 0.906596f, 0.906919f, 0.907242f, 0.907564f, 0.907886f, 0.908207f, 0.908528f, 0.908848f,
+ 0.909168f, 0.909487f, 0.909806f, 0.910124f, 0.910441f, 0.910758f, 0.911075f, 0.911391f,
+ 0.911706f, 0.912021f, 0.912335f, 0.912649f, 0.912962f, 0.913275f, 0.913587f, 0.913899f,
+ 0.914210f, 0.914520f, 0.914830f, 0.915140f, 0.915449f, 0.915757f, 0.916065f, 0.916372f,
+ 0.916679f, 0.916985f, 0.917291f, 0.917596f, 0.917901f, 0.918205f, 0.918508f, 0.918811f,
+ 0.919114f, 0.919416f, 0.919717f, 0.920018f, 0.920318f, 0.920618f, 0.920917f, 0.921216f,
+ 0.921514f, 0.921812f, 0.922109f, 0.922405f, 0.922701f, 0.922997f, 0.923291f, 0.923586f,
+ 0.923880f, 0.924173f, 0.924465f, 0.924758f, 0.925049f, 0.925340f, 0.925631f, 0.925921f,
+ 0.926210f, 0.926499f, 0.926787f, 0.927075f, 0.927363f, 0.927649f, 0.927935f, 0.928221f,
+ 0.928506f, 0.928791f, 0.929075f, 0.929358f, 0.929641f, 0.929923f, 0.930205f, 0.930486f,
+ 0.930767f, 0.931047f, 0.931327f, 0.931606f, 0.931884f, 0.932162f, 0.932440f, 0.932716f,
+ 0.932993f, 0.933269f, 0.933544f, 0.933818f, 0.934093f, 0.934366f, 0.934639f, 0.934912f,
+ 0.935184f, 0.935455f, 0.935726f, 0.935996f, 0.936266f, 0.936535f, 0.936803f, 0.937072f,
+ 0.937339f, 0.937606f, 0.937872f, 0.938138f, 0.938404f, 0.938668f, 0.938932f, 0.939196f,
+ 0.939459f, 0.939722f, 0.939984f, 0.940245f, 0.940506f, 0.940766f, 0.941026f, 0.941285f,
+ 0.941544f, 0.941802f, 0.942060f, 0.942317f, 0.942573f, 0.942829f, 0.943084f, 0.943339f,
+ 0.943593f, 0.943847f, 0.944100f, 0.944353f, 0.944605f, 0.944856f, 0.945107f, 0.945358f,
+ 0.945607f, 0.945857f, 0.946105f, 0.946353f, 0.946601f, 0.946848f, 0.947094f, 0.947340f,
+ 0.947586f, 0.947830f, 0.948075f, 0.948318f, 0.948561f, 0.948804f, 0.949046f, 0.949287f,
+ 0.949528f, 0.949768f, 0.950008f, 0.950247f, 0.950486f, 0.950724f, 0.950962f, 0.951199f,
+ 0.951435f, 0.951671f, 0.951906f, 0.952141f, 0.952375f, 0.952609f, 0.952842f, 0.953074f,
+ 0.953306f, 0.953537f, 0.953768f, 0.953998f, 0.954228f, 0.954457f, 0.954686f, 0.954914f,
+ 0.955141f, 0.955368f, 0.955594f, 0.955820f, 0.956045f, 0.956270f, 0.956494f, 0.956717f,
+ 0.956940f, 0.957163f, 0.957385f, 0.957606f, 0.957826f, 0.958046f, 0.958266f, 0.958485f,
+ 0.958703f, 0.958921f, 0.959139f, 0.959355f, 0.959572f, 0.959787f, 0.960002f, 0.960217f,
+ 0.960431f, 0.960644f, 0.960857f, 0.961069f, 0.961280f, 0.961492f, 0.961702f, 0.961912f,
+ 0.962121f, 0.962330f, 0.962538f, 0.962746f, 0.962953f, 0.963160f, 0.963366f, 0.963571f,
+ 0.963776f, 0.963980f, 0.964184f, 0.964387f, 0.964590f, 0.964792f, 0.964993f, 0.965194f,
+ 0.965394f, 0.965594f, 0.965793f, 0.965992f, 0.966190f, 0.966387f, 0.966584f, 0.966781f,
+ 0.966976f, 0.967172f, 0.967366f, 0.967560f, 0.967754f, 0.967947f, 0.968139f, 0.968331f,
+ 0.968522f, 0.968713f, 0.968903f, 0.969092f, 0.969281f, 0.969470f, 0.969657f, 0.969845f,
+ 0.970031f, 0.970217f, 0.970403f, 0.970588f, 0.970772f, 0.970956f, 0.971139f, 0.971322f,
+ 0.971504f, 0.971685f, 0.971866f, 0.972047f, 0.972227f, 0.972406f, 0.972584f, 0.972762f,
+ 0.972940f, 0.973117f, 0.973293f, 0.973469f, 0.973644f, 0.973819f, 0.973993f, 0.974166f,
+ 0.974339f, 0.974512f, 0.974684f, 0.974855f, 0.975025f, 0.975195f, 0.975365f, 0.975534f,
+ 0.975702f, 0.975870f, 0.976037f, 0.976204f, 0.976370f, 0.976535f, 0.976700f, 0.976864f,
+ 0.977028f, 0.977191f, 0.977354f, 0.977516f, 0.977677f, 0.977838f, 0.977998f, 0.978158f,
+ 0.978317f, 0.978476f, 0.978634f, 0.978791f, 0.978948f, 0.979104f, 0.979260f, 0.979415f,
+ 0.979570f, 0.979724f, 0.979877f, 0.980030f, 0.980182f, 0.980334f, 0.980485f, 0.980635f,
+ 0.980785f, 0.980935f, 0.981083f, 0.981232f, 0.981379f, 0.981526f, 0.981673f, 0.981819f,
+ 0.981964f, 0.982109f, 0.982253f, 0.982396f, 0.982539f, 0.982682f, 0.982824f, 0.982965f,
+ 0.983105f, 0.983246f, 0.983385f, 0.983524f, 0.983662f, 0.983800f, 0.983937f, 0.984074f,
+ 0.984210f, 0.984346f, 0.984480f, 0.984615f, 0.984748f, 0.984882f, 0.985014f, 0.985146f,
+ 0.985278f, 0.985408f, 0.985539f, 0.985668f, 0.985798f, 0.985926f, 0.986054f, 0.986181f,
+ 0.986308f, 0.986434f, 0.986560f, 0.986685f, 0.986809f, 0.986933f, 0.987057f, 0.987179f,
+ 0.987301f, 0.987423f, 0.987544f, 0.987664f, 0.987784f, 0.987903f, 0.988022f, 0.988140f,
+ 0.988258f, 0.988374f, 0.988491f, 0.988607f, 0.988722f, 0.988836f, 0.988950f, 0.989064f,
+ 0.989177f, 0.989289f, 0.989400f, 0.989511f, 0.989622f, 0.989732f, 0.989841f, 0.989950f,
+ 0.990058f, 0.990166f, 0.990273f, 0.990379f, 0.990485f, 0.990590f, 0.990695f, 0.990799f,
+ 0.990903f, 0.991006f, 0.991108f, 0.991210f, 0.991311f, 0.991411f, 0.991511f, 0.991611f,
+ 0.991710f, 0.991808f, 0.991906f, 0.992003f, 0.992099f, 0.992195f, 0.992291f, 0.992385f,
+ 0.992480f, 0.992573f, 0.992666f, 0.992759f, 0.992850f, 0.992942f, 0.993032f, 0.993122f,
+ 0.993212f, 0.993301f, 0.993389f, 0.993477f, 0.993564f, 0.993651f, 0.993737f, 0.993822f,
+ 0.993907f, 0.993991f, 0.994075f, 0.994158f, 0.994240f, 0.994322f, 0.994404f, 0.994484f,
+ 0.994565f, 0.994644f, 0.994723f, 0.994802f, 0.994879f, 0.994957f, 0.995033f, 0.995109f,
+ 0.995185f, 0.995260f, 0.995334f, 0.995408f, 0.995481f, 0.995553f, 0.995625f, 0.995697f,
+ 0.995767f, 0.995838f, 0.995907f, 0.995976f, 0.996045f, 0.996113f, 0.996180f, 0.996247f,
+ 0.996313f, 0.996378f, 0.996443f, 0.996507f, 0.996571f, 0.996634f, 0.996697f, 0.996759f,
+ 0.996820f, 0.996881f, 0.996941f, 0.997001f, 0.997060f, 0.997119f, 0.997176f, 0.997234f,
+ 0.997290f, 0.997347f, 0.997402f, 0.997457f, 0.997511f, 0.997565f, 0.997618f, 0.997671f,
+ 0.997723f, 0.997774f, 0.997825f, 0.997876f, 0.997925f, 0.997974f, 0.998023f, 0.998071f,
+ 0.998118f, 0.998165f, 0.998211f, 0.998257f, 0.998302f, 0.998346f, 0.998390f, 0.998433f,
+ 0.998476f, 0.998518f, 0.998559f, 0.998600f, 0.998640f, 0.998680f, 0.998719f, 0.998758f,
+ 0.998795f, 0.998833f, 0.998870f, 0.998906f, 0.998941f, 0.998976f, 0.999011f, 0.999044f,
+ 0.999078f, 0.999110f, 0.999142f, 0.999174f, 0.999205f, 0.999235f, 0.999265f, 0.999294f,
+ 0.999322f, 0.999350f, 0.999378f, 0.999404f, 0.999431f, 0.999456f, 0.999481f, 0.999506f,
+ 0.999529f, 0.999553f, 0.999575f, 0.999597f, 0.999619f, 0.999640f, 0.999660f, 0.999680f,
+ 0.999699f, 0.999717f, 0.999735f, 0.999753f, 0.999769f, 0.999786f, 0.999801f, 0.999816f,
+ 0.999831f, 0.999844f, 0.999858f, 0.999870f, 0.999882f, 0.999894f, 0.999905f, 0.999915f,
+ 0.999925f, 0.999934f, 0.999942f, 0.999950f, 0.999958f, 0.999964f, 0.999971f, 0.999976f,
+ 0.999981f, 0.999986f, 0.999989f, 0.999993f, 0.999995f, 0.999997f, 0.999999f, 1.000000f,
+ 0.000000f, -0.000767f, -0.001534f, -0.002301f, -0.003068f, -0.003835f, -0.004602f, -0.005369f,
+ -0.006136f, -0.006903f, -0.007670f, -0.008437f, -0.009204f, -0.009971f, -0.010738f, -0.011505f,
+ -0.012272f, -0.013038f, -0.013805f, -0.014572f, -0.015339f, -0.016106f, -0.016873f, -0.017640f,
+ -0.018407f, -0.019174f, -0.019940f, -0.020707f, -0.021474f, -0.022241f, -0.023008f, -0.023774f,
+ -0.024541f, -0.025308f, -0.026075f, -0.026841f, -0.027608f, -0.028375f, -0.029142f, -0.029908f,
+ -0.030675f, -0.031441f, -0.032208f, -0.032975f, -0.033741f, -0.034508f, -0.035274f, -0.036041f,
+ -0.036807f, -0.037574f, -0.038340f, -0.039107f, -0.039873f, -0.040639f, -0.041406f, -0.042172f,
+ -0.042938f, -0.043705f, -0.044471f, -0.045237f, -0.046003f, -0.046769f, -0.047535f, -0.048302f,
+ -0.049068f, -0.049834f, -0.050600f, -0.051366f, -0.052132f, -0.052898f, -0.053664f, -0.054429f,
+ -0.055195f, -0.055961f, -0.056727f, -0.057493f, -0.058258f, -0.059024f, -0.059790f, -0.060555f,
+ -0.061321f, -0.062086f, -0.062852f, -0.063617f, -0.064383f, -0.065148f, -0.065913f, -0.066679f,
+ -0.067444f, -0.068209f, -0.068974f, -0.069739f, -0.070505f, -0.071270f, -0.072035f, -0.072800f,
+ -0.073565f, -0.074329f, -0.075094f, -0.075859f, -0.076624f, -0.077389f, -0.078153f, -0.078918f,
+ -0.079682f, -0.080447f, -0.081211f, -0.081976f, -0.082740f, -0.083505f, -0.084269f, -0.085033f,
+ -0.085797f, -0.086561f, -0.087326f, -0.088090f, -0.088854f, -0.089617f, -0.090381f, -0.091145f,
+ -0.091909f, -0.092673f, -0.093436f, -0.094200f, -0.094963f, -0.095727f, -0.096490f, -0.097254f,
+ -0.098017f, -0.098780f, -0.099544f, -0.100307f, -0.101070f, -0.101833f, -0.102596f, -0.103359f,
+ -0.104122f, -0.104884f, -0.105647f, -0.106410f, -0.107172f, -0.107935f, -0.108697f, -0.109460f,
+ -0.110222f, -0.110984f, -0.111747f, -0.112509f, -0.113271f, -0.114033f, -0.114795f, -0.115557f,
+ -0.116319f, -0.117080f, -0.117842f, -0.118604f, -0.119365f, -0.120127f, -0.120888f, -0.121649f,
+ -0.122411f, -0.123172f, -0.123933f, -0.124694f, -0.125455f, -0.126216f, -0.126977f, -0.127737f,
+ -0.128498f, -0.129259f, -0.130019f, -0.130780f, -0.131540f, -0.132300f, -0.133061f, -0.133821f,
+ -0.134581f, -0.135341f, -0.136101f, -0.136860f, -0.137620f, -0.138380f, -0.139139f, -0.139899f,
+ -0.140658f, -0.141418f, -0.142177f, -0.142936f, -0.143695f, -0.144454f, -0.145213f, -0.145972f,
+ -0.146730f, -0.147489f, -0.148248f, -0.149006f, -0.149765f, -0.150523f, -0.151281f, -0.152039f,
+ -0.152797f, -0.153555f, -0.154313f, -0.155071f, -0.155828f, -0.156586f, -0.157343f, -0.158101f,
+ -0.158858f, -0.159615f, -0.160372f, -0.161129f, -0.161886f, -0.162643f, -0.163400f, -0.164157f,
+ -0.164913f, -0.165670f, -0.166426f, -0.167182f, -0.167938f, -0.168694f, -0.169450f, -0.170206f,
+ -0.170962f, -0.171718f, -0.172473f, -0.173229f, -0.173984f, -0.174739f, -0.175494f, -0.176249f,
+ -0.177004f, -0.177759f, -0.178514f, -0.179268f, -0.180023f, -0.180777f, -0.181532f, -0.182286f,
+ -0.183040f, -0.183794f, -0.184548f, -0.185301f, -0.186055f, -0.186809f, -0.187562f, -0.188315f,
+ -0.189069f, -0.189822f, -0.190575f, -0.191328f, -0.192080f, -0.192833f, -0.193586f, -0.194338f,
+ -0.195090f, -0.195843f, -0.196595f, -0.197347f, -0.198098f, -0.198850f, -0.199602f, -0.200353f,
+ -0.201105f, -0.201856f, -0.202607f, -0.203358f, -0.204109f, -0.204860f, -0.205610f, -0.206361f,
+ -0.207111f, -0.207862f, -0.208612f, -0.209362f, -0.210112f, -0.210862f, -0.211611f, -0.212361f,
+ -0.213110f, -0.213860f, -0.214609f, -0.215358f, -0.216107f, -0.216856f, -0.217604f, -0.218353f,
+ -0.219101f, -0.219850f, -0.220598f, -0.221346f, -0.222094f, -0.222841f, -0.223589f, -0.224337f,
+ -0.225084f, -0.225831f, -0.226578f, -0.227325f, -0.228072f, -0.228819f, -0.229565f, -0.230312f,
+ -0.231058f, -0.231804f, -0.232550f, -0.233296f, -0.234042f, -0.234788f, -0.235533f, -0.236278f,
+ -0.237024f, -0.237769f, -0.238514f, -0.239258f, -0.240003f, -0.240748f, -0.241492f, -0.242236f,
+ -0.242980f, -0.243724f, -0.244468f, -0.245212f, -0.245955f, -0.246698f, -0.247442f, -0.248185f,
+ -0.248928f, -0.249670f, -0.250413f, -0.251155f, -0.251898f, -0.252640f, -0.253382f, -0.254124f,
+ -0.254866f, -0.255607f, -0.256349f, -0.257090f, -0.257831f, -0.258572f, -0.259313f, -0.260054f,
+ -0.260794f, -0.261534f, -0.262275f, -0.263015f, -0.263755f, -0.264494f, -0.265234f, -0.265973f,
+ -0.266713f, -0.267452f, -0.268191f, -0.268930f, -0.269668f, -0.270407f, -0.271145f, -0.271883f,
+ -0.272621f, -0.273359f, -0.274097f, -0.274834f, -0.275572f, -0.276309f, -0.277046f, -0.277783f,
+ -0.278520f, -0.279256f, -0.279993f, -0.280729f, -0.281465f, -0.282201f, -0.282937f, -0.283672f,
+ -0.284408f, -0.285143f, -0.285878f, -0.286613f, -0.287347f, -0.288082f, -0.288816f, -0.289551f,
+ -0.290285f, -0.291019f, -0.291752f, -0.292486f, -0.293219f, -0.293952f, -0.294685f, -0.295418f,
+ -0.296151f, -0.296883f, -0.297616f, -0.298348f, -0.299080f, -0.299812f, -0.300543f, -0.301275f,
+ -0.302006f, -0.302737f, -0.303468f, -0.304199f, -0.304929f, -0.305660f, -0.306390f, -0.307120f,
+ -0.307850f, -0.308579f, -0.309309f, -0.310038f, -0.310767f, -0.311496f, -0.312225f, -0.312953f,
+ -0.313682f, -0.314410f, -0.315138f, -0.315866f, -0.316593f, -0.317321f, -0.318048f, -0.318775f,
+ -0.319502f, -0.320229f, -0.320955f, -0.321682f, -0.322408f, -0.323134f, -0.323859f, -0.324585f,
+ -0.325310f, -0.326035f, -0.326760f, -0.327485f, -0.328210f, -0.328934f, -0.329658f, -0.330382f,
+ -0.331106f, -0.331830f, -0.332553f, -0.333277f, -0.334000f, -0.334722f, -0.335445f, -0.336168f,
+ -0.336890f, -0.337612f, -0.338334f, -0.339055f, -0.339777f, -0.340498f, -0.341219f, -0.341940f,
+ -0.342661f, -0.343381f, -0.344101f, -0.344821f, -0.345541f, -0.346261f, -0.346980f, -0.347700f,
+ -0.348419f, -0.349138f, -0.349856f, -0.350575f, -0.351293f, -0.352011f, -0.352729f, -0.353446f,
+ -0.354164f, -0.354881f, -0.355598f, -0.356314f, -0.357031f, -0.357747f, -0.358463f, -0.359179f,
+ -0.359895f, -0.360611f, -0.361326f, -0.362041f, -0.362756f, -0.363470f, -0.364185f, -0.364899f,
+ -0.365613f, -0.366327f, -0.367040f, -0.367754f, -0.368467f, -0.369180f, -0.369892f, -0.370605f,
+ -0.371317f, -0.372029f, -0.372741f, -0.373453f, -0.374164f, -0.374875f, -0.375586f, -0.376297f,
+ -0.377007f, -0.377718f, -0.378428f, -0.379138f, -0.379847f, -0.380557f, -0.381266f, -0.381975f,
+ -0.382683f, -0.383392f, -0.384100f, -0.384808f, -0.385516f, -0.386224f, -0.386931f, -0.387638f,
+ -0.388345f, -0.389052f, -0.389758f, -0.390464f, -0.391170f, -0.391876f, -0.392582f, -0.393287f,
+ -0.393992f, -0.394697f, -0.395401f, -0.396106f, -0.396810f, -0.397514f, -0.398218f, -0.398921f,
+ -0.399624f, -0.400327f, -0.401030f, -0.401732f, -0.402435f, -0.403137f, -0.403838f, -0.404540f,
+ -0.405241f, -0.405942f, -0.406643f, -0.407344f, -0.408044f, -0.408744f, -0.409444f, -0.410144f,
+ -0.410843f, -0.411542f, -0.412241f, -0.412940f, -0.413638f, -0.414337f, -0.415034f, -0.415732f,
+ -0.416430f, -0.417127f, -0.417824f, -0.418520f, -0.419217f, -0.419913f, -0.420609f, -0.421305f,
+ -0.422000f, -0.422695f, -0.423390f, -0.424085f, -0.424780f, -0.425474f, -0.426168f, -0.426862f,
+ -0.427555f, -0.428248f, -0.428941f, -0.429634f, -0.430326f, -0.431019f, -0.431711f, -0.432402f,
+ -0.433094f, -0.433785f, -0.434476f, -0.435167f, -0.435857f, -0.436547f, -0.437237f, -0.437927f,
+ -0.438616f, -0.439305f, -0.439994f, -0.440683f, -0.441371f, -0.442059f, -0.442747f, -0.443435f,
+ -0.444122f, -0.444809f, -0.445496f, -0.446183f, -0.446869f, -0.447555f, -0.448241f, -0.448926f,
+ -0.449611f, -0.450296f, -0.450981f, -0.451665f, -0.452350f, -0.453033f, -0.453717f, -0.454400f,
+ -0.455084f, -0.455766f, -0.456449f, -0.457131f, -0.457813f, -0.458495f, -0.459177f, -0.459858f,
+ -0.460539f, -0.461219f, -0.461900f, -0.462580f, -0.463260f, -0.463939f, -0.464619f, -0.465298f,
+ -0.465977f, -0.466655f, -0.467333f, -0.468011f, -0.468689f, -0.469366f, -0.470043f, -0.470720f,
+ -0.471397f, -0.472073f, -0.472749f, -0.473425f, -0.474100f, -0.474775f, -0.475450f, -0.476125f,
+ -0.476799f, -0.477473f, -0.478147f, -0.478821f, -0.479494f, -0.480167f, -0.480839f, -0.481512f,
+ -0.482184f, -0.482856f, -0.483527f, -0.484198f, -0.484869f, -0.485540f, -0.486210f, -0.486880f,
+ -0.487550f, -0.488220f, -0.488889f, -0.489558f, -0.490226f, -0.490895f, -0.491563f, -0.492231f,
+ -0.492898f, -0.493565f, -0.494232f, -0.494899f, -0.495565f, -0.496231f, -0.496897f, -0.497562f,
+ -0.498228f, -0.498893f, -0.499557f, -0.500221f, -0.500885f, -0.501549f, -0.502212f, -0.502876f,
+ -0.503538f, -0.504201f, -0.504863f, -0.505525f, -0.506187f, -0.506848f, -0.507509f, -0.508170f,
+ -0.508830f, -0.509490f, -0.510150f, -0.510810f, -0.511469f, -0.512128f, -0.512786f, -0.513445f,
+ -0.514103f, -0.514760f, -0.515418f, -0.516075f, -0.516732f, -0.517388f, -0.518045f, -0.518700f,
+ -0.519356f, -0.520011f, -0.520666f, -0.521321f, -0.521975f, -0.522629f, -0.523283f, -0.523937f,
+ -0.524590f, -0.525243f, -0.525895f, -0.526547f, -0.527199f, -0.527851f, -0.528502f, -0.529153f,
+ -0.529804f, -0.530454f, -0.531104f, -0.531754f, -0.532403f, -0.533052f, -0.533701f, -0.534349f,
+ -0.534998f, -0.535645f, -0.536293f, -0.536940f, -0.537587f, -0.538234f, -0.538880f, -0.539526f,
+ -0.540171f, -0.540817f, -0.541462f, -0.542106f, -0.542751f, -0.543395f, -0.544039f, -0.544682f,
+ -0.545325f, -0.545968f, -0.546610f, -0.547252f, -0.547894f, -0.548536f, -0.549177f, -0.549818f,
+ -0.550458f, -0.551098f, -0.551738f, -0.552378f, -0.553017f, -0.553656f, -0.554294f, -0.554932f,
+ -0.555570f, -0.556208f, -0.556845f, -0.557482f, -0.558119f, -0.558755f, -0.559391f, -0.560026f,
+ -0.560662f, -0.561297f, -0.561931f, -0.562565f, -0.563199f, -0.563833f, -0.564466f, -0.565099f,
+ -0.565732f, -0.566364f, -0.566996f, -0.567628f, -0.568259f, -0.568890f, -0.569521f, -0.570151f,
+ -0.570781f, -0.571410f, -0.572040f, -0.572669f, -0.573297f, -0.573925f, -0.574553f, -0.575181f,
+ -0.575808f, -0.576435f, -0.577062f, -0.577688f, -0.578314f, -0.578939f, -0.579565f, -0.580189f,
+ -0.580814f, -0.581438f, -0.582062f, -0.582685f, -0.583309f, -0.583931f, -0.584554f, -0.585176f,
+ -0.585798f, -0.586419f, -0.587040f, -0.587661f, -0.588282f, -0.588902f, -0.589521f, -0.590141f,
+ -0.590760f, -0.591378f, -0.591997f, -0.592615f, -0.593232f, -0.593850f, -0.594467f, -0.595083f,
+ -0.595699f, -0.596315f, -0.596931f, -0.597546f, -0.598161f, -0.598775f, -0.599389f, -0.600003f,
+ -0.600616f, -0.601230f, -0.601842f, -0.602455f, -0.603067f, -0.603678f, -0.604290f, -0.604900f,
+ -0.605511f, -0.606121f, -0.606731f, -0.607341f, -0.607950f, -0.608559f, -0.609167f, -0.609775f,
+ -0.610383f, -0.610990f, -0.611597f, -0.612204f, -0.612810f, -0.613416f, -0.614022f, -0.614627f,
+ -0.615232f, -0.615836f, -0.616440f, -0.617044f, -0.617647f, -0.618250f, -0.618853f, -0.619455f,
+ -0.620057f, -0.620659f, -0.621260f, -0.621861f, -0.622461f, -0.623061f, -0.623661f, -0.624260f,
+ -0.624860f, -0.625458f, -0.626056f, -0.626654f, -0.627252f, -0.627849f, -0.628446f, -0.629042f,
+ -0.629638f, -0.630234f, -0.630829f, -0.631424f, -0.632019f, -0.632613f, -0.633207f, -0.633800f,
+ -0.634393f, -0.634986f, -0.635578f, -0.636170f, -0.636762f, -0.637353f, -0.637944f, -0.638534f,
+ -0.639124f, -0.639714f, -0.640303f, -0.640892f, -0.641481f, -0.642069f, -0.642657f, -0.643245f,
+ -0.643832f, -0.644418f, -0.645005f, -0.645590f, -0.646176f, -0.646761f, -0.647346f, -0.647930f,
+ -0.648514f, -0.649098f, -0.649681f, -0.650264f, -0.650847f, -0.651429f, -0.652011f, -0.652592f,
+ -0.653173f, -0.653753f, -0.654334f, -0.654913f, -0.655493f, -0.656072f, -0.656651f, -0.657229f,
+ -0.657807f, -0.658384f, -0.658961f, -0.659538f, -0.660114f, -0.660690f, -0.661266f, -0.661841f,
+ -0.662416f, -0.662990f, -0.663564f, -0.664138f, -0.664711f, -0.665284f, -0.665856f, -0.666428f,
+ -0.667000f, -0.667571f, -0.668142f, -0.668712f, -0.669283f, -0.669852f, -0.670422f, -0.670990f,
+ -0.671559f, -0.672127f, -0.672695f, -0.673262f, -0.673829f, -0.674396f, -0.674962f, -0.675527f,
+ -0.676093f, -0.676658f, -0.677222f, -0.677786f, -0.678350f, -0.678913f, -0.679476f, -0.680039f,
+ -0.680601f, -0.681163f, -0.681724f, -0.682285f, -0.682846f, -0.683406f, -0.683965f, -0.684525f,
+ -0.685084f, -0.685642f, -0.686200f, -0.686758f, -0.687315f, -0.687872f, -0.688429f, -0.688985f,
+ -0.689541f, -0.690096f, -0.690651f, -0.691205f, -0.691759f, -0.692313f, -0.692866f, -0.693419f,
+ -0.693971f, -0.694524f, -0.695075f, -0.695626f, -0.696177f, -0.696728f, -0.697277f, -0.697827f,
+ -0.698376f, -0.698925f, -0.699473f, -0.700021f, -0.700569f, -0.701116f, -0.701663f, -0.702209f,
+ -0.702755f, -0.703300f, -0.703845f, -0.704390f, -0.704934f, -0.705478f, -0.706021f, -0.706564f,
+ -0.707107f, -0.707649f, -0.708191f, -0.708732f, -0.709273f, -0.709813f, -0.710353f, -0.710893f,
+ -0.711432f, -0.711971f, -0.712509f, -0.713047f, -0.713585f, -0.714122f, -0.714659f, -0.715195f,
+ -0.715731f, -0.716266f, -0.716801f, -0.717336f, -0.717870f, -0.718404f, -0.718937f, -0.719470f,
+ -0.720003f, -0.720535f, -0.721066f, -0.721597f, -0.722128f, -0.722659f, -0.723188f, -0.723718f,
+ -0.724247f, -0.724776f, -0.725304f, -0.725832f, -0.726359f, -0.726886f, -0.727413f, -0.727939f,
+ -0.728464f, -0.728990f, -0.729514f, -0.730039f, -0.730563f, -0.731086f, -0.731609f, -0.732132f,
+ -0.732654f, -0.733176f, -0.733697f, -0.734218f, -0.734739f, -0.735259f, -0.735779f, -0.736298f,
+ -0.736817f, -0.737335f, -0.737853f, -0.738370f, -0.738887f, -0.739404f, -0.739920f, -0.740436f,
+ -0.740951f, -0.741466f, -0.741980f, -0.742494f, -0.743008f, -0.743521f, -0.744034f, -0.744546f,
+ -0.745058f, -0.745569f, -0.746080f, -0.746591f, -0.747101f, -0.747610f, -0.748119f, -0.748628f,
+ -0.749136f, -0.749644f, -0.750152f, -0.750659f, -0.751165f, -0.751671f, -0.752177f, -0.752682f,
+ -0.753187f, -0.753691f, -0.754195f, -0.754698f, -0.755201f, -0.755704f, -0.756206f, -0.756708f,
+ -0.757209f, -0.757710f, -0.758210f, -0.758710f, -0.759209f, -0.759708f, -0.760207f, -0.760705f,
+ -0.761202f, -0.761700f, -0.762196f, -0.762693f, -0.763188f, -0.763684f, -0.764179f, -0.764673f,
+ -0.765167f, -0.765661f, -0.766154f, -0.766647f, -0.767139f, -0.767631f, -0.768122f, -0.768613f,
+ -0.769103f, -0.769593f, -0.770083f, -0.770572f, -0.771061f, -0.771549f, -0.772036f, -0.772524f,
+ -0.773010f, -0.773497f, -0.773983f, -0.774468f, -0.774953f, -0.775438f, -0.775922f, -0.776405f,
+ -0.776888f, -0.777371f, -0.777853f, -0.778335f, -0.778817f, -0.779297f, -0.779778f, -0.780258f,
+ -0.780737f, -0.781216f, -0.781695f, -0.782173f, -0.782651f, -0.783128f, -0.783605f, -0.784081f,
+ -0.784557f, -0.785032f, -0.785507f, -0.785981f, -0.786455f, -0.786929f, -0.787402f, -0.787874f,
+ -0.788346f, -0.788818f, -0.789289f, -0.789760f, -0.790230f, -0.790700f, -0.791169f, -0.791638f,
+ -0.792107f, -0.792575f, -0.793042f, -0.793509f, -0.793975f, -0.794442f, -0.794907f, -0.795372f,
+ -0.795837f, -0.796301f, -0.796765f, -0.797228f, -0.797691f, -0.798153f, -0.798615f, -0.799076f,
+ -0.799537f, -0.799998f, -0.800458f, -0.800917f, -0.801376f, -0.801835f, -0.802293f, -0.802750f,
+ -0.803208f, -0.803664f, -0.804120f, -0.804576f, -0.805031f, -0.805486f, -0.805940f, -0.806394f,
+ -0.806848f, -0.807300f, -0.807753f, -0.808205f, -0.808656f, -0.809107f, -0.809558f, -0.810008f,
+ -0.810457f, -0.810906f, -0.811355f, -0.811803f, -0.812251f, -0.812698f, -0.813144f, -0.813591f,
+ -0.814036f, -0.814482f, -0.814926f, -0.815371f, -0.815814f, -0.816258f, -0.816701f, -0.817143f,
+ -0.817585f, -0.818026f, -0.818467f, -0.818908f, -0.819348f, -0.819787f, -0.820226f, -0.820664f,
+ -0.821102f, -0.821540f, -0.821977f, -0.822414f, -0.822850f, -0.823285f, -0.823721f, -0.824155f,
+ -0.824589f, -0.825023f, -0.825456f, -0.825889f, -0.826321f, -0.826753f, -0.827184f, -0.827615f,
+ -0.828045f, -0.828475f, -0.828904f, -0.829333f, -0.829761f, -0.830189f, -0.830616f, -0.831043f,
+ -0.831470f, -0.831895f, -0.832321f, -0.832746f, -0.833170f, -0.833594f, -0.834018f, -0.834440f,
+ -0.834863f, -0.835285f, -0.835706f, -0.836127f, -0.836548f, -0.836968f, -0.837387f, -0.837806f,
+ -0.838225f, -0.838643f, -0.839060f, -0.839477f, -0.839894f, -0.840310f, -0.840725f, -0.841140f,
+ -0.841555f, -0.841969f, -0.842383f, -0.842796f, -0.843208f, -0.843620f, -0.844032f, -0.844443f,
+ -0.844854f, -0.845264f, -0.845673f, -0.846082f, -0.846491f, -0.846899f, -0.847307f, -0.847714f,
+ -0.848120f, -0.848526f, -0.848932f, -0.849337f, -0.849742f, -0.850146f, -0.850549f, -0.850953f,
+ -0.851355f, -0.851757f, -0.852159f, -0.852560f, -0.852961f, -0.853361f, -0.853760f, -0.854159f,
+ -0.854558f, -0.854956f, -0.855354f, -0.855751f, -0.856147f, -0.856543f, -0.856939f, -0.857334f,
+ -0.857729f, -0.858123f, -0.858516f, -0.858909f, -0.859302f, -0.859694f, -0.860085f, -0.860476f,
+ -0.860867f, -0.861257f, -0.861646f, -0.862035f, -0.862424f, -0.862812f, -0.863199f, -0.863586f,
+ -0.863973f, -0.864359f, -0.864744f, -0.865129f, -0.865514f, -0.865898f, -0.866281f, -0.866664f,
+ -0.867046f, -0.867428f, -0.867809f, -0.868190f, -0.868571f, -0.868951f, -0.869330f, -0.869709f,
+ -0.870087f, -0.870465f, -0.870842f, -0.871219f, -0.871595f, -0.871971f, -0.872346f, -0.872721f,
+ -0.873095f, -0.873469f, -0.873842f, -0.874215f, -0.874587f, -0.874958f, -0.875329f, -0.875700f,
+ -0.876070f, -0.876440f, -0.876809f, -0.877177f, -0.877545f, -0.877913f, -0.878280f, -0.878646f,
+ -0.879012f, -0.879378f, -0.879743f, -0.880107f, -0.880471f, -0.880834f, -0.881197f, -0.881559f,
+ -0.881921f, -0.882283f, -0.882643f, -0.883004f, -0.883363f, -0.883723f, -0.884081f, -0.884439f,
+ -0.884797f, -0.885154f, -0.885511f, -0.885867f, -0.886223f, -0.886578f, -0.886932f, -0.887286f,
+ -0.887640f, -0.887993f, -0.888345f, -0.888697f, -0.889048f, -0.889399f, -0.889750f, -0.890099f,
+ -0.890449f, -0.890797f, -0.891146f, -0.891493f, -0.891841f, -0.892187f, -0.892534f, -0.892879f,
+ -0.893224f, -0.893569f, -0.893913f, -0.894256f, -0.894599f, -0.894942f, -0.895284f, -0.895625f,
+ -0.895966f, -0.896307f, -0.896646f, -0.896986f, -0.897325f, -0.897663f, -0.898001f, -0.898338f,
+ -0.898674f, -0.899011f, -0.899346f, -0.899681f, -0.900016f, -0.900350f, -0.900683f, -0.901016f,
+ -0.901349f, -0.901681f, -0.902012f, -0.902343f, -0.902673f, -0.903003f, -0.903332f, -0.903661f,
+ -0.903989f, -0.904317f, -0.904644f, -0.904971f, -0.905297f, -0.905622f, -0.905947f, -0.906272f,
+ -0.906596f, -0.906919f, -0.907242f, -0.907564f, -0.907886f, -0.908207f, -0.908528f, -0.908848f,
+ -0.909168f, -0.909487f, -0.909806f, -0.910124f, -0.910441f, -0.910758f, -0.911075f, -0.911391f,
+ -0.911706f, -0.912021f, -0.912335f, -0.912649f, -0.912962f, -0.913275f, -0.913587f, -0.913899f,
+ -0.914210f, -0.914520f, -0.914830f, -0.915140f, -0.915449f, -0.915757f, -0.916065f, -0.916372f,
+ -0.916679f, -0.916985f, -0.917291f, -0.917596f, -0.917901f, -0.918205f, -0.918508f, -0.918811f,
+ -0.919114f, -0.919416f, -0.919717f, -0.920018f, -0.920318f, -0.920618f, -0.920917f, -0.921216f,
+ -0.921514f, -0.921812f, -0.922109f, -0.922405f, -0.922701f, -0.922997f, -0.923291f, -0.923586f,
+ -0.923880f, -0.924173f, -0.924465f, -0.924758f, -0.925049f, -0.925340f, -0.925631f, -0.925921f,
+ -0.926210f, -0.926499f, -0.926787f, -0.927075f, -0.927363f, -0.927649f, -0.927935f, -0.928221f,
+ -0.928506f, -0.928791f, -0.929075f, -0.929358f, -0.929641f, -0.929923f, -0.930205f, -0.930486f,
+ -0.930767f, -0.931047f, -0.931327f, -0.931606f, -0.931884f, -0.932162f, -0.932440f, -0.932716f,
+ -0.932993f, -0.933269f, -0.933544f, -0.933818f, -0.934093f, -0.934366f, -0.934639f, -0.934912f,
+ -0.935184f, -0.935455f, -0.935726f, -0.935996f, -0.936266f, -0.936535f, -0.936803f, -0.937072f,
+ -0.937339f, -0.937606f, -0.937872f, -0.938138f, -0.938404f, -0.938668f, -0.938932f, -0.939196f,
+ -0.939459f, -0.939722f, -0.939984f, -0.940245f, -0.940506f, -0.940766f, -0.941026f, -0.941285f,
+ -0.941544f, -0.941802f, -0.942060f, -0.942317f, -0.942573f, -0.942829f, -0.943084f, -0.943339f,
+ -0.943593f, -0.943847f, -0.944100f, -0.944353f, -0.944605f, -0.944856f, -0.945107f, -0.945358f,
+ -0.945607f, -0.945857f, -0.946105f, -0.946353f, -0.946601f, -0.946848f, -0.947094f, -0.947340f,
+ -0.947586f, -0.947830f, -0.948075f, -0.948318f, -0.948561f, -0.948804f, -0.949046f, -0.949287f,
+ -0.949528f, -0.949768f, -0.950008f, -0.950247f, -0.950486f, -0.950724f, -0.950962f, -0.951199f,
+ -0.951435f, -0.951671f, -0.951906f, -0.952141f, -0.952375f, -0.952609f, -0.952842f, -0.953074f,
+ -0.953306f, -0.953537f, -0.953768f, -0.953998f, -0.954228f, -0.954457f, -0.954686f, -0.954914f,
+ -0.955141f, -0.955368f, -0.955594f, -0.955820f, -0.956045f, -0.956270f, -0.956494f, -0.956717f,
+ -0.956940f, -0.957163f, -0.957385f, -0.957606f, -0.957826f, -0.958046f, -0.958266f, -0.958485f,
+ -0.958703f, -0.958921f, -0.959139f, -0.959355f, -0.959572f, -0.959787f, -0.960002f, -0.960217f,
+ -0.960431f, -0.960644f, -0.960857f, -0.961069f, -0.961280f, -0.961492f, -0.961702f, -0.961912f,
+ -0.962121f, -0.962330f, -0.962538f, -0.962746f, -0.962953f, -0.963160f, -0.963366f, -0.963571f,
+ -0.963776f, -0.963980f, -0.964184f, -0.964387f, -0.964590f, -0.964792f, -0.964993f, -0.965194f,
+ -0.965394f, -0.965594f, -0.965793f, -0.965992f, -0.966190f, -0.966387f, -0.966584f, -0.966781f,
+ -0.966976f, -0.967172f, -0.967366f, -0.967560f, -0.967754f, -0.967947f, -0.968139f, -0.968331f,
+ -0.968522f, -0.968713f, -0.968903f, -0.969092f, -0.969281f, -0.969470f, -0.969657f, -0.969845f,
+ -0.970031f, -0.970217f, -0.970403f, -0.970588f, -0.970772f, -0.970956f, -0.971139f, -0.971322f,
+ -0.971504f, -0.971685f, -0.971866f, -0.972047f, -0.972227f, -0.972406f, -0.972584f, -0.972762f,
+ -0.972940f, -0.973117f, -0.973293f, -0.973469f, -0.973644f, -0.973819f, -0.973993f, -0.974166f,
+ -0.974339f, -0.974512f, -0.974684f, -0.974855f, -0.975025f, -0.975195f, -0.975365f, -0.975534f,
+ -0.975702f, -0.975870f, -0.976037f, -0.976204f, -0.976370f, -0.976535f, -0.976700f, -0.976864f,
+ -0.977028f, -0.977191f, -0.977354f, -0.977516f, -0.977677f, -0.977838f, -0.977998f, -0.978158f,
+ -0.978317f, -0.978476f, -0.978634f, -0.978791f, -0.978948f, -0.979104f, -0.979260f, -0.979415f,
+ -0.979570f, -0.979724f, -0.979877f, -0.980030f, -0.980182f, -0.980334f, -0.980485f, -0.980635f,
+ -0.980785f, -0.980935f, -0.981083f, -0.981232f, -0.981379f, -0.981526f, -0.981673f, -0.981819f,
+ -0.981964f, -0.982109f, -0.982253f, -0.982396f, -0.982539f, -0.982682f, -0.982824f, -0.982965f,
+ -0.983105f, -0.983246f, -0.983385f, -0.983524f, -0.983662f, -0.983800f, -0.983937f, -0.984074f,
+ -0.984210f, -0.984346f, -0.984480f, -0.984615f, -0.984748f, -0.984882f, -0.985014f, -0.985146f,
+ -0.985278f, -0.985408f, -0.985539f, -0.985668f, -0.985798f, -0.985926f, -0.986054f, -0.986181f,
+ -0.986308f, -0.986434f, -0.986560f, -0.986685f, -0.986809f, -0.986933f, -0.987057f, -0.987179f,
+ -0.987301f, -0.987423f, -0.987544f, -0.987664f, -0.987784f, -0.987903f, -0.988022f, -0.988140f,
+ -0.988258f, -0.988374f, -0.988491f, -0.988607f, -0.988722f, -0.988836f, -0.988950f, -0.989064f,
+ -0.989177f, -0.989289f, -0.989400f, -0.989511f, -0.989622f, -0.989732f, -0.989841f, -0.989950f,
+ -0.990058f, -0.990166f, -0.990273f, -0.990379f, -0.990485f, -0.990590f, -0.990695f, -0.990799f,
+ -0.990903f, -0.991006f, -0.991108f, -0.991210f, -0.991311f, -0.991411f, -0.991511f, -0.991611f,
+ -0.991710f, -0.991808f, -0.991906f, -0.992003f, -0.992099f, -0.992195f, -0.992291f, -0.992385f,
+ -0.992480f, -0.992573f, -0.992666f, -0.992759f, -0.992850f, -0.992942f, -0.993032f, -0.993122f,
+ -0.993212f, -0.993301f, -0.993389f, -0.993477f, -0.993564f, -0.993651f, -0.993737f, -0.993822f,
+ -0.993907f, -0.993991f, -0.994075f, -0.994158f, -0.994240f, -0.994322f, -0.994404f, -0.994484f,
+ -0.994565f, -0.994644f, -0.994723f, -0.994802f, -0.994879f, -0.994957f, -0.995033f, -0.995109f,
+ -0.995185f, -0.995260f, -0.995334f, -0.995408f, -0.995481f, -0.995553f, -0.995625f, -0.995697f,
+ -0.995767f, -0.995838f, -0.995907f, -0.995976f, -0.996045f, -0.996113f, -0.996180f, -0.996247f,
+ -0.996313f, -0.996378f, -0.996443f, -0.996507f, -0.996571f, -0.996634f, -0.996697f, -0.996759f,
+ -0.996820f, -0.996881f, -0.996941f, -0.997001f, -0.997060f, -0.997119f, -0.997176f, -0.997234f,
+ -0.997290f, -0.997347f, -0.997402f, -0.997457f, -0.997511f, -0.997565f, -0.997618f, -0.997671f,
+ -0.997723f, -0.997774f, -0.997825f, -0.997876f, -0.997925f, -0.997974f, -0.998023f, -0.998071f,
+ -0.998118f, -0.998165f, -0.998211f, -0.998257f, -0.998302f, -0.998346f, -0.998390f, -0.998433f,
+ -0.998476f, -0.998518f, -0.998559f, -0.998600f, -0.998640f, -0.998680f, -0.998719f, -0.998758f,
+ -0.998795f, -0.998833f, -0.998870f, -0.998906f, -0.998941f, -0.998976f, -0.999011f, -0.999044f,
+ -0.999078f, -0.999110f, -0.999142f, -0.999174f, -0.999205f, -0.999235f, -0.999265f, -0.999294f,
+ -0.999322f, -0.999350f, -0.999378f, -0.999404f, -0.999431f, -0.999456f, -0.999481f, -0.999506f,
+ -0.999529f, -0.999553f, -0.999575f, -0.999597f, -0.999619f, -0.999640f, -0.999660f, -0.999680f,
+ -0.999699f, -0.999717f, -0.999735f, -0.999753f, -0.999769f, -0.999786f, -0.999801f, -0.999816f,
+ -0.999831f, -0.999844f, -0.999858f, -0.999870f, -0.999882f, -0.999894f, -0.999905f, -0.999915f,
+ -0.999925f, -0.999934f, -0.999942f, -0.999950f, -0.999958f, -0.999964f, -0.999971f, -0.999976f,
+ -0.999981f, -0.999986f, -0.999989f, -0.999993f, -0.999995f, -0.999997f, -0.999999f, -1.000000
+};
+
+static const float sinTable16384[8192] = {
+ 0.000000f, 0.000383f, 0.000767f, 0.001150f, 0.001534f, 0.001917f, 0.002301f, 0.002684f,
+ 0.003068f, 0.003451f, 0.003835f, 0.004218f, 0.004602f, 0.004985f, 0.005369f, 0.005752f,
+ 0.006136f, 0.006519f, 0.006903f, 0.007286f, 0.007670f, 0.008053f, 0.008437f, 0.008820f,
+ 0.009204f, 0.009587f, 0.009971f, 0.010354f, 0.010738f, 0.011121f, 0.011505f, 0.011888f,
+ 0.012272f, 0.012655f, 0.013038f, 0.013422f, 0.013805f, 0.014189f, 0.014572f, 0.014956f,
+ 0.015339f, 0.015723f, 0.016106f, 0.016490f, 0.016873f, 0.017256f, 0.017640f, 0.018023f,
+ 0.018407f, 0.018790f, 0.019174f, 0.019557f, 0.019940f, 0.020324f, 0.020707f, 0.021091f,
+ 0.021474f, 0.021857f, 0.022241f, 0.022624f, 0.023008f, 0.023391f, 0.023774f, 0.024158f,
+ 0.024541f, 0.024925f, 0.025308f, 0.025691f, 0.026075f, 0.026458f, 0.026841f, 0.027225f,
+ 0.027608f, 0.027991f, 0.028375f, 0.028758f, 0.029142f, 0.029525f, 0.029908f, 0.030291f,
+ 0.030675f, 0.031058f, 0.031441f, 0.031825f, 0.032208f, 0.032591f, 0.032975f, 0.033358f,
+ 0.033741f, 0.034124f, 0.034508f, 0.034891f, 0.035274f, 0.035657f, 0.036041f, 0.036424f,
+ 0.036807f, 0.037190f, 0.037574f, 0.037957f, 0.038340f, 0.038723f, 0.039107f, 0.039490f,
+ 0.039873f, 0.040256f, 0.040639f, 0.041022f, 0.041406f, 0.041789f, 0.042172f, 0.042555f,
+ 0.042938f, 0.043321f, 0.043705f, 0.044088f, 0.044471f, 0.044854f, 0.045237f, 0.045620f,
+ 0.046003f, 0.046386f, 0.046769f, 0.047152f, 0.047535f, 0.047919f, 0.048302f, 0.048685f,
+ 0.049068f, 0.049451f, 0.049834f, 0.050217f, 0.050600f, 0.050983f, 0.051366f, 0.051749f,
+ 0.052132f, 0.052515f, 0.052898f, 0.053281f, 0.053664f, 0.054046f, 0.054429f, 0.054812f,
+ 0.055195f, 0.055578f, 0.055961f, 0.056344f, 0.056727f, 0.057110f, 0.057493f, 0.057875f,
+ 0.058258f, 0.058641f, 0.059024f, 0.059407f, 0.059790f, 0.060172f, 0.060555f, 0.060938f,
+ 0.061321f, 0.061704f, 0.062086f, 0.062469f, 0.062852f, 0.063234f, 0.063617f, 0.064000f,
+ 0.064383f, 0.064765f, 0.065148f, 0.065531f, 0.065913f, 0.066296f, 0.066679f, 0.067061f,
+ 0.067444f, 0.067827f, 0.068209f, 0.068592f, 0.068974f, 0.069357f, 0.069739f, 0.070122f,
+ 0.070505f, 0.070887f, 0.071270f, 0.071652f, 0.072035f, 0.072417f, 0.072800f, 0.073182f,
+ 0.073565f, 0.073947f, 0.074329f, 0.074712f, 0.075094f, 0.075477f, 0.075859f, 0.076241f,
+ 0.076624f, 0.077006f, 0.077389f, 0.077771f, 0.078153f, 0.078536f, 0.078918f, 0.079300f,
+ 0.079682f, 0.080065f, 0.080447f, 0.080829f, 0.081211f, 0.081594f, 0.081976f, 0.082358f,
+ 0.082740f, 0.083122f, 0.083505f, 0.083887f, 0.084269f, 0.084651f, 0.085033f, 0.085415f,
+ 0.085797f, 0.086179f, 0.086561f, 0.086943f, 0.087326f, 0.087708f, 0.088090f, 0.088472f,
+ 0.088854f, 0.089236f, 0.089617f, 0.089999f, 0.090381f, 0.090763f, 0.091145f, 0.091527f,
+ 0.091909f, 0.092291f, 0.092673f, 0.093055f, 0.093436f, 0.093818f, 0.094200f, 0.094582f,
+ 0.094963f, 0.095345f, 0.095727f, 0.096109f, 0.096490f, 0.096872f, 0.097254f, 0.097635f,
+ 0.098017f, 0.098399f, 0.098780f, 0.099162f, 0.099544f, 0.099925f, 0.100307f, 0.100688f,
+ 0.101070f, 0.101451f, 0.101833f, 0.102214f, 0.102596f, 0.102977f, 0.103359f, 0.103740f,
+ 0.104122f, 0.104503f, 0.104884f, 0.105266f, 0.105647f, 0.106028f, 0.106410f, 0.106791f,
+ 0.107172f, 0.107554f, 0.107935f, 0.108316f, 0.108697f, 0.109079f, 0.109460f, 0.109841f,
+ 0.110222f, 0.110603f, 0.110984f, 0.111366f, 0.111747f, 0.112128f, 0.112509f, 0.112890f,
+ 0.113271f, 0.113652f, 0.114033f, 0.114414f, 0.114795f, 0.115176f, 0.115557f, 0.115938f,
+ 0.116319f, 0.116700f, 0.117080f, 0.117461f, 0.117842f, 0.118223f, 0.118604f, 0.118984f,
+ 0.119365f, 0.119746f, 0.120127f, 0.120507f, 0.120888f, 0.121269f, 0.121649f, 0.122030f,
+ 0.122411f, 0.122791f, 0.123172f, 0.123552f, 0.123933f, 0.124314f, 0.124694f, 0.125075f,
+ 0.125455f, 0.125835f, 0.126216f, 0.126596f, 0.126977f, 0.127357f, 0.127737f, 0.128118f,
+ 0.128498f, 0.128878f, 0.129259f, 0.129639f, 0.130019f, 0.130399f, 0.130780f, 0.131160f,
+ 0.131540f, 0.131920f, 0.132300f, 0.132680f, 0.133061f, 0.133441f, 0.133821f, 0.134201f,
+ 0.134581f, 0.134961f, 0.135341f, 0.135721f, 0.136101f, 0.136480f, 0.136860f, 0.137240f,
+ 0.137620f, 0.138000f, 0.138380f, 0.138760f, 0.139139f, 0.139519f, 0.139899f, 0.140279f,
+ 0.140658f, 0.141038f, 0.141418f, 0.141797f, 0.142177f, 0.142556f, 0.142936f, 0.143316f,
+ 0.143695f, 0.144075f, 0.144454f, 0.144833f, 0.145213f, 0.145592f, 0.145972f, 0.146351f,
+ 0.146730f, 0.147110f, 0.147489f, 0.147868f, 0.148248f, 0.148627f, 0.149006f, 0.149385f,
+ 0.149765f, 0.150144f, 0.150523f, 0.150902f, 0.151281f, 0.151660f, 0.152039f, 0.152418f,
+ 0.152797f, 0.153176f, 0.153555f, 0.153934f, 0.154313f, 0.154692f, 0.155071f, 0.155450f,
+ 0.155828f, 0.156207f, 0.156586f, 0.156965f, 0.157343f, 0.157722f, 0.158101f, 0.158480f,
+ 0.158858f, 0.159237f, 0.159615f, 0.159994f, 0.160372f, 0.160751f, 0.161129f, 0.161508f,
+ 0.161886f, 0.162265f, 0.162643f, 0.163022f, 0.163400f, 0.163778f, 0.164157f, 0.164535f,
+ 0.164913f, 0.165291f, 0.165670f, 0.166048f, 0.166426f, 0.166804f, 0.167182f, 0.167560f,
+ 0.167938f, 0.168316f, 0.168694f, 0.169072f, 0.169450f, 0.169828f, 0.170206f, 0.170584f,
+ 0.170962f, 0.171340f, 0.171718f, 0.172095f, 0.172473f, 0.172851f, 0.173229f, 0.173606f,
+ 0.173984f, 0.174362f, 0.174739f, 0.175117f, 0.175494f, 0.175872f, 0.176249f, 0.176627f,
+ 0.177004f, 0.177382f, 0.177759f, 0.178136f, 0.178514f, 0.178891f, 0.179268f, 0.179646f,
+ 0.180023f, 0.180400f, 0.180777f, 0.181154f, 0.181532f, 0.181909f, 0.182286f, 0.182663f,
+ 0.183040f, 0.183417f, 0.183794f, 0.184171f, 0.184548f, 0.184925f, 0.185301f, 0.185678f,
+ 0.186055f, 0.186432f, 0.186809f, 0.187185f, 0.187562f, 0.187939f, 0.188315f, 0.188692f,
+ 0.189069f, 0.189445f, 0.189822f, 0.190198f, 0.190575f, 0.190951f, 0.191328f, 0.191704f,
+ 0.192080f, 0.192457f, 0.192833f, 0.193209f, 0.193586f, 0.193962f, 0.194338f, 0.194714f,
+ 0.195090f, 0.195466f, 0.195843f, 0.196219f, 0.196595f, 0.196971f, 0.197347f, 0.197722f,
+ 0.198098f, 0.198474f, 0.198850f, 0.199226f, 0.199602f, 0.199978f, 0.200353f, 0.200729f,
+ 0.201105f, 0.201480f, 0.201856f, 0.202231f, 0.202607f, 0.202983f, 0.203358f, 0.203734f,
+ 0.204109f, 0.204484f, 0.204860f, 0.205235f, 0.205610f, 0.205986f, 0.206361f, 0.206736f,
+ 0.207111f, 0.207487f, 0.207862f, 0.208237f, 0.208612f, 0.208987f, 0.209362f, 0.209737f,
+ 0.210112f, 0.210487f, 0.210862f, 0.211237f, 0.211611f, 0.211986f, 0.212361f, 0.212736f,
+ 0.213110f, 0.213485f, 0.213860f, 0.214234f, 0.214609f, 0.214983f, 0.215358f, 0.215732f,
+ 0.216107f, 0.216481f, 0.216856f, 0.217230f, 0.217604f, 0.217979f, 0.218353f, 0.218727f,
+ 0.219101f, 0.219475f, 0.219850f, 0.220224f, 0.220598f, 0.220972f, 0.221346f, 0.221720f,
+ 0.222094f, 0.222468f, 0.222841f, 0.223215f, 0.223589f, 0.223963f, 0.224337f, 0.224710f,
+ 0.225084f, 0.225458f, 0.225831f, 0.226205f, 0.226578f, 0.226952f, 0.227325f, 0.227699f,
+ 0.228072f, 0.228445f, 0.228819f, 0.229192f, 0.229565f, 0.229939f, 0.230312f, 0.230685f,
+ 0.231058f, 0.231431f, 0.231804f, 0.232177f, 0.232550f, 0.232923f, 0.233296f, 0.233669f,
+ 0.234042f, 0.234415f, 0.234788f, 0.235160f, 0.235533f, 0.235906f, 0.236278f, 0.236651f,
+ 0.237024f, 0.237396f, 0.237769f, 0.238141f, 0.238514f, 0.238886f, 0.239258f, 0.239631f,
+ 0.240003f, 0.240375f, 0.240748f, 0.241120f, 0.241492f, 0.241864f, 0.242236f, 0.242608f,
+ 0.242980f, 0.243352f, 0.243724f, 0.244096f, 0.244468f, 0.244840f, 0.245212f, 0.245583f,
+ 0.245955f, 0.246327f, 0.246698f, 0.247070f, 0.247442f, 0.247813f, 0.248185f, 0.248556f,
+ 0.248928f, 0.249299f, 0.249670f, 0.250042f, 0.250413f, 0.250784f, 0.251155f, 0.251527f,
+ 0.251898f, 0.252269f, 0.252640f, 0.253011f, 0.253382f, 0.253753f, 0.254124f, 0.254495f,
+ 0.254866f, 0.255236f, 0.255607f, 0.255978f, 0.256349f, 0.256719f, 0.257090f, 0.257461f,
+ 0.257831f, 0.258202f, 0.258572f, 0.258943f, 0.259313f, 0.259683f, 0.260054f, 0.260424f,
+ 0.260794f, 0.261164f, 0.261534f, 0.261905f, 0.262275f, 0.262645f, 0.263015f, 0.263385f,
+ 0.263755f, 0.264125f, 0.264494f, 0.264864f, 0.265234f, 0.265604f, 0.265973f, 0.266343f,
+ 0.266713f, 0.267082f, 0.267452f, 0.267821f, 0.268191f, 0.268560f, 0.268930f, 0.269299f,
+ 0.269668f, 0.270038f, 0.270407f, 0.270776f, 0.271145f, 0.271514f, 0.271883f, 0.272252f,
+ 0.272621f, 0.272990f, 0.273359f, 0.273728f, 0.274097f, 0.274466f, 0.274834f, 0.275203f,
+ 0.275572f, 0.275940f, 0.276309f, 0.276678f, 0.277046f, 0.277415f, 0.277783f, 0.278151f,
+ 0.278520f, 0.278888f, 0.279256f, 0.279624f, 0.279993f, 0.280361f, 0.280729f, 0.281097f,
+ 0.281465f, 0.281833f, 0.282201f, 0.282569f, 0.282937f, 0.283304f, 0.283672f, 0.284040f,
+ 0.284408f, 0.284775f, 0.285143f, 0.285510f, 0.285878f, 0.286245f, 0.286613f, 0.286980f,
+ 0.287347f, 0.287715f, 0.288082f, 0.288449f, 0.288816f, 0.289184f, 0.289551f, 0.289918f,
+ 0.290285f, 0.290652f, 0.291019f, 0.291385f, 0.291752f, 0.292119f, 0.292486f, 0.292852f,
+ 0.293219f, 0.293586f, 0.293952f, 0.294319f, 0.294685f, 0.295052f, 0.295418f, 0.295785f,
+ 0.296151f, 0.296517f, 0.296883f, 0.297250f, 0.297616f, 0.297982f, 0.298348f, 0.298714f,
+ 0.299080f, 0.299446f, 0.299812f, 0.300177f, 0.300543f, 0.300909f, 0.301275f, 0.301640f,
+ 0.302006f, 0.302372f, 0.302737f, 0.303103f, 0.303468f, 0.303833f, 0.304199f, 0.304564f,
+ 0.304929f, 0.305294f, 0.305660f, 0.306025f, 0.306390f, 0.306755f, 0.307120f, 0.307485f,
+ 0.307850f, 0.308214f, 0.308579f, 0.308944f, 0.309309f, 0.309673f, 0.310038f, 0.310403f,
+ 0.310767f, 0.311132f, 0.311496f, 0.311860f, 0.312225f, 0.312589f, 0.312953f, 0.313318f,
+ 0.313682f, 0.314046f, 0.314410f, 0.314774f, 0.315138f, 0.315502f, 0.315866f, 0.316230f,
+ 0.316593f, 0.316957f, 0.317321f, 0.317684f, 0.318048f, 0.318412f, 0.318775f, 0.319139f,
+ 0.319502f, 0.319865f, 0.320229f, 0.320592f, 0.320955f, 0.321318f, 0.321682f, 0.322045f,
+ 0.322408f, 0.322771f, 0.323134f, 0.323497f, 0.323859f, 0.324222f, 0.324585f, 0.324948f,
+ 0.325310f, 0.325673f, 0.326035f, 0.326398f, 0.326760f, 0.327123f, 0.327485f, 0.327848f,
+ 0.328210f, 0.328572f, 0.328934f, 0.329296f, 0.329658f, 0.330020f, 0.330382f, 0.330744f,
+ 0.331106f, 0.331468f, 0.331830f, 0.332192f, 0.332553f, 0.332915f, 0.333277f, 0.333638f,
+ 0.334000f, 0.334361f, 0.334722f, 0.335084f, 0.335445f, 0.335806f, 0.336168f, 0.336529f,
+ 0.336890f, 0.337251f, 0.337612f, 0.337973f, 0.338334f, 0.338695f, 0.339055f, 0.339416f,
+ 0.339777f, 0.340138f, 0.340498f, 0.340859f, 0.341219f, 0.341580f, 0.341940f, 0.342300f,
+ 0.342661f, 0.343021f, 0.343381f, 0.343741f, 0.344101f, 0.344461f, 0.344821f, 0.345181f,
+ 0.345541f, 0.345901f, 0.346261f, 0.346621f, 0.346980f, 0.347340f, 0.347700f, 0.348059f,
+ 0.348419f, 0.348778f, 0.349138f, 0.349497f, 0.349856f, 0.350215f, 0.350575f, 0.350934f,
+ 0.351293f, 0.351652f, 0.352011f, 0.352370f, 0.352729f, 0.353087f, 0.353446f, 0.353805f,
+ 0.354164f, 0.354522f, 0.354881f, 0.355239f, 0.355598f, 0.355956f, 0.356314f, 0.356673f,
+ 0.357031f, 0.357389f, 0.357747f, 0.358105f, 0.358463f, 0.358821f, 0.359179f, 0.359537f,
+ 0.359895f, 0.360253f, 0.360611f, 0.360968f, 0.361326f, 0.361683f, 0.362041f, 0.362398f,
+ 0.362756f, 0.363113f, 0.363470f, 0.363828f, 0.364185f, 0.364542f, 0.364899f, 0.365256f,
+ 0.365613f, 0.365970f, 0.366327f, 0.366684f, 0.367040f, 0.367397f, 0.367754f, 0.368110f,
+ 0.368467f, 0.368823f, 0.369180f, 0.369536f, 0.369892f, 0.370249f, 0.370605f, 0.370961f,
+ 0.371317f, 0.371673f, 0.372029f, 0.372385f, 0.372741f, 0.373097f, 0.373453f, 0.373808f,
+ 0.374164f, 0.374520f, 0.374875f, 0.375231f, 0.375586f, 0.375942f, 0.376297f, 0.376652f,
+ 0.377007f, 0.377363f, 0.377718f, 0.378073f, 0.378428f, 0.378783f, 0.379138f, 0.379492f,
+ 0.379847f, 0.380202f, 0.380557f, 0.380911f, 0.381266f, 0.381620f, 0.381975f, 0.382329f,
+ 0.382683f, 0.383038f, 0.383392f, 0.383746f, 0.384100f, 0.384454f, 0.384808f, 0.385162f,
+ 0.385516f, 0.385870f, 0.386224f, 0.386577f, 0.386931f, 0.387285f, 0.387638f, 0.387992f,
+ 0.388345f, 0.388698f, 0.389052f, 0.389405f, 0.389758f, 0.390111f, 0.390464f, 0.390817f,
+ 0.391170f, 0.391523f, 0.391876f, 0.392229f, 0.392582f, 0.392934f, 0.393287f, 0.393640f,
+ 0.393992f, 0.394344f, 0.394697f, 0.395049f, 0.395401f, 0.395754f, 0.396106f, 0.396458f,
+ 0.396810f, 0.397162f, 0.397514f, 0.397866f, 0.398218f, 0.398569f, 0.398921f, 0.399273f,
+ 0.399624f, 0.399976f, 0.400327f, 0.400679f, 0.401030f, 0.401381f, 0.401732f, 0.402084f,
+ 0.402435f, 0.402786f, 0.403137f, 0.403488f, 0.403838f, 0.404189f, 0.404540f, 0.404891f,
+ 0.405241f, 0.405592f, 0.405942f, 0.406293f, 0.406643f, 0.406994f, 0.407344f, 0.407694f,
+ 0.408044f, 0.408394f, 0.408744f, 0.409094f, 0.409444f, 0.409794f, 0.410144f, 0.410493f,
+ 0.410843f, 0.411193f, 0.411542f, 0.411892f, 0.412241f, 0.412591f, 0.412940f, 0.413289f,
+ 0.413638f, 0.413987f, 0.414337f, 0.414685f, 0.415034f, 0.415383f, 0.415732f, 0.416081f,
+ 0.416430f, 0.416778f, 0.417127f, 0.417475f, 0.417824f, 0.418172f, 0.418520f, 0.418869f,
+ 0.419217f, 0.419565f, 0.419913f, 0.420261f, 0.420609f, 0.420957f, 0.421305f, 0.421653f,
+ 0.422000f, 0.422348f, 0.422695f, 0.423043f, 0.423390f, 0.423738f, 0.424085f, 0.424432f,
+ 0.424780f, 0.425127f, 0.425474f, 0.425821f, 0.426168f, 0.426515f, 0.426862f, 0.427208f,
+ 0.427555f, 0.427902f, 0.428248f, 0.428595f, 0.428941f, 0.429288f, 0.429634f, 0.429980f,
+ 0.430326f, 0.430673f, 0.431019f, 0.431365f, 0.431711f, 0.432057f, 0.432402f, 0.432748f,
+ 0.433094f, 0.433439f, 0.433785f, 0.434131f, 0.434476f, 0.434821f, 0.435167f, 0.435512f,
+ 0.435857f, 0.436202f, 0.436547f, 0.436892f, 0.437237f, 0.437582f, 0.437927f, 0.438272f,
+ 0.438616f, 0.438961f, 0.439305f, 0.439650f, 0.439994f, 0.440339f, 0.440683f, 0.441027f,
+ 0.441371f, 0.441715f, 0.442059f, 0.442403f, 0.442747f, 0.443091f, 0.443435f, 0.443779f,
+ 0.444122f, 0.444466f, 0.444809f, 0.445153f, 0.445496f, 0.445839f, 0.446183f, 0.446526f,
+ 0.446869f, 0.447212f, 0.447555f, 0.447898f, 0.448241f, 0.448583f, 0.448926f, 0.449269f,
+ 0.449611f, 0.449954f, 0.450296f, 0.450639f, 0.450981f, 0.451323f, 0.451665f, 0.452008f,
+ 0.452350f, 0.452692f, 0.453033f, 0.453375f, 0.453717f, 0.454059f, 0.454400f, 0.454742f,
+ 0.455084f, 0.455425f, 0.455766f, 0.456108f, 0.456449f, 0.456790f, 0.457131f, 0.457472f,
+ 0.457813f, 0.458154f, 0.458495f, 0.458836f, 0.459177f, 0.459517f, 0.459858f, 0.460198f,
+ 0.460539f, 0.460879f, 0.461219f, 0.461560f, 0.461900f, 0.462240f, 0.462580f, 0.462920f,
+ 0.463260f, 0.463600f, 0.463939f, 0.464279f, 0.464619f, 0.464958f, 0.465298f, 0.465637f,
+ 0.465977f, 0.466316f, 0.466655f, 0.466994f, 0.467333f, 0.467672f, 0.468011f, 0.468350f,
+ 0.468689f, 0.469028f, 0.469366f, 0.469705f, 0.470043f, 0.470382f, 0.470720f, 0.471058f,
+ 0.471397f, 0.471735f, 0.472073f, 0.472411f, 0.472749f, 0.473087f, 0.473425f, 0.473763f,
+ 0.474100f, 0.474438f, 0.474775f, 0.475113f, 0.475450f, 0.475788f, 0.476125f, 0.476462f,
+ 0.476799f, 0.477136f, 0.477473f, 0.477810f, 0.478147f, 0.478484f, 0.478821f, 0.479157f,
+ 0.479494f, 0.479830f, 0.480167f, 0.480503f, 0.480839f, 0.481176f, 0.481512f, 0.481848f,
+ 0.482184f, 0.482520f, 0.482856f, 0.483191f, 0.483527f, 0.483863f, 0.484198f, 0.484534f,
+ 0.484869f, 0.485205f, 0.485540f, 0.485875f, 0.486210f, 0.486545f, 0.486880f, 0.487215f,
+ 0.487550f, 0.487885f, 0.488220f, 0.488554f, 0.488889f, 0.489223f, 0.489558f, 0.489892f,
+ 0.490226f, 0.490561f, 0.490895f, 0.491229f, 0.491563f, 0.491897f, 0.492231f, 0.492564f,
+ 0.492898f, 0.493232f, 0.493565f, 0.493899f, 0.494232f, 0.494566f, 0.494899f, 0.495232f,
+ 0.495565f, 0.495898f, 0.496231f, 0.496564f, 0.496897f, 0.497230f, 0.497562f, 0.497895f,
+ 0.498228f, 0.498560f, 0.498893f, 0.499225f, 0.499557f, 0.499889f, 0.500221f, 0.500553f,
+ 0.500885f, 0.501217f, 0.501549f, 0.501881f, 0.502212f, 0.502544f, 0.502876f, 0.503207f,
+ 0.503538f, 0.503870f, 0.504201f, 0.504532f, 0.504863f, 0.505194f, 0.505525f, 0.505856f,
+ 0.506187f, 0.506517f, 0.506848f, 0.507179f, 0.507509f, 0.507839f, 0.508170f, 0.508500f,
+ 0.508830f, 0.509160f, 0.509490f, 0.509820f, 0.510150f, 0.510480f, 0.510810f, 0.511139f,
+ 0.511469f, 0.511798f, 0.512128f, 0.512457f, 0.512786f, 0.513116f, 0.513445f, 0.513774f,
+ 0.514103f, 0.514432f, 0.514760f, 0.515089f, 0.515418f, 0.515746f, 0.516075f, 0.516403f,
+ 0.516732f, 0.517060f, 0.517388f, 0.517716f, 0.518045f, 0.518372f, 0.518700f, 0.519028f,
+ 0.519356f, 0.519684f, 0.520011f, 0.520339f, 0.520666f, 0.520994f, 0.521321f, 0.521648f,
+ 0.521975f, 0.522302f, 0.522629f, 0.522956f, 0.523283f, 0.523610f, 0.523937f, 0.524263f,
+ 0.524590f, 0.524916f, 0.525243f, 0.525569f, 0.525895f, 0.526221f, 0.526547f, 0.526873f,
+ 0.527199f, 0.527525f, 0.527851f, 0.528176f, 0.528502f, 0.528828f, 0.529153f, 0.529478f,
+ 0.529804f, 0.530129f, 0.530454f, 0.530779f, 0.531104f, 0.531429f, 0.531754f, 0.532078f,
+ 0.532403f, 0.532728f, 0.533052f, 0.533377f, 0.533701f, 0.534025f, 0.534349f, 0.534674f,
+ 0.534998f, 0.535322f, 0.535645f, 0.535969f, 0.536293f, 0.536617f, 0.536940f, 0.537264f,
+ 0.537587f, 0.537910f, 0.538234f, 0.538557f, 0.538880f, 0.539203f, 0.539526f, 0.539849f,
+ 0.540171f, 0.540494f, 0.540817f, 0.541139f, 0.541462f, 0.541784f, 0.542106f, 0.542429f,
+ 0.542751f, 0.543073f, 0.543395f, 0.543717f, 0.544039f, 0.544360f, 0.544682f, 0.545003f,
+ 0.545325f, 0.545646f, 0.545968f, 0.546289f, 0.546610f, 0.546931f, 0.547252f, 0.547573f,
+ 0.547894f, 0.548215f, 0.548536f, 0.548856f, 0.549177f, 0.549497f, 0.549818f, 0.550138f,
+ 0.550458f, 0.550778f, 0.551098f, 0.551418f, 0.551738f, 0.552058f, 0.552378f, 0.552697f,
+ 0.553017f, 0.553336f, 0.553656f, 0.553975f, 0.554294f, 0.554613f, 0.554932f, 0.555251f,
+ 0.555570f, 0.555889f, 0.556208f, 0.556526f, 0.556845f, 0.557164f, 0.557482f, 0.557800f,
+ 0.558119f, 0.558437f, 0.558755f, 0.559073f, 0.559391f, 0.559709f, 0.560026f, 0.560344f,
+ 0.560662f, 0.560979f, 0.561297f, 0.561614f, 0.561931f, 0.562248f, 0.562565f, 0.562882f,
+ 0.563199f, 0.563516f, 0.563833f, 0.564150f, 0.564466f, 0.564783f, 0.565099f, 0.565416f,
+ 0.565732f, 0.566048f, 0.566364f, 0.566680f, 0.566996f, 0.567312f, 0.567628f, 0.567943f,
+ 0.568259f, 0.568574f, 0.568890f, 0.569205f, 0.569521f, 0.569836f, 0.570151f, 0.570466f,
+ 0.570781f, 0.571096f, 0.571410f, 0.571725f, 0.572040f, 0.572354f, 0.572669f, 0.572983f,
+ 0.573297f, 0.573611f, 0.573925f, 0.574239f, 0.574553f, 0.574867f, 0.575181f, 0.575495f,
+ 0.575808f, 0.576122f, 0.576435f, 0.576748f, 0.577062f, 0.577375f, 0.577688f, 0.578001f,
+ 0.578314f, 0.578627f, 0.578939f, 0.579252f, 0.579565f, 0.579877f, 0.580189f, 0.580502f,
+ 0.580814f, 0.581126f, 0.581438f, 0.581750f, 0.582062f, 0.582374f, 0.582685f, 0.582997f,
+ 0.583309f, 0.583620f, 0.583931f, 0.584243f, 0.584554f, 0.584865f, 0.585176f, 0.585487f,
+ 0.585798f, 0.586109f, 0.586419f, 0.586730f, 0.587040f, 0.587351f, 0.587661f, 0.587971f,
+ 0.588282f, 0.588592f, 0.588902f, 0.589212f, 0.589521f, 0.589831f, 0.590141f, 0.590450f,
+ 0.590760f, 0.591069f, 0.591378f, 0.591688f, 0.591997f, 0.592306f, 0.592615f, 0.592924f,
+ 0.593232f, 0.593541f, 0.593850f, 0.594158f, 0.594467f, 0.594775f, 0.595083f, 0.595391f,
+ 0.595699f, 0.596007f, 0.596315f, 0.596623f, 0.596931f, 0.597238f, 0.597546f, 0.597853f,
+ 0.598161f, 0.598468f, 0.598775f, 0.599082f, 0.599389f, 0.599696f, 0.600003f, 0.600310f,
+ 0.600616f, 0.600923f, 0.601230f, 0.601536f, 0.601842f, 0.602148f, 0.602455f, 0.602761f,
+ 0.603067f, 0.603372f, 0.603678f, 0.603984f, 0.604290f, 0.604595f, 0.604900f, 0.605206f,
+ 0.605511f, 0.605816f, 0.606121f, 0.606426f, 0.606731f, 0.607036f, 0.607341f, 0.607645f,
+ 0.607950f, 0.608254f, 0.608559f, 0.608863f, 0.609167f, 0.609471f, 0.609775f, 0.610079f,
+ 0.610383f, 0.610687f, 0.610990f, 0.611294f, 0.611597f, 0.611901f, 0.612204f, 0.612507f,
+ 0.612810f, 0.613113f, 0.613416f, 0.613719f, 0.614022f, 0.614324f, 0.614627f, 0.614929f,
+ 0.615232f, 0.615534f, 0.615836f, 0.616138f, 0.616440f, 0.616742f, 0.617044f, 0.617346f,
+ 0.617647f, 0.617949f, 0.618250f, 0.618552f, 0.618853f, 0.619154f, 0.619455f, 0.619756f,
+ 0.620057f, 0.620358f, 0.620659f, 0.620959f, 0.621260f, 0.621560f, 0.621861f, 0.622161f,
+ 0.622461f, 0.622761f, 0.623061f, 0.623361f, 0.623661f, 0.623961f, 0.624260f, 0.624560f,
+ 0.624860f, 0.625159f, 0.625458f, 0.625757f, 0.626056f, 0.626355f, 0.626654f, 0.626953f,
+ 0.627252f, 0.627550f, 0.627849f, 0.628147f, 0.628446f, 0.628744f, 0.629042f, 0.629340f,
+ 0.629638f, 0.629936f, 0.630234f, 0.630532f, 0.630829f, 0.631127f, 0.631424f, 0.631721f,
+ 0.632019f, 0.632316f, 0.632613f, 0.632910f, 0.633207f, 0.633504f, 0.633800f, 0.634097f,
+ 0.634393f, 0.634690f, 0.634986f, 0.635282f, 0.635578f, 0.635874f, 0.636170f, 0.636466f,
+ 0.636762f, 0.637057f, 0.637353f, 0.637649f, 0.637944f, 0.638239f, 0.638534f, 0.638829f,
+ 0.639124f, 0.639419f, 0.639714f, 0.640009f, 0.640303f, 0.640598f, 0.640892f, 0.641187f,
+ 0.641481f, 0.641775f, 0.642069f, 0.642363f, 0.642657f, 0.642951f, 0.643245f, 0.643538f,
+ 0.643832f, 0.644125f, 0.644418f, 0.644711f, 0.645005f, 0.645298f, 0.645590f, 0.645883f,
+ 0.646176f, 0.646469f, 0.646761f, 0.647054f, 0.647346f, 0.647638f, 0.647930f, 0.648222f,
+ 0.648514f, 0.648806f, 0.649098f, 0.649390f, 0.649681f, 0.649973f, 0.650264f, 0.650555f,
+ 0.650847f, 0.651138f, 0.651429f, 0.651720f, 0.652011f, 0.652301f, 0.652592f, 0.652882f,
+ 0.653173f, 0.653463f, 0.653753f, 0.654044f, 0.654334f, 0.654624f, 0.654913f, 0.655203f,
+ 0.655493f, 0.655782f, 0.656072f, 0.656361f, 0.656651f, 0.656940f, 0.657229f, 0.657518f,
+ 0.657807f, 0.658095f, 0.658384f, 0.658673f, 0.658961f, 0.659250f, 0.659538f, 0.659826f,
+ 0.660114f, 0.660402f, 0.660690f, 0.660978f, 0.661266f, 0.661553f, 0.661841f, 0.662128f,
+ 0.662416f, 0.662703f, 0.662990f, 0.663277f, 0.663564f, 0.663851f, 0.664138f, 0.664424f,
+ 0.664711f, 0.664997f, 0.665284f, 0.665570f, 0.665856f, 0.666142f, 0.666428f, 0.666714f,
+ 0.667000f, 0.667286f, 0.667571f, 0.667857f, 0.668142f, 0.668427f, 0.668712f, 0.668998f,
+ 0.669283f, 0.669567f, 0.669852f, 0.670137f, 0.670422f, 0.670706f, 0.670990f, 0.671275f,
+ 0.671559f, 0.671843f, 0.672127f, 0.672411f, 0.672695f, 0.672978f, 0.673262f, 0.673546f,
+ 0.673829f, 0.674112f, 0.674396f, 0.674679f, 0.674962f, 0.675245f, 0.675527f, 0.675810f,
+ 0.676093f, 0.676375f, 0.676658f, 0.676940f, 0.677222f, 0.677504f, 0.677786f, 0.678068f,
+ 0.678350f, 0.678632f, 0.678913f, 0.679195f, 0.679476f, 0.679758f, 0.680039f, 0.680320f,
+ 0.680601f, 0.680882f, 0.681163f, 0.681443f, 0.681724f, 0.682005f, 0.682285f, 0.682565f,
+ 0.682846f, 0.683126f, 0.683406f, 0.683686f, 0.683965f, 0.684245f, 0.684525f, 0.684804f,
+ 0.685084f, 0.685363f, 0.685642f, 0.685921f, 0.686200f, 0.686479f, 0.686758f, 0.687037f,
+ 0.687315f, 0.687594f, 0.687872f, 0.688151f, 0.688429f, 0.688707f, 0.688985f, 0.689263f,
+ 0.689541f, 0.689818f, 0.690096f, 0.690373f, 0.690651f, 0.690928f, 0.691205f, 0.691482f,
+ 0.691759f, 0.692036f, 0.692313f, 0.692590f, 0.692866f, 0.693143f, 0.693419f, 0.693695f,
+ 0.693971f, 0.694248f, 0.694524f, 0.694799f, 0.695075f, 0.695351f, 0.695626f, 0.695902f,
+ 0.696177f, 0.696452f, 0.696728f, 0.697003f, 0.697277f, 0.697552f, 0.697827f, 0.698102f,
+ 0.698376f, 0.698651f, 0.698925f, 0.699199f, 0.699473f, 0.699747f, 0.700021f, 0.700295f,
+ 0.700569f, 0.700842f, 0.701116f, 0.701389f, 0.701663f, 0.701936f, 0.702209f, 0.702482f,
+ 0.702755f, 0.703028f, 0.703300f, 0.703573f, 0.703845f, 0.704118f, 0.704390f, 0.704662f,
+ 0.704934f, 0.705206f, 0.705478f, 0.705750f, 0.706021f, 0.706293f, 0.706564f, 0.706836f,
+ 0.707107f, 0.707378f, 0.707649f, 0.707920f, 0.708191f, 0.708461f, 0.708732f, 0.709002f,
+ 0.709273f, 0.709543f, 0.709813f, 0.710083f, 0.710353f, 0.710623f, 0.710893f, 0.711163f,
+ 0.711432f, 0.711702f, 0.711971f, 0.712240f, 0.712509f, 0.712778f, 0.713047f, 0.713316f,
+ 0.713585f, 0.713853f, 0.714122f, 0.714390f, 0.714659f, 0.714927f, 0.715195f, 0.715463f,
+ 0.715731f, 0.715999f, 0.716266f, 0.716534f, 0.716801f, 0.717069f, 0.717336f, 0.717603f,
+ 0.717870f, 0.718137f, 0.718404f, 0.718670f, 0.718937f, 0.719204f, 0.719470f, 0.719736f,
+ 0.720003f, 0.720269f, 0.720535f, 0.720800f, 0.721066f, 0.721332f, 0.721597f, 0.721863f,
+ 0.722128f, 0.722393f, 0.722659f, 0.722924f, 0.723188f, 0.723453f, 0.723718f, 0.723983f,
+ 0.724247f, 0.724511f, 0.724776f, 0.725040f, 0.725304f, 0.725568f, 0.725832f, 0.726095f,
+ 0.726359f, 0.726623f, 0.726886f, 0.727149f, 0.727413f, 0.727676f, 0.727939f, 0.728202f,
+ 0.728464f, 0.728727f, 0.728990f, 0.729252f, 0.729514f, 0.729777f, 0.730039f, 0.730301f,
+ 0.730563f, 0.730825f, 0.731086f, 0.731348f, 0.731609f, 0.731871f, 0.732132f, 0.732393f,
+ 0.732654f, 0.732915f, 0.733176f, 0.733437f, 0.733697f, 0.733958f, 0.734218f, 0.734479f,
+ 0.734739f, 0.734999f, 0.735259f, 0.735519f, 0.735779f, 0.736038f, 0.736298f, 0.736557f,
+ 0.736817f, 0.737076f, 0.737335f, 0.737594f, 0.737853f, 0.738112f, 0.738370f, 0.738629f,
+ 0.738887f, 0.739146f, 0.739404f, 0.739662f, 0.739920f, 0.740178f, 0.740436f, 0.740694f,
+ 0.740951f, 0.741209f, 0.741466f, 0.741723f, 0.741980f, 0.742237f, 0.742494f, 0.742751f,
+ 0.743008f, 0.743265f, 0.743521f, 0.743777f, 0.744034f, 0.744290f, 0.744546f, 0.744802f,
+ 0.745058f, 0.745314f, 0.745569f, 0.745825f, 0.746080f, 0.746335f, 0.746591f, 0.746846f,
+ 0.747101f, 0.747355f, 0.747610f, 0.747865f, 0.748119f, 0.748374f, 0.748628f, 0.748882f,
+ 0.749136f, 0.749390f, 0.749644f, 0.749898f, 0.750152f, 0.750405f, 0.750659f, 0.750912f,
+ 0.751165f, 0.751418f, 0.751671f, 0.751924f, 0.752177f, 0.752429f, 0.752682f, 0.752934f,
+ 0.753187f, 0.753439f, 0.753691f, 0.753943f, 0.754195f, 0.754447f, 0.754698f, 0.754950f,
+ 0.755201f, 0.755453f, 0.755704f, 0.755955f, 0.756206f, 0.756457f, 0.756708f, 0.756958f,
+ 0.757209f, 0.757459f, 0.757710f, 0.757960f, 0.758210f, 0.758460f, 0.758710f, 0.758960f,
+ 0.759209f, 0.759459f, 0.759708f, 0.759957f, 0.760207f, 0.760456f, 0.760705f, 0.760954f,
+ 0.761202f, 0.761451f, 0.761700f, 0.761948f, 0.762196f, 0.762444f, 0.762693f, 0.762941f,
+ 0.763188f, 0.763436f, 0.763684f, 0.763931f, 0.764179f, 0.764426f, 0.764673f, 0.764920f,
+ 0.765167f, 0.765414f, 0.765661f, 0.765907f, 0.766154f, 0.766400f, 0.766647f, 0.766893f,
+ 0.767139f, 0.767385f, 0.767631f, 0.767876f, 0.768122f, 0.768368f, 0.768613f, 0.768858f,
+ 0.769103f, 0.769348f, 0.769593f, 0.769838f, 0.770083f, 0.770327f, 0.770572f, 0.770816f,
+ 0.771061f, 0.771305f, 0.771549f, 0.771793f, 0.772036f, 0.772280f, 0.772524f, 0.772767f,
+ 0.773010f, 0.773254f, 0.773497f, 0.773740f, 0.773983f, 0.774225f, 0.774468f, 0.774711f,
+ 0.774953f, 0.775195f, 0.775438f, 0.775680f, 0.775922f, 0.776164f, 0.776405f, 0.776647f,
+ 0.776888f, 0.777130f, 0.777371f, 0.777612f, 0.777853f, 0.778094f, 0.778335f, 0.778576f,
+ 0.778817f, 0.779057f, 0.779297f, 0.779538f, 0.779778f, 0.780018f, 0.780258f, 0.780498f,
+ 0.780737f, 0.780977f, 0.781216f, 0.781456f, 0.781695f, 0.781934f, 0.782173f, 0.782412f,
+ 0.782651f, 0.782889f, 0.783128f, 0.783366f, 0.783605f, 0.783843f, 0.784081f, 0.784319f,
+ 0.784557f, 0.784794f, 0.785032f, 0.785269f, 0.785507f, 0.785744f, 0.785981f, 0.786218f,
+ 0.786455f, 0.786692f, 0.786929f, 0.787165f, 0.787402f, 0.787638f, 0.787874f, 0.788110f,
+ 0.788346f, 0.788582f, 0.788818f, 0.789054f, 0.789289f, 0.789525f, 0.789760f, 0.789995f,
+ 0.790230f, 0.790465f, 0.790700f, 0.790935f, 0.791169f, 0.791404f, 0.791638f, 0.791872f,
+ 0.792107f, 0.792341f, 0.792575f, 0.792808f, 0.793042f, 0.793276f, 0.793509f, 0.793742f,
+ 0.793975f, 0.794209f, 0.794442f, 0.794674f, 0.794907f, 0.795140f, 0.795372f, 0.795605f,
+ 0.795837f, 0.796069f, 0.796301f, 0.796533f, 0.796765f, 0.796996f, 0.797228f, 0.797459f,
+ 0.797691f, 0.797922f, 0.798153f, 0.798384f, 0.798615f, 0.798846f, 0.799076f, 0.799307f,
+ 0.799537f, 0.799768f, 0.799998f, 0.800228f, 0.800458f, 0.800687f, 0.800917f, 0.801147f,
+ 0.801376f, 0.801606f, 0.801835f, 0.802064f, 0.802293f, 0.802522f, 0.802750f, 0.802979f,
+ 0.803208f, 0.803436f, 0.803664f, 0.803892f, 0.804120f, 0.804348f, 0.804576f, 0.804804f,
+ 0.805031f, 0.805259f, 0.805486f, 0.805713f, 0.805940f, 0.806167f, 0.806394f, 0.806621f,
+ 0.806848f, 0.807074f, 0.807300f, 0.807527f, 0.807753f, 0.807979f, 0.808205f, 0.808430f,
+ 0.808656f, 0.808882f, 0.809107f, 0.809332f, 0.809558f, 0.809783f, 0.810008f, 0.810232f,
+ 0.810457f, 0.810682f, 0.810906f, 0.811131f, 0.811355f, 0.811579f, 0.811803f, 0.812027f,
+ 0.812251f, 0.812474f, 0.812698f, 0.812921f, 0.813144f, 0.813368f, 0.813591f, 0.813814f,
+ 0.814036f, 0.814259f, 0.814482f, 0.814704f, 0.814926f, 0.815149f, 0.815371f, 0.815593f,
+ 0.815814f, 0.816036f, 0.816258f, 0.816479f, 0.816701f, 0.816922f, 0.817143f, 0.817364f,
+ 0.817585f, 0.817806f, 0.818026f, 0.818247f, 0.818467f, 0.818687f, 0.818908f, 0.819128f,
+ 0.819348f, 0.819567f, 0.819787f, 0.820007f, 0.820226f, 0.820445f, 0.820664f, 0.820884f,
+ 0.821102f, 0.821321f, 0.821540f, 0.821759f, 0.821977f, 0.822195f, 0.822414f, 0.822632f,
+ 0.822850f, 0.823068f, 0.823285f, 0.823503f, 0.823721f, 0.823938f, 0.824155f, 0.824372f,
+ 0.824589f, 0.824806f, 0.825023f, 0.825240f, 0.825456f, 0.825673f, 0.825889f, 0.826105f,
+ 0.826321f, 0.826537f, 0.826753f, 0.826968f, 0.827184f, 0.827399f, 0.827615f, 0.827830f,
+ 0.828045f, 0.828260f, 0.828475f, 0.828690f, 0.828904f, 0.829119f, 0.829333f, 0.829547f,
+ 0.829761f, 0.829975f, 0.830189f, 0.830403f, 0.830616f, 0.830830f, 0.831043f, 0.831257f,
+ 0.831470f, 0.831683f, 0.831895f, 0.832108f, 0.832321f, 0.832533f, 0.832746f, 0.832958f,
+ 0.833170f, 0.833382f, 0.833594f, 0.833806f, 0.834018f, 0.834229f, 0.834440f, 0.834652f,
+ 0.834863f, 0.835074f, 0.835285f, 0.835496f, 0.835706f, 0.835917f, 0.836127f, 0.836338f,
+ 0.836548f, 0.836758f, 0.836968f, 0.837178f, 0.837387f, 0.837597f, 0.837806f, 0.838015f,
+ 0.838225f, 0.838434f, 0.838643f, 0.838852f, 0.839060f, 0.839269f, 0.839477f, 0.839686f,
+ 0.839894f, 0.840102f, 0.840310f, 0.840518f, 0.840725f, 0.840933f, 0.841140f, 0.841348f,
+ 0.841555f, 0.841762f, 0.841969f, 0.842176f, 0.842383f, 0.842589f, 0.842796f, 0.843002f,
+ 0.843208f, 0.843414f, 0.843620f, 0.843826f, 0.844032f, 0.844238f, 0.844443f, 0.844648f,
+ 0.844854f, 0.845059f, 0.845264f, 0.845469f, 0.845673f, 0.845878f, 0.846082f, 0.846287f,
+ 0.846491f, 0.846695f, 0.846899f, 0.847103f, 0.847307f, 0.847510f, 0.847714f, 0.847917f,
+ 0.848120f, 0.848323f, 0.848526f, 0.848729f, 0.848932f, 0.849135f, 0.849337f, 0.849540f,
+ 0.849742f, 0.849944f, 0.850146f, 0.850348f, 0.850549f, 0.850751f, 0.850953f, 0.851154f,
+ 0.851355f, 0.851556f, 0.851757f, 0.851958f, 0.852159f, 0.852360f, 0.852560f, 0.852760f,
+ 0.852961f, 0.853161f, 0.853361f, 0.853561f, 0.853760f, 0.853960f, 0.854159f, 0.854359f,
+ 0.854558f, 0.854757f, 0.854956f, 0.855155f, 0.855354f, 0.855552f, 0.855751f, 0.855949f,
+ 0.856147f, 0.856345f, 0.856543f, 0.856741f, 0.856939f, 0.857137f, 0.857334f, 0.857531f,
+ 0.857729f, 0.857926f, 0.858123f, 0.858320f, 0.858516f, 0.858713f, 0.858909f, 0.859106f,
+ 0.859302f, 0.859498f, 0.859694f, 0.859890f, 0.860085f, 0.860281f, 0.860476f, 0.860672f,
+ 0.860867f, 0.861062f, 0.861257f, 0.861452f, 0.861646f, 0.861841f, 0.862035f, 0.862230f,
+ 0.862424f, 0.862618f, 0.862812f, 0.863006f, 0.863199f, 0.863393f, 0.863586f, 0.863780f,
+ 0.863973f, 0.864166f, 0.864359f, 0.864552f, 0.864744f, 0.864937f, 0.865129f, 0.865321f,
+ 0.865514f, 0.865706f, 0.865898f, 0.866089f, 0.866281f, 0.866472f, 0.866664f, 0.866855f,
+ 0.867046f, 0.867237f, 0.867428f, 0.867619f, 0.867809f, 0.868000f, 0.868190f, 0.868381f,
+ 0.868571f, 0.868761f, 0.868951f, 0.869140f, 0.869330f, 0.869519f, 0.869709f, 0.869898f,
+ 0.870087f, 0.870276f, 0.870465f, 0.870654f, 0.870842f, 0.871031f, 0.871219f, 0.871407f,
+ 0.871595f, 0.871783f, 0.871971f, 0.872159f, 0.872346f, 0.872534f, 0.872721f, 0.872908f,
+ 0.873095f, 0.873282f, 0.873469f, 0.873655f, 0.873842f, 0.874028f, 0.874215f, 0.874401f,
+ 0.874587f, 0.874773f, 0.874958f, 0.875144f, 0.875329f, 0.875515f, 0.875700f, 0.875885f,
+ 0.876070f, 0.876255f, 0.876440f, 0.876624f, 0.876809f, 0.876993f, 0.877177f, 0.877361f,
+ 0.877545f, 0.877729f, 0.877913f, 0.878096f, 0.878280f, 0.878463f, 0.878646f, 0.878829f,
+ 0.879012f, 0.879195f, 0.879378f, 0.879560f, 0.879743f, 0.879925f, 0.880107f, 0.880289f,
+ 0.880471f, 0.880653f, 0.880834f, 0.881016f, 0.881197f, 0.881378f, 0.881559f, 0.881740f,
+ 0.881921f, 0.882102f, 0.882283f, 0.882463f, 0.882643f, 0.882824f, 0.883004f, 0.883184f,
+ 0.883363f, 0.883543f, 0.883723f, 0.883902f, 0.884081f, 0.884260f, 0.884439f, 0.884618f,
+ 0.884797f, 0.884976f, 0.885154f, 0.885333f, 0.885511f, 0.885689f, 0.885867f, 0.886045f,
+ 0.886223f, 0.886400f, 0.886578f, 0.886755f, 0.886932f, 0.887109f, 0.887286f, 0.887463f,
+ 0.887640f, 0.887816f, 0.887993f, 0.888169f, 0.888345f, 0.888521f, 0.888697f, 0.888873f,
+ 0.889048f, 0.889224f, 0.889399f, 0.889574f, 0.889750f, 0.889925f, 0.890099f, 0.890274f,
+ 0.890449f, 0.890623f, 0.890797f, 0.890972f, 0.891146f, 0.891320f, 0.891493f, 0.891667f,
+ 0.891841f, 0.892014f, 0.892187f, 0.892361f, 0.892534f, 0.892706f, 0.892879f, 0.893052f,
+ 0.893224f, 0.893397f, 0.893569f, 0.893741f, 0.893913f, 0.894085f, 0.894256f, 0.894428f,
+ 0.894599f, 0.894771f, 0.894942f, 0.895113f, 0.895284f, 0.895455f, 0.895625f, 0.895796f,
+ 0.895966f, 0.896137f, 0.896307f, 0.896477f, 0.896646f, 0.896816f, 0.896986f, 0.897155f,
+ 0.897325f, 0.897494f, 0.897663f, 0.897832f, 0.898001f, 0.898169f, 0.898338f, 0.898506f,
+ 0.898674f, 0.898843f, 0.899011f, 0.899179f, 0.899346f, 0.899514f, 0.899681f, 0.899849f,
+ 0.900016f, 0.900183f, 0.900350f, 0.900517f, 0.900683f, 0.900850f, 0.901016f, 0.901183f,
+ 0.901349f, 0.901515f, 0.901681f, 0.901847f, 0.902012f, 0.902178f, 0.902343f, 0.902508f,
+ 0.902673f, 0.902838f, 0.903003f, 0.903168f, 0.903332f, 0.903497f, 0.903661f, 0.903825f,
+ 0.903989f, 0.904153f, 0.904317f, 0.904481f, 0.904644f, 0.904807f, 0.904971f, 0.905134f,
+ 0.905297f, 0.905460f, 0.905622f, 0.905785f, 0.905947f, 0.906110f, 0.906272f, 0.906434f,
+ 0.906596f, 0.906757f, 0.906919f, 0.907081f, 0.907242f, 0.907403f, 0.907564f, 0.907725f,
+ 0.907886f, 0.908047f, 0.908207f, 0.908368f, 0.908528f, 0.908688f, 0.908848f, 0.909008f,
+ 0.909168f, 0.909328f, 0.909487f, 0.909646f, 0.909806f, 0.909965f, 0.910124f, 0.910283f,
+ 0.910441f, 0.910600f, 0.910758f, 0.910917f, 0.911075f, 0.911233f, 0.911391f, 0.911548f,
+ 0.911706f, 0.911864f, 0.912021f, 0.912178f, 0.912335f, 0.912492f, 0.912649f, 0.912806f,
+ 0.912962f, 0.913119f, 0.913275f, 0.913431f, 0.913587f, 0.913743f, 0.913899f, 0.914054f,
+ 0.914210f, 0.914365f, 0.914520f, 0.914675f, 0.914830f, 0.914985f, 0.915140f, 0.915294f,
+ 0.915449f, 0.915603f, 0.915757f, 0.915911f, 0.916065f, 0.916219f, 0.916372f, 0.916526f,
+ 0.916679f, 0.916832f, 0.916985f, 0.917138f, 0.917291f, 0.917444f, 0.917596f, 0.917749f,
+ 0.917901f, 0.918053f, 0.918205f, 0.918357f, 0.918508f, 0.918660f, 0.918811f, 0.918963f,
+ 0.919114f, 0.919265f, 0.919416f, 0.919567f, 0.919717f, 0.919868f, 0.920018f, 0.920168f,
+ 0.920318f, 0.920468f, 0.920618f, 0.920768f, 0.920917f, 0.921067f, 0.921216f, 0.921365f,
+ 0.921514f, 0.921663f, 0.921812f, 0.921960f, 0.922109f, 0.922257f, 0.922405f, 0.922553f,
+ 0.922701f, 0.922849f, 0.922997f, 0.923144f, 0.923291f, 0.923439f, 0.923586f, 0.923733f,
+ 0.923880f, 0.924026f, 0.924173f, 0.924319f, 0.924465f, 0.924612f, 0.924758f, 0.924904f,
+ 0.925049f, 0.925195f, 0.925340f, 0.925486f, 0.925631f, 0.925776f, 0.925921f, 0.926066f,
+ 0.926210f, 0.926355f, 0.926499f, 0.926643f, 0.926787f, 0.926931f, 0.927075f, 0.927219f,
+ 0.927363f, 0.927506f, 0.927649f, 0.927792f, 0.927935f, 0.928078f, 0.928221f, 0.928364f,
+ 0.928506f, 0.928648f, 0.928791f, 0.928933f, 0.929075f, 0.929216f, 0.929358f, 0.929500f,
+ 0.929641f, 0.929782f, 0.929923f, 0.930064f, 0.930205f, 0.930346f, 0.930486f, 0.930627f,
+ 0.930767f, 0.930907f, 0.931047f, 0.931187f, 0.931327f, 0.931466f, 0.931606f, 0.931745f,
+ 0.931884f, 0.932023f, 0.932162f, 0.932301f, 0.932440f, 0.932578f, 0.932716f, 0.932855f,
+ 0.932993f, 0.933131f, 0.933269f, 0.933406f, 0.933544f, 0.933681f, 0.933818f, 0.933956f,
+ 0.934093f, 0.934229f, 0.934366f, 0.934503f, 0.934639f, 0.934775f, 0.934912f, 0.935048f,
+ 0.935184f, 0.935319f, 0.935455f, 0.935590f, 0.935726f, 0.935861f, 0.935996f, 0.936131f,
+ 0.936266f, 0.936400f, 0.936535f, 0.936669f, 0.936803f, 0.936938f, 0.937072f, 0.937205f,
+ 0.937339f, 0.937473f, 0.937606f, 0.937739f, 0.937872f, 0.938005f, 0.938138f, 0.938271f,
+ 0.938404f, 0.938536f, 0.938668f, 0.938800f, 0.938932f, 0.939064f, 0.939196f, 0.939328f,
+ 0.939459f, 0.939591f, 0.939722f, 0.939853f, 0.939984f, 0.940115f, 0.940245f, 0.940376f,
+ 0.940506f, 0.940636f, 0.940766f, 0.940896f, 0.941026f, 0.941156f, 0.941285f, 0.941415f,
+ 0.941544f, 0.941673f, 0.941802f, 0.941931f, 0.942060f, 0.942188f, 0.942317f, 0.942445f,
+ 0.942573f, 0.942701f, 0.942829f, 0.942957f, 0.943084f, 0.943212f, 0.943339f, 0.943466f,
+ 0.943593f, 0.943720f, 0.943847f, 0.943974f, 0.944100f, 0.944227f, 0.944353f, 0.944479f,
+ 0.944605f, 0.944731f, 0.944856f, 0.944982f, 0.945107f, 0.945232f, 0.945358f, 0.945482f,
+ 0.945607f, 0.945732f, 0.945857f, 0.945981f, 0.946105f, 0.946229f, 0.946353f, 0.946477f,
+ 0.946601f, 0.946724f, 0.946848f, 0.946971f, 0.947094f, 0.947217f, 0.947340f, 0.947463f,
+ 0.947586f, 0.947708f, 0.947830f, 0.947953f, 0.948075f, 0.948196f, 0.948318f, 0.948440f,
+ 0.948561f, 0.948683f, 0.948804f, 0.948925f, 0.949046f, 0.949167f, 0.949287f, 0.949408f,
+ 0.949528f, 0.949648f, 0.949768f, 0.949888f, 0.950008f, 0.950128f, 0.950247f, 0.950367f,
+ 0.950486f, 0.950605f, 0.950724f, 0.950843f, 0.950962f, 0.951080f, 0.951199f, 0.951317f,
+ 0.951435f, 0.951553f, 0.951671f, 0.951789f, 0.951906f, 0.952024f, 0.952141f, 0.952258f,
+ 0.952375f, 0.952492f, 0.952609f, 0.952725f, 0.952842f, 0.952958f, 0.953074f, 0.953190f,
+ 0.953306f, 0.953422f, 0.953537f, 0.953653f, 0.953768f, 0.953883f, 0.953998f, 0.954113f,
+ 0.954228f, 0.954343f, 0.954457f, 0.954572f, 0.954686f, 0.954800f, 0.954914f, 0.955028f,
+ 0.955141f, 0.955255f, 0.955368f, 0.955481f, 0.955594f, 0.955707f, 0.955820f, 0.955933f,
+ 0.956045f, 0.956158f, 0.956270f, 0.956382f, 0.956494f, 0.956606f, 0.956717f, 0.956829f,
+ 0.956940f, 0.957052f, 0.957163f, 0.957274f, 0.957385f, 0.957495f, 0.957606f, 0.957716f,
+ 0.957826f, 0.957937f, 0.958046f, 0.958156f, 0.958266f, 0.958376f, 0.958485f, 0.958594f,
+ 0.958703f, 0.958812f, 0.958921f, 0.959030f, 0.959139f, 0.959247f, 0.959355f, 0.959463f,
+ 0.959572f, 0.959679f, 0.959787f, 0.959895f, 0.960002f, 0.960109f, 0.960217f, 0.960324f,
+ 0.960431f, 0.960537f, 0.960644f, 0.960750f, 0.960857f, 0.960963f, 0.961069f, 0.961175f,
+ 0.961280f, 0.961386f, 0.961492f, 0.961597f, 0.961702f, 0.961807f, 0.961912f, 0.962017f,
+ 0.962121f, 0.962226f, 0.962330f, 0.962434f, 0.962538f, 0.962642f, 0.962746f, 0.962850f,
+ 0.962953f, 0.963057f, 0.963160f, 0.963263f, 0.963366f, 0.963469f, 0.963571f, 0.963674f,
+ 0.963776f, 0.963878f, 0.963980f, 0.964082f, 0.964184f, 0.964286f, 0.964387f, 0.964489f,
+ 0.964590f, 0.964691f, 0.964792f, 0.964893f, 0.964993f, 0.965094f, 0.965194f, 0.965294f,
+ 0.965394f, 0.965494f, 0.965594f, 0.965694f, 0.965793f, 0.965893f, 0.965992f, 0.966091f,
+ 0.966190f, 0.966289f, 0.966387f, 0.966486f, 0.966584f, 0.966683f, 0.966781f, 0.966879f,
+ 0.966976f, 0.967074f, 0.967172f, 0.967269f, 0.967366f, 0.967463f, 0.967560f, 0.967657f,
+ 0.967754f, 0.967850f, 0.967947f, 0.968043f, 0.968139f, 0.968235f, 0.968331f, 0.968427f,
+ 0.968522f, 0.968617f, 0.968713f, 0.968808f, 0.968903f, 0.968998f, 0.969092f, 0.969187f,
+ 0.969281f, 0.969375f, 0.969470f, 0.969564f, 0.969657f, 0.969751f, 0.969845f, 0.969938f,
+ 0.970031f, 0.970124f, 0.970217f, 0.970310f, 0.970403f, 0.970495f, 0.970588f, 0.970680f,
+ 0.970772f, 0.970864f, 0.970956f, 0.971048f, 0.971139f, 0.971231f, 0.971322f, 0.971413f,
+ 0.971504f, 0.971595f, 0.971685f, 0.971776f, 0.971866f, 0.971957f, 0.972047f, 0.972137f,
+ 0.972227f, 0.972316f, 0.972406f, 0.972495f, 0.972584f, 0.972673f, 0.972762f, 0.972851f,
+ 0.972940f, 0.973028f, 0.973117f, 0.973205f, 0.973293f, 0.973381f, 0.973469f, 0.973557f,
+ 0.973644f, 0.973732f, 0.973819f, 0.973906f, 0.973993f, 0.974080f, 0.974166f, 0.974253f,
+ 0.974339f, 0.974426f, 0.974512f, 0.974598f, 0.974684f, 0.974769f, 0.974855f, 0.974940f,
+ 0.975025f, 0.975110f, 0.975195f, 0.975280f, 0.975365f, 0.975449f, 0.975534f, 0.975618f,
+ 0.975702f, 0.975786f, 0.975870f, 0.975954f, 0.976037f, 0.976120f, 0.976204f, 0.976287f,
+ 0.976370f, 0.976453f, 0.976535f, 0.976618f, 0.976700f, 0.976782f, 0.976864f, 0.976946f,
+ 0.977028f, 0.977110f, 0.977191f, 0.977273f, 0.977354f, 0.977435f, 0.977516f, 0.977597f,
+ 0.977677f, 0.977758f, 0.977838f, 0.977918f, 0.977998f, 0.978078f, 0.978158f, 0.978238f,
+ 0.978317f, 0.978397f, 0.978476f, 0.978555f, 0.978634f, 0.978713f, 0.978791f, 0.978870f,
+ 0.978948f, 0.979026f, 0.979104f, 0.979182f, 0.979260f, 0.979338f, 0.979415f, 0.979493f,
+ 0.979570f, 0.979647f, 0.979724f, 0.979800f, 0.979877f, 0.979954f, 0.980030f, 0.980106f,
+ 0.980182f, 0.980258f, 0.980334f, 0.980409f, 0.980485f, 0.980560f, 0.980635f, 0.980710f,
+ 0.980785f, 0.980860f, 0.980935f, 0.981009f, 0.981083f, 0.981158f, 0.981232f, 0.981305f,
+ 0.981379f, 0.981453f, 0.981526f, 0.981600f, 0.981673f, 0.981746f, 0.981819f, 0.981891f,
+ 0.981964f, 0.982036f, 0.982109f, 0.982181f, 0.982253f, 0.982325f, 0.982396f, 0.982468f,
+ 0.982539f, 0.982611f, 0.982682f, 0.982753f, 0.982824f, 0.982894f, 0.982965f, 0.983035f,
+ 0.983105f, 0.983176f, 0.983246f, 0.983315f, 0.983385f, 0.983455f, 0.983524f, 0.983593f,
+ 0.983662f, 0.983731f, 0.983800f, 0.983869f, 0.983937f, 0.984006f, 0.984074f, 0.984142f,
+ 0.984210f, 0.984278f, 0.984346f, 0.984413f, 0.984480f, 0.984548f, 0.984615f, 0.984682f,
+ 0.984748f, 0.984815f, 0.984882f, 0.984948f, 0.985014f, 0.985080f, 0.985146f, 0.985212f,
+ 0.985278f, 0.985343f, 0.985408f, 0.985474f, 0.985539f, 0.985604f, 0.985668f, 0.985733f,
+ 0.985798f, 0.985862f, 0.985926f, 0.985990f, 0.986054f, 0.986118f, 0.986181f, 0.986245f,
+ 0.986308f, 0.986371f, 0.986434f, 0.986497f, 0.986560f, 0.986623f, 0.986685f, 0.986747f,
+ 0.986809f, 0.986871f, 0.986933f, 0.986995f, 0.987057f, 0.987118f, 0.987179f, 0.987240f,
+ 0.987301f, 0.987362f, 0.987423f, 0.987484f, 0.987544f, 0.987604f, 0.987664f, 0.987724f,
+ 0.987784f, 0.987844f, 0.987903f, 0.987963f, 0.988022f, 0.988081f, 0.988140f, 0.988199f,
+ 0.988258f, 0.988316f, 0.988374f, 0.988433f, 0.988491f, 0.988549f, 0.988607f, 0.988664f,
+ 0.988722f, 0.988779f, 0.988836f, 0.988893f, 0.988950f, 0.989007f, 0.989064f, 0.989120f,
+ 0.989177f, 0.989233f, 0.989289f, 0.989345f, 0.989400f, 0.989456f, 0.989511f, 0.989567f,
+ 0.989622f, 0.989677f, 0.989732f, 0.989787f, 0.989841f, 0.989896f, 0.989950f, 0.990004f,
+ 0.990058f, 0.990112f, 0.990166f, 0.990219f, 0.990273f, 0.990326f, 0.990379f, 0.990432f,
+ 0.990485f, 0.990538f, 0.990590f, 0.990643f, 0.990695f, 0.990747f, 0.990799f, 0.990851f,
+ 0.990903f, 0.990954f, 0.991006f, 0.991057f, 0.991108f, 0.991159f, 0.991210f, 0.991260f,
+ 0.991311f, 0.991361f, 0.991411f, 0.991462f, 0.991511f, 0.991561f, 0.991611f, 0.991660f,
+ 0.991710f, 0.991759f, 0.991808f, 0.991857f, 0.991906f, 0.991954f, 0.992003f, 0.992051f,
+ 0.992099f, 0.992147f, 0.992195f, 0.992243f, 0.992291f, 0.992338f, 0.992385f, 0.992433f,
+ 0.992480f, 0.992526f, 0.992573f, 0.992620f, 0.992666f, 0.992712f, 0.992759f, 0.992805f,
+ 0.992850f, 0.992896f, 0.992942f, 0.992987f, 0.993032f, 0.993077f, 0.993122f, 0.993167f,
+ 0.993212f, 0.993257f, 0.993301f, 0.993345f, 0.993389f, 0.993433f, 0.993477f, 0.993521f,
+ 0.993564f, 0.993608f, 0.993651f, 0.993694f, 0.993737f, 0.993779f, 0.993822f, 0.993865f,
+ 0.993907f, 0.993949f, 0.993991f, 0.994033f, 0.994075f, 0.994116f, 0.994158f, 0.994199f,
+ 0.994240f, 0.994281f, 0.994322f, 0.994363f, 0.994404f, 0.994444f, 0.994484f, 0.994525f,
+ 0.994565f, 0.994604f, 0.994644f, 0.994684f, 0.994723f, 0.994762f, 0.994802f, 0.994841f,
+ 0.994879f, 0.994918f, 0.994957f, 0.994995f, 0.995033f, 0.995071f, 0.995109f, 0.995147f,
+ 0.995185f, 0.995222f, 0.995260f, 0.995297f, 0.995334f, 0.995371f, 0.995408f, 0.995444f,
+ 0.995481f, 0.995517f, 0.995553f, 0.995589f, 0.995625f, 0.995661f, 0.995697f, 0.995732f,
+ 0.995767f, 0.995803f, 0.995838f, 0.995872f, 0.995907f, 0.995942f, 0.995976f, 0.996011f,
+ 0.996045f, 0.996079f, 0.996113f, 0.996146f, 0.996180f, 0.996213f, 0.996247f, 0.996280f,
+ 0.996313f, 0.996345f, 0.996378f, 0.996411f, 0.996443f, 0.996475f, 0.996507f, 0.996539f,
+ 0.996571f, 0.996603f, 0.996634f, 0.996666f, 0.996697f, 0.996728f, 0.996759f, 0.996790f,
+ 0.996820f, 0.996851f, 0.996881f, 0.996911f, 0.996941f, 0.996971f, 0.997001f, 0.997031f,
+ 0.997060f, 0.997089f, 0.997119f, 0.997148f, 0.997176f, 0.997205f, 0.997234f, 0.997262f,
+ 0.997290f, 0.997319f, 0.997347f, 0.997374f, 0.997402f, 0.997430f, 0.997457f, 0.997484f,
+ 0.997511f, 0.997538f, 0.997565f, 0.997592f, 0.997618f, 0.997645f, 0.997671f, 0.997697f,
+ 0.997723f, 0.997749f, 0.997774f, 0.997800f, 0.997825f, 0.997851f, 0.997876f, 0.997901f,
+ 0.997925f, 0.997950f, 0.997974f, 0.997999f, 0.998023f, 0.998047f, 0.998071f, 0.998094f,
+ 0.998118f, 0.998142f, 0.998165f, 0.998188f, 0.998211f, 0.998234f, 0.998257f, 0.998279f,
+ 0.998302f, 0.998324f, 0.998346f, 0.998368f, 0.998390f, 0.998411f, 0.998433f, 0.998454f,
+ 0.998476f, 0.998497f, 0.998518f, 0.998538f, 0.998559f, 0.998580f, 0.998600f, 0.998620f,
+ 0.998640f, 0.998660f, 0.998680f, 0.998700f, 0.998719f, 0.998738f, 0.998758f, 0.998777f,
+ 0.998795f, 0.998814f, 0.998833f, 0.998851f, 0.998870f, 0.998888f, 0.998906f, 0.998924f,
+ 0.998941f, 0.998959f, 0.998976f, 0.998994f, 0.999011f, 0.999028f, 0.999044f, 0.999061f,
+ 0.999078f, 0.999094f, 0.999110f, 0.999126f, 0.999142f, 0.999158f, 0.999174f, 0.999189f,
+ 0.999205f, 0.999220f, 0.999235f, 0.999250f, 0.999265f, 0.999279f, 0.999294f, 0.999308f,
+ 0.999322f, 0.999336f, 0.999350f, 0.999364f, 0.999378f, 0.999391f, 0.999404f, 0.999418f,
+ 0.999431f, 0.999443f, 0.999456f, 0.999469f, 0.999481f, 0.999493f, 0.999506f, 0.999518f,
+ 0.999529f, 0.999541f, 0.999553f, 0.999564f, 0.999575f, 0.999586f, 0.999597f, 0.999608f,
+ 0.999619f, 0.999629f, 0.999640f, 0.999650f, 0.999660f, 0.999670f, 0.999680f, 0.999689f,
+ 0.999699f, 0.999708f, 0.999717f, 0.999726f, 0.999735f, 0.999744f, 0.999753f, 0.999761f,
+ 0.999769f, 0.999778f, 0.999786f, 0.999793f, 0.999801f, 0.999809f, 0.999816f, 0.999823f,
+ 0.999831f, 0.999838f, 0.999844f, 0.999851f, 0.999858f, 0.999864f, 0.999870f, 0.999876f,
+ 0.999882f, 0.999888f, 0.999894f, 0.999899f, 0.999905f, 0.999910f, 0.999915f, 0.999920f,
+ 0.999925f, 0.999929f, 0.999934f, 0.999938f, 0.999942f, 0.999946f, 0.999950f, 0.999954f,
+ 0.999958f, 0.999961f, 0.999964f, 0.999968f, 0.999971f, 0.999973f, 0.999976f, 0.999979f,
+ 0.999981f, 0.999983f, 0.999986f, 0.999988f, 0.999989f, 0.999991f, 0.999993f, 0.999994f,
+ 0.999995f, 0.999996f, 0.999997f, 0.999998f, 0.999999f, 0.999999f, 1.000000f, 1.000000f,
+ 0.000000f, -0.000383f, -0.000767f, -0.001150f, -0.001534f, -0.001917f, -0.002301f, -0.002684f,
+ -0.003068f, -0.003451f, -0.003835f, -0.004218f, -0.004602f, -0.004985f, -0.005369f, -0.005752f,
+ -0.006136f, -0.006519f, -0.006903f, -0.007286f, -0.007670f, -0.008053f, -0.008437f, -0.008820f,
+ -0.009204f, -0.009587f, -0.009971f, -0.010354f, -0.010738f, -0.011121f, -0.011505f, -0.011888f,
+ -0.012272f, -0.012655f, -0.013038f, -0.013422f, -0.013805f, -0.014189f, -0.014572f, -0.014956f,
+ -0.015339f, -0.015723f, -0.016106f, -0.016490f, -0.016873f, -0.017256f, -0.017640f, -0.018023f,
+ -0.018407f, -0.018790f, -0.019174f, -0.019557f, -0.019940f, -0.020324f, -0.020707f, -0.021091f,
+ -0.021474f, -0.021857f, -0.022241f, -0.022624f, -0.023008f, -0.023391f, -0.023774f, -0.024158f,
+ -0.024541f, -0.024925f, -0.025308f, -0.025691f, -0.026075f, -0.026458f, -0.026841f, -0.027225f,
+ -0.027608f, -0.027991f, -0.028375f, -0.028758f, -0.029142f, -0.029525f, -0.029908f, -0.030291f,
+ -0.030675f, -0.031058f, -0.031441f, -0.031825f, -0.032208f, -0.032591f, -0.032975f, -0.033358f,
+ -0.033741f, -0.034124f, -0.034508f, -0.034891f, -0.035274f, -0.035657f, -0.036041f, -0.036424f,
+ -0.036807f, -0.037190f, -0.037574f, -0.037957f, -0.038340f, -0.038723f, -0.039107f, -0.039490f,
+ -0.039873f, -0.040256f, -0.040639f, -0.041022f, -0.041406f, -0.041789f, -0.042172f, -0.042555f,
+ -0.042938f, -0.043321f, -0.043705f, -0.044088f, -0.044471f, -0.044854f, -0.045237f, -0.045620f,
+ -0.046003f, -0.046386f, -0.046769f, -0.047152f, -0.047535f, -0.047919f, -0.048302f, -0.048685f,
+ -0.049068f, -0.049451f, -0.049834f, -0.050217f, -0.050600f, -0.050983f, -0.051366f, -0.051749f,
+ -0.052132f, -0.052515f, -0.052898f, -0.053281f, -0.053664f, -0.054046f, -0.054429f, -0.054812f,
+ -0.055195f, -0.055578f, -0.055961f, -0.056344f, -0.056727f, -0.057110f, -0.057493f, -0.057875f,
+ -0.058258f, -0.058641f, -0.059024f, -0.059407f, -0.059790f, -0.060172f, -0.060555f, -0.060938f,
+ -0.061321f, -0.061704f, -0.062086f, -0.062469f, -0.062852f, -0.063234f, -0.063617f, -0.064000f,
+ -0.064383f, -0.064765f, -0.065148f, -0.065531f, -0.065913f, -0.066296f, -0.066679f, -0.067061f,
+ -0.067444f, -0.067827f, -0.068209f, -0.068592f, -0.068974f, -0.069357f, -0.069739f, -0.070122f,
+ -0.070505f, -0.070887f, -0.071270f, -0.071652f, -0.072035f, -0.072417f, -0.072800f, -0.073182f,
+ -0.073565f, -0.073947f, -0.074329f, -0.074712f, -0.075094f, -0.075477f, -0.075859f, -0.076241f,
+ -0.076624f, -0.077006f, -0.077389f, -0.077771f, -0.078153f, -0.078536f, -0.078918f, -0.079300f,
+ -0.079682f, -0.080065f, -0.080447f, -0.080829f, -0.081211f, -0.081594f, -0.081976f, -0.082358f,
+ -0.082740f, -0.083122f, -0.083505f, -0.083887f, -0.084269f, -0.084651f, -0.085033f, -0.085415f,
+ -0.085797f, -0.086179f, -0.086561f, -0.086943f, -0.087326f, -0.087708f, -0.088090f, -0.088472f,
+ -0.088854f, -0.089236f, -0.089617f, -0.089999f, -0.090381f, -0.090763f, -0.091145f, -0.091527f,
+ -0.091909f, -0.092291f, -0.092673f, -0.093055f, -0.093436f, -0.093818f, -0.094200f, -0.094582f,
+ -0.094963f, -0.095345f, -0.095727f, -0.096109f, -0.096490f, -0.096872f, -0.097254f, -0.097635f,
+ -0.098017f, -0.098399f, -0.098780f, -0.099162f, -0.099544f, -0.099925f, -0.100307f, -0.100688f,
+ -0.101070f, -0.101451f, -0.101833f, -0.102214f, -0.102596f, -0.102977f, -0.103359f, -0.103740f,
+ -0.104122f, -0.104503f, -0.104884f, -0.105266f, -0.105647f, -0.106028f, -0.106410f, -0.106791f,
+ -0.107172f, -0.107554f, -0.107935f, -0.108316f, -0.108697f, -0.109079f, -0.109460f, -0.109841f,
+ -0.110222f, -0.110603f, -0.110984f, -0.111366f, -0.111747f, -0.112128f, -0.112509f, -0.112890f,
+ -0.113271f, -0.113652f, -0.114033f, -0.114414f, -0.114795f, -0.115176f, -0.115557f, -0.115938f,
+ -0.116319f, -0.116700f, -0.117080f, -0.117461f, -0.117842f, -0.118223f, -0.118604f, -0.118984f,
+ -0.119365f, -0.119746f, -0.120127f, -0.120507f, -0.120888f, -0.121269f, -0.121649f, -0.122030f,
+ -0.122411f, -0.122791f, -0.123172f, -0.123552f, -0.123933f, -0.124314f, -0.124694f, -0.125075f,
+ -0.125455f, -0.125835f, -0.126216f, -0.126596f, -0.126977f, -0.127357f, -0.127737f, -0.128118f,
+ -0.128498f, -0.128878f, -0.129259f, -0.129639f, -0.130019f, -0.130399f, -0.130780f, -0.131160f,
+ -0.131540f, -0.131920f, -0.132300f, -0.132680f, -0.133061f, -0.133441f, -0.133821f, -0.134201f,
+ -0.134581f, -0.134961f, -0.135341f, -0.135721f, -0.136101f, -0.136480f, -0.136860f, -0.137240f,
+ -0.137620f, -0.138000f, -0.138380f, -0.138760f, -0.139139f, -0.139519f, -0.139899f, -0.140279f,
+ -0.140658f, -0.141038f, -0.141418f, -0.141797f, -0.142177f, -0.142556f, -0.142936f, -0.143316f,
+ -0.143695f, -0.144075f, -0.144454f, -0.144833f, -0.145213f, -0.145592f, -0.145972f, -0.146351f,
+ -0.146730f, -0.147110f, -0.147489f, -0.147868f, -0.148248f, -0.148627f, -0.149006f, -0.149385f,
+ -0.149765f, -0.150144f, -0.150523f, -0.150902f, -0.151281f, -0.151660f, -0.152039f, -0.152418f,
+ -0.152797f, -0.153176f, -0.153555f, -0.153934f, -0.154313f, -0.154692f, -0.155071f, -0.155450f,
+ -0.155828f, -0.156207f, -0.156586f, -0.156965f, -0.157343f, -0.157722f, -0.158101f, -0.158480f,
+ -0.158858f, -0.159237f, -0.159615f, -0.159994f, -0.160372f, -0.160751f, -0.161129f, -0.161508f,
+ -0.161886f, -0.162265f, -0.162643f, -0.163022f, -0.163400f, -0.163778f, -0.164157f, -0.164535f,
+ -0.164913f, -0.165291f, -0.165670f, -0.166048f, -0.166426f, -0.166804f, -0.167182f, -0.167560f,
+ -0.167938f, -0.168316f, -0.168694f, -0.169072f, -0.169450f, -0.169828f, -0.170206f, -0.170584f,
+ -0.170962f, -0.171340f, -0.171718f, -0.172095f, -0.172473f, -0.172851f, -0.173229f, -0.173606f,
+ -0.173984f, -0.174362f, -0.174739f, -0.175117f, -0.175494f, -0.175872f, -0.176249f, -0.176627f,
+ -0.177004f, -0.177382f, -0.177759f, -0.178136f, -0.178514f, -0.178891f, -0.179268f, -0.179646f,
+ -0.180023f, -0.180400f, -0.180777f, -0.181154f, -0.181532f, -0.181909f, -0.182286f, -0.182663f,
+ -0.183040f, -0.183417f, -0.183794f, -0.184171f, -0.184548f, -0.184925f, -0.185301f, -0.185678f,
+ -0.186055f, -0.186432f, -0.186809f, -0.187185f, -0.187562f, -0.187939f, -0.188315f, -0.188692f,
+ -0.189069f, -0.189445f, -0.189822f, -0.190198f, -0.190575f, -0.190951f, -0.191328f, -0.191704f,
+ -0.192080f, -0.192457f, -0.192833f, -0.193209f, -0.193586f, -0.193962f, -0.194338f, -0.194714f,
+ -0.195090f, -0.195466f, -0.195843f, -0.196219f, -0.196595f, -0.196971f, -0.197347f, -0.197722f,
+ -0.198098f, -0.198474f, -0.198850f, -0.199226f, -0.199602f, -0.199978f, -0.200353f, -0.200729f,
+ -0.201105f, -0.201480f, -0.201856f, -0.202231f, -0.202607f, -0.202983f, -0.203358f, -0.203734f,
+ -0.204109f, -0.204484f, -0.204860f, -0.205235f, -0.205610f, -0.205986f, -0.206361f, -0.206736f,
+ -0.207111f, -0.207487f, -0.207862f, -0.208237f, -0.208612f, -0.208987f, -0.209362f, -0.209737f,
+ -0.210112f, -0.210487f, -0.210862f, -0.211237f, -0.211611f, -0.211986f, -0.212361f, -0.212736f,
+ -0.213110f, -0.213485f, -0.213860f, -0.214234f, -0.214609f, -0.214983f, -0.215358f, -0.215732f,
+ -0.216107f, -0.216481f, -0.216856f, -0.217230f, -0.217604f, -0.217979f, -0.218353f, -0.218727f,
+ -0.219101f, -0.219475f, -0.219850f, -0.220224f, -0.220598f, -0.220972f, -0.221346f, -0.221720f,
+ -0.222094f, -0.222468f, -0.222841f, -0.223215f, -0.223589f, -0.223963f, -0.224337f, -0.224710f,
+ -0.225084f, -0.225458f, -0.225831f, -0.226205f, -0.226578f, -0.226952f, -0.227325f, -0.227699f,
+ -0.228072f, -0.228445f, -0.228819f, -0.229192f, -0.229565f, -0.229939f, -0.230312f, -0.230685f,
+ -0.231058f, -0.231431f, -0.231804f, -0.232177f, -0.232550f, -0.232923f, -0.233296f, -0.233669f,
+ -0.234042f, -0.234415f, -0.234788f, -0.235160f, -0.235533f, -0.235906f, -0.236278f, -0.236651f,
+ -0.237024f, -0.237396f, -0.237769f, -0.238141f, -0.238514f, -0.238886f, -0.239258f, -0.239631f,
+ -0.240003f, -0.240375f, -0.240748f, -0.241120f, -0.241492f, -0.241864f, -0.242236f, -0.242608f,
+ -0.242980f, -0.243352f, -0.243724f, -0.244096f, -0.244468f, -0.244840f, -0.245212f, -0.245583f,
+ -0.245955f, -0.246327f, -0.246698f, -0.247070f, -0.247442f, -0.247813f, -0.248185f, -0.248556f,
+ -0.248928f, -0.249299f, -0.249670f, -0.250042f, -0.250413f, -0.250784f, -0.251155f, -0.251527f,
+ -0.251898f, -0.252269f, -0.252640f, -0.253011f, -0.253382f, -0.253753f, -0.254124f, -0.254495f,
+ -0.254866f, -0.255236f, -0.255607f, -0.255978f, -0.256349f, -0.256719f, -0.257090f, -0.257461f,
+ -0.257831f, -0.258202f, -0.258572f, -0.258943f, -0.259313f, -0.259683f, -0.260054f, -0.260424f,
+ -0.260794f, -0.261164f, -0.261534f, -0.261905f, -0.262275f, -0.262645f, -0.263015f, -0.263385f,
+ -0.263755f, -0.264125f, -0.264494f, -0.264864f, -0.265234f, -0.265604f, -0.265973f, -0.266343f,
+ -0.266713f, -0.267082f, -0.267452f, -0.267821f, -0.268191f, -0.268560f, -0.268930f, -0.269299f,
+ -0.269668f, -0.270038f, -0.270407f, -0.270776f, -0.271145f, -0.271514f, -0.271883f, -0.272252f,
+ -0.272621f, -0.272990f, -0.273359f, -0.273728f, -0.274097f, -0.274466f, -0.274834f, -0.275203f,
+ -0.275572f, -0.275940f, -0.276309f, -0.276678f, -0.277046f, -0.277415f, -0.277783f, -0.278151f,
+ -0.278520f, -0.278888f, -0.279256f, -0.279624f, -0.279993f, -0.280361f, -0.280729f, -0.281097f,
+ -0.281465f, -0.281833f, -0.282201f, -0.282569f, -0.282937f, -0.283304f, -0.283672f, -0.284040f,
+ -0.284408f, -0.284775f, -0.285143f, -0.285510f, -0.285878f, -0.286245f, -0.286613f, -0.286980f,
+ -0.287347f, -0.287715f, -0.288082f, -0.288449f, -0.288816f, -0.289184f, -0.289551f, -0.289918f,
+ -0.290285f, -0.290652f, -0.291019f, -0.291385f, -0.291752f, -0.292119f, -0.292486f, -0.292852f,
+ -0.293219f, -0.293586f, -0.293952f, -0.294319f, -0.294685f, -0.295052f, -0.295418f, -0.295785f,
+ -0.296151f, -0.296517f, -0.296883f, -0.297250f, -0.297616f, -0.297982f, -0.298348f, -0.298714f,
+ -0.299080f, -0.299446f, -0.299812f, -0.300177f, -0.300543f, -0.300909f, -0.301275f, -0.301640f,
+ -0.302006f, -0.302372f, -0.302737f, -0.303103f, -0.303468f, -0.303833f, -0.304199f, -0.304564f,
+ -0.304929f, -0.305294f, -0.305660f, -0.306025f, -0.306390f, -0.306755f, -0.307120f, -0.307485f,
+ -0.307850f, -0.308214f, -0.308579f, -0.308944f, -0.309309f, -0.309673f, -0.310038f, -0.310403f,
+ -0.310767f, -0.311132f, -0.311496f, -0.311860f, -0.312225f, -0.312589f, -0.312953f, -0.313318f,
+ -0.313682f, -0.314046f, -0.314410f, -0.314774f, -0.315138f, -0.315502f, -0.315866f, -0.316230f,
+ -0.316593f, -0.316957f, -0.317321f, -0.317684f, -0.318048f, -0.318412f, -0.318775f, -0.319139f,
+ -0.319502f, -0.319865f, -0.320229f, -0.320592f, -0.320955f, -0.321318f, -0.321682f, -0.322045f,
+ -0.322408f, -0.322771f, -0.323134f, -0.323497f, -0.323859f, -0.324222f, -0.324585f, -0.324948f,
+ -0.325310f, -0.325673f, -0.326035f, -0.326398f, -0.326760f, -0.327123f, -0.327485f, -0.327848f,
+ -0.328210f, -0.328572f, -0.328934f, -0.329296f, -0.329658f, -0.330020f, -0.330382f, -0.330744f,
+ -0.331106f, -0.331468f, -0.331830f, -0.332192f, -0.332553f, -0.332915f, -0.333277f, -0.333638f,
+ -0.334000f, -0.334361f, -0.334722f, -0.335084f, -0.335445f, -0.335806f, -0.336168f, -0.336529f,
+ -0.336890f, -0.337251f, -0.337612f, -0.337973f, -0.338334f, -0.338695f, -0.339055f, -0.339416f,
+ -0.339777f, -0.340138f, -0.340498f, -0.340859f, -0.341219f, -0.341580f, -0.341940f, -0.342300f,
+ -0.342661f, -0.343021f, -0.343381f, -0.343741f, -0.344101f, -0.344461f, -0.344821f, -0.345181f,
+ -0.345541f, -0.345901f, -0.346261f, -0.346621f, -0.346980f, -0.347340f, -0.347700f, -0.348059f,
+ -0.348419f, -0.348778f, -0.349138f, -0.349497f, -0.349856f, -0.350215f, -0.350575f, -0.350934f,
+ -0.351293f, -0.351652f, -0.352011f, -0.352370f, -0.352729f, -0.353087f, -0.353446f, -0.353805f,
+ -0.354164f, -0.354522f, -0.354881f, -0.355239f, -0.355598f, -0.355956f, -0.356314f, -0.356673f,
+ -0.357031f, -0.357389f, -0.357747f, -0.358105f, -0.358463f, -0.358821f, -0.359179f, -0.359537f,
+ -0.359895f, -0.360253f, -0.360611f, -0.360968f, -0.361326f, -0.361683f, -0.362041f, -0.362398f,
+ -0.362756f, -0.363113f, -0.363470f, -0.363828f, -0.364185f, -0.364542f, -0.364899f, -0.365256f,
+ -0.365613f, -0.365970f, -0.366327f, -0.366684f, -0.367040f, -0.367397f, -0.367754f, -0.368110f,
+ -0.368467f, -0.368823f, -0.369180f, -0.369536f, -0.369892f, -0.370249f, -0.370605f, -0.370961f,
+ -0.371317f, -0.371673f, -0.372029f, -0.372385f, -0.372741f, -0.373097f, -0.373453f, -0.373808f,
+ -0.374164f, -0.374520f, -0.374875f, -0.375231f, -0.375586f, -0.375942f, -0.376297f, -0.376652f,
+ -0.377007f, -0.377363f, -0.377718f, -0.378073f, -0.378428f, -0.378783f, -0.379138f, -0.379492f,
+ -0.379847f, -0.380202f, -0.380557f, -0.380911f, -0.381266f, -0.381620f, -0.381975f, -0.382329f,
+ -0.382683f, -0.383038f, -0.383392f, -0.383746f, -0.384100f, -0.384454f, -0.384808f, -0.385162f,
+ -0.385516f, -0.385870f, -0.386224f, -0.386577f, -0.386931f, -0.387285f, -0.387638f, -0.387992f,
+ -0.388345f, -0.388698f, -0.389052f, -0.389405f, -0.389758f, -0.390111f, -0.390464f, -0.390817f,
+ -0.391170f, -0.391523f, -0.391876f, -0.392229f, -0.392582f, -0.392934f, -0.393287f, -0.393640f,
+ -0.393992f, -0.394344f, -0.394697f, -0.395049f, -0.395401f, -0.395754f, -0.396106f, -0.396458f,
+ -0.396810f, -0.397162f, -0.397514f, -0.397866f, -0.398218f, -0.398569f, -0.398921f, -0.399273f,
+ -0.399624f, -0.399976f, -0.400327f, -0.400679f, -0.401030f, -0.401381f, -0.401732f, -0.402084f,
+ -0.402435f, -0.402786f, -0.403137f, -0.403488f, -0.403838f, -0.404189f, -0.404540f, -0.404891f,
+ -0.405241f, -0.405592f, -0.405942f, -0.406293f, -0.406643f, -0.406994f, -0.407344f, -0.407694f,
+ -0.408044f, -0.408394f, -0.408744f, -0.409094f, -0.409444f, -0.409794f, -0.410144f, -0.410493f,
+ -0.410843f, -0.411193f, -0.411542f, -0.411892f, -0.412241f, -0.412591f, -0.412940f, -0.413289f,
+ -0.413638f, -0.413987f, -0.414337f, -0.414685f, -0.415034f, -0.415383f, -0.415732f, -0.416081f,
+ -0.416430f, -0.416778f, -0.417127f, -0.417475f, -0.417824f, -0.418172f, -0.418520f, -0.418869f,
+ -0.419217f, -0.419565f, -0.419913f, -0.420261f, -0.420609f, -0.420957f, -0.421305f, -0.421653f,
+ -0.422000f, -0.422348f, -0.422695f, -0.423043f, -0.423390f, -0.423738f, -0.424085f, -0.424432f,
+ -0.424780f, -0.425127f, -0.425474f, -0.425821f, -0.426168f, -0.426515f, -0.426862f, -0.427208f,
+ -0.427555f, -0.427902f, -0.428248f, -0.428595f, -0.428941f, -0.429288f, -0.429634f, -0.429980f,
+ -0.430326f, -0.430673f, -0.431019f, -0.431365f, -0.431711f, -0.432057f, -0.432402f, -0.432748f,
+ -0.433094f, -0.433439f, -0.433785f, -0.434131f, -0.434476f, -0.434821f, -0.435167f, -0.435512f,
+ -0.435857f, -0.436202f, -0.436547f, -0.436892f, -0.437237f, -0.437582f, -0.437927f, -0.438272f,
+ -0.438616f, -0.438961f, -0.439305f, -0.439650f, -0.439994f, -0.440339f, -0.440683f, -0.441027f,
+ -0.441371f, -0.441715f, -0.442059f, -0.442403f, -0.442747f, -0.443091f, -0.443435f, -0.443779f,
+ -0.444122f, -0.444466f, -0.444809f, -0.445153f, -0.445496f, -0.445839f, -0.446183f, -0.446526f,
+ -0.446869f, -0.447212f, -0.447555f, -0.447898f, -0.448241f, -0.448583f, -0.448926f, -0.449269f,
+ -0.449611f, -0.449954f, -0.450296f, -0.450639f, -0.450981f, -0.451323f, -0.451665f, -0.452008f,
+ -0.452350f, -0.452692f, -0.453033f, -0.453375f, -0.453717f, -0.454059f, -0.454400f, -0.454742f,
+ -0.455084f, -0.455425f, -0.455766f, -0.456108f, -0.456449f, -0.456790f, -0.457131f, -0.457472f,
+ -0.457813f, -0.458154f, -0.458495f, -0.458836f, -0.459177f, -0.459517f, -0.459858f, -0.460198f,
+ -0.460539f, -0.460879f, -0.461219f, -0.461560f, -0.461900f, -0.462240f, -0.462580f, -0.462920f,
+ -0.463260f, -0.463600f, -0.463939f, -0.464279f, -0.464619f, -0.464958f, -0.465298f, -0.465637f,
+ -0.465977f, -0.466316f, -0.466655f, -0.466994f, -0.467333f, -0.467672f, -0.468011f, -0.468350f,
+ -0.468689f, -0.469028f, -0.469366f, -0.469705f, -0.470043f, -0.470382f, -0.470720f, -0.471058f,
+ -0.471397f, -0.471735f, -0.472073f, -0.472411f, -0.472749f, -0.473087f, -0.473425f, -0.473763f,
+ -0.474100f, -0.474438f, -0.474775f, -0.475113f, -0.475450f, -0.475788f, -0.476125f, -0.476462f,
+ -0.476799f, -0.477136f, -0.477473f, -0.477810f, -0.478147f, -0.478484f, -0.478821f, -0.479157f,
+ -0.479494f, -0.479830f, -0.480167f, -0.480503f, -0.480839f, -0.481176f, -0.481512f, -0.481848f,
+ -0.482184f, -0.482520f, -0.482856f, -0.483191f, -0.483527f, -0.483863f, -0.484198f, -0.484534f,
+ -0.484869f, -0.485205f, -0.485540f, -0.485875f, -0.486210f, -0.486545f, -0.486880f, -0.487215f,
+ -0.487550f, -0.487885f, -0.488220f, -0.488554f, -0.488889f, -0.489223f, -0.489558f, -0.489892f,
+ -0.490226f, -0.490561f, -0.490895f, -0.491229f, -0.491563f, -0.491897f, -0.492231f, -0.492564f,
+ -0.492898f, -0.493232f, -0.493565f, -0.493899f, -0.494232f, -0.494566f, -0.494899f, -0.495232f,
+ -0.495565f, -0.495898f, -0.496231f, -0.496564f, -0.496897f, -0.497230f, -0.497562f, -0.497895f,
+ -0.498228f, -0.498560f, -0.498893f, -0.499225f, -0.499557f, -0.499889f, -0.500221f, -0.500553f,
+ -0.500885f, -0.501217f, -0.501549f, -0.501881f, -0.502212f, -0.502544f, -0.502876f, -0.503207f,
+ -0.503538f, -0.503870f, -0.504201f, -0.504532f, -0.504863f, -0.505194f, -0.505525f, -0.505856f,
+ -0.506187f, -0.506517f, -0.506848f, -0.507179f, -0.507509f, -0.507839f, -0.508170f, -0.508500f,
+ -0.508830f, -0.509160f, -0.509490f, -0.509820f, -0.510150f, -0.510480f, -0.510810f, -0.511139f,
+ -0.511469f, -0.511798f, -0.512128f, -0.512457f, -0.512786f, -0.513116f, -0.513445f, -0.513774f,
+ -0.514103f, -0.514432f, -0.514760f, -0.515089f, -0.515418f, -0.515746f, -0.516075f, -0.516403f,
+ -0.516732f, -0.517060f, -0.517388f, -0.517716f, -0.518045f, -0.518372f, -0.518700f, -0.519028f,
+ -0.519356f, -0.519684f, -0.520011f, -0.520339f, -0.520666f, -0.520994f, -0.521321f, -0.521648f,
+ -0.521975f, -0.522302f, -0.522629f, -0.522956f, -0.523283f, -0.523610f, -0.523937f, -0.524263f,
+ -0.524590f, -0.524916f, -0.525243f, -0.525569f, -0.525895f, -0.526221f, -0.526547f, -0.526873f,
+ -0.527199f, -0.527525f, -0.527851f, -0.528176f, -0.528502f, -0.528828f, -0.529153f, -0.529478f,
+ -0.529804f, -0.530129f, -0.530454f, -0.530779f, -0.531104f, -0.531429f, -0.531754f, -0.532078f,
+ -0.532403f, -0.532728f, -0.533052f, -0.533377f, -0.533701f, -0.534025f, -0.534349f, -0.534674f,
+ -0.534998f, -0.535322f, -0.535645f, -0.535969f, -0.536293f, -0.536617f, -0.536940f, -0.537264f,
+ -0.537587f, -0.537910f, -0.538234f, -0.538557f, -0.538880f, -0.539203f, -0.539526f, -0.539849f,
+ -0.540171f, -0.540494f, -0.540817f, -0.541139f, -0.541462f, -0.541784f, -0.542106f, -0.542429f,
+ -0.542751f, -0.543073f, -0.543395f, -0.543717f, -0.544039f, -0.544360f, -0.544682f, -0.545003f,
+ -0.545325f, -0.545646f, -0.545968f, -0.546289f, -0.546610f, -0.546931f, -0.547252f, -0.547573f,
+ -0.547894f, -0.548215f, -0.548536f, -0.548856f, -0.549177f, -0.549497f, -0.549818f, -0.550138f,
+ -0.550458f, -0.550778f, -0.551098f, -0.551418f, -0.551738f, -0.552058f, -0.552378f, -0.552697f,
+ -0.553017f, -0.553336f, -0.553656f, -0.553975f, -0.554294f, -0.554613f, -0.554932f, -0.555251f,
+ -0.555570f, -0.555889f, -0.556208f, -0.556526f, -0.556845f, -0.557164f, -0.557482f, -0.557800f,
+ -0.558119f, -0.558437f, -0.558755f, -0.559073f, -0.559391f, -0.559709f, -0.560026f, -0.560344f,
+ -0.560662f, -0.560979f, -0.561297f, -0.561614f, -0.561931f, -0.562248f, -0.562565f, -0.562882f,
+ -0.563199f, -0.563516f, -0.563833f, -0.564150f, -0.564466f, -0.564783f, -0.565099f, -0.565416f,
+ -0.565732f, -0.566048f, -0.566364f, -0.566680f, -0.566996f, -0.567312f, -0.567628f, -0.567943f,
+ -0.568259f, -0.568574f, -0.568890f, -0.569205f, -0.569521f, -0.569836f, -0.570151f, -0.570466f,
+ -0.570781f, -0.571096f, -0.571410f, -0.571725f, -0.572040f, -0.572354f, -0.572669f, -0.572983f,
+ -0.573297f, -0.573611f, -0.573925f, -0.574239f, -0.574553f, -0.574867f, -0.575181f, -0.575495f,
+ -0.575808f, -0.576122f, -0.576435f, -0.576748f, -0.577062f, -0.577375f, -0.577688f, -0.578001f,
+ -0.578314f, -0.578627f, -0.578939f, -0.579252f, -0.579565f, -0.579877f, -0.580189f, -0.580502f,
+ -0.580814f, -0.581126f, -0.581438f, -0.581750f, -0.582062f, -0.582374f, -0.582685f, -0.582997f,
+ -0.583309f, -0.583620f, -0.583931f, -0.584243f, -0.584554f, -0.584865f, -0.585176f, -0.585487f,
+ -0.585798f, -0.586109f, -0.586419f, -0.586730f, -0.587040f, -0.587351f, -0.587661f, -0.587971f,
+ -0.588282f, -0.588592f, -0.588902f, -0.589212f, -0.589521f, -0.589831f, -0.590141f, -0.590450f,
+ -0.590760f, -0.591069f, -0.591378f, -0.591688f, -0.591997f, -0.592306f, -0.592615f, -0.592924f,
+ -0.593232f, -0.593541f, -0.593850f, -0.594158f, -0.594467f, -0.594775f, -0.595083f, -0.595391f,
+ -0.595699f, -0.596007f, -0.596315f, -0.596623f, -0.596931f, -0.597238f, -0.597546f, -0.597853f,
+ -0.598161f, -0.598468f, -0.598775f, -0.599082f, -0.599389f, -0.599696f, -0.600003f, -0.600310f,
+ -0.600616f, -0.600923f, -0.601230f, -0.601536f, -0.601842f, -0.602148f, -0.602455f, -0.602761f,
+ -0.603067f, -0.603372f, -0.603678f, -0.603984f, -0.604290f, -0.604595f, -0.604900f, -0.605206f,
+ -0.605511f, -0.605816f, -0.606121f, -0.606426f, -0.606731f, -0.607036f, -0.607341f, -0.607645f,
+ -0.607950f, -0.608254f, -0.608559f, -0.608863f, -0.609167f, -0.609471f, -0.609775f, -0.610079f,
+ -0.610383f, -0.610687f, -0.610990f, -0.611294f, -0.611597f, -0.611901f, -0.612204f, -0.612507f,
+ -0.612810f, -0.613113f, -0.613416f, -0.613719f, -0.614022f, -0.614324f, -0.614627f, -0.614929f,
+ -0.615232f, -0.615534f, -0.615836f, -0.616138f, -0.616440f, -0.616742f, -0.617044f, -0.617346f,
+ -0.617647f, -0.617949f, -0.618250f, -0.618552f, -0.618853f, -0.619154f, -0.619455f, -0.619756f,
+ -0.620057f, -0.620358f, -0.620659f, -0.620959f, -0.621260f, -0.621560f, -0.621861f, -0.622161f,
+ -0.622461f, -0.622761f, -0.623061f, -0.623361f, -0.623661f, -0.623961f, -0.624260f, -0.624560f,
+ -0.624860f, -0.625159f, -0.625458f, -0.625757f, -0.626056f, -0.626355f, -0.626654f, -0.626953f,
+ -0.627252f, -0.627550f, -0.627849f, -0.628147f, -0.628446f, -0.628744f, -0.629042f, -0.629340f,
+ -0.629638f, -0.629936f, -0.630234f, -0.630532f, -0.630829f, -0.631127f, -0.631424f, -0.631721f,
+ -0.632019f, -0.632316f, -0.632613f, -0.632910f, -0.633207f, -0.633504f, -0.633800f, -0.634097f,
+ -0.634393f, -0.634690f, -0.634986f, -0.635282f, -0.635578f, -0.635874f, -0.636170f, -0.636466f,
+ -0.636762f, -0.637057f, -0.637353f, -0.637649f, -0.637944f, -0.638239f, -0.638534f, -0.638829f,
+ -0.639124f, -0.639419f, -0.639714f, -0.640009f, -0.640303f, -0.640598f, -0.640892f, -0.641187f,
+ -0.641481f, -0.641775f, -0.642069f, -0.642363f, -0.642657f, -0.642951f, -0.643245f, -0.643538f,
+ -0.643832f, -0.644125f, -0.644418f, -0.644711f, -0.645005f, -0.645298f, -0.645590f, -0.645883f,
+ -0.646176f, -0.646469f, -0.646761f, -0.647054f, -0.647346f, -0.647638f, -0.647930f, -0.648222f,
+ -0.648514f, -0.648806f, -0.649098f, -0.649390f, -0.649681f, -0.649973f, -0.650264f, -0.650555f,
+ -0.650847f, -0.651138f, -0.651429f, -0.651720f, -0.652011f, -0.652301f, -0.652592f, -0.652882f,
+ -0.653173f, -0.653463f, -0.653753f, -0.654044f, -0.654334f, -0.654624f, -0.654913f, -0.655203f,
+ -0.655493f, -0.655782f, -0.656072f, -0.656361f, -0.656651f, -0.656940f, -0.657229f, -0.657518f,
+ -0.657807f, -0.658095f, -0.658384f, -0.658673f, -0.658961f, -0.659250f, -0.659538f, -0.659826f,
+ -0.660114f, -0.660402f, -0.660690f, -0.660978f, -0.661266f, -0.661553f, -0.661841f, -0.662128f,
+ -0.662416f, -0.662703f, -0.662990f, -0.663277f, -0.663564f, -0.663851f, -0.664138f, -0.664424f,
+ -0.664711f, -0.664997f, -0.665284f, -0.665570f, -0.665856f, -0.666142f, -0.666428f, -0.666714f,
+ -0.667000f, -0.667286f, -0.667571f, -0.667857f, -0.668142f, -0.668427f, -0.668712f, -0.668998f,
+ -0.669283f, -0.669567f, -0.669852f, -0.670137f, -0.670422f, -0.670706f, -0.670990f, -0.671275f,
+ -0.671559f, -0.671843f, -0.672127f, -0.672411f, -0.672695f, -0.672978f, -0.673262f, -0.673546f,
+ -0.673829f, -0.674112f, -0.674396f, -0.674679f, -0.674962f, -0.675245f, -0.675527f, -0.675810f,
+ -0.676093f, -0.676375f, -0.676658f, -0.676940f, -0.677222f, -0.677504f, -0.677786f, -0.678068f,
+ -0.678350f, -0.678632f, -0.678913f, -0.679195f, -0.679476f, -0.679758f, -0.680039f, -0.680320f,
+ -0.680601f, -0.680882f, -0.681163f, -0.681443f, -0.681724f, -0.682005f, -0.682285f, -0.682565f,
+ -0.682846f, -0.683126f, -0.683406f, -0.683686f, -0.683965f, -0.684245f, -0.684525f, -0.684804f,
+ -0.685084f, -0.685363f, -0.685642f, -0.685921f, -0.686200f, -0.686479f, -0.686758f, -0.687037f,
+ -0.687315f, -0.687594f, -0.687872f, -0.688151f, -0.688429f, -0.688707f, -0.688985f, -0.689263f,
+ -0.689541f, -0.689818f, -0.690096f, -0.690373f, -0.690651f, -0.690928f, -0.691205f, -0.691482f,
+ -0.691759f, -0.692036f, -0.692313f, -0.692590f, -0.692866f, -0.693143f, -0.693419f, -0.693695f,
+ -0.693971f, -0.694248f, -0.694524f, -0.694799f, -0.695075f, -0.695351f, -0.695626f, -0.695902f,
+ -0.696177f, -0.696452f, -0.696728f, -0.697003f, -0.697277f, -0.697552f, -0.697827f, -0.698102f,
+ -0.698376f, -0.698651f, -0.698925f, -0.699199f, -0.699473f, -0.699747f, -0.700021f, -0.700295f,
+ -0.700569f, -0.700842f, -0.701116f, -0.701389f, -0.701663f, -0.701936f, -0.702209f, -0.702482f,
+ -0.702755f, -0.703028f, -0.703300f, -0.703573f, -0.703845f, -0.704118f, -0.704390f, -0.704662f,
+ -0.704934f, -0.705206f, -0.705478f, -0.705750f, -0.706021f, -0.706293f, -0.706564f, -0.706836f,
+ -0.707107f, -0.707378f, -0.707649f, -0.707920f, -0.708191f, -0.708461f, -0.708732f, -0.709002f,
+ -0.709273f, -0.709543f, -0.709813f, -0.710083f, -0.710353f, -0.710623f, -0.710893f, -0.711163f,
+ -0.711432f, -0.711702f, -0.711971f, -0.712240f, -0.712509f, -0.712778f, -0.713047f, -0.713316f,
+ -0.713585f, -0.713853f, -0.714122f, -0.714390f, -0.714659f, -0.714927f, -0.715195f, -0.715463f,
+ -0.715731f, -0.715999f, -0.716266f, -0.716534f, -0.716801f, -0.717069f, -0.717336f, -0.717603f,
+ -0.717870f, -0.718137f, -0.718404f, -0.718670f, -0.718937f, -0.719204f, -0.719470f, -0.719736f,
+ -0.720003f, -0.720269f, -0.720535f, -0.720800f, -0.721066f, -0.721332f, -0.721597f, -0.721863f,
+ -0.722128f, -0.722393f, -0.722659f, -0.722924f, -0.723188f, -0.723453f, -0.723718f, -0.723983f,
+ -0.724247f, -0.724511f, -0.724776f, -0.725040f, -0.725304f, -0.725568f, -0.725832f, -0.726095f,
+ -0.726359f, -0.726623f, -0.726886f, -0.727149f, -0.727413f, -0.727676f, -0.727939f, -0.728202f,
+ -0.728464f, -0.728727f, -0.728990f, -0.729252f, -0.729514f, -0.729777f, -0.730039f, -0.730301f,
+ -0.730563f, -0.730825f, -0.731086f, -0.731348f, -0.731609f, -0.731871f, -0.732132f, -0.732393f,
+ -0.732654f, -0.732915f, -0.733176f, -0.733437f, -0.733697f, -0.733958f, -0.734218f, -0.734479f,
+ -0.734739f, -0.734999f, -0.735259f, -0.735519f, -0.735779f, -0.736038f, -0.736298f, -0.736557f,
+ -0.736817f, -0.737076f, -0.737335f, -0.737594f, -0.737853f, -0.738112f, -0.738370f, -0.738629f,
+ -0.738887f, -0.739146f, -0.739404f, -0.739662f, -0.739920f, -0.740178f, -0.740436f, -0.740694f,
+ -0.740951f, -0.741209f, -0.741466f, -0.741723f, -0.741980f, -0.742237f, -0.742494f, -0.742751f,
+ -0.743008f, -0.743265f, -0.743521f, -0.743777f, -0.744034f, -0.744290f, -0.744546f, -0.744802f,
+ -0.745058f, -0.745314f, -0.745569f, -0.745825f, -0.746080f, -0.746335f, -0.746591f, -0.746846f,
+ -0.747101f, -0.747355f, -0.747610f, -0.747865f, -0.748119f, -0.748374f, -0.748628f, -0.748882f,
+ -0.749136f, -0.749390f, -0.749644f, -0.749898f, -0.750152f, -0.750405f, -0.750659f, -0.750912f,
+ -0.751165f, -0.751418f, -0.751671f, -0.751924f, -0.752177f, -0.752429f, -0.752682f, -0.752934f,
+ -0.753187f, -0.753439f, -0.753691f, -0.753943f, -0.754195f, -0.754447f, -0.754698f, -0.754950f,
+ -0.755201f, -0.755453f, -0.755704f, -0.755955f, -0.756206f, -0.756457f, -0.756708f, -0.756958f,
+ -0.757209f, -0.757459f, -0.757710f, -0.757960f, -0.758210f, -0.758460f, -0.758710f, -0.758960f,
+ -0.759209f, -0.759459f, -0.759708f, -0.759957f, -0.760207f, -0.760456f, -0.760705f, -0.760954f,
+ -0.761202f, -0.761451f, -0.761700f, -0.761948f, -0.762196f, -0.762444f, -0.762693f, -0.762941f,
+ -0.763188f, -0.763436f, -0.763684f, -0.763931f, -0.764179f, -0.764426f, -0.764673f, -0.764920f,
+ -0.765167f, -0.765414f, -0.765661f, -0.765907f, -0.766154f, -0.766400f, -0.766647f, -0.766893f,
+ -0.767139f, -0.767385f, -0.767631f, -0.767876f, -0.768122f, -0.768368f, -0.768613f, -0.768858f,
+ -0.769103f, -0.769348f, -0.769593f, -0.769838f, -0.770083f, -0.770327f, -0.770572f, -0.770816f,
+ -0.771061f, -0.771305f, -0.771549f, -0.771793f, -0.772036f, -0.772280f, -0.772524f, -0.772767f,
+ -0.773010f, -0.773254f, -0.773497f, -0.773740f, -0.773983f, -0.774225f, -0.774468f, -0.774711f,
+ -0.774953f, -0.775195f, -0.775438f, -0.775680f, -0.775922f, -0.776164f, -0.776405f, -0.776647f,
+ -0.776888f, -0.777130f, -0.777371f, -0.777612f, -0.777853f, -0.778094f, -0.778335f, -0.778576f,
+ -0.778817f, -0.779057f, -0.779297f, -0.779538f, -0.779778f, -0.780018f, -0.780258f, -0.780498f,
+ -0.780737f, -0.780977f, -0.781216f, -0.781456f, -0.781695f, -0.781934f, -0.782173f, -0.782412f,
+ -0.782651f, -0.782889f, -0.783128f, -0.783366f, -0.783605f, -0.783843f, -0.784081f, -0.784319f,
+ -0.784557f, -0.784794f, -0.785032f, -0.785269f, -0.785507f, -0.785744f, -0.785981f, -0.786218f,
+ -0.786455f, -0.786692f, -0.786929f, -0.787165f, -0.787402f, -0.787638f, -0.787874f, -0.788110f,
+ -0.788346f, -0.788582f, -0.788818f, -0.789054f, -0.789289f, -0.789525f, -0.789760f, -0.789995f,
+ -0.790230f, -0.790465f, -0.790700f, -0.790935f, -0.791169f, -0.791404f, -0.791638f, -0.791872f,
+ -0.792107f, -0.792341f, -0.792575f, -0.792808f, -0.793042f, -0.793276f, -0.793509f, -0.793742f,
+ -0.793975f, -0.794209f, -0.794442f, -0.794674f, -0.794907f, -0.795140f, -0.795372f, -0.795605f,
+ -0.795837f, -0.796069f, -0.796301f, -0.796533f, -0.796765f, -0.796996f, -0.797228f, -0.797459f,
+ -0.797691f, -0.797922f, -0.798153f, -0.798384f, -0.798615f, -0.798846f, -0.799076f, -0.799307f,
+ -0.799537f, -0.799768f, -0.799998f, -0.800228f, -0.800458f, -0.800687f, -0.800917f, -0.801147f,
+ -0.801376f, -0.801606f, -0.801835f, -0.802064f, -0.802293f, -0.802522f, -0.802750f, -0.802979f,
+ -0.803208f, -0.803436f, -0.803664f, -0.803892f, -0.804120f, -0.804348f, -0.804576f, -0.804804f,
+ -0.805031f, -0.805259f, -0.805486f, -0.805713f, -0.805940f, -0.806167f, -0.806394f, -0.806621f,
+ -0.806848f, -0.807074f, -0.807300f, -0.807527f, -0.807753f, -0.807979f, -0.808205f, -0.808430f,
+ -0.808656f, -0.808882f, -0.809107f, -0.809332f, -0.809558f, -0.809783f, -0.810008f, -0.810232f,
+ -0.810457f, -0.810682f, -0.810906f, -0.811131f, -0.811355f, -0.811579f, -0.811803f, -0.812027f,
+ -0.812251f, -0.812474f, -0.812698f, -0.812921f, -0.813144f, -0.813368f, -0.813591f, -0.813814f,
+ -0.814036f, -0.814259f, -0.814482f, -0.814704f, -0.814926f, -0.815149f, -0.815371f, -0.815593f,
+ -0.815814f, -0.816036f, -0.816258f, -0.816479f, -0.816701f, -0.816922f, -0.817143f, -0.817364f,
+ -0.817585f, -0.817806f, -0.818026f, -0.818247f, -0.818467f, -0.818687f, -0.818908f, -0.819128f,
+ -0.819348f, -0.819567f, -0.819787f, -0.820007f, -0.820226f, -0.820445f, -0.820664f, -0.820884f,
+ -0.821102f, -0.821321f, -0.821540f, -0.821759f, -0.821977f, -0.822195f, -0.822414f, -0.822632f,
+ -0.822850f, -0.823068f, -0.823285f, -0.823503f, -0.823721f, -0.823938f, -0.824155f, -0.824372f,
+ -0.824589f, -0.824806f, -0.825023f, -0.825240f, -0.825456f, -0.825673f, -0.825889f, -0.826105f,
+ -0.826321f, -0.826537f, -0.826753f, -0.826968f, -0.827184f, -0.827399f, -0.827615f, -0.827830f,
+ -0.828045f, -0.828260f, -0.828475f, -0.828690f, -0.828904f, -0.829119f, -0.829333f, -0.829547f,
+ -0.829761f, -0.829975f, -0.830189f, -0.830403f, -0.830616f, -0.830830f, -0.831043f, -0.831257f,
+ -0.831470f, -0.831683f, -0.831895f, -0.832108f, -0.832321f, -0.832533f, -0.832746f, -0.832958f,
+ -0.833170f, -0.833382f, -0.833594f, -0.833806f, -0.834018f, -0.834229f, -0.834440f, -0.834652f,
+ -0.834863f, -0.835074f, -0.835285f, -0.835496f, -0.835706f, -0.835917f, -0.836127f, -0.836338f,
+ -0.836548f, -0.836758f, -0.836968f, -0.837178f, -0.837387f, -0.837597f, -0.837806f, -0.838015f,
+ -0.838225f, -0.838434f, -0.838643f, -0.838852f, -0.839060f, -0.839269f, -0.839477f, -0.839686f,
+ -0.839894f, -0.840102f, -0.840310f, -0.840518f, -0.840725f, -0.840933f, -0.841140f, -0.841348f,
+ -0.841555f, -0.841762f, -0.841969f, -0.842176f, -0.842383f, -0.842589f, -0.842796f, -0.843002f,
+ -0.843208f, -0.843414f, -0.843620f, -0.843826f, -0.844032f, -0.844238f, -0.844443f, -0.844648f,
+ -0.844854f, -0.845059f, -0.845264f, -0.845469f, -0.845673f, -0.845878f, -0.846082f, -0.846287f,
+ -0.846491f, -0.846695f, -0.846899f, -0.847103f, -0.847307f, -0.847510f, -0.847714f, -0.847917f,
+ -0.848120f, -0.848323f, -0.848526f, -0.848729f, -0.848932f, -0.849135f, -0.849337f, -0.849540f,
+ -0.849742f, -0.849944f, -0.850146f, -0.850348f, -0.850549f, -0.850751f, -0.850953f, -0.851154f,
+ -0.851355f, -0.851556f, -0.851757f, -0.851958f, -0.852159f, -0.852360f, -0.852560f, -0.852760f,
+ -0.852961f, -0.853161f, -0.853361f, -0.853561f, -0.853760f, -0.853960f, -0.854159f, -0.854359f,
+ -0.854558f, -0.854757f, -0.854956f, -0.855155f, -0.855354f, -0.855552f, -0.855751f, -0.855949f,
+ -0.856147f, -0.856345f, -0.856543f, -0.856741f, -0.856939f, -0.857137f, -0.857334f, -0.857531f,
+ -0.857729f, -0.857926f, -0.858123f, -0.858320f, -0.858516f, -0.858713f, -0.858909f, -0.859106f,
+ -0.859302f, -0.859498f, -0.859694f, -0.859890f, -0.860085f, -0.860281f, -0.860476f, -0.860672f,
+ -0.860867f, -0.861062f, -0.861257f, -0.861452f, -0.861646f, -0.861841f, -0.862035f, -0.862230f,
+ -0.862424f, -0.862618f, -0.862812f, -0.863006f, -0.863199f, -0.863393f, -0.863586f, -0.863780f,
+ -0.863973f, -0.864166f, -0.864359f, -0.864552f, -0.864744f, -0.864937f, -0.865129f, -0.865321f,
+ -0.865514f, -0.865706f, -0.865898f, -0.866089f, -0.866281f, -0.866472f, -0.866664f, -0.866855f,
+ -0.867046f, -0.867237f, -0.867428f, -0.867619f, -0.867809f, -0.868000f, -0.868190f, -0.868381f,
+ -0.868571f, -0.868761f, -0.868951f, -0.869140f, -0.869330f, -0.869519f, -0.869709f, -0.869898f,
+ -0.870087f, -0.870276f, -0.870465f, -0.870654f, -0.870842f, -0.871031f, -0.871219f, -0.871407f,
+ -0.871595f, -0.871783f, -0.871971f, -0.872159f, -0.872346f, -0.872534f, -0.872721f, -0.872908f,
+ -0.873095f, -0.873282f, -0.873469f, -0.873655f, -0.873842f, -0.874028f, -0.874215f, -0.874401f,
+ -0.874587f, -0.874773f, -0.874958f, -0.875144f, -0.875329f, -0.875515f, -0.875700f, -0.875885f,
+ -0.876070f, -0.876255f, -0.876440f, -0.876624f, -0.876809f, -0.876993f, -0.877177f, -0.877361f,
+ -0.877545f, -0.877729f, -0.877913f, -0.878096f, -0.878280f, -0.878463f, -0.878646f, -0.878829f,
+ -0.879012f, -0.879195f, -0.879378f, -0.879560f, -0.879743f, -0.879925f, -0.880107f, -0.880289f,
+ -0.880471f, -0.880653f, -0.880834f, -0.881016f, -0.881197f, -0.881378f, -0.881559f, -0.881740f,
+ -0.881921f, -0.882102f, -0.882283f, -0.882463f, -0.882643f, -0.882824f, -0.883004f, -0.883184f,
+ -0.883363f, -0.883543f, -0.883723f, -0.883902f, -0.884081f, -0.884260f, -0.884439f, -0.884618f,
+ -0.884797f, -0.884976f, -0.885154f, -0.885333f, -0.885511f, -0.885689f, -0.885867f, -0.886045f,
+ -0.886223f, -0.886400f, -0.886578f, -0.886755f, -0.886932f, -0.887109f, -0.887286f, -0.887463f,
+ -0.887640f, -0.887816f, -0.887993f, -0.888169f, -0.888345f, -0.888521f, -0.888697f, -0.888873f,
+ -0.889048f, -0.889224f, -0.889399f, -0.889574f, -0.889750f, -0.889925f, -0.890099f, -0.890274f,
+ -0.890449f, -0.890623f, -0.890797f, -0.890972f, -0.891146f, -0.891320f, -0.891493f, -0.891667f,
+ -0.891841f, -0.892014f, -0.892187f, -0.892361f, -0.892534f, -0.892706f, -0.892879f, -0.893052f,
+ -0.893224f, -0.893397f, -0.893569f, -0.893741f, -0.893913f, -0.894085f, -0.894256f, -0.894428f,
+ -0.894599f, -0.894771f, -0.894942f, -0.895113f, -0.895284f, -0.895455f, -0.895625f, -0.895796f,
+ -0.895966f, -0.896137f, -0.896307f, -0.896477f, -0.896646f, -0.896816f, -0.896986f, -0.897155f,
+ -0.897325f, -0.897494f, -0.897663f, -0.897832f, -0.898001f, -0.898169f, -0.898338f, -0.898506f,
+ -0.898674f, -0.898843f, -0.899011f, -0.899179f, -0.899346f, -0.899514f, -0.899681f, -0.899849f,
+ -0.900016f, -0.900183f, -0.900350f, -0.900517f, -0.900683f, -0.900850f, -0.901016f, -0.901183f,
+ -0.901349f, -0.901515f, -0.901681f, -0.901847f, -0.902012f, -0.902178f, -0.902343f, -0.902508f,
+ -0.902673f, -0.902838f, -0.903003f, -0.903168f, -0.903332f, -0.903497f, -0.903661f, -0.903825f,
+ -0.903989f, -0.904153f, -0.904317f, -0.904481f, -0.904644f, -0.904807f, -0.904971f, -0.905134f,
+ -0.905297f, -0.905460f, -0.905622f, -0.905785f, -0.905947f, -0.906110f, -0.906272f, -0.906434f,
+ -0.906596f, -0.906757f, -0.906919f, -0.907081f, -0.907242f, -0.907403f, -0.907564f, -0.907725f,
+ -0.907886f, -0.908047f, -0.908207f, -0.908368f, -0.908528f, -0.908688f, -0.908848f, -0.909008f,
+ -0.909168f, -0.909328f, -0.909487f, -0.909646f, -0.909806f, -0.909965f, -0.910124f, -0.910283f,
+ -0.910441f, -0.910600f, -0.910758f, -0.910917f, -0.911075f, -0.911233f, -0.911391f, -0.911548f,
+ -0.911706f, -0.911864f, -0.912021f, -0.912178f, -0.912335f, -0.912492f, -0.912649f, -0.912806f,
+ -0.912962f, -0.913119f, -0.913275f, -0.913431f, -0.913587f, -0.913743f, -0.913899f, -0.914054f,
+ -0.914210f, -0.914365f, -0.914520f, -0.914675f, -0.914830f, -0.914985f, -0.915140f, -0.915294f,
+ -0.915449f, -0.915603f, -0.915757f, -0.915911f, -0.916065f, -0.916219f, -0.916372f, -0.916526f,
+ -0.916679f, -0.916832f, -0.916985f, -0.917138f, -0.917291f, -0.917444f, -0.917596f, -0.917749f,
+ -0.917901f, -0.918053f, -0.918205f, -0.918357f, -0.918508f, -0.918660f, -0.918811f, -0.918963f,
+ -0.919114f, -0.919265f, -0.919416f, -0.919567f, -0.919717f, -0.919868f, -0.920018f, -0.920168f,
+ -0.920318f, -0.920468f, -0.920618f, -0.920768f, -0.920917f, -0.921067f, -0.921216f, -0.921365f,
+ -0.921514f, -0.921663f, -0.921812f, -0.921960f, -0.922109f, -0.922257f, -0.922405f, -0.922553f,
+ -0.922701f, -0.922849f, -0.922997f, -0.923144f, -0.923291f, -0.923439f, -0.923586f, -0.923733f,
+ -0.923880f, -0.924026f, -0.924173f, -0.924319f, -0.924465f, -0.924612f, -0.924758f, -0.924904f,
+ -0.925049f, -0.925195f, -0.925340f, -0.925486f, -0.925631f, -0.925776f, -0.925921f, -0.926066f,
+ -0.926210f, -0.926355f, -0.926499f, -0.926643f, -0.926787f, -0.926931f, -0.927075f, -0.927219f,
+ -0.927363f, -0.927506f, -0.927649f, -0.927792f, -0.927935f, -0.928078f, -0.928221f, -0.928364f,
+ -0.928506f, -0.928648f, -0.928791f, -0.928933f, -0.929075f, -0.929216f, -0.929358f, -0.929500f,
+ -0.929641f, -0.929782f, -0.929923f, -0.930064f, -0.930205f, -0.930346f, -0.930486f, -0.930627f,
+ -0.930767f, -0.930907f, -0.931047f, -0.931187f, -0.931327f, -0.931466f, -0.931606f, -0.931745f,
+ -0.931884f, -0.932023f, -0.932162f, -0.932301f, -0.932440f, -0.932578f, -0.932716f, -0.932855f,
+ -0.932993f, -0.933131f, -0.933269f, -0.933406f, -0.933544f, -0.933681f, -0.933818f, -0.933956f,
+ -0.934093f, -0.934229f, -0.934366f, -0.934503f, -0.934639f, -0.934775f, -0.934912f, -0.935048f,
+ -0.935184f, -0.935319f, -0.935455f, -0.935590f, -0.935726f, -0.935861f, -0.935996f, -0.936131f,
+ -0.936266f, -0.936400f, -0.936535f, -0.936669f, -0.936803f, -0.936938f, -0.937072f, -0.937205f,
+ -0.937339f, -0.937473f, -0.937606f, -0.937739f, -0.937872f, -0.938005f, -0.938138f, -0.938271f,
+ -0.938404f, -0.938536f, -0.938668f, -0.938800f, -0.938932f, -0.939064f, -0.939196f, -0.939328f,
+ -0.939459f, -0.939591f, -0.939722f, -0.939853f, -0.939984f, -0.940115f, -0.940245f, -0.940376f,
+ -0.940506f, -0.940636f, -0.940766f, -0.940896f, -0.941026f, -0.941156f, -0.941285f, -0.941415f,
+ -0.941544f, -0.941673f, -0.941802f, -0.941931f, -0.942060f, -0.942188f, -0.942317f, -0.942445f,
+ -0.942573f, -0.942701f, -0.942829f, -0.942957f, -0.943084f, -0.943212f, -0.943339f, -0.943466f,
+ -0.943593f, -0.943720f, -0.943847f, -0.943974f, -0.944100f, -0.944227f, -0.944353f, -0.944479f,
+ -0.944605f, -0.944731f, -0.944856f, -0.944982f, -0.945107f, -0.945232f, -0.945358f, -0.945482f,
+ -0.945607f, -0.945732f, -0.945857f, -0.945981f, -0.946105f, -0.946229f, -0.946353f, -0.946477f,
+ -0.946601f, -0.946724f, -0.946848f, -0.946971f, -0.947094f, -0.947217f, -0.947340f, -0.947463f,
+ -0.947586f, -0.947708f, -0.947830f, -0.947953f, -0.948075f, -0.948196f, -0.948318f, -0.948440f,
+ -0.948561f, -0.948683f, -0.948804f, -0.948925f, -0.949046f, -0.949167f, -0.949287f, -0.949408f,
+ -0.949528f, -0.949648f, -0.949768f, -0.949888f, -0.950008f, -0.950128f, -0.950247f, -0.950367f,
+ -0.950486f, -0.950605f, -0.950724f, -0.950843f, -0.950962f, -0.951080f, -0.951199f, -0.951317f,
+ -0.951435f, -0.951553f, -0.951671f, -0.951789f, -0.951906f, -0.952024f, -0.952141f, -0.952258f,
+ -0.952375f, -0.952492f, -0.952609f, -0.952725f, -0.952842f, -0.952958f, -0.953074f, -0.953190f,
+ -0.953306f, -0.953422f, -0.953537f, -0.953653f, -0.953768f, -0.953883f, -0.953998f, -0.954113f,
+ -0.954228f, -0.954343f, -0.954457f, -0.954572f, -0.954686f, -0.954800f, -0.954914f, -0.955028f,
+ -0.955141f, -0.955255f, -0.955368f, -0.955481f, -0.955594f, -0.955707f, -0.955820f, -0.955933f,
+ -0.956045f, -0.956158f, -0.956270f, -0.956382f, -0.956494f, -0.956606f, -0.956717f, -0.956829f,
+ -0.956940f, -0.957052f, -0.957163f, -0.957274f, -0.957385f, -0.957495f, -0.957606f, -0.957716f,
+ -0.957826f, -0.957937f, -0.958046f, -0.958156f, -0.958266f, -0.958376f, -0.958485f, -0.958594f,
+ -0.958703f, -0.958812f, -0.958921f, -0.959030f, -0.959139f, -0.959247f, -0.959355f, -0.959463f,
+ -0.959572f, -0.959679f, -0.959787f, -0.959895f, -0.960002f, -0.960109f, -0.960217f, -0.960324f,
+ -0.960431f, -0.960537f, -0.960644f, -0.960750f, -0.960857f, -0.960963f, -0.961069f, -0.961175f,
+ -0.961280f, -0.961386f, -0.961492f, -0.961597f, -0.961702f, -0.961807f, -0.961912f, -0.962017f,
+ -0.962121f, -0.962226f, -0.962330f, -0.962434f, -0.962538f, -0.962642f, -0.962746f, -0.962850f,
+ -0.962953f, -0.963057f, -0.963160f, -0.963263f, -0.963366f, -0.963469f, -0.963571f, -0.963674f,
+ -0.963776f, -0.963878f, -0.963980f, -0.964082f, -0.964184f, -0.964286f, -0.964387f, -0.964489f,
+ -0.964590f, -0.964691f, -0.964792f, -0.964893f, -0.964993f, -0.965094f, -0.965194f, -0.965294f,
+ -0.965394f, -0.965494f, -0.965594f, -0.965694f, -0.965793f, -0.965893f, -0.965992f, -0.966091f,
+ -0.966190f, -0.966289f, -0.966387f, -0.966486f, -0.966584f, -0.966683f, -0.966781f, -0.966879f,
+ -0.966976f, -0.967074f, -0.967172f, -0.967269f, -0.967366f, -0.967463f, -0.967560f, -0.967657f,
+ -0.967754f, -0.967850f, -0.967947f, -0.968043f, -0.968139f, -0.968235f, -0.968331f, -0.968427f,
+ -0.968522f, -0.968617f, -0.968713f, -0.968808f, -0.968903f, -0.968998f, -0.969092f, -0.969187f,
+ -0.969281f, -0.969375f, -0.969470f, -0.969564f, -0.969657f, -0.969751f, -0.969845f, -0.969938f,
+ -0.970031f, -0.970124f, -0.970217f, -0.970310f, -0.970403f, -0.970495f, -0.970588f, -0.970680f,
+ -0.970772f, -0.970864f, -0.970956f, -0.971048f, -0.971139f, -0.971231f, -0.971322f, -0.971413f,
+ -0.971504f, -0.971595f, -0.971685f, -0.971776f, -0.971866f, -0.971957f, -0.972047f, -0.972137f,
+ -0.972227f, -0.972316f, -0.972406f, -0.972495f, -0.972584f, -0.972673f, -0.972762f, -0.972851f,
+ -0.972940f, -0.973028f, -0.973117f, -0.973205f, -0.973293f, -0.973381f, -0.973469f, -0.973557f,
+ -0.973644f, -0.973732f, -0.973819f, -0.973906f, -0.973993f, -0.974080f, -0.974166f, -0.974253f,
+ -0.974339f, -0.974426f, -0.974512f, -0.974598f, -0.974684f, -0.974769f, -0.974855f, -0.974940f,
+ -0.975025f, -0.975110f, -0.975195f, -0.975280f, -0.975365f, -0.975449f, -0.975534f, -0.975618f,
+ -0.975702f, -0.975786f, -0.975870f, -0.975954f, -0.976037f, -0.976120f, -0.976204f, -0.976287f,
+ -0.976370f, -0.976453f, -0.976535f, -0.976618f, -0.976700f, -0.976782f, -0.976864f, -0.976946f,
+ -0.977028f, -0.977110f, -0.977191f, -0.977273f, -0.977354f, -0.977435f, -0.977516f, -0.977597f,
+ -0.977677f, -0.977758f, -0.977838f, -0.977918f, -0.977998f, -0.978078f, -0.978158f, -0.978238f,
+ -0.978317f, -0.978397f, -0.978476f, -0.978555f, -0.978634f, -0.978713f, -0.978791f, -0.978870f,
+ -0.978948f, -0.979026f, -0.979104f, -0.979182f, -0.979260f, -0.979338f, -0.979415f, -0.979493f,
+ -0.979570f, -0.979647f, -0.979724f, -0.979800f, -0.979877f, -0.979954f, -0.980030f, -0.980106f,
+ -0.980182f, -0.980258f, -0.980334f, -0.980409f, -0.980485f, -0.980560f, -0.980635f, -0.980710f,
+ -0.980785f, -0.980860f, -0.980935f, -0.981009f, -0.981083f, -0.981158f, -0.981232f, -0.981305f,
+ -0.981379f, -0.981453f, -0.981526f, -0.981600f, -0.981673f, -0.981746f, -0.981819f, -0.981891f,
+ -0.981964f, -0.982036f, -0.982109f, -0.982181f, -0.982253f, -0.982325f, -0.982396f, -0.982468f,
+ -0.982539f, -0.982611f, -0.982682f, -0.982753f, -0.982824f, -0.982894f, -0.982965f, -0.983035f,
+ -0.983105f, -0.983176f, -0.983246f, -0.983315f, -0.983385f, -0.983455f, -0.983524f, -0.983593f,
+ -0.983662f, -0.983731f, -0.983800f, -0.983869f, -0.983937f, -0.984006f, -0.984074f, -0.984142f,
+ -0.984210f, -0.984278f, -0.984346f, -0.984413f, -0.984480f, -0.984548f, -0.984615f, -0.984682f,
+ -0.984748f, -0.984815f, -0.984882f, -0.984948f, -0.985014f, -0.985080f, -0.985146f, -0.985212f,
+ -0.985278f, -0.985343f, -0.985408f, -0.985474f, -0.985539f, -0.985604f, -0.985668f, -0.985733f,
+ -0.985798f, -0.985862f, -0.985926f, -0.985990f, -0.986054f, -0.986118f, -0.986181f, -0.986245f,
+ -0.986308f, -0.986371f, -0.986434f, -0.986497f, -0.986560f, -0.986623f, -0.986685f, -0.986747f,
+ -0.986809f, -0.986871f, -0.986933f, -0.986995f, -0.987057f, -0.987118f, -0.987179f, -0.987240f,
+ -0.987301f, -0.987362f, -0.987423f, -0.987484f, -0.987544f, -0.987604f, -0.987664f, -0.987724f,
+ -0.987784f, -0.987844f, -0.987903f, -0.987963f, -0.988022f, -0.988081f, -0.988140f, -0.988199f,
+ -0.988258f, -0.988316f, -0.988374f, -0.988433f, -0.988491f, -0.988549f, -0.988607f, -0.988664f,
+ -0.988722f, -0.988779f, -0.988836f, -0.988893f, -0.988950f, -0.989007f, -0.989064f, -0.989120f,
+ -0.989177f, -0.989233f, -0.989289f, -0.989345f, -0.989400f, -0.989456f, -0.989511f, -0.989567f,
+ -0.989622f, -0.989677f, -0.989732f, -0.989787f, -0.989841f, -0.989896f, -0.989950f, -0.990004f,
+ -0.990058f, -0.990112f, -0.990166f, -0.990219f, -0.990273f, -0.990326f, -0.990379f, -0.990432f,
+ -0.990485f, -0.990538f, -0.990590f, -0.990643f, -0.990695f, -0.990747f, -0.990799f, -0.990851f,
+ -0.990903f, -0.990954f, -0.991006f, -0.991057f, -0.991108f, -0.991159f, -0.991210f, -0.991260f,
+ -0.991311f, -0.991361f, -0.991411f, -0.991462f, -0.991511f, -0.991561f, -0.991611f, -0.991660f,
+ -0.991710f, -0.991759f, -0.991808f, -0.991857f, -0.991906f, -0.991954f, -0.992003f, -0.992051f,
+ -0.992099f, -0.992147f, -0.992195f, -0.992243f, -0.992291f, -0.992338f, -0.992385f, -0.992433f,
+ -0.992480f, -0.992526f, -0.992573f, -0.992620f, -0.992666f, -0.992712f, -0.992759f, -0.992805f,
+ -0.992850f, -0.992896f, -0.992942f, -0.992987f, -0.993032f, -0.993077f, -0.993122f, -0.993167f,
+ -0.993212f, -0.993257f, -0.993301f, -0.993345f, -0.993389f, -0.993433f, -0.993477f, -0.993521f,
+ -0.993564f, -0.993608f, -0.993651f, -0.993694f, -0.993737f, -0.993779f, -0.993822f, -0.993865f,
+ -0.993907f, -0.993949f, -0.993991f, -0.994033f, -0.994075f, -0.994116f, -0.994158f, -0.994199f,
+ -0.994240f, -0.994281f, -0.994322f, -0.994363f, -0.994404f, -0.994444f, -0.994484f, -0.994525f,
+ -0.994565f, -0.994604f, -0.994644f, -0.994684f, -0.994723f, -0.994762f, -0.994802f, -0.994841f,
+ -0.994879f, -0.994918f, -0.994957f, -0.994995f, -0.995033f, -0.995071f, -0.995109f, -0.995147f,
+ -0.995185f, -0.995222f, -0.995260f, -0.995297f, -0.995334f, -0.995371f, -0.995408f, -0.995444f,
+ -0.995481f, -0.995517f, -0.995553f, -0.995589f, -0.995625f, -0.995661f, -0.995697f, -0.995732f,
+ -0.995767f, -0.995803f, -0.995838f, -0.995872f, -0.995907f, -0.995942f, -0.995976f, -0.996011f,
+ -0.996045f, -0.996079f, -0.996113f, -0.996146f, -0.996180f, -0.996213f, -0.996247f, -0.996280f,
+ -0.996313f, -0.996345f, -0.996378f, -0.996411f, -0.996443f, -0.996475f, -0.996507f, -0.996539f,
+ -0.996571f, -0.996603f, -0.996634f, -0.996666f, -0.996697f, -0.996728f, -0.996759f, -0.996790f,
+ -0.996820f, -0.996851f, -0.996881f, -0.996911f, -0.996941f, -0.996971f, -0.997001f, -0.997031f,
+ -0.997060f, -0.997089f, -0.997119f, -0.997148f, -0.997176f, -0.997205f, -0.997234f, -0.997262f,
+ -0.997290f, -0.997319f, -0.997347f, -0.997374f, -0.997402f, -0.997430f, -0.997457f, -0.997484f,
+ -0.997511f, -0.997538f, -0.997565f, -0.997592f, -0.997618f, -0.997645f, -0.997671f, -0.997697f,
+ -0.997723f, -0.997749f, -0.997774f, -0.997800f, -0.997825f, -0.997851f, -0.997876f, -0.997901f,
+ -0.997925f, -0.997950f, -0.997974f, -0.997999f, -0.998023f, -0.998047f, -0.998071f, -0.998094f,
+ -0.998118f, -0.998142f, -0.998165f, -0.998188f, -0.998211f, -0.998234f, -0.998257f, -0.998279f,
+ -0.998302f, -0.998324f, -0.998346f, -0.998368f, -0.998390f, -0.998411f, -0.998433f, -0.998454f,
+ -0.998476f, -0.998497f, -0.998518f, -0.998538f, -0.998559f, -0.998580f, -0.998600f, -0.998620f,
+ -0.998640f, -0.998660f, -0.998680f, -0.998700f, -0.998719f, -0.998738f, -0.998758f, -0.998777f,
+ -0.998795f, -0.998814f, -0.998833f, -0.998851f, -0.998870f, -0.998888f, -0.998906f, -0.998924f,
+ -0.998941f, -0.998959f, -0.998976f, -0.998994f, -0.999011f, -0.999028f, -0.999044f, -0.999061f,
+ -0.999078f, -0.999094f, -0.999110f, -0.999126f, -0.999142f, -0.999158f, -0.999174f, -0.999189f,
+ -0.999205f, -0.999220f, -0.999235f, -0.999250f, -0.999265f, -0.999279f, -0.999294f, -0.999308f,
+ -0.999322f, -0.999336f, -0.999350f, -0.999364f, -0.999378f, -0.999391f, -0.999404f, -0.999418f,
+ -0.999431f, -0.999443f, -0.999456f, -0.999469f, -0.999481f, -0.999493f, -0.999506f, -0.999518f,
+ -0.999529f, -0.999541f, -0.999553f, -0.999564f, -0.999575f, -0.999586f, -0.999597f, -0.999608f,
+ -0.999619f, -0.999629f, -0.999640f, -0.999650f, -0.999660f, -0.999670f, -0.999680f, -0.999689f,
+ -0.999699f, -0.999708f, -0.999717f, -0.999726f, -0.999735f, -0.999744f, -0.999753f, -0.999761f,
+ -0.999769f, -0.999778f, -0.999786f, -0.999793f, -0.999801f, -0.999809f, -0.999816f, -0.999823f,
+ -0.999831f, -0.999838f, -0.999844f, -0.999851f, -0.999858f, -0.999864f, -0.999870f, -0.999876f,
+ -0.999882f, -0.999888f, -0.999894f, -0.999899f, -0.999905f, -0.999910f, -0.999915f, -0.999920f,
+ -0.999925f, -0.999929f, -0.999934f, -0.999938f, -0.999942f, -0.999946f, -0.999950f, -0.999954f,
+ -0.999958f, -0.999961f, -0.999964f, -0.999968f, -0.999971f, -0.999973f, -0.999976f, -0.999979f,
+ -0.999981f, -0.999983f, -0.999986f, -0.999988f, -0.999989f, -0.999991f, -0.999993f, -0.999994f,
+ -0.999995f, -0.999996f, -0.999997f, -0.999998f, -0.999999f, -0.999999f, -1.000000f, -1.000000
+};
+
+static const float sinTable32768[16384] = {
+ 0.000000f, 0.000192f, 0.000383f, 0.000575f, 0.000767f, 0.000959f, 0.001150f, 0.001342f,
+ 0.001534f, 0.001726f, 0.001917f, 0.002109f, 0.002301f, 0.002493f, 0.002684f, 0.002876f,
+ 0.003068f, 0.003260f, 0.003451f, 0.003643f, 0.003835f, 0.004027f, 0.004218f, 0.004410f,
+ 0.004602f, 0.004794f, 0.004985f, 0.005177f, 0.005369f, 0.005561f, 0.005752f, 0.005944f,
+ 0.006136f, 0.006328f, 0.006519f, 0.006711f, 0.006903f, 0.007095f, 0.007286f, 0.007478f,
+ 0.007670f, 0.007862f, 0.008053f, 0.008245f, 0.008437f, 0.008629f, 0.008820f, 0.009012f,
+ 0.009204f, 0.009395f, 0.009587f, 0.009779f, 0.009971f, 0.010162f, 0.010354f, 0.010546f,
+ 0.010738f, 0.010929f, 0.011121f, 0.011313f, 0.011505f, 0.011696f, 0.011888f, 0.012080f,
+ 0.012272f, 0.012463f, 0.012655f, 0.012847f, 0.013038f, 0.013230f, 0.013422f, 0.013614f,
+ 0.013805f, 0.013997f, 0.014189f, 0.014381f, 0.014572f, 0.014764f, 0.014956f, 0.015147f,
+ 0.015339f, 0.015531f, 0.015723f, 0.015914f, 0.016106f, 0.016298f, 0.016490f, 0.016681f,
+ 0.016873f, 0.017065f, 0.017256f, 0.017448f, 0.017640f, 0.017832f, 0.018023f, 0.018215f,
+ 0.018407f, 0.018598f, 0.018790f, 0.018982f, 0.019174f, 0.019365f, 0.019557f, 0.019749f,
+ 0.019940f, 0.020132f, 0.020324f, 0.020516f, 0.020707f, 0.020899f, 0.021091f, 0.021282f,
+ 0.021474f, 0.021666f, 0.021857f, 0.022049f, 0.022241f, 0.022433f, 0.022624f, 0.022816f,
+ 0.023008f, 0.023199f, 0.023391f, 0.023583f, 0.023774f, 0.023966f, 0.024158f, 0.024350f,
+ 0.024541f, 0.024733f, 0.024925f, 0.025116f, 0.025308f, 0.025500f, 0.025691f, 0.025883f,
+ 0.026075f, 0.026266f, 0.026458f, 0.026650f, 0.026841f, 0.027033f, 0.027225f, 0.027416f,
+ 0.027608f, 0.027800f, 0.027991f, 0.028183f, 0.028375f, 0.028567f, 0.028758f, 0.028950f,
+ 0.029142f, 0.029333f, 0.029525f, 0.029717f, 0.029908f, 0.030100f, 0.030291f, 0.030483f,
+ 0.030675f, 0.030866f, 0.031058f, 0.031250f, 0.031441f, 0.031633f, 0.031825f, 0.032016f,
+ 0.032208f, 0.032400f, 0.032591f, 0.032783f, 0.032975f, 0.033166f, 0.033358f, 0.033550f,
+ 0.033741f, 0.033933f, 0.034124f, 0.034316f, 0.034508f, 0.034699f, 0.034891f, 0.035083f,
+ 0.035274f, 0.035466f, 0.035657f, 0.035849f, 0.036041f, 0.036232f, 0.036424f, 0.036616f,
+ 0.036807f, 0.036999f, 0.037190f, 0.037382f, 0.037574f, 0.037765f, 0.037957f, 0.038149f,
+ 0.038340f, 0.038532f, 0.038723f, 0.038915f, 0.039107f, 0.039298f, 0.039490f, 0.039681f,
+ 0.039873f, 0.040065f, 0.040256f, 0.040448f, 0.040639f, 0.040831f, 0.041022f, 0.041214f,
+ 0.041406f, 0.041597f, 0.041789f, 0.041980f, 0.042172f, 0.042364f, 0.042555f, 0.042747f,
+ 0.042938f, 0.043130f, 0.043321f, 0.043513f, 0.043705f, 0.043896f, 0.044088f, 0.044279f,
+ 0.044471f, 0.044662f, 0.044854f, 0.045045f, 0.045237f, 0.045429f, 0.045620f, 0.045812f,
+ 0.046003f, 0.046195f, 0.046386f, 0.046578f, 0.046769f, 0.046961f, 0.047152f, 0.047344f,
+ 0.047535f, 0.047727f, 0.047919f, 0.048110f, 0.048302f, 0.048493f, 0.048685f, 0.048876f,
+ 0.049068f, 0.049259f, 0.049451f, 0.049642f, 0.049834f, 0.050025f, 0.050217f, 0.050408f,
+ 0.050600f, 0.050791f, 0.050983f, 0.051174f, 0.051366f, 0.051557f, 0.051749f, 0.051940f,
+ 0.052132f, 0.052323f, 0.052515f, 0.052706f, 0.052898f, 0.053089f, 0.053281f, 0.053472f,
+ 0.053664f, 0.053855f, 0.054046f, 0.054238f, 0.054429f, 0.054621f, 0.054812f, 0.055004f,
+ 0.055195f, 0.055387f, 0.055578f, 0.055770f, 0.055961f, 0.056152f, 0.056344f, 0.056535f,
+ 0.056727f, 0.056918f, 0.057110f, 0.057301f, 0.057493f, 0.057684f, 0.057875f, 0.058067f,
+ 0.058258f, 0.058450f, 0.058641f, 0.058833f, 0.059024f, 0.059215f, 0.059407f, 0.059598f,
+ 0.059790f, 0.059981f, 0.060172f, 0.060364f, 0.060555f, 0.060747f, 0.060938f, 0.061129f,
+ 0.061321f, 0.061512f, 0.061704f, 0.061895f, 0.062086f, 0.062278f, 0.062469f, 0.062660f,
+ 0.062852f, 0.063043f, 0.063234f, 0.063426f, 0.063617f, 0.063809f, 0.064000f, 0.064191f,
+ 0.064383f, 0.064574f, 0.064765f, 0.064957f, 0.065148f, 0.065339f, 0.065531f, 0.065722f,
+ 0.065913f, 0.066105f, 0.066296f, 0.066487f, 0.066679f, 0.066870f, 0.067061f, 0.067253f,
+ 0.067444f, 0.067635f, 0.067827f, 0.068018f, 0.068209f, 0.068400f, 0.068592f, 0.068783f,
+ 0.068974f, 0.069166f, 0.069357f, 0.069548f, 0.069739f, 0.069931f, 0.070122f, 0.070313f,
+ 0.070505f, 0.070696f, 0.070887f, 0.071078f, 0.071270f, 0.071461f, 0.071652f, 0.071843f,
+ 0.072035f, 0.072226f, 0.072417f, 0.072608f, 0.072800f, 0.072991f, 0.073182f, 0.073373f,
+ 0.073565f, 0.073756f, 0.073947f, 0.074138f, 0.074329f, 0.074521f, 0.074712f, 0.074903f,
+ 0.075094f, 0.075286f, 0.075477f, 0.075668f, 0.075859f, 0.076050f, 0.076241f, 0.076433f,
+ 0.076624f, 0.076815f, 0.077006f, 0.077197f, 0.077389f, 0.077580f, 0.077771f, 0.077962f,
+ 0.078153f, 0.078344f, 0.078536f, 0.078727f, 0.078918f, 0.079109f, 0.079300f, 0.079491f,
+ 0.079682f, 0.079874f, 0.080065f, 0.080256f, 0.080447f, 0.080638f, 0.080829f, 0.081020f,
+ 0.081211f, 0.081403f, 0.081594f, 0.081785f, 0.081976f, 0.082167f, 0.082358f, 0.082549f,
+ 0.082740f, 0.082931f, 0.083122f, 0.083314f, 0.083505f, 0.083696f, 0.083887f, 0.084078f,
+ 0.084269f, 0.084460f, 0.084651f, 0.084842f, 0.085033f, 0.085224f, 0.085415f, 0.085606f,
+ 0.085797f, 0.085988f, 0.086179f, 0.086370f, 0.086561f, 0.086752f, 0.086943f, 0.087135f,
+ 0.087326f, 0.087517f, 0.087708f, 0.087899f, 0.088090f, 0.088281f, 0.088472f, 0.088663f,
+ 0.088854f, 0.089045f, 0.089236f, 0.089427f, 0.089617f, 0.089808f, 0.089999f, 0.090190f,
+ 0.090381f, 0.090572f, 0.090763f, 0.090954f, 0.091145f, 0.091336f, 0.091527f, 0.091718f,
+ 0.091909f, 0.092100f, 0.092291f, 0.092482f, 0.092673f, 0.092864f, 0.093055f, 0.093245f,
+ 0.093436f, 0.093627f, 0.093818f, 0.094009f, 0.094200f, 0.094391f, 0.094582f, 0.094773f,
+ 0.094963f, 0.095154f, 0.095345f, 0.095536f, 0.095727f, 0.095918f, 0.096109f, 0.096300f,
+ 0.096490f, 0.096681f, 0.096872f, 0.097063f, 0.097254f, 0.097445f, 0.097635f, 0.097826f,
+ 0.098017f, 0.098208f, 0.098399f, 0.098590f, 0.098780f, 0.098971f, 0.099162f, 0.099353f,
+ 0.099544f, 0.099734f, 0.099925f, 0.100116f, 0.100307f, 0.100498f, 0.100688f, 0.100879f,
+ 0.101070f, 0.101261f, 0.101451f, 0.101642f, 0.101833f, 0.102024f, 0.102214f, 0.102405f,
+ 0.102596f, 0.102787f, 0.102977f, 0.103168f, 0.103359f, 0.103550f, 0.103740f, 0.103931f,
+ 0.104122f, 0.104312f, 0.104503f, 0.104694f, 0.104884f, 0.105075f, 0.105266f, 0.105456f,
+ 0.105647f, 0.105838f, 0.106028f, 0.106219f, 0.106410f, 0.106600f, 0.106791f, 0.106982f,
+ 0.107172f, 0.107363f, 0.107554f, 0.107744f, 0.107935f, 0.108126f, 0.108316f, 0.108507f,
+ 0.108697f, 0.108888f, 0.109079f, 0.109269f, 0.109460f, 0.109650f, 0.109841f, 0.110032f,
+ 0.110222f, 0.110413f, 0.110603f, 0.110794f, 0.110984f, 0.111175f, 0.111366f, 0.111556f,
+ 0.111747f, 0.111937f, 0.112128f, 0.112318f, 0.112509f, 0.112699f, 0.112890f, 0.113080f,
+ 0.113271f, 0.113461f, 0.113652f, 0.113842f, 0.114033f, 0.114223f, 0.114414f, 0.114604f,
+ 0.114795f, 0.114985f, 0.115176f, 0.115366f, 0.115557f, 0.115747f, 0.115938f, 0.116128f,
+ 0.116319f, 0.116509f, 0.116700f, 0.116890f, 0.117080f, 0.117271f, 0.117461f, 0.117652f,
+ 0.117842f, 0.118032f, 0.118223f, 0.118413f, 0.118604f, 0.118794f, 0.118984f, 0.119175f,
+ 0.119365f, 0.119556f, 0.119746f, 0.119936f, 0.120127f, 0.120317f, 0.120507f, 0.120698f,
+ 0.120888f, 0.121078f, 0.121269f, 0.121459f, 0.121649f, 0.121840f, 0.122030f, 0.122220f,
+ 0.122411f, 0.122601f, 0.122791f, 0.122982f, 0.123172f, 0.123362f, 0.123552f, 0.123743f,
+ 0.123933f, 0.124123f, 0.124314f, 0.124504f, 0.124694f, 0.124884f, 0.125075f, 0.125265f,
+ 0.125455f, 0.125645f, 0.125835f, 0.126026f, 0.126216f, 0.126406f, 0.126596f, 0.126787f,
+ 0.126977f, 0.127167f, 0.127357f, 0.127547f, 0.127737f, 0.127928f, 0.128118f, 0.128308f,
+ 0.128498f, 0.128688f, 0.128878f, 0.129069f, 0.129259f, 0.129449f, 0.129639f, 0.129829f,
+ 0.130019f, 0.130209f, 0.130399f, 0.130590f, 0.130780f, 0.130970f, 0.131160f, 0.131350f,
+ 0.131540f, 0.131730f, 0.131920f, 0.132110f, 0.132300f, 0.132490f, 0.132680f, 0.132870f,
+ 0.133061f, 0.133251f, 0.133441f, 0.133631f, 0.133821f, 0.134011f, 0.134201f, 0.134391f,
+ 0.134581f, 0.134771f, 0.134961f, 0.135151f, 0.135341f, 0.135531f, 0.135721f, 0.135911f,
+ 0.136101f, 0.136291f, 0.136480f, 0.136670f, 0.136860f, 0.137050f, 0.137240f, 0.137430f,
+ 0.137620f, 0.137810f, 0.138000f, 0.138190f, 0.138380f, 0.138570f, 0.138760f, 0.138949f,
+ 0.139139f, 0.139329f, 0.139519f, 0.139709f, 0.139899f, 0.140089f, 0.140279f, 0.140468f,
+ 0.140658f, 0.140848f, 0.141038f, 0.141228f, 0.141418f, 0.141607f, 0.141797f, 0.141987f,
+ 0.142177f, 0.142367f, 0.142556f, 0.142746f, 0.142936f, 0.143126f, 0.143316f, 0.143505f,
+ 0.143695f, 0.143885f, 0.144075f, 0.144264f, 0.144454f, 0.144644f, 0.144833f, 0.145023f,
+ 0.145213f, 0.145403f, 0.145592f, 0.145782f, 0.145972f, 0.146161f, 0.146351f, 0.146541f,
+ 0.146730f, 0.146920f, 0.147110f, 0.147299f, 0.147489f, 0.147679f, 0.147868f, 0.148058f,
+ 0.148248f, 0.148437f, 0.148627f, 0.148817f, 0.149006f, 0.149196f, 0.149385f, 0.149575f,
+ 0.149765f, 0.149954f, 0.150144f, 0.150333f, 0.150523f, 0.150712f, 0.150902f, 0.151092f,
+ 0.151281f, 0.151471f, 0.151660f, 0.151850f, 0.152039f, 0.152229f, 0.152418f, 0.152608f,
+ 0.152797f, 0.152987f, 0.153176f, 0.153366f, 0.153555f, 0.153745f, 0.153934f, 0.154124f,
+ 0.154313f, 0.154502f, 0.154692f, 0.154881f, 0.155071f, 0.155260f, 0.155450f, 0.155639f,
+ 0.155828f, 0.156018f, 0.156207f, 0.156397f, 0.156586f, 0.156775f, 0.156965f, 0.157154f,
+ 0.157343f, 0.157533f, 0.157722f, 0.157912f, 0.158101f, 0.158290f, 0.158480f, 0.158669f,
+ 0.158858f, 0.159047f, 0.159237f, 0.159426f, 0.159615f, 0.159805f, 0.159994f, 0.160183f,
+ 0.160372f, 0.160562f, 0.160751f, 0.160940f, 0.161129f, 0.161319f, 0.161508f, 0.161697f,
+ 0.161886f, 0.162076f, 0.162265f, 0.162454f, 0.162643f, 0.162832f, 0.163022f, 0.163211f,
+ 0.163400f, 0.163589f, 0.163778f, 0.163967f, 0.164157f, 0.164346f, 0.164535f, 0.164724f,
+ 0.164913f, 0.165102f, 0.165291f, 0.165480f, 0.165670f, 0.165859f, 0.166048f, 0.166237f,
+ 0.166426f, 0.166615f, 0.166804f, 0.166993f, 0.167182f, 0.167371f, 0.167560f, 0.167749f,
+ 0.167938f, 0.168127f, 0.168316f, 0.168505f, 0.168694f, 0.168883f, 0.169072f, 0.169261f,
+ 0.169450f, 0.169639f, 0.169828f, 0.170017f, 0.170206f, 0.170395f, 0.170584f, 0.170773f,
+ 0.170962f, 0.171151f, 0.171340f, 0.171529f, 0.171718f, 0.171906f, 0.172095f, 0.172284f,
+ 0.172473f, 0.172662f, 0.172851f, 0.173040f, 0.173229f, 0.173417f, 0.173606f, 0.173795f,
+ 0.173984f, 0.174173f, 0.174362f, 0.174550f, 0.174739f, 0.174928f, 0.175117f, 0.175305f,
+ 0.175494f, 0.175683f, 0.175872f, 0.176061f, 0.176249f, 0.176438f, 0.176627f, 0.176815f,
+ 0.177004f, 0.177193f, 0.177382f, 0.177570f, 0.177759f, 0.177948f, 0.178136f, 0.178325f,
+ 0.178514f, 0.178702f, 0.178891f, 0.179080f, 0.179268f, 0.179457f, 0.179646f, 0.179834f,
+ 0.180023f, 0.180212f, 0.180400f, 0.180589f, 0.180777f, 0.180966f, 0.181154f, 0.181343f,
+ 0.181532f, 0.181720f, 0.181909f, 0.182097f, 0.182286f, 0.182474f, 0.182663f, 0.182851f,
+ 0.183040f, 0.183228f, 0.183417f, 0.183605f, 0.183794f, 0.183982f, 0.184171f, 0.184359f,
+ 0.184548f, 0.184736f, 0.184925f, 0.185113f, 0.185301f, 0.185490f, 0.185678f, 0.185867f,
+ 0.186055f, 0.186244f, 0.186432f, 0.186620f, 0.186809f, 0.186997f, 0.187185f, 0.187374f,
+ 0.187562f, 0.187750f, 0.187939f, 0.188127f, 0.188315f, 0.188504f, 0.188692f, 0.188880f,
+ 0.189069f, 0.189257f, 0.189445f, 0.189634f, 0.189822f, 0.190010f, 0.190198f, 0.190387f,
+ 0.190575f, 0.190763f, 0.190951f, 0.191139f, 0.191328f, 0.191516f, 0.191704f, 0.191892f,
+ 0.192080f, 0.192269f, 0.192457f, 0.192645f, 0.192833f, 0.193021f, 0.193209f, 0.193397f,
+ 0.193586f, 0.193774f, 0.193962f, 0.194150f, 0.194338f, 0.194526f, 0.194714f, 0.194902f,
+ 0.195090f, 0.195278f, 0.195466f, 0.195654f, 0.195843f, 0.196031f, 0.196219f, 0.196407f,
+ 0.196595f, 0.196783f, 0.196971f, 0.197159f, 0.197347f, 0.197535f, 0.197722f, 0.197910f,
+ 0.198098f, 0.198286f, 0.198474f, 0.198662f, 0.198850f, 0.199038f, 0.199226f, 0.199414f,
+ 0.199602f, 0.199790f, 0.199978f, 0.200165f, 0.200353f, 0.200541f, 0.200729f, 0.200917f,
+ 0.201105f, 0.201292f, 0.201480f, 0.201668f, 0.201856f, 0.202044f, 0.202231f, 0.202419f,
+ 0.202607f, 0.202795f, 0.202983f, 0.203170f, 0.203358f, 0.203546f, 0.203734f, 0.203921f,
+ 0.204109f, 0.204297f, 0.204484f, 0.204672f, 0.204860f, 0.205047f, 0.205235f, 0.205423f,
+ 0.205610f, 0.205798f, 0.205986f, 0.206173f, 0.206361f, 0.206549f, 0.206736f, 0.206924f,
+ 0.207111f, 0.207299f, 0.207487f, 0.207674f, 0.207862f, 0.208049f, 0.208237f, 0.208424f,
+ 0.208612f, 0.208799f, 0.208987f, 0.209174f, 0.209362f, 0.209549f, 0.209737f, 0.209924f,
+ 0.210112f, 0.210299f, 0.210487f, 0.210674f, 0.210862f, 0.211049f, 0.211237f, 0.211424f,
+ 0.211611f, 0.211799f, 0.211986f, 0.212174f, 0.212361f, 0.212548f, 0.212736f, 0.212923f,
+ 0.213110f, 0.213298f, 0.213485f, 0.213672f, 0.213860f, 0.214047f, 0.214234f, 0.214422f,
+ 0.214609f, 0.214796f, 0.214983f, 0.215171f, 0.215358f, 0.215545f, 0.215732f, 0.215920f,
+ 0.216107f, 0.216294f, 0.216481f, 0.216668f, 0.216856f, 0.217043f, 0.217230f, 0.217417f,
+ 0.217604f, 0.217791f, 0.217979f, 0.218166f, 0.218353f, 0.218540f, 0.218727f, 0.218914f,
+ 0.219101f, 0.219288f, 0.219475f, 0.219662f, 0.219850f, 0.220037f, 0.220224f, 0.220411f,
+ 0.220598f, 0.220785f, 0.220972f, 0.221159f, 0.221346f, 0.221533f, 0.221720f, 0.221907f,
+ 0.222094f, 0.222281f, 0.222468f, 0.222654f, 0.222841f, 0.223028f, 0.223215f, 0.223402f,
+ 0.223589f, 0.223776f, 0.223963f, 0.224150f, 0.224337f, 0.224523f, 0.224710f, 0.224897f,
+ 0.225084f, 0.225271f, 0.225458f, 0.225644f, 0.225831f, 0.226018f, 0.226205f, 0.226391f,
+ 0.226578f, 0.226765f, 0.226952f, 0.227139f, 0.227325f, 0.227512f, 0.227699f, 0.227885f,
+ 0.228072f, 0.228259f, 0.228445f, 0.228632f, 0.228819f, 0.229005f, 0.229192f, 0.229379f,
+ 0.229565f, 0.229752f, 0.229939f, 0.230125f, 0.230312f, 0.230498f, 0.230685f, 0.230872f,
+ 0.231058f, 0.231245f, 0.231431f, 0.231618f, 0.231804f, 0.231991f, 0.232177f, 0.232364f,
+ 0.232550f, 0.232737f, 0.232923f, 0.233110f, 0.233296f, 0.233483f, 0.233669f, 0.233856f,
+ 0.234042f, 0.234228f, 0.234415f, 0.234601f, 0.234788f, 0.234974f, 0.235160f, 0.235347f,
+ 0.235533f, 0.235719f, 0.235906f, 0.236092f, 0.236278f, 0.236465f, 0.236651f, 0.236837f,
+ 0.237024f, 0.237210f, 0.237396f, 0.237582f, 0.237769f, 0.237955f, 0.238141f, 0.238327f,
+ 0.238514f, 0.238700f, 0.238886f, 0.239072f, 0.239258f, 0.239445f, 0.239631f, 0.239817f,
+ 0.240003f, 0.240189f, 0.240375f, 0.240561f, 0.240748f, 0.240934f, 0.241120f, 0.241306f,
+ 0.241492f, 0.241678f, 0.241864f, 0.242050f, 0.242236f, 0.242422f, 0.242608f, 0.242794f,
+ 0.242980f, 0.243166f, 0.243352f, 0.243538f, 0.243724f, 0.243910f, 0.244096f, 0.244282f,
+ 0.244468f, 0.244654f, 0.244840f, 0.245026f, 0.245212f, 0.245397f, 0.245583f, 0.245769f,
+ 0.245955f, 0.246141f, 0.246327f, 0.246513f, 0.246698f, 0.246884f, 0.247070f, 0.247256f,
+ 0.247442f, 0.247627f, 0.247813f, 0.247999f, 0.248185f, 0.248370f, 0.248556f, 0.248742f,
+ 0.248928f, 0.249113f, 0.249299f, 0.249485f, 0.249670f, 0.249856f, 0.250042f, 0.250227f,
+ 0.250413f, 0.250599f, 0.250784f, 0.250970f, 0.251155f, 0.251341f, 0.251527f, 0.251712f,
+ 0.251898f, 0.252083f, 0.252269f, 0.252454f, 0.252640f, 0.252826f, 0.253011f, 0.253197f,
+ 0.253382f, 0.253568f, 0.253753f, 0.253938f, 0.254124f, 0.254309f, 0.254495f, 0.254680f,
+ 0.254866f, 0.255051f, 0.255236f, 0.255422f, 0.255607f, 0.255793f, 0.255978f, 0.256163f,
+ 0.256349f, 0.256534f, 0.256719f, 0.256905f, 0.257090f, 0.257275f, 0.257461f, 0.257646f,
+ 0.257831f, 0.258016f, 0.258202f, 0.258387f, 0.258572f, 0.258757f, 0.258943f, 0.259128f,
+ 0.259313f, 0.259498f, 0.259683f, 0.259868f, 0.260054f, 0.260239f, 0.260424f, 0.260609f,
+ 0.260794f, 0.260979f, 0.261164f, 0.261349f, 0.261534f, 0.261720f, 0.261905f, 0.262090f,
+ 0.262275f, 0.262460f, 0.262645f, 0.262830f, 0.263015f, 0.263200f, 0.263385f, 0.263570f,
+ 0.263755f, 0.263940f, 0.264125f, 0.264309f, 0.264494f, 0.264679f, 0.264864f, 0.265049f,
+ 0.265234f, 0.265419f, 0.265604f, 0.265789f, 0.265973f, 0.266158f, 0.266343f, 0.266528f,
+ 0.266713f, 0.266898f, 0.267082f, 0.267267f, 0.267452f, 0.267637f, 0.267821f, 0.268006f,
+ 0.268191f, 0.268376f, 0.268560f, 0.268745f, 0.268930f, 0.269114f, 0.269299f, 0.269484f,
+ 0.269668f, 0.269853f, 0.270038f, 0.270222f, 0.270407f, 0.270591f, 0.270776f, 0.270961f,
+ 0.271145f, 0.271330f, 0.271514f, 0.271699f, 0.271883f, 0.272068f, 0.272252f, 0.272437f,
+ 0.272621f, 0.272806f, 0.272990f, 0.273175f, 0.273359f, 0.273544f, 0.273728f, 0.273912f,
+ 0.274097f, 0.274281f, 0.274466f, 0.274650f, 0.274834f, 0.275019f, 0.275203f, 0.275387f,
+ 0.275572f, 0.275756f, 0.275940f, 0.276125f, 0.276309f, 0.276493f, 0.276678f, 0.276862f,
+ 0.277046f, 0.277230f, 0.277415f, 0.277599f, 0.277783f, 0.277967f, 0.278151f, 0.278336f,
+ 0.278520f, 0.278704f, 0.278888f, 0.279072f, 0.279256f, 0.279440f, 0.279624f, 0.279809f,
+ 0.279993f, 0.280177f, 0.280361f, 0.280545f, 0.280729f, 0.280913f, 0.281097f, 0.281281f,
+ 0.281465f, 0.281649f, 0.281833f, 0.282017f, 0.282201f, 0.282385f, 0.282569f, 0.282753f,
+ 0.282937f, 0.283120f, 0.283304f, 0.283488f, 0.283672f, 0.283856f, 0.284040f, 0.284224f,
+ 0.284408f, 0.284591f, 0.284775f, 0.284959f, 0.285143f, 0.285327f, 0.285510f, 0.285694f,
+ 0.285878f, 0.286062f, 0.286245f, 0.286429f, 0.286613f, 0.286796f, 0.286980f, 0.287164f,
+ 0.287347f, 0.287531f, 0.287715f, 0.287898f, 0.288082f, 0.288266f, 0.288449f, 0.288633f,
+ 0.288816f, 0.289000f, 0.289184f, 0.289367f, 0.289551f, 0.289734f, 0.289918f, 0.290101f,
+ 0.290285f, 0.290468f, 0.290652f, 0.290835f, 0.291019f, 0.291202f, 0.291385f, 0.291569f,
+ 0.291752f, 0.291936f, 0.292119f, 0.292302f, 0.292486f, 0.292669f, 0.292852f, 0.293036f,
+ 0.293219f, 0.293402f, 0.293586f, 0.293769f, 0.293952f, 0.294136f, 0.294319f, 0.294502f,
+ 0.294685f, 0.294869f, 0.295052f, 0.295235f, 0.295418f, 0.295601f, 0.295785f, 0.295968f,
+ 0.296151f, 0.296334f, 0.296517f, 0.296700f, 0.296883f, 0.297066f, 0.297250f, 0.297433f,
+ 0.297616f, 0.297799f, 0.297982f, 0.298165f, 0.298348f, 0.298531f, 0.298714f, 0.298897f,
+ 0.299080f, 0.299263f, 0.299446f, 0.299629f, 0.299812f, 0.299995f, 0.300177f, 0.300360f,
+ 0.300543f, 0.300726f, 0.300909f, 0.301092f, 0.301275f, 0.301458f, 0.301640f, 0.301823f,
+ 0.302006f, 0.302189f, 0.302372f, 0.302554f, 0.302737f, 0.302920f, 0.303103f, 0.303285f,
+ 0.303468f, 0.303651f, 0.303833f, 0.304016f, 0.304199f, 0.304381f, 0.304564f, 0.304747f,
+ 0.304929f, 0.305112f, 0.305294f, 0.305477f, 0.305660f, 0.305842f, 0.306025f, 0.306207f,
+ 0.306390f, 0.306572f, 0.306755f, 0.306937f, 0.307120f, 0.307302f, 0.307485f, 0.307667f,
+ 0.307850f, 0.308032f, 0.308214f, 0.308397f, 0.308579f, 0.308762f, 0.308944f, 0.309126f,
+ 0.309309f, 0.309491f, 0.309673f, 0.309856f, 0.310038f, 0.310220f, 0.310403f, 0.310585f,
+ 0.310767f, 0.310949f, 0.311132f, 0.311314f, 0.311496f, 0.311678f, 0.311860f, 0.312043f,
+ 0.312225f, 0.312407f, 0.312589f, 0.312771f, 0.312953f, 0.313135f, 0.313318f, 0.313500f,
+ 0.313682f, 0.313864f, 0.314046f, 0.314228f, 0.314410f, 0.314592f, 0.314774f, 0.314956f,
+ 0.315138f, 0.315320f, 0.315502f, 0.315684f, 0.315866f, 0.316048f, 0.316230f, 0.316411f,
+ 0.316593f, 0.316775f, 0.316957f, 0.317139f, 0.317321f, 0.317503f, 0.317684f, 0.317866f,
+ 0.318048f, 0.318230f, 0.318412f, 0.318593f, 0.318775f, 0.318957f, 0.319139f, 0.319320f,
+ 0.319502f, 0.319684f, 0.319865f, 0.320047f, 0.320229f, 0.320410f, 0.320592f, 0.320774f,
+ 0.320955f, 0.321137f, 0.321318f, 0.321500f, 0.321682f, 0.321863f, 0.322045f, 0.322226f,
+ 0.322408f, 0.322589f, 0.322771f, 0.322952f, 0.323134f, 0.323315f, 0.323497f, 0.323678f,
+ 0.323859f, 0.324041f, 0.324222f, 0.324404f, 0.324585f, 0.324766f, 0.324948f, 0.325129f,
+ 0.325310f, 0.325492f, 0.325673f, 0.325854f, 0.326035f, 0.326217f, 0.326398f, 0.326579f,
+ 0.326760f, 0.326942f, 0.327123f, 0.327304f, 0.327485f, 0.327666f, 0.327848f, 0.328029f,
+ 0.328210f, 0.328391f, 0.328572f, 0.328753f, 0.328934f, 0.329115f, 0.329296f, 0.329477f,
+ 0.329658f, 0.329839f, 0.330020f, 0.330202f, 0.330382f, 0.330563f, 0.330744f, 0.330925f,
+ 0.331106f, 0.331287f, 0.331468f, 0.331649f, 0.331830f, 0.332011f, 0.332192f, 0.332373f,
+ 0.332553f, 0.332734f, 0.332915f, 0.333096f, 0.333277f, 0.333457f, 0.333638f, 0.333819f,
+ 0.334000f, 0.334180f, 0.334361f, 0.334542f, 0.334722f, 0.334903f, 0.335084f, 0.335265f,
+ 0.335445f, 0.335626f, 0.335806f, 0.335987f, 0.336168f, 0.336348f, 0.336529f, 0.336709f,
+ 0.336890f, 0.337070f, 0.337251f, 0.337431f, 0.337612f, 0.337792f, 0.337973f, 0.338153f,
+ 0.338334f, 0.338514f, 0.338695f, 0.338875f, 0.339055f, 0.339236f, 0.339416f, 0.339597f,
+ 0.339777f, 0.339957f, 0.340138f, 0.340318f, 0.340498f, 0.340678f, 0.340859f, 0.341039f,
+ 0.341219f, 0.341399f, 0.341580f, 0.341760f, 0.341940f, 0.342120f, 0.342300f, 0.342481f,
+ 0.342661f, 0.342841f, 0.343021f, 0.343201f, 0.343381f, 0.343561f, 0.343741f, 0.343921f,
+ 0.344101f, 0.344281f, 0.344461f, 0.344641f, 0.344821f, 0.345001f, 0.345181f, 0.345361f,
+ 0.345541f, 0.345721f, 0.345901f, 0.346081f, 0.346261f, 0.346441f, 0.346621f, 0.346801f,
+ 0.346980f, 0.347160f, 0.347340f, 0.347520f, 0.347700f, 0.347879f, 0.348059f, 0.348239f,
+ 0.348419f, 0.348598f, 0.348778f, 0.348958f, 0.349138f, 0.349317f, 0.349497f, 0.349676f,
+ 0.349856f, 0.350036f, 0.350215f, 0.350395f, 0.350575f, 0.350754f, 0.350934f, 0.351113f,
+ 0.351293f, 0.351472f, 0.351652f, 0.351831f, 0.352011f, 0.352190f, 0.352370f, 0.352549f,
+ 0.352729f, 0.352908f, 0.353087f, 0.353267f, 0.353446f, 0.353626f, 0.353805f, 0.353984f,
+ 0.354164f, 0.354343f, 0.354522f, 0.354701f, 0.354881f, 0.355060f, 0.355239f, 0.355418f,
+ 0.355598f, 0.355777f, 0.355956f, 0.356135f, 0.356314f, 0.356494f, 0.356673f, 0.356852f,
+ 0.357031f, 0.357210f, 0.357389f, 0.357568f, 0.357747f, 0.357926f, 0.358105f, 0.358284f,
+ 0.358463f, 0.358642f, 0.358821f, 0.359000f, 0.359179f, 0.359358f, 0.359537f, 0.359716f,
+ 0.359895f, 0.360074f, 0.360253f, 0.360432f, 0.360611f, 0.360789f, 0.360968f, 0.361147f,
+ 0.361326f, 0.361505f, 0.361683f, 0.361862f, 0.362041f, 0.362220f, 0.362398f, 0.362577f,
+ 0.362756f, 0.362934f, 0.363113f, 0.363292f, 0.363470f, 0.363649f, 0.363828f, 0.364006f,
+ 0.364185f, 0.364363f, 0.364542f, 0.364720f, 0.364899f, 0.365078f, 0.365256f, 0.365435f,
+ 0.365613f, 0.365791f, 0.365970f, 0.366148f, 0.366327f, 0.366505f, 0.366684f, 0.366862f,
+ 0.367040f, 0.367219f, 0.367397f, 0.367575f, 0.367754f, 0.367932f, 0.368110f, 0.368289f,
+ 0.368467f, 0.368645f, 0.368823f, 0.369002f, 0.369180f, 0.369358f, 0.369536f, 0.369714f,
+ 0.369892f, 0.370071f, 0.370249f, 0.370427f, 0.370605f, 0.370783f, 0.370961f, 0.371139f,
+ 0.371317f, 0.371495f, 0.371673f, 0.371851f, 0.372029f, 0.372207f, 0.372385f, 0.372563f,
+ 0.372741f, 0.372919f, 0.373097f, 0.373275f, 0.373453f, 0.373631f, 0.373808f, 0.373986f,
+ 0.374164f, 0.374342f, 0.374520f, 0.374697f, 0.374875f, 0.375053f, 0.375231f, 0.375408f,
+ 0.375586f, 0.375764f, 0.375942f, 0.376119f, 0.376297f, 0.376475f, 0.376652f, 0.376830f,
+ 0.377007f, 0.377185f, 0.377363f, 0.377540f, 0.377718f, 0.377895f, 0.378073f, 0.378250f,
+ 0.378428f, 0.378605f, 0.378783f, 0.378960f, 0.379138f, 0.379315f, 0.379492f, 0.379670f,
+ 0.379847f, 0.380025f, 0.380202f, 0.380379f, 0.380557f, 0.380734f, 0.380911f, 0.381088f,
+ 0.381266f, 0.381443f, 0.381620f, 0.381797f, 0.381975f, 0.382152f, 0.382329f, 0.382506f,
+ 0.382683f, 0.382861f, 0.383038f, 0.383215f, 0.383392f, 0.383569f, 0.383746f, 0.383923f,
+ 0.384100f, 0.384277f, 0.384454f, 0.384631f, 0.384808f, 0.384985f, 0.385162f, 0.385339f,
+ 0.385516f, 0.385693f, 0.385870f, 0.386047f, 0.386224f, 0.386400f, 0.386577f, 0.386754f,
+ 0.386931f, 0.387108f, 0.387285f, 0.387461f, 0.387638f, 0.387815f, 0.387992f, 0.388168f,
+ 0.388345f, 0.388522f, 0.388698f, 0.388875f, 0.389052f, 0.389228f, 0.389405f, 0.389582f,
+ 0.389758f, 0.389935f, 0.390111f, 0.390288f, 0.390464f, 0.390641f, 0.390817f, 0.390994f,
+ 0.391170f, 0.391347f, 0.391523f, 0.391700f, 0.391876f, 0.392053f, 0.392229f, 0.392405f,
+ 0.392582f, 0.392758f, 0.392934f, 0.393111f, 0.393287f, 0.393463f, 0.393640f, 0.393816f,
+ 0.393992f, 0.394168f, 0.394344f, 0.394521f, 0.394697f, 0.394873f, 0.395049f, 0.395225f,
+ 0.395401f, 0.395578f, 0.395754f, 0.395930f, 0.396106f, 0.396282f, 0.396458f, 0.396634f,
+ 0.396810f, 0.396986f, 0.397162f, 0.397338f, 0.397514f, 0.397690f, 0.397866f, 0.398042f,
+ 0.398218f, 0.398393f, 0.398569f, 0.398745f, 0.398921f, 0.399097f, 0.399273f, 0.399448f,
+ 0.399624f, 0.399800f, 0.399976f, 0.400151f, 0.400327f, 0.400503f, 0.400679f, 0.400854f,
+ 0.401030f, 0.401206f, 0.401381f, 0.401557f, 0.401732f, 0.401908f, 0.402084f, 0.402259f,
+ 0.402435f, 0.402610f, 0.402786f, 0.402961f, 0.403137f, 0.403312f, 0.403488f, 0.403663f,
+ 0.403838f, 0.404014f, 0.404189f, 0.404365f, 0.404540f, 0.404715f, 0.404891f, 0.405066f,
+ 0.405241f, 0.405417f, 0.405592f, 0.405767f, 0.405942f, 0.406118f, 0.406293f, 0.406468f,
+ 0.406643f, 0.406818f, 0.406994f, 0.407169f, 0.407344f, 0.407519f, 0.407694f, 0.407869f,
+ 0.408044f, 0.408219f, 0.408394f, 0.408569f, 0.408744f, 0.408919f, 0.409094f, 0.409269f,
+ 0.409444f, 0.409619f, 0.409794f, 0.409969f, 0.410144f, 0.410319f, 0.410493f, 0.410668f,
+ 0.410843f, 0.411018f, 0.411193f, 0.411368f, 0.411542f, 0.411717f, 0.411892f, 0.412067f,
+ 0.412241f, 0.412416f, 0.412591f, 0.412765f, 0.412940f, 0.413115f, 0.413289f, 0.413464f,
+ 0.413638f, 0.413813f, 0.413987f, 0.414162f, 0.414337f, 0.414511f, 0.414685f, 0.414860f,
+ 0.415034f, 0.415209f, 0.415383f, 0.415558f, 0.415732f, 0.415906f, 0.416081f, 0.416255f,
+ 0.416430f, 0.416604f, 0.416778f, 0.416952f, 0.417127f, 0.417301f, 0.417475f, 0.417650f,
+ 0.417824f, 0.417998f, 0.418172f, 0.418346f, 0.418520f, 0.418695f, 0.418869f, 0.419043f,
+ 0.419217f, 0.419391f, 0.419565f, 0.419739f, 0.419913f, 0.420087f, 0.420261f, 0.420435f,
+ 0.420609f, 0.420783f, 0.420957f, 0.421131f, 0.421305f, 0.421479f, 0.421653f, 0.421826f,
+ 0.422000f, 0.422174f, 0.422348f, 0.422522f, 0.422695f, 0.422869f, 0.423043f, 0.423217f,
+ 0.423390f, 0.423564f, 0.423738f, 0.423912f, 0.424085f, 0.424259f, 0.424432f, 0.424606f,
+ 0.424780f, 0.424953f, 0.425127f, 0.425300f, 0.425474f, 0.425647f, 0.425821f, 0.425994f,
+ 0.426168f, 0.426341f, 0.426515f, 0.426688f, 0.426862f, 0.427035f, 0.427208f, 0.427382f,
+ 0.427555f, 0.427728f, 0.427902f, 0.428075f, 0.428248f, 0.428422f, 0.428595f, 0.428768f,
+ 0.428941f, 0.429114f, 0.429288f, 0.429461f, 0.429634f, 0.429807f, 0.429980f, 0.430153f,
+ 0.430326f, 0.430500f, 0.430673f, 0.430846f, 0.431019f, 0.431192f, 0.431365f, 0.431538f,
+ 0.431711f, 0.431884f, 0.432057f, 0.432229f, 0.432402f, 0.432575f, 0.432748f, 0.432921f,
+ 0.433094f, 0.433267f, 0.433439f, 0.433612f, 0.433785f, 0.433958f, 0.434131f, 0.434303f,
+ 0.434476f, 0.434649f, 0.434821f, 0.434994f, 0.435167f, 0.435339f, 0.435512f, 0.435685f,
+ 0.435857f, 0.436030f, 0.436202f, 0.436375f, 0.436547f, 0.436720f, 0.436892f, 0.437065f,
+ 0.437237f, 0.437410f, 0.437582f, 0.437754f, 0.437927f, 0.438099f, 0.438272f, 0.438444f,
+ 0.438616f, 0.438789f, 0.438961f, 0.439133f, 0.439305f, 0.439478f, 0.439650f, 0.439822f,
+ 0.439994f, 0.440166f, 0.440339f, 0.440511f, 0.440683f, 0.440855f, 0.441027f, 0.441199f,
+ 0.441371f, 0.441543f, 0.441715f, 0.441887f, 0.442059f, 0.442231f, 0.442403f, 0.442575f,
+ 0.442747f, 0.442919f, 0.443091f, 0.443263f, 0.443435f, 0.443607f, 0.443779f, 0.443950f,
+ 0.444122f, 0.444294f, 0.444466f, 0.444637f, 0.444809f, 0.444981f, 0.445153f, 0.445324f,
+ 0.445496f, 0.445668f, 0.445839f, 0.446011f, 0.446183f, 0.446354f, 0.446526f, 0.446697f,
+ 0.446869f, 0.447040f, 0.447212f, 0.447383f, 0.447555f, 0.447726f, 0.447898f, 0.448069f,
+ 0.448241f, 0.448412f, 0.448583f, 0.448755f, 0.448926f, 0.449097f, 0.449269f, 0.449440f,
+ 0.449611f, 0.449783f, 0.449954f, 0.450125f, 0.450296f, 0.450467f, 0.450639f, 0.450810f,
+ 0.450981f, 0.451152f, 0.451323f, 0.451494f, 0.451665f, 0.451836f, 0.452008f, 0.452179f,
+ 0.452350f, 0.452521f, 0.452692f, 0.452863f, 0.453033f, 0.453204f, 0.453375f, 0.453546f,
+ 0.453717f, 0.453888f, 0.454059f, 0.454230f, 0.454400f, 0.454571f, 0.454742f, 0.454913f,
+ 0.455084f, 0.455254f, 0.455425f, 0.455596f, 0.455766f, 0.455937f, 0.456108f, 0.456278f,
+ 0.456449f, 0.456620f, 0.456790f, 0.456961f, 0.457131f, 0.457302f, 0.457472f, 0.457643f,
+ 0.457813f, 0.457984f, 0.458154f, 0.458325f, 0.458495f, 0.458665f, 0.458836f, 0.459006f,
+ 0.459177f, 0.459347f, 0.459517f, 0.459687f, 0.459858f, 0.460028f, 0.460198f, 0.460369f,
+ 0.460539f, 0.460709f, 0.460879f, 0.461049f, 0.461219f, 0.461390f, 0.461560f, 0.461730f,
+ 0.461900f, 0.462070f, 0.462240f, 0.462410f, 0.462580f, 0.462750f, 0.462920f, 0.463090f,
+ 0.463260f, 0.463430f, 0.463600f, 0.463769f, 0.463939f, 0.464109f, 0.464279f, 0.464449f,
+ 0.464619f, 0.464788f, 0.464958f, 0.465128f, 0.465298f, 0.465467f, 0.465637f, 0.465807f,
+ 0.465977f, 0.466146f, 0.466316f, 0.466485f, 0.466655f, 0.466825f, 0.466994f, 0.467164f,
+ 0.467333f, 0.467503f, 0.467672f, 0.467842f, 0.468011f, 0.468181f, 0.468350f, 0.468519f,
+ 0.468689f, 0.468858f, 0.469028f, 0.469197f, 0.469366f, 0.469536f, 0.469705f, 0.469874f,
+ 0.470043f, 0.470213f, 0.470382f, 0.470551f, 0.470720f, 0.470889f, 0.471058f, 0.471228f,
+ 0.471397f, 0.471566f, 0.471735f, 0.471904f, 0.472073f, 0.472242f, 0.472411f, 0.472580f,
+ 0.472749f, 0.472918f, 0.473087f, 0.473256f, 0.473425f, 0.473594f, 0.473763f, 0.473931f,
+ 0.474100f, 0.474269f, 0.474438f, 0.474607f, 0.474775f, 0.474944f, 0.475113f, 0.475282f,
+ 0.475450f, 0.475619f, 0.475788f, 0.475956f, 0.476125f, 0.476294f, 0.476462f, 0.476631f,
+ 0.476799f, 0.476968f, 0.477136f, 0.477305f, 0.477473f, 0.477642f, 0.477810f, 0.477979f,
+ 0.478147f, 0.478315f, 0.478484f, 0.478652f, 0.478821f, 0.478989f, 0.479157f, 0.479325f,
+ 0.479494f, 0.479662f, 0.479830f, 0.479998f, 0.480167f, 0.480335f, 0.480503f, 0.480671f,
+ 0.480839f, 0.481007f, 0.481176f, 0.481344f, 0.481512f, 0.481680f, 0.481848f, 0.482016f,
+ 0.482184f, 0.482352f, 0.482520f, 0.482688f, 0.482856f, 0.483023f, 0.483191f, 0.483359f,
+ 0.483527f, 0.483695f, 0.483863f, 0.484031f, 0.484198f, 0.484366f, 0.484534f, 0.484702f,
+ 0.484869f, 0.485037f, 0.485205f, 0.485372f, 0.485540f, 0.485708f, 0.485875f, 0.486043f,
+ 0.486210f, 0.486378f, 0.486545f, 0.486713f, 0.486880f, 0.487048f, 0.487215f, 0.487383f,
+ 0.487550f, 0.487718f, 0.487885f, 0.488052f, 0.488220f, 0.488387f, 0.488554f, 0.488722f,
+ 0.488889f, 0.489056f, 0.489223f, 0.489391f, 0.489558f, 0.489725f, 0.489892f, 0.490059f,
+ 0.490226f, 0.490394f, 0.490561f, 0.490728f, 0.490895f, 0.491062f, 0.491229f, 0.491396f,
+ 0.491563f, 0.491730f, 0.491897f, 0.492064f, 0.492231f, 0.492398f, 0.492564f, 0.492731f,
+ 0.492898f, 0.493065f, 0.493232f, 0.493399f, 0.493565f, 0.493732f, 0.493899f, 0.494066f,
+ 0.494232f, 0.494399f, 0.494566f, 0.494732f, 0.494899f, 0.495066f, 0.495232f, 0.495399f,
+ 0.495565f, 0.495732f, 0.495898f, 0.496065f, 0.496231f, 0.496398f, 0.496564f, 0.496731f,
+ 0.496897f, 0.497063f, 0.497230f, 0.497396f, 0.497562f, 0.497729f, 0.497895f, 0.498061f,
+ 0.498228f, 0.498394f, 0.498560f, 0.498726f, 0.498893f, 0.499059f, 0.499225f, 0.499391f,
+ 0.499557f, 0.499723f, 0.499889f, 0.500055f, 0.500221f, 0.500387f, 0.500553f, 0.500719f,
+ 0.500885f, 0.501051f, 0.501217f, 0.501383f, 0.501549f, 0.501715f, 0.501881f, 0.502047f,
+ 0.502212f, 0.502378f, 0.502544f, 0.502710f, 0.502876f, 0.503041f, 0.503207f, 0.503373f,
+ 0.503538f, 0.503704f, 0.503870f, 0.504035f, 0.504201f, 0.504366f, 0.504532f, 0.504698f,
+ 0.504863f, 0.505029f, 0.505194f, 0.505360f, 0.505525f, 0.505690f, 0.505856f, 0.506021f,
+ 0.506187f, 0.506352f, 0.506517f, 0.506683f, 0.506848f, 0.507013f, 0.507179f, 0.507344f,
+ 0.507509f, 0.507674f, 0.507839f, 0.508005f, 0.508170f, 0.508335f, 0.508500f, 0.508665f,
+ 0.508830f, 0.508995f, 0.509160f, 0.509325f, 0.509490f, 0.509655f, 0.509820f, 0.509985f,
+ 0.510150f, 0.510315f, 0.510480f, 0.510645f, 0.510810f, 0.510974f, 0.511139f, 0.511304f,
+ 0.511469f, 0.511634f, 0.511798f, 0.511963f, 0.512128f, 0.512292f, 0.512457f, 0.512622f,
+ 0.512786f, 0.512951f, 0.513116f, 0.513280f, 0.513445f, 0.513609f, 0.513774f, 0.513938f,
+ 0.514103f, 0.514267f, 0.514432f, 0.514596f, 0.514760f, 0.514925f, 0.515089f, 0.515254f,
+ 0.515418f, 0.515582f, 0.515746f, 0.515911f, 0.516075f, 0.516239f, 0.516403f, 0.516568f,
+ 0.516732f, 0.516896f, 0.517060f, 0.517224f, 0.517388f, 0.517552f, 0.517716f, 0.517880f,
+ 0.518045f, 0.518209f, 0.518372f, 0.518536f, 0.518700f, 0.518864f, 0.519028f, 0.519192f,
+ 0.519356f, 0.519520f, 0.519684f, 0.519848f, 0.520011f, 0.520175f, 0.520339f, 0.520503f,
+ 0.520666f, 0.520830f, 0.520994f, 0.521157f, 0.521321f, 0.521485f, 0.521648f, 0.521812f,
+ 0.521975f, 0.522139f, 0.522302f, 0.522466f, 0.522629f, 0.522793f, 0.522956f, 0.523120f,
+ 0.523283f, 0.523447f, 0.523610f, 0.523773f, 0.523937f, 0.524100f, 0.524263f, 0.524426f,
+ 0.524590f, 0.524753f, 0.524916f, 0.525079f, 0.525243f, 0.525406f, 0.525569f, 0.525732f,
+ 0.525895f, 0.526058f, 0.526221f, 0.526384f, 0.526547f, 0.526710f, 0.526873f, 0.527036f,
+ 0.527199f, 0.527362f, 0.527525f, 0.527688f, 0.527851f, 0.528014f, 0.528176f, 0.528339f,
+ 0.528502f, 0.528665f, 0.528828f, 0.528990f, 0.529153f, 0.529316f, 0.529478f, 0.529641f,
+ 0.529804f, 0.529966f, 0.530129f, 0.530291f, 0.530454f, 0.530617f, 0.530779f, 0.530942f,
+ 0.531104f, 0.531266f, 0.531429f, 0.531591f, 0.531754f, 0.531916f, 0.532078f, 0.532241f,
+ 0.532403f, 0.532565f, 0.532728f, 0.532890f, 0.533052f, 0.533214f, 0.533377f, 0.533539f,
+ 0.533701f, 0.533863f, 0.534025f, 0.534187f, 0.534349f, 0.534512f, 0.534674f, 0.534836f,
+ 0.534998f, 0.535160f, 0.535322f, 0.535484f, 0.535645f, 0.535807f, 0.535969f, 0.536131f,
+ 0.536293f, 0.536455f, 0.536617f, 0.536778f, 0.536940f, 0.537102f, 0.537264f, 0.537425f,
+ 0.537587f, 0.537749f, 0.537910f, 0.538072f, 0.538234f, 0.538395f, 0.538557f, 0.538718f,
+ 0.538880f, 0.539041f, 0.539203f, 0.539364f, 0.539526f, 0.539687f, 0.539849f, 0.540010f,
+ 0.540171f, 0.540333f, 0.540494f, 0.540655f, 0.540817f, 0.540978f, 0.541139f, 0.541301f,
+ 0.541462f, 0.541623f, 0.541784f, 0.541945f, 0.542106f, 0.542268f, 0.542429f, 0.542590f,
+ 0.542751f, 0.542912f, 0.543073f, 0.543234f, 0.543395f, 0.543556f, 0.543717f, 0.543878f,
+ 0.544039f, 0.544199f, 0.544360f, 0.544521f, 0.544682f, 0.544843f, 0.545003f, 0.545164f,
+ 0.545325f, 0.545486f, 0.545646f, 0.545807f, 0.545968f, 0.546128f, 0.546289f, 0.546450f,
+ 0.546610f, 0.546771f, 0.546931f, 0.547092f, 0.547252f, 0.547413f, 0.547573f, 0.547734f,
+ 0.547894f, 0.548054f, 0.548215f, 0.548375f, 0.548536f, 0.548696f, 0.548856f, 0.549016f,
+ 0.549177f, 0.549337f, 0.549497f, 0.549657f, 0.549818f, 0.549978f, 0.550138f, 0.550298f,
+ 0.550458f, 0.550618f, 0.550778f, 0.550938f, 0.551098f, 0.551258f, 0.551418f, 0.551578f,
+ 0.551738f, 0.551898f, 0.552058f, 0.552218f, 0.552378f, 0.552537f, 0.552697f, 0.552857f,
+ 0.553017f, 0.553176f, 0.553336f, 0.553496f, 0.553656f, 0.553815f, 0.553975f, 0.554134f,
+ 0.554294f, 0.554454f, 0.554613f, 0.554773f, 0.554932f, 0.555092f, 0.555251f, 0.555411f,
+ 0.555570f, 0.555730f, 0.555889f, 0.556048f, 0.556208f, 0.556367f, 0.556526f, 0.556686f,
+ 0.556845f, 0.557004f, 0.557164f, 0.557323f, 0.557482f, 0.557641f, 0.557800f, 0.557959f,
+ 0.558119f, 0.558278f, 0.558437f, 0.558596f, 0.558755f, 0.558914f, 0.559073f, 0.559232f,
+ 0.559391f, 0.559550f, 0.559709f, 0.559867f, 0.560026f, 0.560185f, 0.560344f, 0.560503f,
+ 0.560662f, 0.560820f, 0.560979f, 0.561138f, 0.561297f, 0.561455f, 0.561614f, 0.561773f,
+ 0.561931f, 0.562090f, 0.562248f, 0.562407f, 0.562565f, 0.562724f, 0.562882f, 0.563041f,
+ 0.563199f, 0.563358f, 0.563516f, 0.563675f, 0.563833f, 0.563991f, 0.564150f, 0.564308f,
+ 0.564466f, 0.564624f, 0.564783f, 0.564941f, 0.565099f, 0.565257f, 0.565416f, 0.565574f,
+ 0.565732f, 0.565890f, 0.566048f, 0.566206f, 0.566364f, 0.566522f, 0.566680f, 0.566838f,
+ 0.566996f, 0.567154f, 0.567312f, 0.567470f, 0.567628f, 0.567786f, 0.567943f, 0.568101f,
+ 0.568259f, 0.568417f, 0.568574f, 0.568732f, 0.568890f, 0.569048f, 0.569205f, 0.569363f,
+ 0.569521f, 0.569678f, 0.569836f, 0.569993f, 0.570151f, 0.570308f, 0.570466f, 0.570623f,
+ 0.570781f, 0.570938f, 0.571096f, 0.571253f, 0.571410f, 0.571568f, 0.571725f, 0.571882f,
+ 0.572040f, 0.572197f, 0.572354f, 0.572511f, 0.572669f, 0.572826f, 0.572983f, 0.573140f,
+ 0.573297f, 0.573454f, 0.573611f, 0.573768f, 0.573925f, 0.574082f, 0.574239f, 0.574396f,
+ 0.574553f, 0.574710f, 0.574867f, 0.575024f, 0.575181f, 0.575338f, 0.575495f, 0.575651f,
+ 0.575808f, 0.575965f, 0.576122f, 0.576278f, 0.576435f, 0.576592f, 0.576748f, 0.576905f,
+ 0.577062f, 0.577218f, 0.577375f, 0.577531f, 0.577688f, 0.577844f, 0.578001f, 0.578157f,
+ 0.578314f, 0.578470f, 0.578627f, 0.578783f, 0.578939f, 0.579096f, 0.579252f, 0.579408f,
+ 0.579565f, 0.579721f, 0.579877f, 0.580033f, 0.580189f, 0.580346f, 0.580502f, 0.580658f,
+ 0.580814f, 0.580970f, 0.581126f, 0.581282f, 0.581438f, 0.581594f, 0.581750f, 0.581906f,
+ 0.582062f, 0.582218f, 0.582374f, 0.582530f, 0.582685f, 0.582841f, 0.582997f, 0.583153f,
+ 0.583309f, 0.583464f, 0.583620f, 0.583776f, 0.583931f, 0.584087f, 0.584243f, 0.584398f,
+ 0.584554f, 0.584710f, 0.584865f, 0.585021f, 0.585176f, 0.585332f, 0.585487f, 0.585642f,
+ 0.585798f, 0.585953f, 0.586109f, 0.586264f, 0.586419f, 0.586575f, 0.586730f, 0.586885f,
+ 0.587040f, 0.587196f, 0.587351f, 0.587506f, 0.587661f, 0.587816f, 0.587971f, 0.588126f,
+ 0.588282f, 0.588437f, 0.588592f, 0.588747f, 0.588902f, 0.589057f, 0.589212f, 0.589366f,
+ 0.589521f, 0.589676f, 0.589831f, 0.589986f, 0.590141f, 0.590295f, 0.590450f, 0.590605f,
+ 0.590760f, 0.590914f, 0.591069f, 0.591224f, 0.591378f, 0.591533f, 0.591688f, 0.591842f,
+ 0.591997f, 0.592151f, 0.592306f, 0.592460f, 0.592615f, 0.592769f, 0.592924f, 0.593078f,
+ 0.593232f, 0.593387f, 0.593541f, 0.593695f, 0.593850f, 0.594004f, 0.594158f, 0.594312f,
+ 0.594467f, 0.594621f, 0.594775f, 0.594929f, 0.595083f, 0.595237f, 0.595391f, 0.595545f,
+ 0.595699f, 0.595853f, 0.596007f, 0.596161f, 0.596315f, 0.596469f, 0.596623f, 0.596777f,
+ 0.596931f, 0.597085f, 0.597238f, 0.597392f, 0.597546f, 0.597700f, 0.597853f, 0.598007f,
+ 0.598161f, 0.598314f, 0.598468f, 0.598622f, 0.598775f, 0.598929f, 0.599082f, 0.599236f,
+ 0.599389f, 0.599543f, 0.599696f, 0.599850f, 0.600003f, 0.600156f, 0.600310f, 0.600463f,
+ 0.600616f, 0.600770f, 0.600923f, 0.601076f, 0.601230f, 0.601383f, 0.601536f, 0.601689f,
+ 0.601842f, 0.601995f, 0.602148f, 0.602302f, 0.602455f, 0.602608f, 0.602761f, 0.602914f,
+ 0.603067f, 0.603220f, 0.603372f, 0.603525f, 0.603678f, 0.603831f, 0.603984f, 0.604137f,
+ 0.604290f, 0.604442f, 0.604595f, 0.604748f, 0.604900f, 0.605053f, 0.605206f, 0.605358f,
+ 0.605511f, 0.605664f, 0.605816f, 0.605969f, 0.606121f, 0.606274f, 0.606426f, 0.606579f,
+ 0.606731f, 0.606884f, 0.607036f, 0.607188f, 0.607341f, 0.607493f, 0.607645f, 0.607798f,
+ 0.607950f, 0.608102f, 0.608254f, 0.608406f, 0.608559f, 0.608711f, 0.608863f, 0.609015f,
+ 0.609167f, 0.609319f, 0.609471f, 0.609623f, 0.609775f, 0.609927f, 0.610079f, 0.610231f,
+ 0.610383f, 0.610535f, 0.610687f, 0.610838f, 0.610990f, 0.611142f, 0.611294f, 0.611445f,
+ 0.611597f, 0.611749f, 0.611901f, 0.612052f, 0.612204f, 0.612355f, 0.612507f, 0.612659f,
+ 0.612810f, 0.612962f, 0.613113f, 0.613265f, 0.613416f, 0.613567f, 0.613719f, 0.613870f,
+ 0.614022f, 0.614173f, 0.614324f, 0.614475f, 0.614627f, 0.614778f, 0.614929f, 0.615080f,
+ 0.615232f, 0.615383f, 0.615534f, 0.615685f, 0.615836f, 0.615987f, 0.616138f, 0.616289f,
+ 0.616440f, 0.616591f, 0.616742f, 0.616893f, 0.617044f, 0.617195f, 0.617346f, 0.617496f,
+ 0.617647f, 0.617798f, 0.617949f, 0.618100f, 0.618250f, 0.618401f, 0.618552f, 0.618702f,
+ 0.618853f, 0.619004f, 0.619154f, 0.619305f, 0.619455f, 0.619606f, 0.619756f, 0.619907f,
+ 0.620057f, 0.620208f, 0.620358f, 0.620508f, 0.620659f, 0.620809f, 0.620959f, 0.621110f,
+ 0.621260f, 0.621410f, 0.621560f, 0.621711f, 0.621861f, 0.622011f, 0.622161f, 0.622311f,
+ 0.622461f, 0.622611f, 0.622761f, 0.622911f, 0.623061f, 0.623211f, 0.623361f, 0.623511f,
+ 0.623661f, 0.623811f, 0.623961f, 0.624111f, 0.624260f, 0.624410f, 0.624560f, 0.624710f,
+ 0.624860f, 0.625009f, 0.625159f, 0.625309f, 0.625458f, 0.625608f, 0.625757f, 0.625907f,
+ 0.626056f, 0.626206f, 0.626355f, 0.626505f, 0.626654f, 0.626804f, 0.626953f, 0.627102f,
+ 0.627252f, 0.627401f, 0.627550f, 0.627700f, 0.627849f, 0.627998f, 0.628147f, 0.628297f,
+ 0.628446f, 0.628595f, 0.628744f, 0.628893f, 0.629042f, 0.629191f, 0.629340f, 0.629489f,
+ 0.629638f, 0.629787f, 0.629936f, 0.630085f, 0.630234f, 0.630383f, 0.630532f, 0.630680f,
+ 0.630829f, 0.630978f, 0.631127f, 0.631275f, 0.631424f, 0.631573f, 0.631721f, 0.631870f,
+ 0.632019f, 0.632167f, 0.632316f, 0.632464f, 0.632613f, 0.632761f, 0.632910f, 0.633058f,
+ 0.633207f, 0.633355f, 0.633504f, 0.633652f, 0.633800f, 0.633949f, 0.634097f, 0.634245f,
+ 0.634393f, 0.634542f, 0.634690f, 0.634838f, 0.634986f, 0.635134f, 0.635282f, 0.635430f,
+ 0.635578f, 0.635726f, 0.635874f, 0.636022f, 0.636170f, 0.636318f, 0.636466f, 0.636614f,
+ 0.636762f, 0.636910f, 0.637057f, 0.637205f, 0.637353f, 0.637501f, 0.637649f, 0.637796f,
+ 0.637944f, 0.638092f, 0.638239f, 0.638387f, 0.638534f, 0.638682f, 0.638829f, 0.638977f,
+ 0.639124f, 0.639272f, 0.639419f, 0.639567f, 0.639714f, 0.639862f, 0.640009f, 0.640156f,
+ 0.640303f, 0.640451f, 0.640598f, 0.640745f, 0.640892f, 0.641040f, 0.641187f, 0.641334f,
+ 0.641481f, 0.641628f, 0.641775f, 0.641922f, 0.642069f, 0.642216f, 0.642363f, 0.642510f,
+ 0.642657f, 0.642804f, 0.642951f, 0.643098f, 0.643245f, 0.643391f, 0.643538f, 0.643685f,
+ 0.643832f, 0.643978f, 0.644125f, 0.644272f, 0.644418f, 0.644565f, 0.644711f, 0.644858f,
+ 0.645005f, 0.645151f, 0.645298f, 0.645444f, 0.645590f, 0.645737f, 0.645883f, 0.646030f,
+ 0.646176f, 0.646322f, 0.646469f, 0.646615f, 0.646761f, 0.646907f, 0.647054f, 0.647200f,
+ 0.647346f, 0.647492f, 0.647638f, 0.647784f, 0.647930f, 0.648076f, 0.648222f, 0.648368f,
+ 0.648514f, 0.648660f, 0.648806f, 0.648952f, 0.649098f, 0.649244f, 0.649390f, 0.649536f,
+ 0.649681f, 0.649827f, 0.649973f, 0.650119f, 0.650264f, 0.650410f, 0.650555f, 0.650701f,
+ 0.650847f, 0.650992f, 0.651138f, 0.651283f, 0.651429f, 0.651574f, 0.651720f, 0.651865f,
+ 0.652011f, 0.652156f, 0.652301f, 0.652447f, 0.652592f, 0.652737f, 0.652882f, 0.653028f,
+ 0.653173f, 0.653318f, 0.653463f, 0.653608f, 0.653753f, 0.653899f, 0.654044f, 0.654189f,
+ 0.654334f, 0.654479f, 0.654624f, 0.654769f, 0.654913f, 0.655058f, 0.655203f, 0.655348f,
+ 0.655493f, 0.655638f, 0.655782f, 0.655927f, 0.656072f, 0.656217f, 0.656361f, 0.656506f,
+ 0.656651f, 0.656795f, 0.656940f, 0.657084f, 0.657229f, 0.657373f, 0.657518f, 0.657662f,
+ 0.657807f, 0.657951f, 0.658095f, 0.658240f, 0.658384f, 0.658529f, 0.658673f, 0.658817f,
+ 0.658961f, 0.659105f, 0.659250f, 0.659394f, 0.659538f, 0.659682f, 0.659826f, 0.659970f,
+ 0.660114f, 0.660258f, 0.660402f, 0.660546f, 0.660690f, 0.660834f, 0.660978f, 0.661122f,
+ 0.661266f, 0.661410f, 0.661553f, 0.661697f, 0.661841f, 0.661985f, 0.662128f, 0.662272f,
+ 0.662416f, 0.662559f, 0.662703f, 0.662847f, 0.662990f, 0.663134f, 0.663277f, 0.663421f,
+ 0.663564f, 0.663708f, 0.663851f, 0.663994f, 0.664138f, 0.664281f, 0.664424f, 0.664568f,
+ 0.664711f, 0.664854f, 0.664997f, 0.665141f, 0.665284f, 0.665427f, 0.665570f, 0.665713f,
+ 0.665856f, 0.665999f, 0.666142f, 0.666285f, 0.666428f, 0.666571f, 0.666714f, 0.666857f,
+ 0.667000f, 0.667143f, 0.667286f, 0.667428f, 0.667571f, 0.667714f, 0.667857f, 0.667999f,
+ 0.668142f, 0.668285f, 0.668427f, 0.668570f, 0.668712f, 0.668855f, 0.668998f, 0.669140f,
+ 0.669283f, 0.669425f, 0.669567f, 0.669710f, 0.669852f, 0.669995f, 0.670137f, 0.670279f,
+ 0.670422f, 0.670564f, 0.670706f, 0.670848f, 0.670990f, 0.671133f, 0.671275f, 0.671417f,
+ 0.671559f, 0.671701f, 0.671843f, 0.671985f, 0.672127f, 0.672269f, 0.672411f, 0.672553f,
+ 0.672695f, 0.672837f, 0.672978f, 0.673120f, 0.673262f, 0.673404f, 0.673546f, 0.673687f,
+ 0.673829f, 0.673971f, 0.674112f, 0.674254f, 0.674396f, 0.674537f, 0.674679f, 0.674820f,
+ 0.674962f, 0.675103f, 0.675245f, 0.675386f, 0.675527f, 0.675669f, 0.675810f, 0.675951f,
+ 0.676093f, 0.676234f, 0.676375f, 0.676516f, 0.676658f, 0.676799f, 0.676940f, 0.677081f,
+ 0.677222f, 0.677363f, 0.677504f, 0.677645f, 0.677786f, 0.677927f, 0.678068f, 0.678209f,
+ 0.678350f, 0.678491f, 0.678632f, 0.678773f, 0.678913f, 0.679054f, 0.679195f, 0.679336f,
+ 0.679476f, 0.679617f, 0.679758f, 0.679898f, 0.680039f, 0.680179f, 0.680320f, 0.680461f,
+ 0.680601f, 0.680741f, 0.680882f, 0.681022f, 0.681163f, 0.681303f, 0.681443f, 0.681584f,
+ 0.681724f, 0.681864f, 0.682005f, 0.682145f, 0.682285f, 0.682425f, 0.682565f, 0.682705f,
+ 0.682846f, 0.682986f, 0.683126f, 0.683266f, 0.683406f, 0.683546f, 0.683686f, 0.683825f,
+ 0.683965f, 0.684105f, 0.684245f, 0.684385f, 0.684525f, 0.684664f, 0.684804f, 0.684944f,
+ 0.685084f, 0.685223f, 0.685363f, 0.685503f, 0.685642f, 0.685782f, 0.685921f, 0.686061f,
+ 0.686200f, 0.686340f, 0.686479f, 0.686619f, 0.686758f, 0.686897f, 0.687037f, 0.687176f,
+ 0.687315f, 0.687455f, 0.687594f, 0.687733f, 0.687872f, 0.688011f, 0.688151f, 0.688290f,
+ 0.688429f, 0.688568f, 0.688707f, 0.688846f, 0.688985f, 0.689124f, 0.689263f, 0.689402f,
+ 0.689541f, 0.689679f, 0.689818f, 0.689957f, 0.690096f, 0.690235f, 0.690373f, 0.690512f,
+ 0.690651f, 0.690789f, 0.690928f, 0.691067f, 0.691205f, 0.691344f, 0.691482f, 0.691621f,
+ 0.691759f, 0.691898f, 0.692036f, 0.692175f, 0.692313f, 0.692451f, 0.692590f, 0.692728f,
+ 0.692866f, 0.693004f, 0.693143f, 0.693281f, 0.693419f, 0.693557f, 0.693695f, 0.693833f,
+ 0.693971f, 0.694109f, 0.694248f, 0.694386f, 0.694524f, 0.694661f, 0.694799f, 0.694937f,
+ 0.695075f, 0.695213f, 0.695351f, 0.695489f, 0.695626f, 0.695764f, 0.695902f, 0.696039f,
+ 0.696177f, 0.696315f, 0.696452f, 0.696590f, 0.696728f, 0.696865f, 0.697003f, 0.697140f,
+ 0.697277f, 0.697415f, 0.697552f, 0.697690f, 0.697827f, 0.697964f, 0.698102f, 0.698239f,
+ 0.698376f, 0.698513f, 0.698651f, 0.698788f, 0.698925f, 0.699062f, 0.699199f, 0.699336f,
+ 0.699473f, 0.699610f, 0.699747f, 0.699884f, 0.700021f, 0.700158f, 0.700295f, 0.700432f,
+ 0.700569f, 0.700706f, 0.700842f, 0.700979f, 0.701116f, 0.701253f, 0.701389f, 0.701526f,
+ 0.701663f, 0.701799f, 0.701936f, 0.702072f, 0.702209f, 0.702345f, 0.702482f, 0.702618f,
+ 0.702755f, 0.702891f, 0.703028f, 0.703164f, 0.703300f, 0.703436f, 0.703573f, 0.703709f,
+ 0.703845f, 0.703981f, 0.704118f, 0.704254f, 0.704390f, 0.704526f, 0.704662f, 0.704798f,
+ 0.704934f, 0.705070f, 0.705206f, 0.705342f, 0.705478f, 0.705614f, 0.705750f, 0.705885f,
+ 0.706021f, 0.706157f, 0.706293f, 0.706429f, 0.706564f, 0.706700f, 0.706836f, 0.706971f,
+ 0.707107f, 0.707242f, 0.707378f, 0.707513f, 0.707649f, 0.707784f, 0.707920f, 0.708055f,
+ 0.708191f, 0.708326f, 0.708461f, 0.708597f, 0.708732f, 0.708867f, 0.709002f, 0.709138f,
+ 0.709273f, 0.709408f, 0.709543f, 0.709678f, 0.709813f, 0.709948f, 0.710083f, 0.710218f,
+ 0.710353f, 0.710488f, 0.710623f, 0.710758f, 0.710893f, 0.711028f, 0.711163f, 0.711297f,
+ 0.711432f, 0.711567f, 0.711702f, 0.711836f, 0.711971f, 0.712106f, 0.712240f, 0.712375f,
+ 0.712509f, 0.712644f, 0.712778f, 0.712913f, 0.713047f, 0.713182f, 0.713316f, 0.713451f,
+ 0.713585f, 0.713719f, 0.713853f, 0.713988f, 0.714122f, 0.714256f, 0.714390f, 0.714525f,
+ 0.714659f, 0.714793f, 0.714927f, 0.715061f, 0.715195f, 0.715329f, 0.715463f, 0.715597f,
+ 0.715731f, 0.715865f, 0.715999f, 0.716132f, 0.716266f, 0.716400f, 0.716534f, 0.716668f,
+ 0.716801f, 0.716935f, 0.717069f, 0.717202f, 0.717336f, 0.717469f, 0.717603f, 0.717737f,
+ 0.717870f, 0.718004f, 0.718137f, 0.718270f, 0.718404f, 0.718537f, 0.718670f, 0.718804f,
+ 0.718937f, 0.719070f, 0.719204f, 0.719337f, 0.719470f, 0.719603f, 0.719736f, 0.719869f,
+ 0.720003f, 0.720136f, 0.720269f, 0.720402f, 0.720535f, 0.720668f, 0.720800f, 0.720933f,
+ 0.721066f, 0.721199f, 0.721332f, 0.721465f, 0.721597f, 0.721730f, 0.721863f, 0.721996f,
+ 0.722128f, 0.722261f, 0.722393f, 0.722526f, 0.722659f, 0.722791f, 0.722924f, 0.723056f,
+ 0.723188f, 0.723321f, 0.723453f, 0.723586f, 0.723718f, 0.723850f, 0.723983f, 0.724115f,
+ 0.724247f, 0.724379f, 0.724511f, 0.724644f, 0.724776f, 0.724908f, 0.725040f, 0.725172f,
+ 0.725304f, 0.725436f, 0.725568f, 0.725700f, 0.725832f, 0.725964f, 0.726095f, 0.726227f,
+ 0.726359f, 0.726491f, 0.726623f, 0.726754f, 0.726886f, 0.727018f, 0.727149f, 0.727281f,
+ 0.727413f, 0.727544f, 0.727676f, 0.727807f, 0.727939f, 0.728070f, 0.728202f, 0.728333f,
+ 0.728464f, 0.728596f, 0.728727f, 0.728858f, 0.728990f, 0.729121f, 0.729252f, 0.729383f,
+ 0.729514f, 0.729646f, 0.729777f, 0.729908f, 0.730039f, 0.730170f, 0.730301f, 0.730432f,
+ 0.730563f, 0.730694f, 0.730825f, 0.730955f, 0.731086f, 0.731217f, 0.731348f, 0.731479f,
+ 0.731609f, 0.731740f, 0.731871f, 0.732001f, 0.732132f, 0.732263f, 0.732393f, 0.732524f,
+ 0.732654f, 0.732785f, 0.732915f, 0.733046f, 0.733176f, 0.733306f, 0.733437f, 0.733567f,
+ 0.733697f, 0.733828f, 0.733958f, 0.734088f, 0.734218f, 0.734349f, 0.734479f, 0.734609f,
+ 0.734739f, 0.734869f, 0.734999f, 0.735129f, 0.735259f, 0.735389f, 0.735519f, 0.735649f,
+ 0.735779f, 0.735908f, 0.736038f, 0.736168f, 0.736298f, 0.736428f, 0.736557f, 0.736687f,
+ 0.736817f, 0.736946f, 0.737076f, 0.737205f, 0.737335f, 0.737464f, 0.737594f, 0.737723f,
+ 0.737853f, 0.737982f, 0.738112f, 0.738241f, 0.738370f, 0.738500f, 0.738629f, 0.738758f,
+ 0.738887f, 0.739017f, 0.739146f, 0.739275f, 0.739404f, 0.739533f, 0.739662f, 0.739791f,
+ 0.739920f, 0.740049f, 0.740178f, 0.740307f, 0.740436f, 0.740565f, 0.740694f, 0.740822f,
+ 0.740951f, 0.741080f, 0.741209f, 0.741337f, 0.741466f, 0.741595f, 0.741723f, 0.741852f,
+ 0.741980f, 0.742109f, 0.742237f, 0.742366f, 0.742494f, 0.742623f, 0.742751f, 0.742880f,
+ 0.743008f, 0.743136f, 0.743265f, 0.743393f, 0.743521f, 0.743649f, 0.743777f, 0.743906f,
+ 0.744034f, 0.744162f, 0.744290f, 0.744418f, 0.744546f, 0.744674f, 0.744802f, 0.744930f,
+ 0.745058f, 0.745186f, 0.745314f, 0.745441f, 0.745569f, 0.745697f, 0.745825f, 0.745952f,
+ 0.746080f, 0.746208f, 0.746335f, 0.746463f, 0.746591f, 0.746718f, 0.746846f, 0.746973f,
+ 0.747101f, 0.747228f, 0.747355f, 0.747483f, 0.747610f, 0.747738f, 0.747865f, 0.747992f,
+ 0.748119f, 0.748247f, 0.748374f, 0.748501f, 0.748628f, 0.748755f, 0.748882f, 0.749009f,
+ 0.749136f, 0.749263f, 0.749390f, 0.749517f, 0.749644f, 0.749771f, 0.749898f, 0.750025f,
+ 0.750152f, 0.750278f, 0.750405f, 0.750532f, 0.750659f, 0.750785f, 0.750912f, 0.751039f,
+ 0.751165f, 0.751292f, 0.751418f, 0.751545f, 0.751671f, 0.751798f, 0.751924f, 0.752050f,
+ 0.752177f, 0.752303f, 0.752429f, 0.752556f, 0.752682f, 0.752808f, 0.752934f, 0.753061f,
+ 0.753187f, 0.753313f, 0.753439f, 0.753565f, 0.753691f, 0.753817f, 0.753943f, 0.754069f,
+ 0.754195f, 0.754321f, 0.754447f, 0.754573f, 0.754698f, 0.754824f, 0.754950f, 0.755076f,
+ 0.755201f, 0.755327f, 0.755453f, 0.755578f, 0.755704f, 0.755829f, 0.755955f, 0.756081f,
+ 0.756206f, 0.756331f, 0.756457f, 0.756582f, 0.756708f, 0.756833f, 0.756958f, 0.757084f,
+ 0.757209f, 0.757334f, 0.757459f, 0.757584f, 0.757710f, 0.757835f, 0.757960f, 0.758085f,
+ 0.758210f, 0.758335f, 0.758460f, 0.758585f, 0.758710f, 0.758835f, 0.758960f, 0.759084f,
+ 0.759209f, 0.759334f, 0.759459f, 0.759583f, 0.759708f, 0.759833f, 0.759957f, 0.760082f,
+ 0.760207f, 0.760331f, 0.760456f, 0.760580f, 0.760705f, 0.760829f, 0.760954f, 0.761078f,
+ 0.761202f, 0.761327f, 0.761451f, 0.761575f, 0.761700f, 0.761824f, 0.761948f, 0.762072f,
+ 0.762196f, 0.762320f, 0.762444f, 0.762569f, 0.762693f, 0.762817f, 0.762941f, 0.763065f,
+ 0.763188f, 0.763312f, 0.763436f, 0.763560f, 0.763684f, 0.763808f, 0.763931f, 0.764055f,
+ 0.764179f, 0.764302f, 0.764426f, 0.764550f, 0.764673f, 0.764797f, 0.764920f, 0.765044f,
+ 0.765167f, 0.765291f, 0.765414f, 0.765538f, 0.765661f, 0.765784f, 0.765907f, 0.766031f,
+ 0.766154f, 0.766277f, 0.766400f, 0.766524f, 0.766647f, 0.766770f, 0.766893f, 0.767016f,
+ 0.767139f, 0.767262f, 0.767385f, 0.767508f, 0.767631f, 0.767754f, 0.767876f, 0.767999f,
+ 0.768122f, 0.768245f, 0.768368f, 0.768490f, 0.768613f, 0.768736f, 0.768858f, 0.768981f,
+ 0.769103f, 0.769226f, 0.769348f, 0.769471f, 0.769593f, 0.769716f, 0.769838f, 0.769961f,
+ 0.770083f, 0.770205f, 0.770327f, 0.770450f, 0.770572f, 0.770694f, 0.770816f, 0.770938f,
+ 0.771061f, 0.771183f, 0.771305f, 0.771427f, 0.771549f, 0.771671f, 0.771793f, 0.771915f,
+ 0.772036f, 0.772158f, 0.772280f, 0.772402f, 0.772524f, 0.772645f, 0.772767f, 0.772889f,
+ 0.773010f, 0.773132f, 0.773254f, 0.773375f, 0.773497f, 0.773618f, 0.773740f, 0.773861f,
+ 0.773983f, 0.774104f, 0.774225f, 0.774347f, 0.774468f, 0.774589f, 0.774711f, 0.774832f,
+ 0.774953f, 0.775074f, 0.775195f, 0.775317f, 0.775438f, 0.775559f, 0.775680f, 0.775801f,
+ 0.775922f, 0.776043f, 0.776164f, 0.776284f, 0.776405f, 0.776526f, 0.776647f, 0.776768f,
+ 0.776888f, 0.777009f, 0.777130f, 0.777251f, 0.777371f, 0.777492f, 0.777612f, 0.777733f,
+ 0.777853f, 0.777974f, 0.778094f, 0.778215f, 0.778335f, 0.778456f, 0.778576f, 0.778696f,
+ 0.778817f, 0.778937f, 0.779057f, 0.779177f, 0.779297f, 0.779418f, 0.779538f, 0.779658f,
+ 0.779778f, 0.779898f, 0.780018f, 0.780138f, 0.780258f, 0.780378f, 0.780498f, 0.780617f,
+ 0.780737f, 0.780857f, 0.780977f, 0.781097f, 0.781216f, 0.781336f, 0.781456f, 0.781575f,
+ 0.781695f, 0.781814f, 0.781934f, 0.782053f, 0.782173f, 0.782292f, 0.782412f, 0.782531f,
+ 0.782651f, 0.782770f, 0.782889f, 0.783009f, 0.783128f, 0.783247f, 0.783366f, 0.783485f,
+ 0.783605f, 0.783724f, 0.783843f, 0.783962f, 0.784081f, 0.784200f, 0.784319f, 0.784438f,
+ 0.784557f, 0.784675f, 0.784794f, 0.784913f, 0.785032f, 0.785151f, 0.785269f, 0.785388f,
+ 0.785507f, 0.785625f, 0.785744f, 0.785863f, 0.785981f, 0.786100f, 0.786218f, 0.786337f,
+ 0.786455f, 0.786574f, 0.786692f, 0.786810f, 0.786929f, 0.787047f, 0.787165f, 0.787284f,
+ 0.787402f, 0.787520f, 0.787638f, 0.787756f, 0.787874f, 0.787992f, 0.788110f, 0.788228f,
+ 0.788346f, 0.788464f, 0.788582f, 0.788700f, 0.788818f, 0.788936f, 0.789054f, 0.789172f,
+ 0.789289f, 0.789407f, 0.789525f, 0.789642f, 0.789760f, 0.789878f, 0.789995f, 0.790113f,
+ 0.790230f, 0.790348f, 0.790465f, 0.790583f, 0.790700f, 0.790817f, 0.790935f, 0.791052f,
+ 0.791169f, 0.791287f, 0.791404f, 0.791521f, 0.791638f, 0.791755f, 0.791872f, 0.791990f,
+ 0.792107f, 0.792224f, 0.792341f, 0.792458f, 0.792575f, 0.792691f, 0.792808f, 0.792925f,
+ 0.793042f, 0.793159f, 0.793276f, 0.793392f, 0.793509f, 0.793626f, 0.793742f, 0.793859f,
+ 0.793975f, 0.794092f, 0.794209f, 0.794325f, 0.794442f, 0.794558f, 0.794674f, 0.794791f,
+ 0.794907f, 0.795023f, 0.795140f, 0.795256f, 0.795372f, 0.795488f, 0.795605f, 0.795721f,
+ 0.795837f, 0.795953f, 0.796069f, 0.796185f, 0.796301f, 0.796417f, 0.796533f, 0.796649f,
+ 0.796765f, 0.796881f, 0.796996f, 0.797112f, 0.797228f, 0.797344f, 0.797459f, 0.797575f,
+ 0.797691f, 0.797806f, 0.797922f, 0.798038f, 0.798153f, 0.798269f, 0.798384f, 0.798500f,
+ 0.798615f, 0.798730f, 0.798846f, 0.798961f, 0.799076f, 0.799192f, 0.799307f, 0.799422f,
+ 0.799537f, 0.799652f, 0.799768f, 0.799883f, 0.799998f, 0.800113f, 0.800228f, 0.800343f,
+ 0.800458f, 0.800573f, 0.800687f, 0.800802f, 0.800917f, 0.801032f, 0.801147f, 0.801261f,
+ 0.801376f, 0.801491f, 0.801606f, 0.801720f, 0.801835f, 0.801949f, 0.802064f, 0.802178f,
+ 0.802293f, 0.802407f, 0.802522f, 0.802636f, 0.802750f, 0.802865f, 0.802979f, 0.803093f,
+ 0.803208f, 0.803322f, 0.803436f, 0.803550f, 0.803664f, 0.803778f, 0.803892f, 0.804006f,
+ 0.804120f, 0.804234f, 0.804348f, 0.804462f, 0.804576f, 0.804690f, 0.804804f, 0.804918f,
+ 0.805031f, 0.805145f, 0.805259f, 0.805372f, 0.805486f, 0.805600f, 0.805713f, 0.805827f,
+ 0.805940f, 0.806054f, 0.806167f, 0.806281f, 0.806394f, 0.806508f, 0.806621f, 0.806734f,
+ 0.806848f, 0.806961f, 0.807074f, 0.807187f, 0.807300f, 0.807414f, 0.807527f, 0.807640f,
+ 0.807753f, 0.807866f, 0.807979f, 0.808092f, 0.808205f, 0.808318f, 0.808430f, 0.808543f,
+ 0.808656f, 0.808769f, 0.808882f, 0.808994f, 0.809107f, 0.809220f, 0.809332f, 0.809445f,
+ 0.809558f, 0.809670f, 0.809783f, 0.809895f, 0.810008f, 0.810120f, 0.810232f, 0.810345f,
+ 0.810457f, 0.810570f, 0.810682f, 0.810794f, 0.810906f, 0.811018f, 0.811131f, 0.811243f,
+ 0.811355f, 0.811467f, 0.811579f, 0.811691f, 0.811803f, 0.811915f, 0.812027f, 0.812139f,
+ 0.812251f, 0.812362f, 0.812474f, 0.812586f, 0.812698f, 0.812809f, 0.812921f, 0.813033f,
+ 0.813144f, 0.813256f, 0.813368f, 0.813479f, 0.813591f, 0.813702f, 0.813814f, 0.813925f,
+ 0.814036f, 0.814148f, 0.814259f, 0.814370f, 0.814482f, 0.814593f, 0.814704f, 0.814815f,
+ 0.814926f, 0.815037f, 0.815149f, 0.815260f, 0.815371f, 0.815482f, 0.815593f, 0.815704f,
+ 0.815814f, 0.815925f, 0.816036f, 0.816147f, 0.816258f, 0.816368f, 0.816479f, 0.816590f,
+ 0.816701f, 0.816811f, 0.816922f, 0.817032f, 0.817143f, 0.817253f, 0.817364f, 0.817474f,
+ 0.817585f, 0.817695f, 0.817806f, 0.817916f, 0.818026f, 0.818137f, 0.818247f, 0.818357f,
+ 0.818467f, 0.818577f, 0.818687f, 0.818798f, 0.818908f, 0.819018f, 0.819128f, 0.819238f,
+ 0.819348f, 0.819457f, 0.819567f, 0.819677f, 0.819787f, 0.819897f, 0.820007f, 0.820116f,
+ 0.820226f, 0.820336f, 0.820445f, 0.820555f, 0.820664f, 0.820774f, 0.820884f, 0.820993f,
+ 0.821102f, 0.821212f, 0.821321f, 0.821431f, 0.821540f, 0.821649f, 0.821759f, 0.821868f,
+ 0.821977f, 0.822086f, 0.822195f, 0.822305f, 0.822414f, 0.822523f, 0.822632f, 0.822741f,
+ 0.822850f, 0.822959f, 0.823068f, 0.823177f, 0.823285f, 0.823394f, 0.823503f, 0.823612f,
+ 0.823721f, 0.823829f, 0.823938f, 0.824047f, 0.824155f, 0.824264f, 0.824372f, 0.824481f,
+ 0.824589f, 0.824698f, 0.824806f, 0.824915f, 0.825023f, 0.825131f, 0.825240f, 0.825348f,
+ 0.825456f, 0.825564f, 0.825673f, 0.825781f, 0.825889f, 0.825997f, 0.826105f, 0.826213f,
+ 0.826321f, 0.826429f, 0.826537f, 0.826645f, 0.826753f, 0.826861f, 0.826968f, 0.827076f,
+ 0.827184f, 0.827292f, 0.827399f, 0.827507f, 0.827615f, 0.827722f, 0.827830f, 0.827938f,
+ 0.828045f, 0.828153f, 0.828260f, 0.828367f, 0.828475f, 0.828582f, 0.828690f, 0.828797f,
+ 0.828904f, 0.829011f, 0.829119f, 0.829226f, 0.829333f, 0.829440f, 0.829547f, 0.829654f,
+ 0.829761f, 0.829868f, 0.829975f, 0.830082f, 0.830189f, 0.830296f, 0.830403f, 0.830510f,
+ 0.830616f, 0.830723f, 0.830830f, 0.830937f, 0.831043f, 0.831150f, 0.831257f, 0.831363f,
+ 0.831470f, 0.831576f, 0.831683f, 0.831789f, 0.831895f, 0.832002f, 0.832108f, 0.832215f,
+ 0.832321f, 0.832427f, 0.832533f, 0.832640f, 0.832746f, 0.832852f, 0.832958f, 0.833064f,
+ 0.833170f, 0.833276f, 0.833382f, 0.833488f, 0.833594f, 0.833700f, 0.833806f, 0.833912f,
+ 0.834018f, 0.834123f, 0.834229f, 0.834335f, 0.834440f, 0.834546f, 0.834652f, 0.834757f,
+ 0.834863f, 0.834968f, 0.835074f, 0.835179f, 0.835285f, 0.835390f, 0.835496f, 0.835601f,
+ 0.835706f, 0.835812f, 0.835917f, 0.836022f, 0.836127f, 0.836232f, 0.836338f, 0.836443f,
+ 0.836548f, 0.836653f, 0.836758f, 0.836863f, 0.836968f, 0.837073f, 0.837178f, 0.837282f,
+ 0.837387f, 0.837492f, 0.837597f, 0.837701f, 0.837806f, 0.837911f, 0.838015f, 0.838120f,
+ 0.838225f, 0.838329f, 0.838434f, 0.838538f, 0.838643f, 0.838747f, 0.838852f, 0.838956f,
+ 0.839060f, 0.839165f, 0.839269f, 0.839373f, 0.839477f, 0.839581f, 0.839686f, 0.839790f,
+ 0.839894f, 0.839998f, 0.840102f, 0.840206f, 0.840310f, 0.840414f, 0.840518f, 0.840622f,
+ 0.840725f, 0.840829f, 0.840933f, 0.841037f, 0.841140f, 0.841244f, 0.841348f, 0.841451f,
+ 0.841555f, 0.841659f, 0.841762f, 0.841866f, 0.841969f, 0.842072f, 0.842176f, 0.842279f,
+ 0.842383f, 0.842486f, 0.842589f, 0.842692f, 0.842796f, 0.842899f, 0.843002f, 0.843105f,
+ 0.843208f, 0.843311f, 0.843414f, 0.843517f, 0.843620f, 0.843723f, 0.843826f, 0.843929f,
+ 0.844032f, 0.844135f, 0.844238f, 0.844340f, 0.844443f, 0.844546f, 0.844648f, 0.844751f,
+ 0.844854f, 0.844956f, 0.845059f, 0.845161f, 0.845264f, 0.845366f, 0.845469f, 0.845571f,
+ 0.845673f, 0.845776f, 0.845878f, 0.845980f, 0.846082f, 0.846185f, 0.846287f, 0.846389f,
+ 0.846491f, 0.846593f, 0.846695f, 0.846797f, 0.846899f, 0.847001f, 0.847103f, 0.847205f,
+ 0.847307f, 0.847408f, 0.847510f, 0.847612f, 0.847714f, 0.847815f, 0.847917f, 0.848019f,
+ 0.848120f, 0.848222f, 0.848323f, 0.848425f, 0.848526f, 0.848628f, 0.848729f, 0.848831f,
+ 0.848932f, 0.849033f, 0.849135f, 0.849236f, 0.849337f, 0.849438f, 0.849540f, 0.849641f,
+ 0.849742f, 0.849843f, 0.849944f, 0.850045f, 0.850146f, 0.850247f, 0.850348f, 0.850449f,
+ 0.850549f, 0.850650f, 0.850751f, 0.850852f, 0.850953f, 0.851053f, 0.851154f, 0.851255f,
+ 0.851355f, 0.851456f, 0.851556f, 0.851657f, 0.851757f, 0.851858f, 0.851958f, 0.852059f,
+ 0.852159f, 0.852259f, 0.852360f, 0.852460f, 0.852560f, 0.852660f, 0.852760f, 0.852861f,
+ 0.852961f, 0.853061f, 0.853161f, 0.853261f, 0.853361f, 0.853461f, 0.853561f, 0.853660f,
+ 0.853760f, 0.853860f, 0.853960f, 0.854060f, 0.854159f, 0.854259f, 0.854359f, 0.854458f,
+ 0.854558f, 0.854658f, 0.854757f, 0.854857f, 0.854956f, 0.855056f, 0.855155f, 0.855254f,
+ 0.855354f, 0.855453f, 0.855552f, 0.855651f, 0.855751f, 0.855850f, 0.855949f, 0.856048f,
+ 0.856147f, 0.856246f, 0.856345f, 0.856444f, 0.856543f, 0.856642f, 0.856741f, 0.856840f,
+ 0.856939f, 0.857038f, 0.857137f, 0.857235f, 0.857334f, 0.857433f, 0.857531f, 0.857630f,
+ 0.857729f, 0.857827f, 0.857926f, 0.858024f, 0.858123f, 0.858221f, 0.858320f, 0.858418f,
+ 0.858516f, 0.858615f, 0.858713f, 0.858811f, 0.858909f, 0.859007f, 0.859106f, 0.859204f,
+ 0.859302f, 0.859400f, 0.859498f, 0.859596f, 0.859694f, 0.859792f, 0.859890f, 0.859988f,
+ 0.860085f, 0.860183f, 0.860281f, 0.860379f, 0.860476f, 0.860574f, 0.860672f, 0.860769f,
+ 0.860867f, 0.860964f, 0.861062f, 0.861160f, 0.861257f, 0.861354f, 0.861452f, 0.861549f,
+ 0.861646f, 0.861744f, 0.861841f, 0.861938f, 0.862035f, 0.862133f, 0.862230f, 0.862327f,
+ 0.862424f, 0.862521f, 0.862618f, 0.862715f, 0.862812f, 0.862909f, 0.863006f, 0.863103f,
+ 0.863199f, 0.863296f, 0.863393f, 0.863490f, 0.863586f, 0.863683f, 0.863780f, 0.863876f,
+ 0.863973f, 0.864069f, 0.864166f, 0.864262f, 0.864359f, 0.864455f, 0.864552f, 0.864648f,
+ 0.864744f, 0.864841f, 0.864937f, 0.865033f, 0.865129f, 0.865225f, 0.865321f, 0.865418f,
+ 0.865514f, 0.865610f, 0.865706f, 0.865802f, 0.865898f, 0.865993f, 0.866089f, 0.866185f,
+ 0.866281f, 0.866377f, 0.866472f, 0.866568f, 0.866664f, 0.866759f, 0.866855f, 0.866951f,
+ 0.867046f, 0.867142f, 0.867237f, 0.867333f, 0.867428f, 0.867523f, 0.867619f, 0.867714f,
+ 0.867809f, 0.867905f, 0.868000f, 0.868095f, 0.868190f, 0.868285f, 0.868381f, 0.868476f,
+ 0.868571f, 0.868666f, 0.868761f, 0.868856f, 0.868951f, 0.869045f, 0.869140f, 0.869235f,
+ 0.869330f, 0.869425f, 0.869519f, 0.869614f, 0.869709f, 0.869803f, 0.869898f, 0.869992f,
+ 0.870087f, 0.870182f, 0.870276f, 0.870370f, 0.870465f, 0.870559f, 0.870654f, 0.870748f,
+ 0.870842f, 0.870936f, 0.871031f, 0.871125f, 0.871219f, 0.871313f, 0.871407f, 0.871501f,
+ 0.871595f, 0.871689f, 0.871783f, 0.871877f, 0.871971f, 0.872065f, 0.872159f, 0.872252f,
+ 0.872346f, 0.872440f, 0.872534f, 0.872627f, 0.872721f, 0.872814f, 0.872908f, 0.873001f,
+ 0.873095f, 0.873188f, 0.873282f, 0.873375f, 0.873469f, 0.873562f, 0.873655f, 0.873749f,
+ 0.873842f, 0.873935f, 0.874028f, 0.874121f, 0.874215f, 0.874308f, 0.874401f, 0.874494f,
+ 0.874587f, 0.874680f, 0.874773f, 0.874865f, 0.874958f, 0.875051f, 0.875144f, 0.875237f,
+ 0.875329f, 0.875422f, 0.875515f, 0.875607f, 0.875700f, 0.875793f, 0.875885f, 0.875978f,
+ 0.876070f, 0.876163f, 0.876255f, 0.876347f, 0.876440f, 0.876532f, 0.876624f, 0.876716f,
+ 0.876809f, 0.876901f, 0.876993f, 0.877085f, 0.877177f, 0.877269f, 0.877361f, 0.877453f,
+ 0.877545f, 0.877637f, 0.877729f, 0.877821f, 0.877913f, 0.878005f, 0.878096f, 0.878188f,
+ 0.878280f, 0.878371f, 0.878463f, 0.878555f, 0.878646f, 0.878738f, 0.878829f, 0.878921f,
+ 0.879012f, 0.879104f, 0.879195f, 0.879286f, 0.879378f, 0.879469f, 0.879560f, 0.879651f,
+ 0.879743f, 0.879834f, 0.879925f, 0.880016f, 0.880107f, 0.880198f, 0.880289f, 0.880380f,
+ 0.880471f, 0.880562f, 0.880653f, 0.880743f, 0.880834f, 0.880925f, 0.881016f, 0.881106f,
+ 0.881197f, 0.881288f, 0.881378f, 0.881469f, 0.881559f, 0.881650f, 0.881740f, 0.881831f,
+ 0.881921f, 0.882012f, 0.882102f, 0.882192f, 0.882283f, 0.882373f, 0.882463f, 0.882553f,
+ 0.882643f, 0.882733f, 0.882824f, 0.882914f, 0.883004f, 0.883094f, 0.883184f, 0.883273f,
+ 0.883363f, 0.883453f, 0.883543f, 0.883633f, 0.883723f, 0.883812f, 0.883902f, 0.883992f,
+ 0.884081f, 0.884171f, 0.884260f, 0.884350f, 0.884439f, 0.884529f, 0.884618f, 0.884708f,
+ 0.884797f, 0.884886f, 0.884976f, 0.885065f, 0.885154f, 0.885243f, 0.885333f, 0.885422f,
+ 0.885511f, 0.885600f, 0.885689f, 0.885778f, 0.885867f, 0.885956f, 0.886045f, 0.886134f,
+ 0.886223f, 0.886311f, 0.886400f, 0.886489f, 0.886578f, 0.886666f, 0.886755f, 0.886844f,
+ 0.886932f, 0.887021f, 0.887109f, 0.887198f, 0.887286f, 0.887375f, 0.887463f, 0.887551f,
+ 0.887640f, 0.887728f, 0.887816f, 0.887904f, 0.887993f, 0.888081f, 0.888169f, 0.888257f,
+ 0.888345f, 0.888433f, 0.888521f, 0.888609f, 0.888697f, 0.888785f, 0.888873f, 0.888961f,
+ 0.889048f, 0.889136f, 0.889224f, 0.889312f, 0.889399f, 0.889487f, 0.889574f, 0.889662f,
+ 0.889750f, 0.889837f, 0.889925f, 0.890012f, 0.890099f, 0.890187f, 0.890274f, 0.890361f,
+ 0.890449f, 0.890536f, 0.890623f, 0.890710f, 0.890797f, 0.890885f, 0.890972f, 0.891059f,
+ 0.891146f, 0.891233f, 0.891320f, 0.891407f, 0.891493f, 0.891580f, 0.891667f, 0.891754f,
+ 0.891841f, 0.891927f, 0.892014f, 0.892101f, 0.892187f, 0.892274f, 0.892361f, 0.892447f,
+ 0.892534f, 0.892620f, 0.892706f, 0.892793f, 0.892879f, 0.892965f, 0.893052f, 0.893138f,
+ 0.893224f, 0.893310f, 0.893397f, 0.893483f, 0.893569f, 0.893655f, 0.893741f, 0.893827f,
+ 0.893913f, 0.893999f, 0.894085f, 0.894171f, 0.894256f, 0.894342f, 0.894428f, 0.894514f,
+ 0.894599f, 0.894685f, 0.894771f, 0.894856f, 0.894942f, 0.895028f, 0.895113f, 0.895198f,
+ 0.895284f, 0.895369f, 0.895455f, 0.895540f, 0.895625f, 0.895711f, 0.895796f, 0.895881f,
+ 0.895966f, 0.896051f, 0.896137f, 0.896222f, 0.896307f, 0.896392f, 0.896477f, 0.896562f,
+ 0.896646f, 0.896731f, 0.896816f, 0.896901f, 0.896986f, 0.897071f, 0.897155f, 0.897240f,
+ 0.897325f, 0.897409f, 0.897494f, 0.897578f, 0.897663f, 0.897747f, 0.897832f, 0.897916f,
+ 0.898001f, 0.898085f, 0.898169f, 0.898254f, 0.898338f, 0.898422f, 0.898506f, 0.898590f,
+ 0.898674f, 0.898759f, 0.898843f, 0.898927f, 0.899011f, 0.899095f, 0.899179f, 0.899262f,
+ 0.899346f, 0.899430f, 0.899514f, 0.899598f, 0.899681f, 0.899765f, 0.899849f, 0.899932f,
+ 0.900016f, 0.900099f, 0.900183f, 0.900266f, 0.900350f, 0.900433f, 0.900517f, 0.900600f,
+ 0.900683f, 0.900767f, 0.900850f, 0.900933f, 0.901016f, 0.901100f, 0.901183f, 0.901266f,
+ 0.901349f, 0.901432f, 0.901515f, 0.901598f, 0.901681f, 0.901764f, 0.901847f, 0.901929f,
+ 0.902012f, 0.902095f, 0.902178f, 0.902260f, 0.902343f, 0.902426f, 0.902508f, 0.902591f,
+ 0.902673f, 0.902756f, 0.902838f, 0.902921f, 0.903003f, 0.903085f, 0.903168f, 0.903250f,
+ 0.903332f, 0.903415f, 0.903497f, 0.903579f, 0.903661f, 0.903743f, 0.903825f, 0.903907f,
+ 0.903989f, 0.904071f, 0.904153f, 0.904235f, 0.904317f, 0.904399f, 0.904481f, 0.904562f,
+ 0.904644f, 0.904726f, 0.904807f, 0.904889f, 0.904971f, 0.905052f, 0.905134f, 0.905215f,
+ 0.905297f, 0.905378f, 0.905460f, 0.905541f, 0.905622f, 0.905704f, 0.905785f, 0.905866f,
+ 0.905947f, 0.906028f, 0.906110f, 0.906191f, 0.906272f, 0.906353f, 0.906434f, 0.906515f,
+ 0.906596f, 0.906677f, 0.906757f, 0.906838f, 0.906919f, 0.907000f, 0.907081f, 0.907161f,
+ 0.907242f, 0.907323f, 0.907403f, 0.907484f, 0.907564f, 0.907645f, 0.907725f, 0.907806f,
+ 0.907886f, 0.907966f, 0.908047f, 0.908127f, 0.908207f, 0.908288f, 0.908368f, 0.908448f,
+ 0.908528f, 0.908608f, 0.908688f, 0.908768f, 0.908848f, 0.908928f, 0.909008f, 0.909088f,
+ 0.909168f, 0.909248f, 0.909328f, 0.909407f, 0.909487f, 0.909567f, 0.909646f, 0.909726f,
+ 0.909806f, 0.909885f, 0.909965f, 0.910044f, 0.910124f, 0.910203f, 0.910283f, 0.910362f,
+ 0.910441f, 0.910521f, 0.910600f, 0.910679f, 0.910758f, 0.910837f, 0.910917f, 0.910996f,
+ 0.911075f, 0.911154f, 0.911233f, 0.911312f, 0.911391f, 0.911470f, 0.911548f, 0.911627f,
+ 0.911706f, 0.911785f, 0.911864f, 0.911942f, 0.912021f, 0.912099f, 0.912178f, 0.912257f,
+ 0.912335f, 0.912414f, 0.912492f, 0.912571f, 0.912649f, 0.912727f, 0.912806f, 0.912884f,
+ 0.912962f, 0.913040f, 0.913119f, 0.913197f, 0.913275f, 0.913353f, 0.913431f, 0.913509f,
+ 0.913587f, 0.913665f, 0.913743f, 0.913821f, 0.913899f, 0.913976f, 0.914054f, 0.914132f,
+ 0.914210f, 0.914287f, 0.914365f, 0.914443f, 0.914520f, 0.914598f, 0.914675f, 0.914753f,
+ 0.914830f, 0.914908f, 0.914985f, 0.915062f, 0.915140f, 0.915217f, 0.915294f, 0.915372f,
+ 0.915449f, 0.915526f, 0.915603f, 0.915680f, 0.915757f, 0.915834f, 0.915911f, 0.915988f,
+ 0.916065f, 0.916142f, 0.916219f, 0.916296f, 0.916372f, 0.916449f, 0.916526f, 0.916602f,
+ 0.916679f, 0.916756f, 0.916832f, 0.916909f, 0.916985f, 0.917062f, 0.917138f, 0.917215f,
+ 0.917291f, 0.917367f, 0.917444f, 0.917520f, 0.917596f, 0.917672f, 0.917749f, 0.917825f,
+ 0.917901f, 0.917977f, 0.918053f, 0.918129f, 0.918205f, 0.918281f, 0.918357f, 0.918433f,
+ 0.918508f, 0.918584f, 0.918660f, 0.918736f, 0.918811f, 0.918887f, 0.918963f, 0.919038f,
+ 0.919114f, 0.919189f, 0.919265f, 0.919340f, 0.919416f, 0.919491f, 0.919567f, 0.919642f,
+ 0.919717f, 0.919792f, 0.919868f, 0.919943f, 0.920018f, 0.920093f, 0.920168f, 0.920243f,
+ 0.920318f, 0.920393f, 0.920468f, 0.920543f, 0.920618f, 0.920693f, 0.920768f, 0.920842f,
+ 0.920917f, 0.920992f, 0.921067f, 0.921141f, 0.921216f, 0.921291f, 0.921365f, 0.921440f,
+ 0.921514f, 0.921588f, 0.921663f, 0.921737f, 0.921812f, 0.921886f, 0.921960f, 0.922034f,
+ 0.922109f, 0.922183f, 0.922257f, 0.922331f, 0.922405f, 0.922479f, 0.922553f, 0.922627f,
+ 0.922701f, 0.922775f, 0.922849f, 0.922923f, 0.922997f, 0.923070f, 0.923144f, 0.923218f,
+ 0.923291f, 0.923365f, 0.923439f, 0.923512f, 0.923586f, 0.923659f, 0.923733f, 0.923806f,
+ 0.923880f, 0.923953f, 0.924026f, 0.924100f, 0.924173f, 0.924246f, 0.924319f, 0.924392f,
+ 0.924465f, 0.924539f, 0.924612f, 0.924685f, 0.924758f, 0.924831f, 0.924904f, 0.924976f,
+ 0.925049f, 0.925122f, 0.925195f, 0.925268f, 0.925340f, 0.925413f, 0.925486f, 0.925558f,
+ 0.925631f, 0.925703f, 0.925776f, 0.925848f, 0.925921f, 0.925993f, 0.926066f, 0.926138f,
+ 0.926210f, 0.926283f, 0.926355f, 0.926427f, 0.926499f, 0.926571f, 0.926643f, 0.926715f,
+ 0.926787f, 0.926859f, 0.926931f, 0.927003f, 0.927075f, 0.927147f, 0.927219f, 0.927291f,
+ 0.927363f, 0.927434f, 0.927506f, 0.927578f, 0.927649f, 0.927721f, 0.927792f, 0.927864f,
+ 0.927935f, 0.928007f, 0.928078f, 0.928150f, 0.928221f, 0.928292f, 0.928364f, 0.928435f,
+ 0.928506f, 0.928577f, 0.928648f, 0.928720f, 0.928791f, 0.928862f, 0.928933f, 0.929004f,
+ 0.929075f, 0.929146f, 0.929216f, 0.929287f, 0.929358f, 0.929429f, 0.929500f, 0.929570f,
+ 0.929641f, 0.929712f, 0.929782f, 0.929853f, 0.929923f, 0.929994f, 0.930064f, 0.930135f,
+ 0.930205f, 0.930275f, 0.930346f, 0.930416f, 0.930486f, 0.930556f, 0.930627f, 0.930697f,
+ 0.930767f, 0.930837f, 0.930907f, 0.930977f, 0.931047f, 0.931117f, 0.931187f, 0.931257f,
+ 0.931327f, 0.931397f, 0.931466f, 0.931536f, 0.931606f, 0.931675f, 0.931745f, 0.931815f,
+ 0.931884f, 0.931954f, 0.932023f, 0.932093f, 0.932162f, 0.932232f, 0.932301f, 0.932370f,
+ 0.932440f, 0.932509f, 0.932578f, 0.932647f, 0.932716f, 0.932786f, 0.932855f, 0.932924f,
+ 0.932993f, 0.933062f, 0.933131f, 0.933200f, 0.933269f, 0.933337f, 0.933406f, 0.933475f,
+ 0.933544f, 0.933612f, 0.933681f, 0.933750f, 0.933818f, 0.933887f, 0.933956f, 0.934024f,
+ 0.934093f, 0.934161f, 0.934229f, 0.934298f, 0.934366f, 0.934434f, 0.934503f, 0.934571f,
+ 0.934639f, 0.934707f, 0.934775f, 0.934844f, 0.934912f, 0.934980f, 0.935048f, 0.935116f,
+ 0.935184f, 0.935251f, 0.935319f, 0.935387f, 0.935455f, 0.935523f, 0.935590f, 0.935658f,
+ 0.935726f, 0.935793f, 0.935861f, 0.935928f, 0.935996f, 0.936063f, 0.936131f, 0.936198f,
+ 0.936266f, 0.936333f, 0.936400f, 0.936468f, 0.936535f, 0.936602f, 0.936669f, 0.936736f,
+ 0.936803f, 0.936871f, 0.936938f, 0.937005f, 0.937072f, 0.937138f, 0.937205f, 0.937272f,
+ 0.937339f, 0.937406f, 0.937473f, 0.937539f, 0.937606f, 0.937673f, 0.937739f, 0.937806f,
+ 0.937872f, 0.937939f, 0.938005f, 0.938072f, 0.938138f, 0.938205f, 0.938271f, 0.938337f,
+ 0.938404f, 0.938470f, 0.938536f, 0.938602f, 0.938668f, 0.938734f, 0.938800f, 0.938866f,
+ 0.938932f, 0.938998f, 0.939064f, 0.939130f, 0.939196f, 0.939262f, 0.939328f, 0.939394f,
+ 0.939459f, 0.939525f, 0.939591f, 0.939656f, 0.939722f, 0.939787f, 0.939853f, 0.939918f,
+ 0.939984f, 0.940049f, 0.940115f, 0.940180f, 0.940245f, 0.940310f, 0.940376f, 0.940441f,
+ 0.940506f, 0.940571f, 0.940636f, 0.940701f, 0.940766f, 0.940831f, 0.940896f, 0.940961f,
+ 0.941026f, 0.941091f, 0.941156f, 0.941221f, 0.941285f, 0.941350f, 0.941415f, 0.941479f,
+ 0.941544f, 0.941609f, 0.941673f, 0.941738f, 0.941802f, 0.941867f, 0.941931f, 0.941995f,
+ 0.942060f, 0.942124f, 0.942188f, 0.942253f, 0.942317f, 0.942381f, 0.942445f, 0.942509f,
+ 0.942573f, 0.942637f, 0.942701f, 0.942765f, 0.942829f, 0.942893f, 0.942957f, 0.943021f,
+ 0.943084f, 0.943148f, 0.943212f, 0.943276f, 0.943339f, 0.943403f, 0.943466f, 0.943530f,
+ 0.943593f, 0.943657f, 0.943720f, 0.943784f, 0.943847f, 0.943910f, 0.943974f, 0.944037f,
+ 0.944100f, 0.944163f, 0.944227f, 0.944290f, 0.944353f, 0.944416f, 0.944479f, 0.944542f,
+ 0.944605f, 0.944668f, 0.944731f, 0.944793f, 0.944856f, 0.944919f, 0.944982f, 0.945045f,
+ 0.945107f, 0.945170f, 0.945232f, 0.945295f, 0.945358f, 0.945420f, 0.945482f, 0.945545f,
+ 0.945607f, 0.945670f, 0.945732f, 0.945794f, 0.945857f, 0.945919f, 0.945981f, 0.946043f,
+ 0.946105f, 0.946167f, 0.946229f, 0.946291f, 0.946353f, 0.946415f, 0.946477f, 0.946539f,
+ 0.946601f, 0.946663f, 0.946724f, 0.946786f, 0.946848f, 0.946910f, 0.946971f, 0.947033f,
+ 0.947094f, 0.947156f, 0.947217f, 0.947279f, 0.947340f, 0.947402f, 0.947463f, 0.947524f,
+ 0.947586f, 0.947647f, 0.947708f, 0.947769f, 0.947830f, 0.947891f, 0.947953f, 0.948014f,
+ 0.948075f, 0.948136f, 0.948196f, 0.948257f, 0.948318f, 0.948379f, 0.948440f, 0.948501f,
+ 0.948561f, 0.948622f, 0.948683f, 0.948743f, 0.948804f, 0.948864f, 0.948925f, 0.948985f,
+ 0.949046f, 0.949106f, 0.949167f, 0.949227f, 0.949287f, 0.949348f, 0.949408f, 0.949468f,
+ 0.949528f, 0.949588f, 0.949648f, 0.949708f, 0.949768f, 0.949829f, 0.949888f, 0.949948f,
+ 0.950008f, 0.950068f, 0.950128f, 0.950188f, 0.950247f, 0.950307f, 0.950367f, 0.950426f,
+ 0.950486f, 0.950546f, 0.950605f, 0.950665f, 0.950724f, 0.950784f, 0.950843f, 0.950902f,
+ 0.950962f, 0.951021f, 0.951080f, 0.951139f, 0.951199f, 0.951258f, 0.951317f, 0.951376f,
+ 0.951435f, 0.951494f, 0.951553f, 0.951612f, 0.951671f, 0.951730f, 0.951789f, 0.951847f,
+ 0.951906f, 0.951965f, 0.952024f, 0.952082f, 0.952141f, 0.952199f, 0.952258f, 0.952317f,
+ 0.952375f, 0.952433f, 0.952492f, 0.952550f, 0.952609f, 0.952667f, 0.952725f, 0.952783f,
+ 0.952842f, 0.952900f, 0.952958f, 0.953016f, 0.953074f, 0.953132f, 0.953190f, 0.953248f,
+ 0.953306f, 0.953364f, 0.953422f, 0.953480f, 0.953537f, 0.953595f, 0.953653f, 0.953711f,
+ 0.953768f, 0.953826f, 0.953883f, 0.953941f, 0.953998f, 0.954056f, 0.954113f, 0.954171f,
+ 0.954228f, 0.954285f, 0.954343f, 0.954400f, 0.954457f, 0.954514f, 0.954572f, 0.954629f,
+ 0.954686f, 0.954743f, 0.954800f, 0.954857f, 0.954914f, 0.954971f, 0.955028f, 0.955084f,
+ 0.955141f, 0.955198f, 0.955255f, 0.955311f, 0.955368f, 0.955425f, 0.955481f, 0.955538f,
+ 0.955594f, 0.955651f, 0.955707f, 0.955764f, 0.955820f, 0.955876f, 0.955933f, 0.955989f,
+ 0.956045f, 0.956101f, 0.956158f, 0.956214f, 0.956270f, 0.956326f, 0.956382f, 0.956438f,
+ 0.956494f, 0.956550f, 0.956606f, 0.956662f, 0.956717f, 0.956773f, 0.956829f, 0.956885f,
+ 0.956940f, 0.956996f, 0.957052f, 0.957107f, 0.957163f, 0.957218f, 0.957274f, 0.957329f,
+ 0.957385f, 0.957440f, 0.957495f, 0.957550f, 0.957606f, 0.957661f, 0.957716f, 0.957771f,
+ 0.957826f, 0.957882f, 0.957937f, 0.957992f, 0.958046f, 0.958101f, 0.958156f, 0.958211f,
+ 0.958266f, 0.958321f, 0.958376f, 0.958430f, 0.958485f, 0.958540f, 0.958594f, 0.958649f,
+ 0.958703f, 0.958758f, 0.958812f, 0.958867f, 0.958921f, 0.958976f, 0.959030f, 0.959084f,
+ 0.959139f, 0.959193f, 0.959247f, 0.959301f, 0.959355f, 0.959409f, 0.959463f, 0.959518f,
+ 0.959572f, 0.959625f, 0.959679f, 0.959733f, 0.959787f, 0.959841f, 0.959895f, 0.959948f,
+ 0.960002f, 0.960056f, 0.960109f, 0.960163f, 0.960217f, 0.960270f, 0.960324f, 0.960377f,
+ 0.960431f, 0.960484f, 0.960537f, 0.960591f, 0.960644f, 0.960697f, 0.960750f, 0.960804f,
+ 0.960857f, 0.960910f, 0.960963f, 0.961016f, 0.961069f, 0.961122f, 0.961175f, 0.961228f,
+ 0.961280f, 0.961333f, 0.961386f, 0.961439f, 0.961492f, 0.961544f, 0.961597f, 0.961649f,
+ 0.961702f, 0.961755f, 0.961807f, 0.961860f, 0.961912f, 0.961964f, 0.962017f, 0.962069f,
+ 0.962121f, 0.962174f, 0.962226f, 0.962278f, 0.962330f, 0.962382f, 0.962434f, 0.962486f,
+ 0.962538f, 0.962590f, 0.962642f, 0.962694f, 0.962746f, 0.962798f, 0.962850f, 0.962902f,
+ 0.962953f, 0.963005f, 0.963057f, 0.963108f, 0.963160f, 0.963211f, 0.963263f, 0.963314f,
+ 0.963366f, 0.963417f, 0.963469f, 0.963520f, 0.963571f, 0.963623f, 0.963674f, 0.963725f,
+ 0.963776f, 0.963827f, 0.963878f, 0.963929f, 0.963980f, 0.964031f, 0.964082f, 0.964133f,
+ 0.964184f, 0.964235f, 0.964286f, 0.964336f, 0.964387f, 0.964438f, 0.964489f, 0.964539f,
+ 0.964590f, 0.964640f, 0.964691f, 0.964741f, 0.964792f, 0.964842f, 0.964893f, 0.964943f,
+ 0.964993f, 0.965044f, 0.965094f, 0.965144f, 0.965194f, 0.965244f, 0.965294f, 0.965344f,
+ 0.965394f, 0.965444f, 0.965494f, 0.965544f, 0.965594f, 0.965644f, 0.965694f, 0.965744f,
+ 0.965793f, 0.965843f, 0.965893f, 0.965942f, 0.965992f, 0.966042f, 0.966091f, 0.966141f,
+ 0.966190f, 0.966239f, 0.966289f, 0.966338f, 0.966387f, 0.966437f, 0.966486f, 0.966535f,
+ 0.966584f, 0.966633f, 0.966683f, 0.966732f, 0.966781f, 0.966830f, 0.966879f, 0.966928f,
+ 0.966976f, 0.967025f, 0.967074f, 0.967123f, 0.967172f, 0.967220f, 0.967269f, 0.967318f,
+ 0.967366f, 0.967415f, 0.967463f, 0.967512f, 0.967560f, 0.967609f, 0.967657f, 0.967706f,
+ 0.967754f, 0.967802f, 0.967850f, 0.967899f, 0.967947f, 0.967995f, 0.968043f, 0.968091f,
+ 0.968139f, 0.968187f, 0.968235f, 0.968283f, 0.968331f, 0.968379f, 0.968427f, 0.968474f,
+ 0.968522f, 0.968570f, 0.968617f, 0.968665f, 0.968713f, 0.968760f, 0.968808f, 0.968855f,
+ 0.968903f, 0.968950f, 0.968998f, 0.969045f, 0.969092f, 0.969140f, 0.969187f, 0.969234f,
+ 0.969281f, 0.969328f, 0.969375f, 0.969423f, 0.969470f, 0.969517f, 0.969564f, 0.969611f,
+ 0.969657f, 0.969704f, 0.969751f, 0.969798f, 0.969845f, 0.969891f, 0.969938f, 0.969985f,
+ 0.970031f, 0.970078f, 0.970124f, 0.970171f, 0.970217f, 0.970264f, 0.970310f, 0.970357f,
+ 0.970403f, 0.970449f, 0.970495f, 0.970542f, 0.970588f, 0.970634f, 0.970680f, 0.970726f,
+ 0.970772f, 0.970818f, 0.970864f, 0.970910f, 0.970956f, 0.971002f, 0.971048f, 0.971093f,
+ 0.971139f, 0.971185f, 0.971231f, 0.971276f, 0.971322f, 0.971367f, 0.971413f, 0.971458f,
+ 0.971504f, 0.971549f, 0.971595f, 0.971640f, 0.971685f, 0.971731f, 0.971776f, 0.971821f,
+ 0.971866f, 0.971911f, 0.971957f, 0.972002f, 0.972047f, 0.972092f, 0.972137f, 0.972182f,
+ 0.972227f, 0.972271f, 0.972316f, 0.972361f, 0.972406f, 0.972450f, 0.972495f, 0.972540f,
+ 0.972584f, 0.972629f, 0.972673f, 0.972718f, 0.972762f, 0.972807f, 0.972851f, 0.972896f,
+ 0.972940f, 0.972984f, 0.973028f, 0.973073f, 0.973117f, 0.973161f, 0.973205f, 0.973249f,
+ 0.973293f, 0.973337f, 0.973381f, 0.973425f, 0.973469f, 0.973513f, 0.973557f, 0.973601f,
+ 0.973644f, 0.973688f, 0.973732f, 0.973775f, 0.973819f, 0.973862f, 0.973906f, 0.973949f,
+ 0.973993f, 0.974036f, 0.974080f, 0.974123f, 0.974166f, 0.974210f, 0.974253f, 0.974296f,
+ 0.974339f, 0.974383f, 0.974426f, 0.974469f, 0.974512f, 0.974555f, 0.974598f, 0.974641f,
+ 0.974684f, 0.974726f, 0.974769f, 0.974812f, 0.974855f, 0.974897f, 0.974940f, 0.974983f,
+ 0.975025f, 0.975068f, 0.975110f, 0.975153f, 0.975195f, 0.975238f, 0.975280f, 0.975323f,
+ 0.975365f, 0.975407f, 0.975449f, 0.975492f, 0.975534f, 0.975576f, 0.975618f, 0.975660f,
+ 0.975702f, 0.975744f, 0.975786f, 0.975828f, 0.975870f, 0.975912f, 0.975954f, 0.975995f,
+ 0.976037f, 0.976079f, 0.976120f, 0.976162f, 0.976204f, 0.976245f, 0.976287f, 0.976328f,
+ 0.976370f, 0.976411f, 0.976453f, 0.976494f, 0.976535f, 0.976576f, 0.976618f, 0.976659f,
+ 0.976700f, 0.976741f, 0.976782f, 0.976823f, 0.976864f, 0.976905f, 0.976946f, 0.976987f,
+ 0.977028f, 0.977069f, 0.977110f, 0.977151f, 0.977191f, 0.977232f, 0.977273f, 0.977313f,
+ 0.977354f, 0.977394f, 0.977435f, 0.977475f, 0.977516f, 0.977556f, 0.977597f, 0.977637f,
+ 0.977677f, 0.977718f, 0.977758f, 0.977798f, 0.977838f, 0.977878f, 0.977918f, 0.977959f,
+ 0.977998f, 0.978038f, 0.978078f, 0.978118f, 0.978158f, 0.978198f, 0.978238f, 0.978278f,
+ 0.978317f, 0.978357f, 0.978397f, 0.978436f, 0.978476f, 0.978516f, 0.978555f, 0.978594f,
+ 0.978634f, 0.978673f, 0.978713f, 0.978752f, 0.978791f, 0.978831f, 0.978870f, 0.978909f,
+ 0.978948f, 0.978987f, 0.979026f, 0.979065f, 0.979104f, 0.979143f, 0.979182f, 0.979221f,
+ 0.979260f, 0.979299f, 0.979338f, 0.979376f, 0.979415f, 0.979454f, 0.979493f, 0.979531f,
+ 0.979570f, 0.979608f, 0.979647f, 0.979685f, 0.979724f, 0.979762f, 0.979800f, 0.979839f,
+ 0.979877f, 0.979915f, 0.979954f, 0.979992f, 0.980030f, 0.980068f, 0.980106f, 0.980144f,
+ 0.980182f, 0.980220f, 0.980258f, 0.980296f, 0.980334f, 0.980372f, 0.980409f, 0.980447f,
+ 0.980485f, 0.980523f, 0.980560f, 0.980598f, 0.980635f, 0.980673f, 0.980710f, 0.980748f,
+ 0.980785f, 0.980823f, 0.980860f, 0.980897f, 0.980935f, 0.980972f, 0.981009f, 0.981046f,
+ 0.981083f, 0.981120f, 0.981158f, 0.981195f, 0.981232f, 0.981269f, 0.981305f, 0.981342f,
+ 0.981379f, 0.981416f, 0.981453f, 0.981490f, 0.981526f, 0.981563f, 0.981600f, 0.981636f,
+ 0.981673f, 0.981709f, 0.981746f, 0.981782f, 0.981819f, 0.981855f, 0.981891f, 0.981928f,
+ 0.981964f, 0.982000f, 0.982036f, 0.982072f, 0.982109f, 0.982145f, 0.982181f, 0.982217f,
+ 0.982253f, 0.982289f, 0.982325f, 0.982360f, 0.982396f, 0.982432f, 0.982468f, 0.982504f,
+ 0.982539f, 0.982575f, 0.982611f, 0.982646f, 0.982682f, 0.982717f, 0.982753f, 0.982788f,
+ 0.982824f, 0.982859f, 0.982894f, 0.982930f, 0.982965f, 0.983000f, 0.983035f, 0.983070f,
+ 0.983105f, 0.983141f, 0.983176f, 0.983211f, 0.983246f, 0.983281f, 0.983315f, 0.983350f,
+ 0.983385f, 0.983420f, 0.983455f, 0.983489f, 0.983524f, 0.983559f, 0.983593f, 0.983628f,
+ 0.983662f, 0.983697f, 0.983731f, 0.983766f, 0.983800f, 0.983835f, 0.983869f, 0.983903f,
+ 0.983937f, 0.983972f, 0.984006f, 0.984040f, 0.984074f, 0.984108f, 0.984142f, 0.984176f,
+ 0.984210f, 0.984244f, 0.984278f, 0.984312f, 0.984346f, 0.984379f, 0.984413f, 0.984447f,
+ 0.984480f, 0.984514f, 0.984548f, 0.984581f, 0.984615f, 0.984648f, 0.984682f, 0.984715f,
+ 0.984748f, 0.984782f, 0.984815f, 0.984848f, 0.984882f, 0.984915f, 0.984948f, 0.984981f,
+ 0.985014f, 0.985047f, 0.985080f, 0.985113f, 0.985146f, 0.985179f, 0.985212f, 0.985245f,
+ 0.985278f, 0.985310f, 0.985343f, 0.985376f, 0.985408f, 0.985441f, 0.985474f, 0.985506f,
+ 0.985539f, 0.985571f, 0.985604f, 0.985636f, 0.985668f, 0.985701f, 0.985733f, 0.985765f,
+ 0.985798f, 0.985830f, 0.985862f, 0.985894f, 0.985926f, 0.985958f, 0.985990f, 0.986022f,
+ 0.986054f, 0.986086f, 0.986118f, 0.986150f, 0.986181f, 0.986213f, 0.986245f, 0.986276f,
+ 0.986308f, 0.986340f, 0.986371f, 0.986403f, 0.986434f, 0.986466f, 0.986497f, 0.986529f,
+ 0.986560f, 0.986591f, 0.986623f, 0.986654f, 0.986685f, 0.986716f, 0.986747f, 0.986778f,
+ 0.986809f, 0.986840f, 0.986871f, 0.986902f, 0.986933f, 0.986964f, 0.986995f, 0.987026f,
+ 0.987057f, 0.987087f, 0.987118f, 0.987149f, 0.987179f, 0.987210f, 0.987240f, 0.987271f,
+ 0.987301f, 0.987332f, 0.987362f, 0.987393f, 0.987423f, 0.987453f, 0.987484f, 0.987514f,
+ 0.987544f, 0.987574f, 0.987604f, 0.987634f, 0.987664f, 0.987694f, 0.987724f, 0.987754f,
+ 0.987784f, 0.987814f, 0.987844f, 0.987874f, 0.987903f, 0.987933f, 0.987963f, 0.987992f,
+ 0.988022f, 0.988052f, 0.988081f, 0.988111f, 0.988140f, 0.988169f, 0.988199f, 0.988228f,
+ 0.988258f, 0.988287f, 0.988316f, 0.988345f, 0.988374f, 0.988404f, 0.988433f, 0.988462f,
+ 0.988491f, 0.988520f, 0.988549f, 0.988578f, 0.988607f, 0.988635f, 0.988664f, 0.988693f,
+ 0.988722f, 0.988750f, 0.988779f, 0.988808f, 0.988836f, 0.988865f, 0.988893f, 0.988922f,
+ 0.988950f, 0.988979f, 0.989007f, 0.989035f, 0.989064f, 0.989092f, 0.989120f, 0.989148f,
+ 0.989177f, 0.989205f, 0.989233f, 0.989261f, 0.989289f, 0.989317f, 0.989345f, 0.989373f,
+ 0.989400f, 0.989428f, 0.989456f, 0.989484f, 0.989511f, 0.989539f, 0.989567f, 0.989594f,
+ 0.989622f, 0.989650f, 0.989677f, 0.989704f, 0.989732f, 0.989759f, 0.989787f, 0.989814f,
+ 0.989841f, 0.989869f, 0.989896f, 0.989923f, 0.989950f, 0.989977f, 0.990004f, 0.990031f,
+ 0.990058f, 0.990085f, 0.990112f, 0.990139f, 0.990166f, 0.990193f, 0.990219f, 0.990246f,
+ 0.990273f, 0.990299f, 0.990326f, 0.990353f, 0.990379f, 0.990406f, 0.990432f, 0.990459f,
+ 0.990485f, 0.990511f, 0.990538f, 0.990564f, 0.990590f, 0.990617f, 0.990643f, 0.990669f,
+ 0.990695f, 0.990721f, 0.990747f, 0.990773f, 0.990799f, 0.990825f, 0.990851f, 0.990877f,
+ 0.990903f, 0.990928f, 0.990954f, 0.990980f, 0.991006f, 0.991031f, 0.991057f, 0.991082f,
+ 0.991108f, 0.991133f, 0.991159f, 0.991184f, 0.991210f, 0.991235f, 0.991260f, 0.991286f,
+ 0.991311f, 0.991336f, 0.991361f, 0.991386f, 0.991411f, 0.991437f, 0.991462f, 0.991487f,
+ 0.991511f, 0.991536f, 0.991561f, 0.991586f, 0.991611f, 0.991636f, 0.991660f, 0.991685f,
+ 0.991710f, 0.991734f, 0.991759f, 0.991783f, 0.991808f, 0.991832f, 0.991857f, 0.991881f,
+ 0.991906f, 0.991930f, 0.991954f, 0.991979f, 0.992003f, 0.992027f, 0.992051f, 0.992075f,
+ 0.992099f, 0.992123f, 0.992147f, 0.992171f, 0.992195f, 0.992219f, 0.992243f, 0.992267f,
+ 0.992291f, 0.992314f, 0.992338f, 0.992362f, 0.992385f, 0.992409f, 0.992433f, 0.992456f,
+ 0.992480f, 0.992503f, 0.992526f, 0.992550f, 0.992573f, 0.992596f, 0.992620f, 0.992643f,
+ 0.992666f, 0.992689f, 0.992712f, 0.992736f, 0.992759f, 0.992782f, 0.992805f, 0.992828f,
+ 0.992850f, 0.992873f, 0.992896f, 0.992919f, 0.992942f, 0.992964f, 0.992987f, 0.993010f,
+ 0.993032f, 0.993055f, 0.993077f, 0.993100f, 0.993122f, 0.993145f, 0.993167f, 0.993190f,
+ 0.993212f, 0.993234f, 0.993257f, 0.993279f, 0.993301f, 0.993323f, 0.993345f, 0.993367f,
+ 0.993389f, 0.993411f, 0.993433f, 0.993455f, 0.993477f, 0.993499f, 0.993521f, 0.993542f,
+ 0.993564f, 0.993586f, 0.993608f, 0.993629f, 0.993651f, 0.993672f, 0.993694f, 0.993715f,
+ 0.993737f, 0.993758f, 0.993779f, 0.993801f, 0.993822f, 0.993843f, 0.993865f, 0.993886f,
+ 0.993907f, 0.993928f, 0.993949f, 0.993970f, 0.993991f, 0.994012f, 0.994033f, 0.994054f,
+ 0.994075f, 0.994096f, 0.994116f, 0.994137f, 0.994158f, 0.994179f, 0.994199f, 0.994220f,
+ 0.994240f, 0.994261f, 0.994281f, 0.994302f, 0.994322f, 0.994343f, 0.994363f, 0.994383f,
+ 0.994404f, 0.994424f, 0.994444f, 0.994464f, 0.994484f, 0.994505f, 0.994525f, 0.994545f,
+ 0.994565f, 0.994585f, 0.994604f, 0.994624f, 0.994644f, 0.994664f, 0.994684f, 0.994703f,
+ 0.994723f, 0.994743f, 0.994762f, 0.994782f, 0.994802f, 0.994821f, 0.994841f, 0.994860f,
+ 0.994879f, 0.994899f, 0.994918f, 0.994937f, 0.994957f, 0.994976f, 0.994995f, 0.995014f,
+ 0.995033f, 0.995052f, 0.995071f, 0.995090f, 0.995109f, 0.995128f, 0.995147f, 0.995166f,
+ 0.995185f, 0.995203f, 0.995222f, 0.995241f, 0.995260f, 0.995278f, 0.995297f, 0.995315f,
+ 0.995334f, 0.995352f, 0.995371f, 0.995389f, 0.995408f, 0.995426f, 0.995444f, 0.995463f,
+ 0.995481f, 0.995499f, 0.995517f, 0.995535f, 0.995553f, 0.995571f, 0.995589f, 0.995607f,
+ 0.995625f, 0.995643f, 0.995661f, 0.995679f, 0.995697f, 0.995714f, 0.995732f, 0.995750f,
+ 0.995767f, 0.995785f, 0.995803f, 0.995820f, 0.995838f, 0.995855f, 0.995872f, 0.995890f,
+ 0.995907f, 0.995925f, 0.995942f, 0.995959f, 0.995976f, 0.995993f, 0.996011f, 0.996028f,
+ 0.996045f, 0.996062f, 0.996079f, 0.996096f, 0.996113f, 0.996129f, 0.996146f, 0.996163f,
+ 0.996180f, 0.996197f, 0.996213f, 0.996230f, 0.996247f, 0.996263f, 0.996280f, 0.996296f,
+ 0.996313f, 0.996329f, 0.996345f, 0.996362f, 0.996378f, 0.996394f, 0.996411f, 0.996427f,
+ 0.996443f, 0.996459f, 0.996475f, 0.996491f, 0.996507f, 0.996523f, 0.996539f, 0.996555f,
+ 0.996571f, 0.996587f, 0.996603f, 0.996619f, 0.996634f, 0.996650f, 0.996666f, 0.996681f,
+ 0.996697f, 0.996712f, 0.996728f, 0.996743f, 0.996759f, 0.996774f, 0.996790f, 0.996805f,
+ 0.996820f, 0.996836f, 0.996851f, 0.996866f, 0.996881f, 0.996896f, 0.996911f, 0.996926f,
+ 0.996941f, 0.996956f, 0.996971f, 0.996986f, 0.997001f, 0.997016f, 0.997031f, 0.997045f,
+ 0.997060f, 0.997075f, 0.997089f, 0.997104f, 0.997119f, 0.997133f, 0.997148f, 0.997162f,
+ 0.997176f, 0.997191f, 0.997205f, 0.997219f, 0.997234f, 0.997248f, 0.997262f, 0.997276f,
+ 0.997290f, 0.997305f, 0.997319f, 0.997333f, 0.997347f, 0.997361f, 0.997374f, 0.997388f,
+ 0.997402f, 0.997416f, 0.997430f, 0.997443f, 0.997457f, 0.997471f, 0.997484f, 0.997498f,
+ 0.997511f, 0.997525f, 0.997538f, 0.997552f, 0.997565f, 0.997579f, 0.997592f, 0.997605f,
+ 0.997618f, 0.997632f, 0.997645f, 0.997658f, 0.997671f, 0.997684f, 0.997697f, 0.997710f,
+ 0.997723f, 0.997736f, 0.997749f, 0.997762f, 0.997774f, 0.997787f, 0.997800f, 0.997813f,
+ 0.997825f, 0.997838f, 0.997851f, 0.997863f, 0.997876f, 0.997888f, 0.997901f, 0.997913f,
+ 0.997925f, 0.997938f, 0.997950f, 0.997962f, 0.997974f, 0.997987f, 0.997999f, 0.998011f,
+ 0.998023f, 0.998035f, 0.998047f, 0.998059f, 0.998071f, 0.998083f, 0.998094f, 0.998106f,
+ 0.998118f, 0.998130f, 0.998142f, 0.998153f, 0.998165f, 0.998176f, 0.998188f, 0.998200f,
+ 0.998211f, 0.998222f, 0.998234f, 0.998245f, 0.998257f, 0.998268f, 0.998279f, 0.998290f,
+ 0.998302f, 0.998313f, 0.998324f, 0.998335f, 0.998346f, 0.998357f, 0.998368f, 0.998379f,
+ 0.998390f, 0.998401f, 0.998411f, 0.998422f, 0.998433f, 0.998444f, 0.998454f, 0.998465f,
+ 0.998476f, 0.998486f, 0.998497f, 0.998507f, 0.998518f, 0.998528f, 0.998538f, 0.998549f,
+ 0.998559f, 0.998569f, 0.998580f, 0.998590f, 0.998600f, 0.998610f, 0.998620f, 0.998630f,
+ 0.998640f, 0.998650f, 0.998660f, 0.998670f, 0.998680f, 0.998690f, 0.998700f, 0.998709f,
+ 0.998719f, 0.998729f, 0.998738f, 0.998748f, 0.998758f, 0.998767f, 0.998777f, 0.998786f,
+ 0.998795f, 0.998805f, 0.998814f, 0.998824f, 0.998833f, 0.998842f, 0.998851f, 0.998860f,
+ 0.998870f, 0.998879f, 0.998888f, 0.998897f, 0.998906f, 0.998915f, 0.998924f, 0.998932f,
+ 0.998941f, 0.998950f, 0.998959f, 0.998968f, 0.998976f, 0.998985f, 0.998994f, 0.999002f,
+ 0.999011f, 0.999019f, 0.999028f, 0.999036f, 0.999044f, 0.999053f, 0.999061f, 0.999069f,
+ 0.999078f, 0.999086f, 0.999094f, 0.999102f, 0.999110f, 0.999118f, 0.999126f, 0.999134f,
+ 0.999142f, 0.999150f, 0.999158f, 0.999166f, 0.999174f, 0.999182f, 0.999189f, 0.999197f,
+ 0.999205f, 0.999212f, 0.999220f, 0.999228f, 0.999235f, 0.999243f, 0.999250f, 0.999257f,
+ 0.999265f, 0.999272f, 0.999279f, 0.999287f, 0.999294f, 0.999301f, 0.999308f, 0.999315f,
+ 0.999322f, 0.999329f, 0.999336f, 0.999343f, 0.999350f, 0.999357f, 0.999364f, 0.999371f,
+ 0.999378f, 0.999384f, 0.999391f, 0.999398f, 0.999404f, 0.999411f, 0.999418f, 0.999424f,
+ 0.999431f, 0.999437f, 0.999443f, 0.999450f, 0.999456f, 0.999462f, 0.999469f, 0.999475f,
+ 0.999481f, 0.999487f, 0.999493f, 0.999500f, 0.999506f, 0.999512f, 0.999518f, 0.999524f,
+ 0.999529f, 0.999535f, 0.999541f, 0.999547f, 0.999553f, 0.999558f, 0.999564f, 0.999570f,
+ 0.999575f, 0.999581f, 0.999586f, 0.999592f, 0.999597f, 0.999603f, 0.999608f, 0.999614f,
+ 0.999619f, 0.999624f, 0.999629f, 0.999635f, 0.999640f, 0.999645f, 0.999650f, 0.999655f,
+ 0.999660f, 0.999665f, 0.999670f, 0.999675f, 0.999680f, 0.999685f, 0.999689f, 0.999694f,
+ 0.999699f, 0.999704f, 0.999708f, 0.999713f, 0.999717f, 0.999722f, 0.999726f, 0.999731f,
+ 0.999735f, 0.999740f, 0.999744f, 0.999748f, 0.999753f, 0.999757f, 0.999761f, 0.999765f,
+ 0.999769f, 0.999774f, 0.999778f, 0.999782f, 0.999786f, 0.999790f, 0.999793f, 0.999797f,
+ 0.999801f, 0.999805f, 0.999809f, 0.999812f, 0.999816f, 0.999820f, 0.999823f, 0.999827f,
+ 0.999831f, 0.999834f, 0.999838f, 0.999841f, 0.999844f, 0.999848f, 0.999851f, 0.999854f,
+ 0.999858f, 0.999861f, 0.999864f, 0.999867f, 0.999870f, 0.999873f, 0.999876f, 0.999879f,
+ 0.999882f, 0.999885f, 0.999888f, 0.999891f, 0.999894f, 0.999897f, 0.999899f, 0.999902f,
+ 0.999905f, 0.999907f, 0.999910f, 0.999913f, 0.999915f, 0.999917f, 0.999920f, 0.999922f,
+ 0.999925f, 0.999927f, 0.999929f, 0.999932f, 0.999934f, 0.999936f, 0.999938f, 0.999940f,
+ 0.999942f, 0.999944f, 0.999946f, 0.999948f, 0.999950f, 0.999952f, 0.999954f, 0.999956f,
+ 0.999958f, 0.999959f, 0.999961f, 0.999963f, 0.999964f, 0.999966f, 0.999968f, 0.999969f,
+ 0.999971f, 0.999972f, 0.999973f, 0.999975f, 0.999976f, 0.999977f, 0.999979f, 0.999980f,
+ 0.999981f, 0.999982f, 0.999983f, 0.999985f, 0.999986f, 0.999987f, 0.999988f, 0.999988f,
+ 0.999989f, 0.999990f, 0.999991f, 0.999992f, 0.999993f, 0.999993f, 0.999994f, 0.999995f,
+ 0.999995f, 0.999996f, 0.999996f, 0.999997f, 0.999997f, 0.999998f, 0.999998f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999999f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.000192f, -0.000383f, -0.000575f, -0.000767f, -0.000959f, -0.001150f, -0.001342f,
+ -0.001534f, -0.001726f, -0.001917f, -0.002109f, -0.002301f, -0.002493f, -0.002684f, -0.002876f,
+ -0.003068f, -0.003260f, -0.003451f, -0.003643f, -0.003835f, -0.004027f, -0.004218f, -0.004410f,
+ -0.004602f, -0.004794f, -0.004985f, -0.005177f, -0.005369f, -0.005561f, -0.005752f, -0.005944f,
+ -0.006136f, -0.006328f, -0.006519f, -0.006711f, -0.006903f, -0.007095f, -0.007286f, -0.007478f,
+ -0.007670f, -0.007862f, -0.008053f, -0.008245f, -0.008437f, -0.008629f, -0.008820f, -0.009012f,
+ -0.009204f, -0.009395f, -0.009587f, -0.009779f, -0.009971f, -0.010162f, -0.010354f, -0.010546f,
+ -0.010738f, -0.010929f, -0.011121f, -0.011313f, -0.011505f, -0.011696f, -0.011888f, -0.012080f,
+ -0.012272f, -0.012463f, -0.012655f, -0.012847f, -0.013038f, -0.013230f, -0.013422f, -0.013614f,
+ -0.013805f, -0.013997f, -0.014189f, -0.014381f, -0.014572f, -0.014764f, -0.014956f, -0.015147f,
+ -0.015339f, -0.015531f, -0.015723f, -0.015914f, -0.016106f, -0.016298f, -0.016490f, -0.016681f,
+ -0.016873f, -0.017065f, -0.017256f, -0.017448f, -0.017640f, -0.017832f, -0.018023f, -0.018215f,
+ -0.018407f, -0.018598f, -0.018790f, -0.018982f, -0.019174f, -0.019365f, -0.019557f, -0.019749f,
+ -0.019940f, -0.020132f, -0.020324f, -0.020516f, -0.020707f, -0.020899f, -0.021091f, -0.021282f,
+ -0.021474f, -0.021666f, -0.021857f, -0.022049f, -0.022241f, -0.022433f, -0.022624f, -0.022816f,
+ -0.023008f, -0.023199f, -0.023391f, -0.023583f, -0.023774f, -0.023966f, -0.024158f, -0.024350f,
+ -0.024541f, -0.024733f, -0.024925f, -0.025116f, -0.025308f, -0.025500f, -0.025691f, -0.025883f,
+ -0.026075f, -0.026266f, -0.026458f, -0.026650f, -0.026841f, -0.027033f, -0.027225f, -0.027416f,
+ -0.027608f, -0.027800f, -0.027991f, -0.028183f, -0.028375f, -0.028567f, -0.028758f, -0.028950f,
+ -0.029142f, -0.029333f, -0.029525f, -0.029717f, -0.029908f, -0.030100f, -0.030291f, -0.030483f,
+ -0.030675f, -0.030866f, -0.031058f, -0.031250f, -0.031441f, -0.031633f, -0.031825f, -0.032016f,
+ -0.032208f, -0.032400f, -0.032591f, -0.032783f, -0.032975f, -0.033166f, -0.033358f, -0.033550f,
+ -0.033741f, -0.033933f, -0.034124f, -0.034316f, -0.034508f, -0.034699f, -0.034891f, -0.035083f,
+ -0.035274f, -0.035466f, -0.035657f, -0.035849f, -0.036041f, -0.036232f, -0.036424f, -0.036616f,
+ -0.036807f, -0.036999f, -0.037190f, -0.037382f, -0.037574f, -0.037765f, -0.037957f, -0.038149f,
+ -0.038340f, -0.038532f, -0.038723f, -0.038915f, -0.039107f, -0.039298f, -0.039490f, -0.039681f,
+ -0.039873f, -0.040065f, -0.040256f, -0.040448f, -0.040639f, -0.040831f, -0.041022f, -0.041214f,
+ -0.041406f, -0.041597f, -0.041789f, -0.041980f, -0.042172f, -0.042364f, -0.042555f, -0.042747f,
+ -0.042938f, -0.043130f, -0.043321f, -0.043513f, -0.043705f, -0.043896f, -0.044088f, -0.044279f,
+ -0.044471f, -0.044662f, -0.044854f, -0.045045f, -0.045237f, -0.045429f, -0.045620f, -0.045812f,
+ -0.046003f, -0.046195f, -0.046386f, -0.046578f, -0.046769f, -0.046961f, -0.047152f, -0.047344f,
+ -0.047535f, -0.047727f, -0.047919f, -0.048110f, -0.048302f, -0.048493f, -0.048685f, -0.048876f,
+ -0.049068f, -0.049259f, -0.049451f, -0.049642f, -0.049834f, -0.050025f, -0.050217f, -0.050408f,
+ -0.050600f, -0.050791f, -0.050983f, -0.051174f, -0.051366f, -0.051557f, -0.051749f, -0.051940f,
+ -0.052132f, -0.052323f, -0.052515f, -0.052706f, -0.052898f, -0.053089f, -0.053281f, -0.053472f,
+ -0.053664f, -0.053855f, -0.054046f, -0.054238f, -0.054429f, -0.054621f, -0.054812f, -0.055004f,
+ -0.055195f, -0.055387f, -0.055578f, -0.055770f, -0.055961f, -0.056152f, -0.056344f, -0.056535f,
+ -0.056727f, -0.056918f, -0.057110f, -0.057301f, -0.057493f, -0.057684f, -0.057875f, -0.058067f,
+ -0.058258f, -0.058450f, -0.058641f, -0.058833f, -0.059024f, -0.059215f, -0.059407f, -0.059598f,
+ -0.059790f, -0.059981f, -0.060172f, -0.060364f, -0.060555f, -0.060747f, -0.060938f, -0.061129f,
+ -0.061321f, -0.061512f, -0.061704f, -0.061895f, -0.062086f, -0.062278f, -0.062469f, -0.062660f,
+ -0.062852f, -0.063043f, -0.063234f, -0.063426f, -0.063617f, -0.063809f, -0.064000f, -0.064191f,
+ -0.064383f, -0.064574f, -0.064765f, -0.064957f, -0.065148f, -0.065339f, -0.065531f, -0.065722f,
+ -0.065913f, -0.066105f, -0.066296f, -0.066487f, -0.066679f, -0.066870f, -0.067061f, -0.067253f,
+ -0.067444f, -0.067635f, -0.067827f, -0.068018f, -0.068209f, -0.068400f, -0.068592f, -0.068783f,
+ -0.068974f, -0.069166f, -0.069357f, -0.069548f, -0.069739f, -0.069931f, -0.070122f, -0.070313f,
+ -0.070505f, -0.070696f, -0.070887f, -0.071078f, -0.071270f, -0.071461f, -0.071652f, -0.071843f,
+ -0.072035f, -0.072226f, -0.072417f, -0.072608f, -0.072800f, -0.072991f, -0.073182f, -0.073373f,
+ -0.073565f, -0.073756f, -0.073947f, -0.074138f, -0.074329f, -0.074521f, -0.074712f, -0.074903f,
+ -0.075094f, -0.075286f, -0.075477f, -0.075668f, -0.075859f, -0.076050f, -0.076241f, -0.076433f,
+ -0.076624f, -0.076815f, -0.077006f, -0.077197f, -0.077389f, -0.077580f, -0.077771f, -0.077962f,
+ -0.078153f, -0.078344f, -0.078536f, -0.078727f, -0.078918f, -0.079109f, -0.079300f, -0.079491f,
+ -0.079682f, -0.079874f, -0.080065f, -0.080256f, -0.080447f, -0.080638f, -0.080829f, -0.081020f,
+ -0.081211f, -0.081403f, -0.081594f, -0.081785f, -0.081976f, -0.082167f, -0.082358f, -0.082549f,
+ -0.082740f, -0.082931f, -0.083122f, -0.083314f, -0.083505f, -0.083696f, -0.083887f, -0.084078f,
+ -0.084269f, -0.084460f, -0.084651f, -0.084842f, -0.085033f, -0.085224f, -0.085415f, -0.085606f,
+ -0.085797f, -0.085988f, -0.086179f, -0.086370f, -0.086561f, -0.086752f, -0.086943f, -0.087135f,
+ -0.087326f, -0.087517f, -0.087708f, -0.087899f, -0.088090f, -0.088281f, -0.088472f, -0.088663f,
+ -0.088854f, -0.089045f, -0.089236f, -0.089427f, -0.089617f, -0.089808f, -0.089999f, -0.090190f,
+ -0.090381f, -0.090572f, -0.090763f, -0.090954f, -0.091145f, -0.091336f, -0.091527f, -0.091718f,
+ -0.091909f, -0.092100f, -0.092291f, -0.092482f, -0.092673f, -0.092864f, -0.093055f, -0.093245f,
+ -0.093436f, -0.093627f, -0.093818f, -0.094009f, -0.094200f, -0.094391f, -0.094582f, -0.094773f,
+ -0.094963f, -0.095154f, -0.095345f, -0.095536f, -0.095727f, -0.095918f, -0.096109f, -0.096300f,
+ -0.096490f, -0.096681f, -0.096872f, -0.097063f, -0.097254f, -0.097445f, -0.097635f, -0.097826f,
+ -0.098017f, -0.098208f, -0.098399f, -0.098590f, -0.098780f, -0.098971f, -0.099162f, -0.099353f,
+ -0.099544f, -0.099734f, -0.099925f, -0.100116f, -0.100307f, -0.100498f, -0.100688f, -0.100879f,
+ -0.101070f, -0.101261f, -0.101451f, -0.101642f, -0.101833f, -0.102024f, -0.102214f, -0.102405f,
+ -0.102596f, -0.102787f, -0.102977f, -0.103168f, -0.103359f, -0.103550f, -0.103740f, -0.103931f,
+ -0.104122f, -0.104312f, -0.104503f, -0.104694f, -0.104884f, -0.105075f, -0.105266f, -0.105456f,
+ -0.105647f, -0.105838f, -0.106028f, -0.106219f, -0.106410f, -0.106600f, -0.106791f, -0.106982f,
+ -0.107172f, -0.107363f, -0.107554f, -0.107744f, -0.107935f, -0.108126f, -0.108316f, -0.108507f,
+ -0.108697f, -0.108888f, -0.109079f, -0.109269f, -0.109460f, -0.109650f, -0.109841f, -0.110032f,
+ -0.110222f, -0.110413f, -0.110603f, -0.110794f, -0.110984f, -0.111175f, -0.111366f, -0.111556f,
+ -0.111747f, -0.111937f, -0.112128f, -0.112318f, -0.112509f, -0.112699f, -0.112890f, -0.113080f,
+ -0.113271f, -0.113461f, -0.113652f, -0.113842f, -0.114033f, -0.114223f, -0.114414f, -0.114604f,
+ -0.114795f, -0.114985f, -0.115176f, -0.115366f, -0.115557f, -0.115747f, -0.115938f, -0.116128f,
+ -0.116319f, -0.116509f, -0.116700f, -0.116890f, -0.117080f, -0.117271f, -0.117461f, -0.117652f,
+ -0.117842f, -0.118032f, -0.118223f, -0.118413f, -0.118604f, -0.118794f, -0.118984f, -0.119175f,
+ -0.119365f, -0.119556f, -0.119746f, -0.119936f, -0.120127f, -0.120317f, -0.120507f, -0.120698f,
+ -0.120888f, -0.121078f, -0.121269f, -0.121459f, -0.121649f, -0.121840f, -0.122030f, -0.122220f,
+ -0.122411f, -0.122601f, -0.122791f, -0.122982f, -0.123172f, -0.123362f, -0.123552f, -0.123743f,
+ -0.123933f, -0.124123f, -0.124314f, -0.124504f, -0.124694f, -0.124884f, -0.125075f, -0.125265f,
+ -0.125455f, -0.125645f, -0.125835f, -0.126026f, -0.126216f, -0.126406f, -0.126596f, -0.126787f,
+ -0.126977f, -0.127167f, -0.127357f, -0.127547f, -0.127737f, -0.127928f, -0.128118f, -0.128308f,
+ -0.128498f, -0.128688f, -0.128878f, -0.129069f, -0.129259f, -0.129449f, -0.129639f, -0.129829f,
+ -0.130019f, -0.130209f, -0.130399f, -0.130590f, -0.130780f, -0.130970f, -0.131160f, -0.131350f,
+ -0.131540f, -0.131730f, -0.131920f, -0.132110f, -0.132300f, -0.132490f, -0.132680f, -0.132870f,
+ -0.133061f, -0.133251f, -0.133441f, -0.133631f, -0.133821f, -0.134011f, -0.134201f, -0.134391f,
+ -0.134581f, -0.134771f, -0.134961f, -0.135151f, -0.135341f, -0.135531f, -0.135721f, -0.135911f,
+ -0.136101f, -0.136291f, -0.136480f, -0.136670f, -0.136860f, -0.137050f, -0.137240f, -0.137430f,
+ -0.137620f, -0.137810f, -0.138000f, -0.138190f, -0.138380f, -0.138570f, -0.138760f, -0.138949f,
+ -0.139139f, -0.139329f, -0.139519f, -0.139709f, -0.139899f, -0.140089f, -0.140279f, -0.140468f,
+ -0.140658f, -0.140848f, -0.141038f, -0.141228f, -0.141418f, -0.141607f, -0.141797f, -0.141987f,
+ -0.142177f, -0.142367f, -0.142556f, -0.142746f, -0.142936f, -0.143126f, -0.143316f, -0.143505f,
+ -0.143695f, -0.143885f, -0.144075f, -0.144264f, -0.144454f, -0.144644f, -0.144833f, -0.145023f,
+ -0.145213f, -0.145403f, -0.145592f, -0.145782f, -0.145972f, -0.146161f, -0.146351f, -0.146541f,
+ -0.146730f, -0.146920f, -0.147110f, -0.147299f, -0.147489f, -0.147679f, -0.147868f, -0.148058f,
+ -0.148248f, -0.148437f, -0.148627f, -0.148817f, -0.149006f, -0.149196f, -0.149385f, -0.149575f,
+ -0.149765f, -0.149954f, -0.150144f, -0.150333f, -0.150523f, -0.150712f, -0.150902f, -0.151092f,
+ -0.151281f, -0.151471f, -0.151660f, -0.151850f, -0.152039f, -0.152229f, -0.152418f, -0.152608f,
+ -0.152797f, -0.152987f, -0.153176f, -0.153366f, -0.153555f, -0.153745f, -0.153934f, -0.154124f,
+ -0.154313f, -0.154502f, -0.154692f, -0.154881f, -0.155071f, -0.155260f, -0.155450f, -0.155639f,
+ -0.155828f, -0.156018f, -0.156207f, -0.156397f, -0.156586f, -0.156775f, -0.156965f, -0.157154f,
+ -0.157343f, -0.157533f, -0.157722f, -0.157912f, -0.158101f, -0.158290f, -0.158480f, -0.158669f,
+ -0.158858f, -0.159047f, -0.159237f, -0.159426f, -0.159615f, -0.159805f, -0.159994f, -0.160183f,
+ -0.160372f, -0.160562f, -0.160751f, -0.160940f, -0.161129f, -0.161319f, -0.161508f, -0.161697f,
+ -0.161886f, -0.162076f, -0.162265f, -0.162454f, -0.162643f, -0.162832f, -0.163022f, -0.163211f,
+ -0.163400f, -0.163589f, -0.163778f, -0.163967f, -0.164157f, -0.164346f, -0.164535f, -0.164724f,
+ -0.164913f, -0.165102f, -0.165291f, -0.165480f, -0.165670f, -0.165859f, -0.166048f, -0.166237f,
+ -0.166426f, -0.166615f, -0.166804f, -0.166993f, -0.167182f, -0.167371f, -0.167560f, -0.167749f,
+ -0.167938f, -0.168127f, -0.168316f, -0.168505f, -0.168694f, -0.168883f, -0.169072f, -0.169261f,
+ -0.169450f, -0.169639f, -0.169828f, -0.170017f, -0.170206f, -0.170395f, -0.170584f, -0.170773f,
+ -0.170962f, -0.171151f, -0.171340f, -0.171529f, -0.171718f, -0.171906f, -0.172095f, -0.172284f,
+ -0.172473f, -0.172662f, -0.172851f, -0.173040f, -0.173229f, -0.173417f, -0.173606f, -0.173795f,
+ -0.173984f, -0.174173f, -0.174362f, -0.174550f, -0.174739f, -0.174928f, -0.175117f, -0.175305f,
+ -0.175494f, -0.175683f, -0.175872f, -0.176061f, -0.176249f, -0.176438f, -0.176627f, -0.176815f,
+ -0.177004f, -0.177193f, -0.177382f, -0.177570f, -0.177759f, -0.177948f, -0.178136f, -0.178325f,
+ -0.178514f, -0.178702f, -0.178891f, -0.179080f, -0.179268f, -0.179457f, -0.179646f, -0.179834f,
+ -0.180023f, -0.180212f, -0.180400f, -0.180589f, -0.180777f, -0.180966f, -0.181154f, -0.181343f,
+ -0.181532f, -0.181720f, -0.181909f, -0.182097f, -0.182286f, -0.182474f, -0.182663f, -0.182851f,
+ -0.183040f, -0.183228f, -0.183417f, -0.183605f, -0.183794f, -0.183982f, -0.184171f, -0.184359f,
+ -0.184548f, -0.184736f, -0.184925f, -0.185113f, -0.185301f, -0.185490f, -0.185678f, -0.185867f,
+ -0.186055f, -0.186244f, -0.186432f, -0.186620f, -0.186809f, -0.186997f, -0.187185f, -0.187374f,
+ -0.187562f, -0.187750f, -0.187939f, -0.188127f, -0.188315f, -0.188504f, -0.188692f, -0.188880f,
+ -0.189069f, -0.189257f, -0.189445f, -0.189634f, -0.189822f, -0.190010f, -0.190198f, -0.190387f,
+ -0.190575f, -0.190763f, -0.190951f, -0.191139f, -0.191328f, -0.191516f, -0.191704f, -0.191892f,
+ -0.192080f, -0.192269f, -0.192457f, -0.192645f, -0.192833f, -0.193021f, -0.193209f, -0.193397f,
+ -0.193586f, -0.193774f, -0.193962f, -0.194150f, -0.194338f, -0.194526f, -0.194714f, -0.194902f,
+ -0.195090f, -0.195278f, -0.195466f, -0.195654f, -0.195843f, -0.196031f, -0.196219f, -0.196407f,
+ -0.196595f, -0.196783f, -0.196971f, -0.197159f, -0.197347f, -0.197535f, -0.197722f, -0.197910f,
+ -0.198098f, -0.198286f, -0.198474f, -0.198662f, -0.198850f, -0.199038f, -0.199226f, -0.199414f,
+ -0.199602f, -0.199790f, -0.199978f, -0.200165f, -0.200353f, -0.200541f, -0.200729f, -0.200917f,
+ -0.201105f, -0.201292f, -0.201480f, -0.201668f, -0.201856f, -0.202044f, -0.202231f, -0.202419f,
+ -0.202607f, -0.202795f, -0.202983f, -0.203170f, -0.203358f, -0.203546f, -0.203734f, -0.203921f,
+ -0.204109f, -0.204297f, -0.204484f, -0.204672f, -0.204860f, -0.205047f, -0.205235f, -0.205423f,
+ -0.205610f, -0.205798f, -0.205986f, -0.206173f, -0.206361f, -0.206549f, -0.206736f, -0.206924f,
+ -0.207111f, -0.207299f, -0.207487f, -0.207674f, -0.207862f, -0.208049f, -0.208237f, -0.208424f,
+ -0.208612f, -0.208799f, -0.208987f, -0.209174f, -0.209362f, -0.209549f, -0.209737f, -0.209924f,
+ -0.210112f, -0.210299f, -0.210487f, -0.210674f, -0.210862f, -0.211049f, -0.211237f, -0.211424f,
+ -0.211611f, -0.211799f, -0.211986f, -0.212174f, -0.212361f, -0.212548f, -0.212736f, -0.212923f,
+ -0.213110f, -0.213298f, -0.213485f, -0.213672f, -0.213860f, -0.214047f, -0.214234f, -0.214422f,
+ -0.214609f, -0.214796f, -0.214983f, -0.215171f, -0.215358f, -0.215545f, -0.215732f, -0.215920f,
+ -0.216107f, -0.216294f, -0.216481f, -0.216668f, -0.216856f, -0.217043f, -0.217230f, -0.217417f,
+ -0.217604f, -0.217791f, -0.217979f, -0.218166f, -0.218353f, -0.218540f, -0.218727f, -0.218914f,
+ -0.219101f, -0.219288f, -0.219475f, -0.219662f, -0.219850f, -0.220037f, -0.220224f, -0.220411f,
+ -0.220598f, -0.220785f, -0.220972f, -0.221159f, -0.221346f, -0.221533f, -0.221720f, -0.221907f,
+ -0.222094f, -0.222281f, -0.222468f, -0.222654f, -0.222841f, -0.223028f, -0.223215f, -0.223402f,
+ -0.223589f, -0.223776f, -0.223963f, -0.224150f, -0.224337f, -0.224523f, -0.224710f, -0.224897f,
+ -0.225084f, -0.225271f, -0.225458f, -0.225644f, -0.225831f, -0.226018f, -0.226205f, -0.226391f,
+ -0.226578f, -0.226765f, -0.226952f, -0.227139f, -0.227325f, -0.227512f, -0.227699f, -0.227885f,
+ -0.228072f, -0.228259f, -0.228445f, -0.228632f, -0.228819f, -0.229005f, -0.229192f, -0.229379f,
+ -0.229565f, -0.229752f, -0.229939f, -0.230125f, -0.230312f, -0.230498f, -0.230685f, -0.230872f,
+ -0.231058f, -0.231245f, -0.231431f, -0.231618f, -0.231804f, -0.231991f, -0.232177f, -0.232364f,
+ -0.232550f, -0.232737f, -0.232923f, -0.233110f, -0.233296f, -0.233483f, -0.233669f, -0.233856f,
+ -0.234042f, -0.234228f, -0.234415f, -0.234601f, -0.234788f, -0.234974f, -0.235160f, -0.235347f,
+ -0.235533f, -0.235719f, -0.235906f, -0.236092f, -0.236278f, -0.236465f, -0.236651f, -0.236837f,
+ -0.237024f, -0.237210f, -0.237396f, -0.237582f, -0.237769f, -0.237955f, -0.238141f, -0.238327f,
+ -0.238514f, -0.238700f, -0.238886f, -0.239072f, -0.239258f, -0.239445f, -0.239631f, -0.239817f,
+ -0.240003f, -0.240189f, -0.240375f, -0.240561f, -0.240748f, -0.240934f, -0.241120f, -0.241306f,
+ -0.241492f, -0.241678f, -0.241864f, -0.242050f, -0.242236f, -0.242422f, -0.242608f, -0.242794f,
+ -0.242980f, -0.243166f, -0.243352f, -0.243538f, -0.243724f, -0.243910f, -0.244096f, -0.244282f,
+ -0.244468f, -0.244654f, -0.244840f, -0.245026f, -0.245212f, -0.245397f, -0.245583f, -0.245769f,
+ -0.245955f, -0.246141f, -0.246327f, -0.246513f, -0.246698f, -0.246884f, -0.247070f, -0.247256f,
+ -0.247442f, -0.247627f, -0.247813f, -0.247999f, -0.248185f, -0.248370f, -0.248556f, -0.248742f,
+ -0.248928f, -0.249113f, -0.249299f, -0.249485f, -0.249670f, -0.249856f, -0.250042f, -0.250227f,
+ -0.250413f, -0.250599f, -0.250784f, -0.250970f, -0.251155f, -0.251341f, -0.251527f, -0.251712f,
+ -0.251898f, -0.252083f, -0.252269f, -0.252454f, -0.252640f, -0.252826f, -0.253011f, -0.253197f,
+ -0.253382f, -0.253568f, -0.253753f, -0.253938f, -0.254124f, -0.254309f, -0.254495f, -0.254680f,
+ -0.254866f, -0.255051f, -0.255236f, -0.255422f, -0.255607f, -0.255793f, -0.255978f, -0.256163f,
+ -0.256349f, -0.256534f, -0.256719f, -0.256905f, -0.257090f, -0.257275f, -0.257461f, -0.257646f,
+ -0.257831f, -0.258016f, -0.258202f, -0.258387f, -0.258572f, -0.258757f, -0.258943f, -0.259128f,
+ -0.259313f, -0.259498f, -0.259683f, -0.259868f, -0.260054f, -0.260239f, -0.260424f, -0.260609f,
+ -0.260794f, -0.260979f, -0.261164f, -0.261349f, -0.261534f, -0.261720f, -0.261905f, -0.262090f,
+ -0.262275f, -0.262460f, -0.262645f, -0.262830f, -0.263015f, -0.263200f, -0.263385f, -0.263570f,
+ -0.263755f, -0.263940f, -0.264125f, -0.264309f, -0.264494f, -0.264679f, -0.264864f, -0.265049f,
+ -0.265234f, -0.265419f, -0.265604f, -0.265789f, -0.265973f, -0.266158f, -0.266343f, -0.266528f,
+ -0.266713f, -0.266898f, -0.267082f, -0.267267f, -0.267452f, -0.267637f, -0.267821f, -0.268006f,
+ -0.268191f, -0.268376f, -0.268560f, -0.268745f, -0.268930f, -0.269114f, -0.269299f, -0.269484f,
+ -0.269668f, -0.269853f, -0.270038f, -0.270222f, -0.270407f, -0.270591f, -0.270776f, -0.270961f,
+ -0.271145f, -0.271330f, -0.271514f, -0.271699f, -0.271883f, -0.272068f, -0.272252f, -0.272437f,
+ -0.272621f, -0.272806f, -0.272990f, -0.273175f, -0.273359f, -0.273544f, -0.273728f, -0.273912f,
+ -0.274097f, -0.274281f, -0.274466f, -0.274650f, -0.274834f, -0.275019f, -0.275203f, -0.275387f,
+ -0.275572f, -0.275756f, -0.275940f, -0.276125f, -0.276309f, -0.276493f, -0.276678f, -0.276862f,
+ -0.277046f, -0.277230f, -0.277415f, -0.277599f, -0.277783f, -0.277967f, -0.278151f, -0.278336f,
+ -0.278520f, -0.278704f, -0.278888f, -0.279072f, -0.279256f, -0.279440f, -0.279624f, -0.279809f,
+ -0.279993f, -0.280177f, -0.280361f, -0.280545f, -0.280729f, -0.280913f, -0.281097f, -0.281281f,
+ -0.281465f, -0.281649f, -0.281833f, -0.282017f, -0.282201f, -0.282385f, -0.282569f, -0.282753f,
+ -0.282937f, -0.283120f, -0.283304f, -0.283488f, -0.283672f, -0.283856f, -0.284040f, -0.284224f,
+ -0.284408f, -0.284591f, -0.284775f, -0.284959f, -0.285143f, -0.285327f, -0.285510f, -0.285694f,
+ -0.285878f, -0.286062f, -0.286245f, -0.286429f, -0.286613f, -0.286796f, -0.286980f, -0.287164f,
+ -0.287347f, -0.287531f, -0.287715f, -0.287898f, -0.288082f, -0.288266f, -0.288449f, -0.288633f,
+ -0.288816f, -0.289000f, -0.289184f, -0.289367f, -0.289551f, -0.289734f, -0.289918f, -0.290101f,
+ -0.290285f, -0.290468f, -0.290652f, -0.290835f, -0.291019f, -0.291202f, -0.291385f, -0.291569f,
+ -0.291752f, -0.291936f, -0.292119f, -0.292302f, -0.292486f, -0.292669f, -0.292852f, -0.293036f,
+ -0.293219f, -0.293402f, -0.293586f, -0.293769f, -0.293952f, -0.294136f, -0.294319f, -0.294502f,
+ -0.294685f, -0.294869f, -0.295052f, -0.295235f, -0.295418f, -0.295601f, -0.295785f, -0.295968f,
+ -0.296151f, -0.296334f, -0.296517f, -0.296700f, -0.296883f, -0.297066f, -0.297250f, -0.297433f,
+ -0.297616f, -0.297799f, -0.297982f, -0.298165f, -0.298348f, -0.298531f, -0.298714f, -0.298897f,
+ -0.299080f, -0.299263f, -0.299446f, -0.299629f, -0.299812f, -0.299995f, -0.300177f, -0.300360f,
+ -0.300543f, -0.300726f, -0.300909f, -0.301092f, -0.301275f, -0.301458f, -0.301640f, -0.301823f,
+ -0.302006f, -0.302189f, -0.302372f, -0.302554f, -0.302737f, -0.302920f, -0.303103f, -0.303285f,
+ -0.303468f, -0.303651f, -0.303833f, -0.304016f, -0.304199f, -0.304381f, -0.304564f, -0.304747f,
+ -0.304929f, -0.305112f, -0.305294f, -0.305477f, -0.305660f, -0.305842f, -0.306025f, -0.306207f,
+ -0.306390f, -0.306572f, -0.306755f, -0.306937f, -0.307120f, -0.307302f, -0.307485f, -0.307667f,
+ -0.307850f, -0.308032f, -0.308214f, -0.308397f, -0.308579f, -0.308762f, -0.308944f, -0.309126f,
+ -0.309309f, -0.309491f, -0.309673f, -0.309856f, -0.310038f, -0.310220f, -0.310403f, -0.310585f,
+ -0.310767f, -0.310949f, -0.311132f, -0.311314f, -0.311496f, -0.311678f, -0.311860f, -0.312043f,
+ -0.312225f, -0.312407f, -0.312589f, -0.312771f, -0.312953f, -0.313135f, -0.313318f, -0.313500f,
+ -0.313682f, -0.313864f, -0.314046f, -0.314228f, -0.314410f, -0.314592f, -0.314774f, -0.314956f,
+ -0.315138f, -0.315320f, -0.315502f, -0.315684f, -0.315866f, -0.316048f, -0.316230f, -0.316411f,
+ -0.316593f, -0.316775f, -0.316957f, -0.317139f, -0.317321f, -0.317503f, -0.317684f, -0.317866f,
+ -0.318048f, -0.318230f, -0.318412f, -0.318593f, -0.318775f, -0.318957f, -0.319139f, -0.319320f,
+ -0.319502f, -0.319684f, -0.319865f, -0.320047f, -0.320229f, -0.320410f, -0.320592f, -0.320774f,
+ -0.320955f, -0.321137f, -0.321318f, -0.321500f, -0.321682f, -0.321863f, -0.322045f, -0.322226f,
+ -0.322408f, -0.322589f, -0.322771f, -0.322952f, -0.323134f, -0.323315f, -0.323497f, -0.323678f,
+ -0.323859f, -0.324041f, -0.324222f, -0.324404f, -0.324585f, -0.324766f, -0.324948f, -0.325129f,
+ -0.325310f, -0.325492f, -0.325673f, -0.325854f, -0.326035f, -0.326217f, -0.326398f, -0.326579f,
+ -0.326760f, -0.326942f, -0.327123f, -0.327304f, -0.327485f, -0.327666f, -0.327848f, -0.328029f,
+ -0.328210f, -0.328391f, -0.328572f, -0.328753f, -0.328934f, -0.329115f, -0.329296f, -0.329477f,
+ -0.329658f, -0.329839f, -0.330020f, -0.330202f, -0.330382f, -0.330563f, -0.330744f, -0.330925f,
+ -0.331106f, -0.331287f, -0.331468f, -0.331649f, -0.331830f, -0.332011f, -0.332192f, -0.332373f,
+ -0.332553f, -0.332734f, -0.332915f, -0.333096f, -0.333277f, -0.333457f, -0.333638f, -0.333819f,
+ -0.334000f, -0.334180f, -0.334361f, -0.334542f, -0.334722f, -0.334903f, -0.335084f, -0.335265f,
+ -0.335445f, -0.335626f, -0.335806f, -0.335987f, -0.336168f, -0.336348f, -0.336529f, -0.336709f,
+ -0.336890f, -0.337070f, -0.337251f, -0.337431f, -0.337612f, -0.337792f, -0.337973f, -0.338153f,
+ -0.338334f, -0.338514f, -0.338695f, -0.338875f, -0.339055f, -0.339236f, -0.339416f, -0.339597f,
+ -0.339777f, -0.339957f, -0.340138f, -0.340318f, -0.340498f, -0.340678f, -0.340859f, -0.341039f,
+ -0.341219f, -0.341399f, -0.341580f, -0.341760f, -0.341940f, -0.342120f, -0.342300f, -0.342481f,
+ -0.342661f, -0.342841f, -0.343021f, -0.343201f, -0.343381f, -0.343561f, -0.343741f, -0.343921f,
+ -0.344101f, -0.344281f, -0.344461f, -0.344641f, -0.344821f, -0.345001f, -0.345181f, -0.345361f,
+ -0.345541f, -0.345721f, -0.345901f, -0.346081f, -0.346261f, -0.346441f, -0.346621f, -0.346801f,
+ -0.346980f, -0.347160f, -0.347340f, -0.347520f, -0.347700f, -0.347879f, -0.348059f, -0.348239f,
+ -0.348419f, -0.348598f, -0.348778f, -0.348958f, -0.349138f, -0.349317f, -0.349497f, -0.349676f,
+ -0.349856f, -0.350036f, -0.350215f, -0.350395f, -0.350575f, -0.350754f, -0.350934f, -0.351113f,
+ -0.351293f, -0.351472f, -0.351652f, -0.351831f, -0.352011f, -0.352190f, -0.352370f, -0.352549f,
+ -0.352729f, -0.352908f, -0.353087f, -0.353267f, -0.353446f, -0.353626f, -0.353805f, -0.353984f,
+ -0.354164f, -0.354343f, -0.354522f, -0.354701f, -0.354881f, -0.355060f, -0.355239f, -0.355418f,
+ -0.355598f, -0.355777f, -0.355956f, -0.356135f, -0.356314f, -0.356494f, -0.356673f, -0.356852f,
+ -0.357031f, -0.357210f, -0.357389f, -0.357568f, -0.357747f, -0.357926f, -0.358105f, -0.358284f,
+ -0.358463f, -0.358642f, -0.358821f, -0.359000f, -0.359179f, -0.359358f, -0.359537f, -0.359716f,
+ -0.359895f, -0.360074f, -0.360253f, -0.360432f, -0.360611f, -0.360789f, -0.360968f, -0.361147f,
+ -0.361326f, -0.361505f, -0.361683f, -0.361862f, -0.362041f, -0.362220f, -0.362398f, -0.362577f,
+ -0.362756f, -0.362934f, -0.363113f, -0.363292f, -0.363470f, -0.363649f, -0.363828f, -0.364006f,
+ -0.364185f, -0.364363f, -0.364542f, -0.364720f, -0.364899f, -0.365078f, -0.365256f, -0.365435f,
+ -0.365613f, -0.365791f, -0.365970f, -0.366148f, -0.366327f, -0.366505f, -0.366684f, -0.366862f,
+ -0.367040f, -0.367219f, -0.367397f, -0.367575f, -0.367754f, -0.367932f, -0.368110f, -0.368289f,
+ -0.368467f, -0.368645f, -0.368823f, -0.369002f, -0.369180f, -0.369358f, -0.369536f, -0.369714f,
+ -0.369892f, -0.370071f, -0.370249f, -0.370427f, -0.370605f, -0.370783f, -0.370961f, -0.371139f,
+ -0.371317f, -0.371495f, -0.371673f, -0.371851f, -0.372029f, -0.372207f, -0.372385f, -0.372563f,
+ -0.372741f, -0.372919f, -0.373097f, -0.373275f, -0.373453f, -0.373631f, -0.373808f, -0.373986f,
+ -0.374164f, -0.374342f, -0.374520f, -0.374697f, -0.374875f, -0.375053f, -0.375231f, -0.375408f,
+ -0.375586f, -0.375764f, -0.375942f, -0.376119f, -0.376297f, -0.376475f, -0.376652f, -0.376830f,
+ -0.377007f, -0.377185f, -0.377363f, -0.377540f, -0.377718f, -0.377895f, -0.378073f, -0.378250f,
+ -0.378428f, -0.378605f, -0.378783f, -0.378960f, -0.379138f, -0.379315f, -0.379492f, -0.379670f,
+ -0.379847f, -0.380025f, -0.380202f, -0.380379f, -0.380557f, -0.380734f, -0.380911f, -0.381088f,
+ -0.381266f, -0.381443f, -0.381620f, -0.381797f, -0.381975f, -0.382152f, -0.382329f, -0.382506f,
+ -0.382683f, -0.382861f, -0.383038f, -0.383215f, -0.383392f, -0.383569f, -0.383746f, -0.383923f,
+ -0.384100f, -0.384277f, -0.384454f, -0.384631f, -0.384808f, -0.384985f, -0.385162f, -0.385339f,
+ -0.385516f, -0.385693f, -0.385870f, -0.386047f, -0.386224f, -0.386400f, -0.386577f, -0.386754f,
+ -0.386931f, -0.387108f, -0.387285f, -0.387461f, -0.387638f, -0.387815f, -0.387992f, -0.388168f,
+ -0.388345f, -0.388522f, -0.388698f, -0.388875f, -0.389052f, -0.389228f, -0.389405f, -0.389582f,
+ -0.389758f, -0.389935f, -0.390111f, -0.390288f, -0.390464f, -0.390641f, -0.390817f, -0.390994f,
+ -0.391170f, -0.391347f, -0.391523f, -0.391700f, -0.391876f, -0.392053f, -0.392229f, -0.392405f,
+ -0.392582f, -0.392758f, -0.392934f, -0.393111f, -0.393287f, -0.393463f, -0.393640f, -0.393816f,
+ -0.393992f, -0.394168f, -0.394344f, -0.394521f, -0.394697f, -0.394873f, -0.395049f, -0.395225f,
+ -0.395401f, -0.395578f, -0.395754f, -0.395930f, -0.396106f, -0.396282f, -0.396458f, -0.396634f,
+ -0.396810f, -0.396986f, -0.397162f, -0.397338f, -0.397514f, -0.397690f, -0.397866f, -0.398042f,
+ -0.398218f, -0.398393f, -0.398569f, -0.398745f, -0.398921f, -0.399097f, -0.399273f, -0.399448f,
+ -0.399624f, -0.399800f, -0.399976f, -0.400151f, -0.400327f, -0.400503f, -0.400679f, -0.400854f,
+ -0.401030f, -0.401206f, -0.401381f, -0.401557f, -0.401732f, -0.401908f, -0.402084f, -0.402259f,
+ -0.402435f, -0.402610f, -0.402786f, -0.402961f, -0.403137f, -0.403312f, -0.403488f, -0.403663f,
+ -0.403838f, -0.404014f, -0.404189f, -0.404365f, -0.404540f, -0.404715f, -0.404891f, -0.405066f,
+ -0.405241f, -0.405417f, -0.405592f, -0.405767f, -0.405942f, -0.406118f, -0.406293f, -0.406468f,
+ -0.406643f, -0.406818f, -0.406994f, -0.407169f, -0.407344f, -0.407519f, -0.407694f, -0.407869f,
+ -0.408044f, -0.408219f, -0.408394f, -0.408569f, -0.408744f, -0.408919f, -0.409094f, -0.409269f,
+ -0.409444f, -0.409619f, -0.409794f, -0.409969f, -0.410144f, -0.410319f, -0.410493f, -0.410668f,
+ -0.410843f, -0.411018f, -0.411193f, -0.411368f, -0.411542f, -0.411717f, -0.411892f, -0.412067f,
+ -0.412241f, -0.412416f, -0.412591f, -0.412765f, -0.412940f, -0.413115f, -0.413289f, -0.413464f,
+ -0.413638f, -0.413813f, -0.413987f, -0.414162f, -0.414337f, -0.414511f, -0.414685f, -0.414860f,
+ -0.415034f, -0.415209f, -0.415383f, -0.415558f, -0.415732f, -0.415906f, -0.416081f, -0.416255f,
+ -0.416430f, -0.416604f, -0.416778f, -0.416952f, -0.417127f, -0.417301f, -0.417475f, -0.417650f,
+ -0.417824f, -0.417998f, -0.418172f, -0.418346f, -0.418520f, -0.418695f, -0.418869f, -0.419043f,
+ -0.419217f, -0.419391f, -0.419565f, -0.419739f, -0.419913f, -0.420087f, -0.420261f, -0.420435f,
+ -0.420609f, -0.420783f, -0.420957f, -0.421131f, -0.421305f, -0.421479f, -0.421653f, -0.421826f,
+ -0.422000f, -0.422174f, -0.422348f, -0.422522f, -0.422695f, -0.422869f, -0.423043f, -0.423217f,
+ -0.423390f, -0.423564f, -0.423738f, -0.423912f, -0.424085f, -0.424259f, -0.424432f, -0.424606f,
+ -0.424780f, -0.424953f, -0.425127f, -0.425300f, -0.425474f, -0.425647f, -0.425821f, -0.425994f,
+ -0.426168f, -0.426341f, -0.426515f, -0.426688f, -0.426862f, -0.427035f, -0.427208f, -0.427382f,
+ -0.427555f, -0.427728f, -0.427902f, -0.428075f, -0.428248f, -0.428422f, -0.428595f, -0.428768f,
+ -0.428941f, -0.429114f, -0.429288f, -0.429461f, -0.429634f, -0.429807f, -0.429980f, -0.430153f,
+ -0.430326f, -0.430500f, -0.430673f, -0.430846f, -0.431019f, -0.431192f, -0.431365f, -0.431538f,
+ -0.431711f, -0.431884f, -0.432057f, -0.432229f, -0.432402f, -0.432575f, -0.432748f, -0.432921f,
+ -0.433094f, -0.433267f, -0.433439f, -0.433612f, -0.433785f, -0.433958f, -0.434131f, -0.434303f,
+ -0.434476f, -0.434649f, -0.434821f, -0.434994f, -0.435167f, -0.435339f, -0.435512f, -0.435685f,
+ -0.435857f, -0.436030f, -0.436202f, -0.436375f, -0.436547f, -0.436720f, -0.436892f, -0.437065f,
+ -0.437237f, -0.437410f, -0.437582f, -0.437754f, -0.437927f, -0.438099f, -0.438272f, -0.438444f,
+ -0.438616f, -0.438789f, -0.438961f, -0.439133f, -0.439305f, -0.439478f, -0.439650f, -0.439822f,
+ -0.439994f, -0.440166f, -0.440339f, -0.440511f, -0.440683f, -0.440855f, -0.441027f, -0.441199f,
+ -0.441371f, -0.441543f, -0.441715f, -0.441887f, -0.442059f, -0.442231f, -0.442403f, -0.442575f,
+ -0.442747f, -0.442919f, -0.443091f, -0.443263f, -0.443435f, -0.443607f, -0.443779f, -0.443950f,
+ -0.444122f, -0.444294f, -0.444466f, -0.444637f, -0.444809f, -0.444981f, -0.445153f, -0.445324f,
+ -0.445496f, -0.445668f, -0.445839f, -0.446011f, -0.446183f, -0.446354f, -0.446526f, -0.446697f,
+ -0.446869f, -0.447040f, -0.447212f, -0.447383f, -0.447555f, -0.447726f, -0.447898f, -0.448069f,
+ -0.448241f, -0.448412f, -0.448583f, -0.448755f, -0.448926f, -0.449097f, -0.449269f, -0.449440f,
+ -0.449611f, -0.449783f, -0.449954f, -0.450125f, -0.450296f, -0.450467f, -0.450639f, -0.450810f,
+ -0.450981f, -0.451152f, -0.451323f, -0.451494f, -0.451665f, -0.451836f, -0.452008f, -0.452179f,
+ -0.452350f, -0.452521f, -0.452692f, -0.452863f, -0.453033f, -0.453204f, -0.453375f, -0.453546f,
+ -0.453717f, -0.453888f, -0.454059f, -0.454230f, -0.454400f, -0.454571f, -0.454742f, -0.454913f,
+ -0.455084f, -0.455254f, -0.455425f, -0.455596f, -0.455766f, -0.455937f, -0.456108f, -0.456278f,
+ -0.456449f, -0.456620f, -0.456790f, -0.456961f, -0.457131f, -0.457302f, -0.457472f, -0.457643f,
+ -0.457813f, -0.457984f, -0.458154f, -0.458325f, -0.458495f, -0.458665f, -0.458836f, -0.459006f,
+ -0.459177f, -0.459347f, -0.459517f, -0.459687f, -0.459858f, -0.460028f, -0.460198f, -0.460369f,
+ -0.460539f, -0.460709f, -0.460879f, -0.461049f, -0.461219f, -0.461390f, -0.461560f, -0.461730f,
+ -0.461900f, -0.462070f, -0.462240f, -0.462410f, -0.462580f, -0.462750f, -0.462920f, -0.463090f,
+ -0.463260f, -0.463430f, -0.463600f, -0.463769f, -0.463939f, -0.464109f, -0.464279f, -0.464449f,
+ -0.464619f, -0.464788f, -0.464958f, -0.465128f, -0.465298f, -0.465467f, -0.465637f, -0.465807f,
+ -0.465977f, -0.466146f, -0.466316f, -0.466485f, -0.466655f, -0.466825f, -0.466994f, -0.467164f,
+ -0.467333f, -0.467503f, -0.467672f, -0.467842f, -0.468011f, -0.468181f, -0.468350f, -0.468519f,
+ -0.468689f, -0.468858f, -0.469028f, -0.469197f, -0.469366f, -0.469536f, -0.469705f, -0.469874f,
+ -0.470043f, -0.470213f, -0.470382f, -0.470551f, -0.470720f, -0.470889f, -0.471058f, -0.471228f,
+ -0.471397f, -0.471566f, -0.471735f, -0.471904f, -0.472073f, -0.472242f, -0.472411f, -0.472580f,
+ -0.472749f, -0.472918f, -0.473087f, -0.473256f, -0.473425f, -0.473594f, -0.473763f, -0.473931f,
+ -0.474100f, -0.474269f, -0.474438f, -0.474607f, -0.474775f, -0.474944f, -0.475113f, -0.475282f,
+ -0.475450f, -0.475619f, -0.475788f, -0.475956f, -0.476125f, -0.476294f, -0.476462f, -0.476631f,
+ -0.476799f, -0.476968f, -0.477136f, -0.477305f, -0.477473f, -0.477642f, -0.477810f, -0.477979f,
+ -0.478147f, -0.478315f, -0.478484f, -0.478652f, -0.478821f, -0.478989f, -0.479157f, -0.479325f,
+ -0.479494f, -0.479662f, -0.479830f, -0.479998f, -0.480167f, -0.480335f, -0.480503f, -0.480671f,
+ -0.480839f, -0.481007f, -0.481176f, -0.481344f, -0.481512f, -0.481680f, -0.481848f, -0.482016f,
+ -0.482184f, -0.482352f, -0.482520f, -0.482688f, -0.482856f, -0.483023f, -0.483191f, -0.483359f,
+ -0.483527f, -0.483695f, -0.483863f, -0.484031f, -0.484198f, -0.484366f, -0.484534f, -0.484702f,
+ -0.484869f, -0.485037f, -0.485205f, -0.485372f, -0.485540f, -0.485708f, -0.485875f, -0.486043f,
+ -0.486210f, -0.486378f, -0.486545f, -0.486713f, -0.486880f, -0.487048f, -0.487215f, -0.487383f,
+ -0.487550f, -0.487718f, -0.487885f, -0.488052f, -0.488220f, -0.488387f, -0.488554f, -0.488722f,
+ -0.488889f, -0.489056f, -0.489223f, -0.489391f, -0.489558f, -0.489725f, -0.489892f, -0.490059f,
+ -0.490226f, -0.490394f, -0.490561f, -0.490728f, -0.490895f, -0.491062f, -0.491229f, -0.491396f,
+ -0.491563f, -0.491730f, -0.491897f, -0.492064f, -0.492231f, -0.492398f, -0.492564f, -0.492731f,
+ -0.492898f, -0.493065f, -0.493232f, -0.493399f, -0.493565f, -0.493732f, -0.493899f, -0.494066f,
+ -0.494232f, -0.494399f, -0.494566f, -0.494732f, -0.494899f, -0.495066f, -0.495232f, -0.495399f,
+ -0.495565f, -0.495732f, -0.495898f, -0.496065f, -0.496231f, -0.496398f, -0.496564f, -0.496731f,
+ -0.496897f, -0.497063f, -0.497230f, -0.497396f, -0.497562f, -0.497729f, -0.497895f, -0.498061f,
+ -0.498228f, -0.498394f, -0.498560f, -0.498726f, -0.498893f, -0.499059f, -0.499225f, -0.499391f,
+ -0.499557f, -0.499723f, -0.499889f, -0.500055f, -0.500221f, -0.500387f, -0.500553f, -0.500719f,
+ -0.500885f, -0.501051f, -0.501217f, -0.501383f, -0.501549f, -0.501715f, -0.501881f, -0.502047f,
+ -0.502212f, -0.502378f, -0.502544f, -0.502710f, -0.502876f, -0.503041f, -0.503207f, -0.503373f,
+ -0.503538f, -0.503704f, -0.503870f, -0.504035f, -0.504201f, -0.504366f, -0.504532f, -0.504698f,
+ -0.504863f, -0.505029f, -0.505194f, -0.505360f, -0.505525f, -0.505690f, -0.505856f, -0.506021f,
+ -0.506187f, -0.506352f, -0.506517f, -0.506683f, -0.506848f, -0.507013f, -0.507179f, -0.507344f,
+ -0.507509f, -0.507674f, -0.507839f, -0.508005f, -0.508170f, -0.508335f, -0.508500f, -0.508665f,
+ -0.508830f, -0.508995f, -0.509160f, -0.509325f, -0.509490f, -0.509655f, -0.509820f, -0.509985f,
+ -0.510150f, -0.510315f, -0.510480f, -0.510645f, -0.510810f, -0.510974f, -0.511139f, -0.511304f,
+ -0.511469f, -0.511634f, -0.511798f, -0.511963f, -0.512128f, -0.512292f, -0.512457f, -0.512622f,
+ -0.512786f, -0.512951f, -0.513116f, -0.513280f, -0.513445f, -0.513609f, -0.513774f, -0.513938f,
+ -0.514103f, -0.514267f, -0.514432f, -0.514596f, -0.514760f, -0.514925f, -0.515089f, -0.515254f,
+ -0.515418f, -0.515582f, -0.515746f, -0.515911f, -0.516075f, -0.516239f, -0.516403f, -0.516568f,
+ -0.516732f, -0.516896f, -0.517060f, -0.517224f, -0.517388f, -0.517552f, -0.517716f, -0.517880f,
+ -0.518045f, -0.518209f, -0.518372f, -0.518536f, -0.518700f, -0.518864f, -0.519028f, -0.519192f,
+ -0.519356f, -0.519520f, -0.519684f, -0.519848f, -0.520011f, -0.520175f, -0.520339f, -0.520503f,
+ -0.520666f, -0.520830f, -0.520994f, -0.521157f, -0.521321f, -0.521485f, -0.521648f, -0.521812f,
+ -0.521975f, -0.522139f, -0.522302f, -0.522466f, -0.522629f, -0.522793f, -0.522956f, -0.523120f,
+ -0.523283f, -0.523447f, -0.523610f, -0.523773f, -0.523937f, -0.524100f, -0.524263f, -0.524426f,
+ -0.524590f, -0.524753f, -0.524916f, -0.525079f, -0.525243f, -0.525406f, -0.525569f, -0.525732f,
+ -0.525895f, -0.526058f, -0.526221f, -0.526384f, -0.526547f, -0.526710f, -0.526873f, -0.527036f,
+ -0.527199f, -0.527362f, -0.527525f, -0.527688f, -0.527851f, -0.528014f, -0.528176f, -0.528339f,
+ -0.528502f, -0.528665f, -0.528828f, -0.528990f, -0.529153f, -0.529316f, -0.529478f, -0.529641f,
+ -0.529804f, -0.529966f, -0.530129f, -0.530291f, -0.530454f, -0.530617f, -0.530779f, -0.530942f,
+ -0.531104f, -0.531266f, -0.531429f, -0.531591f, -0.531754f, -0.531916f, -0.532078f, -0.532241f,
+ -0.532403f, -0.532565f, -0.532728f, -0.532890f, -0.533052f, -0.533214f, -0.533377f, -0.533539f,
+ -0.533701f, -0.533863f, -0.534025f, -0.534187f, -0.534349f, -0.534512f, -0.534674f, -0.534836f,
+ -0.534998f, -0.535160f, -0.535322f, -0.535484f, -0.535645f, -0.535807f, -0.535969f, -0.536131f,
+ -0.536293f, -0.536455f, -0.536617f, -0.536778f, -0.536940f, -0.537102f, -0.537264f, -0.537425f,
+ -0.537587f, -0.537749f, -0.537910f, -0.538072f, -0.538234f, -0.538395f, -0.538557f, -0.538718f,
+ -0.538880f, -0.539041f, -0.539203f, -0.539364f, -0.539526f, -0.539687f, -0.539849f, -0.540010f,
+ -0.540171f, -0.540333f, -0.540494f, -0.540655f, -0.540817f, -0.540978f, -0.541139f, -0.541301f,
+ -0.541462f, -0.541623f, -0.541784f, -0.541945f, -0.542106f, -0.542268f, -0.542429f, -0.542590f,
+ -0.542751f, -0.542912f, -0.543073f, -0.543234f, -0.543395f, -0.543556f, -0.543717f, -0.543878f,
+ -0.544039f, -0.544199f, -0.544360f, -0.544521f, -0.544682f, -0.544843f, -0.545003f, -0.545164f,
+ -0.545325f, -0.545486f, -0.545646f, -0.545807f, -0.545968f, -0.546128f, -0.546289f, -0.546450f,
+ -0.546610f, -0.546771f, -0.546931f, -0.547092f, -0.547252f, -0.547413f, -0.547573f, -0.547734f,
+ -0.547894f, -0.548054f, -0.548215f, -0.548375f, -0.548536f, -0.548696f, -0.548856f, -0.549016f,
+ -0.549177f, -0.549337f, -0.549497f, -0.549657f, -0.549818f, -0.549978f, -0.550138f, -0.550298f,
+ -0.550458f, -0.550618f, -0.550778f, -0.550938f, -0.551098f, -0.551258f, -0.551418f, -0.551578f,
+ -0.551738f, -0.551898f, -0.552058f, -0.552218f, -0.552378f, -0.552537f, -0.552697f, -0.552857f,
+ -0.553017f, -0.553176f, -0.553336f, -0.553496f, -0.553656f, -0.553815f, -0.553975f, -0.554134f,
+ -0.554294f, -0.554454f, -0.554613f, -0.554773f, -0.554932f, -0.555092f, -0.555251f, -0.555411f,
+ -0.555570f, -0.555730f, -0.555889f, -0.556048f, -0.556208f, -0.556367f, -0.556526f, -0.556686f,
+ -0.556845f, -0.557004f, -0.557164f, -0.557323f, -0.557482f, -0.557641f, -0.557800f, -0.557959f,
+ -0.558119f, -0.558278f, -0.558437f, -0.558596f, -0.558755f, -0.558914f, -0.559073f, -0.559232f,
+ -0.559391f, -0.559550f, -0.559709f, -0.559867f, -0.560026f, -0.560185f, -0.560344f, -0.560503f,
+ -0.560662f, -0.560820f, -0.560979f, -0.561138f, -0.561297f, -0.561455f, -0.561614f, -0.561773f,
+ -0.561931f, -0.562090f, -0.562248f, -0.562407f, -0.562565f, -0.562724f, -0.562882f, -0.563041f,
+ -0.563199f, -0.563358f, -0.563516f, -0.563675f, -0.563833f, -0.563991f, -0.564150f, -0.564308f,
+ -0.564466f, -0.564624f, -0.564783f, -0.564941f, -0.565099f, -0.565257f, -0.565416f, -0.565574f,
+ -0.565732f, -0.565890f, -0.566048f, -0.566206f, -0.566364f, -0.566522f, -0.566680f, -0.566838f,
+ -0.566996f, -0.567154f, -0.567312f, -0.567470f, -0.567628f, -0.567786f, -0.567943f, -0.568101f,
+ -0.568259f, -0.568417f, -0.568574f, -0.568732f, -0.568890f, -0.569048f, -0.569205f, -0.569363f,
+ -0.569521f, -0.569678f, -0.569836f, -0.569993f, -0.570151f, -0.570308f, -0.570466f, -0.570623f,
+ -0.570781f, -0.570938f, -0.571096f, -0.571253f, -0.571410f, -0.571568f, -0.571725f, -0.571882f,
+ -0.572040f, -0.572197f, -0.572354f, -0.572511f, -0.572669f, -0.572826f, -0.572983f, -0.573140f,
+ -0.573297f, -0.573454f, -0.573611f, -0.573768f, -0.573925f, -0.574082f, -0.574239f, -0.574396f,
+ -0.574553f, -0.574710f, -0.574867f, -0.575024f, -0.575181f, -0.575338f, -0.575495f, -0.575651f,
+ -0.575808f, -0.575965f, -0.576122f, -0.576278f, -0.576435f, -0.576592f, -0.576748f, -0.576905f,
+ -0.577062f, -0.577218f, -0.577375f, -0.577531f, -0.577688f, -0.577844f, -0.578001f, -0.578157f,
+ -0.578314f, -0.578470f, -0.578627f, -0.578783f, -0.578939f, -0.579096f, -0.579252f, -0.579408f,
+ -0.579565f, -0.579721f, -0.579877f, -0.580033f, -0.580189f, -0.580346f, -0.580502f, -0.580658f,
+ -0.580814f, -0.580970f, -0.581126f, -0.581282f, -0.581438f, -0.581594f, -0.581750f, -0.581906f,
+ -0.582062f, -0.582218f, -0.582374f, -0.582530f, -0.582685f, -0.582841f, -0.582997f, -0.583153f,
+ -0.583309f, -0.583464f, -0.583620f, -0.583776f, -0.583931f, -0.584087f, -0.584243f, -0.584398f,
+ -0.584554f, -0.584710f, -0.584865f, -0.585021f, -0.585176f, -0.585332f, -0.585487f, -0.585642f,
+ -0.585798f, -0.585953f, -0.586109f, -0.586264f, -0.586419f, -0.586575f, -0.586730f, -0.586885f,
+ -0.587040f, -0.587196f, -0.587351f, -0.587506f, -0.587661f, -0.587816f, -0.587971f, -0.588126f,
+ -0.588282f, -0.588437f, -0.588592f, -0.588747f, -0.588902f, -0.589057f, -0.589212f, -0.589366f,
+ -0.589521f, -0.589676f, -0.589831f, -0.589986f, -0.590141f, -0.590295f, -0.590450f, -0.590605f,
+ -0.590760f, -0.590914f, -0.591069f, -0.591224f, -0.591378f, -0.591533f, -0.591688f, -0.591842f,
+ -0.591997f, -0.592151f, -0.592306f, -0.592460f, -0.592615f, -0.592769f, -0.592924f, -0.593078f,
+ -0.593232f, -0.593387f, -0.593541f, -0.593695f, -0.593850f, -0.594004f, -0.594158f, -0.594312f,
+ -0.594467f, -0.594621f, -0.594775f, -0.594929f, -0.595083f, -0.595237f, -0.595391f, -0.595545f,
+ -0.595699f, -0.595853f, -0.596007f, -0.596161f, -0.596315f, -0.596469f, -0.596623f, -0.596777f,
+ -0.596931f, -0.597085f, -0.597238f, -0.597392f, -0.597546f, -0.597700f, -0.597853f, -0.598007f,
+ -0.598161f, -0.598314f, -0.598468f, -0.598622f, -0.598775f, -0.598929f, -0.599082f, -0.599236f,
+ -0.599389f, -0.599543f, -0.599696f, -0.599850f, -0.600003f, -0.600156f, -0.600310f, -0.600463f,
+ -0.600616f, -0.600770f, -0.600923f, -0.601076f, -0.601230f, -0.601383f, -0.601536f, -0.601689f,
+ -0.601842f, -0.601995f, -0.602148f, -0.602302f, -0.602455f, -0.602608f, -0.602761f, -0.602914f,
+ -0.603067f, -0.603220f, -0.603372f, -0.603525f, -0.603678f, -0.603831f, -0.603984f, -0.604137f,
+ -0.604290f, -0.604442f, -0.604595f, -0.604748f, -0.604900f, -0.605053f, -0.605206f, -0.605358f,
+ -0.605511f, -0.605664f, -0.605816f, -0.605969f, -0.606121f, -0.606274f, -0.606426f, -0.606579f,
+ -0.606731f, -0.606884f, -0.607036f, -0.607188f, -0.607341f, -0.607493f, -0.607645f, -0.607798f,
+ -0.607950f, -0.608102f, -0.608254f, -0.608406f, -0.608559f, -0.608711f, -0.608863f, -0.609015f,
+ -0.609167f, -0.609319f, -0.609471f, -0.609623f, -0.609775f, -0.609927f, -0.610079f, -0.610231f,
+ -0.610383f, -0.610535f, -0.610687f, -0.610838f, -0.610990f, -0.611142f, -0.611294f, -0.611445f,
+ -0.611597f, -0.611749f, -0.611901f, -0.612052f, -0.612204f, -0.612355f, -0.612507f, -0.612659f,
+ -0.612810f, -0.612962f, -0.613113f, -0.613265f, -0.613416f, -0.613567f, -0.613719f, -0.613870f,
+ -0.614022f, -0.614173f, -0.614324f, -0.614475f, -0.614627f, -0.614778f, -0.614929f, -0.615080f,
+ -0.615232f, -0.615383f, -0.615534f, -0.615685f, -0.615836f, -0.615987f, -0.616138f, -0.616289f,
+ -0.616440f, -0.616591f, -0.616742f, -0.616893f, -0.617044f, -0.617195f, -0.617346f, -0.617496f,
+ -0.617647f, -0.617798f, -0.617949f, -0.618100f, -0.618250f, -0.618401f, -0.618552f, -0.618702f,
+ -0.618853f, -0.619004f, -0.619154f, -0.619305f, -0.619455f, -0.619606f, -0.619756f, -0.619907f,
+ -0.620057f, -0.620208f, -0.620358f, -0.620508f, -0.620659f, -0.620809f, -0.620959f, -0.621110f,
+ -0.621260f, -0.621410f, -0.621560f, -0.621711f, -0.621861f, -0.622011f, -0.622161f, -0.622311f,
+ -0.622461f, -0.622611f, -0.622761f, -0.622911f, -0.623061f, -0.623211f, -0.623361f, -0.623511f,
+ -0.623661f, -0.623811f, -0.623961f, -0.624111f, -0.624260f, -0.624410f, -0.624560f, -0.624710f,
+ -0.624860f, -0.625009f, -0.625159f, -0.625309f, -0.625458f, -0.625608f, -0.625757f, -0.625907f,
+ -0.626056f, -0.626206f, -0.626355f, -0.626505f, -0.626654f, -0.626804f, -0.626953f, -0.627102f,
+ -0.627252f, -0.627401f, -0.627550f, -0.627700f, -0.627849f, -0.627998f, -0.628147f, -0.628297f,
+ -0.628446f, -0.628595f, -0.628744f, -0.628893f, -0.629042f, -0.629191f, -0.629340f, -0.629489f,
+ -0.629638f, -0.629787f, -0.629936f, -0.630085f, -0.630234f, -0.630383f, -0.630532f, -0.630680f,
+ -0.630829f, -0.630978f, -0.631127f, -0.631275f, -0.631424f, -0.631573f, -0.631721f, -0.631870f,
+ -0.632019f, -0.632167f, -0.632316f, -0.632464f, -0.632613f, -0.632761f, -0.632910f, -0.633058f,
+ -0.633207f, -0.633355f, -0.633504f, -0.633652f, -0.633800f, -0.633949f, -0.634097f, -0.634245f,
+ -0.634393f, -0.634542f, -0.634690f, -0.634838f, -0.634986f, -0.635134f, -0.635282f, -0.635430f,
+ -0.635578f, -0.635726f, -0.635874f, -0.636022f, -0.636170f, -0.636318f, -0.636466f, -0.636614f,
+ -0.636762f, -0.636910f, -0.637057f, -0.637205f, -0.637353f, -0.637501f, -0.637649f, -0.637796f,
+ -0.637944f, -0.638092f, -0.638239f, -0.638387f, -0.638534f, -0.638682f, -0.638829f, -0.638977f,
+ -0.639124f, -0.639272f, -0.639419f, -0.639567f, -0.639714f, -0.639862f, -0.640009f, -0.640156f,
+ -0.640303f, -0.640451f, -0.640598f, -0.640745f, -0.640892f, -0.641040f, -0.641187f, -0.641334f,
+ -0.641481f, -0.641628f, -0.641775f, -0.641922f, -0.642069f, -0.642216f, -0.642363f, -0.642510f,
+ -0.642657f, -0.642804f, -0.642951f, -0.643098f, -0.643245f, -0.643391f, -0.643538f, -0.643685f,
+ -0.643832f, -0.643978f, -0.644125f, -0.644272f, -0.644418f, -0.644565f, -0.644711f, -0.644858f,
+ -0.645005f, -0.645151f, -0.645298f, -0.645444f, -0.645590f, -0.645737f, -0.645883f, -0.646030f,
+ -0.646176f, -0.646322f, -0.646469f, -0.646615f, -0.646761f, -0.646907f, -0.647054f, -0.647200f,
+ -0.647346f, -0.647492f, -0.647638f, -0.647784f, -0.647930f, -0.648076f, -0.648222f, -0.648368f,
+ -0.648514f, -0.648660f, -0.648806f, -0.648952f, -0.649098f, -0.649244f, -0.649390f, -0.649536f,
+ -0.649681f, -0.649827f, -0.649973f, -0.650119f, -0.650264f, -0.650410f, -0.650555f, -0.650701f,
+ -0.650847f, -0.650992f, -0.651138f, -0.651283f, -0.651429f, -0.651574f, -0.651720f, -0.651865f,
+ -0.652011f, -0.652156f, -0.652301f, -0.652447f, -0.652592f, -0.652737f, -0.652882f, -0.653028f,
+ -0.653173f, -0.653318f, -0.653463f, -0.653608f, -0.653753f, -0.653899f, -0.654044f, -0.654189f,
+ -0.654334f, -0.654479f, -0.654624f, -0.654769f, -0.654913f, -0.655058f, -0.655203f, -0.655348f,
+ -0.655493f, -0.655638f, -0.655782f, -0.655927f, -0.656072f, -0.656217f, -0.656361f, -0.656506f,
+ -0.656651f, -0.656795f, -0.656940f, -0.657084f, -0.657229f, -0.657373f, -0.657518f, -0.657662f,
+ -0.657807f, -0.657951f, -0.658095f, -0.658240f, -0.658384f, -0.658529f, -0.658673f, -0.658817f,
+ -0.658961f, -0.659105f, -0.659250f, -0.659394f, -0.659538f, -0.659682f, -0.659826f, -0.659970f,
+ -0.660114f, -0.660258f, -0.660402f, -0.660546f, -0.660690f, -0.660834f, -0.660978f, -0.661122f,
+ -0.661266f, -0.661410f, -0.661553f, -0.661697f, -0.661841f, -0.661985f, -0.662128f, -0.662272f,
+ -0.662416f, -0.662559f, -0.662703f, -0.662847f, -0.662990f, -0.663134f, -0.663277f, -0.663421f,
+ -0.663564f, -0.663708f, -0.663851f, -0.663994f, -0.664138f, -0.664281f, -0.664424f, -0.664568f,
+ -0.664711f, -0.664854f, -0.664997f, -0.665141f, -0.665284f, -0.665427f, -0.665570f, -0.665713f,
+ -0.665856f, -0.665999f, -0.666142f, -0.666285f, -0.666428f, -0.666571f, -0.666714f, -0.666857f,
+ -0.667000f, -0.667143f, -0.667286f, -0.667428f, -0.667571f, -0.667714f, -0.667857f, -0.667999f,
+ -0.668142f, -0.668285f, -0.668427f, -0.668570f, -0.668712f, -0.668855f, -0.668998f, -0.669140f,
+ -0.669283f, -0.669425f, -0.669567f, -0.669710f, -0.669852f, -0.669995f, -0.670137f, -0.670279f,
+ -0.670422f, -0.670564f, -0.670706f, -0.670848f, -0.670990f, -0.671133f, -0.671275f, -0.671417f,
+ -0.671559f, -0.671701f, -0.671843f, -0.671985f, -0.672127f, -0.672269f, -0.672411f, -0.672553f,
+ -0.672695f, -0.672837f, -0.672978f, -0.673120f, -0.673262f, -0.673404f, -0.673546f, -0.673687f,
+ -0.673829f, -0.673971f, -0.674112f, -0.674254f, -0.674396f, -0.674537f, -0.674679f, -0.674820f,
+ -0.674962f, -0.675103f, -0.675245f, -0.675386f, -0.675527f, -0.675669f, -0.675810f, -0.675951f,
+ -0.676093f, -0.676234f, -0.676375f, -0.676516f, -0.676658f, -0.676799f, -0.676940f, -0.677081f,
+ -0.677222f, -0.677363f, -0.677504f, -0.677645f, -0.677786f, -0.677927f, -0.678068f, -0.678209f,
+ -0.678350f, -0.678491f, -0.678632f, -0.678773f, -0.678913f, -0.679054f, -0.679195f, -0.679336f,
+ -0.679476f, -0.679617f, -0.679758f, -0.679898f, -0.680039f, -0.680179f, -0.680320f, -0.680461f,
+ -0.680601f, -0.680741f, -0.680882f, -0.681022f, -0.681163f, -0.681303f, -0.681443f, -0.681584f,
+ -0.681724f, -0.681864f, -0.682005f, -0.682145f, -0.682285f, -0.682425f, -0.682565f, -0.682705f,
+ -0.682846f, -0.682986f, -0.683126f, -0.683266f, -0.683406f, -0.683546f, -0.683686f, -0.683825f,
+ -0.683965f, -0.684105f, -0.684245f, -0.684385f, -0.684525f, -0.684664f, -0.684804f, -0.684944f,
+ -0.685084f, -0.685223f, -0.685363f, -0.685503f, -0.685642f, -0.685782f, -0.685921f, -0.686061f,
+ -0.686200f, -0.686340f, -0.686479f, -0.686619f, -0.686758f, -0.686897f, -0.687037f, -0.687176f,
+ -0.687315f, -0.687455f, -0.687594f, -0.687733f, -0.687872f, -0.688011f, -0.688151f, -0.688290f,
+ -0.688429f, -0.688568f, -0.688707f, -0.688846f, -0.688985f, -0.689124f, -0.689263f, -0.689402f,
+ -0.689541f, -0.689679f, -0.689818f, -0.689957f, -0.690096f, -0.690235f, -0.690373f, -0.690512f,
+ -0.690651f, -0.690789f, -0.690928f, -0.691067f, -0.691205f, -0.691344f, -0.691482f, -0.691621f,
+ -0.691759f, -0.691898f, -0.692036f, -0.692175f, -0.692313f, -0.692451f, -0.692590f, -0.692728f,
+ -0.692866f, -0.693004f, -0.693143f, -0.693281f, -0.693419f, -0.693557f, -0.693695f, -0.693833f,
+ -0.693971f, -0.694109f, -0.694248f, -0.694386f, -0.694524f, -0.694661f, -0.694799f, -0.694937f,
+ -0.695075f, -0.695213f, -0.695351f, -0.695489f, -0.695626f, -0.695764f, -0.695902f, -0.696039f,
+ -0.696177f, -0.696315f, -0.696452f, -0.696590f, -0.696728f, -0.696865f, -0.697003f, -0.697140f,
+ -0.697277f, -0.697415f, -0.697552f, -0.697690f, -0.697827f, -0.697964f, -0.698102f, -0.698239f,
+ -0.698376f, -0.698513f, -0.698651f, -0.698788f, -0.698925f, -0.699062f, -0.699199f, -0.699336f,
+ -0.699473f, -0.699610f, -0.699747f, -0.699884f, -0.700021f, -0.700158f, -0.700295f, -0.700432f,
+ -0.700569f, -0.700706f, -0.700842f, -0.700979f, -0.701116f, -0.701253f, -0.701389f, -0.701526f,
+ -0.701663f, -0.701799f, -0.701936f, -0.702072f, -0.702209f, -0.702345f, -0.702482f, -0.702618f,
+ -0.702755f, -0.702891f, -0.703028f, -0.703164f, -0.703300f, -0.703436f, -0.703573f, -0.703709f,
+ -0.703845f, -0.703981f, -0.704118f, -0.704254f, -0.704390f, -0.704526f, -0.704662f, -0.704798f,
+ -0.704934f, -0.705070f, -0.705206f, -0.705342f, -0.705478f, -0.705614f, -0.705750f, -0.705885f,
+ -0.706021f, -0.706157f, -0.706293f, -0.706429f, -0.706564f, -0.706700f, -0.706836f, -0.706971f,
+ -0.707107f, -0.707242f, -0.707378f, -0.707513f, -0.707649f, -0.707784f, -0.707920f, -0.708055f,
+ -0.708191f, -0.708326f, -0.708461f, -0.708597f, -0.708732f, -0.708867f, -0.709002f, -0.709138f,
+ -0.709273f, -0.709408f, -0.709543f, -0.709678f, -0.709813f, -0.709948f, -0.710083f, -0.710218f,
+ -0.710353f, -0.710488f, -0.710623f, -0.710758f, -0.710893f, -0.711028f, -0.711163f, -0.711297f,
+ -0.711432f, -0.711567f, -0.711702f, -0.711836f, -0.711971f, -0.712106f, -0.712240f, -0.712375f,
+ -0.712509f, -0.712644f, -0.712778f, -0.712913f, -0.713047f, -0.713182f, -0.713316f, -0.713451f,
+ -0.713585f, -0.713719f, -0.713853f, -0.713988f, -0.714122f, -0.714256f, -0.714390f, -0.714525f,
+ -0.714659f, -0.714793f, -0.714927f, -0.715061f, -0.715195f, -0.715329f, -0.715463f, -0.715597f,
+ -0.715731f, -0.715865f, -0.715999f, -0.716132f, -0.716266f, -0.716400f, -0.716534f, -0.716668f,
+ -0.716801f, -0.716935f, -0.717069f, -0.717202f, -0.717336f, -0.717469f, -0.717603f, -0.717737f,
+ -0.717870f, -0.718004f, -0.718137f, -0.718270f, -0.718404f, -0.718537f, -0.718670f, -0.718804f,
+ -0.718937f, -0.719070f, -0.719204f, -0.719337f, -0.719470f, -0.719603f, -0.719736f, -0.719869f,
+ -0.720003f, -0.720136f, -0.720269f, -0.720402f, -0.720535f, -0.720668f, -0.720800f, -0.720933f,
+ -0.721066f, -0.721199f, -0.721332f, -0.721465f, -0.721597f, -0.721730f, -0.721863f, -0.721996f,
+ -0.722128f, -0.722261f, -0.722393f, -0.722526f, -0.722659f, -0.722791f, -0.722924f, -0.723056f,
+ -0.723188f, -0.723321f, -0.723453f, -0.723586f, -0.723718f, -0.723850f, -0.723983f, -0.724115f,
+ -0.724247f, -0.724379f, -0.724511f, -0.724644f, -0.724776f, -0.724908f, -0.725040f, -0.725172f,
+ -0.725304f, -0.725436f, -0.725568f, -0.725700f, -0.725832f, -0.725964f, -0.726095f, -0.726227f,
+ -0.726359f, -0.726491f, -0.726623f, -0.726754f, -0.726886f, -0.727018f, -0.727149f, -0.727281f,
+ -0.727413f, -0.727544f, -0.727676f, -0.727807f, -0.727939f, -0.728070f, -0.728202f, -0.728333f,
+ -0.728464f, -0.728596f, -0.728727f, -0.728858f, -0.728990f, -0.729121f, -0.729252f, -0.729383f,
+ -0.729514f, -0.729646f, -0.729777f, -0.729908f, -0.730039f, -0.730170f, -0.730301f, -0.730432f,
+ -0.730563f, -0.730694f, -0.730825f, -0.730955f, -0.731086f, -0.731217f, -0.731348f, -0.731479f,
+ -0.731609f, -0.731740f, -0.731871f, -0.732001f, -0.732132f, -0.732263f, -0.732393f, -0.732524f,
+ -0.732654f, -0.732785f, -0.732915f, -0.733046f, -0.733176f, -0.733306f, -0.733437f, -0.733567f,
+ -0.733697f, -0.733828f, -0.733958f, -0.734088f, -0.734218f, -0.734349f, -0.734479f, -0.734609f,
+ -0.734739f, -0.734869f, -0.734999f, -0.735129f, -0.735259f, -0.735389f, -0.735519f, -0.735649f,
+ -0.735779f, -0.735908f, -0.736038f, -0.736168f, -0.736298f, -0.736428f, -0.736557f, -0.736687f,
+ -0.736817f, -0.736946f, -0.737076f, -0.737205f, -0.737335f, -0.737464f, -0.737594f, -0.737723f,
+ -0.737853f, -0.737982f, -0.738112f, -0.738241f, -0.738370f, -0.738500f, -0.738629f, -0.738758f,
+ -0.738887f, -0.739017f, -0.739146f, -0.739275f, -0.739404f, -0.739533f, -0.739662f, -0.739791f,
+ -0.739920f, -0.740049f, -0.740178f, -0.740307f, -0.740436f, -0.740565f, -0.740694f, -0.740822f,
+ -0.740951f, -0.741080f, -0.741209f, -0.741337f, -0.741466f, -0.741595f, -0.741723f, -0.741852f,
+ -0.741980f, -0.742109f, -0.742237f, -0.742366f, -0.742494f, -0.742623f, -0.742751f, -0.742880f,
+ -0.743008f, -0.743136f, -0.743265f, -0.743393f, -0.743521f, -0.743649f, -0.743777f, -0.743906f,
+ -0.744034f, -0.744162f, -0.744290f, -0.744418f, -0.744546f, -0.744674f, -0.744802f, -0.744930f,
+ -0.745058f, -0.745186f, -0.745314f, -0.745441f, -0.745569f, -0.745697f, -0.745825f, -0.745952f,
+ -0.746080f, -0.746208f, -0.746335f, -0.746463f, -0.746591f, -0.746718f, -0.746846f, -0.746973f,
+ -0.747101f, -0.747228f, -0.747355f, -0.747483f, -0.747610f, -0.747738f, -0.747865f, -0.747992f,
+ -0.748119f, -0.748247f, -0.748374f, -0.748501f, -0.748628f, -0.748755f, -0.748882f, -0.749009f,
+ -0.749136f, -0.749263f, -0.749390f, -0.749517f, -0.749644f, -0.749771f, -0.749898f, -0.750025f,
+ -0.750152f, -0.750278f, -0.750405f, -0.750532f, -0.750659f, -0.750785f, -0.750912f, -0.751039f,
+ -0.751165f, -0.751292f, -0.751418f, -0.751545f, -0.751671f, -0.751798f, -0.751924f, -0.752050f,
+ -0.752177f, -0.752303f, -0.752429f, -0.752556f, -0.752682f, -0.752808f, -0.752934f, -0.753061f,
+ -0.753187f, -0.753313f, -0.753439f, -0.753565f, -0.753691f, -0.753817f, -0.753943f, -0.754069f,
+ -0.754195f, -0.754321f, -0.754447f, -0.754573f, -0.754698f, -0.754824f, -0.754950f, -0.755076f,
+ -0.755201f, -0.755327f, -0.755453f, -0.755578f, -0.755704f, -0.755829f, -0.755955f, -0.756081f,
+ -0.756206f, -0.756331f, -0.756457f, -0.756582f, -0.756708f, -0.756833f, -0.756958f, -0.757084f,
+ -0.757209f, -0.757334f, -0.757459f, -0.757584f, -0.757710f, -0.757835f, -0.757960f, -0.758085f,
+ -0.758210f, -0.758335f, -0.758460f, -0.758585f, -0.758710f, -0.758835f, -0.758960f, -0.759084f,
+ -0.759209f, -0.759334f, -0.759459f, -0.759583f, -0.759708f, -0.759833f, -0.759957f, -0.760082f,
+ -0.760207f, -0.760331f, -0.760456f, -0.760580f, -0.760705f, -0.760829f, -0.760954f, -0.761078f,
+ -0.761202f, -0.761327f, -0.761451f, -0.761575f, -0.761700f, -0.761824f, -0.761948f, -0.762072f,
+ -0.762196f, -0.762320f, -0.762444f, -0.762569f, -0.762693f, -0.762817f, -0.762941f, -0.763065f,
+ -0.763188f, -0.763312f, -0.763436f, -0.763560f, -0.763684f, -0.763808f, -0.763931f, -0.764055f,
+ -0.764179f, -0.764302f, -0.764426f, -0.764550f, -0.764673f, -0.764797f, -0.764920f, -0.765044f,
+ -0.765167f, -0.765291f, -0.765414f, -0.765538f, -0.765661f, -0.765784f, -0.765907f, -0.766031f,
+ -0.766154f, -0.766277f, -0.766400f, -0.766524f, -0.766647f, -0.766770f, -0.766893f, -0.767016f,
+ -0.767139f, -0.767262f, -0.767385f, -0.767508f, -0.767631f, -0.767754f, -0.767876f, -0.767999f,
+ -0.768122f, -0.768245f, -0.768368f, -0.768490f, -0.768613f, -0.768736f, -0.768858f, -0.768981f,
+ -0.769103f, -0.769226f, -0.769348f, -0.769471f, -0.769593f, -0.769716f, -0.769838f, -0.769961f,
+ -0.770083f, -0.770205f, -0.770327f, -0.770450f, -0.770572f, -0.770694f, -0.770816f, -0.770938f,
+ -0.771061f, -0.771183f, -0.771305f, -0.771427f, -0.771549f, -0.771671f, -0.771793f, -0.771915f,
+ -0.772036f, -0.772158f, -0.772280f, -0.772402f, -0.772524f, -0.772645f, -0.772767f, -0.772889f,
+ -0.773010f, -0.773132f, -0.773254f, -0.773375f, -0.773497f, -0.773618f, -0.773740f, -0.773861f,
+ -0.773983f, -0.774104f, -0.774225f, -0.774347f, -0.774468f, -0.774589f, -0.774711f, -0.774832f,
+ -0.774953f, -0.775074f, -0.775195f, -0.775317f, -0.775438f, -0.775559f, -0.775680f, -0.775801f,
+ -0.775922f, -0.776043f, -0.776164f, -0.776284f, -0.776405f, -0.776526f, -0.776647f, -0.776768f,
+ -0.776888f, -0.777009f, -0.777130f, -0.777251f, -0.777371f, -0.777492f, -0.777612f, -0.777733f,
+ -0.777853f, -0.777974f, -0.778094f, -0.778215f, -0.778335f, -0.778456f, -0.778576f, -0.778696f,
+ -0.778817f, -0.778937f, -0.779057f, -0.779177f, -0.779297f, -0.779418f, -0.779538f, -0.779658f,
+ -0.779778f, -0.779898f, -0.780018f, -0.780138f, -0.780258f, -0.780378f, -0.780498f, -0.780617f,
+ -0.780737f, -0.780857f, -0.780977f, -0.781097f, -0.781216f, -0.781336f, -0.781456f, -0.781575f,
+ -0.781695f, -0.781814f, -0.781934f, -0.782053f, -0.782173f, -0.782292f, -0.782412f, -0.782531f,
+ -0.782651f, -0.782770f, -0.782889f, -0.783009f, -0.783128f, -0.783247f, -0.783366f, -0.783485f,
+ -0.783605f, -0.783724f, -0.783843f, -0.783962f, -0.784081f, -0.784200f, -0.784319f, -0.784438f,
+ -0.784557f, -0.784675f, -0.784794f, -0.784913f, -0.785032f, -0.785151f, -0.785269f, -0.785388f,
+ -0.785507f, -0.785625f, -0.785744f, -0.785863f, -0.785981f, -0.786100f, -0.786218f, -0.786337f,
+ -0.786455f, -0.786574f, -0.786692f, -0.786810f, -0.786929f, -0.787047f, -0.787165f, -0.787284f,
+ -0.787402f, -0.787520f, -0.787638f, -0.787756f, -0.787874f, -0.787992f, -0.788110f, -0.788228f,
+ -0.788346f, -0.788464f, -0.788582f, -0.788700f, -0.788818f, -0.788936f, -0.789054f, -0.789172f,
+ -0.789289f, -0.789407f, -0.789525f, -0.789642f, -0.789760f, -0.789878f, -0.789995f, -0.790113f,
+ -0.790230f, -0.790348f, -0.790465f, -0.790583f, -0.790700f, -0.790817f, -0.790935f, -0.791052f,
+ -0.791169f, -0.791287f, -0.791404f, -0.791521f, -0.791638f, -0.791755f, -0.791872f, -0.791990f,
+ -0.792107f, -0.792224f, -0.792341f, -0.792458f, -0.792575f, -0.792691f, -0.792808f, -0.792925f,
+ -0.793042f, -0.793159f, -0.793276f, -0.793392f, -0.793509f, -0.793626f, -0.793742f, -0.793859f,
+ -0.793975f, -0.794092f, -0.794209f, -0.794325f, -0.794442f, -0.794558f, -0.794674f, -0.794791f,
+ -0.794907f, -0.795023f, -0.795140f, -0.795256f, -0.795372f, -0.795488f, -0.795605f, -0.795721f,
+ -0.795837f, -0.795953f, -0.796069f, -0.796185f, -0.796301f, -0.796417f, -0.796533f, -0.796649f,
+ -0.796765f, -0.796881f, -0.796996f, -0.797112f, -0.797228f, -0.797344f, -0.797459f, -0.797575f,
+ -0.797691f, -0.797806f, -0.797922f, -0.798038f, -0.798153f, -0.798269f, -0.798384f, -0.798500f,
+ -0.798615f, -0.798730f, -0.798846f, -0.798961f, -0.799076f, -0.799192f, -0.799307f, -0.799422f,
+ -0.799537f, -0.799652f, -0.799768f, -0.799883f, -0.799998f, -0.800113f, -0.800228f, -0.800343f,
+ -0.800458f, -0.800573f, -0.800687f, -0.800802f, -0.800917f, -0.801032f, -0.801147f, -0.801261f,
+ -0.801376f, -0.801491f, -0.801606f, -0.801720f, -0.801835f, -0.801949f, -0.802064f, -0.802178f,
+ -0.802293f, -0.802407f, -0.802522f, -0.802636f, -0.802750f, -0.802865f, -0.802979f, -0.803093f,
+ -0.803208f, -0.803322f, -0.803436f, -0.803550f, -0.803664f, -0.803778f, -0.803892f, -0.804006f,
+ -0.804120f, -0.804234f, -0.804348f, -0.804462f, -0.804576f, -0.804690f, -0.804804f, -0.804918f,
+ -0.805031f, -0.805145f, -0.805259f, -0.805372f, -0.805486f, -0.805600f, -0.805713f, -0.805827f,
+ -0.805940f, -0.806054f, -0.806167f, -0.806281f, -0.806394f, -0.806508f, -0.806621f, -0.806734f,
+ -0.806848f, -0.806961f, -0.807074f, -0.807187f, -0.807300f, -0.807414f, -0.807527f, -0.807640f,
+ -0.807753f, -0.807866f, -0.807979f, -0.808092f, -0.808205f, -0.808318f, -0.808430f, -0.808543f,
+ -0.808656f, -0.808769f, -0.808882f, -0.808994f, -0.809107f, -0.809220f, -0.809332f, -0.809445f,
+ -0.809558f, -0.809670f, -0.809783f, -0.809895f, -0.810008f, -0.810120f, -0.810232f, -0.810345f,
+ -0.810457f, -0.810570f, -0.810682f, -0.810794f, -0.810906f, -0.811018f, -0.811131f, -0.811243f,
+ -0.811355f, -0.811467f, -0.811579f, -0.811691f, -0.811803f, -0.811915f, -0.812027f, -0.812139f,
+ -0.812251f, -0.812362f, -0.812474f, -0.812586f, -0.812698f, -0.812809f, -0.812921f, -0.813033f,
+ -0.813144f, -0.813256f, -0.813368f, -0.813479f, -0.813591f, -0.813702f, -0.813814f, -0.813925f,
+ -0.814036f, -0.814148f, -0.814259f, -0.814370f, -0.814482f, -0.814593f, -0.814704f, -0.814815f,
+ -0.814926f, -0.815037f, -0.815149f, -0.815260f, -0.815371f, -0.815482f, -0.815593f, -0.815704f,
+ -0.815814f, -0.815925f, -0.816036f, -0.816147f, -0.816258f, -0.816368f, -0.816479f, -0.816590f,
+ -0.816701f, -0.816811f, -0.816922f, -0.817032f, -0.817143f, -0.817253f, -0.817364f, -0.817474f,
+ -0.817585f, -0.817695f, -0.817806f, -0.817916f, -0.818026f, -0.818137f, -0.818247f, -0.818357f,
+ -0.818467f, -0.818577f, -0.818687f, -0.818798f, -0.818908f, -0.819018f, -0.819128f, -0.819238f,
+ -0.819348f, -0.819457f, -0.819567f, -0.819677f, -0.819787f, -0.819897f, -0.820007f, -0.820116f,
+ -0.820226f, -0.820336f, -0.820445f, -0.820555f, -0.820664f, -0.820774f, -0.820884f, -0.820993f,
+ -0.821102f, -0.821212f, -0.821321f, -0.821431f, -0.821540f, -0.821649f, -0.821759f, -0.821868f,
+ -0.821977f, -0.822086f, -0.822195f, -0.822305f, -0.822414f, -0.822523f, -0.822632f, -0.822741f,
+ -0.822850f, -0.822959f, -0.823068f, -0.823177f, -0.823285f, -0.823394f, -0.823503f, -0.823612f,
+ -0.823721f, -0.823829f, -0.823938f, -0.824047f, -0.824155f, -0.824264f, -0.824372f, -0.824481f,
+ -0.824589f, -0.824698f, -0.824806f, -0.824915f, -0.825023f, -0.825131f, -0.825240f, -0.825348f,
+ -0.825456f, -0.825564f, -0.825673f, -0.825781f, -0.825889f, -0.825997f, -0.826105f, -0.826213f,
+ -0.826321f, -0.826429f, -0.826537f, -0.826645f, -0.826753f, -0.826861f, -0.826968f, -0.827076f,
+ -0.827184f, -0.827292f, -0.827399f, -0.827507f, -0.827615f, -0.827722f, -0.827830f, -0.827938f,
+ -0.828045f, -0.828153f, -0.828260f, -0.828367f, -0.828475f, -0.828582f, -0.828690f, -0.828797f,
+ -0.828904f, -0.829011f, -0.829119f, -0.829226f, -0.829333f, -0.829440f, -0.829547f, -0.829654f,
+ -0.829761f, -0.829868f, -0.829975f, -0.830082f, -0.830189f, -0.830296f, -0.830403f, -0.830510f,
+ -0.830616f, -0.830723f, -0.830830f, -0.830937f, -0.831043f, -0.831150f, -0.831257f, -0.831363f,
+ -0.831470f, -0.831576f, -0.831683f, -0.831789f, -0.831895f, -0.832002f, -0.832108f, -0.832215f,
+ -0.832321f, -0.832427f, -0.832533f, -0.832640f, -0.832746f, -0.832852f, -0.832958f, -0.833064f,
+ -0.833170f, -0.833276f, -0.833382f, -0.833488f, -0.833594f, -0.833700f, -0.833806f, -0.833912f,
+ -0.834018f, -0.834123f, -0.834229f, -0.834335f, -0.834440f, -0.834546f, -0.834652f, -0.834757f,
+ -0.834863f, -0.834968f, -0.835074f, -0.835179f, -0.835285f, -0.835390f, -0.835496f, -0.835601f,
+ -0.835706f, -0.835812f, -0.835917f, -0.836022f, -0.836127f, -0.836232f, -0.836338f, -0.836443f,
+ -0.836548f, -0.836653f, -0.836758f, -0.836863f, -0.836968f, -0.837073f, -0.837178f, -0.837282f,
+ -0.837387f, -0.837492f, -0.837597f, -0.837701f, -0.837806f, -0.837911f, -0.838015f, -0.838120f,
+ -0.838225f, -0.838329f, -0.838434f, -0.838538f, -0.838643f, -0.838747f, -0.838852f, -0.838956f,
+ -0.839060f, -0.839165f, -0.839269f, -0.839373f, -0.839477f, -0.839581f, -0.839686f, -0.839790f,
+ -0.839894f, -0.839998f, -0.840102f, -0.840206f, -0.840310f, -0.840414f, -0.840518f, -0.840622f,
+ -0.840725f, -0.840829f, -0.840933f, -0.841037f, -0.841140f, -0.841244f, -0.841348f, -0.841451f,
+ -0.841555f, -0.841659f, -0.841762f, -0.841866f, -0.841969f, -0.842072f, -0.842176f, -0.842279f,
+ -0.842383f, -0.842486f, -0.842589f, -0.842692f, -0.842796f, -0.842899f, -0.843002f, -0.843105f,
+ -0.843208f, -0.843311f, -0.843414f, -0.843517f, -0.843620f, -0.843723f, -0.843826f, -0.843929f,
+ -0.844032f, -0.844135f, -0.844238f, -0.844340f, -0.844443f, -0.844546f, -0.844648f, -0.844751f,
+ -0.844854f, -0.844956f, -0.845059f, -0.845161f, -0.845264f, -0.845366f, -0.845469f, -0.845571f,
+ -0.845673f, -0.845776f, -0.845878f, -0.845980f, -0.846082f, -0.846185f, -0.846287f, -0.846389f,
+ -0.846491f, -0.846593f, -0.846695f, -0.846797f, -0.846899f, -0.847001f, -0.847103f, -0.847205f,
+ -0.847307f, -0.847408f, -0.847510f, -0.847612f, -0.847714f, -0.847815f, -0.847917f, -0.848019f,
+ -0.848120f, -0.848222f, -0.848323f, -0.848425f, -0.848526f, -0.848628f, -0.848729f, -0.848831f,
+ -0.848932f, -0.849033f, -0.849135f, -0.849236f, -0.849337f, -0.849438f, -0.849540f, -0.849641f,
+ -0.849742f, -0.849843f, -0.849944f, -0.850045f, -0.850146f, -0.850247f, -0.850348f, -0.850449f,
+ -0.850549f, -0.850650f, -0.850751f, -0.850852f, -0.850953f, -0.851053f, -0.851154f, -0.851255f,
+ -0.851355f, -0.851456f, -0.851556f, -0.851657f, -0.851757f, -0.851858f, -0.851958f, -0.852059f,
+ -0.852159f, -0.852259f, -0.852360f, -0.852460f, -0.852560f, -0.852660f, -0.852760f, -0.852861f,
+ -0.852961f, -0.853061f, -0.853161f, -0.853261f, -0.853361f, -0.853461f, -0.853561f, -0.853660f,
+ -0.853760f, -0.853860f, -0.853960f, -0.854060f, -0.854159f, -0.854259f, -0.854359f, -0.854458f,
+ -0.854558f, -0.854658f, -0.854757f, -0.854857f, -0.854956f, -0.855056f, -0.855155f, -0.855254f,
+ -0.855354f, -0.855453f, -0.855552f, -0.855651f, -0.855751f, -0.855850f, -0.855949f, -0.856048f,
+ -0.856147f, -0.856246f, -0.856345f, -0.856444f, -0.856543f, -0.856642f, -0.856741f, -0.856840f,
+ -0.856939f, -0.857038f, -0.857137f, -0.857235f, -0.857334f, -0.857433f, -0.857531f, -0.857630f,
+ -0.857729f, -0.857827f, -0.857926f, -0.858024f, -0.858123f, -0.858221f, -0.858320f, -0.858418f,
+ -0.858516f, -0.858615f, -0.858713f, -0.858811f, -0.858909f, -0.859007f, -0.859106f, -0.859204f,
+ -0.859302f, -0.859400f, -0.859498f, -0.859596f, -0.859694f, -0.859792f, -0.859890f, -0.859988f,
+ -0.860085f, -0.860183f, -0.860281f, -0.860379f, -0.860476f, -0.860574f, -0.860672f, -0.860769f,
+ -0.860867f, -0.860964f, -0.861062f, -0.861160f, -0.861257f, -0.861354f, -0.861452f, -0.861549f,
+ -0.861646f, -0.861744f, -0.861841f, -0.861938f, -0.862035f, -0.862133f, -0.862230f, -0.862327f,
+ -0.862424f, -0.862521f, -0.862618f, -0.862715f, -0.862812f, -0.862909f, -0.863006f, -0.863103f,
+ -0.863199f, -0.863296f, -0.863393f, -0.863490f, -0.863586f, -0.863683f, -0.863780f, -0.863876f,
+ -0.863973f, -0.864069f, -0.864166f, -0.864262f, -0.864359f, -0.864455f, -0.864552f, -0.864648f,
+ -0.864744f, -0.864841f, -0.864937f, -0.865033f, -0.865129f, -0.865225f, -0.865321f, -0.865418f,
+ -0.865514f, -0.865610f, -0.865706f, -0.865802f, -0.865898f, -0.865993f, -0.866089f, -0.866185f,
+ -0.866281f, -0.866377f, -0.866472f, -0.866568f, -0.866664f, -0.866759f, -0.866855f, -0.866951f,
+ -0.867046f, -0.867142f, -0.867237f, -0.867333f, -0.867428f, -0.867523f, -0.867619f, -0.867714f,
+ -0.867809f, -0.867905f, -0.868000f, -0.868095f, -0.868190f, -0.868285f, -0.868381f, -0.868476f,
+ -0.868571f, -0.868666f, -0.868761f, -0.868856f, -0.868951f, -0.869045f, -0.869140f, -0.869235f,
+ -0.869330f, -0.869425f, -0.869519f, -0.869614f, -0.869709f, -0.869803f, -0.869898f, -0.869992f,
+ -0.870087f, -0.870182f, -0.870276f, -0.870370f, -0.870465f, -0.870559f, -0.870654f, -0.870748f,
+ -0.870842f, -0.870936f, -0.871031f, -0.871125f, -0.871219f, -0.871313f, -0.871407f, -0.871501f,
+ -0.871595f, -0.871689f, -0.871783f, -0.871877f, -0.871971f, -0.872065f, -0.872159f, -0.872252f,
+ -0.872346f, -0.872440f, -0.872534f, -0.872627f, -0.872721f, -0.872814f, -0.872908f, -0.873001f,
+ -0.873095f, -0.873188f, -0.873282f, -0.873375f, -0.873469f, -0.873562f, -0.873655f, -0.873749f,
+ -0.873842f, -0.873935f, -0.874028f, -0.874121f, -0.874215f, -0.874308f, -0.874401f, -0.874494f,
+ -0.874587f, -0.874680f, -0.874773f, -0.874865f, -0.874958f, -0.875051f, -0.875144f, -0.875237f,
+ -0.875329f, -0.875422f, -0.875515f, -0.875607f, -0.875700f, -0.875793f, -0.875885f, -0.875978f,
+ -0.876070f, -0.876163f, -0.876255f, -0.876347f, -0.876440f, -0.876532f, -0.876624f, -0.876716f,
+ -0.876809f, -0.876901f, -0.876993f, -0.877085f, -0.877177f, -0.877269f, -0.877361f, -0.877453f,
+ -0.877545f, -0.877637f, -0.877729f, -0.877821f, -0.877913f, -0.878005f, -0.878096f, -0.878188f,
+ -0.878280f, -0.878371f, -0.878463f, -0.878555f, -0.878646f, -0.878738f, -0.878829f, -0.878921f,
+ -0.879012f, -0.879104f, -0.879195f, -0.879286f, -0.879378f, -0.879469f, -0.879560f, -0.879651f,
+ -0.879743f, -0.879834f, -0.879925f, -0.880016f, -0.880107f, -0.880198f, -0.880289f, -0.880380f,
+ -0.880471f, -0.880562f, -0.880653f, -0.880743f, -0.880834f, -0.880925f, -0.881016f, -0.881106f,
+ -0.881197f, -0.881288f, -0.881378f, -0.881469f, -0.881559f, -0.881650f, -0.881740f, -0.881831f,
+ -0.881921f, -0.882012f, -0.882102f, -0.882192f, -0.882283f, -0.882373f, -0.882463f, -0.882553f,
+ -0.882643f, -0.882733f, -0.882824f, -0.882914f, -0.883004f, -0.883094f, -0.883184f, -0.883273f,
+ -0.883363f, -0.883453f, -0.883543f, -0.883633f, -0.883723f, -0.883812f, -0.883902f, -0.883992f,
+ -0.884081f, -0.884171f, -0.884260f, -0.884350f, -0.884439f, -0.884529f, -0.884618f, -0.884708f,
+ -0.884797f, -0.884886f, -0.884976f, -0.885065f, -0.885154f, -0.885243f, -0.885333f, -0.885422f,
+ -0.885511f, -0.885600f, -0.885689f, -0.885778f, -0.885867f, -0.885956f, -0.886045f, -0.886134f,
+ -0.886223f, -0.886311f, -0.886400f, -0.886489f, -0.886578f, -0.886666f, -0.886755f, -0.886844f,
+ -0.886932f, -0.887021f, -0.887109f, -0.887198f, -0.887286f, -0.887375f, -0.887463f, -0.887551f,
+ -0.887640f, -0.887728f, -0.887816f, -0.887904f, -0.887993f, -0.888081f, -0.888169f, -0.888257f,
+ -0.888345f, -0.888433f, -0.888521f, -0.888609f, -0.888697f, -0.888785f, -0.888873f, -0.888961f,
+ -0.889048f, -0.889136f, -0.889224f, -0.889312f, -0.889399f, -0.889487f, -0.889574f, -0.889662f,
+ -0.889750f, -0.889837f, -0.889925f, -0.890012f, -0.890099f, -0.890187f, -0.890274f, -0.890361f,
+ -0.890449f, -0.890536f, -0.890623f, -0.890710f, -0.890797f, -0.890885f, -0.890972f, -0.891059f,
+ -0.891146f, -0.891233f, -0.891320f, -0.891407f, -0.891493f, -0.891580f, -0.891667f, -0.891754f,
+ -0.891841f, -0.891927f, -0.892014f, -0.892101f, -0.892187f, -0.892274f, -0.892361f, -0.892447f,
+ -0.892534f, -0.892620f, -0.892706f, -0.892793f, -0.892879f, -0.892965f, -0.893052f, -0.893138f,
+ -0.893224f, -0.893310f, -0.893397f, -0.893483f, -0.893569f, -0.893655f, -0.893741f, -0.893827f,
+ -0.893913f, -0.893999f, -0.894085f, -0.894171f, -0.894256f, -0.894342f, -0.894428f, -0.894514f,
+ -0.894599f, -0.894685f, -0.894771f, -0.894856f, -0.894942f, -0.895028f, -0.895113f, -0.895198f,
+ -0.895284f, -0.895369f, -0.895455f, -0.895540f, -0.895625f, -0.895711f, -0.895796f, -0.895881f,
+ -0.895966f, -0.896051f, -0.896137f, -0.896222f, -0.896307f, -0.896392f, -0.896477f, -0.896562f,
+ -0.896646f, -0.896731f, -0.896816f, -0.896901f, -0.896986f, -0.897071f, -0.897155f, -0.897240f,
+ -0.897325f, -0.897409f, -0.897494f, -0.897578f, -0.897663f, -0.897747f, -0.897832f, -0.897916f,
+ -0.898001f, -0.898085f, -0.898169f, -0.898254f, -0.898338f, -0.898422f, -0.898506f, -0.898590f,
+ -0.898674f, -0.898759f, -0.898843f, -0.898927f, -0.899011f, -0.899095f, -0.899179f, -0.899262f,
+ -0.899346f, -0.899430f, -0.899514f, -0.899598f, -0.899681f, -0.899765f, -0.899849f, -0.899932f,
+ -0.900016f, -0.900099f, -0.900183f, -0.900266f, -0.900350f, -0.900433f, -0.900517f, -0.900600f,
+ -0.900683f, -0.900767f, -0.900850f, -0.900933f, -0.901016f, -0.901100f, -0.901183f, -0.901266f,
+ -0.901349f, -0.901432f, -0.901515f, -0.901598f, -0.901681f, -0.901764f, -0.901847f, -0.901929f,
+ -0.902012f, -0.902095f, -0.902178f, -0.902260f, -0.902343f, -0.902426f, -0.902508f, -0.902591f,
+ -0.902673f, -0.902756f, -0.902838f, -0.902921f, -0.903003f, -0.903085f, -0.903168f, -0.903250f,
+ -0.903332f, -0.903415f, -0.903497f, -0.903579f, -0.903661f, -0.903743f, -0.903825f, -0.903907f,
+ -0.903989f, -0.904071f, -0.904153f, -0.904235f, -0.904317f, -0.904399f, -0.904481f, -0.904562f,
+ -0.904644f, -0.904726f, -0.904807f, -0.904889f, -0.904971f, -0.905052f, -0.905134f, -0.905215f,
+ -0.905297f, -0.905378f, -0.905460f, -0.905541f, -0.905622f, -0.905704f, -0.905785f, -0.905866f,
+ -0.905947f, -0.906028f, -0.906110f, -0.906191f, -0.906272f, -0.906353f, -0.906434f, -0.906515f,
+ -0.906596f, -0.906677f, -0.906757f, -0.906838f, -0.906919f, -0.907000f, -0.907081f, -0.907161f,
+ -0.907242f, -0.907323f, -0.907403f, -0.907484f, -0.907564f, -0.907645f, -0.907725f, -0.907806f,
+ -0.907886f, -0.907966f, -0.908047f, -0.908127f, -0.908207f, -0.908288f, -0.908368f, -0.908448f,
+ -0.908528f, -0.908608f, -0.908688f, -0.908768f, -0.908848f, -0.908928f, -0.909008f, -0.909088f,
+ -0.909168f, -0.909248f, -0.909328f, -0.909407f, -0.909487f, -0.909567f, -0.909646f, -0.909726f,
+ -0.909806f, -0.909885f, -0.909965f, -0.910044f, -0.910124f, -0.910203f, -0.910283f, -0.910362f,
+ -0.910441f, -0.910521f, -0.910600f, -0.910679f, -0.910758f, -0.910837f, -0.910917f, -0.910996f,
+ -0.911075f, -0.911154f, -0.911233f, -0.911312f, -0.911391f, -0.911470f, -0.911548f, -0.911627f,
+ -0.911706f, -0.911785f, -0.911864f, -0.911942f, -0.912021f, -0.912099f, -0.912178f, -0.912257f,
+ -0.912335f, -0.912414f, -0.912492f, -0.912571f, -0.912649f, -0.912727f, -0.912806f, -0.912884f,
+ -0.912962f, -0.913040f, -0.913119f, -0.913197f, -0.913275f, -0.913353f, -0.913431f, -0.913509f,
+ -0.913587f, -0.913665f, -0.913743f, -0.913821f, -0.913899f, -0.913976f, -0.914054f, -0.914132f,
+ -0.914210f, -0.914287f, -0.914365f, -0.914443f, -0.914520f, -0.914598f, -0.914675f, -0.914753f,
+ -0.914830f, -0.914908f, -0.914985f, -0.915062f, -0.915140f, -0.915217f, -0.915294f, -0.915372f,
+ -0.915449f, -0.915526f, -0.915603f, -0.915680f, -0.915757f, -0.915834f, -0.915911f, -0.915988f,
+ -0.916065f, -0.916142f, -0.916219f, -0.916296f, -0.916372f, -0.916449f, -0.916526f, -0.916602f,
+ -0.916679f, -0.916756f, -0.916832f, -0.916909f, -0.916985f, -0.917062f, -0.917138f, -0.917215f,
+ -0.917291f, -0.917367f, -0.917444f, -0.917520f, -0.917596f, -0.917672f, -0.917749f, -0.917825f,
+ -0.917901f, -0.917977f, -0.918053f, -0.918129f, -0.918205f, -0.918281f, -0.918357f, -0.918433f,
+ -0.918508f, -0.918584f, -0.918660f, -0.918736f, -0.918811f, -0.918887f, -0.918963f, -0.919038f,
+ -0.919114f, -0.919189f, -0.919265f, -0.919340f, -0.919416f, -0.919491f, -0.919567f, -0.919642f,
+ -0.919717f, -0.919792f, -0.919868f, -0.919943f, -0.920018f, -0.920093f, -0.920168f, -0.920243f,
+ -0.920318f, -0.920393f, -0.920468f, -0.920543f, -0.920618f, -0.920693f, -0.920768f, -0.920842f,
+ -0.920917f, -0.920992f, -0.921067f, -0.921141f, -0.921216f, -0.921291f, -0.921365f, -0.921440f,
+ -0.921514f, -0.921588f, -0.921663f, -0.921737f, -0.921812f, -0.921886f, -0.921960f, -0.922034f,
+ -0.922109f, -0.922183f, -0.922257f, -0.922331f, -0.922405f, -0.922479f, -0.922553f, -0.922627f,
+ -0.922701f, -0.922775f, -0.922849f, -0.922923f, -0.922997f, -0.923070f, -0.923144f, -0.923218f,
+ -0.923291f, -0.923365f, -0.923439f, -0.923512f, -0.923586f, -0.923659f, -0.923733f, -0.923806f,
+ -0.923880f, -0.923953f, -0.924026f, -0.924100f, -0.924173f, -0.924246f, -0.924319f, -0.924392f,
+ -0.924465f, -0.924539f, -0.924612f, -0.924685f, -0.924758f, -0.924831f, -0.924904f, -0.924976f,
+ -0.925049f, -0.925122f, -0.925195f, -0.925268f, -0.925340f, -0.925413f, -0.925486f, -0.925558f,
+ -0.925631f, -0.925703f, -0.925776f, -0.925848f, -0.925921f, -0.925993f, -0.926066f, -0.926138f,
+ -0.926210f, -0.926283f, -0.926355f, -0.926427f, -0.926499f, -0.926571f, -0.926643f, -0.926715f,
+ -0.926787f, -0.926859f, -0.926931f, -0.927003f, -0.927075f, -0.927147f, -0.927219f, -0.927291f,
+ -0.927363f, -0.927434f, -0.927506f, -0.927578f, -0.927649f, -0.927721f, -0.927792f, -0.927864f,
+ -0.927935f, -0.928007f, -0.928078f, -0.928150f, -0.928221f, -0.928292f, -0.928364f, -0.928435f,
+ -0.928506f, -0.928577f, -0.928648f, -0.928720f, -0.928791f, -0.928862f, -0.928933f, -0.929004f,
+ -0.929075f, -0.929146f, -0.929216f, -0.929287f, -0.929358f, -0.929429f, -0.929500f, -0.929570f,
+ -0.929641f, -0.929712f, -0.929782f, -0.929853f, -0.929923f, -0.929994f, -0.930064f, -0.930135f,
+ -0.930205f, -0.930275f, -0.930346f, -0.930416f, -0.930486f, -0.930556f, -0.930627f, -0.930697f,
+ -0.930767f, -0.930837f, -0.930907f, -0.930977f, -0.931047f, -0.931117f, -0.931187f, -0.931257f,
+ -0.931327f, -0.931397f, -0.931466f, -0.931536f, -0.931606f, -0.931675f, -0.931745f, -0.931815f,
+ -0.931884f, -0.931954f, -0.932023f, -0.932093f, -0.932162f, -0.932232f, -0.932301f, -0.932370f,
+ -0.932440f, -0.932509f, -0.932578f, -0.932647f, -0.932716f, -0.932786f, -0.932855f, -0.932924f,
+ -0.932993f, -0.933062f, -0.933131f, -0.933200f, -0.933269f, -0.933337f, -0.933406f, -0.933475f,
+ -0.933544f, -0.933612f, -0.933681f, -0.933750f, -0.933818f, -0.933887f, -0.933956f, -0.934024f,
+ -0.934093f, -0.934161f, -0.934229f, -0.934298f, -0.934366f, -0.934434f, -0.934503f, -0.934571f,
+ -0.934639f, -0.934707f, -0.934775f, -0.934844f, -0.934912f, -0.934980f, -0.935048f, -0.935116f,
+ -0.935184f, -0.935251f, -0.935319f, -0.935387f, -0.935455f, -0.935523f, -0.935590f, -0.935658f,
+ -0.935726f, -0.935793f, -0.935861f, -0.935928f, -0.935996f, -0.936063f, -0.936131f, -0.936198f,
+ -0.936266f, -0.936333f, -0.936400f, -0.936468f, -0.936535f, -0.936602f, -0.936669f, -0.936736f,
+ -0.936803f, -0.936871f, -0.936938f, -0.937005f, -0.937072f, -0.937138f, -0.937205f, -0.937272f,
+ -0.937339f, -0.937406f, -0.937473f, -0.937539f, -0.937606f, -0.937673f, -0.937739f, -0.937806f,
+ -0.937872f, -0.937939f, -0.938005f, -0.938072f, -0.938138f, -0.938205f, -0.938271f, -0.938337f,
+ -0.938404f, -0.938470f, -0.938536f, -0.938602f, -0.938668f, -0.938734f, -0.938800f, -0.938866f,
+ -0.938932f, -0.938998f, -0.939064f, -0.939130f, -0.939196f, -0.939262f, -0.939328f, -0.939394f,
+ -0.939459f, -0.939525f, -0.939591f, -0.939656f, -0.939722f, -0.939787f, -0.939853f, -0.939918f,
+ -0.939984f, -0.940049f, -0.940115f, -0.940180f, -0.940245f, -0.940310f, -0.940376f, -0.940441f,
+ -0.940506f, -0.940571f, -0.940636f, -0.940701f, -0.940766f, -0.940831f, -0.940896f, -0.940961f,
+ -0.941026f, -0.941091f, -0.941156f, -0.941221f, -0.941285f, -0.941350f, -0.941415f, -0.941479f,
+ -0.941544f, -0.941609f, -0.941673f, -0.941738f, -0.941802f, -0.941867f, -0.941931f, -0.941995f,
+ -0.942060f, -0.942124f, -0.942188f, -0.942253f, -0.942317f, -0.942381f, -0.942445f, -0.942509f,
+ -0.942573f, -0.942637f, -0.942701f, -0.942765f, -0.942829f, -0.942893f, -0.942957f, -0.943021f,
+ -0.943084f, -0.943148f, -0.943212f, -0.943276f, -0.943339f, -0.943403f, -0.943466f, -0.943530f,
+ -0.943593f, -0.943657f, -0.943720f, -0.943784f, -0.943847f, -0.943910f, -0.943974f, -0.944037f,
+ -0.944100f, -0.944163f, -0.944227f, -0.944290f, -0.944353f, -0.944416f, -0.944479f, -0.944542f,
+ -0.944605f, -0.944668f, -0.944731f, -0.944793f, -0.944856f, -0.944919f, -0.944982f, -0.945045f,
+ -0.945107f, -0.945170f, -0.945232f, -0.945295f, -0.945358f, -0.945420f, -0.945482f, -0.945545f,
+ -0.945607f, -0.945670f, -0.945732f, -0.945794f, -0.945857f, -0.945919f, -0.945981f, -0.946043f,
+ -0.946105f, -0.946167f, -0.946229f, -0.946291f, -0.946353f, -0.946415f, -0.946477f, -0.946539f,
+ -0.946601f, -0.946663f, -0.946724f, -0.946786f, -0.946848f, -0.946910f, -0.946971f, -0.947033f,
+ -0.947094f, -0.947156f, -0.947217f, -0.947279f, -0.947340f, -0.947402f, -0.947463f, -0.947524f,
+ -0.947586f, -0.947647f, -0.947708f, -0.947769f, -0.947830f, -0.947891f, -0.947953f, -0.948014f,
+ -0.948075f, -0.948136f, -0.948196f, -0.948257f, -0.948318f, -0.948379f, -0.948440f, -0.948501f,
+ -0.948561f, -0.948622f, -0.948683f, -0.948743f, -0.948804f, -0.948864f, -0.948925f, -0.948985f,
+ -0.949046f, -0.949106f, -0.949167f, -0.949227f, -0.949287f, -0.949348f, -0.949408f, -0.949468f,
+ -0.949528f, -0.949588f, -0.949648f, -0.949708f, -0.949768f, -0.949829f, -0.949888f, -0.949948f,
+ -0.950008f, -0.950068f, -0.950128f, -0.950188f, -0.950247f, -0.950307f, -0.950367f, -0.950426f,
+ -0.950486f, -0.950546f, -0.950605f, -0.950665f, -0.950724f, -0.950784f, -0.950843f, -0.950902f,
+ -0.950962f, -0.951021f, -0.951080f, -0.951139f, -0.951199f, -0.951258f, -0.951317f, -0.951376f,
+ -0.951435f, -0.951494f, -0.951553f, -0.951612f, -0.951671f, -0.951730f, -0.951789f, -0.951847f,
+ -0.951906f, -0.951965f, -0.952024f, -0.952082f, -0.952141f, -0.952199f, -0.952258f, -0.952317f,
+ -0.952375f, -0.952433f, -0.952492f, -0.952550f, -0.952609f, -0.952667f, -0.952725f, -0.952783f,
+ -0.952842f, -0.952900f, -0.952958f, -0.953016f, -0.953074f, -0.953132f, -0.953190f, -0.953248f,
+ -0.953306f, -0.953364f, -0.953422f, -0.953480f, -0.953537f, -0.953595f, -0.953653f, -0.953711f,
+ -0.953768f, -0.953826f, -0.953883f, -0.953941f, -0.953998f, -0.954056f, -0.954113f, -0.954171f,
+ -0.954228f, -0.954285f, -0.954343f, -0.954400f, -0.954457f, -0.954514f, -0.954572f, -0.954629f,
+ -0.954686f, -0.954743f, -0.954800f, -0.954857f, -0.954914f, -0.954971f, -0.955028f, -0.955084f,
+ -0.955141f, -0.955198f, -0.955255f, -0.955311f, -0.955368f, -0.955425f, -0.955481f, -0.955538f,
+ -0.955594f, -0.955651f, -0.955707f, -0.955764f, -0.955820f, -0.955876f, -0.955933f, -0.955989f,
+ -0.956045f, -0.956101f, -0.956158f, -0.956214f, -0.956270f, -0.956326f, -0.956382f, -0.956438f,
+ -0.956494f, -0.956550f, -0.956606f, -0.956662f, -0.956717f, -0.956773f, -0.956829f, -0.956885f,
+ -0.956940f, -0.956996f, -0.957052f, -0.957107f, -0.957163f, -0.957218f, -0.957274f, -0.957329f,
+ -0.957385f, -0.957440f, -0.957495f, -0.957550f, -0.957606f, -0.957661f, -0.957716f, -0.957771f,
+ -0.957826f, -0.957882f, -0.957937f, -0.957992f, -0.958046f, -0.958101f, -0.958156f, -0.958211f,
+ -0.958266f, -0.958321f, -0.958376f, -0.958430f, -0.958485f, -0.958540f, -0.958594f, -0.958649f,
+ -0.958703f, -0.958758f, -0.958812f, -0.958867f, -0.958921f, -0.958976f, -0.959030f, -0.959084f,
+ -0.959139f, -0.959193f, -0.959247f, -0.959301f, -0.959355f, -0.959409f, -0.959463f, -0.959518f,
+ -0.959572f, -0.959625f, -0.959679f, -0.959733f, -0.959787f, -0.959841f, -0.959895f, -0.959948f,
+ -0.960002f, -0.960056f, -0.960109f, -0.960163f, -0.960217f, -0.960270f, -0.960324f, -0.960377f,
+ -0.960431f, -0.960484f, -0.960537f, -0.960591f, -0.960644f, -0.960697f, -0.960750f, -0.960804f,
+ -0.960857f, -0.960910f, -0.960963f, -0.961016f, -0.961069f, -0.961122f, -0.961175f, -0.961228f,
+ -0.961280f, -0.961333f, -0.961386f, -0.961439f, -0.961492f, -0.961544f, -0.961597f, -0.961649f,
+ -0.961702f, -0.961755f, -0.961807f, -0.961860f, -0.961912f, -0.961964f, -0.962017f, -0.962069f,
+ -0.962121f, -0.962174f, -0.962226f, -0.962278f, -0.962330f, -0.962382f, -0.962434f, -0.962486f,
+ -0.962538f, -0.962590f, -0.962642f, -0.962694f, -0.962746f, -0.962798f, -0.962850f, -0.962902f,
+ -0.962953f, -0.963005f, -0.963057f, -0.963108f, -0.963160f, -0.963211f, -0.963263f, -0.963314f,
+ -0.963366f, -0.963417f, -0.963469f, -0.963520f, -0.963571f, -0.963623f, -0.963674f, -0.963725f,
+ -0.963776f, -0.963827f, -0.963878f, -0.963929f, -0.963980f, -0.964031f, -0.964082f, -0.964133f,
+ -0.964184f, -0.964235f, -0.964286f, -0.964336f, -0.964387f, -0.964438f, -0.964489f, -0.964539f,
+ -0.964590f, -0.964640f, -0.964691f, -0.964741f, -0.964792f, -0.964842f, -0.964893f, -0.964943f,
+ -0.964993f, -0.965044f, -0.965094f, -0.965144f, -0.965194f, -0.965244f, -0.965294f, -0.965344f,
+ -0.965394f, -0.965444f, -0.965494f, -0.965544f, -0.965594f, -0.965644f, -0.965694f, -0.965744f,
+ -0.965793f, -0.965843f, -0.965893f, -0.965942f, -0.965992f, -0.966042f, -0.966091f, -0.966141f,
+ -0.966190f, -0.966239f, -0.966289f, -0.966338f, -0.966387f, -0.966437f, -0.966486f, -0.966535f,
+ -0.966584f, -0.966633f, -0.966683f, -0.966732f, -0.966781f, -0.966830f, -0.966879f, -0.966928f,
+ -0.966976f, -0.967025f, -0.967074f, -0.967123f, -0.967172f, -0.967220f, -0.967269f, -0.967318f,
+ -0.967366f, -0.967415f, -0.967463f, -0.967512f, -0.967560f, -0.967609f, -0.967657f, -0.967706f,
+ -0.967754f, -0.967802f, -0.967850f, -0.967899f, -0.967947f, -0.967995f, -0.968043f, -0.968091f,
+ -0.968139f, -0.968187f, -0.968235f, -0.968283f, -0.968331f, -0.968379f, -0.968427f, -0.968474f,
+ -0.968522f, -0.968570f, -0.968617f, -0.968665f, -0.968713f, -0.968760f, -0.968808f, -0.968855f,
+ -0.968903f, -0.968950f, -0.968998f, -0.969045f, -0.969092f, -0.969140f, -0.969187f, -0.969234f,
+ -0.969281f, -0.969328f, -0.969375f, -0.969423f, -0.969470f, -0.969517f, -0.969564f, -0.969611f,
+ -0.969657f, -0.969704f, -0.969751f, -0.969798f, -0.969845f, -0.969891f, -0.969938f, -0.969985f,
+ -0.970031f, -0.970078f, -0.970124f, -0.970171f, -0.970217f, -0.970264f, -0.970310f, -0.970357f,
+ -0.970403f, -0.970449f, -0.970495f, -0.970542f, -0.970588f, -0.970634f, -0.970680f, -0.970726f,
+ -0.970772f, -0.970818f, -0.970864f, -0.970910f, -0.970956f, -0.971002f, -0.971048f, -0.971093f,
+ -0.971139f, -0.971185f, -0.971231f, -0.971276f, -0.971322f, -0.971367f, -0.971413f, -0.971458f,
+ -0.971504f, -0.971549f, -0.971595f, -0.971640f, -0.971685f, -0.971731f, -0.971776f, -0.971821f,
+ -0.971866f, -0.971911f, -0.971957f, -0.972002f, -0.972047f, -0.972092f, -0.972137f, -0.972182f,
+ -0.972227f, -0.972271f, -0.972316f, -0.972361f, -0.972406f, -0.972450f, -0.972495f, -0.972540f,
+ -0.972584f, -0.972629f, -0.972673f, -0.972718f, -0.972762f, -0.972807f, -0.972851f, -0.972896f,
+ -0.972940f, -0.972984f, -0.973028f, -0.973073f, -0.973117f, -0.973161f, -0.973205f, -0.973249f,
+ -0.973293f, -0.973337f, -0.973381f, -0.973425f, -0.973469f, -0.973513f, -0.973557f, -0.973601f,
+ -0.973644f, -0.973688f, -0.973732f, -0.973775f, -0.973819f, -0.973862f, -0.973906f, -0.973949f,
+ -0.973993f, -0.974036f, -0.974080f, -0.974123f, -0.974166f, -0.974210f, -0.974253f, -0.974296f,
+ -0.974339f, -0.974383f, -0.974426f, -0.974469f, -0.974512f, -0.974555f, -0.974598f, -0.974641f,
+ -0.974684f, -0.974726f, -0.974769f, -0.974812f, -0.974855f, -0.974897f, -0.974940f, -0.974983f,
+ -0.975025f, -0.975068f, -0.975110f, -0.975153f, -0.975195f, -0.975238f, -0.975280f, -0.975323f,
+ -0.975365f, -0.975407f, -0.975449f, -0.975492f, -0.975534f, -0.975576f, -0.975618f, -0.975660f,
+ -0.975702f, -0.975744f, -0.975786f, -0.975828f, -0.975870f, -0.975912f, -0.975954f, -0.975995f,
+ -0.976037f, -0.976079f, -0.976120f, -0.976162f, -0.976204f, -0.976245f, -0.976287f, -0.976328f,
+ -0.976370f, -0.976411f, -0.976453f, -0.976494f, -0.976535f, -0.976576f, -0.976618f, -0.976659f,
+ -0.976700f, -0.976741f, -0.976782f, -0.976823f, -0.976864f, -0.976905f, -0.976946f, -0.976987f,
+ -0.977028f, -0.977069f, -0.977110f, -0.977151f, -0.977191f, -0.977232f, -0.977273f, -0.977313f,
+ -0.977354f, -0.977394f, -0.977435f, -0.977475f, -0.977516f, -0.977556f, -0.977597f, -0.977637f,
+ -0.977677f, -0.977718f, -0.977758f, -0.977798f, -0.977838f, -0.977878f, -0.977918f, -0.977959f,
+ -0.977998f, -0.978038f, -0.978078f, -0.978118f, -0.978158f, -0.978198f, -0.978238f, -0.978278f,
+ -0.978317f, -0.978357f, -0.978397f, -0.978436f, -0.978476f, -0.978516f, -0.978555f, -0.978594f,
+ -0.978634f, -0.978673f, -0.978713f, -0.978752f, -0.978791f, -0.978831f, -0.978870f, -0.978909f,
+ -0.978948f, -0.978987f, -0.979026f, -0.979065f, -0.979104f, -0.979143f, -0.979182f, -0.979221f,
+ -0.979260f, -0.979299f, -0.979338f, -0.979376f, -0.979415f, -0.979454f, -0.979493f, -0.979531f,
+ -0.979570f, -0.979608f, -0.979647f, -0.979685f, -0.979724f, -0.979762f, -0.979800f, -0.979839f,
+ -0.979877f, -0.979915f, -0.979954f, -0.979992f, -0.980030f, -0.980068f, -0.980106f, -0.980144f,
+ -0.980182f, -0.980220f, -0.980258f, -0.980296f, -0.980334f, -0.980372f, -0.980409f, -0.980447f,
+ -0.980485f, -0.980523f, -0.980560f, -0.980598f, -0.980635f, -0.980673f, -0.980710f, -0.980748f,
+ -0.980785f, -0.980823f, -0.980860f, -0.980897f, -0.980935f, -0.980972f, -0.981009f, -0.981046f,
+ -0.981083f, -0.981120f, -0.981158f, -0.981195f, -0.981232f, -0.981269f, -0.981305f, -0.981342f,
+ -0.981379f, -0.981416f, -0.981453f, -0.981490f, -0.981526f, -0.981563f, -0.981600f, -0.981636f,
+ -0.981673f, -0.981709f, -0.981746f, -0.981782f, -0.981819f, -0.981855f, -0.981891f, -0.981928f,
+ -0.981964f, -0.982000f, -0.982036f, -0.982072f, -0.982109f, -0.982145f, -0.982181f, -0.982217f,
+ -0.982253f, -0.982289f, -0.982325f, -0.982360f, -0.982396f, -0.982432f, -0.982468f, -0.982504f,
+ -0.982539f, -0.982575f, -0.982611f, -0.982646f, -0.982682f, -0.982717f, -0.982753f, -0.982788f,
+ -0.982824f, -0.982859f, -0.982894f, -0.982930f, -0.982965f, -0.983000f, -0.983035f, -0.983070f,
+ -0.983105f, -0.983141f, -0.983176f, -0.983211f, -0.983246f, -0.983281f, -0.983315f, -0.983350f,
+ -0.983385f, -0.983420f, -0.983455f, -0.983489f, -0.983524f, -0.983559f, -0.983593f, -0.983628f,
+ -0.983662f, -0.983697f, -0.983731f, -0.983766f, -0.983800f, -0.983835f, -0.983869f, -0.983903f,
+ -0.983937f, -0.983972f, -0.984006f, -0.984040f, -0.984074f, -0.984108f, -0.984142f, -0.984176f,
+ -0.984210f, -0.984244f, -0.984278f, -0.984312f, -0.984346f, -0.984379f, -0.984413f, -0.984447f,
+ -0.984480f, -0.984514f, -0.984548f, -0.984581f, -0.984615f, -0.984648f, -0.984682f, -0.984715f,
+ -0.984748f, -0.984782f, -0.984815f, -0.984848f, -0.984882f, -0.984915f, -0.984948f, -0.984981f,
+ -0.985014f, -0.985047f, -0.985080f, -0.985113f, -0.985146f, -0.985179f, -0.985212f, -0.985245f,
+ -0.985278f, -0.985310f, -0.985343f, -0.985376f, -0.985408f, -0.985441f, -0.985474f, -0.985506f,
+ -0.985539f, -0.985571f, -0.985604f, -0.985636f, -0.985668f, -0.985701f, -0.985733f, -0.985765f,
+ -0.985798f, -0.985830f, -0.985862f, -0.985894f, -0.985926f, -0.985958f, -0.985990f, -0.986022f,
+ -0.986054f, -0.986086f, -0.986118f, -0.986150f, -0.986181f, -0.986213f, -0.986245f, -0.986276f,
+ -0.986308f, -0.986340f, -0.986371f, -0.986403f, -0.986434f, -0.986466f, -0.986497f, -0.986529f,
+ -0.986560f, -0.986591f, -0.986623f, -0.986654f, -0.986685f, -0.986716f, -0.986747f, -0.986778f,
+ -0.986809f, -0.986840f, -0.986871f, -0.986902f, -0.986933f, -0.986964f, -0.986995f, -0.987026f,
+ -0.987057f, -0.987087f, -0.987118f, -0.987149f, -0.987179f, -0.987210f, -0.987240f, -0.987271f,
+ -0.987301f, -0.987332f, -0.987362f, -0.987393f, -0.987423f, -0.987453f, -0.987484f, -0.987514f,
+ -0.987544f, -0.987574f, -0.987604f, -0.987634f, -0.987664f, -0.987694f, -0.987724f, -0.987754f,
+ -0.987784f, -0.987814f, -0.987844f, -0.987874f, -0.987903f, -0.987933f, -0.987963f, -0.987992f,
+ -0.988022f, -0.988052f, -0.988081f, -0.988111f, -0.988140f, -0.988169f, -0.988199f, -0.988228f,
+ -0.988258f, -0.988287f, -0.988316f, -0.988345f, -0.988374f, -0.988404f, -0.988433f, -0.988462f,
+ -0.988491f, -0.988520f, -0.988549f, -0.988578f, -0.988607f, -0.988635f, -0.988664f, -0.988693f,
+ -0.988722f, -0.988750f, -0.988779f, -0.988808f, -0.988836f, -0.988865f, -0.988893f, -0.988922f,
+ -0.988950f, -0.988979f, -0.989007f, -0.989035f, -0.989064f, -0.989092f, -0.989120f, -0.989148f,
+ -0.989177f, -0.989205f, -0.989233f, -0.989261f, -0.989289f, -0.989317f, -0.989345f, -0.989373f,
+ -0.989400f, -0.989428f, -0.989456f, -0.989484f, -0.989511f, -0.989539f, -0.989567f, -0.989594f,
+ -0.989622f, -0.989650f, -0.989677f, -0.989704f, -0.989732f, -0.989759f, -0.989787f, -0.989814f,
+ -0.989841f, -0.989869f, -0.989896f, -0.989923f, -0.989950f, -0.989977f, -0.990004f, -0.990031f,
+ -0.990058f, -0.990085f, -0.990112f, -0.990139f, -0.990166f, -0.990193f, -0.990219f, -0.990246f,
+ -0.990273f, -0.990299f, -0.990326f, -0.990353f, -0.990379f, -0.990406f, -0.990432f, -0.990459f,
+ -0.990485f, -0.990511f, -0.990538f, -0.990564f, -0.990590f, -0.990617f, -0.990643f, -0.990669f,
+ -0.990695f, -0.990721f, -0.990747f, -0.990773f, -0.990799f, -0.990825f, -0.990851f, -0.990877f,
+ -0.990903f, -0.990928f, -0.990954f, -0.990980f, -0.991006f, -0.991031f, -0.991057f, -0.991082f,
+ -0.991108f, -0.991133f, -0.991159f, -0.991184f, -0.991210f, -0.991235f, -0.991260f, -0.991286f,
+ -0.991311f, -0.991336f, -0.991361f, -0.991386f, -0.991411f, -0.991437f, -0.991462f, -0.991487f,
+ -0.991511f, -0.991536f, -0.991561f, -0.991586f, -0.991611f, -0.991636f, -0.991660f, -0.991685f,
+ -0.991710f, -0.991734f, -0.991759f, -0.991783f, -0.991808f, -0.991832f, -0.991857f, -0.991881f,
+ -0.991906f, -0.991930f, -0.991954f, -0.991979f, -0.992003f, -0.992027f, -0.992051f, -0.992075f,
+ -0.992099f, -0.992123f, -0.992147f, -0.992171f, -0.992195f, -0.992219f, -0.992243f, -0.992267f,
+ -0.992291f, -0.992314f, -0.992338f, -0.992362f, -0.992385f, -0.992409f, -0.992433f, -0.992456f,
+ -0.992480f, -0.992503f, -0.992526f, -0.992550f, -0.992573f, -0.992596f, -0.992620f, -0.992643f,
+ -0.992666f, -0.992689f, -0.992712f, -0.992736f, -0.992759f, -0.992782f, -0.992805f, -0.992828f,
+ -0.992850f, -0.992873f, -0.992896f, -0.992919f, -0.992942f, -0.992964f, -0.992987f, -0.993010f,
+ -0.993032f, -0.993055f, -0.993077f, -0.993100f, -0.993122f, -0.993145f, -0.993167f, -0.993190f,
+ -0.993212f, -0.993234f, -0.993257f, -0.993279f, -0.993301f, -0.993323f, -0.993345f, -0.993367f,
+ -0.993389f, -0.993411f, -0.993433f, -0.993455f, -0.993477f, -0.993499f, -0.993521f, -0.993542f,
+ -0.993564f, -0.993586f, -0.993608f, -0.993629f, -0.993651f, -0.993672f, -0.993694f, -0.993715f,
+ -0.993737f, -0.993758f, -0.993779f, -0.993801f, -0.993822f, -0.993843f, -0.993865f, -0.993886f,
+ -0.993907f, -0.993928f, -0.993949f, -0.993970f, -0.993991f, -0.994012f, -0.994033f, -0.994054f,
+ -0.994075f, -0.994096f, -0.994116f, -0.994137f, -0.994158f, -0.994179f, -0.994199f, -0.994220f,
+ -0.994240f, -0.994261f, -0.994281f, -0.994302f, -0.994322f, -0.994343f, -0.994363f, -0.994383f,
+ -0.994404f, -0.994424f, -0.994444f, -0.994464f, -0.994484f, -0.994505f, -0.994525f, -0.994545f,
+ -0.994565f, -0.994585f, -0.994604f, -0.994624f, -0.994644f, -0.994664f, -0.994684f, -0.994703f,
+ -0.994723f, -0.994743f, -0.994762f, -0.994782f, -0.994802f, -0.994821f, -0.994841f, -0.994860f,
+ -0.994879f, -0.994899f, -0.994918f, -0.994937f, -0.994957f, -0.994976f, -0.994995f, -0.995014f,
+ -0.995033f, -0.995052f, -0.995071f, -0.995090f, -0.995109f, -0.995128f, -0.995147f, -0.995166f,
+ -0.995185f, -0.995203f, -0.995222f, -0.995241f, -0.995260f, -0.995278f, -0.995297f, -0.995315f,
+ -0.995334f, -0.995352f, -0.995371f, -0.995389f, -0.995408f, -0.995426f, -0.995444f, -0.995463f,
+ -0.995481f, -0.995499f, -0.995517f, -0.995535f, -0.995553f, -0.995571f, -0.995589f, -0.995607f,
+ -0.995625f, -0.995643f, -0.995661f, -0.995679f, -0.995697f, -0.995714f, -0.995732f, -0.995750f,
+ -0.995767f, -0.995785f, -0.995803f, -0.995820f, -0.995838f, -0.995855f, -0.995872f, -0.995890f,
+ -0.995907f, -0.995925f, -0.995942f, -0.995959f, -0.995976f, -0.995993f, -0.996011f, -0.996028f,
+ -0.996045f, -0.996062f, -0.996079f, -0.996096f, -0.996113f, -0.996129f, -0.996146f, -0.996163f,
+ -0.996180f, -0.996197f, -0.996213f, -0.996230f, -0.996247f, -0.996263f, -0.996280f, -0.996296f,
+ -0.996313f, -0.996329f, -0.996345f, -0.996362f, -0.996378f, -0.996394f, -0.996411f, -0.996427f,
+ -0.996443f, -0.996459f, -0.996475f, -0.996491f, -0.996507f, -0.996523f, -0.996539f, -0.996555f,
+ -0.996571f, -0.996587f, -0.996603f, -0.996619f, -0.996634f, -0.996650f, -0.996666f, -0.996681f,
+ -0.996697f, -0.996712f, -0.996728f, -0.996743f, -0.996759f, -0.996774f, -0.996790f, -0.996805f,
+ -0.996820f, -0.996836f, -0.996851f, -0.996866f, -0.996881f, -0.996896f, -0.996911f, -0.996926f,
+ -0.996941f, -0.996956f, -0.996971f, -0.996986f, -0.997001f, -0.997016f, -0.997031f, -0.997045f,
+ -0.997060f, -0.997075f, -0.997089f, -0.997104f, -0.997119f, -0.997133f, -0.997148f, -0.997162f,
+ -0.997176f, -0.997191f, -0.997205f, -0.997219f, -0.997234f, -0.997248f, -0.997262f, -0.997276f,
+ -0.997290f, -0.997305f, -0.997319f, -0.997333f, -0.997347f, -0.997361f, -0.997374f, -0.997388f,
+ -0.997402f, -0.997416f, -0.997430f, -0.997443f, -0.997457f, -0.997471f, -0.997484f, -0.997498f,
+ -0.997511f, -0.997525f, -0.997538f, -0.997552f, -0.997565f, -0.997579f, -0.997592f, -0.997605f,
+ -0.997618f, -0.997632f, -0.997645f, -0.997658f, -0.997671f, -0.997684f, -0.997697f, -0.997710f,
+ -0.997723f, -0.997736f, -0.997749f, -0.997762f, -0.997774f, -0.997787f, -0.997800f, -0.997813f,
+ -0.997825f, -0.997838f, -0.997851f, -0.997863f, -0.997876f, -0.997888f, -0.997901f, -0.997913f,
+ -0.997925f, -0.997938f, -0.997950f, -0.997962f, -0.997974f, -0.997987f, -0.997999f, -0.998011f,
+ -0.998023f, -0.998035f, -0.998047f, -0.998059f, -0.998071f, -0.998083f, -0.998094f, -0.998106f,
+ -0.998118f, -0.998130f, -0.998142f, -0.998153f, -0.998165f, -0.998176f, -0.998188f, -0.998200f,
+ -0.998211f, -0.998222f, -0.998234f, -0.998245f, -0.998257f, -0.998268f, -0.998279f, -0.998290f,
+ -0.998302f, -0.998313f, -0.998324f, -0.998335f, -0.998346f, -0.998357f, -0.998368f, -0.998379f,
+ -0.998390f, -0.998401f, -0.998411f, -0.998422f, -0.998433f, -0.998444f, -0.998454f, -0.998465f,
+ -0.998476f, -0.998486f, -0.998497f, -0.998507f, -0.998518f, -0.998528f, -0.998538f, -0.998549f,
+ -0.998559f, -0.998569f, -0.998580f, -0.998590f, -0.998600f, -0.998610f, -0.998620f, -0.998630f,
+ -0.998640f, -0.998650f, -0.998660f, -0.998670f, -0.998680f, -0.998690f, -0.998700f, -0.998709f,
+ -0.998719f, -0.998729f, -0.998738f, -0.998748f, -0.998758f, -0.998767f, -0.998777f, -0.998786f,
+ -0.998795f, -0.998805f, -0.998814f, -0.998824f, -0.998833f, -0.998842f, -0.998851f, -0.998860f,
+ -0.998870f, -0.998879f, -0.998888f, -0.998897f, -0.998906f, -0.998915f, -0.998924f, -0.998932f,
+ -0.998941f, -0.998950f, -0.998959f, -0.998968f, -0.998976f, -0.998985f, -0.998994f, -0.999002f,
+ -0.999011f, -0.999019f, -0.999028f, -0.999036f, -0.999044f, -0.999053f, -0.999061f, -0.999069f,
+ -0.999078f, -0.999086f, -0.999094f, -0.999102f, -0.999110f, -0.999118f, -0.999126f, -0.999134f,
+ -0.999142f, -0.999150f, -0.999158f, -0.999166f, -0.999174f, -0.999182f, -0.999189f, -0.999197f,
+ -0.999205f, -0.999212f, -0.999220f, -0.999228f, -0.999235f, -0.999243f, -0.999250f, -0.999257f,
+ -0.999265f, -0.999272f, -0.999279f, -0.999287f, -0.999294f, -0.999301f, -0.999308f, -0.999315f,
+ -0.999322f, -0.999329f, -0.999336f, -0.999343f, -0.999350f, -0.999357f, -0.999364f, -0.999371f,
+ -0.999378f, -0.999384f, -0.999391f, -0.999398f, -0.999404f, -0.999411f, -0.999418f, -0.999424f,
+ -0.999431f, -0.999437f, -0.999443f, -0.999450f, -0.999456f, -0.999462f, -0.999469f, -0.999475f,
+ -0.999481f, -0.999487f, -0.999493f, -0.999500f, -0.999506f, -0.999512f, -0.999518f, -0.999524f,
+ -0.999529f, -0.999535f, -0.999541f, -0.999547f, -0.999553f, -0.999558f, -0.999564f, -0.999570f,
+ -0.999575f, -0.999581f, -0.999586f, -0.999592f, -0.999597f, -0.999603f, -0.999608f, -0.999614f,
+ -0.999619f, -0.999624f, -0.999629f, -0.999635f, -0.999640f, -0.999645f, -0.999650f, -0.999655f,
+ -0.999660f, -0.999665f, -0.999670f, -0.999675f, -0.999680f, -0.999685f, -0.999689f, -0.999694f,
+ -0.999699f, -0.999704f, -0.999708f, -0.999713f, -0.999717f, -0.999722f, -0.999726f, -0.999731f,
+ -0.999735f, -0.999740f, -0.999744f, -0.999748f, -0.999753f, -0.999757f, -0.999761f, -0.999765f,
+ -0.999769f, -0.999774f, -0.999778f, -0.999782f, -0.999786f, -0.999790f, -0.999793f, -0.999797f,
+ -0.999801f, -0.999805f, -0.999809f, -0.999812f, -0.999816f, -0.999820f, -0.999823f, -0.999827f,
+ -0.999831f, -0.999834f, -0.999838f, -0.999841f, -0.999844f, -0.999848f, -0.999851f, -0.999854f,
+ -0.999858f, -0.999861f, -0.999864f, -0.999867f, -0.999870f, -0.999873f, -0.999876f, -0.999879f,
+ -0.999882f, -0.999885f, -0.999888f, -0.999891f, -0.999894f, -0.999897f, -0.999899f, -0.999902f,
+ -0.999905f, -0.999907f, -0.999910f, -0.999913f, -0.999915f, -0.999917f, -0.999920f, -0.999922f,
+ -0.999925f, -0.999927f, -0.999929f, -0.999932f, -0.999934f, -0.999936f, -0.999938f, -0.999940f,
+ -0.999942f, -0.999944f, -0.999946f, -0.999948f, -0.999950f, -0.999952f, -0.999954f, -0.999956f,
+ -0.999958f, -0.999959f, -0.999961f, -0.999963f, -0.999964f, -0.999966f, -0.999968f, -0.999969f,
+ -0.999971f, -0.999972f, -0.999973f, -0.999975f, -0.999976f, -0.999977f, -0.999979f, -0.999980f,
+ -0.999981f, -0.999982f, -0.999983f, -0.999985f, -0.999986f, -0.999987f, -0.999988f, -0.999988f,
+ -0.999989f, -0.999990f, -0.999991f, -0.999992f, -0.999993f, -0.999993f, -0.999994f, -0.999995f,
+ -0.999995f, -0.999996f, -0.999996f, -0.999997f, -0.999997f, -0.999998f, -0.999998f, -0.999999f,
+ -0.999999f, -0.999999f, -0.999999f, -1.000000f, -1.000000f, -1.000000f, -1.000000f, -1.000000
+};
+
+static const float sinTable65536[32768] = {
+ 0.000000f, 0.000096f, 0.000192f, 0.000288f, 0.000383f, 0.000479f, 0.000575f, 0.000671f,
+ 0.000767f, 0.000863f, 0.000959f, 0.001055f, 0.001150f, 0.001246f, 0.001342f, 0.001438f,
+ 0.001534f, 0.001630f, 0.001726f, 0.001822f, 0.001917f, 0.002013f, 0.002109f, 0.002205f,
+ 0.002301f, 0.002397f, 0.002493f, 0.002589f, 0.002684f, 0.002780f, 0.002876f, 0.002972f,
+ 0.003068f, 0.003164f, 0.003260f, 0.003356f, 0.003451f, 0.003547f, 0.003643f, 0.003739f,
+ 0.003835f, 0.003931f, 0.004027f, 0.004123f, 0.004218f, 0.004314f, 0.004410f, 0.004506f,
+ 0.004602f, 0.004698f, 0.004794f, 0.004890f, 0.004985f, 0.005081f, 0.005177f, 0.005273f,
+ 0.005369f, 0.005465f, 0.005561f, 0.005657f, 0.005752f, 0.005848f, 0.005944f, 0.006040f,
+ 0.006136f, 0.006232f, 0.006328f, 0.006424f, 0.006519f, 0.006615f, 0.006711f, 0.006807f,
+ 0.006903f, 0.006999f, 0.007095f, 0.007190f, 0.007286f, 0.007382f, 0.007478f, 0.007574f,
+ 0.007670f, 0.007766f, 0.007862f, 0.007957f, 0.008053f, 0.008149f, 0.008245f, 0.008341f,
+ 0.008437f, 0.008533f, 0.008629f, 0.008724f, 0.008820f, 0.008916f, 0.009012f, 0.009108f,
+ 0.009204f, 0.009300f, 0.009395f, 0.009491f, 0.009587f, 0.009683f, 0.009779f, 0.009875f,
+ 0.009971f, 0.010067f, 0.010162f, 0.010258f, 0.010354f, 0.010450f, 0.010546f, 0.010642f,
+ 0.010738f, 0.010834f, 0.010929f, 0.011025f, 0.011121f, 0.011217f, 0.011313f, 0.011409f,
+ 0.011505f, 0.011600f, 0.011696f, 0.011792f, 0.011888f, 0.011984f, 0.012080f, 0.012176f,
+ 0.012272f, 0.012367f, 0.012463f, 0.012559f, 0.012655f, 0.012751f, 0.012847f, 0.012943f,
+ 0.013038f, 0.013134f, 0.013230f, 0.013326f, 0.013422f, 0.013518f, 0.013614f, 0.013710f,
+ 0.013805f, 0.013901f, 0.013997f, 0.014093f, 0.014189f, 0.014285f, 0.014381f, 0.014476f,
+ 0.014572f, 0.014668f, 0.014764f, 0.014860f, 0.014956f, 0.015052f, 0.015147f, 0.015243f,
+ 0.015339f, 0.015435f, 0.015531f, 0.015627f, 0.015723f, 0.015819f, 0.015914f, 0.016010f,
+ 0.016106f, 0.016202f, 0.016298f, 0.016394f, 0.016490f, 0.016585f, 0.016681f, 0.016777f,
+ 0.016873f, 0.016969f, 0.017065f, 0.017161f, 0.017256f, 0.017352f, 0.017448f, 0.017544f,
+ 0.017640f, 0.017736f, 0.017832f, 0.017927f, 0.018023f, 0.018119f, 0.018215f, 0.018311f,
+ 0.018407f, 0.018503f, 0.018598f, 0.018694f, 0.018790f, 0.018886f, 0.018982f, 0.019078f,
+ 0.019174f, 0.019269f, 0.019365f, 0.019461f, 0.019557f, 0.019653f, 0.019749f, 0.019845f,
+ 0.019940f, 0.020036f, 0.020132f, 0.020228f, 0.020324f, 0.020420f, 0.020516f, 0.020611f,
+ 0.020707f, 0.020803f, 0.020899f, 0.020995f, 0.021091f, 0.021187f, 0.021282f, 0.021378f,
+ 0.021474f, 0.021570f, 0.021666f, 0.021762f, 0.021857f, 0.021953f, 0.022049f, 0.022145f,
+ 0.022241f, 0.022337f, 0.022433f, 0.022528f, 0.022624f, 0.022720f, 0.022816f, 0.022912f,
+ 0.023008f, 0.023104f, 0.023199f, 0.023295f, 0.023391f, 0.023487f, 0.023583f, 0.023679f,
+ 0.023774f, 0.023870f, 0.023966f, 0.024062f, 0.024158f, 0.024254f, 0.024350f, 0.024445f,
+ 0.024541f, 0.024637f, 0.024733f, 0.024829f, 0.024925f, 0.025020f, 0.025116f, 0.025212f,
+ 0.025308f, 0.025404f, 0.025500f, 0.025596f, 0.025691f, 0.025787f, 0.025883f, 0.025979f,
+ 0.026075f, 0.026171f, 0.026266f, 0.026362f, 0.026458f, 0.026554f, 0.026650f, 0.026746f,
+ 0.026841f, 0.026937f, 0.027033f, 0.027129f, 0.027225f, 0.027321f, 0.027416f, 0.027512f,
+ 0.027608f, 0.027704f, 0.027800f, 0.027896f, 0.027991f, 0.028087f, 0.028183f, 0.028279f,
+ 0.028375f, 0.028471f, 0.028567f, 0.028662f, 0.028758f, 0.028854f, 0.028950f, 0.029046f,
+ 0.029142f, 0.029237f, 0.029333f, 0.029429f, 0.029525f, 0.029621f, 0.029717f, 0.029812f,
+ 0.029908f, 0.030004f, 0.030100f, 0.030196f, 0.030291f, 0.030387f, 0.030483f, 0.030579f,
+ 0.030675f, 0.030771f, 0.030866f, 0.030962f, 0.031058f, 0.031154f, 0.031250f, 0.031346f,
+ 0.031441f, 0.031537f, 0.031633f, 0.031729f, 0.031825f, 0.031921f, 0.032016f, 0.032112f,
+ 0.032208f, 0.032304f, 0.032400f, 0.032495f, 0.032591f, 0.032687f, 0.032783f, 0.032879f,
+ 0.032975f, 0.033070f, 0.033166f, 0.033262f, 0.033358f, 0.033454f, 0.033550f, 0.033645f,
+ 0.033741f, 0.033837f, 0.033933f, 0.034029f, 0.034124f, 0.034220f, 0.034316f, 0.034412f,
+ 0.034508f, 0.034604f, 0.034699f, 0.034795f, 0.034891f, 0.034987f, 0.035083f, 0.035178f,
+ 0.035274f, 0.035370f, 0.035466f, 0.035562f, 0.035657f, 0.035753f, 0.035849f, 0.035945f,
+ 0.036041f, 0.036137f, 0.036232f, 0.036328f, 0.036424f, 0.036520f, 0.036616f, 0.036711f,
+ 0.036807f, 0.036903f, 0.036999f, 0.037095f, 0.037190f, 0.037286f, 0.037382f, 0.037478f,
+ 0.037574f, 0.037669f, 0.037765f, 0.037861f, 0.037957f, 0.038053f, 0.038149f, 0.038244f,
+ 0.038340f, 0.038436f, 0.038532f, 0.038628f, 0.038723f, 0.038819f, 0.038915f, 0.039011f,
+ 0.039107f, 0.039202f, 0.039298f, 0.039394f, 0.039490f, 0.039586f, 0.039681f, 0.039777f,
+ 0.039873f, 0.039969f, 0.040065f, 0.040160f, 0.040256f, 0.040352f, 0.040448f, 0.040544f,
+ 0.040639f, 0.040735f, 0.040831f, 0.040927f, 0.041022f, 0.041118f, 0.041214f, 0.041310f,
+ 0.041406f, 0.041501f, 0.041597f, 0.041693f, 0.041789f, 0.041885f, 0.041980f, 0.042076f,
+ 0.042172f, 0.042268f, 0.042364f, 0.042459f, 0.042555f, 0.042651f, 0.042747f, 0.042842f,
+ 0.042938f, 0.043034f, 0.043130f, 0.043226f, 0.043321f, 0.043417f, 0.043513f, 0.043609f,
+ 0.043705f, 0.043800f, 0.043896f, 0.043992f, 0.044088f, 0.044183f, 0.044279f, 0.044375f,
+ 0.044471f, 0.044567f, 0.044662f, 0.044758f, 0.044854f, 0.044950f, 0.045045f, 0.045141f,
+ 0.045237f, 0.045333f, 0.045429f, 0.045524f, 0.045620f, 0.045716f, 0.045812f, 0.045907f,
+ 0.046003f, 0.046099f, 0.046195f, 0.046290f, 0.046386f, 0.046482f, 0.046578f, 0.046674f,
+ 0.046769f, 0.046865f, 0.046961f, 0.047057f, 0.047152f, 0.047248f, 0.047344f, 0.047440f,
+ 0.047535f, 0.047631f, 0.047727f, 0.047823f, 0.047919f, 0.048014f, 0.048110f, 0.048206f,
+ 0.048302f, 0.048397f, 0.048493f, 0.048589f, 0.048685f, 0.048780f, 0.048876f, 0.048972f,
+ 0.049068f, 0.049163f, 0.049259f, 0.049355f, 0.049451f, 0.049546f, 0.049642f, 0.049738f,
+ 0.049834f, 0.049929f, 0.050025f, 0.050121f, 0.050217f, 0.050312f, 0.050408f, 0.050504f,
+ 0.050600f, 0.050696f, 0.050791f, 0.050887f, 0.050983f, 0.051078f, 0.051174f, 0.051270f,
+ 0.051366f, 0.051461f, 0.051557f, 0.051653f, 0.051749f, 0.051844f, 0.051940f, 0.052036f,
+ 0.052132f, 0.052227f, 0.052323f, 0.052419f, 0.052515f, 0.052610f, 0.052706f, 0.052802f,
+ 0.052898f, 0.052993f, 0.053089f, 0.053185f, 0.053281f, 0.053376f, 0.053472f, 0.053568f,
+ 0.053664f, 0.053759f, 0.053855f, 0.053951f, 0.054046f, 0.054142f, 0.054238f, 0.054334f,
+ 0.054429f, 0.054525f, 0.054621f, 0.054717f, 0.054812f, 0.054908f, 0.055004f, 0.055100f,
+ 0.055195f, 0.055291f, 0.055387f, 0.055482f, 0.055578f, 0.055674f, 0.055770f, 0.055865f,
+ 0.055961f, 0.056057f, 0.056152f, 0.056248f, 0.056344f, 0.056440f, 0.056535f, 0.056631f,
+ 0.056727f, 0.056823f, 0.056918f, 0.057014f, 0.057110f, 0.057205f, 0.057301f, 0.057397f,
+ 0.057493f, 0.057588f, 0.057684f, 0.057780f, 0.057875f, 0.057971f, 0.058067f, 0.058163f,
+ 0.058258f, 0.058354f, 0.058450f, 0.058545f, 0.058641f, 0.058737f, 0.058833f, 0.058928f,
+ 0.059024f, 0.059120f, 0.059215f, 0.059311f, 0.059407f, 0.059502f, 0.059598f, 0.059694f,
+ 0.059790f, 0.059885f, 0.059981f, 0.060077f, 0.060172f, 0.060268f, 0.060364f, 0.060459f,
+ 0.060555f, 0.060651f, 0.060747f, 0.060842f, 0.060938f, 0.061034f, 0.061129f, 0.061225f,
+ 0.061321f, 0.061416f, 0.061512f, 0.061608f, 0.061704f, 0.061799f, 0.061895f, 0.061991f,
+ 0.062086f, 0.062182f, 0.062278f, 0.062373f, 0.062469f, 0.062565f, 0.062660f, 0.062756f,
+ 0.062852f, 0.062947f, 0.063043f, 0.063139f, 0.063234f, 0.063330f, 0.063426f, 0.063522f,
+ 0.063617f, 0.063713f, 0.063809f, 0.063904f, 0.064000f, 0.064096f, 0.064191f, 0.064287f,
+ 0.064383f, 0.064478f, 0.064574f, 0.064670f, 0.064765f, 0.064861f, 0.064957f, 0.065052f,
+ 0.065148f, 0.065244f, 0.065339f, 0.065435f, 0.065531f, 0.065626f, 0.065722f, 0.065818f,
+ 0.065913f, 0.066009f, 0.066105f, 0.066200f, 0.066296f, 0.066392f, 0.066487f, 0.066583f,
+ 0.066679f, 0.066774f, 0.066870f, 0.066966f, 0.067061f, 0.067157f, 0.067253f, 0.067348f,
+ 0.067444f, 0.067540f, 0.067635f, 0.067731f, 0.067827f, 0.067922f, 0.068018f, 0.068113f,
+ 0.068209f, 0.068305f, 0.068400f, 0.068496f, 0.068592f, 0.068687f, 0.068783f, 0.068879f,
+ 0.068974f, 0.069070f, 0.069166f, 0.069261f, 0.069357f, 0.069453f, 0.069548f, 0.069644f,
+ 0.069739f, 0.069835f, 0.069931f, 0.070026f, 0.070122f, 0.070218f, 0.070313f, 0.070409f,
+ 0.070505f, 0.070600f, 0.070696f, 0.070791f, 0.070887f, 0.070983f, 0.071078f, 0.071174f,
+ 0.071270f, 0.071365f, 0.071461f, 0.071557f, 0.071652f, 0.071748f, 0.071843f, 0.071939f,
+ 0.072035f, 0.072130f, 0.072226f, 0.072322f, 0.072417f, 0.072513f, 0.072608f, 0.072704f,
+ 0.072800f, 0.072895f, 0.072991f, 0.073086f, 0.073182f, 0.073278f, 0.073373f, 0.073469f,
+ 0.073565f, 0.073660f, 0.073756f, 0.073851f, 0.073947f, 0.074043f, 0.074138f, 0.074234f,
+ 0.074329f, 0.074425f, 0.074521f, 0.074616f, 0.074712f, 0.074807f, 0.074903f, 0.074999f,
+ 0.075094f, 0.075190f, 0.075286f, 0.075381f, 0.075477f, 0.075572f, 0.075668f, 0.075764f,
+ 0.075859f, 0.075955f, 0.076050f, 0.076146f, 0.076241f, 0.076337f, 0.076433f, 0.076528f,
+ 0.076624f, 0.076719f, 0.076815f, 0.076911f, 0.077006f, 0.077102f, 0.077197f, 0.077293f,
+ 0.077389f, 0.077484f, 0.077580f, 0.077675f, 0.077771f, 0.077866f, 0.077962f, 0.078058f,
+ 0.078153f, 0.078249f, 0.078344f, 0.078440f, 0.078536f, 0.078631f, 0.078727f, 0.078822f,
+ 0.078918f, 0.079013f, 0.079109f, 0.079205f, 0.079300f, 0.079396f, 0.079491f, 0.079587f,
+ 0.079682f, 0.079778f, 0.079874f, 0.079969f, 0.080065f, 0.080160f, 0.080256f, 0.080351f,
+ 0.080447f, 0.080543f, 0.080638f, 0.080734f, 0.080829f, 0.080925f, 0.081020f, 0.081116f,
+ 0.081211f, 0.081307f, 0.081403f, 0.081498f, 0.081594f, 0.081689f, 0.081785f, 0.081880f,
+ 0.081976f, 0.082071f, 0.082167f, 0.082263f, 0.082358f, 0.082454f, 0.082549f, 0.082645f,
+ 0.082740f, 0.082836f, 0.082931f, 0.083027f, 0.083122f, 0.083218f, 0.083314f, 0.083409f,
+ 0.083505f, 0.083600f, 0.083696f, 0.083791f, 0.083887f, 0.083982f, 0.084078f, 0.084173f,
+ 0.084269f, 0.084364f, 0.084460f, 0.084555f, 0.084651f, 0.084747f, 0.084842f, 0.084938f,
+ 0.085033f, 0.085129f, 0.085224f, 0.085320f, 0.085415f, 0.085511f, 0.085606f, 0.085702f,
+ 0.085797f, 0.085893f, 0.085988f, 0.086084f, 0.086179f, 0.086275f, 0.086370f, 0.086466f,
+ 0.086561f, 0.086657f, 0.086752f, 0.086848f, 0.086943f, 0.087039f, 0.087135f, 0.087230f,
+ 0.087326f, 0.087421f, 0.087517f, 0.087612f, 0.087708f, 0.087803f, 0.087899f, 0.087994f,
+ 0.088090f, 0.088185f, 0.088281f, 0.088376f, 0.088472f, 0.088567f, 0.088663f, 0.088758f,
+ 0.088854f, 0.088949f, 0.089045f, 0.089140f, 0.089236f, 0.089331f, 0.089427f, 0.089522f,
+ 0.089617f, 0.089713f, 0.089808f, 0.089904f, 0.089999f, 0.090095f, 0.090190f, 0.090286f,
+ 0.090381f, 0.090477f, 0.090572f, 0.090668f, 0.090763f, 0.090859f, 0.090954f, 0.091050f,
+ 0.091145f, 0.091241f, 0.091336f, 0.091432f, 0.091527f, 0.091623f, 0.091718f, 0.091813f,
+ 0.091909f, 0.092004f, 0.092100f, 0.092195f, 0.092291f, 0.092386f, 0.092482f, 0.092577f,
+ 0.092673f, 0.092768f, 0.092864f, 0.092959f, 0.093055f, 0.093150f, 0.093245f, 0.093341f,
+ 0.093436f, 0.093532f, 0.093627f, 0.093723f, 0.093818f, 0.093914f, 0.094009f, 0.094104f,
+ 0.094200f, 0.094295f, 0.094391f, 0.094486f, 0.094582f, 0.094677f, 0.094773f, 0.094868f,
+ 0.094963f, 0.095059f, 0.095154f, 0.095250f, 0.095345f, 0.095441f, 0.095536f, 0.095632f,
+ 0.095727f, 0.095822f, 0.095918f, 0.096013f, 0.096109f, 0.096204f, 0.096300f, 0.096395f,
+ 0.096490f, 0.096586f, 0.096681f, 0.096777f, 0.096872f, 0.096968f, 0.097063f, 0.097158f,
+ 0.097254f, 0.097349f, 0.097445f, 0.097540f, 0.097635f, 0.097731f, 0.097826f, 0.097922f,
+ 0.098017f, 0.098113f, 0.098208f, 0.098303f, 0.098399f, 0.098494f, 0.098590f, 0.098685f,
+ 0.098780f, 0.098876f, 0.098971f, 0.099067f, 0.099162f, 0.099257f, 0.099353f, 0.099448f,
+ 0.099544f, 0.099639f, 0.099734f, 0.099830f, 0.099925f, 0.100021f, 0.100116f, 0.100211f,
+ 0.100307f, 0.100402f, 0.100498f, 0.100593f, 0.100688f, 0.100784f, 0.100879f, 0.100974f,
+ 0.101070f, 0.101165f, 0.101261f, 0.101356f, 0.101451f, 0.101547f, 0.101642f, 0.101738f,
+ 0.101833f, 0.101928f, 0.102024f, 0.102119f, 0.102214f, 0.102310f, 0.102405f, 0.102500f,
+ 0.102596f, 0.102691f, 0.102787f, 0.102882f, 0.102977f, 0.103073f, 0.103168f, 0.103263f,
+ 0.103359f, 0.103454f, 0.103550f, 0.103645f, 0.103740f, 0.103836f, 0.103931f, 0.104026f,
+ 0.104122f, 0.104217f, 0.104312f, 0.104408f, 0.104503f, 0.104598f, 0.104694f, 0.104789f,
+ 0.104884f, 0.104980f, 0.105075f, 0.105170f, 0.105266f, 0.105361f, 0.105456f, 0.105552f,
+ 0.105647f, 0.105742f, 0.105838f, 0.105933f, 0.106028f, 0.106124f, 0.106219f, 0.106314f,
+ 0.106410f, 0.106505f, 0.106600f, 0.106696f, 0.106791f, 0.106886f, 0.106982f, 0.107077f,
+ 0.107172f, 0.107268f, 0.107363f, 0.107458f, 0.107554f, 0.107649f, 0.107744f, 0.107840f,
+ 0.107935f, 0.108030f, 0.108126f, 0.108221f, 0.108316f, 0.108412f, 0.108507f, 0.108602f,
+ 0.108697f, 0.108793f, 0.108888f, 0.108983f, 0.109079f, 0.109174f, 0.109269f, 0.109365f,
+ 0.109460f, 0.109555f, 0.109650f, 0.109746f, 0.109841f, 0.109936f, 0.110032f, 0.110127f,
+ 0.110222f, 0.110317f, 0.110413f, 0.110508f, 0.110603f, 0.110699f, 0.110794f, 0.110889f,
+ 0.110984f, 0.111080f, 0.111175f, 0.111270f, 0.111366f, 0.111461f, 0.111556f, 0.111651f,
+ 0.111747f, 0.111842f, 0.111937f, 0.112033f, 0.112128f, 0.112223f, 0.112318f, 0.112414f,
+ 0.112509f, 0.112604f, 0.112699f, 0.112795f, 0.112890f, 0.112985f, 0.113080f, 0.113176f,
+ 0.113271f, 0.113366f, 0.113461f, 0.113557f, 0.113652f, 0.113747f, 0.113842f, 0.113938f,
+ 0.114033f, 0.114128f, 0.114223f, 0.114319f, 0.114414f, 0.114509f, 0.114604f, 0.114700f,
+ 0.114795f, 0.114890f, 0.114985f, 0.115081f, 0.115176f, 0.115271f, 0.115366f, 0.115462f,
+ 0.115557f, 0.115652f, 0.115747f, 0.115842f, 0.115938f, 0.116033f, 0.116128f, 0.116223f,
+ 0.116319f, 0.116414f, 0.116509f, 0.116604f, 0.116700f, 0.116795f, 0.116890f, 0.116985f,
+ 0.117080f, 0.117176f, 0.117271f, 0.117366f, 0.117461f, 0.117556f, 0.117652f, 0.117747f,
+ 0.117842f, 0.117937f, 0.118032f, 0.118128f, 0.118223f, 0.118318f, 0.118413f, 0.118508f,
+ 0.118604f, 0.118699f, 0.118794f, 0.118889f, 0.118984f, 0.119080f, 0.119175f, 0.119270f,
+ 0.119365f, 0.119460f, 0.119556f, 0.119651f, 0.119746f, 0.119841f, 0.119936f, 0.120032f,
+ 0.120127f, 0.120222f, 0.120317f, 0.120412f, 0.120507f, 0.120603f, 0.120698f, 0.120793f,
+ 0.120888f, 0.120983f, 0.121078f, 0.121174f, 0.121269f, 0.121364f, 0.121459f, 0.121554f,
+ 0.121649f, 0.121745f, 0.121840f, 0.121935f, 0.122030f, 0.122125f, 0.122220f, 0.122316f,
+ 0.122411f, 0.122506f, 0.122601f, 0.122696f, 0.122791f, 0.122886f, 0.122982f, 0.123077f,
+ 0.123172f, 0.123267f, 0.123362f, 0.123457f, 0.123552f, 0.123648f, 0.123743f, 0.123838f,
+ 0.123933f, 0.124028f, 0.124123f, 0.124218f, 0.124314f, 0.124409f, 0.124504f, 0.124599f,
+ 0.124694f, 0.124789f, 0.124884f, 0.124979f, 0.125075f, 0.125170f, 0.125265f, 0.125360f,
+ 0.125455f, 0.125550f, 0.125645f, 0.125740f, 0.125835f, 0.125931f, 0.126026f, 0.126121f,
+ 0.126216f, 0.126311f, 0.126406f, 0.126501f, 0.126596f, 0.126691f, 0.126787f, 0.126882f,
+ 0.126977f, 0.127072f, 0.127167f, 0.127262f, 0.127357f, 0.127452f, 0.127547f, 0.127642f,
+ 0.127737f, 0.127833f, 0.127928f, 0.128023f, 0.128118f, 0.128213f, 0.128308f, 0.128403f,
+ 0.128498f, 0.128593f, 0.128688f, 0.128783f, 0.128878f, 0.128973f, 0.129069f, 0.129164f,
+ 0.129259f, 0.129354f, 0.129449f, 0.129544f, 0.129639f, 0.129734f, 0.129829f, 0.129924f,
+ 0.130019f, 0.130114f, 0.130209f, 0.130304f, 0.130399f, 0.130495f, 0.130590f, 0.130685f,
+ 0.130780f, 0.130875f, 0.130970f, 0.131065f, 0.131160f, 0.131255f, 0.131350f, 0.131445f,
+ 0.131540f, 0.131635f, 0.131730f, 0.131825f, 0.131920f, 0.132015f, 0.132110f, 0.132205f,
+ 0.132300f, 0.132395f, 0.132490f, 0.132585f, 0.132680f, 0.132775f, 0.132870f, 0.132966f,
+ 0.133061f, 0.133156f, 0.133251f, 0.133346f, 0.133441f, 0.133536f, 0.133631f, 0.133726f,
+ 0.133821f, 0.133916f, 0.134011f, 0.134106f, 0.134201f, 0.134296f, 0.134391f, 0.134486f,
+ 0.134581f, 0.134676f, 0.134771f, 0.134866f, 0.134961f, 0.135056f, 0.135151f, 0.135246f,
+ 0.135341f, 0.135436f, 0.135531f, 0.135626f, 0.135721f, 0.135816f, 0.135911f, 0.136006f,
+ 0.136101f, 0.136196f, 0.136291f, 0.136386f, 0.136480f, 0.136575f, 0.136670f, 0.136765f,
+ 0.136860f, 0.136955f, 0.137050f, 0.137145f, 0.137240f, 0.137335f, 0.137430f, 0.137525f,
+ 0.137620f, 0.137715f, 0.137810f, 0.137905f, 0.138000f, 0.138095f, 0.138190f, 0.138285f,
+ 0.138380f, 0.138475f, 0.138570f, 0.138665f, 0.138760f, 0.138855f, 0.138949f, 0.139044f,
+ 0.139139f, 0.139234f, 0.139329f, 0.139424f, 0.139519f, 0.139614f, 0.139709f, 0.139804f,
+ 0.139899f, 0.139994f, 0.140089f, 0.140184f, 0.140279f, 0.140373f, 0.140468f, 0.140563f,
+ 0.140658f, 0.140753f, 0.140848f, 0.140943f, 0.141038f, 0.141133f, 0.141228f, 0.141323f,
+ 0.141418f, 0.141512f, 0.141607f, 0.141702f, 0.141797f, 0.141892f, 0.141987f, 0.142082f,
+ 0.142177f, 0.142272f, 0.142367f, 0.142461f, 0.142556f, 0.142651f, 0.142746f, 0.142841f,
+ 0.142936f, 0.143031f, 0.143126f, 0.143221f, 0.143316f, 0.143410f, 0.143505f, 0.143600f,
+ 0.143695f, 0.143790f, 0.143885f, 0.143980f, 0.144075f, 0.144169f, 0.144264f, 0.144359f,
+ 0.144454f, 0.144549f, 0.144644f, 0.144739f, 0.144833f, 0.144928f, 0.145023f, 0.145118f,
+ 0.145213f, 0.145308f, 0.145403f, 0.145497f, 0.145592f, 0.145687f, 0.145782f, 0.145877f,
+ 0.145972f, 0.146067f, 0.146161f, 0.146256f, 0.146351f, 0.146446f, 0.146541f, 0.146636f,
+ 0.146730f, 0.146825f, 0.146920f, 0.147015f, 0.147110f, 0.147205f, 0.147299f, 0.147394f,
+ 0.147489f, 0.147584f, 0.147679f, 0.147774f, 0.147868f, 0.147963f, 0.148058f, 0.148153f,
+ 0.148248f, 0.148342f, 0.148437f, 0.148532f, 0.148627f, 0.148722f, 0.148817f, 0.148911f,
+ 0.149006f, 0.149101f, 0.149196f, 0.149291f, 0.149385f, 0.149480f, 0.149575f, 0.149670f,
+ 0.149765f, 0.149859f, 0.149954f, 0.150049f, 0.150144f, 0.150238f, 0.150333f, 0.150428f,
+ 0.150523f, 0.150618f, 0.150712f, 0.150807f, 0.150902f, 0.150997f, 0.151092f, 0.151186f,
+ 0.151281f, 0.151376f, 0.151471f, 0.151565f, 0.151660f, 0.151755f, 0.151850f, 0.151944f,
+ 0.152039f, 0.152134f, 0.152229f, 0.152323f, 0.152418f, 0.152513f, 0.152608f, 0.152702f,
+ 0.152797f, 0.152892f, 0.152987f, 0.153081f, 0.153176f, 0.153271f, 0.153366f, 0.153460f,
+ 0.153555f, 0.153650f, 0.153745f, 0.153839f, 0.153934f, 0.154029f, 0.154124f, 0.154218f,
+ 0.154313f, 0.154408f, 0.154502f, 0.154597f, 0.154692f, 0.154787f, 0.154881f, 0.154976f,
+ 0.155071f, 0.155165f, 0.155260f, 0.155355f, 0.155450f, 0.155544f, 0.155639f, 0.155734f,
+ 0.155828f, 0.155923f, 0.156018f, 0.156112f, 0.156207f, 0.156302f, 0.156397f, 0.156491f,
+ 0.156586f, 0.156681f, 0.156775f, 0.156870f, 0.156965f, 0.157059f, 0.157154f, 0.157249f,
+ 0.157343f, 0.157438f, 0.157533f, 0.157627f, 0.157722f, 0.157817f, 0.157912f, 0.158006f,
+ 0.158101f, 0.158196f, 0.158290f, 0.158385f, 0.158480f, 0.158574f, 0.158669f, 0.158763f,
+ 0.158858f, 0.158953f, 0.159047f, 0.159142f, 0.159237f, 0.159331f, 0.159426f, 0.159521f,
+ 0.159615f, 0.159710f, 0.159805f, 0.159899f, 0.159994f, 0.160089f, 0.160183f, 0.160278f,
+ 0.160372f, 0.160467f, 0.160562f, 0.160656f, 0.160751f, 0.160846f, 0.160940f, 0.161035f,
+ 0.161129f, 0.161224f, 0.161319f, 0.161413f, 0.161508f, 0.161603f, 0.161697f, 0.161792f,
+ 0.161886f, 0.161981f, 0.162076f, 0.162170f, 0.162265f, 0.162359f, 0.162454f, 0.162549f,
+ 0.162643f, 0.162738f, 0.162832f, 0.162927f, 0.163022f, 0.163116f, 0.163211f, 0.163305f,
+ 0.163400f, 0.163495f, 0.163589f, 0.163684f, 0.163778f, 0.163873f, 0.163967f, 0.164062f,
+ 0.164157f, 0.164251f, 0.164346f, 0.164440f, 0.164535f, 0.164629f, 0.164724f, 0.164819f,
+ 0.164913f, 0.165008f, 0.165102f, 0.165197f, 0.165291f, 0.165386f, 0.165480f, 0.165575f,
+ 0.165670f, 0.165764f, 0.165859f, 0.165953f, 0.166048f, 0.166142f, 0.166237f, 0.166331f,
+ 0.166426f, 0.166520f, 0.166615f, 0.166710f, 0.166804f, 0.166899f, 0.166993f, 0.167088f,
+ 0.167182f, 0.167277f, 0.167371f, 0.167466f, 0.167560f, 0.167655f, 0.167749f, 0.167844f,
+ 0.167938f, 0.168033f, 0.168127f, 0.168222f, 0.168316f, 0.168411f, 0.168505f, 0.168600f,
+ 0.168694f, 0.168789f, 0.168883f, 0.168978f, 0.169072f, 0.169167f, 0.169261f, 0.169356f,
+ 0.169450f, 0.169545f, 0.169639f, 0.169734f, 0.169828f, 0.169923f, 0.170017f, 0.170112f,
+ 0.170206f, 0.170301f, 0.170395f, 0.170490f, 0.170584f, 0.170678f, 0.170773f, 0.170867f,
+ 0.170962f, 0.171056f, 0.171151f, 0.171245f, 0.171340f, 0.171434f, 0.171529f, 0.171623f,
+ 0.171718f, 0.171812f, 0.171906f, 0.172001f, 0.172095f, 0.172190f, 0.172284f, 0.172379f,
+ 0.172473f, 0.172568f, 0.172662f, 0.172756f, 0.172851f, 0.172945f, 0.173040f, 0.173134f,
+ 0.173229f, 0.173323f, 0.173417f, 0.173512f, 0.173606f, 0.173701f, 0.173795f, 0.173889f,
+ 0.173984f, 0.174078f, 0.174173f, 0.174267f, 0.174362f, 0.174456f, 0.174550f, 0.174645f,
+ 0.174739f, 0.174834f, 0.174928f, 0.175022f, 0.175117f, 0.175211f, 0.175305f, 0.175400f,
+ 0.175494f, 0.175589f, 0.175683f, 0.175777f, 0.175872f, 0.175966f, 0.176061f, 0.176155f,
+ 0.176249f, 0.176344f, 0.176438f, 0.176532f, 0.176627f, 0.176721f, 0.176815f, 0.176910f,
+ 0.177004f, 0.177099f, 0.177193f, 0.177287f, 0.177382f, 0.177476f, 0.177570f, 0.177665f,
+ 0.177759f, 0.177853f, 0.177948f, 0.178042f, 0.178136f, 0.178231f, 0.178325f, 0.178419f,
+ 0.178514f, 0.178608f, 0.178702f, 0.178797f, 0.178891f, 0.178985f, 0.179080f, 0.179174f,
+ 0.179268f, 0.179363f, 0.179457f, 0.179551f, 0.179646f, 0.179740f, 0.179834f, 0.179929f,
+ 0.180023f, 0.180117f, 0.180212f, 0.180306f, 0.180400f, 0.180494f, 0.180589f, 0.180683f,
+ 0.180777f, 0.180872f, 0.180966f, 0.181060f, 0.181154f, 0.181249f, 0.181343f, 0.181437f,
+ 0.181532f, 0.181626f, 0.181720f, 0.181814f, 0.181909f, 0.182003f, 0.182097f, 0.182192f,
+ 0.182286f, 0.182380f, 0.182474f, 0.182569f, 0.182663f, 0.182757f, 0.182851f, 0.182946f,
+ 0.183040f, 0.183134f, 0.183228f, 0.183323f, 0.183417f, 0.183511f, 0.183605f, 0.183700f,
+ 0.183794f, 0.183888f, 0.183982f, 0.184077f, 0.184171f, 0.184265f, 0.184359f, 0.184454f,
+ 0.184548f, 0.184642f, 0.184736f, 0.184830f, 0.184925f, 0.185019f, 0.185113f, 0.185207f,
+ 0.185301f, 0.185396f, 0.185490f, 0.185584f, 0.185678f, 0.185773f, 0.185867f, 0.185961f,
+ 0.186055f, 0.186149f, 0.186244f, 0.186338f, 0.186432f, 0.186526f, 0.186620f, 0.186715f,
+ 0.186809f, 0.186903f, 0.186997f, 0.187091f, 0.187185f, 0.187280f, 0.187374f, 0.187468f,
+ 0.187562f, 0.187656f, 0.187750f, 0.187845f, 0.187939f, 0.188033f, 0.188127f, 0.188221f,
+ 0.188315f, 0.188410f, 0.188504f, 0.188598f, 0.188692f, 0.188786f, 0.188880f, 0.188975f,
+ 0.189069f, 0.189163f, 0.189257f, 0.189351f, 0.189445f, 0.189539f, 0.189634f, 0.189728f,
+ 0.189822f, 0.189916f, 0.190010f, 0.190104f, 0.190198f, 0.190292f, 0.190387f, 0.190481f,
+ 0.190575f, 0.190669f, 0.190763f, 0.190857f, 0.190951f, 0.191045f, 0.191139f, 0.191234f,
+ 0.191328f, 0.191422f, 0.191516f, 0.191610f, 0.191704f, 0.191798f, 0.191892f, 0.191986f,
+ 0.192080f, 0.192174f, 0.192269f, 0.192363f, 0.192457f, 0.192551f, 0.192645f, 0.192739f,
+ 0.192833f, 0.192927f, 0.193021f, 0.193115f, 0.193209f, 0.193303f, 0.193397f, 0.193492f,
+ 0.193586f, 0.193680f, 0.193774f, 0.193868f, 0.193962f, 0.194056f, 0.194150f, 0.194244f,
+ 0.194338f, 0.194432f, 0.194526f, 0.194620f, 0.194714f, 0.194808f, 0.194902f, 0.194996f,
+ 0.195090f, 0.195184f, 0.195278f, 0.195372f, 0.195466f, 0.195560f, 0.195654f, 0.195748f,
+ 0.195843f, 0.195937f, 0.196031f, 0.196125f, 0.196219f, 0.196313f, 0.196407f, 0.196501f,
+ 0.196595f, 0.196689f, 0.196783f, 0.196877f, 0.196971f, 0.197065f, 0.197159f, 0.197253f,
+ 0.197347f, 0.197441f, 0.197535f, 0.197629f, 0.197722f, 0.197816f, 0.197910f, 0.198004f,
+ 0.198098f, 0.198192f, 0.198286f, 0.198380f, 0.198474f, 0.198568f, 0.198662f, 0.198756f,
+ 0.198850f, 0.198944f, 0.199038f, 0.199132f, 0.199226f, 0.199320f, 0.199414f, 0.199508f,
+ 0.199602f, 0.199696f, 0.199790f, 0.199884f, 0.199978f, 0.200071f, 0.200165f, 0.200259f,
+ 0.200353f, 0.200447f, 0.200541f, 0.200635f, 0.200729f, 0.200823f, 0.200917f, 0.201011f,
+ 0.201105f, 0.201199f, 0.201292f, 0.201386f, 0.201480f, 0.201574f, 0.201668f, 0.201762f,
+ 0.201856f, 0.201950f, 0.202044f, 0.202138f, 0.202231f, 0.202325f, 0.202419f, 0.202513f,
+ 0.202607f, 0.202701f, 0.202795f, 0.202889f, 0.202983f, 0.203076f, 0.203170f, 0.203264f,
+ 0.203358f, 0.203452f, 0.203546f, 0.203640f, 0.203734f, 0.203827f, 0.203921f, 0.204015f,
+ 0.204109f, 0.204203f, 0.204297f, 0.204391f, 0.204484f, 0.204578f, 0.204672f, 0.204766f,
+ 0.204860f, 0.204954f, 0.205047f, 0.205141f, 0.205235f, 0.205329f, 0.205423f, 0.205517f,
+ 0.205610f, 0.205704f, 0.205798f, 0.205892f, 0.205986f, 0.206080f, 0.206173f, 0.206267f,
+ 0.206361f, 0.206455f, 0.206549f, 0.206642f, 0.206736f, 0.206830f, 0.206924f, 0.207018f,
+ 0.207111f, 0.207205f, 0.207299f, 0.207393f, 0.207487f, 0.207580f, 0.207674f, 0.207768f,
+ 0.207862f, 0.207955f, 0.208049f, 0.208143f, 0.208237f, 0.208331f, 0.208424f, 0.208518f,
+ 0.208612f, 0.208706f, 0.208799f, 0.208893f, 0.208987f, 0.209081f, 0.209174f, 0.209268f,
+ 0.209362f, 0.209456f, 0.209549f, 0.209643f, 0.209737f, 0.209831f, 0.209924f, 0.210018f,
+ 0.210112f, 0.210206f, 0.210299f, 0.210393f, 0.210487f, 0.210580f, 0.210674f, 0.210768f,
+ 0.210862f, 0.210955f, 0.211049f, 0.211143f, 0.211237f, 0.211330f, 0.211424f, 0.211518f,
+ 0.211611f, 0.211705f, 0.211799f, 0.211892f, 0.211986f, 0.212080f, 0.212174f, 0.212267f,
+ 0.212361f, 0.212455f, 0.212548f, 0.212642f, 0.212736f, 0.212829f, 0.212923f, 0.213017f,
+ 0.213110f, 0.213204f, 0.213298f, 0.213391f, 0.213485f, 0.213579f, 0.213672f, 0.213766f,
+ 0.213860f, 0.213953f, 0.214047f, 0.214141f, 0.214234f, 0.214328f, 0.214422f, 0.214515f,
+ 0.214609f, 0.214702f, 0.214796f, 0.214890f, 0.214983f, 0.215077f, 0.215171f, 0.215264f,
+ 0.215358f, 0.215451f, 0.215545f, 0.215639f, 0.215732f, 0.215826f, 0.215920f, 0.216013f,
+ 0.216107f, 0.216200f, 0.216294f, 0.216388f, 0.216481f, 0.216575f, 0.216668f, 0.216762f,
+ 0.216856f, 0.216949f, 0.217043f, 0.217136f, 0.217230f, 0.217324f, 0.217417f, 0.217511f,
+ 0.217604f, 0.217698f, 0.217791f, 0.217885f, 0.217979f, 0.218072f, 0.218166f, 0.218259f,
+ 0.218353f, 0.218446f, 0.218540f, 0.218633f, 0.218727f, 0.218821f, 0.218914f, 0.219008f,
+ 0.219101f, 0.219195f, 0.219288f, 0.219382f, 0.219475f, 0.219569f, 0.219662f, 0.219756f,
+ 0.219850f, 0.219943f, 0.220037f, 0.220130f, 0.220224f, 0.220317f, 0.220411f, 0.220504f,
+ 0.220598f, 0.220691f, 0.220785f, 0.220878f, 0.220972f, 0.221065f, 0.221159f, 0.221252f,
+ 0.221346f, 0.221439f, 0.221533f, 0.221626f, 0.221720f, 0.221813f, 0.221907f, 0.222000f,
+ 0.222094f, 0.222187f, 0.222281f, 0.222374f, 0.222468f, 0.222561f, 0.222654f, 0.222748f,
+ 0.222841f, 0.222935f, 0.223028f, 0.223122f, 0.223215f, 0.223309f, 0.223402f, 0.223496f,
+ 0.223589f, 0.223682f, 0.223776f, 0.223869f, 0.223963f, 0.224056f, 0.224150f, 0.224243f,
+ 0.224337f, 0.224430f, 0.224523f, 0.224617f, 0.224710f, 0.224804f, 0.224897f, 0.224991f,
+ 0.225084f, 0.225177f, 0.225271f, 0.225364f, 0.225458f, 0.225551f, 0.225644f, 0.225738f,
+ 0.225831f, 0.225925f, 0.226018f, 0.226111f, 0.226205f, 0.226298f, 0.226391f, 0.226485f,
+ 0.226578f, 0.226672f, 0.226765f, 0.226858f, 0.226952f, 0.227045f, 0.227139f, 0.227232f,
+ 0.227325f, 0.227419f, 0.227512f, 0.227605f, 0.227699f, 0.227792f, 0.227885f, 0.227979f,
+ 0.228072f, 0.228165f, 0.228259f, 0.228352f, 0.228445f, 0.228539f, 0.228632f, 0.228725f,
+ 0.228819f, 0.228912f, 0.229005f, 0.229099f, 0.229192f, 0.229285f, 0.229379f, 0.229472f,
+ 0.229565f, 0.229659f, 0.229752f, 0.229845f, 0.229939f, 0.230032f, 0.230125f, 0.230218f,
+ 0.230312f, 0.230405f, 0.230498f, 0.230592f, 0.230685f, 0.230778f, 0.230872f, 0.230965f,
+ 0.231058f, 0.231151f, 0.231245f, 0.231338f, 0.231431f, 0.231524f, 0.231618f, 0.231711f,
+ 0.231804f, 0.231898f, 0.231991f, 0.232084f, 0.232177f, 0.232271f, 0.232364f, 0.232457f,
+ 0.232550f, 0.232644f, 0.232737f, 0.232830f, 0.232923f, 0.233017f, 0.233110f, 0.233203f,
+ 0.233296f, 0.233389f, 0.233483f, 0.233576f, 0.233669f, 0.233762f, 0.233856f, 0.233949f,
+ 0.234042f, 0.234135f, 0.234228f, 0.234322f, 0.234415f, 0.234508f, 0.234601f, 0.234694f,
+ 0.234788f, 0.234881f, 0.234974f, 0.235067f, 0.235160f, 0.235254f, 0.235347f, 0.235440f,
+ 0.235533f, 0.235626f, 0.235719f, 0.235813f, 0.235906f, 0.235999f, 0.236092f, 0.236185f,
+ 0.236278f, 0.236372f, 0.236465f, 0.236558f, 0.236651f, 0.236744f, 0.236837f, 0.236930f,
+ 0.237024f, 0.237117f, 0.237210f, 0.237303f, 0.237396f, 0.237489f, 0.237582f, 0.237676f,
+ 0.237769f, 0.237862f, 0.237955f, 0.238048f, 0.238141f, 0.238234f, 0.238327f, 0.238420f,
+ 0.238514f, 0.238607f, 0.238700f, 0.238793f, 0.238886f, 0.238979f, 0.239072f, 0.239165f,
+ 0.239258f, 0.239351f, 0.239445f, 0.239538f, 0.239631f, 0.239724f, 0.239817f, 0.239910f,
+ 0.240003f, 0.240096f, 0.240189f, 0.240282f, 0.240375f, 0.240468f, 0.240561f, 0.240654f,
+ 0.240748f, 0.240841f, 0.240934f, 0.241027f, 0.241120f, 0.241213f, 0.241306f, 0.241399f,
+ 0.241492f, 0.241585f, 0.241678f, 0.241771f, 0.241864f, 0.241957f, 0.242050f, 0.242143f,
+ 0.242236f, 0.242329f, 0.242422f, 0.242515f, 0.242608f, 0.242701f, 0.242794f, 0.242887f,
+ 0.242980f, 0.243073f, 0.243166f, 0.243259f, 0.243352f, 0.243445f, 0.243538f, 0.243631f,
+ 0.243724f, 0.243817f, 0.243910f, 0.244003f, 0.244096f, 0.244189f, 0.244282f, 0.244375f,
+ 0.244468f, 0.244561f, 0.244654f, 0.244747f, 0.244840f, 0.244933f, 0.245026f, 0.245119f,
+ 0.245212f, 0.245304f, 0.245397f, 0.245490f, 0.245583f, 0.245676f, 0.245769f, 0.245862f,
+ 0.245955f, 0.246048f, 0.246141f, 0.246234f, 0.246327f, 0.246420f, 0.246513f, 0.246606f,
+ 0.246698f, 0.246791f, 0.246884f, 0.246977f, 0.247070f, 0.247163f, 0.247256f, 0.247349f,
+ 0.247442f, 0.247535f, 0.247627f, 0.247720f, 0.247813f, 0.247906f, 0.247999f, 0.248092f,
+ 0.248185f, 0.248278f, 0.248370f, 0.248463f, 0.248556f, 0.248649f, 0.248742f, 0.248835f,
+ 0.248928f, 0.249020f, 0.249113f, 0.249206f, 0.249299f, 0.249392f, 0.249485f, 0.249578f,
+ 0.249670f, 0.249763f, 0.249856f, 0.249949f, 0.250042f, 0.250135f, 0.250227f, 0.250320f,
+ 0.250413f, 0.250506f, 0.250599f, 0.250691f, 0.250784f, 0.250877f, 0.250970f, 0.251063f,
+ 0.251155f, 0.251248f, 0.251341f, 0.251434f, 0.251527f, 0.251619f, 0.251712f, 0.251805f,
+ 0.251898f, 0.251991f, 0.252083f, 0.252176f, 0.252269f, 0.252362f, 0.252454f, 0.252547f,
+ 0.252640f, 0.252733f, 0.252826f, 0.252918f, 0.253011f, 0.253104f, 0.253197f, 0.253289f,
+ 0.253382f, 0.253475f, 0.253568f, 0.253660f, 0.253753f, 0.253846f, 0.253938f, 0.254031f,
+ 0.254124f, 0.254217f, 0.254309f, 0.254402f, 0.254495f, 0.254588f, 0.254680f, 0.254773f,
+ 0.254866f, 0.254958f, 0.255051f, 0.255144f, 0.255236f, 0.255329f, 0.255422f, 0.255515f,
+ 0.255607f, 0.255700f, 0.255793f, 0.255885f, 0.255978f, 0.256071f, 0.256163f, 0.256256f,
+ 0.256349f, 0.256441f, 0.256534f, 0.256627f, 0.256719f, 0.256812f, 0.256905f, 0.256997f,
+ 0.257090f, 0.257183f, 0.257275f, 0.257368f, 0.257461f, 0.257553f, 0.257646f, 0.257738f,
+ 0.257831f, 0.257924f, 0.258016f, 0.258109f, 0.258202f, 0.258294f, 0.258387f, 0.258479f,
+ 0.258572f, 0.258665f, 0.258757f, 0.258850f, 0.258943f, 0.259035f, 0.259128f, 0.259220f,
+ 0.259313f, 0.259405f, 0.259498f, 0.259591f, 0.259683f, 0.259776f, 0.259868f, 0.259961f,
+ 0.260054f, 0.260146f, 0.260239f, 0.260331f, 0.260424f, 0.260516f, 0.260609f, 0.260702f,
+ 0.260794f, 0.260887f, 0.260979f, 0.261072f, 0.261164f, 0.261257f, 0.261349f, 0.261442f,
+ 0.261534f, 0.261627f, 0.261720f, 0.261812f, 0.261905f, 0.261997f, 0.262090f, 0.262182f,
+ 0.262275f, 0.262367f, 0.262460f, 0.262552f, 0.262645f, 0.262737f, 0.262830f, 0.262922f,
+ 0.263015f, 0.263107f, 0.263200f, 0.263292f, 0.263385f, 0.263477f, 0.263570f, 0.263662f,
+ 0.263755f, 0.263847f, 0.263940f, 0.264032f, 0.264125f, 0.264217f, 0.264309f, 0.264402f,
+ 0.264494f, 0.264587f, 0.264679f, 0.264772f, 0.264864f, 0.264957f, 0.265049f, 0.265142f,
+ 0.265234f, 0.265326f, 0.265419f, 0.265511f, 0.265604f, 0.265696f, 0.265789f, 0.265881f,
+ 0.265973f, 0.266066f, 0.266158f, 0.266251f, 0.266343f, 0.266436f, 0.266528f, 0.266620f,
+ 0.266713f, 0.266805f, 0.266898f, 0.266990f, 0.267082f, 0.267175f, 0.267267f, 0.267359f,
+ 0.267452f, 0.267544f, 0.267637f, 0.267729f, 0.267821f, 0.267914f, 0.268006f, 0.268099f,
+ 0.268191f, 0.268283f, 0.268376f, 0.268468f, 0.268560f, 0.268653f, 0.268745f, 0.268837f,
+ 0.268930f, 0.269022f, 0.269114f, 0.269207f, 0.269299f, 0.269391f, 0.269484f, 0.269576f,
+ 0.269668f, 0.269761f, 0.269853f, 0.269945f, 0.270038f, 0.270130f, 0.270222f, 0.270315f,
+ 0.270407f, 0.270499f, 0.270591f, 0.270684f, 0.270776f, 0.270868f, 0.270961f, 0.271053f,
+ 0.271145f, 0.271237f, 0.271330f, 0.271422f, 0.271514f, 0.271607f, 0.271699f, 0.271791f,
+ 0.271883f, 0.271976f, 0.272068f, 0.272160f, 0.272252f, 0.272345f, 0.272437f, 0.272529f,
+ 0.272621f, 0.272714f, 0.272806f, 0.272898f, 0.272990f, 0.273083f, 0.273175f, 0.273267f,
+ 0.273359f, 0.273451f, 0.273544f, 0.273636f, 0.273728f, 0.273820f, 0.273912f, 0.274005f,
+ 0.274097f, 0.274189f, 0.274281f, 0.274374f, 0.274466f, 0.274558f, 0.274650f, 0.274742f,
+ 0.274834f, 0.274927f, 0.275019f, 0.275111f, 0.275203f, 0.275295f, 0.275387f, 0.275480f,
+ 0.275572f, 0.275664f, 0.275756f, 0.275848f, 0.275940f, 0.276033f, 0.276125f, 0.276217f,
+ 0.276309f, 0.276401f, 0.276493f, 0.276585f, 0.276678f, 0.276770f, 0.276862f, 0.276954f,
+ 0.277046f, 0.277138f, 0.277230f, 0.277322f, 0.277415f, 0.277507f, 0.277599f, 0.277691f,
+ 0.277783f, 0.277875f, 0.277967f, 0.278059f, 0.278151f, 0.278243f, 0.278336f, 0.278428f,
+ 0.278520f, 0.278612f, 0.278704f, 0.278796f, 0.278888f, 0.278980f, 0.279072f, 0.279164f,
+ 0.279256f, 0.279348f, 0.279440f, 0.279532f, 0.279624f, 0.279717f, 0.279809f, 0.279901f,
+ 0.279993f, 0.280085f, 0.280177f, 0.280269f, 0.280361f, 0.280453f, 0.280545f, 0.280637f,
+ 0.280729f, 0.280821f, 0.280913f, 0.281005f, 0.281097f, 0.281189f, 0.281281f, 0.281373f,
+ 0.281465f, 0.281557f, 0.281649f, 0.281741f, 0.281833f, 0.281925f, 0.282017f, 0.282109f,
+ 0.282201f, 0.282293f, 0.282385f, 0.282477f, 0.282569f, 0.282661f, 0.282753f, 0.282845f,
+ 0.282937f, 0.283029f, 0.283120f, 0.283212f, 0.283304f, 0.283396f, 0.283488f, 0.283580f,
+ 0.283672f, 0.283764f, 0.283856f, 0.283948f, 0.284040f, 0.284132f, 0.284224f, 0.284316f,
+ 0.284408f, 0.284499f, 0.284591f, 0.284683f, 0.284775f, 0.284867f, 0.284959f, 0.285051f,
+ 0.285143f, 0.285235f, 0.285327f, 0.285418f, 0.285510f, 0.285602f, 0.285694f, 0.285786f,
+ 0.285878f, 0.285970f, 0.286062f, 0.286153f, 0.286245f, 0.286337f, 0.286429f, 0.286521f,
+ 0.286613f, 0.286705f, 0.286796f, 0.286888f, 0.286980f, 0.287072f, 0.287164f, 0.287256f,
+ 0.287347f, 0.287439f, 0.287531f, 0.287623f, 0.287715f, 0.287807f, 0.287898f, 0.287990f,
+ 0.288082f, 0.288174f, 0.288266f, 0.288357f, 0.288449f, 0.288541f, 0.288633f, 0.288725f,
+ 0.288816f, 0.288908f, 0.289000f, 0.289092f, 0.289184f, 0.289275f, 0.289367f, 0.289459f,
+ 0.289551f, 0.289642f, 0.289734f, 0.289826f, 0.289918f, 0.290009f, 0.290101f, 0.290193f,
+ 0.290285f, 0.290376f, 0.290468f, 0.290560f, 0.290652f, 0.290743f, 0.290835f, 0.290927f,
+ 0.291019f, 0.291110f, 0.291202f, 0.291294f, 0.291385f, 0.291477f, 0.291569f, 0.291661f,
+ 0.291752f, 0.291844f, 0.291936f, 0.292027f, 0.292119f, 0.292211f, 0.292302f, 0.292394f,
+ 0.292486f, 0.292577f, 0.292669f, 0.292761f, 0.292852f, 0.292944f, 0.293036f, 0.293128f,
+ 0.293219f, 0.293311f, 0.293402f, 0.293494f, 0.293586f, 0.293677f, 0.293769f, 0.293861f,
+ 0.293952f, 0.294044f, 0.294136f, 0.294227f, 0.294319f, 0.294410f, 0.294502f, 0.294594f,
+ 0.294685f, 0.294777f, 0.294869f, 0.294960f, 0.295052f, 0.295143f, 0.295235f, 0.295327f,
+ 0.295418f, 0.295510f, 0.295601f, 0.295693f, 0.295785f, 0.295876f, 0.295968f, 0.296059f,
+ 0.296151f, 0.296242f, 0.296334f, 0.296426f, 0.296517f, 0.296609f, 0.296700f, 0.296792f,
+ 0.296883f, 0.296975f, 0.297066f, 0.297158f, 0.297250f, 0.297341f, 0.297433f, 0.297524f,
+ 0.297616f, 0.297707f, 0.297799f, 0.297890f, 0.297982f, 0.298073f, 0.298165f, 0.298256f,
+ 0.298348f, 0.298439f, 0.298531f, 0.298622f, 0.298714f, 0.298805f, 0.298897f, 0.298988f,
+ 0.299080f, 0.299171f, 0.299263f, 0.299354f, 0.299446f, 0.299537f, 0.299629f, 0.299720f,
+ 0.299812f, 0.299903f, 0.299995f, 0.300086f, 0.300177f, 0.300269f, 0.300360f, 0.300452f,
+ 0.300543f, 0.300635f, 0.300726f, 0.300818f, 0.300909f, 0.301000f, 0.301092f, 0.301183f,
+ 0.301275f, 0.301366f, 0.301458f, 0.301549f, 0.301640f, 0.301732f, 0.301823f, 0.301915f,
+ 0.302006f, 0.302097f, 0.302189f, 0.302280f, 0.302372f, 0.302463f, 0.302554f, 0.302646f,
+ 0.302737f, 0.302828f, 0.302920f, 0.303011f, 0.303103f, 0.303194f, 0.303285f, 0.303377f,
+ 0.303468f, 0.303559f, 0.303651f, 0.303742f, 0.303833f, 0.303925f, 0.304016f, 0.304107f,
+ 0.304199f, 0.304290f, 0.304381f, 0.304473f, 0.304564f, 0.304655f, 0.304747f, 0.304838f,
+ 0.304929f, 0.305021f, 0.305112f, 0.305203f, 0.305294f, 0.305386f, 0.305477f, 0.305568f,
+ 0.305660f, 0.305751f, 0.305842f, 0.305933f, 0.306025f, 0.306116f, 0.306207f, 0.306299f,
+ 0.306390f, 0.306481f, 0.306572f, 0.306664f, 0.306755f, 0.306846f, 0.306937f, 0.307029f,
+ 0.307120f, 0.307211f, 0.307302f, 0.307394f, 0.307485f, 0.307576f, 0.307667f, 0.307758f,
+ 0.307850f, 0.307941f, 0.308032f, 0.308123f, 0.308214f, 0.308306f, 0.308397f, 0.308488f,
+ 0.308579f, 0.308670f, 0.308762f, 0.308853f, 0.308944f, 0.309035f, 0.309126f, 0.309218f,
+ 0.309309f, 0.309400f, 0.309491f, 0.309582f, 0.309673f, 0.309765f, 0.309856f, 0.309947f,
+ 0.310038f, 0.310129f, 0.310220f, 0.310311f, 0.310403f, 0.310494f, 0.310585f, 0.310676f,
+ 0.310767f, 0.310858f, 0.310949f, 0.311041f, 0.311132f, 0.311223f, 0.311314f, 0.311405f,
+ 0.311496f, 0.311587f, 0.311678f, 0.311769f, 0.311860f, 0.311952f, 0.312043f, 0.312134f,
+ 0.312225f, 0.312316f, 0.312407f, 0.312498f, 0.312589f, 0.312680f, 0.312771f, 0.312862f,
+ 0.312953f, 0.313044f, 0.313135f, 0.313227f, 0.313318f, 0.313409f, 0.313500f, 0.313591f,
+ 0.313682f, 0.313773f, 0.313864f, 0.313955f, 0.314046f, 0.314137f, 0.314228f, 0.314319f,
+ 0.314410f, 0.314501f, 0.314592f, 0.314683f, 0.314774f, 0.314865f, 0.314956f, 0.315047f,
+ 0.315138f, 0.315229f, 0.315320f, 0.315411f, 0.315502f, 0.315593f, 0.315684f, 0.315775f,
+ 0.315866f, 0.315957f, 0.316048f, 0.316139f, 0.316230f, 0.316321f, 0.316411f, 0.316502f,
+ 0.316593f, 0.316684f, 0.316775f, 0.316866f, 0.316957f, 0.317048f, 0.317139f, 0.317230f,
+ 0.317321f, 0.317412f, 0.317503f, 0.317594f, 0.317684f, 0.317775f, 0.317866f, 0.317957f,
+ 0.318048f, 0.318139f, 0.318230f, 0.318321f, 0.318412f, 0.318503f, 0.318593f, 0.318684f,
+ 0.318775f, 0.318866f, 0.318957f, 0.319048f, 0.319139f, 0.319229f, 0.319320f, 0.319411f,
+ 0.319502f, 0.319593f, 0.319684f, 0.319775f, 0.319865f, 0.319956f, 0.320047f, 0.320138f,
+ 0.320229f, 0.320320f, 0.320410f, 0.320501f, 0.320592f, 0.320683f, 0.320774f, 0.320864f,
+ 0.320955f, 0.321046f, 0.321137f, 0.321228f, 0.321318f, 0.321409f, 0.321500f, 0.321591f,
+ 0.321682f, 0.321772f, 0.321863f, 0.321954f, 0.322045f, 0.322135f, 0.322226f, 0.322317f,
+ 0.322408f, 0.322498f, 0.322589f, 0.322680f, 0.322771f, 0.322861f, 0.322952f, 0.323043f,
+ 0.323134f, 0.323224f, 0.323315f, 0.323406f, 0.323497f, 0.323587f, 0.323678f, 0.323769f,
+ 0.323859f, 0.323950f, 0.324041f, 0.324131f, 0.324222f, 0.324313f, 0.324404f, 0.324494f,
+ 0.324585f, 0.324676f, 0.324766f, 0.324857f, 0.324948f, 0.325038f, 0.325129f, 0.325220f,
+ 0.325310f, 0.325401f, 0.325492f, 0.325582f, 0.325673f, 0.325764f, 0.325854f, 0.325945f,
+ 0.326035f, 0.326126f, 0.326217f, 0.326307f, 0.326398f, 0.326489f, 0.326579f, 0.326670f,
+ 0.326760f, 0.326851f, 0.326942f, 0.327032f, 0.327123f, 0.327213f, 0.327304f, 0.327395f,
+ 0.327485f, 0.327576f, 0.327666f, 0.327757f, 0.327848f, 0.327938f, 0.328029f, 0.328119f,
+ 0.328210f, 0.328300f, 0.328391f, 0.328482f, 0.328572f, 0.328663f, 0.328753f, 0.328844f,
+ 0.328934f, 0.329025f, 0.329115f, 0.329206f, 0.329296f, 0.329387f, 0.329477f, 0.329568f,
+ 0.329658f, 0.329749f, 0.329839f, 0.329930f, 0.330020f, 0.330111f, 0.330202f, 0.330292f,
+ 0.330382f, 0.330473f, 0.330563f, 0.330654f, 0.330744f, 0.330835f, 0.330925f, 0.331016f,
+ 0.331106f, 0.331197f, 0.331287f, 0.331378f, 0.331468f, 0.331559f, 0.331649f, 0.331739f,
+ 0.331830f, 0.331920f, 0.332011f, 0.332101f, 0.332192f, 0.332282f, 0.332373f, 0.332463f,
+ 0.332553f, 0.332644f, 0.332734f, 0.332825f, 0.332915f, 0.333005f, 0.333096f, 0.333186f,
+ 0.333277f, 0.333367f, 0.333457f, 0.333548f, 0.333638f, 0.333729f, 0.333819f, 0.333909f,
+ 0.334000f, 0.334090f, 0.334180f, 0.334271f, 0.334361f, 0.334451f, 0.334542f, 0.334632f,
+ 0.334722f, 0.334813f, 0.334903f, 0.334994f, 0.335084f, 0.335174f, 0.335265f, 0.335355f,
+ 0.335445f, 0.335535f, 0.335626f, 0.335716f, 0.335806f, 0.335897f, 0.335987f, 0.336077f,
+ 0.336168f, 0.336258f, 0.336348f, 0.336438f, 0.336529f, 0.336619f, 0.336709f, 0.336800f,
+ 0.336890f, 0.336980f, 0.337070f, 0.337161f, 0.337251f, 0.337341f, 0.337431f, 0.337522f,
+ 0.337612f, 0.337702f, 0.337792f, 0.337883f, 0.337973f, 0.338063f, 0.338153f, 0.338244f,
+ 0.338334f, 0.338424f, 0.338514f, 0.338604f, 0.338695f, 0.338785f, 0.338875f, 0.338965f,
+ 0.339055f, 0.339146f, 0.339236f, 0.339326f, 0.339416f, 0.339506f, 0.339597f, 0.339687f,
+ 0.339777f, 0.339867f, 0.339957f, 0.340047f, 0.340138f, 0.340228f, 0.340318f, 0.340408f,
+ 0.340498f, 0.340588f, 0.340678f, 0.340769f, 0.340859f, 0.340949f, 0.341039f, 0.341129f,
+ 0.341219f, 0.341309f, 0.341399f, 0.341490f, 0.341580f, 0.341670f, 0.341760f, 0.341850f,
+ 0.341940f, 0.342030f, 0.342120f, 0.342210f, 0.342300f, 0.342391f, 0.342481f, 0.342571f,
+ 0.342661f, 0.342751f, 0.342841f, 0.342931f, 0.343021f, 0.343111f, 0.343201f, 0.343291f,
+ 0.343381f, 0.343471f, 0.343561f, 0.343651f, 0.343741f, 0.343831f, 0.343921f, 0.344011f,
+ 0.344101f, 0.344191f, 0.344281f, 0.344371f, 0.344461f, 0.344551f, 0.344641f, 0.344731f,
+ 0.344821f, 0.344911f, 0.345001f, 0.345091f, 0.345181f, 0.345271f, 0.345361f, 0.345451f,
+ 0.345541f, 0.345631f, 0.345721f, 0.345811f, 0.345901f, 0.345991f, 0.346081f, 0.346171f,
+ 0.346261f, 0.346351f, 0.346441f, 0.346531f, 0.346621f, 0.346711f, 0.346801f, 0.346890f,
+ 0.346980f, 0.347070f, 0.347160f, 0.347250f, 0.347340f, 0.347430f, 0.347520f, 0.347610f,
+ 0.347700f, 0.347790f, 0.347879f, 0.347969f, 0.348059f, 0.348149f, 0.348239f, 0.348329f,
+ 0.348419f, 0.348509f, 0.348598f, 0.348688f, 0.348778f, 0.348868f, 0.348958f, 0.349048f,
+ 0.349138f, 0.349227f, 0.349317f, 0.349407f, 0.349497f, 0.349587f, 0.349676f, 0.349766f,
+ 0.349856f, 0.349946f, 0.350036f, 0.350126f, 0.350215f, 0.350305f, 0.350395f, 0.350485f,
+ 0.350575f, 0.350664f, 0.350754f, 0.350844f, 0.350934f, 0.351023f, 0.351113f, 0.351203f,
+ 0.351293f, 0.351383f, 0.351472f, 0.351562f, 0.351652f, 0.351742f, 0.351831f, 0.351921f,
+ 0.352011f, 0.352100f, 0.352190f, 0.352280f, 0.352370f, 0.352459f, 0.352549f, 0.352639f,
+ 0.352729f, 0.352818f, 0.352908f, 0.352998f, 0.353087f, 0.353177f, 0.353267f, 0.353356f,
+ 0.353446f, 0.353536f, 0.353626f, 0.353715f, 0.353805f, 0.353895f, 0.353984f, 0.354074f,
+ 0.354164f, 0.354253f, 0.354343f, 0.354432f, 0.354522f, 0.354612f, 0.354701f, 0.354791f,
+ 0.354881f, 0.354970f, 0.355060f, 0.355150f, 0.355239f, 0.355329f, 0.355418f, 0.355508f,
+ 0.355598f, 0.355687f, 0.355777f, 0.355866f, 0.355956f, 0.356046f, 0.356135f, 0.356225f,
+ 0.356314f, 0.356404f, 0.356494f, 0.356583f, 0.356673f, 0.356762f, 0.356852f, 0.356941f,
+ 0.357031f, 0.357121f, 0.357210f, 0.357300f, 0.357389f, 0.357479f, 0.357568f, 0.357658f,
+ 0.357747f, 0.357837f, 0.357926f, 0.358016f, 0.358105f, 0.358195f, 0.358284f, 0.358374f,
+ 0.358463f, 0.358553f, 0.358642f, 0.358732f, 0.358821f, 0.358911f, 0.359000f, 0.359090f,
+ 0.359179f, 0.359269f, 0.359358f, 0.359448f, 0.359537f, 0.359627f, 0.359716f, 0.359806f,
+ 0.359895f, 0.359984f, 0.360074f, 0.360163f, 0.360253f, 0.360342f, 0.360432f, 0.360521f,
+ 0.360611f, 0.360700f, 0.360789f, 0.360879f, 0.360968f, 0.361058f, 0.361147f, 0.361236f,
+ 0.361326f, 0.361415f, 0.361505f, 0.361594f, 0.361683f, 0.361773f, 0.361862f, 0.361952f,
+ 0.362041f, 0.362130f, 0.362220f, 0.362309f, 0.362398f, 0.362488f, 0.362577f, 0.362666f,
+ 0.362756f, 0.362845f, 0.362934f, 0.363024f, 0.363113f, 0.363202f, 0.363292f, 0.363381f,
+ 0.363470f, 0.363560f, 0.363649f, 0.363738f, 0.363828f, 0.363917f, 0.364006f, 0.364096f,
+ 0.364185f, 0.364274f, 0.364363f, 0.364453f, 0.364542f, 0.364631f, 0.364720f, 0.364810f,
+ 0.364899f, 0.364988f, 0.365078f, 0.365167f, 0.365256f, 0.365345f, 0.365435f, 0.365524f,
+ 0.365613f, 0.365702f, 0.365791f, 0.365881f, 0.365970f, 0.366059f, 0.366148f, 0.366238f,
+ 0.366327f, 0.366416f, 0.366505f, 0.366594f, 0.366684f, 0.366773f, 0.366862f, 0.366951f,
+ 0.367040f, 0.367130f, 0.367219f, 0.367308f, 0.367397f, 0.367486f, 0.367575f, 0.367665f,
+ 0.367754f, 0.367843f, 0.367932f, 0.368021f, 0.368110f, 0.368199f, 0.368289f, 0.368378f,
+ 0.368467f, 0.368556f, 0.368645f, 0.368734f, 0.368823f, 0.368912f, 0.369002f, 0.369091f,
+ 0.369180f, 0.369269f, 0.369358f, 0.369447f, 0.369536f, 0.369625f, 0.369714f, 0.369803f,
+ 0.369892f, 0.369982f, 0.370071f, 0.370160f, 0.370249f, 0.370338f, 0.370427f, 0.370516f,
+ 0.370605f, 0.370694f, 0.370783f, 0.370872f, 0.370961f, 0.371050f, 0.371139f, 0.371228f,
+ 0.371317f, 0.371406f, 0.371495f, 0.371584f, 0.371673f, 0.371762f, 0.371851f, 0.371940f,
+ 0.372029f, 0.372118f, 0.372207f, 0.372296f, 0.372385f, 0.372474f, 0.372563f, 0.372652f,
+ 0.372741f, 0.372830f, 0.372919f, 0.373008f, 0.373097f, 0.373186f, 0.373275f, 0.373364f,
+ 0.373453f, 0.373542f, 0.373631f, 0.373719f, 0.373808f, 0.373897f, 0.373986f, 0.374075f,
+ 0.374164f, 0.374253f, 0.374342f, 0.374431f, 0.374520f, 0.374609f, 0.374697f, 0.374786f,
+ 0.374875f, 0.374964f, 0.375053f, 0.375142f, 0.375231f, 0.375320f, 0.375408f, 0.375497f,
+ 0.375586f, 0.375675f, 0.375764f, 0.375853f, 0.375942f, 0.376030f, 0.376119f, 0.376208f,
+ 0.376297f, 0.376386f, 0.376475f, 0.376563f, 0.376652f, 0.376741f, 0.376830f, 0.376919f,
+ 0.377007f, 0.377096f, 0.377185f, 0.377274f, 0.377363f, 0.377451f, 0.377540f, 0.377629f,
+ 0.377718f, 0.377806f, 0.377895f, 0.377984f, 0.378073f, 0.378162f, 0.378250f, 0.378339f,
+ 0.378428f, 0.378516f, 0.378605f, 0.378694f, 0.378783f, 0.378871f, 0.378960f, 0.379049f,
+ 0.379138f, 0.379226f, 0.379315f, 0.379404f, 0.379492f, 0.379581f, 0.379670f, 0.379759f,
+ 0.379847f, 0.379936f, 0.380025f, 0.380113f, 0.380202f, 0.380291f, 0.380379f, 0.380468f,
+ 0.380557f, 0.380645f, 0.380734f, 0.380823f, 0.380911f, 0.381000f, 0.381088f, 0.381177f,
+ 0.381266f, 0.381354f, 0.381443f, 0.381532f, 0.381620f, 0.381709f, 0.381797f, 0.381886f,
+ 0.381975f, 0.382063f, 0.382152f, 0.382241f, 0.382329f, 0.382418f, 0.382506f, 0.382595f,
+ 0.382683f, 0.382772f, 0.382861f, 0.382949f, 0.383038f, 0.383126f, 0.383215f, 0.383303f,
+ 0.383392f, 0.383480f, 0.383569f, 0.383658f, 0.383746f, 0.383835f, 0.383923f, 0.384012f,
+ 0.384100f, 0.384189f, 0.384277f, 0.384366f, 0.384454f, 0.384543f, 0.384631f, 0.384720f,
+ 0.384808f, 0.384897f, 0.384985f, 0.385074f, 0.385162f, 0.385251f, 0.385339f, 0.385428f,
+ 0.385516f, 0.385605f, 0.385693f, 0.385781f, 0.385870f, 0.385958f, 0.386047f, 0.386135f,
+ 0.386224f, 0.386312f, 0.386400f, 0.386489f, 0.386577f, 0.386666f, 0.386754f, 0.386843f,
+ 0.386931f, 0.387019f, 0.387108f, 0.387196f, 0.387285f, 0.387373f, 0.387461f, 0.387550f,
+ 0.387638f, 0.387727f, 0.387815f, 0.387903f, 0.387992f, 0.388080f, 0.388168f, 0.388257f,
+ 0.388345f, 0.388433f, 0.388522f, 0.388610f, 0.388698f, 0.388787f, 0.388875f, 0.388963f,
+ 0.389052f, 0.389140f, 0.389228f, 0.389317f, 0.389405f, 0.389493f, 0.389582f, 0.389670f,
+ 0.389758f, 0.389846f, 0.389935f, 0.390023f, 0.390111f, 0.390200f, 0.390288f, 0.390376f,
+ 0.390464f, 0.390553f, 0.390641f, 0.390729f, 0.390817f, 0.390906f, 0.390994f, 0.391082f,
+ 0.391170f, 0.391259f, 0.391347f, 0.391435f, 0.391523f, 0.391612f, 0.391700f, 0.391788f,
+ 0.391876f, 0.391964f, 0.392053f, 0.392141f, 0.392229f, 0.392317f, 0.392405f, 0.392493f,
+ 0.392582f, 0.392670f, 0.392758f, 0.392846f, 0.392934f, 0.393023f, 0.393111f, 0.393199f,
+ 0.393287f, 0.393375f, 0.393463f, 0.393551f, 0.393640f, 0.393728f, 0.393816f, 0.393904f,
+ 0.393992f, 0.394080f, 0.394168f, 0.394256f, 0.394344f, 0.394433f, 0.394521f, 0.394609f,
+ 0.394697f, 0.394785f, 0.394873f, 0.394961f, 0.395049f, 0.395137f, 0.395225f, 0.395313f,
+ 0.395401f, 0.395490f, 0.395578f, 0.395666f, 0.395754f, 0.395842f, 0.395930f, 0.396018f,
+ 0.396106f, 0.396194f, 0.396282f, 0.396370f, 0.396458f, 0.396546f, 0.396634f, 0.396722f,
+ 0.396810f, 0.396898f, 0.396986f, 0.397074f, 0.397162f, 0.397250f, 0.397338f, 0.397426f,
+ 0.397514f, 0.397602f, 0.397690f, 0.397778f, 0.397866f, 0.397954f, 0.398042f, 0.398130f,
+ 0.398218f, 0.398306f, 0.398393f, 0.398481f, 0.398569f, 0.398657f, 0.398745f, 0.398833f,
+ 0.398921f, 0.399009f, 0.399097f, 0.399185f, 0.399273f, 0.399361f, 0.399448f, 0.399536f,
+ 0.399624f, 0.399712f, 0.399800f, 0.399888f, 0.399976f, 0.400064f, 0.400151f, 0.400239f,
+ 0.400327f, 0.400415f, 0.400503f, 0.400591f, 0.400679f, 0.400766f, 0.400854f, 0.400942f,
+ 0.401030f, 0.401118f, 0.401206f, 0.401293f, 0.401381f, 0.401469f, 0.401557f, 0.401645f,
+ 0.401732f, 0.401820f, 0.401908f, 0.401996f, 0.402084f, 0.402171f, 0.402259f, 0.402347f,
+ 0.402435f, 0.402522f, 0.402610f, 0.402698f, 0.402786f, 0.402873f, 0.402961f, 0.403049f,
+ 0.403137f, 0.403224f, 0.403312f, 0.403400f, 0.403488f, 0.403575f, 0.403663f, 0.403751f,
+ 0.403838f, 0.403926f, 0.404014f, 0.404102f, 0.404189f, 0.404277f, 0.404365f, 0.404452f,
+ 0.404540f, 0.404628f, 0.404715f, 0.404803f, 0.404891f, 0.404978f, 0.405066f, 0.405154f,
+ 0.405241f, 0.405329f, 0.405417f, 0.405504f, 0.405592f, 0.405680f, 0.405767f, 0.405855f,
+ 0.405942f, 0.406030f, 0.406118f, 0.406205f, 0.406293f, 0.406380f, 0.406468f, 0.406556f,
+ 0.406643f, 0.406731f, 0.406818f, 0.406906f, 0.406994f, 0.407081f, 0.407169f, 0.407256f,
+ 0.407344f, 0.407431f, 0.407519f, 0.407606f, 0.407694f, 0.407782f, 0.407869f, 0.407957f,
+ 0.408044f, 0.408132f, 0.408219f, 0.408307f, 0.408394f, 0.408482f, 0.408569f, 0.408657f,
+ 0.408744f, 0.408832f, 0.408919f, 0.409007f, 0.409094f, 0.409182f, 0.409269f, 0.409357f,
+ 0.409444f, 0.409532f, 0.409619f, 0.409707f, 0.409794f, 0.409881f, 0.409969f, 0.410056f,
+ 0.410144f, 0.410231f, 0.410319f, 0.410406f, 0.410493f, 0.410581f, 0.410668f, 0.410756f,
+ 0.410843f, 0.410931f, 0.411018f, 0.411105f, 0.411193f, 0.411280f, 0.411368f, 0.411455f,
+ 0.411542f, 0.411630f, 0.411717f, 0.411804f, 0.411892f, 0.411979f, 0.412067f, 0.412154f,
+ 0.412241f, 0.412329f, 0.412416f, 0.412503f, 0.412591f, 0.412678f, 0.412765f, 0.412853f,
+ 0.412940f, 0.413027f, 0.413115f, 0.413202f, 0.413289f, 0.413376f, 0.413464f, 0.413551f,
+ 0.413638f, 0.413726f, 0.413813f, 0.413900f, 0.413987f, 0.414075f, 0.414162f, 0.414249f,
+ 0.414337f, 0.414424f, 0.414511f, 0.414598f, 0.414685f, 0.414773f, 0.414860f, 0.414947f,
+ 0.415034f, 0.415122f, 0.415209f, 0.415296f, 0.415383f, 0.415471f, 0.415558f, 0.415645f,
+ 0.415732f, 0.415819f, 0.415906f, 0.415994f, 0.416081f, 0.416168f, 0.416255f, 0.416342f,
+ 0.416430f, 0.416517f, 0.416604f, 0.416691f, 0.416778f, 0.416865f, 0.416952f, 0.417040f,
+ 0.417127f, 0.417214f, 0.417301f, 0.417388f, 0.417475f, 0.417562f, 0.417650f, 0.417737f,
+ 0.417824f, 0.417911f, 0.417998f, 0.418085f, 0.418172f, 0.418259f, 0.418346f, 0.418433f,
+ 0.418520f, 0.418608f, 0.418695f, 0.418782f, 0.418869f, 0.418956f, 0.419043f, 0.419130f,
+ 0.419217f, 0.419304f, 0.419391f, 0.419478f, 0.419565f, 0.419652f, 0.419739f, 0.419826f,
+ 0.419913f, 0.420000f, 0.420087f, 0.420174f, 0.420261f, 0.420348f, 0.420435f, 0.420522f,
+ 0.420609f, 0.420696f, 0.420783f, 0.420870f, 0.420957f, 0.421044f, 0.421131f, 0.421218f,
+ 0.421305f, 0.421392f, 0.421479f, 0.421566f, 0.421653f, 0.421739f, 0.421826f, 0.421913f,
+ 0.422000f, 0.422087f, 0.422174f, 0.422261f, 0.422348f, 0.422435f, 0.422522f, 0.422609f,
+ 0.422695f, 0.422782f, 0.422869f, 0.422956f, 0.423043f, 0.423130f, 0.423217f, 0.423304f,
+ 0.423390f, 0.423477f, 0.423564f, 0.423651f, 0.423738f, 0.423825f, 0.423912f, 0.423998f,
+ 0.424085f, 0.424172f, 0.424259f, 0.424346f, 0.424432f, 0.424519f, 0.424606f, 0.424693f,
+ 0.424780f, 0.424866f, 0.424953f, 0.425040f, 0.425127f, 0.425214f, 0.425300f, 0.425387f,
+ 0.425474f, 0.425561f, 0.425647f, 0.425734f, 0.425821f, 0.425908f, 0.425994f, 0.426081f,
+ 0.426168f, 0.426255f, 0.426341f, 0.426428f, 0.426515f, 0.426601f, 0.426688f, 0.426775f,
+ 0.426862f, 0.426948f, 0.427035f, 0.427122f, 0.427208f, 0.427295f, 0.427382f, 0.427468f,
+ 0.427555f, 0.427642f, 0.427728f, 0.427815f, 0.427902f, 0.427988f, 0.428075f, 0.428162f,
+ 0.428248f, 0.428335f, 0.428422f, 0.428508f, 0.428595f, 0.428681f, 0.428768f, 0.428855f,
+ 0.428941f, 0.429028f, 0.429114f, 0.429201f, 0.429288f, 0.429374f, 0.429461f, 0.429547f,
+ 0.429634f, 0.429721f, 0.429807f, 0.429894f, 0.429980f, 0.430067f, 0.430153f, 0.430240f,
+ 0.430326f, 0.430413f, 0.430500f, 0.430586f, 0.430673f, 0.430759f, 0.430846f, 0.430932f,
+ 0.431019f, 0.431105f, 0.431192f, 0.431278f, 0.431365f, 0.431451f, 0.431538f, 0.431624f,
+ 0.431711f, 0.431797f, 0.431884f, 0.431970f, 0.432057f, 0.432143f, 0.432229f, 0.432316f,
+ 0.432402f, 0.432489f, 0.432575f, 0.432662f, 0.432748f, 0.432835f, 0.432921f, 0.433007f,
+ 0.433094f, 0.433180f, 0.433267f, 0.433353f, 0.433439f, 0.433526f, 0.433612f, 0.433699f,
+ 0.433785f, 0.433871f, 0.433958f, 0.434044f, 0.434131f, 0.434217f, 0.434303f, 0.434390f,
+ 0.434476f, 0.434562f, 0.434649f, 0.434735f, 0.434821f, 0.434908f, 0.434994f, 0.435080f,
+ 0.435167f, 0.435253f, 0.435339f, 0.435426f, 0.435512f, 0.435598f, 0.435685f, 0.435771f,
+ 0.435857f, 0.435943f, 0.436030f, 0.436116f, 0.436202f, 0.436288f, 0.436375f, 0.436461f,
+ 0.436547f, 0.436633f, 0.436720f, 0.436806f, 0.436892f, 0.436978f, 0.437065f, 0.437151f,
+ 0.437237f, 0.437323f, 0.437410f, 0.437496f, 0.437582f, 0.437668f, 0.437754f, 0.437841f,
+ 0.437927f, 0.438013f, 0.438099f, 0.438185f, 0.438272f, 0.438358f, 0.438444f, 0.438530f,
+ 0.438616f, 0.438702f, 0.438789f, 0.438875f, 0.438961f, 0.439047f, 0.439133f, 0.439219f,
+ 0.439305f, 0.439392f, 0.439478f, 0.439564f, 0.439650f, 0.439736f, 0.439822f, 0.439908f,
+ 0.439994f, 0.440080f, 0.440166f, 0.440253f, 0.440339f, 0.440425f, 0.440511f, 0.440597f,
+ 0.440683f, 0.440769f, 0.440855f, 0.440941f, 0.441027f, 0.441113f, 0.441199f, 0.441285f,
+ 0.441371f, 0.441457f, 0.441543f, 0.441629f, 0.441715f, 0.441801f, 0.441887f, 0.441973f,
+ 0.442059f, 0.442145f, 0.442231f, 0.442317f, 0.442403f, 0.442489f, 0.442575f, 0.442661f,
+ 0.442747f, 0.442833f, 0.442919f, 0.443005f, 0.443091f, 0.443177f, 0.443263f, 0.443349f,
+ 0.443435f, 0.443521f, 0.443607f, 0.443693f, 0.443779f, 0.443864f, 0.443950f, 0.444036f,
+ 0.444122f, 0.444208f, 0.444294f, 0.444380f, 0.444466f, 0.444552f, 0.444637f, 0.444723f,
+ 0.444809f, 0.444895f, 0.444981f, 0.445067f, 0.445153f, 0.445239f, 0.445324f, 0.445410f,
+ 0.445496f, 0.445582f, 0.445668f, 0.445754f, 0.445839f, 0.445925f, 0.446011f, 0.446097f,
+ 0.446183f, 0.446268f, 0.446354f, 0.446440f, 0.446526f, 0.446612f, 0.446697f, 0.446783f,
+ 0.446869f, 0.446955f, 0.447040f, 0.447126f, 0.447212f, 0.447298f, 0.447383f, 0.447469f,
+ 0.447555f, 0.447641f, 0.447726f, 0.447812f, 0.447898f, 0.447983f, 0.448069f, 0.448155f,
+ 0.448241f, 0.448326f, 0.448412f, 0.448498f, 0.448583f, 0.448669f, 0.448755f, 0.448840f,
+ 0.448926f, 0.449012f, 0.449097f, 0.449183f, 0.449269f, 0.449354f, 0.449440f, 0.449526f,
+ 0.449611f, 0.449697f, 0.449783f, 0.449868f, 0.449954f, 0.450039f, 0.450125f, 0.450211f,
+ 0.450296f, 0.450382f, 0.450467f, 0.450553f, 0.450639f, 0.450724f, 0.450810f, 0.450895f,
+ 0.450981f, 0.451067f, 0.451152f, 0.451238f, 0.451323f, 0.451409f, 0.451494f, 0.451580f,
+ 0.451665f, 0.451751f, 0.451836f, 0.451922f, 0.452008f, 0.452093f, 0.452179f, 0.452264f,
+ 0.452350f, 0.452435f, 0.452521f, 0.452606f, 0.452692f, 0.452777f, 0.452863f, 0.452948f,
+ 0.453033f, 0.453119f, 0.453204f, 0.453290f, 0.453375f, 0.453461f, 0.453546f, 0.453632f,
+ 0.453717f, 0.453803f, 0.453888f, 0.453973f, 0.454059f, 0.454144f, 0.454230f, 0.454315f,
+ 0.454400f, 0.454486f, 0.454571f, 0.454657f, 0.454742f, 0.454827f, 0.454913f, 0.454998f,
+ 0.455084f, 0.455169f, 0.455254f, 0.455340f, 0.455425f, 0.455510f, 0.455596f, 0.455681f,
+ 0.455766f, 0.455852f, 0.455937f, 0.456022f, 0.456108f, 0.456193f, 0.456278f, 0.456364f,
+ 0.456449f, 0.456534f, 0.456620f, 0.456705f, 0.456790f, 0.456875f, 0.456961f, 0.457046f,
+ 0.457131f, 0.457217f, 0.457302f, 0.457387f, 0.457472f, 0.457558f, 0.457643f, 0.457728f,
+ 0.457813f, 0.457899f, 0.457984f, 0.458069f, 0.458154f, 0.458239f, 0.458325f, 0.458410f,
+ 0.458495f, 0.458580f, 0.458665f, 0.458751f, 0.458836f, 0.458921f, 0.459006f, 0.459091f,
+ 0.459177f, 0.459262f, 0.459347f, 0.459432f, 0.459517f, 0.459602f, 0.459687f, 0.459773f,
+ 0.459858f, 0.459943f, 0.460028f, 0.460113f, 0.460198f, 0.460283f, 0.460369f, 0.460454f,
+ 0.460539f, 0.460624f, 0.460709f, 0.460794f, 0.460879f, 0.460964f, 0.461049f, 0.461134f,
+ 0.461219f, 0.461304f, 0.461390f, 0.461475f, 0.461560f, 0.461645f, 0.461730f, 0.461815f,
+ 0.461900f, 0.461985f, 0.462070f, 0.462155f, 0.462240f, 0.462325f, 0.462410f, 0.462495f,
+ 0.462580f, 0.462665f, 0.462750f, 0.462835f, 0.462920f, 0.463005f, 0.463090f, 0.463175f,
+ 0.463260f, 0.463345f, 0.463430f, 0.463515f, 0.463600f, 0.463685f, 0.463769f, 0.463854f,
+ 0.463939f, 0.464024f, 0.464109f, 0.464194f, 0.464279f, 0.464364f, 0.464449f, 0.464534f,
+ 0.464619f, 0.464704f, 0.464788f, 0.464873f, 0.464958f, 0.465043f, 0.465128f, 0.465213f,
+ 0.465298f, 0.465383f, 0.465467f, 0.465552f, 0.465637f, 0.465722f, 0.465807f, 0.465892f,
+ 0.465977f, 0.466061f, 0.466146f, 0.466231f, 0.466316f, 0.466401f, 0.466485f, 0.466570f,
+ 0.466655f, 0.466740f, 0.466825f, 0.466909f, 0.466994f, 0.467079f, 0.467164f, 0.467248f,
+ 0.467333f, 0.467418f, 0.467503f, 0.467587f, 0.467672f, 0.467757f, 0.467842f, 0.467926f,
+ 0.468011f, 0.468096f, 0.468181f, 0.468265f, 0.468350f, 0.468435f, 0.468519f, 0.468604f,
+ 0.468689f, 0.468774f, 0.468858f, 0.468943f, 0.469028f, 0.469112f, 0.469197f, 0.469282f,
+ 0.469366f, 0.469451f, 0.469536f, 0.469620f, 0.469705f, 0.469789f, 0.469874f, 0.469959f,
+ 0.470043f, 0.470128f, 0.470213f, 0.470297f, 0.470382f, 0.470466f, 0.470551f, 0.470636f,
+ 0.470720f, 0.470805f, 0.470889f, 0.470974f, 0.471058f, 0.471143f, 0.471228f, 0.471312f,
+ 0.471397f, 0.471481f, 0.471566f, 0.471650f, 0.471735f, 0.471819f, 0.471904f, 0.471988f,
+ 0.472073f, 0.472158f, 0.472242f, 0.472327f, 0.472411f, 0.472496f, 0.472580f, 0.472665f,
+ 0.472749f, 0.472834f, 0.472918f, 0.473002f, 0.473087f, 0.473171f, 0.473256f, 0.473340f,
+ 0.473425f, 0.473509f, 0.473594f, 0.473678f, 0.473763f, 0.473847f, 0.473931f, 0.474016f,
+ 0.474100f, 0.474185f, 0.474269f, 0.474353f, 0.474438f, 0.474522f, 0.474607f, 0.474691f,
+ 0.474775f, 0.474860f, 0.474944f, 0.475029f, 0.475113f, 0.475197f, 0.475282f, 0.475366f,
+ 0.475450f, 0.475535f, 0.475619f, 0.475703f, 0.475788f, 0.475872f, 0.475956f, 0.476041f,
+ 0.476125f, 0.476209f, 0.476294f, 0.476378f, 0.476462f, 0.476546f, 0.476631f, 0.476715f,
+ 0.476799f, 0.476884f, 0.476968f, 0.477052f, 0.477136f, 0.477221f, 0.477305f, 0.477389f,
+ 0.477473f, 0.477558f, 0.477642f, 0.477726f, 0.477810f, 0.477894f, 0.477979f, 0.478063f,
+ 0.478147f, 0.478231f, 0.478315f, 0.478400f, 0.478484f, 0.478568f, 0.478652f, 0.478736f,
+ 0.478821f, 0.478905f, 0.478989f, 0.479073f, 0.479157f, 0.479241f, 0.479325f, 0.479410f,
+ 0.479494f, 0.479578f, 0.479662f, 0.479746f, 0.479830f, 0.479914f, 0.479998f, 0.480083f,
+ 0.480167f, 0.480251f, 0.480335f, 0.480419f, 0.480503f, 0.480587f, 0.480671f, 0.480755f,
+ 0.480839f, 0.480923f, 0.481007f, 0.481091f, 0.481176f, 0.481260f, 0.481344f, 0.481428f,
+ 0.481512f, 0.481596f, 0.481680f, 0.481764f, 0.481848f, 0.481932f, 0.482016f, 0.482100f,
+ 0.482184f, 0.482268f, 0.482352f, 0.482436f, 0.482520f, 0.482604f, 0.482688f, 0.482772f,
+ 0.482856f, 0.482940f, 0.483023f, 0.483107f, 0.483191f, 0.483275f, 0.483359f, 0.483443f,
+ 0.483527f, 0.483611f, 0.483695f, 0.483779f, 0.483863f, 0.483947f, 0.484031f, 0.484114f,
+ 0.484198f, 0.484282f, 0.484366f, 0.484450f, 0.484534f, 0.484618f, 0.484702f, 0.484785f,
+ 0.484869f, 0.484953f, 0.485037f, 0.485121f, 0.485205f, 0.485288f, 0.485372f, 0.485456f,
+ 0.485540f, 0.485624f, 0.485708f, 0.485791f, 0.485875f, 0.485959f, 0.486043f, 0.486126f,
+ 0.486210f, 0.486294f, 0.486378f, 0.486462f, 0.486545f, 0.486629f, 0.486713f, 0.486797f,
+ 0.486880f, 0.486964f, 0.487048f, 0.487132f, 0.487215f, 0.487299f, 0.487383f, 0.487466f,
+ 0.487550f, 0.487634f, 0.487718f, 0.487801f, 0.487885f, 0.487969f, 0.488052f, 0.488136f,
+ 0.488220f, 0.488303f, 0.488387f, 0.488471f, 0.488554f, 0.488638f, 0.488722f, 0.488805f,
+ 0.488889f, 0.488973f, 0.489056f, 0.489140f, 0.489223f, 0.489307f, 0.489391f, 0.489474f,
+ 0.489558f, 0.489641f, 0.489725f, 0.489809f, 0.489892f, 0.489976f, 0.490059f, 0.490143f,
+ 0.490226f, 0.490310f, 0.490394f, 0.490477f, 0.490561f, 0.490644f, 0.490728f, 0.490811f,
+ 0.490895f, 0.490978f, 0.491062f, 0.491145f, 0.491229f, 0.491312f, 0.491396f, 0.491479f,
+ 0.491563f, 0.491646f, 0.491730f, 0.491813f, 0.491897f, 0.491980f, 0.492064f, 0.492147f,
+ 0.492231f, 0.492314f, 0.492398f, 0.492481f, 0.492564f, 0.492648f, 0.492731f, 0.492815f,
+ 0.492898f, 0.492982f, 0.493065f, 0.493148f, 0.493232f, 0.493315f, 0.493399f, 0.493482f,
+ 0.493565f, 0.493649f, 0.493732f, 0.493816f, 0.493899f, 0.493982f, 0.494066f, 0.494149f,
+ 0.494232f, 0.494316f, 0.494399f, 0.494482f, 0.494566f, 0.494649f, 0.494732f, 0.494816f,
+ 0.494899f, 0.494982f, 0.495066f, 0.495149f, 0.495232f, 0.495315f, 0.495399f, 0.495482f,
+ 0.495565f, 0.495649f, 0.495732f, 0.495815f, 0.495898f, 0.495982f, 0.496065f, 0.496148f,
+ 0.496231f, 0.496315f, 0.496398f, 0.496481f, 0.496564f, 0.496647f, 0.496731f, 0.496814f,
+ 0.496897f, 0.496980f, 0.497063f, 0.497147f, 0.497230f, 0.497313f, 0.497396f, 0.497479f,
+ 0.497562f, 0.497646f, 0.497729f, 0.497812f, 0.497895f, 0.497978f, 0.498061f, 0.498145f,
+ 0.498228f, 0.498311f, 0.498394f, 0.498477f, 0.498560f, 0.498643f, 0.498726f, 0.498809f,
+ 0.498893f, 0.498976f, 0.499059f, 0.499142f, 0.499225f, 0.499308f, 0.499391f, 0.499474f,
+ 0.499557f, 0.499640f, 0.499723f, 0.499806f, 0.499889f, 0.499972f, 0.500055f, 0.500138f,
+ 0.500221f, 0.500304f, 0.500387f, 0.500470f, 0.500553f, 0.500636f, 0.500719f, 0.500802f,
+ 0.500885f, 0.500968f, 0.501051f, 0.501134f, 0.501217f, 0.501300f, 0.501383f, 0.501466f,
+ 0.501549f, 0.501632f, 0.501715f, 0.501798f, 0.501881f, 0.501964f, 0.502047f, 0.502130f,
+ 0.502212f, 0.502295f, 0.502378f, 0.502461f, 0.502544f, 0.502627f, 0.502710f, 0.502793f,
+ 0.502876f, 0.502958f, 0.503041f, 0.503124f, 0.503207f, 0.503290f, 0.503373f, 0.503456f,
+ 0.503538f, 0.503621f, 0.503704f, 0.503787f, 0.503870f, 0.503953f, 0.504035f, 0.504118f,
+ 0.504201f, 0.504284f, 0.504366f, 0.504449f, 0.504532f, 0.504615f, 0.504698f, 0.504780f,
+ 0.504863f, 0.504946f, 0.505029f, 0.505111f, 0.505194f, 0.505277f, 0.505360f, 0.505442f,
+ 0.505525f, 0.505608f, 0.505690f, 0.505773f, 0.505856f, 0.505939f, 0.506021f, 0.506104f,
+ 0.506187f, 0.506269f, 0.506352f, 0.506435f, 0.506517f, 0.506600f, 0.506683f, 0.506765f,
+ 0.506848f, 0.506931f, 0.507013f, 0.507096f, 0.507179f, 0.507261f, 0.507344f, 0.507426f,
+ 0.507509f, 0.507592f, 0.507674f, 0.507757f, 0.507839f, 0.507922f, 0.508005f, 0.508087f,
+ 0.508170f, 0.508252f, 0.508335f, 0.508417f, 0.508500f, 0.508583f, 0.508665f, 0.508748f,
+ 0.508830f, 0.508913f, 0.508995f, 0.509078f, 0.509160f, 0.509243f, 0.509325f, 0.509408f,
+ 0.509490f, 0.509573f, 0.509655f, 0.509738f, 0.509820f, 0.509903f, 0.509985f, 0.510068f,
+ 0.510150f, 0.510233f, 0.510315f, 0.510397f, 0.510480f, 0.510562f, 0.510645f, 0.510727f,
+ 0.510810f, 0.510892f, 0.510974f, 0.511057f, 0.511139f, 0.511222f, 0.511304f, 0.511386f,
+ 0.511469f, 0.511551f, 0.511634f, 0.511716f, 0.511798f, 0.511881f, 0.511963f, 0.512045f,
+ 0.512128f, 0.512210f, 0.512292f, 0.512375f, 0.512457f, 0.512539f, 0.512622f, 0.512704f,
+ 0.512786f, 0.512869f, 0.512951f, 0.513033f, 0.513116f, 0.513198f, 0.513280f, 0.513362f,
+ 0.513445f, 0.513527f, 0.513609f, 0.513692f, 0.513774f, 0.513856f, 0.513938f, 0.514021f,
+ 0.514103f, 0.514185f, 0.514267f, 0.514349f, 0.514432f, 0.514514f, 0.514596f, 0.514678f,
+ 0.514760f, 0.514843f, 0.514925f, 0.515007f, 0.515089f, 0.515171f, 0.515254f, 0.515336f,
+ 0.515418f, 0.515500f, 0.515582f, 0.515664f, 0.515746f, 0.515829f, 0.515911f, 0.515993f,
+ 0.516075f, 0.516157f, 0.516239f, 0.516321f, 0.516403f, 0.516486f, 0.516568f, 0.516650f,
+ 0.516732f, 0.516814f, 0.516896f, 0.516978f, 0.517060f, 0.517142f, 0.517224f, 0.517306f,
+ 0.517388f, 0.517470f, 0.517552f, 0.517634f, 0.517716f, 0.517798f, 0.517880f, 0.517963f,
+ 0.518045f, 0.518126f, 0.518209f, 0.518291f, 0.518372f, 0.518454f, 0.518536f, 0.518618f,
+ 0.518700f, 0.518782f, 0.518864f, 0.518946f, 0.519028f, 0.519110f, 0.519192f, 0.519274f,
+ 0.519356f, 0.519438f, 0.519520f, 0.519602f, 0.519684f, 0.519766f, 0.519848f, 0.519929f,
+ 0.520011f, 0.520093f, 0.520175f, 0.520257f, 0.520339f, 0.520421f, 0.520503f, 0.520584f,
+ 0.520666f, 0.520748f, 0.520830f, 0.520912f, 0.520994f, 0.521075f, 0.521157f, 0.521239f,
+ 0.521321f, 0.521403f, 0.521485f, 0.521566f, 0.521648f, 0.521730f, 0.521812f, 0.521894f,
+ 0.521975f, 0.522057f, 0.522139f, 0.522221f, 0.522302f, 0.522384f, 0.522466f, 0.522548f,
+ 0.522629f, 0.522711f, 0.522793f, 0.522875f, 0.522956f, 0.523038f, 0.523120f, 0.523201f,
+ 0.523283f, 0.523365f, 0.523447f, 0.523528f, 0.523610f, 0.523692f, 0.523773f, 0.523855f,
+ 0.523937f, 0.524018f, 0.524100f, 0.524181f, 0.524263f, 0.524345f, 0.524426f, 0.524508f,
+ 0.524590f, 0.524671f, 0.524753f, 0.524835f, 0.524916f, 0.524998f, 0.525079f, 0.525161f,
+ 0.525243f, 0.525324f, 0.525406f, 0.525487f, 0.525569f, 0.525650f, 0.525732f, 0.525813f,
+ 0.525895f, 0.525977f, 0.526058f, 0.526140f, 0.526221f, 0.526303f, 0.526384f, 0.526466f,
+ 0.526547f, 0.526629f, 0.526710f, 0.526792f, 0.526873f, 0.526955f, 0.527036f, 0.527118f,
+ 0.527199f, 0.527281f, 0.527362f, 0.527444f, 0.527525f, 0.527606f, 0.527688f, 0.527769f,
+ 0.527851f, 0.527932f, 0.528014f, 0.528095f, 0.528176f, 0.528258f, 0.528339f, 0.528421f,
+ 0.528502f, 0.528583f, 0.528665f, 0.528746f, 0.528828f, 0.528909f, 0.528990f, 0.529072f,
+ 0.529153f, 0.529234f, 0.529316f, 0.529397f, 0.529478f, 0.529560f, 0.529641f, 0.529722f,
+ 0.529804f, 0.529885f, 0.529966f, 0.530048f, 0.530129f, 0.530210f, 0.530291f, 0.530373f,
+ 0.530454f, 0.530535f, 0.530617f, 0.530698f, 0.530779f, 0.530860f, 0.530942f, 0.531023f,
+ 0.531104f, 0.531185f, 0.531266f, 0.531348f, 0.531429f, 0.531510f, 0.531591f, 0.531673f,
+ 0.531754f, 0.531835f, 0.531916f, 0.531997f, 0.532078f, 0.532160f, 0.532241f, 0.532322f,
+ 0.532403f, 0.532484f, 0.532565f, 0.532647f, 0.532728f, 0.532809f, 0.532890f, 0.532971f,
+ 0.533052f, 0.533133f, 0.533214f, 0.533296f, 0.533377f, 0.533458f, 0.533539f, 0.533620f,
+ 0.533701f, 0.533782f, 0.533863f, 0.533944f, 0.534025f, 0.534106f, 0.534187f, 0.534268f,
+ 0.534349f, 0.534431f, 0.534512f, 0.534593f, 0.534674f, 0.534755f, 0.534836f, 0.534917f,
+ 0.534998f, 0.535079f, 0.535160f, 0.535241f, 0.535322f, 0.535403f, 0.535484f, 0.535564f,
+ 0.535645f, 0.535726f, 0.535807f, 0.535888f, 0.535969f, 0.536050f, 0.536131f, 0.536212f,
+ 0.536293f, 0.536374f, 0.536455f, 0.536536f, 0.536617f, 0.536698f, 0.536778f, 0.536859f,
+ 0.536940f, 0.537021f, 0.537102f, 0.537183f, 0.537264f, 0.537345f, 0.537425f, 0.537506f,
+ 0.537587f, 0.537668f, 0.537749f, 0.537830f, 0.537910f, 0.537991f, 0.538072f, 0.538153f,
+ 0.538234f, 0.538314f, 0.538395f, 0.538476f, 0.538557f, 0.538638f, 0.538718f, 0.538799f,
+ 0.538880f, 0.538961f, 0.539041f, 0.539122f, 0.539203f, 0.539284f, 0.539364f, 0.539445f,
+ 0.539526f, 0.539607f, 0.539687f, 0.539768f, 0.539849f, 0.539929f, 0.540010f, 0.540091f,
+ 0.540171f, 0.540252f, 0.540333f, 0.540413f, 0.540494f, 0.540575f, 0.540655f, 0.540736f,
+ 0.540817f, 0.540897f, 0.540978f, 0.541059f, 0.541139f, 0.541220f, 0.541301f, 0.541381f,
+ 0.541462f, 0.541542f, 0.541623f, 0.541704f, 0.541784f, 0.541865f, 0.541945f, 0.542026f,
+ 0.542106f, 0.542187f, 0.542268f, 0.542348f, 0.542429f, 0.542509f, 0.542590f, 0.542670f,
+ 0.542751f, 0.542831f, 0.542912f, 0.542992f, 0.543073f, 0.543153f, 0.543234f, 0.543314f,
+ 0.543395f, 0.543475f, 0.543556f, 0.543636f, 0.543717f, 0.543797f, 0.543878f, 0.543958f,
+ 0.544039f, 0.544119f, 0.544199f, 0.544280f, 0.544360f, 0.544441f, 0.544521f, 0.544602f,
+ 0.544682f, 0.544762f, 0.544843f, 0.544923f, 0.545003f, 0.545084f, 0.545164f, 0.545245f,
+ 0.545325f, 0.545405f, 0.545486f, 0.545566f, 0.545646f, 0.545727f, 0.545807f, 0.545887f,
+ 0.545968f, 0.546048f, 0.546128f, 0.546209f, 0.546289f, 0.546369f, 0.546450f, 0.546530f,
+ 0.546610f, 0.546690f, 0.546771f, 0.546851f, 0.546931f, 0.547011f, 0.547092f, 0.547172f,
+ 0.547252f, 0.547333f, 0.547413f, 0.547493f, 0.547573f, 0.547653f, 0.547734f, 0.547814f,
+ 0.547894f, 0.547974f, 0.548054f, 0.548135f, 0.548215f, 0.548295f, 0.548375f, 0.548455f,
+ 0.548536f, 0.548616f, 0.548696f, 0.548776f, 0.548856f, 0.548936f, 0.549016f, 0.549097f,
+ 0.549177f, 0.549257f, 0.549337f, 0.549417f, 0.549497f, 0.549577f, 0.549657f, 0.549737f,
+ 0.549818f, 0.549898f, 0.549978f, 0.550058f, 0.550138f, 0.550218f, 0.550298f, 0.550378f,
+ 0.550458f, 0.550538f, 0.550618f, 0.550698f, 0.550778f, 0.550858f, 0.550938f, 0.551018f,
+ 0.551098f, 0.551178f, 0.551258f, 0.551338f, 0.551418f, 0.551498f, 0.551578f, 0.551658f,
+ 0.551738f, 0.551818f, 0.551898f, 0.551978f, 0.552058f, 0.552138f, 0.552218f, 0.552298f,
+ 0.552378f, 0.552457f, 0.552537f, 0.552617f, 0.552697f, 0.552777f, 0.552857f, 0.552937f,
+ 0.553017f, 0.553097f, 0.553176f, 0.553256f, 0.553336f, 0.553416f, 0.553496f, 0.553576f,
+ 0.553656f, 0.553735f, 0.553815f, 0.553895f, 0.553975f, 0.554055f, 0.554134f, 0.554214f,
+ 0.554294f, 0.554374f, 0.554454f, 0.554533f, 0.554613f, 0.554693f, 0.554773f, 0.554853f,
+ 0.554932f, 0.555012f, 0.555092f, 0.555172f, 0.555251f, 0.555331f, 0.555411f, 0.555490f,
+ 0.555570f, 0.555650f, 0.555730f, 0.555809f, 0.555889f, 0.555969f, 0.556048f, 0.556128f,
+ 0.556208f, 0.556287f, 0.556367f, 0.556447f, 0.556526f, 0.556606f, 0.556686f, 0.556765f,
+ 0.556845f, 0.556925f, 0.557004f, 0.557084f, 0.557164f, 0.557243f, 0.557323f, 0.557402f,
+ 0.557482f, 0.557562f, 0.557641f, 0.557721f, 0.557800f, 0.557880f, 0.557959f, 0.558039f,
+ 0.558119f, 0.558198f, 0.558278f, 0.558357f, 0.558437f, 0.558516f, 0.558596f, 0.558675f,
+ 0.558755f, 0.558834f, 0.558914f, 0.558993f, 0.559073f, 0.559152f, 0.559232f, 0.559311f,
+ 0.559391f, 0.559470f, 0.559550f, 0.559629f, 0.559709f, 0.559788f, 0.559867f, 0.559947f,
+ 0.560026f, 0.560106f, 0.560185f, 0.560265f, 0.560344f, 0.560423f, 0.560503f, 0.560582f,
+ 0.560662f, 0.560741f, 0.560820f, 0.560900f, 0.560979f, 0.561058f, 0.561138f, 0.561217f,
+ 0.561297f, 0.561376f, 0.561455f, 0.561535f, 0.561614f, 0.561693f, 0.561773f, 0.561852f,
+ 0.561931f, 0.562010f, 0.562090f, 0.562169f, 0.562248f, 0.562328f, 0.562407f, 0.562486f,
+ 0.562565f, 0.562645f, 0.562724f, 0.562803f, 0.562882f, 0.562962f, 0.563041f, 0.563120f,
+ 0.563199f, 0.563279f, 0.563358f, 0.563437f, 0.563516f, 0.563595f, 0.563675f, 0.563754f,
+ 0.563833f, 0.563912f, 0.563991f, 0.564070f, 0.564150f, 0.564229f, 0.564308f, 0.564387f,
+ 0.564466f, 0.564545f, 0.564624f, 0.564704f, 0.564783f, 0.564862f, 0.564941f, 0.565020f,
+ 0.565099f, 0.565178f, 0.565257f, 0.565336f, 0.565416f, 0.565495f, 0.565574f, 0.565653f,
+ 0.565732f, 0.565811f, 0.565890f, 0.565969f, 0.566048f, 0.566127f, 0.566206f, 0.566285f,
+ 0.566364f, 0.566443f, 0.566522f, 0.566601f, 0.566680f, 0.566759f, 0.566838f, 0.566917f,
+ 0.566996f, 0.567075f, 0.567154f, 0.567233f, 0.567312f, 0.567391f, 0.567470f, 0.567549f,
+ 0.567628f, 0.567707f, 0.567786f, 0.567864f, 0.567943f, 0.568022f, 0.568101f, 0.568180f,
+ 0.568259f, 0.568338f, 0.568417f, 0.568496f, 0.568574f, 0.568653f, 0.568732f, 0.568811f,
+ 0.568890f, 0.568969f, 0.569048f, 0.569126f, 0.569205f, 0.569284f, 0.569363f, 0.569442f,
+ 0.569521f, 0.569599f, 0.569678f, 0.569757f, 0.569836f, 0.569914f, 0.569993f, 0.570072f,
+ 0.570151f, 0.570230f, 0.570308f, 0.570387f, 0.570466f, 0.570545f, 0.570623f, 0.570702f,
+ 0.570781f, 0.570859f, 0.570938f, 0.571017f, 0.571096f, 0.571174f, 0.571253f, 0.571332f,
+ 0.571410f, 0.571489f, 0.571568f, 0.571646f, 0.571725f, 0.571804f, 0.571882f, 0.571961f,
+ 0.572040f, 0.572118f, 0.572197f, 0.572276f, 0.572354f, 0.572433f, 0.572511f, 0.572590f,
+ 0.572669f, 0.572747f, 0.572826f, 0.572904f, 0.572983f, 0.573061f, 0.573140f, 0.573219f,
+ 0.573297f, 0.573376f, 0.573454f, 0.573533f, 0.573611f, 0.573690f, 0.573768f, 0.573847f,
+ 0.573925f, 0.574004f, 0.574082f, 0.574161f, 0.574239f, 0.574318f, 0.574396f, 0.574475f,
+ 0.574553f, 0.574632f, 0.574710f, 0.574789f, 0.574867f, 0.574946f, 0.575024f, 0.575103f,
+ 0.575181f, 0.575259f, 0.575338f, 0.575416f, 0.575495f, 0.575573f, 0.575651f, 0.575730f,
+ 0.575808f, 0.575887f, 0.575965f, 0.576043f, 0.576122f, 0.576200f, 0.576278f, 0.576357f,
+ 0.576435f, 0.576513f, 0.576592f, 0.576670f, 0.576748f, 0.576827f, 0.576905f, 0.576983f,
+ 0.577062f, 0.577140f, 0.577218f, 0.577297f, 0.577375f, 0.577453f, 0.577531f, 0.577610f,
+ 0.577688f, 0.577766f, 0.577844f, 0.577923f, 0.578001f, 0.578079f, 0.578157f, 0.578236f,
+ 0.578314f, 0.578392f, 0.578470f, 0.578548f, 0.578627f, 0.578705f, 0.578783f, 0.578861f,
+ 0.578939f, 0.579018f, 0.579096f, 0.579174f, 0.579252f, 0.579330f, 0.579408f, 0.579486f,
+ 0.579565f, 0.579643f, 0.579721f, 0.579799f, 0.579877f, 0.579955f, 0.580033f, 0.580111f,
+ 0.580189f, 0.580267f, 0.580346f, 0.580424f, 0.580502f, 0.580580f, 0.580658f, 0.580736f,
+ 0.580814f, 0.580892f, 0.580970f, 0.581048f, 0.581126f, 0.581204f, 0.581282f, 0.581360f,
+ 0.581438f, 0.581516f, 0.581594f, 0.581672f, 0.581750f, 0.581828f, 0.581906f, 0.581984f,
+ 0.582062f, 0.582140f, 0.582218f, 0.582296f, 0.582374f, 0.582452f, 0.582530f, 0.582608f,
+ 0.582685f, 0.582763f, 0.582841f, 0.582919f, 0.582997f, 0.583075f, 0.583153f, 0.583231f,
+ 0.583309f, 0.583387f, 0.583464f, 0.583542f, 0.583620f, 0.583698f, 0.583776f, 0.583854f,
+ 0.583931f, 0.584009f, 0.584087f, 0.584165f, 0.584243f, 0.584321f, 0.584398f, 0.584476f,
+ 0.584554f, 0.584632f, 0.584710f, 0.584787f, 0.584865f, 0.584943f, 0.585021f, 0.585098f,
+ 0.585176f, 0.585254f, 0.585332f, 0.585409f, 0.585487f, 0.585565f, 0.585642f, 0.585720f,
+ 0.585798f, 0.585876f, 0.585953f, 0.586031f, 0.586109f, 0.586186f, 0.586264f, 0.586342f,
+ 0.586419f, 0.586497f, 0.586575f, 0.586652f, 0.586730f, 0.586808f, 0.586885f, 0.586963f,
+ 0.587040f, 0.587118f, 0.587196f, 0.587273f, 0.587351f, 0.587428f, 0.587506f, 0.587584f,
+ 0.587661f, 0.587739f, 0.587816f, 0.587894f, 0.587971f, 0.588049f, 0.588126f, 0.588204f,
+ 0.588282f, 0.588359f, 0.588437f, 0.588514f, 0.588592f, 0.588669f, 0.588747f, 0.588824f,
+ 0.588902f, 0.588979f, 0.589057f, 0.589134f, 0.589212f, 0.589289f, 0.589366f, 0.589444f,
+ 0.589521f, 0.589599f, 0.589676f, 0.589754f, 0.589831f, 0.589908f, 0.589986f, 0.590063f,
+ 0.590141f, 0.590218f, 0.590295f, 0.590373f, 0.590450f, 0.590528f, 0.590605f, 0.590682f,
+ 0.590760f, 0.590837f, 0.590914f, 0.590992f, 0.591069f, 0.591146f, 0.591224f, 0.591301f,
+ 0.591378f, 0.591456f, 0.591533f, 0.591610f, 0.591688f, 0.591765f, 0.591842f, 0.591919f,
+ 0.591997f, 0.592074f, 0.592151f, 0.592228f, 0.592306f, 0.592383f, 0.592460f, 0.592537f,
+ 0.592615f, 0.592692f, 0.592769f, 0.592846f, 0.592924f, 0.593001f, 0.593078f, 0.593155f,
+ 0.593232f, 0.593309f, 0.593387f, 0.593464f, 0.593541f, 0.593618f, 0.593695f, 0.593772f,
+ 0.593850f, 0.593927f, 0.594004f, 0.594081f, 0.594158f, 0.594235f, 0.594312f, 0.594389f,
+ 0.594467f, 0.594544f, 0.594621f, 0.594698f, 0.594775f, 0.594852f, 0.594929f, 0.595006f,
+ 0.595083f, 0.595160f, 0.595237f, 0.595314f, 0.595391f, 0.595468f, 0.595545f, 0.595622f,
+ 0.595699f, 0.595776f, 0.595853f, 0.595930f, 0.596007f, 0.596084f, 0.596161f, 0.596238f,
+ 0.596315f, 0.596392f, 0.596469f, 0.596546f, 0.596623f, 0.596700f, 0.596777f, 0.596854f,
+ 0.596931f, 0.597008f, 0.597085f, 0.597161f, 0.597238f, 0.597315f, 0.597392f, 0.597469f,
+ 0.597546f, 0.597623f, 0.597700f, 0.597776f, 0.597853f, 0.597930f, 0.598007f, 0.598084f,
+ 0.598161f, 0.598238f, 0.598314f, 0.598391f, 0.598468f, 0.598545f, 0.598622f, 0.598698f,
+ 0.598775f, 0.598852f, 0.598929f, 0.599006f, 0.599082f, 0.599159f, 0.599236f, 0.599313f,
+ 0.599389f, 0.599466f, 0.599543f, 0.599620f, 0.599696f, 0.599773f, 0.599850f, 0.599926f,
+ 0.600003f, 0.600080f, 0.600156f, 0.600233f, 0.600310f, 0.600387f, 0.600463f, 0.600540f,
+ 0.600616f, 0.600693f, 0.600770f, 0.600846f, 0.600923f, 0.601000f, 0.601076f, 0.601153f,
+ 0.601230f, 0.601306f, 0.601383f, 0.601459f, 0.601536f, 0.601613f, 0.601689f, 0.601766f,
+ 0.601842f, 0.601919f, 0.601995f, 0.602072f, 0.602148f, 0.602225f, 0.602302f, 0.602378f,
+ 0.602455f, 0.602531f, 0.602608f, 0.602684f, 0.602761f, 0.602837f, 0.602914f, 0.602990f,
+ 0.603067f, 0.603143f, 0.603220f, 0.603296f, 0.603372f, 0.603449f, 0.603525f, 0.603602f,
+ 0.603678f, 0.603755f, 0.603831f, 0.603908f, 0.603984f, 0.604060f, 0.604137f, 0.604213f,
+ 0.604290f, 0.604366f, 0.604442f, 0.604519f, 0.604595f, 0.604671f, 0.604748f, 0.604824f,
+ 0.604900f, 0.604977f, 0.605053f, 0.605129f, 0.605206f, 0.605282f, 0.605358f, 0.605435f,
+ 0.605511f, 0.605587f, 0.605664f, 0.605740f, 0.605816f, 0.605892f, 0.605969f, 0.606045f,
+ 0.606121f, 0.606198f, 0.606274f, 0.606350f, 0.606426f, 0.606502f, 0.606579f, 0.606655f,
+ 0.606731f, 0.606807f, 0.606884f, 0.606960f, 0.607036f, 0.607112f, 0.607188f, 0.607264f,
+ 0.607341f, 0.607417f, 0.607493f, 0.607569f, 0.607645f, 0.607721f, 0.607798f, 0.607874f,
+ 0.607950f, 0.608026f, 0.608102f, 0.608178f, 0.608254f, 0.608330f, 0.608406f, 0.608482f,
+ 0.608559f, 0.608635f, 0.608711f, 0.608787f, 0.608863f, 0.608939f, 0.609015f, 0.609091f,
+ 0.609167f, 0.609243f, 0.609319f, 0.609395f, 0.609471f, 0.609547f, 0.609623f, 0.609699f,
+ 0.609775f, 0.609851f, 0.609927f, 0.610003f, 0.610079f, 0.610155f, 0.610231f, 0.610307f,
+ 0.610383f, 0.610459f, 0.610535f, 0.610611f, 0.610687f, 0.610762f, 0.610838f, 0.610914f,
+ 0.610990f, 0.611066f, 0.611142f, 0.611218f, 0.611294f, 0.611370f, 0.611445f, 0.611521f,
+ 0.611597f, 0.611673f, 0.611749f, 0.611825f, 0.611901f, 0.611976f, 0.612052f, 0.612128f,
+ 0.612204f, 0.612280f, 0.612355f, 0.612431f, 0.612507f, 0.612583f, 0.612659f, 0.612734f,
+ 0.612810f, 0.612886f, 0.612962f, 0.613037f, 0.613113f, 0.613189f, 0.613265f, 0.613340f,
+ 0.613416f, 0.613492f, 0.613567f, 0.613643f, 0.613719f, 0.613795f, 0.613870f, 0.613946f,
+ 0.614022f, 0.614097f, 0.614173f, 0.614249f, 0.614324f, 0.614400f, 0.614475f, 0.614551f,
+ 0.614627f, 0.614702f, 0.614778f, 0.614854f, 0.614929f, 0.615005f, 0.615080f, 0.615156f,
+ 0.615232f, 0.615307f, 0.615383f, 0.615458f, 0.615534f, 0.615609f, 0.615685f, 0.615761f,
+ 0.615836f, 0.615912f, 0.615987f, 0.616063f, 0.616138f, 0.616214f, 0.616289f, 0.616365f,
+ 0.616440f, 0.616516f, 0.616591f, 0.616667f, 0.616742f, 0.616818f, 0.616893f, 0.616968f,
+ 0.617044f, 0.617119f, 0.617195f, 0.617270f, 0.617346f, 0.617421f, 0.617496f, 0.617572f,
+ 0.617647f, 0.617723f, 0.617798f, 0.617873f, 0.617949f, 0.618024f, 0.618100f, 0.618175f,
+ 0.618250f, 0.618326f, 0.618401f, 0.618476f, 0.618552f, 0.618627f, 0.618702f, 0.618778f,
+ 0.618853f, 0.618928f, 0.619004f, 0.619079f, 0.619154f, 0.619229f, 0.619305f, 0.619380f,
+ 0.619455f, 0.619531f, 0.619606f, 0.619681f, 0.619756f, 0.619832f, 0.619907f, 0.619982f,
+ 0.620057f, 0.620132f, 0.620208f, 0.620283f, 0.620358f, 0.620433f, 0.620508f, 0.620584f,
+ 0.620659f, 0.620734f, 0.620809f, 0.620884f, 0.620959f, 0.621035f, 0.621110f, 0.621185f,
+ 0.621260f, 0.621335f, 0.621410f, 0.621485f, 0.621560f, 0.621636f, 0.621711f, 0.621786f,
+ 0.621861f, 0.621936f, 0.622011f, 0.622086f, 0.622161f, 0.622236f, 0.622311f, 0.622386f,
+ 0.622461f, 0.622536f, 0.622611f, 0.622686f, 0.622761f, 0.622836f, 0.622911f, 0.622986f,
+ 0.623061f, 0.623136f, 0.623211f, 0.623286f, 0.623361f, 0.623436f, 0.623511f, 0.623586f,
+ 0.623661f, 0.623736f, 0.623811f, 0.623886f, 0.623961f, 0.624036f, 0.624111f, 0.624186f,
+ 0.624260f, 0.624335f, 0.624410f, 0.624485f, 0.624560f, 0.624635f, 0.624710f, 0.624785f,
+ 0.624860f, 0.624934f, 0.625009f, 0.625084f, 0.625159f, 0.625234f, 0.625309f, 0.625383f,
+ 0.625458f, 0.625533f, 0.625608f, 0.625683f, 0.625757f, 0.625832f, 0.625907f, 0.625982f,
+ 0.626056f, 0.626131f, 0.626206f, 0.626281f, 0.626355f, 0.626430f, 0.626505f, 0.626580f,
+ 0.626654f, 0.626729f, 0.626804f, 0.626878f, 0.626953f, 0.627028f, 0.627102f, 0.627177f,
+ 0.627252f, 0.627326f, 0.627401f, 0.627476f, 0.627550f, 0.627625f, 0.627700f, 0.627774f,
+ 0.627849f, 0.627924f, 0.627998f, 0.628073f, 0.628147f, 0.628222f, 0.628297f, 0.628371f,
+ 0.628446f, 0.628520f, 0.628595f, 0.628669f, 0.628744f, 0.628819f, 0.628893f, 0.628968f,
+ 0.629042f, 0.629117f, 0.629191f, 0.629266f, 0.629340f, 0.629415f, 0.629489f, 0.629564f,
+ 0.629638f, 0.629713f, 0.629787f, 0.629862f, 0.629936f, 0.630011f, 0.630085f, 0.630159f,
+ 0.630234f, 0.630308f, 0.630383f, 0.630457f, 0.630532f, 0.630606f, 0.630680f, 0.630755f,
+ 0.630829f, 0.630904f, 0.630978f, 0.631052f, 0.631127f, 0.631201f, 0.631275f, 0.631350f,
+ 0.631424f, 0.631499f, 0.631573f, 0.631647f, 0.631721f, 0.631796f, 0.631870f, 0.631944f,
+ 0.632019f, 0.632093f, 0.632167f, 0.632242f, 0.632316f, 0.632390f, 0.632464f, 0.632539f,
+ 0.632613f, 0.632687f, 0.632761f, 0.632836f, 0.632910f, 0.632984f, 0.633058f, 0.633133f,
+ 0.633207f, 0.633281f, 0.633355f, 0.633429f, 0.633504f, 0.633578f, 0.633652f, 0.633726f,
+ 0.633800f, 0.633874f, 0.633949f, 0.634023f, 0.634097f, 0.634171f, 0.634245f, 0.634319f,
+ 0.634393f, 0.634467f, 0.634542f, 0.634616f, 0.634690f, 0.634764f, 0.634838f, 0.634912f,
+ 0.634986f, 0.635060f, 0.635134f, 0.635208f, 0.635282f, 0.635356f, 0.635430f, 0.635504f,
+ 0.635578f, 0.635652f, 0.635726f, 0.635800f, 0.635874f, 0.635948f, 0.636022f, 0.636096f,
+ 0.636170f, 0.636244f, 0.636318f, 0.636392f, 0.636466f, 0.636540f, 0.636614f, 0.636688f,
+ 0.636762f, 0.636836f, 0.636910f, 0.636984f, 0.637057f, 0.637131f, 0.637205f, 0.637279f,
+ 0.637353f, 0.637427f, 0.637501f, 0.637575f, 0.637649f, 0.637722f, 0.637796f, 0.637870f,
+ 0.637944f, 0.638018f, 0.638092f, 0.638165f, 0.638239f, 0.638313f, 0.638387f, 0.638461f,
+ 0.638534f, 0.638608f, 0.638682f, 0.638756f, 0.638829f, 0.638903f, 0.638977f, 0.639051f,
+ 0.639124f, 0.639198f, 0.639272f, 0.639346f, 0.639419f, 0.639493f, 0.639567f, 0.639640f,
+ 0.639714f, 0.639788f, 0.639862f, 0.639935f, 0.640009f, 0.640083f, 0.640156f, 0.640230f,
+ 0.640303f, 0.640377f, 0.640451f, 0.640524f, 0.640598f, 0.640672f, 0.640745f, 0.640819f,
+ 0.640892f, 0.640966f, 0.641040f, 0.641113f, 0.641187f, 0.641260f, 0.641334f, 0.641407f,
+ 0.641481f, 0.641555f, 0.641628f, 0.641702f, 0.641775f, 0.641849f, 0.641922f, 0.641996f,
+ 0.642069f, 0.642143f, 0.642216f, 0.642290f, 0.642363f, 0.642437f, 0.642510f, 0.642584f,
+ 0.642657f, 0.642730f, 0.642804f, 0.642877f, 0.642951f, 0.643024f, 0.643098f, 0.643171f,
+ 0.643245f, 0.643318f, 0.643391f, 0.643465f, 0.643538f, 0.643611f, 0.643685f, 0.643758f,
+ 0.643832f, 0.643905f, 0.643978f, 0.644052f, 0.644125f, 0.644198f, 0.644272f, 0.644345f,
+ 0.644418f, 0.644492f, 0.644565f, 0.644638f, 0.644711f, 0.644785f, 0.644858f, 0.644931f,
+ 0.645005f, 0.645078f, 0.645151f, 0.645224f, 0.645298f, 0.645371f, 0.645444f, 0.645517f,
+ 0.645590f, 0.645664f, 0.645737f, 0.645810f, 0.645883f, 0.645956f, 0.646030f, 0.646103f,
+ 0.646176f, 0.646249f, 0.646322f, 0.646396f, 0.646469f, 0.646542f, 0.646615f, 0.646688f,
+ 0.646761f, 0.646834f, 0.646907f, 0.646981f, 0.647054f, 0.647127f, 0.647200f, 0.647273f,
+ 0.647346f, 0.647419f, 0.647492f, 0.647565f, 0.647638f, 0.647711f, 0.647784f, 0.647857f,
+ 0.647930f, 0.648003f, 0.648076f, 0.648149f, 0.648222f, 0.648295f, 0.648368f, 0.648441f,
+ 0.648514f, 0.648587f, 0.648660f, 0.648733f, 0.648806f, 0.648879f, 0.648952f, 0.649025f,
+ 0.649098f, 0.649171f, 0.649244f, 0.649317f, 0.649390f, 0.649463f, 0.649536f, 0.649608f,
+ 0.649681f, 0.649754f, 0.649827f, 0.649900f, 0.649973f, 0.650046f, 0.650119f, 0.650191f,
+ 0.650264f, 0.650337f, 0.650410f, 0.650483f, 0.650555f, 0.650628f, 0.650701f, 0.650774f,
+ 0.650847f, 0.650919f, 0.650992f, 0.651065f, 0.651138f, 0.651211f, 0.651283f, 0.651356f,
+ 0.651429f, 0.651502f, 0.651574f, 0.651647f, 0.651720f, 0.651792f, 0.651865f, 0.651938f,
+ 0.652011f, 0.652083f, 0.652156f, 0.652229f, 0.652301f, 0.652374f, 0.652447f, 0.652519f,
+ 0.652592f, 0.652665f, 0.652737f, 0.652810f, 0.652882f, 0.652955f, 0.653028f, 0.653100f,
+ 0.653173f, 0.653245f, 0.653318f, 0.653391f, 0.653463f, 0.653536f, 0.653608f, 0.653681f,
+ 0.653753f, 0.653826f, 0.653899f, 0.653971f, 0.654044f, 0.654116f, 0.654189f, 0.654261f,
+ 0.654334f, 0.654406f, 0.654479f, 0.654551f, 0.654624f, 0.654696f, 0.654769f, 0.654841f,
+ 0.654913f, 0.654986f, 0.655058f, 0.655131f, 0.655203f, 0.655276f, 0.655348f, 0.655420f,
+ 0.655493f, 0.655565f, 0.655638f, 0.655710f, 0.655782f, 0.655855f, 0.655927f, 0.656000f,
+ 0.656072f, 0.656144f, 0.656217f, 0.656289f, 0.656361f, 0.656434f, 0.656506f, 0.656578f,
+ 0.656651f, 0.656723f, 0.656795f, 0.656867f, 0.656940f, 0.657012f, 0.657084f, 0.657157f,
+ 0.657229f, 0.657301f, 0.657373f, 0.657446f, 0.657518f, 0.657590f, 0.657662f, 0.657734f,
+ 0.657807f, 0.657879f, 0.657951f, 0.658023f, 0.658095f, 0.658168f, 0.658240f, 0.658312f,
+ 0.658384f, 0.658456f, 0.658529f, 0.658601f, 0.658673f, 0.658745f, 0.658817f, 0.658889f,
+ 0.658961f, 0.659033f, 0.659105f, 0.659178f, 0.659250f, 0.659322f, 0.659394f, 0.659466f,
+ 0.659538f, 0.659610f, 0.659682f, 0.659754f, 0.659826f, 0.659898f, 0.659970f, 0.660042f,
+ 0.660114f, 0.660186f, 0.660258f, 0.660330f, 0.660402f, 0.660474f, 0.660546f, 0.660618f,
+ 0.660690f, 0.660762f, 0.660834f, 0.660906f, 0.660978f, 0.661050f, 0.661122f, 0.661194f,
+ 0.661266f, 0.661338f, 0.661410f, 0.661482f, 0.661553f, 0.661625f, 0.661697f, 0.661769f,
+ 0.661841f, 0.661913f, 0.661985f, 0.662057f, 0.662128f, 0.662200f, 0.662272f, 0.662344f,
+ 0.662416f, 0.662488f, 0.662559f, 0.662631f, 0.662703f, 0.662775f, 0.662847f, 0.662918f,
+ 0.662990f, 0.663062f, 0.663134f, 0.663205f, 0.663277f, 0.663349f, 0.663421f, 0.663492f,
+ 0.663564f, 0.663636f, 0.663708f, 0.663779f, 0.663851f, 0.663923f, 0.663994f, 0.664066f,
+ 0.664138f, 0.664209f, 0.664281f, 0.664353f, 0.664424f, 0.664496f, 0.664568f, 0.664639f,
+ 0.664711f, 0.664783f, 0.664854f, 0.664926f, 0.664997f, 0.665069f, 0.665141f, 0.665212f,
+ 0.665284f, 0.665355f, 0.665427f, 0.665498f, 0.665570f, 0.665642f, 0.665713f, 0.665785f,
+ 0.665856f, 0.665928f, 0.665999f, 0.666071f, 0.666142f, 0.666214f, 0.666285f, 0.666357f,
+ 0.666428f, 0.666500f, 0.666571f, 0.666643f, 0.666714f, 0.666786f, 0.666857f, 0.666928f,
+ 0.667000f, 0.667071f, 0.667143f, 0.667214f, 0.667286f, 0.667357f, 0.667428f, 0.667500f,
+ 0.667571f, 0.667643f, 0.667714f, 0.667785f, 0.667857f, 0.667928f, 0.667999f, 0.668071f,
+ 0.668142f, 0.668213f, 0.668285f, 0.668356f, 0.668427f, 0.668499f, 0.668570f, 0.668641f,
+ 0.668712f, 0.668784f, 0.668855f, 0.668926f, 0.668998f, 0.669069f, 0.669140f, 0.669211f,
+ 0.669283f, 0.669354f, 0.669425f, 0.669496f, 0.669567f, 0.669639f, 0.669710f, 0.669781f,
+ 0.669852f, 0.669923f, 0.669995f, 0.670066f, 0.670137f, 0.670208f, 0.670279f, 0.670350f,
+ 0.670422f, 0.670493f, 0.670564f, 0.670635f, 0.670706f, 0.670777f, 0.670848f, 0.670919f,
+ 0.670990f, 0.671062f, 0.671133f, 0.671204f, 0.671275f, 0.671346f, 0.671417f, 0.671488f,
+ 0.671559f, 0.671630f, 0.671701f, 0.671772f, 0.671843f, 0.671914f, 0.671985f, 0.672056f,
+ 0.672127f, 0.672198f, 0.672269f, 0.672340f, 0.672411f, 0.672482f, 0.672553f, 0.672624f,
+ 0.672695f, 0.672766f, 0.672837f, 0.672908f, 0.672978f, 0.673049f, 0.673120f, 0.673191f,
+ 0.673262f, 0.673333f, 0.673404f, 0.673475f, 0.673546f, 0.673616f, 0.673687f, 0.673758f,
+ 0.673829f, 0.673900f, 0.673971f, 0.674042f, 0.674112f, 0.674183f, 0.674254f, 0.674325f,
+ 0.674396f, 0.674466f, 0.674537f, 0.674608f, 0.674679f, 0.674749f, 0.674820f, 0.674891f,
+ 0.674962f, 0.675032f, 0.675103f, 0.675174f, 0.675245f, 0.675315f, 0.675386f, 0.675457f,
+ 0.675527f, 0.675598f, 0.675669f, 0.675739f, 0.675810f, 0.675881f, 0.675951f, 0.676022f,
+ 0.676093f, 0.676163f, 0.676234f, 0.676305f, 0.676375f, 0.676446f, 0.676516f, 0.676587f,
+ 0.676658f, 0.676728f, 0.676799f, 0.676869f, 0.676940f, 0.677011f, 0.677081f, 0.677152f,
+ 0.677222f, 0.677293f, 0.677363f, 0.677434f, 0.677504f, 0.677575f, 0.677645f, 0.677716f,
+ 0.677786f, 0.677857f, 0.677927f, 0.677998f, 0.678068f, 0.678139f, 0.678209f, 0.678280f,
+ 0.678350f, 0.678420f, 0.678491f, 0.678561f, 0.678632f, 0.678702f, 0.678773f, 0.678843f,
+ 0.678913f, 0.678984f, 0.679054f, 0.679125f, 0.679195f, 0.679265f, 0.679336f, 0.679406f,
+ 0.679476f, 0.679547f, 0.679617f, 0.679687f, 0.679758f, 0.679828f, 0.679898f, 0.679969f,
+ 0.680039f, 0.680109f, 0.680179f, 0.680250f, 0.680320f, 0.680390f, 0.680461f, 0.680531f,
+ 0.680601f, 0.680671f, 0.680741f, 0.680812f, 0.680882f, 0.680952f, 0.681022f, 0.681093f,
+ 0.681163f, 0.681233f, 0.681303f, 0.681373f, 0.681443f, 0.681514f, 0.681584f, 0.681654f,
+ 0.681724f, 0.681794f, 0.681864f, 0.681934f, 0.682005f, 0.682075f, 0.682145f, 0.682215f,
+ 0.682285f, 0.682355f, 0.682425f, 0.682495f, 0.682565f, 0.682635f, 0.682705f, 0.682775f,
+ 0.682846f, 0.682916f, 0.682986f, 0.683056f, 0.683126f, 0.683196f, 0.683266f, 0.683336f,
+ 0.683406f, 0.683476f, 0.683546f, 0.683616f, 0.683686f, 0.683756f, 0.683825f, 0.683895f,
+ 0.683965f, 0.684035f, 0.684105f, 0.684175f, 0.684245f, 0.684315f, 0.684385f, 0.684455f,
+ 0.684525f, 0.684595f, 0.684664f, 0.684734f, 0.684804f, 0.684874f, 0.684944f, 0.685014f,
+ 0.685084f, 0.685153f, 0.685223f, 0.685293f, 0.685363f, 0.685433f, 0.685503f, 0.685572f,
+ 0.685642f, 0.685712f, 0.685782f, 0.685852f, 0.685921f, 0.685991f, 0.686061f, 0.686131f,
+ 0.686200f, 0.686270f, 0.686340f, 0.686409f, 0.686479f, 0.686549f, 0.686619f, 0.686688f,
+ 0.686758f, 0.686828f, 0.686897f, 0.686967f, 0.687037f, 0.687106f, 0.687176f, 0.687246f,
+ 0.687315f, 0.687385f, 0.687455f, 0.687524f, 0.687594f, 0.687663f, 0.687733f, 0.687803f,
+ 0.687872f, 0.687942f, 0.688011f, 0.688081f, 0.688151f, 0.688220f, 0.688290f, 0.688359f,
+ 0.688429f, 0.688498f, 0.688568f, 0.688637f, 0.688707f, 0.688776f, 0.688846f, 0.688915f,
+ 0.688985f, 0.689054f, 0.689124f, 0.689193f, 0.689263f, 0.689332f, 0.689402f, 0.689471f,
+ 0.689541f, 0.689610f, 0.689679f, 0.689749f, 0.689818f, 0.689888f, 0.689957f, 0.690026f,
+ 0.690096f, 0.690165f, 0.690235f, 0.690304f, 0.690373f, 0.690443f, 0.690512f, 0.690581f,
+ 0.690651f, 0.690720f, 0.690789f, 0.690859f, 0.690928f, 0.690997f, 0.691067f, 0.691136f,
+ 0.691205f, 0.691274f, 0.691344f, 0.691413f, 0.691482f, 0.691552f, 0.691621f, 0.691690f,
+ 0.691759f, 0.691828f, 0.691898f, 0.691967f, 0.692036f, 0.692105f, 0.692175f, 0.692244f,
+ 0.692313f, 0.692382f, 0.692451f, 0.692520f, 0.692590f, 0.692659f, 0.692728f, 0.692797f,
+ 0.692866f, 0.692935f, 0.693004f, 0.693074f, 0.693143f, 0.693212f, 0.693281f, 0.693350f,
+ 0.693419f, 0.693488f, 0.693557f, 0.693626f, 0.693695f, 0.693764f, 0.693833f, 0.693902f,
+ 0.693971f, 0.694040f, 0.694109f, 0.694179f, 0.694248f, 0.694317f, 0.694386f, 0.694454f,
+ 0.694524f, 0.694592f, 0.694661f, 0.694730f, 0.694799f, 0.694868f, 0.694937f, 0.695006f,
+ 0.695075f, 0.695144f, 0.695213f, 0.695282f, 0.695351f, 0.695420f, 0.695489f, 0.695557f,
+ 0.695626f, 0.695695f, 0.695764f, 0.695833f, 0.695902f, 0.695971f, 0.696039f, 0.696108f,
+ 0.696177f, 0.696246f, 0.696315f, 0.696384f, 0.696452f, 0.696521f, 0.696590f, 0.696659f,
+ 0.696728f, 0.696796f, 0.696865f, 0.696934f, 0.697003f, 0.697071f, 0.697140f, 0.697209f,
+ 0.697277f, 0.697346f, 0.697415f, 0.697484f, 0.697552f, 0.697621f, 0.697690f, 0.697758f,
+ 0.697827f, 0.697896f, 0.697964f, 0.698033f, 0.698102f, 0.698170f, 0.698239f, 0.698308f,
+ 0.698376f, 0.698445f, 0.698513f, 0.698582f, 0.698651f, 0.698719f, 0.698788f, 0.698856f,
+ 0.698925f, 0.698994f, 0.699062f, 0.699131f, 0.699199f, 0.699268f, 0.699336f, 0.699405f,
+ 0.699473f, 0.699542f, 0.699610f, 0.699679f, 0.699747f, 0.699816f, 0.699884f, 0.699953f,
+ 0.700021f, 0.700090f, 0.700158f, 0.700227f, 0.700295f, 0.700364f, 0.700432f, 0.700500f,
+ 0.700569f, 0.700637f, 0.700706f, 0.700774f, 0.700842f, 0.700911f, 0.700979f, 0.701048f,
+ 0.701116f, 0.701184f, 0.701253f, 0.701321f, 0.701389f, 0.701458f, 0.701526f, 0.701594f,
+ 0.701663f, 0.701731f, 0.701799f, 0.701868f, 0.701936f, 0.702004f, 0.702072f, 0.702141f,
+ 0.702209f, 0.702277f, 0.702345f, 0.702414f, 0.702482f, 0.702550f, 0.702618f, 0.702687f,
+ 0.702755f, 0.702823f, 0.702891f, 0.702959f, 0.703028f, 0.703096f, 0.703164f, 0.703232f,
+ 0.703300f, 0.703368f, 0.703436f, 0.703505f, 0.703573f, 0.703641f, 0.703709f, 0.703777f,
+ 0.703845f, 0.703913f, 0.703981f, 0.704050f, 0.704118f, 0.704186f, 0.704254f, 0.704322f,
+ 0.704390f, 0.704458f, 0.704526f, 0.704594f, 0.704662f, 0.704730f, 0.704798f, 0.704866f,
+ 0.704934f, 0.705002f, 0.705070f, 0.705138f, 0.705206f, 0.705274f, 0.705342f, 0.705410f,
+ 0.705478f, 0.705546f, 0.705614f, 0.705682f, 0.705750f, 0.705818f, 0.705885f, 0.705953f,
+ 0.706021f, 0.706089f, 0.706157f, 0.706225f, 0.706293f, 0.706361f, 0.706429f, 0.706496f,
+ 0.706564f, 0.706632f, 0.706700f, 0.706768f, 0.706836f, 0.706903f, 0.706971f, 0.707039f,
+ 0.707107f, 0.707175f, 0.707242f, 0.707310f, 0.707378f, 0.707446f, 0.707513f, 0.707581f,
+ 0.707649f, 0.707717f, 0.707784f, 0.707852f, 0.707920f, 0.707988f, 0.708055f, 0.708123f,
+ 0.708191f, 0.708258f, 0.708326f, 0.708394f, 0.708461f, 0.708529f, 0.708597f, 0.708664f,
+ 0.708732f, 0.708800f, 0.708867f, 0.708935f, 0.709002f, 0.709070f, 0.709138f, 0.709205f,
+ 0.709273f, 0.709340f, 0.709408f, 0.709476f, 0.709543f, 0.709611f, 0.709678f, 0.709746f,
+ 0.709813f, 0.709881f, 0.709948f, 0.710016f, 0.710083f, 0.710151f, 0.710218f, 0.710286f,
+ 0.710353f, 0.710421f, 0.710488f, 0.710556f, 0.710623f, 0.710691f, 0.710758f, 0.710826f,
+ 0.710893f, 0.710960f, 0.711028f, 0.711095f, 0.711163f, 0.711230f, 0.711297f, 0.711365f,
+ 0.711432f, 0.711500f, 0.711567f, 0.711634f, 0.711702f, 0.711769f, 0.711836f, 0.711904f,
+ 0.711971f, 0.712038f, 0.712106f, 0.712173f, 0.712240f, 0.712308f, 0.712375f, 0.712442f,
+ 0.712509f, 0.712577f, 0.712644f, 0.712711f, 0.712778f, 0.712846f, 0.712913f, 0.712980f,
+ 0.713047f, 0.713115f, 0.713182f, 0.713249f, 0.713316f, 0.713383f, 0.713451f, 0.713518f,
+ 0.713585f, 0.713652f, 0.713719f, 0.713786f, 0.713853f, 0.713921f, 0.713988f, 0.714055f,
+ 0.714122f, 0.714189f, 0.714256f, 0.714323f, 0.714390f, 0.714457f, 0.714525f, 0.714592f,
+ 0.714659f, 0.714726f, 0.714793f, 0.714860f, 0.714927f, 0.714994f, 0.715061f, 0.715128f,
+ 0.715195f, 0.715262f, 0.715329f, 0.715396f, 0.715463f, 0.715530f, 0.715597f, 0.715664f,
+ 0.715731f, 0.715798f, 0.715865f, 0.715932f, 0.715999f, 0.716066f, 0.716132f, 0.716199f,
+ 0.716266f, 0.716333f, 0.716400f, 0.716467f, 0.716534f, 0.716601f, 0.716668f, 0.716734f,
+ 0.716801f, 0.716868f, 0.716935f, 0.717002f, 0.717069f, 0.717135f, 0.717202f, 0.717269f,
+ 0.717336f, 0.717403f, 0.717469f, 0.717536f, 0.717603f, 0.717670f, 0.717737f, 0.717803f,
+ 0.717870f, 0.717937f, 0.718004f, 0.718070f, 0.718137f, 0.718204f, 0.718270f, 0.718337f,
+ 0.718404f, 0.718471f, 0.718537f, 0.718604f, 0.718670f, 0.718737f, 0.718804f, 0.718870f,
+ 0.718937f, 0.719004f, 0.719070f, 0.719137f, 0.719204f, 0.719270f, 0.719337f, 0.719403f,
+ 0.719470f, 0.719537f, 0.719603f, 0.719670f, 0.719736f, 0.719803f, 0.719869f, 0.719936f,
+ 0.720003f, 0.720069f, 0.720136f, 0.720202f, 0.720269f, 0.720335f, 0.720402f, 0.720468f,
+ 0.720535f, 0.720601f, 0.720668f, 0.720734f, 0.720800f, 0.720867f, 0.720933f, 0.721000f,
+ 0.721066f, 0.721133f, 0.721199f, 0.721265f, 0.721332f, 0.721398f, 0.721465f, 0.721531f,
+ 0.721597f, 0.721664f, 0.721730f, 0.721797f, 0.721863f, 0.721929f, 0.721996f, 0.722062f,
+ 0.722128f, 0.722194f, 0.722261f, 0.722327f, 0.722393f, 0.722460f, 0.722526f, 0.722592f,
+ 0.722659f, 0.722725f, 0.722791f, 0.722857f, 0.722924f, 0.722990f, 0.723056f, 0.723122f,
+ 0.723188f, 0.723255f, 0.723321f, 0.723387f, 0.723453f, 0.723520f, 0.723586f, 0.723652f,
+ 0.723718f, 0.723784f, 0.723850f, 0.723916f, 0.723983f, 0.724049f, 0.724115f, 0.724181f,
+ 0.724247f, 0.724313f, 0.724379f, 0.724445f, 0.724511f, 0.724578f, 0.724644f, 0.724710f,
+ 0.724776f, 0.724842f, 0.724908f, 0.724974f, 0.725040f, 0.725106f, 0.725172f, 0.725238f,
+ 0.725304f, 0.725370f, 0.725436f, 0.725502f, 0.725568f, 0.725634f, 0.725700f, 0.725766f,
+ 0.725832f, 0.725898f, 0.725964f, 0.726030f, 0.726095f, 0.726161f, 0.726227f, 0.726293f,
+ 0.726359f, 0.726425f, 0.726491f, 0.726557f, 0.726623f, 0.726689f, 0.726754f, 0.726820f,
+ 0.726886f, 0.726952f, 0.727018f, 0.727084f, 0.727149f, 0.727215f, 0.727281f, 0.727347f,
+ 0.727413f, 0.727478f, 0.727544f, 0.727610f, 0.727676f, 0.727741f, 0.727807f, 0.727873f,
+ 0.727939f, 0.728004f, 0.728070f, 0.728136f, 0.728202f, 0.728267f, 0.728333f, 0.728399f,
+ 0.728464f, 0.728530f, 0.728596f, 0.728661f, 0.728727f, 0.728793f, 0.728858f, 0.728924f,
+ 0.728990f, 0.729055f, 0.729121f, 0.729186f, 0.729252f, 0.729318f, 0.729383f, 0.729449f,
+ 0.729514f, 0.729580f, 0.729646f, 0.729711f, 0.729777f, 0.729842f, 0.729908f, 0.729973f,
+ 0.730039f, 0.730104f, 0.730170f, 0.730235f, 0.730301f, 0.730366f, 0.730432f, 0.730497f,
+ 0.730563f, 0.730628f, 0.730694f, 0.730759f, 0.730825f, 0.730890f, 0.730955f, 0.731021f,
+ 0.731086f, 0.731152f, 0.731217f, 0.731282f, 0.731348f, 0.731413f, 0.731479f, 0.731544f,
+ 0.731609f, 0.731675f, 0.731740f, 0.731805f, 0.731871f, 0.731936f, 0.732001f, 0.732067f,
+ 0.732132f, 0.732197f, 0.732263f, 0.732328f, 0.732393f, 0.732458f, 0.732524f, 0.732589f,
+ 0.732654f, 0.732720f, 0.732785f, 0.732850f, 0.732915f, 0.732980f, 0.733046f, 0.733111f,
+ 0.733176f, 0.733241f, 0.733306f, 0.733372f, 0.733437f, 0.733502f, 0.733567f, 0.733632f,
+ 0.733697f, 0.733763f, 0.733828f, 0.733893f, 0.733958f, 0.734023f, 0.734088f, 0.734153f,
+ 0.734218f, 0.734283f, 0.734349f, 0.734414f, 0.734479f, 0.734544f, 0.734609f, 0.734674f,
+ 0.734739f, 0.734804f, 0.734869f, 0.734934f, 0.734999f, 0.735064f, 0.735129f, 0.735194f,
+ 0.735259f, 0.735324f, 0.735389f, 0.735454f, 0.735519f, 0.735584f, 0.735649f, 0.735714f,
+ 0.735779f, 0.735844f, 0.735908f, 0.735973f, 0.736038f, 0.736103f, 0.736168f, 0.736233f,
+ 0.736298f, 0.736363f, 0.736428f, 0.736492f, 0.736557f, 0.736622f, 0.736687f, 0.736752f,
+ 0.736817f, 0.736881f, 0.736946f, 0.737011f, 0.737076f, 0.737141f, 0.737205f, 0.737270f,
+ 0.737335f, 0.737400f, 0.737464f, 0.737529f, 0.737594f, 0.737659f, 0.737723f, 0.737788f,
+ 0.737853f, 0.737918f, 0.737982f, 0.738047f, 0.738112f, 0.738176f, 0.738241f, 0.738306f,
+ 0.738370f, 0.738435f, 0.738500f, 0.738564f, 0.738629f, 0.738693f, 0.738758f, 0.738823f,
+ 0.738887f, 0.738952f, 0.739017f, 0.739081f, 0.739146f, 0.739210f, 0.739275f, 0.739339f,
+ 0.739404f, 0.739468f, 0.739533f, 0.739598f, 0.739662f, 0.739727f, 0.739791f, 0.739856f,
+ 0.739920f, 0.739985f, 0.740049f, 0.740114f, 0.740178f, 0.740242f, 0.740307f, 0.740371f,
+ 0.740436f, 0.740500f, 0.740565f, 0.740629f, 0.740694f, 0.740758f, 0.740822f, 0.740887f,
+ 0.740951f, 0.741015f, 0.741080f, 0.741144f, 0.741209f, 0.741273f, 0.741337f, 0.741402f,
+ 0.741466f, 0.741530f, 0.741595f, 0.741659f, 0.741723f, 0.741788f, 0.741852f, 0.741916f,
+ 0.741980f, 0.742045f, 0.742109f, 0.742173f, 0.742237f, 0.742302f, 0.742366f, 0.742430f,
+ 0.742494f, 0.742559f, 0.742623f, 0.742687f, 0.742751f, 0.742815f, 0.742880f, 0.742944f,
+ 0.743008f, 0.743072f, 0.743136f, 0.743200f, 0.743265f, 0.743329f, 0.743393f, 0.743457f,
+ 0.743521f, 0.743585f, 0.743649f, 0.743713f, 0.743777f, 0.743842f, 0.743906f, 0.743970f,
+ 0.744034f, 0.744098f, 0.744162f, 0.744226f, 0.744290f, 0.744354f, 0.744418f, 0.744482f,
+ 0.744546f, 0.744610f, 0.744674f, 0.744738f, 0.744802f, 0.744866f, 0.744930f, 0.744994f,
+ 0.745058f, 0.745122f, 0.745186f, 0.745250f, 0.745314f, 0.745377f, 0.745441f, 0.745505f,
+ 0.745569f, 0.745633f, 0.745697f, 0.745761f, 0.745825f, 0.745889f, 0.745952f, 0.746016f,
+ 0.746080f, 0.746144f, 0.746208f, 0.746272f, 0.746335f, 0.746399f, 0.746463f, 0.746527f,
+ 0.746591f, 0.746654f, 0.746718f, 0.746782f, 0.746846f, 0.746909f, 0.746973f, 0.747037f,
+ 0.747101f, 0.747164f, 0.747228f, 0.747292f, 0.747355f, 0.747419f, 0.747483f, 0.747547f,
+ 0.747610f, 0.747674f, 0.747738f, 0.747801f, 0.747865f, 0.747929f, 0.747992f, 0.748056f,
+ 0.748119f, 0.748183f, 0.748247f, 0.748310f, 0.748374f, 0.748437f, 0.748501f, 0.748565f,
+ 0.748628f, 0.748692f, 0.748755f, 0.748819f, 0.748882f, 0.748946f, 0.749009f, 0.749073f,
+ 0.749136f, 0.749200f, 0.749263f, 0.749327f, 0.749390f, 0.749454f, 0.749517f, 0.749581f,
+ 0.749644f, 0.749708f, 0.749771f, 0.749835f, 0.749898f, 0.749961f, 0.750025f, 0.750088f,
+ 0.750152f, 0.750215f, 0.750278f, 0.750342f, 0.750405f, 0.750469f, 0.750532f, 0.750595f,
+ 0.750659f, 0.750722f, 0.750785f, 0.750849f, 0.750912f, 0.750975f, 0.751039f, 0.751102f,
+ 0.751165f, 0.751228f, 0.751292f, 0.751355f, 0.751418f, 0.751481f, 0.751545f, 0.751608f,
+ 0.751671f, 0.751734f, 0.751798f, 0.751861f, 0.751924f, 0.751987f, 0.752050f, 0.752114f,
+ 0.752177f, 0.752240f, 0.752303f, 0.752366f, 0.752429f, 0.752493f, 0.752556f, 0.752619f,
+ 0.752682f, 0.752745f, 0.752808f, 0.752871f, 0.752934f, 0.752998f, 0.753061f, 0.753124f,
+ 0.753187f, 0.753250f, 0.753313f, 0.753376f, 0.753439f, 0.753502f, 0.753565f, 0.753628f,
+ 0.753691f, 0.753754f, 0.753817f, 0.753880f, 0.753943f, 0.754006f, 0.754069f, 0.754132f,
+ 0.754195f, 0.754258f, 0.754321f, 0.754384f, 0.754447f, 0.754510f, 0.754573f, 0.754636f,
+ 0.754698f, 0.754761f, 0.754824f, 0.754887f, 0.754950f, 0.755013f, 0.755076f, 0.755139f,
+ 0.755201f, 0.755264f, 0.755327f, 0.755390f, 0.755453f, 0.755516f, 0.755578f, 0.755641f,
+ 0.755704f, 0.755767f, 0.755829f, 0.755892f, 0.755955f, 0.756018f, 0.756081f, 0.756143f,
+ 0.756206f, 0.756269f, 0.756331f, 0.756394f, 0.756457f, 0.756520f, 0.756582f, 0.756645f,
+ 0.756708f, 0.756770f, 0.756833f, 0.756896f, 0.756958f, 0.757021f, 0.757084f, 0.757146f,
+ 0.757209f, 0.757271f, 0.757334f, 0.757397f, 0.757459f, 0.757522f, 0.757584f, 0.757647f,
+ 0.757710f, 0.757772f, 0.757835f, 0.757897f, 0.757960f, 0.758022f, 0.758085f, 0.758147f,
+ 0.758210f, 0.758272f, 0.758335f, 0.758397f, 0.758460f, 0.758522f, 0.758585f, 0.758647f,
+ 0.758710f, 0.758772f, 0.758835f, 0.758897f, 0.758960f, 0.759022f, 0.759084f, 0.759147f,
+ 0.759209f, 0.759272f, 0.759334f, 0.759396f, 0.759459f, 0.759521f, 0.759583f, 0.759646f,
+ 0.759708f, 0.759771f, 0.759833f, 0.759895f, 0.759957f, 0.760020f, 0.760082f, 0.760144f,
+ 0.760207f, 0.760269f, 0.760331f, 0.760394f, 0.760456f, 0.760518f, 0.760580f, 0.760643f,
+ 0.760705f, 0.760767f, 0.760829f, 0.760891f, 0.760954f, 0.761016f, 0.761078f, 0.761140f,
+ 0.761202f, 0.761265f, 0.761327f, 0.761389f, 0.761451f, 0.761513f, 0.761575f, 0.761637f,
+ 0.761700f, 0.761762f, 0.761824f, 0.761886f, 0.761948f, 0.762010f, 0.762072f, 0.762134f,
+ 0.762196f, 0.762258f, 0.762320f, 0.762382f, 0.762444f, 0.762507f, 0.762569f, 0.762631f,
+ 0.762693f, 0.762755f, 0.762817f, 0.762879f, 0.762941f, 0.763003f, 0.763065f, 0.763126f,
+ 0.763188f, 0.763250f, 0.763312f, 0.763374f, 0.763436f, 0.763498f, 0.763560f, 0.763622f,
+ 0.763684f, 0.763746f, 0.763808f, 0.763869f, 0.763931f, 0.763993f, 0.764055f, 0.764117f,
+ 0.764179f, 0.764241f, 0.764302f, 0.764364f, 0.764426f, 0.764488f, 0.764550f, 0.764611f,
+ 0.764673f, 0.764735f, 0.764797f, 0.764859f, 0.764920f, 0.764982f, 0.765044f, 0.765106f,
+ 0.765167f, 0.765229f, 0.765291f, 0.765352f, 0.765414f, 0.765476f, 0.765538f, 0.765599f,
+ 0.765661f, 0.765723f, 0.765784f, 0.765846f, 0.765907f, 0.765969f, 0.766031f, 0.766092f,
+ 0.766154f, 0.766216f, 0.766277f, 0.766339f, 0.766400f, 0.766462f, 0.766524f, 0.766585f,
+ 0.766647f, 0.766708f, 0.766770f, 0.766831f, 0.766893f, 0.766954f, 0.767016f, 0.767077f,
+ 0.767139f, 0.767200f, 0.767262f, 0.767323f, 0.767385f, 0.767446f, 0.767508f, 0.767569f,
+ 0.767631f, 0.767692f, 0.767754f, 0.767815f, 0.767876f, 0.767938f, 0.767999f, 0.768061f,
+ 0.768122f, 0.768183f, 0.768245f, 0.768306f, 0.768368f, 0.768429f, 0.768490f, 0.768552f,
+ 0.768613f, 0.768674f, 0.768736f, 0.768797f, 0.768858f, 0.768919f, 0.768981f, 0.769042f,
+ 0.769103f, 0.769165f, 0.769226f, 0.769287f, 0.769348f, 0.769410f, 0.769471f, 0.769532f,
+ 0.769593f, 0.769655f, 0.769716f, 0.769777f, 0.769838f, 0.769899f, 0.769961f, 0.770022f,
+ 0.770083f, 0.770144f, 0.770205f, 0.770266f, 0.770327f, 0.770389f, 0.770450f, 0.770511f,
+ 0.770572f, 0.770633f, 0.770694f, 0.770755f, 0.770816f, 0.770877f, 0.770938f, 0.770999f,
+ 0.771061f, 0.771122f, 0.771183f, 0.771244f, 0.771305f, 0.771366f, 0.771427f, 0.771488f,
+ 0.771549f, 0.771610f, 0.771671f, 0.771732f, 0.771793f, 0.771854f, 0.771915f, 0.771975f,
+ 0.772036f, 0.772097f, 0.772158f, 0.772219f, 0.772280f, 0.772341f, 0.772402f, 0.772463f,
+ 0.772524f, 0.772584f, 0.772645f, 0.772706f, 0.772767f, 0.772828f, 0.772889f, 0.772950f,
+ 0.773010f, 0.773071f, 0.773132f, 0.773193f, 0.773254f, 0.773314f, 0.773375f, 0.773436f,
+ 0.773497f, 0.773558f, 0.773618f, 0.773679f, 0.773740f, 0.773801f, 0.773861f, 0.773922f,
+ 0.773983f, 0.774043f, 0.774104f, 0.774165f, 0.774225f, 0.774286f, 0.774347f, 0.774407f,
+ 0.774468f, 0.774529f, 0.774589f, 0.774650f, 0.774711f, 0.774771f, 0.774832f, 0.774893f,
+ 0.774953f, 0.775014f, 0.775074f, 0.775135f, 0.775195f, 0.775256f, 0.775317f, 0.775377f,
+ 0.775438f, 0.775498f, 0.775559f, 0.775619f, 0.775680f, 0.775740f, 0.775801f, 0.775861f,
+ 0.775922f, 0.775982f, 0.776043f, 0.776103f, 0.776164f, 0.776224f, 0.776284f, 0.776345f,
+ 0.776405f, 0.776466f, 0.776526f, 0.776587f, 0.776647f, 0.776707f, 0.776768f, 0.776828f,
+ 0.776888f, 0.776949f, 0.777009f, 0.777070f, 0.777130f, 0.777190f, 0.777251f, 0.777311f,
+ 0.777371f, 0.777431f, 0.777492f, 0.777552f, 0.777612f, 0.777673f, 0.777733f, 0.777793f,
+ 0.777853f, 0.777914f, 0.777974f, 0.778034f, 0.778094f, 0.778155f, 0.778215f, 0.778275f,
+ 0.778335f, 0.778395f, 0.778456f, 0.778516f, 0.778576f, 0.778636f, 0.778696f, 0.778756f,
+ 0.778817f, 0.778877f, 0.778937f, 0.778997f, 0.779057f, 0.779117f, 0.779177f, 0.779237f,
+ 0.779297f, 0.779357f, 0.779418f, 0.779478f, 0.779538f, 0.779598f, 0.779658f, 0.779718f,
+ 0.779778f, 0.779838f, 0.779898f, 0.779958f, 0.780018f, 0.780078f, 0.780138f, 0.780198f,
+ 0.780258f, 0.780318f, 0.780378f, 0.780438f, 0.780498f, 0.780557f, 0.780617f, 0.780677f,
+ 0.780737f, 0.780797f, 0.780857f, 0.780917f, 0.780977f, 0.781037f, 0.781097f, 0.781156f,
+ 0.781216f, 0.781276f, 0.781336f, 0.781396f, 0.781456f, 0.781515f, 0.781575f, 0.781635f,
+ 0.781695f, 0.781755f, 0.781814f, 0.781874f, 0.781934f, 0.781994f, 0.782053f, 0.782113f,
+ 0.782173f, 0.782233f, 0.782292f, 0.782352f, 0.782412f, 0.782472f, 0.782531f, 0.782591f,
+ 0.782651f, 0.782710f, 0.782770f, 0.782830f, 0.782889f, 0.782949f, 0.783009f, 0.783068f,
+ 0.783128f, 0.783187f, 0.783247f, 0.783307f, 0.783366f, 0.783426f, 0.783485f, 0.783545f,
+ 0.783605f, 0.783664f, 0.783724f, 0.783783f, 0.783843f, 0.783902f, 0.783962f, 0.784021f,
+ 0.784081f, 0.784140f, 0.784200f, 0.784259f, 0.784319f, 0.784378f, 0.784438f, 0.784497f,
+ 0.784557f, 0.784616f, 0.784675f, 0.784735f, 0.784794f, 0.784854f, 0.784913f, 0.784973f,
+ 0.785032f, 0.785091f, 0.785151f, 0.785210f, 0.785269f, 0.785329f, 0.785388f, 0.785447f,
+ 0.785507f, 0.785566f, 0.785625f, 0.785685f, 0.785744f, 0.785803f, 0.785863f, 0.785922f,
+ 0.785981f, 0.786041f, 0.786100f, 0.786159f, 0.786218f, 0.786278f, 0.786337f, 0.786396f,
+ 0.786455f, 0.786514f, 0.786574f, 0.786633f, 0.786692f, 0.786751f, 0.786810f, 0.786870f,
+ 0.786929f, 0.786988f, 0.787047f, 0.787106f, 0.787165f, 0.787224f, 0.787284f, 0.787343f,
+ 0.787402f, 0.787461f, 0.787520f, 0.787579f, 0.787638f, 0.787697f, 0.787756f, 0.787815f,
+ 0.787874f, 0.787933f, 0.787992f, 0.788051f, 0.788110f, 0.788169f, 0.788228f, 0.788287f,
+ 0.788346f, 0.788405f, 0.788464f, 0.788523f, 0.788582f, 0.788641f, 0.788700f, 0.788759f,
+ 0.788818f, 0.788877f, 0.788936f, 0.788995f, 0.789054f, 0.789113f, 0.789172f, 0.789230f,
+ 0.789289f, 0.789348f, 0.789407f, 0.789466f, 0.789525f, 0.789584f, 0.789642f, 0.789701f,
+ 0.789760f, 0.789819f, 0.789878f, 0.789936f, 0.789995f, 0.790054f, 0.790113f, 0.790171f,
+ 0.790230f, 0.790289f, 0.790348f, 0.790406f, 0.790465f, 0.790524f, 0.790583f, 0.790641f,
+ 0.790700f, 0.790759f, 0.790817f, 0.790876f, 0.790935f, 0.790993f, 0.791052f, 0.791111f,
+ 0.791169f, 0.791228f, 0.791287f, 0.791345f, 0.791404f, 0.791462f, 0.791521f, 0.791580f,
+ 0.791638f, 0.791697f, 0.791755f, 0.791814f, 0.791872f, 0.791931f, 0.791990f, 0.792048f,
+ 0.792107f, 0.792165f, 0.792224f, 0.792282f, 0.792341f, 0.792399f, 0.792458f, 0.792516f,
+ 0.792575f, 0.792633f, 0.792691f, 0.792750f, 0.792808f, 0.792867f, 0.792925f, 0.792984f,
+ 0.793042f, 0.793100f, 0.793159f, 0.793217f, 0.793276f, 0.793334f, 0.793392f, 0.793451f,
+ 0.793509f, 0.793567f, 0.793626f, 0.793684f, 0.793742f, 0.793801f, 0.793859f, 0.793917f,
+ 0.793975f, 0.794034f, 0.794092f, 0.794150f, 0.794209f, 0.794267f, 0.794325f, 0.794383f,
+ 0.794442f, 0.794500f, 0.794558f, 0.794616f, 0.794674f, 0.794733f, 0.794791f, 0.794849f,
+ 0.794907f, 0.794965f, 0.795023f, 0.795082f, 0.795140f, 0.795198f, 0.795256f, 0.795314f,
+ 0.795372f, 0.795430f, 0.795488f, 0.795547f, 0.795605f, 0.795663f, 0.795721f, 0.795779f,
+ 0.795837f, 0.795895f, 0.795953f, 0.796011f, 0.796069f, 0.796127f, 0.796185f, 0.796243f,
+ 0.796301f, 0.796359f, 0.796417f, 0.796475f, 0.796533f, 0.796591f, 0.796649f, 0.796707f,
+ 0.796765f, 0.796823f, 0.796881f, 0.796939f, 0.796996f, 0.797054f, 0.797112f, 0.797170f,
+ 0.797228f, 0.797286f, 0.797344f, 0.797402f, 0.797459f, 0.797517f, 0.797575f, 0.797633f,
+ 0.797691f, 0.797749f, 0.797806f, 0.797864f, 0.797922f, 0.797980f, 0.798038f, 0.798095f,
+ 0.798153f, 0.798211f, 0.798269f, 0.798326f, 0.798384f, 0.798442f, 0.798500f, 0.798557f,
+ 0.798615f, 0.798673f, 0.798730f, 0.798788f, 0.798846f, 0.798903f, 0.798961f, 0.799019f,
+ 0.799076f, 0.799134f, 0.799192f, 0.799249f, 0.799307f, 0.799365f, 0.799422f, 0.799480f,
+ 0.799537f, 0.799595f, 0.799652f, 0.799710f, 0.799768f, 0.799825f, 0.799883f, 0.799940f,
+ 0.799998f, 0.800055f, 0.800113f, 0.800170f, 0.800228f, 0.800285f, 0.800343f, 0.800400f,
+ 0.800458f, 0.800515f, 0.800573f, 0.800630f, 0.800687f, 0.800745f, 0.800802f, 0.800860f,
+ 0.800917f, 0.800975f, 0.801032f, 0.801089f, 0.801147f, 0.801204f, 0.801261f, 0.801319f,
+ 0.801376f, 0.801434f, 0.801491f, 0.801548f, 0.801606f, 0.801663f, 0.801720f, 0.801777f,
+ 0.801835f, 0.801892f, 0.801949f, 0.802007f, 0.802064f, 0.802121f, 0.802178f, 0.802236f,
+ 0.802293f, 0.802350f, 0.802407f, 0.802464f, 0.802522f, 0.802579f, 0.802636f, 0.802693f,
+ 0.802750f, 0.802808f, 0.802865f, 0.802922f, 0.802979f, 0.803036f, 0.803093f, 0.803150f,
+ 0.803208f, 0.803265f, 0.803322f, 0.803379f, 0.803436f, 0.803493f, 0.803550f, 0.803607f,
+ 0.803664f, 0.803721f, 0.803778f, 0.803835f, 0.803892f, 0.803949f, 0.804006f, 0.804063f,
+ 0.804120f, 0.804177f, 0.804234f, 0.804291f, 0.804348f, 0.804405f, 0.804462f, 0.804519f,
+ 0.804576f, 0.804633f, 0.804690f, 0.804747f, 0.804804f, 0.804861f, 0.804918f, 0.804974f,
+ 0.805031f, 0.805088f, 0.805145f, 0.805202f, 0.805259f, 0.805316f, 0.805372f, 0.805429f,
+ 0.805486f, 0.805543f, 0.805600f, 0.805656f, 0.805713f, 0.805770f, 0.805827f, 0.805884f,
+ 0.805940f, 0.805997f, 0.806054f, 0.806111f, 0.806167f, 0.806224f, 0.806281f, 0.806338f,
+ 0.806394f, 0.806451f, 0.806508f, 0.806564f, 0.806621f, 0.806678f, 0.806734f, 0.806791f,
+ 0.806848f, 0.806904f, 0.806961f, 0.807017f, 0.807074f, 0.807131f, 0.807187f, 0.807244f,
+ 0.807300f, 0.807357f, 0.807414f, 0.807470f, 0.807527f, 0.807583f, 0.807640f, 0.807696f,
+ 0.807753f, 0.807809f, 0.807866f, 0.807922f, 0.807979f, 0.808035f, 0.808092f, 0.808148f,
+ 0.808205f, 0.808261f, 0.808318f, 0.808374f, 0.808430f, 0.808487f, 0.808543f, 0.808600f,
+ 0.808656f, 0.808713f, 0.808769f, 0.808825f, 0.808882f, 0.808938f, 0.808994f, 0.809051f,
+ 0.809107f, 0.809164f, 0.809220f, 0.809276f, 0.809332f, 0.809389f, 0.809445f, 0.809501f,
+ 0.809558f, 0.809614f, 0.809670f, 0.809726f, 0.809783f, 0.809839f, 0.809895f, 0.809951f,
+ 0.810008f, 0.810064f, 0.810120f, 0.810176f, 0.810232f, 0.810289f, 0.810345f, 0.810401f,
+ 0.810457f, 0.810513f, 0.810570f, 0.810626f, 0.810682f, 0.810738f, 0.810794f, 0.810850f,
+ 0.810906f, 0.810962f, 0.811018f, 0.811075f, 0.811131f, 0.811187f, 0.811243f, 0.811299f,
+ 0.811355f, 0.811411f, 0.811467f, 0.811523f, 0.811579f, 0.811635f, 0.811691f, 0.811747f,
+ 0.811803f, 0.811859f, 0.811915f, 0.811971f, 0.812027f, 0.812083f, 0.812139f, 0.812195f,
+ 0.812251f, 0.812307f, 0.812362f, 0.812418f, 0.812474f, 0.812530f, 0.812586f, 0.812642f,
+ 0.812698f, 0.812754f, 0.812809f, 0.812865f, 0.812921f, 0.812977f, 0.813033f, 0.813089f,
+ 0.813144f, 0.813200f, 0.813256f, 0.813312f, 0.813368f, 0.813423f, 0.813479f, 0.813535f,
+ 0.813591f, 0.813646f, 0.813702f, 0.813758f, 0.813814f, 0.813869f, 0.813925f, 0.813981f,
+ 0.814036f, 0.814092f, 0.814148f, 0.814203f, 0.814259f, 0.814315f, 0.814370f, 0.814426f,
+ 0.814482f, 0.814537f, 0.814593f, 0.814648f, 0.814704f, 0.814760f, 0.814815f, 0.814871f,
+ 0.814926f, 0.814982f, 0.815037f, 0.815093f, 0.815149f, 0.815204f, 0.815260f, 0.815315f,
+ 0.815371f, 0.815426f, 0.815482f, 0.815537f, 0.815593f, 0.815648f, 0.815704f, 0.815759f,
+ 0.815814f, 0.815870f, 0.815925f, 0.815981f, 0.816036f, 0.816092f, 0.816147f, 0.816202f,
+ 0.816258f, 0.816313f, 0.816368f, 0.816424f, 0.816479f, 0.816535f, 0.816590f, 0.816645f,
+ 0.816701f, 0.816756f, 0.816811f, 0.816867f, 0.816922f, 0.816977f, 0.817032f, 0.817088f,
+ 0.817143f, 0.817198f, 0.817253f, 0.817309f, 0.817364f, 0.817419f, 0.817474f, 0.817530f,
+ 0.817585f, 0.817640f, 0.817695f, 0.817750f, 0.817806f, 0.817861f, 0.817916f, 0.817971f,
+ 0.818026f, 0.818081f, 0.818137f, 0.818192f, 0.818247f, 0.818302f, 0.818357f, 0.818412f,
+ 0.818467f, 0.818522f, 0.818577f, 0.818632f, 0.818687f, 0.818742f, 0.818798f, 0.818853f,
+ 0.818908f, 0.818963f, 0.819018f, 0.819073f, 0.819128f, 0.819183f, 0.819238f, 0.819293f,
+ 0.819348f, 0.819402f, 0.819457f, 0.819512f, 0.819567f, 0.819622f, 0.819677f, 0.819732f,
+ 0.819787f, 0.819842f, 0.819897f, 0.819952f, 0.820007f, 0.820061f, 0.820116f, 0.820171f,
+ 0.820226f, 0.820281f, 0.820336f, 0.820390f, 0.820445f, 0.820500f, 0.820555f, 0.820610f,
+ 0.820664f, 0.820719f, 0.820774f, 0.820829f, 0.820884f, 0.820938f, 0.820993f, 0.821048f,
+ 0.821102f, 0.821157f, 0.821212f, 0.821267f, 0.821321f, 0.821376f, 0.821431f, 0.821485f,
+ 0.821540f, 0.821595f, 0.821649f, 0.821704f, 0.821759f, 0.821813f, 0.821868f, 0.821922f,
+ 0.821977f, 0.822032f, 0.822086f, 0.822141f, 0.822195f, 0.822250f, 0.822305f, 0.822359f,
+ 0.822414f, 0.822468f, 0.822523f, 0.822577f, 0.822632f, 0.822686f, 0.822741f, 0.822795f,
+ 0.822850f, 0.822904f, 0.822959f, 0.823013f, 0.823068f, 0.823122f, 0.823177f, 0.823231f,
+ 0.823285f, 0.823340f, 0.823394f, 0.823449f, 0.823503f, 0.823557f, 0.823612f, 0.823666f,
+ 0.823721f, 0.823775f, 0.823829f, 0.823884f, 0.823938f, 0.823992f, 0.824047f, 0.824101f,
+ 0.824155f, 0.824209f, 0.824264f, 0.824318f, 0.824372f, 0.824427f, 0.824481f, 0.824535f,
+ 0.824589f, 0.824644f, 0.824698f, 0.824752f, 0.824806f, 0.824860f, 0.824915f, 0.824969f,
+ 0.825023f, 0.825077f, 0.825131f, 0.825185f, 0.825240f, 0.825294f, 0.825348f, 0.825402f,
+ 0.825456f, 0.825510f, 0.825564f, 0.825618f, 0.825673f, 0.825727f, 0.825781f, 0.825835f,
+ 0.825889f, 0.825943f, 0.825997f, 0.826051f, 0.826105f, 0.826159f, 0.826213f, 0.826267f,
+ 0.826321f, 0.826375f, 0.826429f, 0.826483f, 0.826537f, 0.826591f, 0.826645f, 0.826699f,
+ 0.826753f, 0.826807f, 0.826861f, 0.826915f, 0.826968f, 0.827022f, 0.827076f, 0.827130f,
+ 0.827184f, 0.827238f, 0.827292f, 0.827346f, 0.827399f, 0.827453f, 0.827507f, 0.827561f,
+ 0.827615f, 0.827669f, 0.827722f, 0.827776f, 0.827830f, 0.827884f, 0.827938f, 0.827991f,
+ 0.828045f, 0.828099f, 0.828153f, 0.828206f, 0.828260f, 0.828314f, 0.828367f, 0.828421f,
+ 0.828475f, 0.828529f, 0.828582f, 0.828636f, 0.828690f, 0.828743f, 0.828797f, 0.828851f,
+ 0.828904f, 0.828958f, 0.829011f, 0.829065f, 0.829119f, 0.829172f, 0.829226f, 0.829279f,
+ 0.829333f, 0.829386f, 0.829440f, 0.829494f, 0.829547f, 0.829601f, 0.829654f, 0.829708f,
+ 0.829761f, 0.829815f, 0.829868f, 0.829922f, 0.829975f, 0.830029f, 0.830082f, 0.830136f,
+ 0.830189f, 0.830243f, 0.830296f, 0.830349f, 0.830403f, 0.830456f, 0.830510f, 0.830563f,
+ 0.830616f, 0.830670f, 0.830723f, 0.830777f, 0.830830f, 0.830883f, 0.830937f, 0.830990f,
+ 0.831043f, 0.831097f, 0.831150f, 0.831203f, 0.831257f, 0.831310f, 0.831363f, 0.831416f,
+ 0.831470f, 0.831523f, 0.831576f, 0.831629f, 0.831683f, 0.831736f, 0.831789f, 0.831842f,
+ 0.831895f, 0.831949f, 0.832002f, 0.832055f, 0.832108f, 0.832161f, 0.832215f, 0.832268f,
+ 0.832321f, 0.832374f, 0.832427f, 0.832480f, 0.832533f, 0.832586f, 0.832640f, 0.832693f,
+ 0.832746f, 0.832799f, 0.832852f, 0.832905f, 0.832958f, 0.833011f, 0.833064f, 0.833117f,
+ 0.833170f, 0.833223f, 0.833276f, 0.833329f, 0.833382f, 0.833435f, 0.833488f, 0.833541f,
+ 0.833594f, 0.833647f, 0.833700f, 0.833753f, 0.833806f, 0.833859f, 0.833912f, 0.833965f,
+ 0.834018f, 0.834070f, 0.834123f, 0.834176f, 0.834229f, 0.834282f, 0.834335f, 0.834388f,
+ 0.834440f, 0.834493f, 0.834546f, 0.834599f, 0.834652f, 0.834705f, 0.834757f, 0.834810f,
+ 0.834863f, 0.834916f, 0.834968f, 0.835021f, 0.835074f, 0.835127f, 0.835179f, 0.835232f,
+ 0.835285f, 0.835338f, 0.835390f, 0.835443f, 0.835496f, 0.835548f, 0.835601f, 0.835654f,
+ 0.835706f, 0.835759f, 0.835812f, 0.835864f, 0.835917f, 0.835969f, 0.836022f, 0.836075f,
+ 0.836127f, 0.836180f, 0.836232f, 0.836285f, 0.836338f, 0.836390f, 0.836443f, 0.836495f,
+ 0.836548f, 0.836600f, 0.836653f, 0.836705f, 0.836758f, 0.836810f, 0.836863f, 0.836915f,
+ 0.836968f, 0.837020f, 0.837073f, 0.837125f, 0.837178f, 0.837230f, 0.837282f, 0.837335f,
+ 0.837387f, 0.837440f, 0.837492f, 0.837544f, 0.837597f, 0.837649f, 0.837701f, 0.837754f,
+ 0.837806f, 0.837859f, 0.837911f, 0.837963f, 0.838015f, 0.838068f, 0.838120f, 0.838172f,
+ 0.838225f, 0.838277f, 0.838329f, 0.838382f, 0.838434f, 0.838486f, 0.838538f, 0.838591f,
+ 0.838643f, 0.838695f, 0.838747f, 0.838799f, 0.838852f, 0.838904f, 0.838956f, 0.839008f,
+ 0.839060f, 0.839112f, 0.839165f, 0.839217f, 0.839269f, 0.839321f, 0.839373f, 0.839425f,
+ 0.839477f, 0.839529f, 0.839581f, 0.839634f, 0.839686f, 0.839738f, 0.839790f, 0.839842f,
+ 0.839894f, 0.839946f, 0.839998f, 0.840050f, 0.840102f, 0.840154f, 0.840206f, 0.840258f,
+ 0.840310f, 0.840362f, 0.840414f, 0.840466f, 0.840518f, 0.840570f, 0.840622f, 0.840673f,
+ 0.840725f, 0.840777f, 0.840829f, 0.840881f, 0.840933f, 0.840985f, 0.841037f, 0.841089f,
+ 0.841140f, 0.841192f, 0.841244f, 0.841296f, 0.841348f, 0.841400f, 0.841451f, 0.841503f,
+ 0.841555f, 0.841607f, 0.841659f, 0.841710f, 0.841762f, 0.841814f, 0.841866f, 0.841917f,
+ 0.841969f, 0.842021f, 0.842072f, 0.842124f, 0.842176f, 0.842228f, 0.842279f, 0.842331f,
+ 0.842383f, 0.842434f, 0.842486f, 0.842538f, 0.842589f, 0.842641f, 0.842692f, 0.842744f,
+ 0.842796f, 0.842847f, 0.842899f, 0.842950f, 0.843002f, 0.843054f, 0.843105f, 0.843157f,
+ 0.843208f, 0.843260f, 0.843311f, 0.843363f, 0.843414f, 0.843466f, 0.843517f, 0.843569f,
+ 0.843620f, 0.843672f, 0.843723f, 0.843775f, 0.843826f, 0.843878f, 0.843929f, 0.843980f,
+ 0.844032f, 0.844083f, 0.844135f, 0.844186f, 0.844238f, 0.844289f, 0.844340f, 0.844392f,
+ 0.844443f, 0.844494f, 0.844546f, 0.844597f, 0.844648f, 0.844700f, 0.844751f, 0.844802f,
+ 0.844854f, 0.844905f, 0.844956f, 0.845007f, 0.845059f, 0.845110f, 0.845161f, 0.845212f,
+ 0.845264f, 0.845315f, 0.845366f, 0.845417f, 0.845469f, 0.845520f, 0.845571f, 0.845622f,
+ 0.845673f, 0.845724f, 0.845776f, 0.845827f, 0.845878f, 0.845929f, 0.845980f, 0.846031f,
+ 0.846082f, 0.846133f, 0.846185f, 0.846236f, 0.846287f, 0.846338f, 0.846389f, 0.846440f,
+ 0.846491f, 0.846542f, 0.846593f, 0.846644f, 0.846695f, 0.846746f, 0.846797f, 0.846848f,
+ 0.846899f, 0.846950f, 0.847001f, 0.847052f, 0.847103f, 0.847154f, 0.847205f, 0.847256f,
+ 0.847307f, 0.847358f, 0.847408f, 0.847459f, 0.847510f, 0.847561f, 0.847612f, 0.847663f,
+ 0.847714f, 0.847765f, 0.847815f, 0.847866f, 0.847917f, 0.847968f, 0.848019f, 0.848070f,
+ 0.848120f, 0.848171f, 0.848222f, 0.848273f, 0.848323f, 0.848374f, 0.848425f, 0.848476f,
+ 0.848526f, 0.848577f, 0.848628f, 0.848679f, 0.848729f, 0.848780f, 0.848831f, 0.848881f,
+ 0.848932f, 0.848983f, 0.849033f, 0.849084f, 0.849135f, 0.849185f, 0.849236f, 0.849287f,
+ 0.849337f, 0.849388f, 0.849438f, 0.849489f, 0.849540f, 0.849590f, 0.849641f, 0.849691f,
+ 0.849742f, 0.849792f, 0.849843f, 0.849893f, 0.849944f, 0.849994f, 0.850045f, 0.850095f,
+ 0.850146f, 0.850196f, 0.850247f, 0.850297f, 0.850348f, 0.850398f, 0.850449f, 0.850499f,
+ 0.850549f, 0.850600f, 0.850650f, 0.850701f, 0.850751f, 0.850801f, 0.850852f, 0.850902f,
+ 0.850953f, 0.851003f, 0.851053f, 0.851104f, 0.851154f, 0.851204f, 0.851255f, 0.851305f,
+ 0.851355f, 0.851406f, 0.851456f, 0.851506f, 0.851556f, 0.851607f, 0.851657f, 0.851707f,
+ 0.851757f, 0.851808f, 0.851858f, 0.851908f, 0.851958f, 0.852008f, 0.852059f, 0.852109f,
+ 0.852159f, 0.852209f, 0.852259f, 0.852309f, 0.852360f, 0.852410f, 0.852460f, 0.852510f,
+ 0.852560f, 0.852610f, 0.852660f, 0.852710f, 0.852760f, 0.852810f, 0.852861f, 0.852911f,
+ 0.852961f, 0.853011f, 0.853061f, 0.853111f, 0.853161f, 0.853211f, 0.853261f, 0.853311f,
+ 0.853361f, 0.853411f, 0.853461f, 0.853511f, 0.853561f, 0.853611f, 0.853660f, 0.853710f,
+ 0.853760f, 0.853810f, 0.853860f, 0.853910f, 0.853960f, 0.854010f, 0.854060f, 0.854110f,
+ 0.854159f, 0.854209f, 0.854259f, 0.854309f, 0.854359f, 0.854409f, 0.854458f, 0.854508f,
+ 0.854558f, 0.854608f, 0.854658f, 0.854707f, 0.854757f, 0.854807f, 0.854857f, 0.854906f,
+ 0.854956f, 0.855006f, 0.855056f, 0.855105f, 0.855155f, 0.855205f, 0.855254f, 0.855304f,
+ 0.855354f, 0.855403f, 0.855453f, 0.855503f, 0.855552f, 0.855602f, 0.855651f, 0.855701f,
+ 0.855751f, 0.855800f, 0.855850f, 0.855900f, 0.855949f, 0.855999f, 0.856048f, 0.856098f,
+ 0.856147f, 0.856197f, 0.856246f, 0.856296f, 0.856345f, 0.856395f, 0.856444f, 0.856494f,
+ 0.856543f, 0.856593f, 0.856642f, 0.856692f, 0.856741f, 0.856791f, 0.856840f, 0.856890f,
+ 0.856939f, 0.856988f, 0.857038f, 0.857087f, 0.857137f, 0.857186f, 0.857235f, 0.857285f,
+ 0.857334f, 0.857383f, 0.857433f, 0.857482f, 0.857531f, 0.857581f, 0.857630f, 0.857679f,
+ 0.857729f, 0.857778f, 0.857827f, 0.857876f, 0.857926f, 0.857975f, 0.858024f, 0.858073f,
+ 0.858123f, 0.858172f, 0.858221f, 0.858270f, 0.858320f, 0.858369f, 0.858418f, 0.858467f,
+ 0.858516f, 0.858565f, 0.858615f, 0.858664f, 0.858713f, 0.858762f, 0.858811f, 0.858860f,
+ 0.858909f, 0.858958f, 0.859007f, 0.859057f, 0.859106f, 0.859155f, 0.859204f, 0.859253f,
+ 0.859302f, 0.859351f, 0.859400f, 0.859449f, 0.859498f, 0.859547f, 0.859596f, 0.859645f,
+ 0.859694f, 0.859743f, 0.859792f, 0.859841f, 0.859890f, 0.859939f, 0.859988f, 0.860036f,
+ 0.860085f, 0.860134f, 0.860183f, 0.860232f, 0.860281f, 0.860330f, 0.860379f, 0.860428f,
+ 0.860476f, 0.860525f, 0.860574f, 0.860623f, 0.860672f, 0.860721f, 0.860769f, 0.860818f,
+ 0.860867f, 0.860916f, 0.860964f, 0.861013f, 0.861062f, 0.861111f, 0.861160f, 0.861208f,
+ 0.861257f, 0.861306f, 0.861354f, 0.861403f, 0.861452f, 0.861500f, 0.861549f, 0.861598f,
+ 0.861646f, 0.861695f, 0.861744f, 0.861792f, 0.861841f, 0.861890f, 0.861938f, 0.861987f,
+ 0.862035f, 0.862084f, 0.862133f, 0.862181f, 0.862230f, 0.862278f, 0.862327f, 0.862375f,
+ 0.862424f, 0.862472f, 0.862521f, 0.862570f, 0.862618f, 0.862666f, 0.862715f, 0.862763f,
+ 0.862812f, 0.862860f, 0.862909f, 0.862957f, 0.863006f, 0.863054f, 0.863103f, 0.863151f,
+ 0.863199f, 0.863248f, 0.863296f, 0.863345f, 0.863393f, 0.863441f, 0.863490f, 0.863538f,
+ 0.863586f, 0.863635f, 0.863683f, 0.863731f, 0.863780f, 0.863828f, 0.863876f, 0.863925f,
+ 0.863973f, 0.864021f, 0.864069f, 0.864118f, 0.864166f, 0.864214f, 0.864262f, 0.864311f,
+ 0.864359f, 0.864407f, 0.864455f, 0.864503f, 0.864552f, 0.864600f, 0.864648f, 0.864696f,
+ 0.864744f, 0.864792f, 0.864841f, 0.864889f, 0.864937f, 0.864985f, 0.865033f, 0.865081f,
+ 0.865129f, 0.865177f, 0.865225f, 0.865273f, 0.865321f, 0.865369f, 0.865418f, 0.865466f,
+ 0.865514f, 0.865562f, 0.865610f, 0.865658f, 0.865706f, 0.865754f, 0.865802f, 0.865850f,
+ 0.865898f, 0.865946f, 0.865993f, 0.866041f, 0.866089f, 0.866137f, 0.866185f, 0.866233f,
+ 0.866281f, 0.866329f, 0.866377f, 0.866425f, 0.866472f, 0.866520f, 0.866568f, 0.866616f,
+ 0.866664f, 0.866712f, 0.866759f, 0.866807f, 0.866855f, 0.866903f, 0.866951f, 0.866998f,
+ 0.867046f, 0.867094f, 0.867142f, 0.867190f, 0.867237f, 0.867285f, 0.867333f, 0.867380f,
+ 0.867428f, 0.867476f, 0.867523f, 0.867571f, 0.867619f, 0.867667f, 0.867714f, 0.867762f,
+ 0.867809f, 0.867857f, 0.867905f, 0.867952f, 0.868000f, 0.868048f, 0.868095f, 0.868143f,
+ 0.868190f, 0.868238f, 0.868285f, 0.868333f, 0.868381f, 0.868428f, 0.868476f, 0.868523f,
+ 0.868571f, 0.868618f, 0.868666f, 0.868713f, 0.868761f, 0.868808f, 0.868856f, 0.868903f,
+ 0.868951f, 0.868998f, 0.869045f, 0.869093f, 0.869140f, 0.869188f, 0.869235f, 0.869282f,
+ 0.869330f, 0.869377f, 0.869425f, 0.869472f, 0.869519f, 0.869567f, 0.869614f, 0.869661f,
+ 0.869709f, 0.869756f, 0.869803f, 0.869851f, 0.869898f, 0.869945f, 0.869992f, 0.870040f,
+ 0.870087f, 0.870134f, 0.870182f, 0.870229f, 0.870276f, 0.870323f, 0.870370f, 0.870418f,
+ 0.870465f, 0.870512f, 0.870559f, 0.870606f, 0.870654f, 0.870701f, 0.870748f, 0.870795f,
+ 0.870842f, 0.870889f, 0.870936f, 0.870983f, 0.871031f, 0.871078f, 0.871125f, 0.871172f,
+ 0.871219f, 0.871266f, 0.871313f, 0.871360f, 0.871407f, 0.871454f, 0.871501f, 0.871548f,
+ 0.871595f, 0.871642f, 0.871689f, 0.871736f, 0.871783f, 0.871830f, 0.871877f, 0.871924f,
+ 0.871971f, 0.872018f, 0.872065f, 0.872112f, 0.872159f, 0.872205f, 0.872252f, 0.872299f,
+ 0.872346f, 0.872393f, 0.872440f, 0.872487f, 0.872534f, 0.872580f, 0.872627f, 0.872674f,
+ 0.872721f, 0.872768f, 0.872814f, 0.872861f, 0.872908f, 0.872955f, 0.873001f, 0.873048f,
+ 0.873095f, 0.873142f, 0.873188f, 0.873235f, 0.873282f, 0.873329f, 0.873375f, 0.873422f,
+ 0.873469f, 0.873515f, 0.873562f, 0.873609f, 0.873655f, 0.873702f, 0.873749f, 0.873795f,
+ 0.873842f, 0.873888f, 0.873935f, 0.873982f, 0.874028f, 0.874075f, 0.874121f, 0.874168f,
+ 0.874215f, 0.874261f, 0.874308f, 0.874354f, 0.874401f, 0.874447f, 0.874494f, 0.874540f,
+ 0.874587f, 0.874633f, 0.874680f, 0.874726f, 0.874773f, 0.874819f, 0.874865f, 0.874912f,
+ 0.874958f, 0.875005f, 0.875051f, 0.875098f, 0.875144f, 0.875190f, 0.875237f, 0.875283f,
+ 0.875329f, 0.875376f, 0.875422f, 0.875468f, 0.875515f, 0.875561f, 0.875607f, 0.875654f,
+ 0.875700f, 0.875746f, 0.875793f, 0.875839f, 0.875885f, 0.875931f, 0.875978f, 0.876024f,
+ 0.876070f, 0.876116f, 0.876163f, 0.876209f, 0.876255f, 0.876301f, 0.876347f, 0.876393f,
+ 0.876440f, 0.876486f, 0.876532f, 0.876578f, 0.876624f, 0.876670f, 0.876716f, 0.876763f,
+ 0.876809f, 0.876855f, 0.876901f, 0.876947f, 0.876993f, 0.877039f, 0.877085f, 0.877131f,
+ 0.877177f, 0.877223f, 0.877269f, 0.877315f, 0.877361f, 0.877407f, 0.877453f, 0.877499f,
+ 0.877545f, 0.877591f, 0.877637f, 0.877683f, 0.877729f, 0.877775f, 0.877821f, 0.877867f,
+ 0.877913f, 0.877959f, 0.878005f, 0.878051f, 0.878096f, 0.878142f, 0.878188f, 0.878234f,
+ 0.878280f, 0.878326f, 0.878371f, 0.878417f, 0.878463f, 0.878509f, 0.878555f, 0.878600f,
+ 0.878646f, 0.878692f, 0.878738f, 0.878784f, 0.878829f, 0.878875f, 0.878921f, 0.878967f,
+ 0.879012f, 0.879058f, 0.879104f, 0.879149f, 0.879195f, 0.879241f, 0.879286f, 0.879332f,
+ 0.879378f, 0.879423f, 0.879469f, 0.879515f, 0.879560f, 0.879606f, 0.879651f, 0.879697f,
+ 0.879743f, 0.879788f, 0.879834f, 0.879879f, 0.879925f, 0.879970f, 0.880016f, 0.880061f,
+ 0.880107f, 0.880153f, 0.880198f, 0.880244f, 0.880289f, 0.880334f, 0.880380f, 0.880425f,
+ 0.880471f, 0.880516f, 0.880562f, 0.880607f, 0.880653f, 0.880698f, 0.880743f, 0.880789f,
+ 0.880834f, 0.880880f, 0.880925f, 0.880970f, 0.881016f, 0.881061f, 0.881106f, 0.881152f,
+ 0.881197f, 0.881242f, 0.881288f, 0.881333f, 0.881378f, 0.881424f, 0.881469f, 0.881514f,
+ 0.881559f, 0.881605f, 0.881650f, 0.881695f, 0.881740f, 0.881786f, 0.881831f, 0.881876f,
+ 0.881921f, 0.881966f, 0.882012f, 0.882057f, 0.882102f, 0.882147f, 0.882192f, 0.882237f,
+ 0.882283f, 0.882328f, 0.882373f, 0.882418f, 0.882463f, 0.882508f, 0.882553f, 0.882598f,
+ 0.882643f, 0.882688f, 0.882733f, 0.882779f, 0.882824f, 0.882869f, 0.882914f, 0.882959f,
+ 0.883004f, 0.883049f, 0.883094f, 0.883139f, 0.883184f, 0.883228f, 0.883273f, 0.883318f,
+ 0.883363f, 0.883408f, 0.883453f, 0.883498f, 0.883543f, 0.883588f, 0.883633f, 0.883678f,
+ 0.883723f, 0.883767f, 0.883812f, 0.883857f, 0.883902f, 0.883947f, 0.883992f, 0.884036f,
+ 0.884081f, 0.884126f, 0.884171f, 0.884216f, 0.884260f, 0.884305f, 0.884350f, 0.884395f,
+ 0.884439f, 0.884484f, 0.884529f, 0.884574f, 0.884618f, 0.884663f, 0.884708f, 0.884752f,
+ 0.884797f, 0.884842f, 0.884886f, 0.884931f, 0.884976f, 0.885020f, 0.885065f, 0.885110f,
+ 0.885154f, 0.885199f, 0.885243f, 0.885288f, 0.885333f, 0.885377f, 0.885422f, 0.885466f,
+ 0.885511f, 0.885555f, 0.885600f, 0.885644f, 0.885689f, 0.885733f, 0.885778f, 0.885822f,
+ 0.885867f, 0.885911f, 0.885956f, 0.886000f, 0.886045f, 0.886089f, 0.886134f, 0.886178f,
+ 0.886223f, 0.886267f, 0.886311f, 0.886356f, 0.886400f, 0.886445f, 0.886489f, 0.886533f,
+ 0.886578f, 0.886622f, 0.886666f, 0.886711f, 0.886755f, 0.886799f, 0.886844f, 0.886888f,
+ 0.886932f, 0.886976f, 0.887021f, 0.887065f, 0.887109f, 0.887153f, 0.887198f, 0.887242f,
+ 0.887286f, 0.887330f, 0.887375f, 0.887419f, 0.887463f, 0.887507f, 0.887551f, 0.887595f,
+ 0.887640f, 0.887684f, 0.887728f, 0.887772f, 0.887816f, 0.887860f, 0.887904f, 0.887949f,
+ 0.887993f, 0.888037f, 0.888081f, 0.888125f, 0.888169f, 0.888213f, 0.888257f, 0.888301f,
+ 0.888345f, 0.888389f, 0.888433f, 0.888477f, 0.888521f, 0.888565f, 0.888609f, 0.888653f,
+ 0.888697f, 0.888741f, 0.888785f, 0.888829f, 0.888873f, 0.888917f, 0.888961f, 0.889004f,
+ 0.889048f, 0.889092f, 0.889136f, 0.889180f, 0.889224f, 0.889268f, 0.889312f, 0.889355f,
+ 0.889399f, 0.889443f, 0.889487f, 0.889531f, 0.889574f, 0.889618f, 0.889662f, 0.889706f,
+ 0.889750f, 0.889793f, 0.889837f, 0.889881f, 0.889925f, 0.889968f, 0.890012f, 0.890056f,
+ 0.890099f, 0.890143f, 0.890187f, 0.890230f, 0.890274f, 0.890318f, 0.890361f, 0.890405f,
+ 0.890449f, 0.890492f, 0.890536f, 0.890580f, 0.890623f, 0.890667f, 0.890710f, 0.890754f,
+ 0.890797f, 0.890841f, 0.890885f, 0.890928f, 0.890972f, 0.891015f, 0.891059f, 0.891102f,
+ 0.891146f, 0.891189f, 0.891233f, 0.891276f, 0.891320f, 0.891363f, 0.891407f, 0.891450f,
+ 0.891493f, 0.891537f, 0.891580f, 0.891624f, 0.891667f, 0.891711f, 0.891754f, 0.891797f,
+ 0.891841f, 0.891884f, 0.891927f, 0.891971f, 0.892014f, 0.892057f, 0.892101f, 0.892144f,
+ 0.892187f, 0.892231f, 0.892274f, 0.892317f, 0.892361f, 0.892404f, 0.892447f, 0.892490f,
+ 0.892534f, 0.892577f, 0.892620f, 0.892663f, 0.892706f, 0.892750f, 0.892793f, 0.892836f,
+ 0.892879f, 0.892922f, 0.892965f, 0.893009f, 0.893052f, 0.893095f, 0.893138f, 0.893181f,
+ 0.893224f, 0.893267f, 0.893310f, 0.893354f, 0.893397f, 0.893440f, 0.893483f, 0.893526f,
+ 0.893569f, 0.893612f, 0.893655f, 0.893698f, 0.893741f, 0.893784f, 0.893827f, 0.893870f,
+ 0.893913f, 0.893956f, 0.893999f, 0.894042f, 0.894085f, 0.894128f, 0.894171f, 0.894214f,
+ 0.894256f, 0.894299f, 0.894342f, 0.894385f, 0.894428f, 0.894471f, 0.894514f, 0.894557f,
+ 0.894599f, 0.894642f, 0.894685f, 0.894728f, 0.894771f, 0.894814f, 0.894856f, 0.894899f,
+ 0.894942f, 0.894985f, 0.895028f, 0.895070f, 0.895113f, 0.895156f, 0.895198f, 0.895241f,
+ 0.895284f, 0.895327f, 0.895369f, 0.895412f, 0.895455f, 0.895497f, 0.895540f, 0.895583f,
+ 0.895625f, 0.895668f, 0.895711f, 0.895753f, 0.895796f, 0.895838f, 0.895881f, 0.895924f,
+ 0.895966f, 0.896009f, 0.896051f, 0.896094f, 0.896137f, 0.896179f, 0.896222f, 0.896264f,
+ 0.896307f, 0.896349f, 0.896392f, 0.896434f, 0.896477f, 0.896519f, 0.896562f, 0.896604f,
+ 0.896646f, 0.896689f, 0.896731f, 0.896774f, 0.896816f, 0.896859f, 0.896901f, 0.896943f,
+ 0.896986f, 0.897028f, 0.897071f, 0.897113f, 0.897155f, 0.897198f, 0.897240f, 0.897282f,
+ 0.897325f, 0.897367f, 0.897409f, 0.897452f, 0.897494f, 0.897536f, 0.897578f, 0.897621f,
+ 0.897663f, 0.897705f, 0.897747f, 0.897790f, 0.897832f, 0.897874f, 0.897916f, 0.897958f,
+ 0.898001f, 0.898043f, 0.898085f, 0.898127f, 0.898169f, 0.898211f, 0.898254f, 0.898296f,
+ 0.898338f, 0.898380f, 0.898422f, 0.898464f, 0.898506f, 0.898548f, 0.898590f, 0.898632f,
+ 0.898674f, 0.898717f, 0.898759f, 0.898801f, 0.898843f, 0.898885f, 0.898927f, 0.898969f,
+ 0.899011f, 0.899053f, 0.899095f, 0.899137f, 0.899179f, 0.899220f, 0.899262f, 0.899304f,
+ 0.899346f, 0.899388f, 0.899430f, 0.899472f, 0.899514f, 0.899556f, 0.899598f, 0.899639f,
+ 0.899681f, 0.899723f, 0.899765f, 0.899807f, 0.899849f, 0.899890f, 0.899932f, 0.899974f,
+ 0.900016f, 0.900058f, 0.900099f, 0.900141f, 0.900183f, 0.900225f, 0.900266f, 0.900308f,
+ 0.900350f, 0.900392f, 0.900433f, 0.900475f, 0.900517f, 0.900558f, 0.900600f, 0.900642f,
+ 0.900683f, 0.900725f, 0.900767f, 0.900808f, 0.900850f, 0.900892f, 0.900933f, 0.900975f,
+ 0.901016f, 0.901058f, 0.901100f, 0.901141f, 0.901183f, 0.901224f, 0.901266f, 0.901307f,
+ 0.901349f, 0.901390f, 0.901432f, 0.901473f, 0.901515f, 0.901556f, 0.901598f, 0.901639f,
+ 0.901681f, 0.901722f, 0.901764f, 0.901805f, 0.901847f, 0.901888f, 0.901929f, 0.901971f,
+ 0.902012f, 0.902054f, 0.902095f, 0.902136f, 0.902178f, 0.902219f, 0.902260f, 0.902302f,
+ 0.902343f, 0.902384f, 0.902426f, 0.902467f, 0.902508f, 0.902550f, 0.902591f, 0.902632f,
+ 0.902673f, 0.902715f, 0.902756f, 0.902797f, 0.902838f, 0.902879f, 0.902921f, 0.902962f,
+ 0.903003f, 0.903044f, 0.903085f, 0.903127f, 0.903168f, 0.903209f, 0.903250f, 0.903291f,
+ 0.903332f, 0.903373f, 0.903415f, 0.903456f, 0.903497f, 0.903538f, 0.903579f, 0.903620f,
+ 0.903661f, 0.903702f, 0.903743f, 0.903784f, 0.903825f, 0.903866f, 0.903907f, 0.903948f,
+ 0.903989f, 0.904030f, 0.904071f, 0.904112f, 0.904153f, 0.904194f, 0.904235f, 0.904276f,
+ 0.904317f, 0.904358f, 0.904399f, 0.904440f, 0.904481f, 0.904521f, 0.904562f, 0.904603f,
+ 0.904644f, 0.904685f, 0.904726f, 0.904767f, 0.904807f, 0.904848f, 0.904889f, 0.904930f,
+ 0.904971f, 0.905011f, 0.905052f, 0.905093f, 0.905134f, 0.905175f, 0.905215f, 0.905256f,
+ 0.905297f, 0.905337f, 0.905378f, 0.905419f, 0.905460f, 0.905500f, 0.905541f, 0.905582f,
+ 0.905622f, 0.905663f, 0.905704f, 0.905744f, 0.905785f, 0.905825f, 0.905866f, 0.905907f,
+ 0.905947f, 0.905988f, 0.906028f, 0.906069f, 0.906110f, 0.906150f, 0.906191f, 0.906231f,
+ 0.906272f, 0.906312f, 0.906353f, 0.906393f, 0.906434f, 0.906474f, 0.906515f, 0.906555f,
+ 0.906596f, 0.906636f, 0.906677f, 0.906717f, 0.906757f, 0.906798f, 0.906838f, 0.906879f,
+ 0.906919f, 0.906959f, 0.907000f, 0.907040f, 0.907081f, 0.907121f, 0.907161f, 0.907202f,
+ 0.907242f, 0.907282f, 0.907323f, 0.907363f, 0.907403f, 0.907444f, 0.907484f, 0.907524f,
+ 0.907564f, 0.907605f, 0.907645f, 0.907685f, 0.907725f, 0.907766f, 0.907806f, 0.907846f,
+ 0.907886f, 0.907926f, 0.907966f, 0.908007f, 0.908047f, 0.908087f, 0.908127f, 0.908167f,
+ 0.908207f, 0.908248f, 0.908288f, 0.908328f, 0.908368f, 0.908408f, 0.908448f, 0.908488f,
+ 0.908528f, 0.908568f, 0.908608f, 0.908648f, 0.908688f, 0.908728f, 0.908768f, 0.908808f,
+ 0.908848f, 0.908888f, 0.908928f, 0.908968f, 0.909008f, 0.909048f, 0.909088f, 0.909128f,
+ 0.909168f, 0.909208f, 0.909248f, 0.909288f, 0.909328f, 0.909368f, 0.909407f, 0.909447f,
+ 0.909487f, 0.909527f, 0.909567f, 0.909607f, 0.909646f, 0.909686f, 0.909726f, 0.909766f,
+ 0.909806f, 0.909845f, 0.909885f, 0.909925f, 0.909965f, 0.910005f, 0.910044f, 0.910084f,
+ 0.910124f, 0.910163f, 0.910203f, 0.910243f, 0.910283f, 0.910322f, 0.910362f, 0.910402f,
+ 0.910441f, 0.910481f, 0.910521f, 0.910560f, 0.910600f, 0.910639f, 0.910679f, 0.910719f,
+ 0.910758f, 0.910798f, 0.910837f, 0.910877f, 0.910917f, 0.910956f, 0.910996f, 0.911035f,
+ 0.911075f, 0.911114f, 0.911154f, 0.911193f, 0.911233f, 0.911272f, 0.911312f, 0.911351f,
+ 0.911391f, 0.911430f, 0.911470f, 0.911509f, 0.911548f, 0.911588f, 0.911627f, 0.911667f,
+ 0.911706f, 0.911745f, 0.911785f, 0.911824f, 0.911864f, 0.911903f, 0.911942f, 0.911982f,
+ 0.912021f, 0.912060f, 0.912099f, 0.912139f, 0.912178f, 0.912217f, 0.912257f, 0.912296f,
+ 0.912335f, 0.912374f, 0.912414f, 0.912453f, 0.912492f, 0.912531f, 0.912571f, 0.912610f,
+ 0.912649f, 0.912688f, 0.912727f, 0.912766f, 0.912806f, 0.912845f, 0.912884f, 0.912923f,
+ 0.912962f, 0.913001f, 0.913040f, 0.913080f, 0.913119f, 0.913158f, 0.913197f, 0.913236f,
+ 0.913275f, 0.913314f, 0.913353f, 0.913392f, 0.913431f, 0.913470f, 0.913509f, 0.913548f,
+ 0.913587f, 0.913626f, 0.913665f, 0.913704f, 0.913743f, 0.913782f, 0.913821f, 0.913860f,
+ 0.913899f, 0.913938f, 0.913976f, 0.914015f, 0.914054f, 0.914093f, 0.914132f, 0.914171f,
+ 0.914210f, 0.914249f, 0.914287f, 0.914326f, 0.914365f, 0.914404f, 0.914443f, 0.914482f,
+ 0.914520f, 0.914559f, 0.914598f, 0.914637f, 0.914675f, 0.914714f, 0.914753f, 0.914792f,
+ 0.914830f, 0.914869f, 0.914908f, 0.914946f, 0.914985f, 0.915024f, 0.915062f, 0.915101f,
+ 0.915140f, 0.915178f, 0.915217f, 0.915256f, 0.915294f, 0.915333f, 0.915372f, 0.915410f,
+ 0.915449f, 0.915487f, 0.915526f, 0.915564f, 0.915603f, 0.915642f, 0.915680f, 0.915719f,
+ 0.915757f, 0.915796f, 0.915834f, 0.915873f, 0.915911f, 0.915950f, 0.915988f, 0.916027f,
+ 0.916065f, 0.916103f, 0.916142f, 0.916180f, 0.916219f, 0.916257f, 0.916296f, 0.916334f,
+ 0.916372f, 0.916411f, 0.916449f, 0.916487f, 0.916526f, 0.916564f, 0.916602f, 0.916641f,
+ 0.916679f, 0.916717f, 0.916756f, 0.916794f, 0.916832f, 0.916871f, 0.916909f, 0.916947f,
+ 0.916985f, 0.917024f, 0.917062f, 0.917100f, 0.917138f, 0.917176f, 0.917215f, 0.917253f,
+ 0.917291f, 0.917329f, 0.917367f, 0.917405f, 0.917444f, 0.917482f, 0.917520f, 0.917558f,
+ 0.917596f, 0.917634f, 0.917672f, 0.917710f, 0.917749f, 0.917787f, 0.917825f, 0.917863f,
+ 0.917901f, 0.917939f, 0.917977f, 0.918015f, 0.918053f, 0.918091f, 0.918129f, 0.918167f,
+ 0.918205f, 0.918243f, 0.918281f, 0.918319f, 0.918357f, 0.918395f, 0.918433f, 0.918471f,
+ 0.918508f, 0.918546f, 0.918584f, 0.918622f, 0.918660f, 0.918698f, 0.918736f, 0.918774f,
+ 0.918811f, 0.918849f, 0.918887f, 0.918925f, 0.918963f, 0.919001f, 0.919038f, 0.919076f,
+ 0.919114f, 0.919152f, 0.919189f, 0.919227f, 0.919265f, 0.919303f, 0.919340f, 0.919378f,
+ 0.919416f, 0.919453f, 0.919491f, 0.919529f, 0.919567f, 0.919604f, 0.919642f, 0.919680f,
+ 0.919717f, 0.919755f, 0.919792f, 0.919830f, 0.919868f, 0.919905f, 0.919943f, 0.919980f,
+ 0.920018f, 0.920056f, 0.920093f, 0.920131f, 0.920168f, 0.920206f, 0.920243f, 0.920281f,
+ 0.920318f, 0.920356f, 0.920393f, 0.920431f, 0.920468f, 0.920506f, 0.920543f, 0.920581f,
+ 0.920618f, 0.920655f, 0.920693f, 0.920730f, 0.920768f, 0.920805f, 0.920842f, 0.920880f,
+ 0.920917f, 0.920955f, 0.920992f, 0.921029f, 0.921067f, 0.921104f, 0.921141f, 0.921179f,
+ 0.921216f, 0.921253f, 0.921291f, 0.921328f, 0.921365f, 0.921402f, 0.921440f, 0.921477f,
+ 0.921514f, 0.921551f, 0.921588f, 0.921626f, 0.921663f, 0.921700f, 0.921737f, 0.921774f,
+ 0.921812f, 0.921849f, 0.921886f, 0.921923f, 0.921960f, 0.921997f, 0.922034f, 0.922072f,
+ 0.922109f, 0.922146f, 0.922183f, 0.922220f, 0.922257f, 0.922294f, 0.922331f, 0.922368f,
+ 0.922405f, 0.922442f, 0.922479f, 0.922516f, 0.922553f, 0.922590f, 0.922627f, 0.922664f,
+ 0.922701f, 0.922738f, 0.922775f, 0.922812f, 0.922849f, 0.922886f, 0.922923f, 0.922960f,
+ 0.922997f, 0.923033f, 0.923070f, 0.923107f, 0.923144f, 0.923181f, 0.923218f, 0.923255f,
+ 0.923291f, 0.923328f, 0.923365f, 0.923402f, 0.923439f, 0.923475f, 0.923512f, 0.923549f,
+ 0.923586f, 0.923622f, 0.923659f, 0.923696f, 0.923733f, 0.923769f, 0.923806f, 0.923843f,
+ 0.923880f, 0.923916f, 0.923953f, 0.923990f, 0.924026f, 0.924063f, 0.924100f, 0.924136f,
+ 0.924173f, 0.924209f, 0.924246f, 0.924283f, 0.924319f, 0.924356f, 0.924392f, 0.924429f,
+ 0.924465f, 0.924502f, 0.924539f, 0.924575f, 0.924612f, 0.924648f, 0.924685f, 0.924721f,
+ 0.924758f, 0.924794f, 0.924831f, 0.924867f, 0.924904f, 0.924940f, 0.924976f, 0.925013f,
+ 0.925049f, 0.925086f, 0.925122f, 0.925158f, 0.925195f, 0.925231f, 0.925268f, 0.925304f,
+ 0.925340f, 0.925377f, 0.925413f, 0.925449f, 0.925486f, 0.925522f, 0.925558f, 0.925595f,
+ 0.925631f, 0.925667f, 0.925703f, 0.925740f, 0.925776f, 0.925812f, 0.925848f, 0.925885f,
+ 0.925921f, 0.925957f, 0.925993f, 0.926029f, 0.926066f, 0.926102f, 0.926138f, 0.926174f,
+ 0.926210f, 0.926246f, 0.926283f, 0.926319f, 0.926355f, 0.926391f, 0.926427f, 0.926463f,
+ 0.926499f, 0.926535f, 0.926571f, 0.926607f, 0.926643f, 0.926679f, 0.926715f, 0.926751f,
+ 0.926787f, 0.926823f, 0.926859f, 0.926895f, 0.926931f, 0.926967f, 0.927003f, 0.927039f,
+ 0.927075f, 0.927111f, 0.927147f, 0.927183f, 0.927219f, 0.927255f, 0.927291f, 0.927327f,
+ 0.927363f, 0.927398f, 0.927434f, 0.927470f, 0.927506f, 0.927542f, 0.927578f, 0.927613f,
+ 0.927649f, 0.927685f, 0.927721f, 0.927757f, 0.927792f, 0.927828f, 0.927864f, 0.927900f,
+ 0.927935f, 0.927971f, 0.928007f, 0.928043f, 0.928078f, 0.928114f, 0.928150f, 0.928185f,
+ 0.928221f, 0.928257f, 0.928292f, 0.928328f, 0.928364f, 0.928399f, 0.928435f, 0.928470f,
+ 0.928506f, 0.928542f, 0.928577f, 0.928613f, 0.928648f, 0.928684f, 0.928720f, 0.928755f,
+ 0.928791f, 0.928826f, 0.928862f, 0.928897f, 0.928933f, 0.928968f, 0.929004f, 0.929039f,
+ 0.929075f, 0.929110f, 0.929146f, 0.929181f, 0.929216f, 0.929252f, 0.929287f, 0.929323f,
+ 0.929358f, 0.929393f, 0.929429f, 0.929464f, 0.929500f, 0.929535f, 0.929570f, 0.929606f,
+ 0.929641f, 0.929676f, 0.929712f, 0.929747f, 0.929782f, 0.929817f, 0.929853f, 0.929888f,
+ 0.929923f, 0.929958f, 0.929994f, 0.930029f, 0.930064f, 0.930099f, 0.930135f, 0.930170f,
+ 0.930205f, 0.930240f, 0.930275f, 0.930311f, 0.930346f, 0.930381f, 0.930416f, 0.930451f,
+ 0.930486f, 0.930521f, 0.930556f, 0.930592f, 0.930627f, 0.930662f, 0.930697f, 0.930732f,
+ 0.930767f, 0.930802f, 0.930837f, 0.930872f, 0.930907f, 0.930942f, 0.930977f, 0.931012f,
+ 0.931047f, 0.931082f, 0.931117f, 0.931152f, 0.931187f, 0.931222f, 0.931257f, 0.931292f,
+ 0.931327f, 0.931362f, 0.931397f, 0.931431f, 0.931466f, 0.931501f, 0.931536f, 0.931571f,
+ 0.931606f, 0.931641f, 0.931675f, 0.931710f, 0.931745f, 0.931780f, 0.931815f, 0.931849f,
+ 0.931884f, 0.931919f, 0.931954f, 0.931989f, 0.932023f, 0.932058f, 0.932093f, 0.932128f,
+ 0.932162f, 0.932197f, 0.932232f, 0.932266f, 0.932301f, 0.932336f, 0.932370f, 0.932405f,
+ 0.932440f, 0.932474f, 0.932509f, 0.932544f, 0.932578f, 0.932613f, 0.932647f, 0.932682f,
+ 0.932716f, 0.932751f, 0.932786f, 0.932820f, 0.932855f, 0.932889f, 0.932924f, 0.932958f,
+ 0.932993f, 0.933027f, 0.933062f, 0.933096f, 0.933131f, 0.933165f, 0.933200f, 0.933234f,
+ 0.933269f, 0.933303f, 0.933337f, 0.933372f, 0.933406f, 0.933441f, 0.933475f, 0.933509f,
+ 0.933544f, 0.933578f, 0.933612f, 0.933647f, 0.933681f, 0.933716f, 0.933750f, 0.933784f,
+ 0.933818f, 0.933853f, 0.933887f, 0.933921f, 0.933956f, 0.933990f, 0.934024f, 0.934058f,
+ 0.934093f, 0.934127f, 0.934161f, 0.934195f, 0.934229f, 0.934264f, 0.934298f, 0.934332f,
+ 0.934366f, 0.934400f, 0.934434f, 0.934469f, 0.934503f, 0.934537f, 0.934571f, 0.934605f,
+ 0.934639f, 0.934673f, 0.934707f, 0.934741f, 0.934775f, 0.934810f, 0.934844f, 0.934878f,
+ 0.934912f, 0.934946f, 0.934980f, 0.935014f, 0.935048f, 0.935082f, 0.935116f, 0.935150f,
+ 0.935184f, 0.935217f, 0.935251f, 0.935285f, 0.935319f, 0.935353f, 0.935387f, 0.935421f,
+ 0.935455f, 0.935489f, 0.935523f, 0.935556f, 0.935590f, 0.935624f, 0.935658f, 0.935692f,
+ 0.935726f, 0.935759f, 0.935793f, 0.935827f, 0.935861f, 0.935895f, 0.935928f, 0.935962f,
+ 0.935996f, 0.936030f, 0.936063f, 0.936097f, 0.936131f, 0.936165f, 0.936198f, 0.936232f,
+ 0.936266f, 0.936299f, 0.936333f, 0.936367f, 0.936400f, 0.936434f, 0.936468f, 0.936501f,
+ 0.936535f, 0.936568f, 0.936602f, 0.936636f, 0.936669f, 0.936703f, 0.936736f, 0.936770f,
+ 0.936803f, 0.936837f, 0.936871f, 0.936904f, 0.936938f, 0.936971f, 0.937005f, 0.937038f,
+ 0.937072f, 0.937105f, 0.937138f, 0.937172f, 0.937205f, 0.937239f, 0.937272f, 0.937306f,
+ 0.937339f, 0.937372f, 0.937406f, 0.937439f, 0.937473f, 0.937506f, 0.937539f, 0.937573f,
+ 0.937606f, 0.937639f, 0.937673f, 0.937706f, 0.937739f, 0.937773f, 0.937806f, 0.937839f,
+ 0.937872f, 0.937906f, 0.937939f, 0.937972f, 0.938005f, 0.938039f, 0.938072f, 0.938105f,
+ 0.938138f, 0.938171f, 0.938205f, 0.938238f, 0.938271f, 0.938304f, 0.938337f, 0.938370f,
+ 0.938404f, 0.938437f, 0.938470f, 0.938503f, 0.938536f, 0.938569f, 0.938602f, 0.938635f,
+ 0.938668f, 0.938701f, 0.938734f, 0.938767f, 0.938800f, 0.938833f, 0.938866f, 0.938900f,
+ 0.938932f, 0.938965f, 0.938998f, 0.939031f, 0.939064f, 0.939097f, 0.939130f, 0.939163f,
+ 0.939196f, 0.939229f, 0.939262f, 0.939295f, 0.939328f, 0.939361f, 0.939394f, 0.939426f,
+ 0.939459f, 0.939492f, 0.939525f, 0.939558f, 0.939591f, 0.939623f, 0.939656f, 0.939689f,
+ 0.939722f, 0.939755f, 0.939787f, 0.939820f, 0.939853f, 0.939886f, 0.939918f, 0.939951f,
+ 0.939984f, 0.940016f, 0.940049f, 0.940082f, 0.940115f, 0.940147f, 0.940180f, 0.940213f,
+ 0.940245f, 0.940278f, 0.940310f, 0.940343f, 0.940376f, 0.940408f, 0.940441f, 0.940473f,
+ 0.940506f, 0.940539f, 0.940571f, 0.940604f, 0.940636f, 0.940669f, 0.940701f, 0.940734f,
+ 0.940766f, 0.940799f, 0.940831f, 0.940864f, 0.940896f, 0.940929f, 0.940961f, 0.940994f,
+ 0.941026f, 0.941059f, 0.941091f, 0.941123f, 0.941156f, 0.941188f, 0.941221f, 0.941253f,
+ 0.941285f, 0.941318f, 0.941350f, 0.941382f, 0.941415f, 0.941447f, 0.941479f, 0.941512f,
+ 0.941544f, 0.941576f, 0.941609f, 0.941641f, 0.941673f, 0.941705f, 0.941738f, 0.941770f,
+ 0.941802f, 0.941834f, 0.941867f, 0.941899f, 0.941931f, 0.941963f, 0.941995f, 0.942028f,
+ 0.942060f, 0.942092f, 0.942124f, 0.942156f, 0.942188f, 0.942220f, 0.942253f, 0.942285f,
+ 0.942317f, 0.942349f, 0.942381f, 0.942413f, 0.942445f, 0.942477f, 0.942509f, 0.942541f,
+ 0.942573f, 0.942605f, 0.942637f, 0.942669f, 0.942701f, 0.942733f, 0.942765f, 0.942797f,
+ 0.942829f, 0.942861f, 0.942893f, 0.942925f, 0.942957f, 0.942989f, 0.943021f, 0.943053f,
+ 0.943084f, 0.943116f, 0.943148f, 0.943180f, 0.943212f, 0.943244f, 0.943276f, 0.943307f,
+ 0.943339f, 0.943371f, 0.943403f, 0.943435f, 0.943466f, 0.943498f, 0.943530f, 0.943562f,
+ 0.943593f, 0.943625f, 0.943657f, 0.943689f, 0.943720f, 0.943752f, 0.943784f, 0.943815f,
+ 0.943847f, 0.943879f, 0.943910f, 0.943942f, 0.943974f, 0.944005f, 0.944037f, 0.944069f,
+ 0.944100f, 0.944132f, 0.944163f, 0.944195f, 0.944227f, 0.944258f, 0.944290f, 0.944321f,
+ 0.944353f, 0.944384f, 0.944416f, 0.944447f, 0.944479f, 0.944510f, 0.944542f, 0.944573f,
+ 0.944605f, 0.944636f, 0.944668f, 0.944699f, 0.944731f, 0.944762f, 0.944793f, 0.944825f,
+ 0.944856f, 0.944888f, 0.944919f, 0.944950f, 0.944982f, 0.945013f, 0.945045f, 0.945076f,
+ 0.945107f, 0.945139f, 0.945170f, 0.945201f, 0.945232f, 0.945264f, 0.945295f, 0.945326f,
+ 0.945358f, 0.945389f, 0.945420f, 0.945451f, 0.945482f, 0.945514f, 0.945545f, 0.945576f,
+ 0.945607f, 0.945639f, 0.945670f, 0.945701f, 0.945732f, 0.945763f, 0.945794f, 0.945825f,
+ 0.945857f, 0.945888f, 0.945919f, 0.945950f, 0.945981f, 0.946012f, 0.946043f, 0.946074f,
+ 0.946105f, 0.946136f, 0.946167f, 0.946198f, 0.946229f, 0.946260f, 0.946291f, 0.946322f,
+ 0.946353f, 0.946384f, 0.946415f, 0.946446f, 0.946477f, 0.946508f, 0.946539f, 0.946570f,
+ 0.946601f, 0.946632f, 0.946663f, 0.946694f, 0.946724f, 0.946755f, 0.946786f, 0.946817f,
+ 0.946848f, 0.946879f, 0.946910f, 0.946940f, 0.946971f, 0.947002f, 0.947033f, 0.947064f,
+ 0.947094f, 0.947125f, 0.947156f, 0.947187f, 0.947217f, 0.947248f, 0.947279f, 0.947310f,
+ 0.947340f, 0.947371f, 0.947402f, 0.947432f, 0.947463f, 0.947494f, 0.947524f, 0.947555f,
+ 0.947586f, 0.947616f, 0.947647f, 0.947677f, 0.947708f, 0.947739f, 0.947769f, 0.947800f,
+ 0.947830f, 0.947861f, 0.947891f, 0.947922f, 0.947953f, 0.947983f, 0.948014f, 0.948044f,
+ 0.948075f, 0.948105f, 0.948136f, 0.948166f, 0.948196f, 0.948227f, 0.948257f, 0.948288f,
+ 0.948318f, 0.948349f, 0.948379f, 0.948409f, 0.948440f, 0.948470f, 0.948501f, 0.948531f,
+ 0.948561f, 0.948592f, 0.948622f, 0.948652f, 0.948683f, 0.948713f, 0.948743f, 0.948774f,
+ 0.948804f, 0.948834f, 0.948864f, 0.948895f, 0.948925f, 0.948955f, 0.948985f, 0.949016f,
+ 0.949046f, 0.949076f, 0.949106f, 0.949136f, 0.949167f, 0.949197f, 0.949227f, 0.949257f,
+ 0.949287f, 0.949317f, 0.949348f, 0.949378f, 0.949408f, 0.949438f, 0.949468f, 0.949498f,
+ 0.949528f, 0.949558f, 0.949588f, 0.949618f, 0.949648f, 0.949678f, 0.949708f, 0.949739f,
+ 0.949768f, 0.949798f, 0.949829f, 0.949858f, 0.949888f, 0.949918f, 0.949948f, 0.949978f,
+ 0.950008f, 0.950038f, 0.950068f, 0.950098f, 0.950128f, 0.950158f, 0.950188f, 0.950218f,
+ 0.950247f, 0.950277f, 0.950307f, 0.950337f, 0.950367f, 0.950397f, 0.950426f, 0.950456f,
+ 0.950486f, 0.950516f, 0.950546f, 0.950575f, 0.950605f, 0.950635f, 0.950665f, 0.950694f,
+ 0.950724f, 0.950754f, 0.950784f, 0.950813f, 0.950843f, 0.950873f, 0.950902f, 0.950932f,
+ 0.950962f, 0.950991f, 0.951021f, 0.951051f, 0.951080f, 0.951110f, 0.951139f, 0.951169f,
+ 0.951199f, 0.951228f, 0.951258f, 0.951287f, 0.951317f, 0.951346f, 0.951376f, 0.951406f,
+ 0.951435f, 0.951465f, 0.951494f, 0.951524f, 0.951553f, 0.951582f, 0.951612f, 0.951641f,
+ 0.951671f, 0.951700f, 0.951730f, 0.951759f, 0.951789f, 0.951818f, 0.951847f, 0.951877f,
+ 0.951906f, 0.951936f, 0.951965f, 0.951994f, 0.952024f, 0.952053f, 0.952082f, 0.952112f,
+ 0.952141f, 0.952170f, 0.952199f, 0.952229f, 0.952258f, 0.952287f, 0.952317f, 0.952346f,
+ 0.952375f, 0.952404f, 0.952433f, 0.952463f, 0.952492f, 0.952521f, 0.952550f, 0.952579f,
+ 0.952609f, 0.952638f, 0.952667f, 0.952696f, 0.952725f, 0.952754f, 0.952783f, 0.952813f,
+ 0.952842f, 0.952871f, 0.952900f, 0.952929f, 0.952958f, 0.952987f, 0.953016f, 0.953045f,
+ 0.953074f, 0.953103f, 0.953132f, 0.953161f, 0.953190f, 0.953219f, 0.953248f, 0.953277f,
+ 0.953306f, 0.953335f, 0.953364f, 0.953393f, 0.953422f, 0.953451f, 0.953480f, 0.953508f,
+ 0.953537f, 0.953566f, 0.953595f, 0.953624f, 0.953653f, 0.953682f, 0.953711f, 0.953739f,
+ 0.953768f, 0.953797f, 0.953826f, 0.953855f, 0.953883f, 0.953912f, 0.953941f, 0.953970f,
+ 0.953998f, 0.954027f, 0.954056f, 0.954085f, 0.954113f, 0.954142f, 0.954171f, 0.954199f,
+ 0.954228f, 0.954257f, 0.954285f, 0.954314f, 0.954343f, 0.954371f, 0.954400f, 0.954429f,
+ 0.954457f, 0.954486f, 0.954514f, 0.954543f, 0.954572f, 0.954600f, 0.954629f, 0.954657f,
+ 0.954686f, 0.954714f, 0.954743f, 0.954771f, 0.954800f, 0.954828f, 0.954857f, 0.954885f,
+ 0.954914f, 0.954942f, 0.954971f, 0.954999f, 0.955028f, 0.955056f, 0.955084f, 0.955113f,
+ 0.955141f, 0.955170f, 0.955198f, 0.955226f, 0.955255f, 0.955283f, 0.955311f, 0.955340f,
+ 0.955368f, 0.955396f, 0.955425f, 0.955453f, 0.955481f, 0.955510f, 0.955538f, 0.955566f,
+ 0.955594f, 0.955623f, 0.955651f, 0.955679f, 0.955707f, 0.955736f, 0.955764f, 0.955792f,
+ 0.955820f, 0.955848f, 0.955876f, 0.955905f, 0.955933f, 0.955961f, 0.955989f, 0.956017f,
+ 0.956045f, 0.956073f, 0.956101f, 0.956130f, 0.956158f, 0.956186f, 0.956214f, 0.956242f,
+ 0.956270f, 0.956298f, 0.956326f, 0.956354f, 0.956382f, 0.956410f, 0.956438f, 0.956466f,
+ 0.956494f, 0.956522f, 0.956550f, 0.956578f, 0.956606f, 0.956634f, 0.956662f, 0.956689f,
+ 0.956717f, 0.956745f, 0.956773f, 0.956801f, 0.956829f, 0.956857f, 0.956885f, 0.956913f,
+ 0.956940f, 0.956968f, 0.956996f, 0.957024f, 0.957052f, 0.957079f, 0.957107f, 0.957135f,
+ 0.957163f, 0.957190f, 0.957218f, 0.957246f, 0.957274f, 0.957301f, 0.957329f, 0.957357f,
+ 0.957385f, 0.957412f, 0.957440f, 0.957468f, 0.957495f, 0.957523f, 0.957550f, 0.957578f,
+ 0.957606f, 0.957633f, 0.957661f, 0.957689f, 0.957716f, 0.957744f, 0.957771f, 0.957799f,
+ 0.957826f, 0.957854f, 0.957882f, 0.957909f, 0.957937f, 0.957964f, 0.957992f, 0.958019f,
+ 0.958046f, 0.958074f, 0.958101f, 0.958129f, 0.958156f, 0.958184f, 0.958211f, 0.958239f,
+ 0.958266f, 0.958293f, 0.958321f, 0.958348f, 0.958376f, 0.958403f, 0.958430f, 0.958458f,
+ 0.958485f, 0.958512f, 0.958540f, 0.958567f, 0.958594f, 0.958622f, 0.958649f, 0.958676f,
+ 0.958703f, 0.958731f, 0.958758f, 0.958785f, 0.958812f, 0.958840f, 0.958867f, 0.958894f,
+ 0.958921f, 0.958949f, 0.958976f, 0.959003f, 0.959030f, 0.959057f, 0.959084f, 0.959112f,
+ 0.959139f, 0.959166f, 0.959193f, 0.959220f, 0.959247f, 0.959274f, 0.959301f, 0.959328f,
+ 0.959355f, 0.959382f, 0.959409f, 0.959436f, 0.959463f, 0.959491f, 0.959518f, 0.959545f,
+ 0.959572f, 0.959598f, 0.959625f, 0.959652f, 0.959679f, 0.959706f, 0.959733f, 0.959760f,
+ 0.959787f, 0.959814f, 0.959841f, 0.959868f, 0.959895f, 0.959922f, 0.959948f, 0.959975f,
+ 0.960002f, 0.960029f, 0.960056f, 0.960083f, 0.960109f, 0.960136f, 0.960163f, 0.960190f,
+ 0.960217f, 0.960243f, 0.960270f, 0.960297f, 0.960324f, 0.960350f, 0.960377f, 0.960404f,
+ 0.960431f, 0.960457f, 0.960484f, 0.960511f, 0.960537f, 0.960564f, 0.960591f, 0.960617f,
+ 0.960644f, 0.960670f, 0.960697f, 0.960724f, 0.960750f, 0.960777f, 0.960804f, 0.960830f,
+ 0.960857f, 0.960883f, 0.960910f, 0.960936f, 0.960963f, 0.960989f, 0.961016f, 0.961042f,
+ 0.961069f, 0.961095f, 0.961122f, 0.961148f, 0.961175f, 0.961201f, 0.961228f, 0.961254f,
+ 0.961280f, 0.961307f, 0.961333f, 0.961360f, 0.961386f, 0.961412f, 0.961439f, 0.961465f,
+ 0.961492f, 0.961518f, 0.961544f, 0.961571f, 0.961597f, 0.961623f, 0.961649f, 0.961676f,
+ 0.961702f, 0.961728f, 0.961755f, 0.961781f, 0.961807f, 0.961833f, 0.961860f, 0.961886f,
+ 0.961912f, 0.961938f, 0.961964f, 0.961991f, 0.962017f, 0.962043f, 0.962069f, 0.962095f,
+ 0.962121f, 0.962148f, 0.962174f, 0.962200f, 0.962226f, 0.962252f, 0.962278f, 0.962304f,
+ 0.962330f, 0.962356f, 0.962382f, 0.962408f, 0.962434f, 0.962460f, 0.962486f, 0.962512f,
+ 0.962538f, 0.962564f, 0.962590f, 0.962616f, 0.962642f, 0.962668f, 0.962694f, 0.962720f,
+ 0.962746f, 0.962772f, 0.962798f, 0.962824f, 0.962850f, 0.962876f, 0.962902f, 0.962927f,
+ 0.962953f, 0.962979f, 0.963005f, 0.963031f, 0.963057f, 0.963082f, 0.963108f, 0.963134f,
+ 0.963160f, 0.963186f, 0.963211f, 0.963237f, 0.963263f, 0.963289f, 0.963314f, 0.963340f,
+ 0.963366f, 0.963391f, 0.963417f, 0.963443f, 0.963469f, 0.963494f, 0.963520f, 0.963546f,
+ 0.963571f, 0.963597f, 0.963623f, 0.963648f, 0.963674f, 0.963699f, 0.963725f, 0.963750f,
+ 0.963776f, 0.963802f, 0.963827f, 0.963853f, 0.963878f, 0.963904f, 0.963929f, 0.963955f,
+ 0.963980f, 0.964006f, 0.964031f, 0.964057f, 0.964082f, 0.964108f, 0.964133f, 0.964159f,
+ 0.964184f, 0.964209f, 0.964235f, 0.964260f, 0.964286f, 0.964311f, 0.964336f, 0.964362f,
+ 0.964387f, 0.964413f, 0.964438f, 0.964463f, 0.964489f, 0.964514f, 0.964539f, 0.964565f,
+ 0.964590f, 0.964615f, 0.964640f, 0.964666f, 0.964691f, 0.964716f, 0.964741f, 0.964767f,
+ 0.964792f, 0.964817f, 0.964842f, 0.964867f, 0.964893f, 0.964918f, 0.964943f, 0.964968f,
+ 0.964993f, 0.965018f, 0.965044f, 0.965069f, 0.965094f, 0.965119f, 0.965144f, 0.965169f,
+ 0.965194f, 0.965219f, 0.965244f, 0.965269f, 0.965294f, 0.965319f, 0.965344f, 0.965369f,
+ 0.965394f, 0.965419f, 0.965444f, 0.965469f, 0.965494f, 0.965519f, 0.965544f, 0.965569f,
+ 0.965594f, 0.965619f, 0.965644f, 0.965669f, 0.965694f, 0.965719f, 0.965744f, 0.965769f,
+ 0.965793f, 0.965818f, 0.965843f, 0.965868f, 0.965893f, 0.965918f, 0.965942f, 0.965967f,
+ 0.965992f, 0.966017f, 0.966042f, 0.966066f, 0.966091f, 0.966116f, 0.966141f, 0.966165f,
+ 0.966190f, 0.966215f, 0.966239f, 0.966264f, 0.966289f, 0.966313f, 0.966338f, 0.966363f,
+ 0.966387f, 0.966412f, 0.966437f, 0.966461f, 0.966486f, 0.966511f, 0.966535f, 0.966560f,
+ 0.966584f, 0.966609f, 0.966633f, 0.966658f, 0.966683f, 0.966707f, 0.966732f, 0.966756f,
+ 0.966781f, 0.966805f, 0.966830f, 0.966854f, 0.966879f, 0.966903f, 0.966928f, 0.966952f,
+ 0.966976f, 0.967001f, 0.967025f, 0.967050f, 0.967074f, 0.967099f, 0.967123f, 0.967147f,
+ 0.967172f, 0.967196f, 0.967220f, 0.967245f, 0.967269f, 0.967293f, 0.967318f, 0.967342f,
+ 0.967366f, 0.967391f, 0.967415f, 0.967439f, 0.967463f, 0.967488f, 0.967512f, 0.967536f,
+ 0.967560f, 0.967585f, 0.967609f, 0.967633f, 0.967657f, 0.967681f, 0.967706f, 0.967730f,
+ 0.967754f, 0.967778f, 0.967802f, 0.967826f, 0.967850f, 0.967874f, 0.967899f, 0.967923f,
+ 0.967947f, 0.967971f, 0.967995f, 0.968019f, 0.968043f, 0.968067f, 0.968091f, 0.968115f,
+ 0.968139f, 0.968163f, 0.968187f, 0.968211f, 0.968235f, 0.968259f, 0.968283f, 0.968307f,
+ 0.968331f, 0.968355f, 0.968379f, 0.968403f, 0.968427f, 0.968450f, 0.968474f, 0.968498f,
+ 0.968522f, 0.968546f, 0.968570f, 0.968594f, 0.968617f, 0.968641f, 0.968665f, 0.968689f,
+ 0.968713f, 0.968737f, 0.968760f, 0.968784f, 0.968808f, 0.968832f, 0.968855f, 0.968879f,
+ 0.968903f, 0.968927f, 0.968950f, 0.968974f, 0.968998f, 0.969021f, 0.969045f, 0.969069f,
+ 0.969092f, 0.969116f, 0.969140f, 0.969163f, 0.969187f, 0.969210f, 0.969234f, 0.969258f,
+ 0.969281f, 0.969305f, 0.969328f, 0.969352f, 0.969375f, 0.969399f, 0.969423f, 0.969446f,
+ 0.969470f, 0.969493f, 0.969517f, 0.969540f, 0.969564f, 0.969587f, 0.969611f, 0.969634f,
+ 0.969657f, 0.969681f, 0.969704f, 0.969728f, 0.969751f, 0.969774f, 0.969798f, 0.969821f,
+ 0.969845f, 0.969868f, 0.969891f, 0.969915f, 0.969938f, 0.969961f, 0.969985f, 0.970008f,
+ 0.970031f, 0.970055f, 0.970078f, 0.970101f, 0.970124f, 0.970148f, 0.970171f, 0.970194f,
+ 0.970217f, 0.970241f, 0.970264f, 0.970287f, 0.970310f, 0.970333f, 0.970357f, 0.970380f,
+ 0.970403f, 0.970426f, 0.970449f, 0.970472f, 0.970495f, 0.970518f, 0.970542f, 0.970565f,
+ 0.970588f, 0.970611f, 0.970634f, 0.970657f, 0.970680f, 0.970703f, 0.970726f, 0.970749f,
+ 0.970772f, 0.970795f, 0.970818f, 0.970841f, 0.970864f, 0.970887f, 0.970910f, 0.970933f,
+ 0.970956f, 0.970979f, 0.971002f, 0.971025f, 0.971048f, 0.971071f, 0.971093f, 0.971116f,
+ 0.971139f, 0.971162f, 0.971185f, 0.971208f, 0.971231f, 0.971253f, 0.971276f, 0.971299f,
+ 0.971322f, 0.971345f, 0.971367f, 0.971390f, 0.971413f, 0.971436f, 0.971458f, 0.971481f,
+ 0.971504f, 0.971527f, 0.971549f, 0.971572f, 0.971595f, 0.971617f, 0.971640f, 0.971663f,
+ 0.971685f, 0.971708f, 0.971731f, 0.971753f, 0.971776f, 0.971799f, 0.971821f, 0.971844f,
+ 0.971866f, 0.971889f, 0.971911f, 0.971934f, 0.971957f, 0.971979f, 0.972002f, 0.972024f,
+ 0.972047f, 0.972069f, 0.972092f, 0.972114f, 0.972137f, 0.972159f, 0.972182f, 0.972204f,
+ 0.972227f, 0.972249f, 0.972271f, 0.972294f, 0.972316f, 0.972339f, 0.972361f, 0.972383f,
+ 0.972406f, 0.972428f, 0.972450f, 0.972473f, 0.972495f, 0.972517f, 0.972540f, 0.972562f,
+ 0.972584f, 0.972607f, 0.972629f, 0.972651f, 0.972673f, 0.972696f, 0.972718f, 0.972740f,
+ 0.972762f, 0.972785f, 0.972807f, 0.972829f, 0.972851f, 0.972873f, 0.972896f, 0.972918f,
+ 0.972940f, 0.972962f, 0.972984f, 0.973006f, 0.973028f, 0.973051f, 0.973073f, 0.973095f,
+ 0.973117f, 0.973139f, 0.973161f, 0.973183f, 0.973205f, 0.973227f, 0.973249f, 0.973271f,
+ 0.973293f, 0.973315f, 0.973337f, 0.973359f, 0.973381f, 0.973403f, 0.973425f, 0.973447f,
+ 0.973469f, 0.973491f, 0.973513f, 0.973535f, 0.973557f, 0.973579f, 0.973601f, 0.973622f,
+ 0.973644f, 0.973666f, 0.973688f, 0.973710f, 0.973732f, 0.973753f, 0.973775f, 0.973797f,
+ 0.973819f, 0.973841f, 0.973862f, 0.973884f, 0.973906f, 0.973928f, 0.973949f, 0.973971f,
+ 0.973993f, 0.974015f, 0.974036f, 0.974058f, 0.974080f, 0.974101f, 0.974123f, 0.974145f,
+ 0.974166f, 0.974188f, 0.974210f, 0.974231f, 0.974253f, 0.974275f, 0.974296f, 0.974318f,
+ 0.974339f, 0.974361f, 0.974383f, 0.974404f, 0.974426f, 0.974447f, 0.974469f, 0.974490f,
+ 0.974512f, 0.974533f, 0.974555f, 0.974576f, 0.974598f, 0.974619f, 0.974641f, 0.974662f,
+ 0.974684f, 0.974705f, 0.974726f, 0.974748f, 0.974769f, 0.974791f, 0.974812f, 0.974833f,
+ 0.974855f, 0.974876f, 0.974897f, 0.974919f, 0.974940f, 0.974961f, 0.974983f, 0.975004f,
+ 0.975025f, 0.975047f, 0.975068f, 0.975089f, 0.975110f, 0.975132f, 0.975153f, 0.975174f,
+ 0.975195f, 0.975217f, 0.975238f, 0.975259f, 0.975280f, 0.975301f, 0.975323f, 0.975344f,
+ 0.975365f, 0.975386f, 0.975407f, 0.975428f, 0.975449f, 0.975471f, 0.975492f, 0.975513f,
+ 0.975534f, 0.975555f, 0.975576f, 0.975597f, 0.975618f, 0.975639f, 0.975660f, 0.975681f,
+ 0.975702f, 0.975723f, 0.975744f, 0.975765f, 0.975786f, 0.975807f, 0.975828f, 0.975849f,
+ 0.975870f, 0.975891f, 0.975912f, 0.975933f, 0.975954f, 0.975974f, 0.975995f, 0.976016f,
+ 0.976037f, 0.976058f, 0.976079f, 0.976100f, 0.976120f, 0.976141f, 0.976162f, 0.976183f,
+ 0.976204f, 0.976224f, 0.976245f, 0.976266f, 0.976287f, 0.976308f, 0.976328f, 0.976349f,
+ 0.976370f, 0.976390f, 0.976411f, 0.976432f, 0.976453f, 0.976473f, 0.976494f, 0.976515f,
+ 0.976535f, 0.976556f, 0.976576f, 0.976597f, 0.976618f, 0.976638f, 0.976659f, 0.976680f,
+ 0.976700f, 0.976721f, 0.976741f, 0.976762f, 0.976782f, 0.976803f, 0.976823f, 0.976844f,
+ 0.976864f, 0.976885f, 0.976905f, 0.976926f, 0.976946f, 0.976967f, 0.976987f, 0.977008f,
+ 0.977028f, 0.977049f, 0.977069f, 0.977089f, 0.977110f, 0.977130f, 0.977151f, 0.977171f,
+ 0.977191f, 0.977212f, 0.977232f, 0.977252f, 0.977273f, 0.977293f, 0.977313f, 0.977334f,
+ 0.977354f, 0.977374f, 0.977394f, 0.977415f, 0.977435f, 0.977455f, 0.977475f, 0.977496f,
+ 0.977516f, 0.977536f, 0.977556f, 0.977577f, 0.977597f, 0.977617f, 0.977637f, 0.977657f,
+ 0.977677f, 0.977697f, 0.977718f, 0.977738f, 0.977758f, 0.977778f, 0.977798f, 0.977818f,
+ 0.977838f, 0.977858f, 0.977878f, 0.977898f, 0.977918f, 0.977938f, 0.977959f, 0.977979f,
+ 0.977998f, 0.978019f, 0.978038f, 0.978058f, 0.978078f, 0.978098f, 0.978118f, 0.978138f,
+ 0.978158f, 0.978178f, 0.978198f, 0.978218f, 0.978238f, 0.978258f, 0.978278f, 0.978298f,
+ 0.978317f, 0.978337f, 0.978357f, 0.978377f, 0.978397f, 0.978417f, 0.978436f, 0.978456f,
+ 0.978476f, 0.978496f, 0.978516f, 0.978535f, 0.978555f, 0.978575f, 0.978594f, 0.978614f,
+ 0.978634f, 0.978654f, 0.978673f, 0.978693f, 0.978713f, 0.978732f, 0.978752f, 0.978772f,
+ 0.978791f, 0.978811f, 0.978831f, 0.978850f, 0.978870f, 0.978889f, 0.978909f, 0.978929f,
+ 0.978948f, 0.978968f, 0.978987f, 0.979007f, 0.979026f, 0.979046f, 0.979065f, 0.979085f,
+ 0.979104f, 0.979124f, 0.979143f, 0.979163f, 0.979182f, 0.979202f, 0.979221f, 0.979241f,
+ 0.979260f, 0.979280f, 0.979299f, 0.979318f, 0.979338f, 0.979357f, 0.979376f, 0.979396f,
+ 0.979415f, 0.979435f, 0.979454f, 0.979473f, 0.979493f, 0.979512f, 0.979531f, 0.979550f,
+ 0.979570f, 0.979589f, 0.979608f, 0.979628f, 0.979647f, 0.979666f, 0.979685f, 0.979704f,
+ 0.979724f, 0.979743f, 0.979762f, 0.979781f, 0.979800f, 0.979820f, 0.979839f, 0.979858f,
+ 0.979877f, 0.979896f, 0.979915f, 0.979934f, 0.979954f, 0.979973f, 0.979992f, 0.980011f,
+ 0.980030f, 0.980049f, 0.980068f, 0.980087f, 0.980106f, 0.980125f, 0.980144f, 0.980163f,
+ 0.980182f, 0.980201f, 0.980220f, 0.980239f, 0.980258f, 0.980277f, 0.980296f, 0.980315f,
+ 0.980334f, 0.980353f, 0.980372f, 0.980390f, 0.980409f, 0.980428f, 0.980447f, 0.980466f,
+ 0.980485f, 0.980504f, 0.980523f, 0.980541f, 0.980560f, 0.980579f, 0.980598f, 0.980617f,
+ 0.980635f, 0.980654f, 0.980673f, 0.980692f, 0.980710f, 0.980729f, 0.980748f, 0.980767f,
+ 0.980785f, 0.980804f, 0.980823f, 0.980841f, 0.980860f, 0.980879f, 0.980897f, 0.980916f,
+ 0.980935f, 0.980953f, 0.980972f, 0.980990f, 0.981009f, 0.981028f, 0.981046f, 0.981065f,
+ 0.981083f, 0.981102f, 0.981120f, 0.981139f, 0.981158f, 0.981176f, 0.981195f, 0.981213f,
+ 0.981232f, 0.981250f, 0.981269f, 0.981287f, 0.981305f, 0.981324f, 0.981342f, 0.981361f,
+ 0.981379f, 0.981398f, 0.981416f, 0.981434f, 0.981453f, 0.981471f, 0.981490f, 0.981508f,
+ 0.981526f, 0.981545f, 0.981563f, 0.981581f, 0.981600f, 0.981618f, 0.981636f, 0.981654f,
+ 0.981673f, 0.981691f, 0.981709f, 0.981727f, 0.981746f, 0.981764f, 0.981782f, 0.981800f,
+ 0.981819f, 0.981837f, 0.981855f, 0.981873f, 0.981891f, 0.981909f, 0.981928f, 0.981946f,
+ 0.981964f, 0.981982f, 0.982000f, 0.982018f, 0.982036f, 0.982054f, 0.982072f, 0.982091f,
+ 0.982109f, 0.982127f, 0.982145f, 0.982163f, 0.982181f, 0.982199f, 0.982217f, 0.982235f,
+ 0.982253f, 0.982271f, 0.982289f, 0.982307f, 0.982325f, 0.982343f, 0.982360f, 0.982378f,
+ 0.982396f, 0.982414f, 0.982432f, 0.982450f, 0.982468f, 0.982486f, 0.982504f, 0.982521f,
+ 0.982539f, 0.982557f, 0.982575f, 0.982593f, 0.982611f, 0.982628f, 0.982646f, 0.982664f,
+ 0.982682f, 0.982699f, 0.982717f, 0.982735f, 0.982753f, 0.982770f, 0.982788f, 0.982806f,
+ 0.982824f, 0.982841f, 0.982859f, 0.982877f, 0.982894f, 0.982912f, 0.982930f, 0.982947f,
+ 0.982965f, 0.982982f, 0.983000f, 0.983018f, 0.983035f, 0.983053f, 0.983070f, 0.983088f,
+ 0.983105f, 0.983123f, 0.983141f, 0.983158f, 0.983176f, 0.983193f, 0.983211f, 0.983228f,
+ 0.983246f, 0.983263f, 0.983281f, 0.983298f, 0.983315f, 0.983333f, 0.983350f, 0.983368f,
+ 0.983385f, 0.983402f, 0.983420f, 0.983437f, 0.983455f, 0.983472f, 0.983489f, 0.983507f,
+ 0.983524f, 0.983541f, 0.983559f, 0.983576f, 0.983593f, 0.983611f, 0.983628f, 0.983645f,
+ 0.983662f, 0.983680f, 0.983697f, 0.983714f, 0.983731f, 0.983749f, 0.983766f, 0.983783f,
+ 0.983800f, 0.983817f, 0.983835f, 0.983852f, 0.983869f, 0.983886f, 0.983903f, 0.983920f,
+ 0.983937f, 0.983955f, 0.983972f, 0.983989f, 0.984006f, 0.984023f, 0.984040f, 0.984057f,
+ 0.984074f, 0.984091f, 0.984108f, 0.984125f, 0.984142f, 0.984159f, 0.984176f, 0.984193f,
+ 0.984210f, 0.984227f, 0.984244f, 0.984261f, 0.984278f, 0.984295f, 0.984312f, 0.984329f,
+ 0.984346f, 0.984362f, 0.984379f, 0.984396f, 0.984413f, 0.984430f, 0.984447f, 0.984464f,
+ 0.984480f, 0.984497f, 0.984514f, 0.984531f, 0.984548f, 0.984564f, 0.984581f, 0.984598f,
+ 0.984615f, 0.984632f, 0.984648f, 0.984665f, 0.984682f, 0.984698f, 0.984715f, 0.984732f,
+ 0.984748f, 0.984765f, 0.984782f, 0.984798f, 0.984815f, 0.984832f, 0.984848f, 0.984865f,
+ 0.984882f, 0.984898f, 0.984915f, 0.984931f, 0.984948f, 0.984965f, 0.984981f, 0.984998f,
+ 0.985014f, 0.985031f, 0.985047f, 0.985064f, 0.985080f, 0.985097f, 0.985113f, 0.985130f,
+ 0.985146f, 0.985163f, 0.985179f, 0.985196f, 0.985212f, 0.985228f, 0.985245f, 0.985261f,
+ 0.985278f, 0.985294f, 0.985310f, 0.985327f, 0.985343f, 0.985359f, 0.985376f, 0.985392f,
+ 0.985408f, 0.985425f, 0.985441f, 0.985457f, 0.985474f, 0.985490f, 0.985506f, 0.985523f,
+ 0.985539f, 0.985555f, 0.985571f, 0.985587f, 0.985604f, 0.985620f, 0.985636f, 0.985652f,
+ 0.985668f, 0.985685f, 0.985701f, 0.985717f, 0.985733f, 0.985749f, 0.985765f, 0.985781f,
+ 0.985798f, 0.985814f, 0.985830f, 0.985846f, 0.985862f, 0.985878f, 0.985894f, 0.985910f,
+ 0.985926f, 0.985942f, 0.985958f, 0.985974f, 0.985990f, 0.986006f, 0.986022f, 0.986038f,
+ 0.986054f, 0.986070f, 0.986086f, 0.986102f, 0.986118f, 0.986134f, 0.986150f, 0.986165f,
+ 0.986181f, 0.986197f, 0.986213f, 0.986229f, 0.986245f, 0.986261f, 0.986276f, 0.986292f,
+ 0.986308f, 0.986324f, 0.986340f, 0.986355f, 0.986371f, 0.986387f, 0.986403f, 0.986419f,
+ 0.986434f, 0.986450f, 0.986466f, 0.986481f, 0.986497f, 0.986513f, 0.986529f, 0.986544f,
+ 0.986560f, 0.986576f, 0.986591f, 0.986607f, 0.986623f, 0.986638f, 0.986654f, 0.986669f,
+ 0.986685f, 0.986701f, 0.986716f, 0.986732f, 0.986747f, 0.986763f, 0.986778f, 0.986794f,
+ 0.986809f, 0.986825f, 0.986840f, 0.986856f, 0.986871f, 0.986887f, 0.986902f, 0.986918f,
+ 0.986933f, 0.986949f, 0.986964f, 0.986980f, 0.986995f, 0.987010f, 0.987026f, 0.987041f,
+ 0.987057f, 0.987072f, 0.987087f, 0.987103f, 0.987118f, 0.987133f, 0.987149f, 0.987164f,
+ 0.987179f, 0.987195f, 0.987210f, 0.987225f, 0.987240f, 0.987256f, 0.987271f, 0.987286f,
+ 0.987301f, 0.987317f, 0.987332f, 0.987347f, 0.987362f, 0.987377f, 0.987393f, 0.987408f,
+ 0.987423f, 0.987438f, 0.987453f, 0.987468f, 0.987484f, 0.987499f, 0.987514f, 0.987529f,
+ 0.987544f, 0.987559f, 0.987574f, 0.987589f, 0.987604f, 0.987619f, 0.987634f, 0.987649f,
+ 0.987664f, 0.987679f, 0.987694f, 0.987709f, 0.987724f, 0.987739f, 0.987754f, 0.987769f,
+ 0.987784f, 0.987799f, 0.987814f, 0.987829f, 0.987844f, 0.987859f, 0.987874f, 0.987889f,
+ 0.987903f, 0.987918f, 0.987933f, 0.987948f, 0.987963f, 0.987978f, 0.987992f, 0.988007f,
+ 0.988022f, 0.988037f, 0.988052f, 0.988066f, 0.988081f, 0.988096f, 0.988111f, 0.988125f,
+ 0.988140f, 0.988155f, 0.988169f, 0.988184f, 0.988199f, 0.988214f, 0.988228f, 0.988243f,
+ 0.988258f, 0.988272f, 0.988287f, 0.988301f, 0.988316f, 0.988331f, 0.988345f, 0.988360f,
+ 0.988374f, 0.988389f, 0.988404f, 0.988418f, 0.988433f, 0.988447f, 0.988462f, 0.988476f,
+ 0.988491f, 0.988505f, 0.988520f, 0.988534f, 0.988549f, 0.988563f, 0.988578f, 0.988592f,
+ 0.988607f, 0.988621f, 0.988635f, 0.988650f, 0.988664f, 0.988679f, 0.988693f, 0.988707f,
+ 0.988722f, 0.988736f, 0.988750f, 0.988765f, 0.988779f, 0.988793f, 0.988808f, 0.988822f,
+ 0.988836f, 0.988851f, 0.988865f, 0.988879f, 0.988893f, 0.988908f, 0.988922f, 0.988936f,
+ 0.988950f, 0.988964f, 0.988979f, 0.988993f, 0.989007f, 0.989021f, 0.989035f, 0.989050f,
+ 0.989064f, 0.989078f, 0.989092f, 0.989106f, 0.989120f, 0.989134f, 0.989148f, 0.989162f,
+ 0.989177f, 0.989191f, 0.989205f, 0.989219f, 0.989233f, 0.989247f, 0.989261f, 0.989275f,
+ 0.989289f, 0.989303f, 0.989317f, 0.989331f, 0.989345f, 0.989359f, 0.989373f, 0.989386f,
+ 0.989400f, 0.989414f, 0.989428f, 0.989442f, 0.989456f, 0.989470f, 0.989484f, 0.989498f,
+ 0.989511f, 0.989525f, 0.989539f, 0.989553f, 0.989567f, 0.989581f, 0.989594f, 0.989608f,
+ 0.989622f, 0.989636f, 0.989650f, 0.989663f, 0.989677f, 0.989691f, 0.989704f, 0.989718f,
+ 0.989732f, 0.989746f, 0.989759f, 0.989773f, 0.989787f, 0.989800f, 0.989814f, 0.989828f,
+ 0.989841f, 0.989855f, 0.989869f, 0.989882f, 0.989896f, 0.989909f, 0.989923f, 0.989936f,
+ 0.989950f, 0.989964f, 0.989977f, 0.989991f, 0.990004f, 0.990018f, 0.990031f, 0.990045f,
+ 0.990058f, 0.990072f, 0.990085f, 0.990099f, 0.990112f, 0.990126f, 0.990139f, 0.990152f,
+ 0.990166f, 0.990179f, 0.990193f, 0.990206f, 0.990219f, 0.990233f, 0.990246f, 0.990259f,
+ 0.990273f, 0.990286f, 0.990299f, 0.990313f, 0.990326f, 0.990339f, 0.990353f, 0.990366f,
+ 0.990379f, 0.990393f, 0.990406f, 0.990419f, 0.990432f, 0.990445f, 0.990459f, 0.990472f,
+ 0.990485f, 0.990498f, 0.990511f, 0.990525f, 0.990538f, 0.990551f, 0.990564f, 0.990577f,
+ 0.990590f, 0.990603f, 0.990617f, 0.990630f, 0.990643f, 0.990656f, 0.990669f, 0.990682f,
+ 0.990695f, 0.990708f, 0.990721f, 0.990734f, 0.990747f, 0.990760f, 0.990773f, 0.990786f,
+ 0.990799f, 0.990812f, 0.990825f, 0.990838f, 0.990851f, 0.990864f, 0.990877f, 0.990890f,
+ 0.990903f, 0.990916f, 0.990928f, 0.990941f, 0.990954f, 0.990967f, 0.990980f, 0.990993f,
+ 0.991006f, 0.991018f, 0.991031f, 0.991044f, 0.991057f, 0.991070f, 0.991082f, 0.991095f,
+ 0.991108f, 0.991121f, 0.991133f, 0.991146f, 0.991159f, 0.991172f, 0.991184f, 0.991197f,
+ 0.991210f, 0.991222f, 0.991235f, 0.991248f, 0.991260f, 0.991273f, 0.991286f, 0.991298f,
+ 0.991311f, 0.991323f, 0.991336f, 0.991349f, 0.991361f, 0.991374f, 0.991386f, 0.991399f,
+ 0.991411f, 0.991424f, 0.991437f, 0.991449f, 0.991462f, 0.991474f, 0.991487f, 0.991499f,
+ 0.991511f, 0.991524f, 0.991536f, 0.991549f, 0.991561f, 0.991574f, 0.991586f, 0.991598f,
+ 0.991611f, 0.991623f, 0.991636f, 0.991648f, 0.991660f, 0.991673f, 0.991685f, 0.991697f,
+ 0.991710f, 0.991722f, 0.991734f, 0.991747f, 0.991759f, 0.991771f, 0.991783f, 0.991796f,
+ 0.991808f, 0.991820f, 0.991832f, 0.991845f, 0.991857f, 0.991869f, 0.991881f, 0.991894f,
+ 0.991906f, 0.991918f, 0.991930f, 0.991942f, 0.991954f, 0.991966f, 0.991979f, 0.991991f,
+ 0.992003f, 0.992015f, 0.992027f, 0.992039f, 0.992051f, 0.992063f, 0.992075f, 0.992087f,
+ 0.992099f, 0.992111f, 0.992123f, 0.992135f, 0.992147f, 0.992159f, 0.992171f, 0.992183f,
+ 0.992195f, 0.992207f, 0.992219f, 0.992231f, 0.992243f, 0.992255f, 0.992267f, 0.992279f,
+ 0.992291f, 0.992302f, 0.992314f, 0.992326f, 0.992338f, 0.992350f, 0.992362f, 0.992374f,
+ 0.992385f, 0.992397f, 0.992409f, 0.992421f, 0.992433f, 0.992444f, 0.992456f, 0.992468f,
+ 0.992480f, 0.992491f, 0.992503f, 0.992515f, 0.992526f, 0.992538f, 0.992550f, 0.992561f,
+ 0.992573f, 0.992585f, 0.992596f, 0.992608f, 0.992620f, 0.992631f, 0.992643f, 0.992655f,
+ 0.992666f, 0.992678f, 0.992689f, 0.992701f, 0.992712f, 0.992724f, 0.992736f, 0.992747f,
+ 0.992759f, 0.992770f, 0.992782f, 0.992793f, 0.992805f, 0.992816f, 0.992828f, 0.992839f,
+ 0.992850f, 0.992862f, 0.992873f, 0.992885f, 0.992896f, 0.992908f, 0.992919f, 0.992930f,
+ 0.992942f, 0.992953f, 0.992964f, 0.992976f, 0.992987f, 0.992998f, 0.993010f, 0.993021f,
+ 0.993032f, 0.993044f, 0.993055f, 0.993066f, 0.993077f, 0.993089f, 0.993100f, 0.993111f,
+ 0.993122f, 0.993134f, 0.993145f, 0.993156f, 0.993167f, 0.993178f, 0.993190f, 0.993201f,
+ 0.993212f, 0.993223f, 0.993234f, 0.993245f, 0.993257f, 0.993268f, 0.993279f, 0.993290f,
+ 0.993301f, 0.993312f, 0.993323f, 0.993334f, 0.993345f, 0.993356f, 0.993367f, 0.993378f,
+ 0.993389f, 0.993400f, 0.993411f, 0.993422f, 0.993433f, 0.993444f, 0.993455f, 0.993466f,
+ 0.993477f, 0.993488f, 0.993499f, 0.993510f, 0.993521f, 0.993532f, 0.993542f, 0.993553f,
+ 0.993564f, 0.993575f, 0.993586f, 0.993597f, 0.993608f, 0.993618f, 0.993629f, 0.993640f,
+ 0.993651f, 0.993662f, 0.993672f, 0.993683f, 0.993694f, 0.993705f, 0.993715f, 0.993726f,
+ 0.993737f, 0.993747f, 0.993758f, 0.993769f, 0.993779f, 0.993790f, 0.993801f, 0.993811f,
+ 0.993822f, 0.993833f, 0.993843f, 0.993854f, 0.993865f, 0.993875f, 0.993886f, 0.993896f,
+ 0.993907f, 0.993918f, 0.993928f, 0.993939f, 0.993949f, 0.993960f, 0.993970f, 0.993981f,
+ 0.993991f, 0.994002f, 0.994012f, 0.994023f, 0.994033f, 0.994044f, 0.994054f, 0.994064f,
+ 0.994075f, 0.994085f, 0.994096f, 0.994106f, 0.994116f, 0.994127f, 0.994137f, 0.994148f,
+ 0.994158f, 0.994168f, 0.994179f, 0.994189f, 0.994199f, 0.994210f, 0.994220f, 0.994230f,
+ 0.994240f, 0.994251f, 0.994261f, 0.994271f, 0.994281f, 0.994292f, 0.994302f, 0.994312f,
+ 0.994322f, 0.994333f, 0.994343f, 0.994353f, 0.994363f, 0.994373f, 0.994383f, 0.994394f,
+ 0.994404f, 0.994414f, 0.994424f, 0.994434f, 0.994444f, 0.994454f, 0.994464f, 0.994474f,
+ 0.994484f, 0.994494f, 0.994505f, 0.994515f, 0.994525f, 0.994535f, 0.994545f, 0.994555f,
+ 0.994565f, 0.994575f, 0.994585f, 0.994594f, 0.994604f, 0.994614f, 0.994624f, 0.994634f,
+ 0.994644f, 0.994654f, 0.994664f, 0.994674f, 0.994684f, 0.994694f, 0.994703f, 0.994713f,
+ 0.994723f, 0.994733f, 0.994743f, 0.994753f, 0.994762f, 0.994772f, 0.994782f, 0.994792f,
+ 0.994802f, 0.994811f, 0.994821f, 0.994831f, 0.994841f, 0.994850f, 0.994860f, 0.994870f,
+ 0.994879f, 0.994889f, 0.994899f, 0.994908f, 0.994918f, 0.994928f, 0.994937f, 0.994947f,
+ 0.994957f, 0.994966f, 0.994976f, 0.994985f, 0.994995f, 0.995005f, 0.995014f, 0.995024f,
+ 0.995033f, 0.995043f, 0.995052f, 0.995062f, 0.995071f, 0.995081f, 0.995090f, 0.995100f,
+ 0.995109f, 0.995119f, 0.995128f, 0.995138f, 0.995147f, 0.995156f, 0.995166f, 0.995175f,
+ 0.995185f, 0.995194f, 0.995203f, 0.995213f, 0.995222f, 0.995232f, 0.995241f, 0.995250f,
+ 0.995260f, 0.995269f, 0.995278f, 0.995288f, 0.995297f, 0.995306f, 0.995315f, 0.995325f,
+ 0.995334f, 0.995343f, 0.995352f, 0.995362f, 0.995371f, 0.995380f, 0.995389f, 0.995398f,
+ 0.995408f, 0.995417f, 0.995426f, 0.995435f, 0.995444f, 0.995453f, 0.995463f, 0.995472f,
+ 0.995481f, 0.995490f, 0.995499f, 0.995508f, 0.995517f, 0.995526f, 0.995535f, 0.995544f,
+ 0.995553f, 0.995562f, 0.995571f, 0.995580f, 0.995589f, 0.995598f, 0.995607f, 0.995616f,
+ 0.995625f, 0.995634f, 0.995643f, 0.995652f, 0.995661f, 0.995670f, 0.995679f, 0.995688f,
+ 0.995697f, 0.995705f, 0.995714f, 0.995723f, 0.995732f, 0.995741f, 0.995750f, 0.995759f,
+ 0.995767f, 0.995776f, 0.995785f, 0.995794f, 0.995803f, 0.995811f, 0.995820f, 0.995829f,
+ 0.995838f, 0.995846f, 0.995855f, 0.995864f, 0.995872f, 0.995881f, 0.995890f, 0.995899f,
+ 0.995907f, 0.995916f, 0.995925f, 0.995933f, 0.995942f, 0.995950f, 0.995959f, 0.995968f,
+ 0.995976f, 0.995985f, 0.995993f, 0.996002f, 0.996011f, 0.996019f, 0.996028f, 0.996036f,
+ 0.996045f, 0.996053f, 0.996062f, 0.996070f, 0.996079f, 0.996087f, 0.996096f, 0.996104f,
+ 0.996113f, 0.996121f, 0.996129f, 0.996138f, 0.996146f, 0.996155f, 0.996163f, 0.996171f,
+ 0.996180f, 0.996188f, 0.996197f, 0.996205f, 0.996213f, 0.996222f, 0.996230f, 0.996238f,
+ 0.996247f, 0.996255f, 0.996263f, 0.996271f, 0.996280f, 0.996288f, 0.996296f, 0.996304f,
+ 0.996313f, 0.996321f, 0.996329f, 0.996337f, 0.996345f, 0.996354f, 0.996362f, 0.996370f,
+ 0.996378f, 0.996386f, 0.996394f, 0.996403f, 0.996411f, 0.996419f, 0.996427f, 0.996435f,
+ 0.996443f, 0.996451f, 0.996459f, 0.996467f, 0.996475f, 0.996483f, 0.996491f, 0.996499f,
+ 0.996507f, 0.996515f, 0.996523f, 0.996531f, 0.996539f, 0.996547f, 0.996555f, 0.996563f,
+ 0.996571f, 0.996579f, 0.996587f, 0.996595f, 0.996603f, 0.996611f, 0.996619f, 0.996626f,
+ 0.996634f, 0.996642f, 0.996650f, 0.996658f, 0.996666f, 0.996674f, 0.996681f, 0.996689f,
+ 0.996697f, 0.996705f, 0.996712f, 0.996720f, 0.996728f, 0.996736f, 0.996743f, 0.996751f,
+ 0.996759f, 0.996767f, 0.996774f, 0.996782f, 0.996790f, 0.996797f, 0.996805f, 0.996813f,
+ 0.996820f, 0.996828f, 0.996836f, 0.996843f, 0.996851f, 0.996858f, 0.996866f, 0.996874f,
+ 0.996881f, 0.996889f, 0.996896f, 0.996904f, 0.996911f, 0.996919f, 0.996926f, 0.996934f,
+ 0.996941f, 0.996949f, 0.996956f, 0.996964f, 0.996971f, 0.996979f, 0.996986f, 0.996994f,
+ 0.997001f, 0.997008f, 0.997016f, 0.997023f, 0.997031f, 0.997038f, 0.997045f, 0.997053f,
+ 0.997060f, 0.997067f, 0.997075f, 0.997082f, 0.997089f, 0.997097f, 0.997104f, 0.997111f,
+ 0.997119f, 0.997126f, 0.997133f, 0.997140f, 0.997148f, 0.997155f, 0.997162f, 0.997169f,
+ 0.997176f, 0.997184f, 0.997191f, 0.997198f, 0.997205f, 0.997212f, 0.997219f, 0.997227f,
+ 0.997234f, 0.997241f, 0.997248f, 0.997255f, 0.997262f, 0.997269f, 0.997276f, 0.997283f,
+ 0.997290f, 0.997298f, 0.997305f, 0.997312f, 0.997319f, 0.997326f, 0.997333f, 0.997340f,
+ 0.997347f, 0.997354f, 0.997361f, 0.997368f, 0.997374f, 0.997381f, 0.997388f, 0.997395f,
+ 0.997402f, 0.997409f, 0.997416f, 0.997423f, 0.997430f, 0.997437f, 0.997443f, 0.997450f,
+ 0.997457f, 0.997464f, 0.997471f, 0.997478f, 0.997484f, 0.997491f, 0.997498f, 0.997505f,
+ 0.997511f, 0.997518f, 0.997525f, 0.997532f, 0.997538f, 0.997545f, 0.997552f, 0.997559f,
+ 0.997565f, 0.997572f, 0.997579f, 0.997585f, 0.997592f, 0.997599f, 0.997605f, 0.997612f,
+ 0.997618f, 0.997625f, 0.997632f, 0.997638f, 0.997645f, 0.997651f, 0.997658f, 0.997665f,
+ 0.997671f, 0.997678f, 0.997684f, 0.997691f, 0.997697f, 0.997704f, 0.997710f, 0.997717f,
+ 0.997723f, 0.997730f, 0.997736f, 0.997742f, 0.997749f, 0.997755f, 0.997762f, 0.997768f,
+ 0.997774f, 0.997781f, 0.997787f, 0.997794f, 0.997800f, 0.997806f, 0.997813f, 0.997819f,
+ 0.997825f, 0.997832f, 0.997838f, 0.997844f, 0.997851f, 0.997857f, 0.997863f, 0.997869f,
+ 0.997876f, 0.997882f, 0.997888f, 0.997894f, 0.997901f, 0.997907f, 0.997913f, 0.997919f,
+ 0.997925f, 0.997931f, 0.997938f, 0.997944f, 0.997950f, 0.997956f, 0.997962f, 0.997968f,
+ 0.997974f, 0.997980f, 0.997987f, 0.997993f, 0.997999f, 0.998005f, 0.998011f, 0.998017f,
+ 0.998023f, 0.998029f, 0.998035f, 0.998041f, 0.998047f, 0.998053f, 0.998059f, 0.998065f,
+ 0.998071f, 0.998077f, 0.998083f, 0.998089f, 0.998094f, 0.998100f, 0.998106f, 0.998112f,
+ 0.998118f, 0.998124f, 0.998130f, 0.998136f, 0.998142f, 0.998147f, 0.998153f, 0.998159f,
+ 0.998165f, 0.998171f, 0.998176f, 0.998182f, 0.998188f, 0.998194f, 0.998200f, 0.998205f,
+ 0.998211f, 0.998217f, 0.998222f, 0.998228f, 0.998234f, 0.998240f, 0.998245f, 0.998251f,
+ 0.998257f, 0.998262f, 0.998268f, 0.998273f, 0.998279f, 0.998285f, 0.998290f, 0.998296f,
+ 0.998302f, 0.998307f, 0.998313f, 0.998318f, 0.998324f, 0.998329f, 0.998335f, 0.998340f,
+ 0.998346f, 0.998351f, 0.998357f, 0.998362f, 0.998368f, 0.998373f, 0.998379f, 0.998384f,
+ 0.998390f, 0.998395f, 0.998401f, 0.998406f, 0.998411f, 0.998417f, 0.998422f, 0.998428f,
+ 0.998433f, 0.998438f, 0.998444f, 0.998449f, 0.998454f, 0.998460f, 0.998465f, 0.998470f,
+ 0.998476f, 0.998481f, 0.998486f, 0.998491f, 0.998497f, 0.998502f, 0.998507f, 0.998512f,
+ 0.998518f, 0.998523f, 0.998528f, 0.998533f, 0.998538f, 0.998544f, 0.998549f, 0.998554f,
+ 0.998559f, 0.998564f, 0.998569f, 0.998574f, 0.998580f, 0.998585f, 0.998590f, 0.998595f,
+ 0.998600f, 0.998605f, 0.998610f, 0.998615f, 0.998620f, 0.998625f, 0.998630f, 0.998635f,
+ 0.998640f, 0.998645f, 0.998650f, 0.998655f, 0.998660f, 0.998665f, 0.998670f, 0.998675f,
+ 0.998680f, 0.998685f, 0.998690f, 0.998695f, 0.998700f, 0.998704f, 0.998709f, 0.998714f,
+ 0.998719f, 0.998724f, 0.998729f, 0.998734f, 0.998738f, 0.998743f, 0.998748f, 0.998753f,
+ 0.998758f, 0.998762f, 0.998767f, 0.998772f, 0.998777f, 0.998781f, 0.998786f, 0.998791f,
+ 0.998795f, 0.998800f, 0.998805f, 0.998810f, 0.998814f, 0.998819f, 0.998824f, 0.998828f,
+ 0.998833f, 0.998837f, 0.998842f, 0.998847f, 0.998851f, 0.998856f, 0.998860f, 0.998865f,
+ 0.998870f, 0.998874f, 0.998879f, 0.998883f, 0.998888f, 0.998892f, 0.998897f, 0.998901f,
+ 0.998906f, 0.998910f, 0.998915f, 0.998919f, 0.998924f, 0.998928f, 0.998932f, 0.998937f,
+ 0.998941f, 0.998946f, 0.998950f, 0.998954f, 0.998959f, 0.998963f, 0.998968f, 0.998972f,
+ 0.998976f, 0.998981f, 0.998985f, 0.998989f, 0.998994f, 0.998998f, 0.999002f, 0.999006f,
+ 0.999011f, 0.999015f, 0.999019f, 0.999023f, 0.999028f, 0.999032f, 0.999036f, 0.999040f,
+ 0.999044f, 0.999049f, 0.999053f, 0.999057f, 0.999061f, 0.999065f, 0.999069f, 0.999074f,
+ 0.999078f, 0.999082f, 0.999086f, 0.999090f, 0.999094f, 0.999098f, 0.999102f, 0.999106f,
+ 0.999110f, 0.999114f, 0.999118f, 0.999122f, 0.999126f, 0.999130f, 0.999134f, 0.999138f,
+ 0.999142f, 0.999146f, 0.999150f, 0.999154f, 0.999158f, 0.999162f, 0.999166f, 0.999170f,
+ 0.999174f, 0.999178f, 0.999182f, 0.999186f, 0.999189f, 0.999193f, 0.999197f, 0.999201f,
+ 0.999205f, 0.999209f, 0.999212f, 0.999216f, 0.999220f, 0.999224f, 0.999228f, 0.999231f,
+ 0.999235f, 0.999239f, 0.999243f, 0.999246f, 0.999250f, 0.999254f, 0.999257f, 0.999261f,
+ 0.999265f, 0.999268f, 0.999272f, 0.999276f, 0.999279f, 0.999283f, 0.999287f, 0.999290f,
+ 0.999294f, 0.999297f, 0.999301f, 0.999305f, 0.999308f, 0.999312f, 0.999315f, 0.999319f,
+ 0.999322f, 0.999326f, 0.999329f, 0.999333f, 0.999336f, 0.999340f, 0.999343f, 0.999347f,
+ 0.999350f, 0.999354f, 0.999357f, 0.999361f, 0.999364f, 0.999367f, 0.999371f, 0.999374f,
+ 0.999378f, 0.999381f, 0.999384f, 0.999388f, 0.999391f, 0.999394f, 0.999398f, 0.999401f,
+ 0.999404f, 0.999408f, 0.999411f, 0.999414f, 0.999418f, 0.999421f, 0.999424f, 0.999427f,
+ 0.999431f, 0.999434f, 0.999437f, 0.999440f, 0.999443f, 0.999447f, 0.999450f, 0.999453f,
+ 0.999456f, 0.999459f, 0.999462f, 0.999466f, 0.999469f, 0.999472f, 0.999475f, 0.999478f,
+ 0.999481f, 0.999484f, 0.999487f, 0.999490f, 0.999493f, 0.999497f, 0.999500f, 0.999503f,
+ 0.999506f, 0.999509f, 0.999512f, 0.999515f, 0.999518f, 0.999521f, 0.999524f, 0.999527f,
+ 0.999529f, 0.999532f, 0.999535f, 0.999538f, 0.999541f, 0.999544f, 0.999547f, 0.999550f,
+ 0.999553f, 0.999556f, 0.999558f, 0.999561f, 0.999564f, 0.999567f, 0.999570f, 0.999573f,
+ 0.999575f, 0.999578f, 0.999581f, 0.999584f, 0.999586f, 0.999589f, 0.999592f, 0.999595f,
+ 0.999597f, 0.999600f, 0.999603f, 0.999605f, 0.999608f, 0.999611f, 0.999614f, 0.999616f,
+ 0.999619f, 0.999621f, 0.999624f, 0.999627f, 0.999629f, 0.999632f, 0.999635f, 0.999637f,
+ 0.999640f, 0.999642f, 0.999645f, 0.999647f, 0.999650f, 0.999652f, 0.999655f, 0.999658f,
+ 0.999660f, 0.999663f, 0.999665f, 0.999667f, 0.999670f, 0.999672f, 0.999675f, 0.999677f,
+ 0.999680f, 0.999682f, 0.999685f, 0.999687f, 0.999689f, 0.999692f, 0.999694f, 0.999696f,
+ 0.999699f, 0.999701f, 0.999704f, 0.999706f, 0.999708f, 0.999710f, 0.999713f, 0.999715f,
+ 0.999717f, 0.999720f, 0.999722f, 0.999724f, 0.999726f, 0.999729f, 0.999731f, 0.999733f,
+ 0.999735f, 0.999738f, 0.999740f, 0.999742f, 0.999744f, 0.999746f, 0.999748f, 0.999750f,
+ 0.999753f, 0.999755f, 0.999757f, 0.999759f, 0.999761f, 0.999763f, 0.999765f, 0.999767f,
+ 0.999769f, 0.999771f, 0.999774f, 0.999776f, 0.999778f, 0.999780f, 0.999782f, 0.999784f,
+ 0.999786f, 0.999788f, 0.999790f, 0.999792f, 0.999793f, 0.999795f, 0.999797f, 0.999799f,
+ 0.999801f, 0.999803f, 0.999805f, 0.999807f, 0.999809f, 0.999811f, 0.999812f, 0.999814f,
+ 0.999816f, 0.999818f, 0.999820f, 0.999822f, 0.999823f, 0.999825f, 0.999827f, 0.999829f,
+ 0.999831f, 0.999832f, 0.999834f, 0.999836f, 0.999838f, 0.999839f, 0.999841f, 0.999843f,
+ 0.999844f, 0.999846f, 0.999848f, 0.999849f, 0.999851f, 0.999853f, 0.999854f, 0.999856f,
+ 0.999858f, 0.999859f, 0.999861f, 0.999862f, 0.999864f, 0.999866f, 0.999867f, 0.999869f,
+ 0.999870f, 0.999872f, 0.999873f, 0.999875f, 0.999876f, 0.999878f, 0.999879f, 0.999881f,
+ 0.999882f, 0.999884f, 0.999885f, 0.999887f, 0.999888f, 0.999890f, 0.999891f, 0.999892f,
+ 0.999894f, 0.999895f, 0.999897f, 0.999898f, 0.999899f, 0.999901f, 0.999902f, 0.999903f,
+ 0.999905f, 0.999906f, 0.999907f, 0.999909f, 0.999910f, 0.999911f, 0.999913f, 0.999914f,
+ 0.999915f, 0.999916f, 0.999917f, 0.999919f, 0.999920f, 0.999921f, 0.999922f, 0.999924f,
+ 0.999925f, 0.999926f, 0.999927f, 0.999928f, 0.999929f, 0.999930f, 0.999932f, 0.999933f,
+ 0.999934f, 0.999935f, 0.999936f, 0.999937f, 0.999938f, 0.999939f, 0.999940f, 0.999941f,
+ 0.999942f, 0.999943f, 0.999944f, 0.999945f, 0.999946f, 0.999947f, 0.999948f, 0.999949f,
+ 0.999950f, 0.999951f, 0.999952f, 0.999953f, 0.999954f, 0.999955f, 0.999956f, 0.999957f,
+ 0.999958f, 0.999959f, 0.999959f, 0.999960f, 0.999961f, 0.999962f, 0.999963f, 0.999964f,
+ 0.999964f, 0.999965f, 0.999966f, 0.999967f, 0.999968f, 0.999968f, 0.999969f, 0.999970f,
+ 0.999971f, 0.999971f, 0.999972f, 0.999973f, 0.999973f, 0.999974f, 0.999975f, 0.999976f,
+ 0.999976f, 0.999977f, 0.999977f, 0.999978f, 0.999979f, 0.999979f, 0.999980f, 0.999981f,
+ 0.999981f, 0.999982f, 0.999982f, 0.999983f, 0.999983f, 0.999984f, 0.999985f, 0.999985f,
+ 0.999986f, 0.999986f, 0.999987f, 0.999987f, 0.999988f, 0.999988f, 0.999988f, 0.999989f,
+ 0.999989f, 0.999990f, 0.999990f, 0.999991f, 0.999991f, 0.999991f, 0.999992f, 0.999992f,
+ 0.999993f, 0.999993f, 0.999993f, 0.999994f, 0.999994f, 0.999994f, 0.999995f, 0.999995f,
+ 0.999995f, 0.999996f, 0.999996f, 0.999996f, 0.999996f, 0.999997f, 0.999997f, 0.999997f,
+ 0.999997f, 0.999998f, 0.999998f, 0.999998f, 0.999998f, 0.999998f, 0.999999f, 0.999999f,
+ 0.999999f, 0.999999f, 0.999999f, 0.999999f, 0.999999f, 0.999999f, 1.000000f, 1.000000f,
+ 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f, 1.000000f,
+ 0.000000f, -0.000096f, -0.000192f, -0.000288f, -0.000383f, -0.000479f, -0.000575f, -0.000671f,
+ -0.000767f, -0.000863f, -0.000959f, -0.001055f, -0.001150f, -0.001246f, -0.001342f, -0.001438f,
+ -0.001534f, -0.001630f, -0.001726f, -0.001822f, -0.001917f, -0.002013f, -0.002109f, -0.002205f,
+ -0.002301f, -0.002397f, -0.002493f, -0.002589f, -0.002684f, -0.002780f, -0.002876f, -0.002972f,
+ -0.003068f, -0.003164f, -0.003260f, -0.003356f, -0.003451f, -0.003547f, -0.003643f, -0.003739f,
+ -0.003835f, -0.003931f, -0.004027f, -0.004123f, -0.004218f, -0.004314f, -0.004410f, -0.004506f,
+ -0.004602f, -0.004698f, -0.004794f, -0.004890f, -0.004985f, -0.005081f, -0.005177f, -0.005273f,
+ -0.005369f, -0.005465f, -0.005561f, -0.005657f, -0.005752f, -0.005848f, -0.005944f, -0.006040f,
+ -0.006136f, -0.006232f, -0.006328f, -0.006424f, -0.006519f, -0.006615f, -0.006711f, -0.006807f,
+ -0.006903f, -0.006999f, -0.007095f, -0.007190f, -0.007286f, -0.007382f, -0.007478f, -0.007574f,
+ -0.007670f, -0.007766f, -0.007862f, -0.007957f, -0.008053f, -0.008149f, -0.008245f, -0.008341f,
+ -0.008437f, -0.008533f, -0.008629f, -0.008724f, -0.008820f, -0.008916f, -0.009012f, -0.009108f,
+ -0.009204f, -0.009300f, -0.009395f, -0.009491f, -0.009587f, -0.009683f, -0.009779f, -0.009875f,
+ -0.009971f, -0.010067f, -0.010162f, -0.010258f, -0.010354f, -0.010450f, -0.010546f, -0.010642f,
+ -0.010738f, -0.010834f, -0.010929f, -0.011025f, -0.011121f, -0.011217f, -0.011313f, -0.011409f,
+ -0.011505f, -0.011600f, -0.011696f, -0.011792f, -0.011888f, -0.011984f, -0.012080f, -0.012176f,
+ -0.012272f, -0.012367f, -0.012463f, -0.012559f, -0.012655f, -0.012751f, -0.012847f, -0.012943f,
+ -0.013038f, -0.013134f, -0.013230f, -0.013326f, -0.013422f, -0.013518f, -0.013614f, -0.013710f,
+ -0.013805f, -0.013901f, -0.013997f, -0.014093f, -0.014189f, -0.014285f, -0.014381f, -0.014476f,
+ -0.014572f, -0.014668f, -0.014764f, -0.014860f, -0.014956f, -0.015052f, -0.015147f, -0.015243f,
+ -0.015339f, -0.015435f, -0.015531f, -0.015627f, -0.015723f, -0.015819f, -0.015914f, -0.016010f,
+ -0.016106f, -0.016202f, -0.016298f, -0.016394f, -0.016490f, -0.016585f, -0.016681f, -0.016777f,
+ -0.016873f, -0.016969f, -0.017065f, -0.017161f, -0.017256f, -0.017352f, -0.017448f, -0.017544f,
+ -0.017640f, -0.017736f, -0.017832f, -0.017927f, -0.018023f, -0.018119f, -0.018215f, -0.018311f,
+ -0.018407f, -0.018503f, -0.018598f, -0.018694f, -0.018790f, -0.018886f, -0.018982f, -0.019078f,
+ -0.019174f, -0.019269f, -0.019365f, -0.019461f, -0.019557f, -0.019653f, -0.019749f, -0.019845f,
+ -0.019940f, -0.020036f, -0.020132f, -0.020228f, -0.020324f, -0.020420f, -0.020516f, -0.020611f,
+ -0.020707f, -0.020803f, -0.020899f, -0.020995f, -0.021091f, -0.021187f, -0.021282f, -0.021378f,
+ -0.021474f, -0.021570f, -0.021666f, -0.021762f, -0.021857f, -0.021953f, -0.022049f, -0.022145f,
+ -0.022241f, -0.022337f, -0.022433f, -0.022528f, -0.022624f, -0.022720f, -0.022816f, -0.022912f,
+ -0.023008f, -0.023104f, -0.023199f, -0.023295f, -0.023391f, -0.023487f, -0.023583f, -0.023679f,
+ -0.023774f, -0.023870f, -0.023966f, -0.024062f, -0.024158f, -0.024254f, -0.024350f, -0.024445f,
+ -0.024541f, -0.024637f, -0.024733f, -0.024829f, -0.024925f, -0.025020f, -0.025116f, -0.025212f,
+ -0.025308f, -0.025404f, -0.025500f, -0.025596f, -0.025691f, -0.025787f, -0.025883f, -0.025979f,
+ -0.026075f, -0.026171f, -0.026266f, -0.026362f, -0.026458f, -0.026554f, -0.026650f, -0.026746f,
+ -0.026841f, -0.026937f, -0.027033f, -0.027129f, -0.027225f, -0.027321f, -0.027416f, -0.027512f,
+ -0.027608f, -0.027704f, -0.027800f, -0.027896f, -0.027991f, -0.028087f, -0.028183f, -0.028279f,
+ -0.028375f, -0.028471f, -0.028567f, -0.028662f, -0.028758f, -0.028854f, -0.028950f, -0.029046f,
+ -0.029142f, -0.029237f, -0.029333f, -0.029429f, -0.029525f, -0.029621f, -0.029717f, -0.029812f,
+ -0.029908f, -0.030004f, -0.030100f, -0.030196f, -0.030291f, -0.030387f, -0.030483f, -0.030579f,
+ -0.030675f, -0.030771f, -0.030866f, -0.030962f, -0.031058f, -0.031154f, -0.031250f, -0.031346f,
+ -0.031441f, -0.031537f, -0.031633f, -0.031729f, -0.031825f, -0.031921f, -0.032016f, -0.032112f,
+ -0.032208f, -0.032304f, -0.032400f, -0.032495f, -0.032591f, -0.032687f, -0.032783f, -0.032879f,
+ -0.032975f, -0.033070f, -0.033166f, -0.033262f, -0.033358f, -0.033454f, -0.033550f, -0.033645f,
+ -0.033741f, -0.033837f, -0.033933f, -0.034029f, -0.034124f, -0.034220f, -0.034316f, -0.034412f,
+ -0.034508f, -0.034604f, -0.034699f, -0.034795f, -0.034891f, -0.034987f, -0.035083f, -0.035178f,
+ -0.035274f, -0.035370f, -0.035466f, -0.035562f, -0.035657f, -0.035753f, -0.035849f, -0.035945f,
+ -0.036041f, -0.036137f, -0.036232f, -0.036328f, -0.036424f, -0.036520f, -0.036616f, -0.036711f,
+ -0.036807f, -0.036903f, -0.036999f, -0.037095f, -0.037190f, -0.037286f, -0.037382f, -0.037478f,
+ -0.037574f, -0.037669f, -0.037765f, -0.037861f, -0.037957f, -0.038053f, -0.038149f, -0.038244f,
+ -0.038340f, -0.038436f, -0.038532f, -0.038628f, -0.038723f, -0.038819f, -0.038915f, -0.039011f,
+ -0.039107f, -0.039202f, -0.039298f, -0.039394f, -0.039490f, -0.039586f, -0.039681f, -0.039777f,
+ -0.039873f, -0.039969f, -0.040065f, -0.040160f, -0.040256f, -0.040352f, -0.040448f, -0.040544f,
+ -0.040639f, -0.040735f, -0.040831f, -0.040927f, -0.041022f, -0.041118f, -0.041214f, -0.041310f,
+ -0.041406f, -0.041501f, -0.041597f, -0.041693f, -0.041789f, -0.041885f, -0.041980f, -0.042076f,
+ -0.042172f, -0.042268f, -0.042364f, -0.042459f, -0.042555f, -0.042651f, -0.042747f, -0.042842f,
+ -0.042938f, -0.043034f, -0.043130f, -0.043226f, -0.043321f, -0.043417f, -0.043513f, -0.043609f,
+ -0.043705f, -0.043800f, -0.043896f, -0.043992f, -0.044088f, -0.044183f, -0.044279f, -0.044375f,
+ -0.044471f, -0.044567f, -0.044662f, -0.044758f, -0.044854f, -0.044950f, -0.045045f, -0.045141f,
+ -0.045237f, -0.045333f, -0.045429f, -0.045524f, -0.045620f, -0.045716f, -0.045812f, -0.045907f,
+ -0.046003f, -0.046099f, -0.046195f, -0.046290f, -0.046386f, -0.046482f, -0.046578f, -0.046674f,
+ -0.046769f, -0.046865f, -0.046961f, -0.047057f, -0.047152f, -0.047248f, -0.047344f, -0.047440f,
+ -0.047535f, -0.047631f, -0.047727f, -0.047823f, -0.047919f, -0.048014f, -0.048110f, -0.048206f,
+ -0.048302f, -0.048397f, -0.048493f, -0.048589f, -0.048685f, -0.048780f, -0.048876f, -0.048972f,
+ -0.049068f, -0.049163f, -0.049259f, -0.049355f, -0.049451f, -0.049546f, -0.049642f, -0.049738f,
+ -0.049834f, -0.049929f, -0.050025f, -0.050121f, -0.050217f, -0.050312f, -0.050408f, -0.050504f,
+ -0.050600f, -0.050696f, -0.050791f, -0.050887f, -0.050983f, -0.051078f, -0.051174f, -0.051270f,
+ -0.051366f, -0.051461f, -0.051557f, -0.051653f, -0.051749f, -0.051844f, -0.051940f, -0.052036f,
+ -0.052132f, -0.052227f, -0.052323f, -0.052419f, -0.052515f, -0.052610f, -0.052706f, -0.052802f,
+ -0.052898f, -0.052993f, -0.053089f, -0.053185f, -0.053281f, -0.053376f, -0.053472f, -0.053568f,
+ -0.053664f, -0.053759f, -0.053855f, -0.053951f, -0.054046f, -0.054142f, -0.054238f, -0.054334f,
+ -0.054429f, -0.054525f, -0.054621f, -0.054717f, -0.054812f, -0.054908f, -0.055004f, -0.055100f,
+ -0.055195f, -0.055291f, -0.055387f, -0.055482f, -0.055578f, -0.055674f, -0.055770f, -0.055865f,
+ -0.055961f, -0.056057f, -0.056152f, -0.056248f, -0.056344f, -0.056440f, -0.056535f, -0.056631f,
+ -0.056727f, -0.056823f, -0.056918f, -0.057014f, -0.057110f, -0.057205f, -0.057301f, -0.057397f,
+ -0.057493f, -0.057588f, -0.057684f, -0.057780f, -0.057875f, -0.057971f, -0.058067f, -0.058163f,
+ -0.058258f, -0.058354f, -0.058450f, -0.058545f, -0.058641f, -0.058737f, -0.058833f, -0.058928f,
+ -0.059024f, -0.059120f, -0.059215f, -0.059311f, -0.059407f, -0.059502f, -0.059598f, -0.059694f,
+ -0.059790f, -0.059885f, -0.059981f, -0.060077f, -0.060172f, -0.060268f, -0.060364f, -0.060459f,
+ -0.060555f, -0.060651f, -0.060747f, -0.060842f, -0.060938f, -0.061034f, -0.061129f, -0.061225f,
+ -0.061321f, -0.061416f, -0.061512f, -0.061608f, -0.061704f, -0.061799f, -0.061895f, -0.061991f,
+ -0.062086f, -0.062182f, -0.062278f, -0.062373f, -0.062469f, -0.062565f, -0.062660f, -0.062756f,
+ -0.062852f, -0.062947f, -0.063043f, -0.063139f, -0.063234f, -0.063330f, -0.063426f, -0.063522f,
+ -0.063617f, -0.063713f, -0.063809f, -0.063904f, -0.064000f, -0.064096f, -0.064191f, -0.064287f,
+ -0.064383f, -0.064478f, -0.064574f, -0.064670f, -0.064765f, -0.064861f, -0.064957f, -0.065052f,
+ -0.065148f, -0.065244f, -0.065339f, -0.065435f, -0.065531f, -0.065626f, -0.065722f, -0.065818f,
+ -0.065913f, -0.066009f, -0.066105f, -0.066200f, -0.066296f, -0.066392f, -0.066487f, -0.066583f,
+ -0.066679f, -0.066774f, -0.066870f, -0.066966f, -0.067061f, -0.067157f, -0.067253f, -0.067348f,
+ -0.067444f, -0.067540f, -0.067635f, -0.067731f, -0.067827f, -0.067922f, -0.068018f, -0.068113f,
+ -0.068209f, -0.068305f, -0.068400f, -0.068496f, -0.068592f, -0.068687f, -0.068783f, -0.068879f,
+ -0.068974f, -0.069070f, -0.069166f, -0.069261f, -0.069357f, -0.069453f, -0.069548f, -0.069644f,
+ -0.069739f, -0.069835f, -0.069931f, -0.070026f, -0.070122f, -0.070218f, -0.070313f, -0.070409f,
+ -0.070505f, -0.070600f, -0.070696f, -0.070791f, -0.070887f, -0.070983f, -0.071078f, -0.071174f,
+ -0.071270f, -0.071365f, -0.071461f, -0.071557f, -0.071652f, -0.071748f, -0.071843f, -0.071939f,
+ -0.072035f, -0.072130f, -0.072226f, -0.072322f, -0.072417f, -0.072513f, -0.072608f, -0.072704f,
+ -0.072800f, -0.072895f, -0.072991f, -0.073086f, -0.073182f, -0.073278f, -0.073373f, -0.073469f,
+ -0.073565f, -0.073660f, -0.073756f, -0.073851f, -0.073947f, -0.074043f, -0.074138f, -0.074234f,
+ -0.074329f, -0.074425f, -0.074521f, -0.074616f, -0.074712f, -0.074807f, -0.074903f, -0.074999f,
+ -0.075094f, -0.075190f, -0.075286f, -0.075381f, -0.075477f, -0.075572f, -0.075668f, -0.075764f,
+ -0.075859f, -0.075955f, -0.076050f, -0.076146f, -0.076241f, -0.076337f, -0.076433f, -0.076528f,
+ -0.076624f, -0.076719f, -0.076815f, -0.076911f, -0.077006f, -0.077102f, -0.077197f, -0.077293f,
+ -0.077389f, -0.077484f, -0.077580f, -0.077675f, -0.077771f, -0.077866f, -0.077962f, -0.078058f,
+ -0.078153f, -0.078249f, -0.078344f, -0.078440f, -0.078536f, -0.078631f, -0.078727f, -0.078822f,
+ -0.078918f, -0.079013f, -0.079109f, -0.079205f, -0.079300f, -0.079396f, -0.079491f, -0.079587f,
+ -0.079682f, -0.079778f, -0.079874f, -0.079969f, -0.080065f, -0.080160f, -0.080256f, -0.080351f,
+ -0.080447f, -0.080543f, -0.080638f, -0.080734f, -0.080829f, -0.080925f, -0.081020f, -0.081116f,
+ -0.081211f, -0.081307f, -0.081403f, -0.081498f, -0.081594f, -0.081689f, -0.081785f, -0.081880f,
+ -0.081976f, -0.082071f, -0.082167f, -0.082263f, -0.082358f, -0.082454f, -0.082549f, -0.082645f,
+ -0.082740f, -0.082836f, -0.082931f, -0.083027f, -0.083122f, -0.083218f, -0.083314f, -0.083409f,
+ -0.083505f, -0.083600f, -0.083696f, -0.083791f, -0.083887f, -0.083982f, -0.084078f, -0.084173f,
+ -0.084269f, -0.084364f, -0.084460f, -0.084555f, -0.084651f, -0.084747f, -0.084842f, -0.084938f,
+ -0.085033f, -0.085129f, -0.085224f, -0.085320f, -0.085415f, -0.085511f, -0.085606f, -0.085702f,
+ -0.085797f, -0.085893f, -0.085988f, -0.086084f, -0.086179f, -0.086275f, -0.086370f, -0.086466f,
+ -0.086561f, -0.086657f, -0.086752f, -0.086848f, -0.086943f, -0.087039f, -0.087135f, -0.087230f,
+ -0.087326f, -0.087421f, -0.087517f, -0.087612f, -0.087708f, -0.087803f, -0.087899f, -0.087994f,
+ -0.088090f, -0.088185f, -0.088281f, -0.088376f, -0.088472f, -0.088567f, -0.088663f, -0.088758f,
+ -0.088854f, -0.088949f, -0.089045f, -0.089140f, -0.089236f, -0.089331f, -0.089427f, -0.089522f,
+ -0.089617f, -0.089713f, -0.089808f, -0.089904f, -0.089999f, -0.090095f, -0.090190f, -0.090286f,
+ -0.090381f, -0.090477f, -0.090572f, -0.090668f, -0.090763f, -0.090859f, -0.090954f, -0.091050f,
+ -0.091145f, -0.091241f, -0.091336f, -0.091432f, -0.091527f, -0.091623f, -0.091718f, -0.091813f,
+ -0.091909f, -0.092004f, -0.092100f, -0.092195f, -0.092291f, -0.092386f, -0.092482f, -0.092577f,
+ -0.092673f, -0.092768f, -0.092864f, -0.092959f, -0.093055f, -0.093150f, -0.093245f, -0.093341f,
+ -0.093436f, -0.093532f, -0.093627f, -0.093723f, -0.093818f, -0.093914f, -0.094009f, -0.094104f,
+ -0.094200f, -0.094295f, -0.094391f, -0.094486f, -0.094582f, -0.094677f, -0.094773f, -0.094868f,
+ -0.094963f, -0.095059f, -0.095154f, -0.095250f, -0.095345f, -0.095441f, -0.095536f, -0.095632f,
+ -0.095727f, -0.095822f, -0.095918f, -0.096013f, -0.096109f, -0.096204f, -0.096300f, -0.096395f,
+ -0.096490f, -0.096586f, -0.096681f, -0.096777f, -0.096872f, -0.096968f, -0.097063f, -0.097158f,
+ -0.097254f, -0.097349f, -0.097445f, -0.097540f, -0.097635f, -0.097731f, -0.097826f, -0.097922f,
+ -0.098017f, -0.098113f, -0.098208f, -0.098303f, -0.098399f, -0.098494f, -0.098590f, -0.098685f,
+ -0.098780f, -0.098876f, -0.098971f, -0.099067f, -0.099162f, -0.099257f, -0.099353f, -0.099448f,
+ -0.099544f, -0.099639f, -0.099734f, -0.099830f, -0.099925f, -0.100021f, -0.100116f, -0.100211f,
+ -0.100307f, -0.100402f, -0.100498f, -0.100593f, -0.100688f, -0.100784f, -0.100879f, -0.100974f,
+ -0.101070f, -0.101165f, -0.101261f, -0.101356f, -0.101451f, -0.101547f, -0.101642f, -0.101738f,
+ -0.101833f, -0.101928f, -0.102024f, -0.102119f, -0.102214f, -0.102310f, -0.102405f, -0.102500f,
+ -0.102596f, -0.102691f, -0.102787f, -0.102882f, -0.102977f, -0.103073f, -0.103168f, -0.103263f,
+ -0.103359f, -0.103454f, -0.103550f, -0.103645f, -0.103740f, -0.103836f, -0.103931f, -0.104026f,
+ -0.104122f, -0.104217f, -0.104312f, -0.104408f, -0.104503f, -0.104598f, -0.104694f, -0.104789f,
+ -0.104884f, -0.104980f, -0.105075f, -0.105170f, -0.105266f, -0.105361f, -0.105456f, -0.105552f,
+ -0.105647f, -0.105742f, -0.105838f, -0.105933f, -0.106028f, -0.106124f, -0.106219f, -0.106314f,
+ -0.106410f, -0.106505f, -0.106600f, -0.106696f, -0.106791f, -0.106886f, -0.106982f, -0.107077f,
+ -0.107172f, -0.107268f, -0.107363f, -0.107458f, -0.107554f, -0.107649f, -0.107744f, -0.107840f,
+ -0.107935f, -0.108030f, -0.108126f, -0.108221f, -0.108316f, -0.108412f, -0.108507f, -0.108602f,
+ -0.108697f, -0.108793f, -0.108888f, -0.108983f, -0.109079f, -0.109174f, -0.109269f, -0.109365f,
+ -0.109460f, -0.109555f, -0.109650f, -0.109746f, -0.109841f, -0.109936f, -0.110032f, -0.110127f,
+ -0.110222f, -0.110317f, -0.110413f, -0.110508f, -0.110603f, -0.110699f, -0.110794f, -0.110889f,
+ -0.110984f, -0.111080f, -0.111175f, -0.111270f, -0.111366f, -0.111461f, -0.111556f, -0.111651f,
+ -0.111747f, -0.111842f, -0.111937f, -0.112033f, -0.112128f, -0.112223f, -0.112318f, -0.112414f,
+ -0.112509f, -0.112604f, -0.112699f, -0.112795f, -0.112890f, -0.112985f, -0.113080f, -0.113176f,
+ -0.113271f, -0.113366f, -0.113461f, -0.113557f, -0.113652f, -0.113747f, -0.113842f, -0.113938f,
+ -0.114033f, -0.114128f, -0.114223f, -0.114319f, -0.114414f, -0.114509f, -0.114604f, -0.114700f,
+ -0.114795f, -0.114890f, -0.114985f, -0.115081f, -0.115176f, -0.115271f, -0.115366f, -0.115462f,
+ -0.115557f, -0.115652f, -0.115747f, -0.115842f, -0.115938f, -0.116033f, -0.116128f, -0.116223f,
+ -0.116319f, -0.116414f, -0.116509f, -0.116604f, -0.116700f, -0.116795f, -0.116890f, -0.116985f,
+ -0.117080f, -0.117176f, -0.117271f, -0.117366f, -0.117461f, -0.117556f, -0.117652f, -0.117747f,
+ -0.117842f, -0.117937f, -0.118032f, -0.118128f, -0.118223f, -0.118318f, -0.118413f, -0.118508f,
+ -0.118604f, -0.118699f, -0.118794f, -0.118889f, -0.118984f, -0.119080f, -0.119175f, -0.119270f,
+ -0.119365f, -0.119460f, -0.119556f, -0.119651f, -0.119746f, -0.119841f, -0.119936f, -0.120032f,
+ -0.120127f, -0.120222f, -0.120317f, -0.120412f, -0.120507f, -0.120603f, -0.120698f, -0.120793f,
+ -0.120888f, -0.120983f, -0.121078f, -0.121174f, -0.121269f, -0.121364f, -0.121459f, -0.121554f,
+ -0.121649f, -0.121745f, -0.121840f, -0.121935f, -0.122030f, -0.122125f, -0.122220f, -0.122316f,
+ -0.122411f, -0.122506f, -0.122601f, -0.122696f, -0.122791f, -0.122886f, -0.122982f, -0.123077f,
+ -0.123172f, -0.123267f, -0.123362f, -0.123457f, -0.123552f, -0.123648f, -0.123743f, -0.123838f,
+ -0.123933f, -0.124028f, -0.124123f, -0.124218f, -0.124314f, -0.124409f, -0.124504f, -0.124599f,
+ -0.124694f, -0.124789f, -0.124884f, -0.124979f, -0.125075f, -0.125170f, -0.125265f, -0.125360f,
+ -0.125455f, -0.125550f, -0.125645f, -0.125740f, -0.125835f, -0.125931f, -0.126026f, -0.126121f,
+ -0.126216f, -0.126311f, -0.126406f, -0.126501f, -0.126596f, -0.126691f, -0.126787f, -0.126882f,
+ -0.126977f, -0.127072f, -0.127167f, -0.127262f, -0.127357f, -0.127452f, -0.127547f, -0.127642f,
+ -0.127737f, -0.127833f, -0.127928f, -0.128023f, -0.128118f, -0.128213f, -0.128308f, -0.128403f,
+ -0.128498f, -0.128593f, -0.128688f, -0.128783f, -0.128878f, -0.128973f, -0.129069f, -0.129164f,
+ -0.129259f, -0.129354f, -0.129449f, -0.129544f, -0.129639f, -0.129734f, -0.129829f, -0.129924f,
+ -0.130019f, -0.130114f, -0.130209f, -0.130304f, -0.130399f, -0.130495f, -0.130590f, -0.130685f,
+ -0.130780f, -0.130875f, -0.130970f, -0.131065f, -0.131160f, -0.131255f, -0.131350f, -0.131445f,
+ -0.131540f, -0.131635f, -0.131730f, -0.131825f, -0.131920f, -0.132015f, -0.132110f, -0.132205f,
+ -0.132300f, -0.132395f, -0.132490f, -0.132585f, -0.132680f, -0.132775f, -0.132870f, -0.132966f,
+ -0.133061f, -0.133156f, -0.133251f, -0.133346f, -0.133441f, -0.133536f, -0.133631f, -0.133726f,
+ -0.133821f, -0.133916f, -0.134011f, -0.134106f, -0.134201f, -0.134296f, -0.134391f, -0.134486f,
+ -0.134581f, -0.134676f, -0.134771f, -0.134866f, -0.134961f, -0.135056f, -0.135151f, -0.135246f,
+ -0.135341f, -0.135436f, -0.135531f, -0.135626f, -0.135721f, -0.135816f, -0.135911f, -0.136006f,
+ -0.136101f, -0.136196f, -0.136291f, -0.136386f, -0.136480f, -0.136575f, -0.136670f, -0.136765f,
+ -0.136860f, -0.136955f, -0.137050f, -0.137145f, -0.137240f, -0.137335f, -0.137430f, -0.137525f,
+ -0.137620f, -0.137715f, -0.137810f, -0.137905f, -0.138000f, -0.138095f, -0.138190f, -0.138285f,
+ -0.138380f, -0.138475f, -0.138570f, -0.138665f, -0.138760f, -0.138855f, -0.138949f, -0.139044f,
+ -0.139139f, -0.139234f, -0.139329f, -0.139424f, -0.139519f, -0.139614f, -0.139709f, -0.139804f,
+ -0.139899f, -0.139994f, -0.140089f, -0.140184f, -0.140279f, -0.140373f, -0.140468f, -0.140563f,
+ -0.140658f, -0.140753f, -0.140848f, -0.140943f, -0.141038f, -0.141133f, -0.141228f, -0.141323f,
+ -0.141418f, -0.141512f, -0.141607f, -0.141702f, -0.141797f, -0.141892f, -0.141987f, -0.142082f,
+ -0.142177f, -0.142272f, -0.142367f, -0.142461f, -0.142556f, -0.142651f, -0.142746f, -0.142841f,
+ -0.142936f, -0.143031f, -0.143126f, -0.143221f, -0.143316f, -0.143410f, -0.143505f, -0.143600f,
+ -0.143695f, -0.143790f, -0.143885f, -0.143980f, -0.144075f, -0.144169f, -0.144264f, -0.144359f,
+ -0.144454f, -0.144549f, -0.144644f, -0.144739f, -0.144833f, -0.144928f, -0.145023f, -0.145118f,
+ -0.145213f, -0.145308f, -0.145403f, -0.145497f, -0.145592f, -0.145687f, -0.145782f, -0.145877f,
+ -0.145972f, -0.146067f, -0.146161f, -0.146256f, -0.146351f, -0.146446f, -0.146541f, -0.146636f,
+ -0.146730f, -0.146825f, -0.146920f, -0.147015f, -0.147110f, -0.147205f, -0.147299f, -0.147394f,
+ -0.147489f, -0.147584f, -0.147679f, -0.147774f, -0.147868f, -0.147963f, -0.148058f, -0.148153f,
+ -0.148248f, -0.148342f, -0.148437f, -0.148532f, -0.148627f, -0.148722f, -0.148817f, -0.148911f,
+ -0.149006f, -0.149101f, -0.149196f, -0.149291f, -0.149385f, -0.149480f, -0.149575f, -0.149670f,
+ -0.149765f, -0.149859f, -0.149954f, -0.150049f, -0.150144f, -0.150238f, -0.150333f, -0.150428f,
+ -0.150523f, -0.150618f, -0.150712f, -0.150807f, -0.150902f, -0.150997f, -0.151092f, -0.151186f,
+ -0.151281f, -0.151376f, -0.151471f, -0.151565f, -0.151660f, -0.151755f, -0.151850f, -0.151944f,
+ -0.152039f, -0.152134f, -0.152229f, -0.152323f, -0.152418f, -0.152513f, -0.152608f, -0.152702f,
+ -0.152797f, -0.152892f, -0.152987f, -0.153081f, -0.153176f, -0.153271f, -0.153366f, -0.153460f,
+ -0.153555f, -0.153650f, -0.153745f, -0.153839f, -0.153934f, -0.154029f, -0.154124f, -0.154218f,
+ -0.154313f, -0.154408f, -0.154502f, -0.154597f, -0.154692f, -0.154787f, -0.154881f, -0.154976f,
+ -0.155071f, -0.155165f, -0.155260f, -0.155355f, -0.155450f, -0.155544f, -0.155639f, -0.155734f,
+ -0.155828f, -0.155923f, -0.156018f, -0.156112f, -0.156207f, -0.156302f, -0.156397f, -0.156491f,
+ -0.156586f, -0.156681f, -0.156775f, -0.156870f, -0.156965f, -0.157059f, -0.157154f, -0.157249f,
+ -0.157343f, -0.157438f, -0.157533f, -0.157627f, -0.157722f, -0.157817f, -0.157912f, -0.158006f,
+ -0.158101f, -0.158196f, -0.158290f, -0.158385f, -0.158480f, -0.158574f, -0.158669f, -0.158763f,
+ -0.158858f, -0.158953f, -0.159047f, -0.159142f, -0.159237f, -0.159331f, -0.159426f, -0.159521f,
+ -0.159615f, -0.159710f, -0.159805f, -0.159899f, -0.159994f, -0.160089f, -0.160183f, -0.160278f,
+ -0.160372f, -0.160467f, -0.160562f, -0.160656f, -0.160751f, -0.160846f, -0.160940f, -0.161035f,
+ -0.161129f, -0.161224f, -0.161319f, -0.161413f, -0.161508f, -0.161603f, -0.161697f, -0.161792f,
+ -0.161886f, -0.161981f, -0.162076f, -0.162170f, -0.162265f, -0.162359f, -0.162454f, -0.162549f,
+ -0.162643f, -0.162738f, -0.162832f, -0.162927f, -0.163022f, -0.163116f, -0.163211f, -0.163305f,
+ -0.163400f, -0.163495f, -0.163589f, -0.163684f, -0.163778f, -0.163873f, -0.163967f, -0.164062f,
+ -0.164157f, -0.164251f, -0.164346f, -0.164440f, -0.164535f, -0.164629f, -0.164724f, -0.164819f,
+ -0.164913f, -0.165008f, -0.165102f, -0.165197f, -0.165291f, -0.165386f, -0.165480f, -0.165575f,
+ -0.165670f, -0.165764f, -0.165859f, -0.165953f, -0.166048f, -0.166142f, -0.166237f, -0.166331f,
+ -0.166426f, -0.166520f, -0.166615f, -0.166710f, -0.166804f, -0.166899f, -0.166993f, -0.167088f,
+ -0.167182f, -0.167277f, -0.167371f, -0.167466f, -0.167560f, -0.167655f, -0.167749f, -0.167844f,
+ -0.167938f, -0.168033f, -0.168127f, -0.168222f, -0.168316f, -0.168411f, -0.168505f, -0.168600f,
+ -0.168694f, -0.168789f, -0.168883f, -0.168978f, -0.169072f, -0.169167f, -0.169261f, -0.169356f,
+ -0.169450f, -0.169545f, -0.169639f, -0.169734f, -0.169828f, -0.169923f, -0.170017f, -0.170112f,
+ -0.170206f, -0.170301f, -0.170395f, -0.170490f, -0.170584f, -0.170678f, -0.170773f, -0.170867f,
+ -0.170962f, -0.171056f, -0.171151f, -0.171245f, -0.171340f, -0.171434f, -0.171529f, -0.171623f,
+ -0.171718f, -0.171812f, -0.171906f, -0.172001f, -0.172095f, -0.172190f, -0.172284f, -0.172379f,
+ -0.172473f, -0.172568f, -0.172662f, -0.172756f, -0.172851f, -0.172945f, -0.173040f, -0.173134f,
+ -0.173229f, -0.173323f, -0.173417f, -0.173512f, -0.173606f, -0.173701f, -0.173795f, -0.173889f,
+ -0.173984f, -0.174078f, -0.174173f, -0.174267f, -0.174362f, -0.174456f, -0.174550f, -0.174645f,
+ -0.174739f, -0.174834f, -0.174928f, -0.175022f, -0.175117f, -0.175211f, -0.175305f, -0.175400f,
+ -0.175494f, -0.175589f, -0.175683f, -0.175777f, -0.175872f, -0.175966f, -0.176061f, -0.176155f,
+ -0.176249f, -0.176344f, -0.176438f, -0.176532f, -0.176627f, -0.176721f, -0.176815f, -0.176910f,
+ -0.177004f, -0.177099f, -0.177193f, -0.177287f, -0.177382f, -0.177476f, -0.177570f, -0.177665f,
+ -0.177759f, -0.177853f, -0.177948f, -0.178042f, -0.178136f, -0.178231f, -0.178325f, -0.178419f,
+ -0.178514f, -0.178608f, -0.178702f, -0.178797f, -0.178891f, -0.178985f, -0.179080f, -0.179174f,
+ -0.179268f, -0.179363f, -0.179457f, -0.179551f, -0.179646f, -0.179740f, -0.179834f, -0.179929f,
+ -0.180023f, -0.180117f, -0.180212f, -0.180306f, -0.180400f, -0.180494f, -0.180589f, -0.180683f,
+ -0.180777f, -0.180872f, -0.180966f, -0.181060f, -0.181154f, -0.181249f, -0.181343f, -0.181437f,
+ -0.181532f, -0.181626f, -0.181720f, -0.181814f, -0.181909f, -0.182003f, -0.182097f, -0.182192f,
+ -0.182286f, -0.182380f, -0.182474f, -0.182569f, -0.182663f, -0.182757f, -0.182851f, -0.182946f,
+ -0.183040f, -0.183134f, -0.183228f, -0.183323f, -0.183417f, -0.183511f, -0.183605f, -0.183700f,
+ -0.183794f, -0.183888f, -0.183982f, -0.184077f, -0.184171f, -0.184265f, -0.184359f, -0.184454f,
+ -0.184548f, -0.184642f, -0.184736f, -0.184830f, -0.184925f, -0.185019f, -0.185113f, -0.185207f,
+ -0.185301f, -0.185396f, -0.185490f, -0.185584f, -0.185678f, -0.185773f, -0.185867f, -0.185961f,
+ -0.186055f, -0.186149f, -0.186244f, -0.186338f, -0.186432f, -0.186526f, -0.186620f, -0.186715f,
+ -0.186809f, -0.186903f, -0.186997f, -0.187091f, -0.187185f, -0.187280f, -0.187374f, -0.187468f,
+ -0.187562f, -0.187656f, -0.187750f, -0.187845f, -0.187939f, -0.188033f, -0.188127f, -0.188221f,
+ -0.188315f, -0.188410f, -0.188504f, -0.188598f, -0.188692f, -0.188786f, -0.188880f, -0.188975f,
+ -0.189069f, -0.189163f, -0.189257f, -0.189351f, -0.189445f, -0.189539f, -0.189634f, -0.189728f,
+ -0.189822f, -0.189916f, -0.190010f, -0.190104f, -0.190198f, -0.190292f, -0.190387f, -0.190481f,
+ -0.190575f, -0.190669f, -0.190763f, -0.190857f, -0.190951f, -0.191045f, -0.191139f, -0.191234f,
+ -0.191328f, -0.191422f, -0.191516f, -0.191610f, -0.191704f, -0.191798f, -0.191892f, -0.191986f,
+ -0.192080f, -0.192174f, -0.192269f, -0.192363f, -0.192457f, -0.192551f, -0.192645f, -0.192739f,
+ -0.192833f, -0.192927f, -0.193021f, -0.193115f, -0.193209f, -0.193303f, -0.193397f, -0.193492f,
+ -0.193586f, -0.193680f, -0.193774f, -0.193868f, -0.193962f, -0.194056f, -0.194150f, -0.194244f,
+ -0.194338f, -0.194432f, -0.194526f, -0.194620f, -0.194714f, -0.194808f, -0.194902f, -0.194996f,
+ -0.195090f, -0.195184f, -0.195278f, -0.195372f, -0.195466f, -0.195560f, -0.195654f, -0.195748f,
+ -0.195843f, -0.195937f, -0.196031f, -0.196125f, -0.196219f, -0.196313f, -0.196407f, -0.196501f,
+ -0.196595f, -0.196689f, -0.196783f, -0.196877f, -0.196971f, -0.197065f, -0.197159f, -0.197253f,
+ -0.197347f, -0.197441f, -0.197535f, -0.197629f, -0.197722f, -0.197816f, -0.197910f, -0.198004f,
+ -0.198098f, -0.198192f, -0.198286f, -0.198380f, -0.198474f, -0.198568f, -0.198662f, -0.198756f,
+ -0.198850f, -0.198944f, -0.199038f, -0.199132f, -0.199226f, -0.199320f, -0.199414f, -0.199508f,
+ -0.199602f, -0.199696f, -0.199790f, -0.199884f, -0.199978f, -0.200071f, -0.200165f, -0.200259f,
+ -0.200353f, -0.200447f, -0.200541f, -0.200635f, -0.200729f, -0.200823f, -0.200917f, -0.201011f,
+ -0.201105f, -0.201199f, -0.201292f, -0.201386f, -0.201480f, -0.201574f, -0.201668f, -0.201762f,
+ -0.201856f, -0.201950f, -0.202044f, -0.202138f, -0.202231f, -0.202325f, -0.202419f, -0.202513f,
+ -0.202607f, -0.202701f, -0.202795f, -0.202889f, -0.202983f, -0.203076f, -0.203170f, -0.203264f,
+ -0.203358f, -0.203452f, -0.203546f, -0.203640f, -0.203734f, -0.203827f, -0.203921f, -0.204015f,
+ -0.204109f, -0.204203f, -0.204297f, -0.204391f, -0.204484f, -0.204578f, -0.204672f, -0.204766f,
+ -0.204860f, -0.204954f, -0.205047f, -0.205141f, -0.205235f, -0.205329f, -0.205423f, -0.205517f,
+ -0.205610f, -0.205704f, -0.205798f, -0.205892f, -0.205986f, -0.206080f, -0.206173f, -0.206267f,
+ -0.206361f, -0.206455f, -0.206549f, -0.206642f, -0.206736f, -0.206830f, -0.206924f, -0.207018f,
+ -0.207111f, -0.207205f, -0.207299f, -0.207393f, -0.207487f, -0.207580f, -0.207674f, -0.207768f,
+ -0.207862f, -0.207955f, -0.208049f, -0.208143f, -0.208237f, -0.208331f, -0.208424f, -0.208518f,
+ -0.208612f, -0.208706f, -0.208799f, -0.208893f, -0.208987f, -0.209081f, -0.209174f, -0.209268f,
+ -0.209362f, -0.209456f, -0.209549f, -0.209643f, -0.209737f, -0.209831f, -0.209924f, -0.210018f,
+ -0.210112f, -0.210206f, -0.210299f, -0.210393f, -0.210487f, -0.210580f, -0.210674f, -0.210768f,
+ -0.210862f, -0.210955f, -0.211049f, -0.211143f, -0.211237f, -0.211330f, -0.211424f, -0.211518f,
+ -0.211611f, -0.211705f, -0.211799f, -0.211892f, -0.211986f, -0.212080f, -0.212174f, -0.212267f,
+ -0.212361f, -0.212455f, -0.212548f, -0.212642f, -0.212736f, -0.212829f, -0.212923f, -0.213017f,
+ -0.213110f, -0.213204f, -0.213298f, -0.213391f, -0.213485f, -0.213579f, -0.213672f, -0.213766f,
+ -0.213860f, -0.213953f, -0.214047f, -0.214141f, -0.214234f, -0.214328f, -0.214422f, -0.214515f,
+ -0.214609f, -0.214702f, -0.214796f, -0.214890f, -0.214983f, -0.215077f, -0.215171f, -0.215264f,
+ -0.215358f, -0.215451f, -0.215545f, -0.215639f, -0.215732f, -0.215826f, -0.215920f, -0.216013f,
+ -0.216107f, -0.216200f, -0.216294f, -0.216388f, -0.216481f, -0.216575f, -0.216668f, -0.216762f,
+ -0.216856f, -0.216949f, -0.217043f, -0.217136f, -0.217230f, -0.217324f, -0.217417f, -0.217511f,
+ -0.217604f, -0.217698f, -0.217791f, -0.217885f, -0.217979f, -0.218072f, -0.218166f, -0.218259f,
+ -0.218353f, -0.218446f, -0.218540f, -0.218633f, -0.218727f, -0.218821f, -0.218914f, -0.219008f,
+ -0.219101f, -0.219195f, -0.219288f, -0.219382f, -0.219475f, -0.219569f, -0.219662f, -0.219756f,
+ -0.219850f, -0.219943f, -0.220037f, -0.220130f, -0.220224f, -0.220317f, -0.220411f, -0.220504f,
+ -0.220598f, -0.220691f, -0.220785f, -0.220878f, -0.220972f, -0.221065f, -0.221159f, -0.221252f,
+ -0.221346f, -0.221439f, -0.221533f, -0.221626f, -0.221720f, -0.221813f, -0.221907f, -0.222000f,
+ -0.222094f, -0.222187f, -0.222281f, -0.222374f, -0.222468f, -0.222561f, -0.222654f, -0.222748f,
+ -0.222841f, -0.222935f, -0.223028f, -0.223122f, -0.223215f, -0.223309f, -0.223402f, -0.223496f,
+ -0.223589f, -0.223682f, -0.223776f, -0.223869f, -0.223963f, -0.224056f, -0.224150f, -0.224243f,
+ -0.224337f, -0.224430f, -0.224523f, -0.224617f, -0.224710f, -0.224804f, -0.224897f, -0.224991f,
+ -0.225084f, -0.225177f, -0.225271f, -0.225364f, -0.225458f, -0.225551f, -0.225644f, -0.225738f,
+ -0.225831f, -0.225925f, -0.226018f, -0.226111f, -0.226205f, -0.226298f, -0.226391f, -0.226485f,
+ -0.226578f, -0.226672f, -0.226765f, -0.226858f, -0.226952f, -0.227045f, -0.227139f, -0.227232f,
+ -0.227325f, -0.227419f, -0.227512f, -0.227605f, -0.227699f, -0.227792f, -0.227885f, -0.227979f,
+ -0.228072f, -0.228165f, -0.228259f, -0.228352f, -0.228445f, -0.228539f, -0.228632f, -0.228725f,
+ -0.228819f, -0.228912f, -0.229005f, -0.229099f, -0.229192f, -0.229285f, -0.229379f, -0.229472f,
+ -0.229565f, -0.229659f, -0.229752f, -0.229845f, -0.229939f, -0.230032f, -0.230125f, -0.230218f,
+ -0.230312f, -0.230405f, -0.230498f, -0.230592f, -0.230685f, -0.230778f, -0.230872f, -0.230965f,
+ -0.231058f, -0.231151f, -0.231245f, -0.231338f, -0.231431f, -0.231524f, -0.231618f, -0.231711f,
+ -0.231804f, -0.231898f, -0.231991f, -0.232084f, -0.232177f, -0.232271f, -0.232364f, -0.232457f,
+ -0.232550f, -0.232644f, -0.232737f, -0.232830f, -0.232923f, -0.233017f, -0.233110f, -0.233203f,
+ -0.233296f, -0.233389f, -0.233483f, -0.233576f, -0.233669f, -0.233762f, -0.233856f, -0.233949f,
+ -0.234042f, -0.234135f, -0.234228f, -0.234322f, -0.234415f, -0.234508f, -0.234601f, -0.234694f,
+ -0.234788f, -0.234881f, -0.234974f, -0.235067f, -0.235160f, -0.235254f, -0.235347f, -0.235440f,
+ -0.235533f, -0.235626f, -0.235719f, -0.235813f, -0.235906f, -0.235999f, -0.236092f, -0.236185f,
+ -0.236278f, -0.236372f, -0.236465f, -0.236558f, -0.236651f, -0.236744f, -0.236837f, -0.236930f,
+ -0.237024f, -0.237117f, -0.237210f, -0.237303f, -0.237396f, -0.237489f, -0.237582f, -0.237676f,
+ -0.237769f, -0.237862f, -0.237955f, -0.238048f, -0.238141f, -0.238234f, -0.238327f, -0.238420f,
+ -0.238514f, -0.238607f, -0.238700f, -0.238793f, -0.238886f, -0.238979f, -0.239072f, -0.239165f,
+ -0.239258f, -0.239351f, -0.239445f, -0.239538f, -0.239631f, -0.239724f, -0.239817f, -0.239910f,
+ -0.240003f, -0.240096f, -0.240189f, -0.240282f, -0.240375f, -0.240468f, -0.240561f, -0.240654f,
+ -0.240748f, -0.240841f, -0.240934f, -0.241027f, -0.241120f, -0.241213f, -0.241306f, -0.241399f,
+ -0.241492f, -0.241585f, -0.241678f, -0.241771f, -0.241864f, -0.241957f, -0.242050f, -0.242143f,
+ -0.242236f, -0.242329f, -0.242422f, -0.242515f, -0.242608f, -0.242701f, -0.242794f, -0.242887f,
+ -0.242980f, -0.243073f, -0.243166f, -0.243259f, -0.243352f, -0.243445f, -0.243538f, -0.243631f,
+ -0.243724f, -0.243817f, -0.243910f, -0.244003f, -0.244096f, -0.244189f, -0.244282f, -0.244375f,
+ -0.244468f, -0.244561f, -0.244654f, -0.244747f, -0.244840f, -0.244933f, -0.245026f, -0.245119f,
+ -0.245212f, -0.245304f, -0.245397f, -0.245490f, -0.245583f, -0.245676f, -0.245769f, -0.245862f,
+ -0.245955f, -0.246048f, -0.246141f, -0.246234f, -0.246327f, -0.246420f, -0.246513f, -0.246606f,
+ -0.246698f, -0.246791f, -0.246884f, -0.246977f, -0.247070f, -0.247163f, -0.247256f, -0.247349f,
+ -0.247442f, -0.247535f, -0.247627f, -0.247720f, -0.247813f, -0.247906f, -0.247999f, -0.248092f,
+ -0.248185f, -0.248278f, -0.248370f, -0.248463f, -0.248556f, -0.248649f, -0.248742f, -0.248835f,
+ -0.248928f, -0.249020f, -0.249113f, -0.249206f, -0.249299f, -0.249392f, -0.249485f, -0.249578f,
+ -0.249670f, -0.249763f, -0.249856f, -0.249949f, -0.250042f, -0.250135f, -0.250227f, -0.250320f,
+ -0.250413f, -0.250506f, -0.250599f, -0.250691f, -0.250784f, -0.250877f, -0.250970f, -0.251063f,
+ -0.251155f, -0.251248f, -0.251341f, -0.251434f, -0.251527f, -0.251619f, -0.251712f, -0.251805f,
+ -0.251898f, -0.251991f, -0.252083f, -0.252176f, -0.252269f, -0.252362f, -0.252454f, -0.252547f,
+ -0.252640f, -0.252733f, -0.252826f, -0.252918f, -0.253011f, -0.253104f, -0.253197f, -0.253289f,
+ -0.253382f, -0.253475f, -0.253568f, -0.253660f, -0.253753f, -0.253846f, -0.253938f, -0.254031f,
+ -0.254124f, -0.254217f, -0.254309f, -0.254402f, -0.254495f, -0.254588f, -0.254680f, -0.254773f,
+ -0.254866f, -0.254958f, -0.255051f, -0.255144f, -0.255236f, -0.255329f, -0.255422f, -0.255515f,
+ -0.255607f, -0.255700f, -0.255793f, -0.255885f, -0.255978f, -0.256071f, -0.256163f, -0.256256f,
+ -0.256349f, -0.256441f, -0.256534f, -0.256627f, -0.256719f, -0.256812f, -0.256905f, -0.256997f,
+ -0.257090f, -0.257183f, -0.257275f, -0.257368f, -0.257461f, -0.257553f, -0.257646f, -0.257738f,
+ -0.257831f, -0.257924f, -0.258016f, -0.258109f, -0.258202f, -0.258294f, -0.258387f, -0.258479f,
+ -0.258572f, -0.258665f, -0.258757f, -0.258850f, -0.258943f, -0.259035f, -0.259128f, -0.259220f,
+ -0.259313f, -0.259405f, -0.259498f, -0.259591f, -0.259683f, -0.259776f, -0.259868f, -0.259961f,
+ -0.260054f, -0.260146f, -0.260239f, -0.260331f, -0.260424f, -0.260516f, -0.260609f, -0.260702f,
+ -0.260794f, -0.260887f, -0.260979f, -0.261072f, -0.261164f, -0.261257f, -0.261349f, -0.261442f,
+ -0.261534f, -0.261627f, -0.261720f, -0.261812f, -0.261905f, -0.261997f, -0.262090f, -0.262182f,
+ -0.262275f, -0.262367f, -0.262460f, -0.262552f, -0.262645f, -0.262737f, -0.262830f, -0.262922f,
+ -0.263015f, -0.263107f, -0.263200f, -0.263292f, -0.263385f, -0.263477f, -0.263570f, -0.263662f,
+ -0.263755f, -0.263847f, -0.263940f, -0.264032f, -0.264125f, -0.264217f, -0.264309f, -0.264402f,
+ -0.264494f, -0.264587f, -0.264679f, -0.264772f, -0.264864f, -0.264957f, -0.265049f, -0.265142f,
+ -0.265234f, -0.265326f, -0.265419f, -0.265511f, -0.265604f, -0.265696f, -0.265789f, -0.265881f,
+ -0.265973f, -0.266066f, -0.266158f, -0.266251f, -0.266343f, -0.266436f, -0.266528f, -0.266620f,
+ -0.266713f, -0.266805f, -0.266898f, -0.266990f, -0.267082f, -0.267175f, -0.267267f, -0.267359f,
+ -0.267452f, -0.267544f, -0.267637f, -0.267729f, -0.267821f, -0.267914f, -0.268006f, -0.268099f,
+ -0.268191f, -0.268283f, -0.268376f, -0.268468f, -0.268560f, -0.268653f, -0.268745f, -0.268837f,
+ -0.268930f, -0.269022f, -0.269114f, -0.269207f, -0.269299f, -0.269391f, -0.269484f, -0.269576f,
+ -0.269668f, -0.269761f, -0.269853f, -0.269945f, -0.270038f, -0.270130f, -0.270222f, -0.270315f,
+ -0.270407f, -0.270499f, -0.270591f, -0.270684f, -0.270776f, -0.270868f, -0.270961f, -0.271053f,
+ -0.271145f, -0.271237f, -0.271330f, -0.271422f, -0.271514f, -0.271607f, -0.271699f, -0.271791f,
+ -0.271883f, -0.271976f, -0.272068f, -0.272160f, -0.272252f, -0.272345f, -0.272437f, -0.272529f,
+ -0.272621f, -0.272714f, -0.272806f, -0.272898f, -0.272990f, -0.273083f, -0.273175f, -0.273267f,
+ -0.273359f, -0.273451f, -0.273544f, -0.273636f, -0.273728f, -0.273820f, -0.273912f, -0.274005f,
+ -0.274097f, -0.274189f, -0.274281f, -0.274374f, -0.274466f, -0.274558f, -0.274650f, -0.274742f,
+ -0.274834f, -0.274927f, -0.275019f, -0.275111f, -0.275203f, -0.275295f, -0.275387f, -0.275480f,
+ -0.275572f, -0.275664f, -0.275756f, -0.275848f, -0.275940f, -0.276033f, -0.276125f, -0.276217f,
+ -0.276309f, -0.276401f, -0.276493f, -0.276585f, -0.276678f, -0.276770f, -0.276862f, -0.276954f,
+ -0.277046f, -0.277138f, -0.277230f, -0.277322f, -0.277415f, -0.277507f, -0.277599f, -0.277691f,
+ -0.277783f, -0.277875f, -0.277967f, -0.278059f, -0.278151f, -0.278243f, -0.278336f, -0.278428f,
+ -0.278520f, -0.278612f, -0.278704f, -0.278796f, -0.278888f, -0.278980f, -0.279072f, -0.279164f,
+ -0.279256f, -0.279348f, -0.279440f, -0.279532f, -0.279624f, -0.279717f, -0.279809f, -0.279901f,
+ -0.279993f, -0.280085f, -0.280177f, -0.280269f, -0.280361f, -0.280453f, -0.280545f, -0.280637f,
+ -0.280729f, -0.280821f, -0.280913f, -0.281005f, -0.281097f, -0.281189f, -0.281281f, -0.281373f,
+ -0.281465f, -0.281557f, -0.281649f, -0.281741f, -0.281833f, -0.281925f, -0.282017f, -0.282109f,
+ -0.282201f, -0.282293f, -0.282385f, -0.282477f, -0.282569f, -0.282661f, -0.282753f, -0.282845f,
+ -0.282937f, -0.283029f, -0.283120f, -0.283212f, -0.283304f, -0.283396f, -0.283488f, -0.283580f,
+ -0.283672f, -0.283764f, -0.283856f, -0.283948f, -0.284040f, -0.284132f, -0.284224f, -0.284316f,
+ -0.284408f, -0.284499f, -0.284591f, -0.284683f, -0.284775f, -0.284867f, -0.284959f, -0.285051f,
+ -0.285143f, -0.285235f, -0.285327f, -0.285418f, -0.285510f, -0.285602f, -0.285694f, -0.285786f,
+ -0.285878f, -0.285970f, -0.286062f, -0.286153f, -0.286245f, -0.286337f, -0.286429f, -0.286521f,
+ -0.286613f, -0.286705f, -0.286796f, -0.286888f, -0.286980f, -0.287072f, -0.287164f, -0.287256f,
+ -0.287347f, -0.287439f, -0.287531f, -0.287623f, -0.287715f, -0.287807f, -0.287898f, -0.287990f,
+ -0.288082f, -0.288174f, -0.288266f, -0.288357f, -0.288449f, -0.288541f, -0.288633f, -0.288725f,
+ -0.288816f, -0.288908f, -0.289000f, -0.289092f, -0.289184f, -0.289275f, -0.289367f, -0.289459f,
+ -0.289551f, -0.289642f, -0.289734f, -0.289826f, -0.289918f, -0.290009f, -0.290101f, -0.290193f,
+ -0.290285f, -0.290376f, -0.290468f, -0.290560f, -0.290652f, -0.290743f, -0.290835f, -0.290927f,
+ -0.291019f, -0.291110f, -0.291202f, -0.291294f, -0.291385f, -0.291477f, -0.291569f, -0.291661f,
+ -0.291752f, -0.291844f, -0.291936f, -0.292027f, -0.292119f, -0.292211f, -0.292302f, -0.292394f,
+ -0.292486f, -0.292577f, -0.292669f, -0.292761f, -0.292852f, -0.292944f, -0.293036f, -0.293128f,
+ -0.293219f, -0.293311f, -0.293402f, -0.293494f, -0.293586f, -0.293677f, -0.293769f, -0.293861f,
+ -0.293952f, -0.294044f, -0.294136f, -0.294227f, -0.294319f, -0.294410f, -0.294502f, -0.294594f,
+ -0.294685f, -0.294777f, -0.294869f, -0.294960f, -0.295052f, -0.295143f, -0.295235f, -0.295327f,
+ -0.295418f, -0.295510f, -0.295601f, -0.295693f, -0.295785f, -0.295876f, -0.295968f, -0.296059f,
+ -0.296151f, -0.296242f, -0.296334f, -0.296426f, -0.296517f, -0.296609f, -0.296700f, -0.296792f,
+ -0.296883f, -0.296975f, -0.297066f, -0.297158f, -0.297250f, -0.297341f, -0.297433f, -0.297524f,
+ -0.297616f, -0.297707f, -0.297799f, -0.297890f, -0.297982f, -0.298073f, -0.298165f, -0.298256f,
+ -0.298348f, -0.298439f, -0.298531f, -0.298622f, -0.298714f, -0.298805f, -0.298897f, -0.298988f,
+ -0.299080f, -0.299171f, -0.299263f, -0.299354f, -0.299446f, -0.299537f, -0.299629f, -0.299720f,
+ -0.299812f, -0.299903f, -0.299995f, -0.300086f, -0.300177f, -0.300269f, -0.300360f, -0.300452f,
+ -0.300543f, -0.300635f, -0.300726f, -0.300818f, -0.300909f, -0.301000f, -0.301092f, -0.301183f,
+ -0.301275f, -0.301366f, -0.301458f, -0.301549f, -0.301640f, -0.301732f, -0.301823f, -0.301915f,
+ -0.302006f, -0.302097f, -0.302189f, -0.302280f, -0.302372f, -0.302463f, -0.302554f, -0.302646f,
+ -0.302737f, -0.302828f, -0.302920f, -0.303011f, -0.303103f, -0.303194f, -0.303285f, -0.303377f,
+ -0.303468f, -0.303559f, -0.303651f, -0.303742f, -0.303833f, -0.303925f, -0.304016f, -0.304107f,
+ -0.304199f, -0.304290f, -0.304381f, -0.304473f, -0.304564f, -0.304655f, -0.304747f, -0.304838f,
+ -0.304929f, -0.305021f, -0.305112f, -0.305203f, -0.305294f, -0.305386f, -0.305477f, -0.305568f,
+ -0.305660f, -0.305751f, -0.305842f, -0.305933f, -0.306025f, -0.306116f, -0.306207f, -0.306299f,
+ -0.306390f, -0.306481f, -0.306572f, -0.306664f, -0.306755f, -0.306846f, -0.306937f, -0.307029f,
+ -0.307120f, -0.307211f, -0.307302f, -0.307394f, -0.307485f, -0.307576f, -0.307667f, -0.307758f,
+ -0.307850f, -0.307941f, -0.308032f, -0.308123f, -0.308214f, -0.308306f, -0.308397f, -0.308488f,
+ -0.308579f, -0.308670f, -0.308762f, -0.308853f, -0.308944f, -0.309035f, -0.309126f, -0.309218f,
+ -0.309309f, -0.309400f, -0.309491f, -0.309582f, -0.309673f, -0.309765f, -0.309856f, -0.309947f,
+ -0.310038f, -0.310129f, -0.310220f, -0.310311f, -0.310403f, -0.310494f, -0.310585f, -0.310676f,
+ -0.310767f, -0.310858f, -0.310949f, -0.311041f, -0.311132f, -0.311223f, -0.311314f, -0.311405f,
+ -0.311496f, -0.311587f, -0.311678f, -0.311769f, -0.311860f, -0.311952f, -0.312043f, -0.312134f,
+ -0.312225f, -0.312316f, -0.312407f, -0.312498f, -0.312589f, -0.312680f, -0.312771f, -0.312862f,
+ -0.312953f, -0.313044f, -0.313135f, -0.313227f, -0.313318f, -0.313409f, -0.313500f, -0.313591f,
+ -0.313682f, -0.313773f, -0.313864f, -0.313955f, -0.314046f, -0.314137f, -0.314228f, -0.314319f,
+ -0.314410f, -0.314501f, -0.314592f, -0.314683f, -0.314774f, -0.314865f, -0.314956f, -0.315047f,
+ -0.315138f, -0.315229f, -0.315320f, -0.315411f, -0.315502f, -0.315593f, -0.315684f, -0.315775f,
+ -0.315866f, -0.315957f, -0.316048f, -0.316139f, -0.316230f, -0.316321f, -0.316411f, -0.316502f,
+ -0.316593f, -0.316684f, -0.316775f, -0.316866f, -0.316957f, -0.317048f, -0.317139f, -0.317230f,
+ -0.317321f, -0.317412f, -0.317503f, -0.317594f, -0.317684f, -0.317775f, -0.317866f, -0.317957f,
+ -0.318048f, -0.318139f, -0.318230f, -0.318321f, -0.318412f, -0.318503f, -0.318593f, -0.318684f,
+ -0.318775f, -0.318866f, -0.318957f, -0.319048f, -0.319139f, -0.319229f, -0.319320f, -0.319411f,
+ -0.319502f, -0.319593f, -0.319684f, -0.319775f, -0.319865f, -0.319956f, -0.320047f, -0.320138f,
+ -0.320229f, -0.320320f, -0.320410f, -0.320501f, -0.320592f, -0.320683f, -0.320774f, -0.320864f,
+ -0.320955f, -0.321046f, -0.321137f, -0.321228f, -0.321318f, -0.321409f, -0.321500f, -0.321591f,
+ -0.321682f, -0.321772f, -0.321863f, -0.321954f, -0.322045f, -0.322135f, -0.322226f, -0.322317f,
+ -0.322408f, -0.322498f, -0.322589f, -0.322680f, -0.322771f, -0.322861f, -0.322952f, -0.323043f,
+ -0.323134f, -0.323224f, -0.323315f, -0.323406f, -0.323497f, -0.323587f, -0.323678f, -0.323769f,
+ -0.323859f, -0.323950f, -0.324041f, -0.324131f, -0.324222f, -0.324313f, -0.324404f, -0.324494f,
+ -0.324585f, -0.324676f, -0.324766f, -0.324857f, -0.324948f, -0.325038f, -0.325129f, -0.325220f,
+ -0.325310f, -0.325401f, -0.325492f, -0.325582f, -0.325673f, -0.325764f, -0.325854f, -0.325945f,
+ -0.326035f, -0.326126f, -0.326217f, -0.326307f, -0.326398f, -0.326489f, -0.326579f, -0.326670f,
+ -0.326760f, -0.326851f, -0.326942f, -0.327032f, -0.327123f, -0.327213f, -0.327304f, -0.327395f,
+ -0.327485f, -0.327576f, -0.327666f, -0.327757f, -0.327848f, -0.327938f, -0.328029f, -0.328119f,
+ -0.328210f, -0.328300f, -0.328391f, -0.328482f, -0.328572f, -0.328663f, -0.328753f, -0.328844f,
+ -0.328934f, -0.329025f, -0.329115f, -0.329206f, -0.329296f, -0.329387f, -0.329477f, -0.329568f,
+ -0.329658f, -0.329749f, -0.329839f, -0.329930f, -0.330020f, -0.330111f, -0.330202f, -0.330292f,
+ -0.330382f, -0.330473f, -0.330563f, -0.330654f, -0.330744f, -0.330835f, -0.330925f, -0.331016f,
+ -0.331106f, -0.331197f, -0.331287f, -0.331378f, -0.331468f, -0.331559f, -0.331649f, -0.331739f,
+ -0.331830f, -0.331920f, -0.332011f, -0.332101f, -0.332192f, -0.332282f, -0.332373f, -0.332463f,
+ -0.332553f, -0.332644f, -0.332734f, -0.332825f, -0.332915f, -0.333005f, -0.333096f, -0.333186f,
+ -0.333277f, -0.333367f, -0.333457f, -0.333548f, -0.333638f, -0.333729f, -0.333819f, -0.333909f,
+ -0.334000f, -0.334090f, -0.334180f, -0.334271f, -0.334361f, -0.334451f, -0.334542f, -0.334632f,
+ -0.334722f, -0.334813f, -0.334903f, -0.334994f, -0.335084f, -0.335174f, -0.335265f, -0.335355f,
+ -0.335445f, -0.335535f, -0.335626f, -0.335716f, -0.335806f, -0.335897f, -0.335987f, -0.336077f,
+ -0.336168f, -0.336258f, -0.336348f, -0.336438f, -0.336529f, -0.336619f, -0.336709f, -0.336800f,
+ -0.336890f, -0.336980f, -0.337070f, -0.337161f, -0.337251f, -0.337341f, -0.337431f, -0.337522f,
+ -0.337612f, -0.337702f, -0.337792f, -0.337883f, -0.337973f, -0.338063f, -0.338153f, -0.338244f,
+ -0.338334f, -0.338424f, -0.338514f, -0.338604f, -0.338695f, -0.338785f, -0.338875f, -0.338965f,
+ -0.339055f, -0.339146f, -0.339236f, -0.339326f, -0.339416f, -0.339506f, -0.339597f, -0.339687f,
+ -0.339777f, -0.339867f, -0.339957f, -0.340047f, -0.340138f, -0.340228f, -0.340318f, -0.340408f,
+ -0.340498f, -0.340588f, -0.340678f, -0.340769f, -0.340859f, -0.340949f, -0.341039f, -0.341129f,
+ -0.341219f, -0.341309f, -0.341399f, -0.341490f, -0.341580f, -0.341670f, -0.341760f, -0.341850f,
+ -0.341940f, -0.342030f, -0.342120f, -0.342210f, -0.342300f, -0.342391f, -0.342481f, -0.342571f,
+ -0.342661f, -0.342751f, -0.342841f, -0.342931f, -0.343021f, -0.343111f, -0.343201f, -0.343291f,
+ -0.343381f, -0.343471f, -0.343561f, -0.343651f, -0.343741f, -0.343831f, -0.343921f, -0.344011f,
+ -0.344101f, -0.344191f, -0.344281f, -0.344371f, -0.344461f, -0.344551f, -0.344641f, -0.344731f,
+ -0.344821f, -0.344911f, -0.345001f, -0.345091f, -0.345181f, -0.345271f, -0.345361f, -0.345451f,
+ -0.345541f, -0.345631f, -0.345721f, -0.345811f, -0.345901f, -0.345991f, -0.346081f, -0.346171f,
+ -0.346261f, -0.346351f, -0.346441f, -0.346531f, -0.346621f, -0.346711f, -0.346801f, -0.346890f,
+ -0.346980f, -0.347070f, -0.347160f, -0.347250f, -0.347340f, -0.347430f, -0.347520f, -0.347610f,
+ -0.347700f, -0.347790f, -0.347879f, -0.347969f, -0.348059f, -0.348149f, -0.348239f, -0.348329f,
+ -0.348419f, -0.348509f, -0.348598f, -0.348688f, -0.348778f, -0.348868f, -0.348958f, -0.349048f,
+ -0.349138f, -0.349227f, -0.349317f, -0.349407f, -0.349497f, -0.349587f, -0.349676f, -0.349766f,
+ -0.349856f, -0.349946f, -0.350036f, -0.350126f, -0.350215f, -0.350305f, -0.350395f, -0.350485f,
+ -0.350575f, -0.350664f, -0.350754f, -0.350844f, -0.350934f, -0.351023f, -0.351113f, -0.351203f,
+ -0.351293f, -0.351383f, -0.351472f, -0.351562f, -0.351652f, -0.351742f, -0.351831f, -0.351921f,
+ -0.352011f, -0.352100f, -0.352190f, -0.352280f, -0.352370f, -0.352459f, -0.352549f, -0.352639f,
+ -0.352729f, -0.352818f, -0.352908f, -0.352998f, -0.353087f, -0.353177f, -0.353267f, -0.353356f,
+ -0.353446f, -0.353536f, -0.353626f, -0.353715f, -0.353805f, -0.353895f, -0.353984f, -0.354074f,
+ -0.354164f, -0.354253f, -0.354343f, -0.354432f, -0.354522f, -0.354612f, -0.354701f, -0.354791f,
+ -0.354881f, -0.354970f, -0.355060f, -0.355150f, -0.355239f, -0.355329f, -0.355418f, -0.355508f,
+ -0.355598f, -0.355687f, -0.355777f, -0.355866f, -0.355956f, -0.356046f, -0.356135f, -0.356225f,
+ -0.356314f, -0.356404f, -0.356494f, -0.356583f, -0.356673f, -0.356762f, -0.356852f, -0.356941f,
+ -0.357031f, -0.357121f, -0.357210f, -0.357300f, -0.357389f, -0.357479f, -0.357568f, -0.357658f,
+ -0.357747f, -0.357837f, -0.357926f, -0.358016f, -0.358105f, -0.358195f, -0.358284f, -0.358374f,
+ -0.358463f, -0.358553f, -0.358642f, -0.358732f, -0.358821f, -0.358911f, -0.359000f, -0.359090f,
+ -0.359179f, -0.359269f, -0.359358f, -0.359448f, -0.359537f, -0.359627f, -0.359716f, -0.359806f,
+ -0.359895f, -0.359984f, -0.360074f, -0.360163f, -0.360253f, -0.360342f, -0.360432f, -0.360521f,
+ -0.360611f, -0.360700f, -0.360789f, -0.360879f, -0.360968f, -0.361058f, -0.361147f, -0.361236f,
+ -0.361326f, -0.361415f, -0.361505f, -0.361594f, -0.361683f, -0.361773f, -0.361862f, -0.361952f,
+ -0.362041f, -0.362130f, -0.362220f, -0.362309f, -0.362398f, -0.362488f, -0.362577f, -0.362666f,
+ -0.362756f, -0.362845f, -0.362934f, -0.363024f, -0.363113f, -0.363202f, -0.363292f, -0.363381f,
+ -0.363470f, -0.363560f, -0.363649f, -0.363738f, -0.363828f, -0.363917f, -0.364006f, -0.364096f,
+ -0.364185f, -0.364274f, -0.364363f, -0.364453f, -0.364542f, -0.364631f, -0.364720f, -0.364810f,
+ -0.364899f, -0.364988f, -0.365078f, -0.365167f, -0.365256f, -0.365345f, -0.365435f, -0.365524f,
+ -0.365613f, -0.365702f, -0.365791f, -0.365881f, -0.365970f, -0.366059f, -0.366148f, -0.366238f,
+ -0.366327f, -0.366416f, -0.366505f, -0.366594f, -0.366684f, -0.366773f, -0.366862f, -0.366951f,
+ -0.367040f, -0.367130f, -0.367219f, -0.367308f, -0.367397f, -0.367486f, -0.367575f, -0.367665f,
+ -0.367754f, -0.367843f, -0.367932f, -0.368021f, -0.368110f, -0.368199f, -0.368289f, -0.368378f,
+ -0.368467f, -0.368556f, -0.368645f, -0.368734f, -0.368823f, -0.368912f, -0.369002f, -0.369091f,
+ -0.369180f, -0.369269f, -0.369358f, -0.369447f, -0.369536f, -0.369625f, -0.369714f, -0.369803f,
+ -0.369892f, -0.369982f, -0.370071f, -0.370160f, -0.370249f, -0.370338f, -0.370427f, -0.370516f,
+ -0.370605f, -0.370694f, -0.370783f, -0.370872f, -0.370961f, -0.371050f, -0.371139f, -0.371228f,
+ -0.371317f, -0.371406f, -0.371495f, -0.371584f, -0.371673f, -0.371762f, -0.371851f, -0.371940f,
+ -0.372029f, -0.372118f, -0.372207f, -0.372296f, -0.372385f, -0.372474f, -0.372563f, -0.372652f,
+ -0.372741f, -0.372830f, -0.372919f, -0.373008f, -0.373097f, -0.373186f, -0.373275f, -0.373364f,
+ -0.373453f, -0.373542f, -0.373631f, -0.373719f, -0.373808f, -0.373897f, -0.373986f, -0.374075f,
+ -0.374164f, -0.374253f, -0.374342f, -0.374431f, -0.374520f, -0.374609f, -0.374697f, -0.374786f,
+ -0.374875f, -0.374964f, -0.375053f, -0.375142f, -0.375231f, -0.375320f, -0.375408f, -0.375497f,
+ -0.375586f, -0.375675f, -0.375764f, -0.375853f, -0.375942f, -0.376030f, -0.376119f, -0.376208f,
+ -0.376297f, -0.376386f, -0.376475f, -0.376563f, -0.376652f, -0.376741f, -0.376830f, -0.376919f,
+ -0.377007f, -0.377096f, -0.377185f, -0.377274f, -0.377363f, -0.377451f, -0.377540f, -0.377629f,
+ -0.377718f, -0.377806f, -0.377895f, -0.377984f, -0.378073f, -0.378162f, -0.378250f, -0.378339f,
+ -0.378428f, -0.378516f, -0.378605f, -0.378694f, -0.378783f, -0.378871f, -0.378960f, -0.379049f,
+ -0.379138f, -0.379226f, -0.379315f, -0.379404f, -0.379492f, -0.379581f, -0.379670f, -0.379759f,
+ -0.379847f, -0.379936f, -0.380025f, -0.380113f, -0.380202f, -0.380291f, -0.380379f, -0.380468f,
+ -0.380557f, -0.380645f, -0.380734f, -0.380823f, -0.380911f, -0.381000f, -0.381088f, -0.381177f,
+ -0.381266f, -0.381354f, -0.381443f, -0.381532f, -0.381620f, -0.381709f, -0.381797f, -0.381886f,
+ -0.381975f, -0.382063f, -0.382152f, -0.382241f, -0.382329f, -0.382418f, -0.382506f, -0.382595f,
+ -0.382683f, -0.382772f, -0.382861f, -0.382949f, -0.383038f, -0.383126f, -0.383215f, -0.383303f,
+ -0.383392f, -0.383480f, -0.383569f, -0.383658f, -0.383746f, -0.383835f, -0.383923f, -0.384012f,
+ -0.384100f, -0.384189f, -0.384277f, -0.384366f, -0.384454f, -0.384543f, -0.384631f, -0.384720f,
+ -0.384808f, -0.384897f, -0.384985f, -0.385074f, -0.385162f, -0.385251f, -0.385339f, -0.385428f,
+ -0.385516f, -0.385605f, -0.385693f, -0.385781f, -0.385870f, -0.385958f, -0.386047f, -0.386135f,
+ -0.386224f, -0.386312f, -0.386400f, -0.386489f, -0.386577f, -0.386666f, -0.386754f, -0.386843f,
+ -0.386931f, -0.387019f, -0.387108f, -0.387196f, -0.387285f, -0.387373f, -0.387461f, -0.387550f,
+ -0.387638f, -0.387727f, -0.387815f, -0.387903f, -0.387992f, -0.388080f, -0.388168f, -0.388257f,
+ -0.388345f, -0.388433f, -0.388522f, -0.388610f, -0.388698f, -0.388787f, -0.388875f, -0.388963f,
+ -0.389052f, -0.389140f, -0.389228f, -0.389317f, -0.389405f, -0.389493f, -0.389582f, -0.389670f,
+ -0.389758f, -0.389846f, -0.389935f, -0.390023f, -0.390111f, -0.390200f, -0.390288f, -0.390376f,
+ -0.390464f, -0.390553f, -0.390641f, -0.390729f, -0.390817f, -0.390906f, -0.390994f, -0.391082f,
+ -0.391170f, -0.391259f, -0.391347f, -0.391435f, -0.391523f, -0.391612f, -0.391700f, -0.391788f,
+ -0.391876f, -0.391964f, -0.392053f, -0.392141f, -0.392229f, -0.392317f, -0.392405f, -0.392493f,
+ -0.392582f, -0.392670f, -0.392758f, -0.392846f, -0.392934f, -0.393023f, -0.393111f, -0.393199f,
+ -0.393287f, -0.393375f, -0.393463f, -0.393551f, -0.393640f, -0.393728f, -0.393816f, -0.393904f,
+ -0.393992f, -0.394080f, -0.394168f, -0.394256f, -0.394344f, -0.394433f, -0.394521f, -0.394609f,
+ -0.394697f, -0.394785f, -0.394873f, -0.394961f, -0.395049f, -0.395137f, -0.395225f, -0.395313f,
+ -0.395401f, -0.395490f, -0.395578f, -0.395666f, -0.395754f, -0.395842f, -0.395930f, -0.396018f,
+ -0.396106f, -0.396194f, -0.396282f, -0.396370f, -0.396458f, -0.396546f, -0.396634f, -0.396722f,
+ -0.396810f, -0.396898f, -0.396986f, -0.397074f, -0.397162f, -0.397250f, -0.397338f, -0.397426f,
+ -0.397514f, -0.397602f, -0.397690f, -0.397778f, -0.397866f, -0.397954f, -0.398042f, -0.398130f,
+ -0.398218f, -0.398306f, -0.398393f, -0.398481f, -0.398569f, -0.398657f, -0.398745f, -0.398833f,
+ -0.398921f, -0.399009f, -0.399097f, -0.399185f, -0.399273f, -0.399361f, -0.399448f, -0.399536f,
+ -0.399624f, -0.399712f, -0.399800f, -0.399888f, -0.399976f, -0.400064f, -0.400151f, -0.400239f,
+ -0.400327f, -0.400415f, -0.400503f, -0.400591f, -0.400679f, -0.400766f, -0.400854f, -0.400942f,
+ -0.401030f, -0.401118f, -0.401206f, -0.401293f, -0.401381f, -0.401469f, -0.401557f, -0.401645f,
+ -0.401732f, -0.401820f, -0.401908f, -0.401996f, -0.402084f, -0.402171f, -0.402259f, -0.402347f,
+ -0.402435f, -0.402522f, -0.402610f, -0.402698f, -0.402786f, -0.402873f, -0.402961f, -0.403049f,
+ -0.403137f, -0.403224f, -0.403312f, -0.403400f, -0.403488f, -0.403575f, -0.403663f, -0.403751f,
+ -0.403838f, -0.403926f, -0.404014f, -0.404102f, -0.404189f, -0.404277f, -0.404365f, -0.404452f,
+ -0.404540f, -0.404628f, -0.404715f, -0.404803f, -0.404891f, -0.404978f, -0.405066f, -0.405154f,
+ -0.405241f, -0.405329f, -0.405417f, -0.405504f, -0.405592f, -0.405680f, -0.405767f, -0.405855f,
+ -0.405942f, -0.406030f, -0.406118f, -0.406205f, -0.406293f, -0.406380f, -0.406468f, -0.406556f,
+ -0.406643f, -0.406731f, -0.406818f, -0.406906f, -0.406994f, -0.407081f, -0.407169f, -0.407256f,
+ -0.407344f, -0.407431f, -0.407519f, -0.407606f, -0.407694f, -0.407782f, -0.407869f, -0.407957f,
+ -0.408044f, -0.408132f, -0.408219f, -0.408307f, -0.408394f, -0.408482f, -0.408569f, -0.408657f,
+ -0.408744f, -0.408832f, -0.408919f, -0.409007f, -0.409094f, -0.409182f, -0.409269f, -0.409357f,
+ -0.409444f, -0.409532f, -0.409619f, -0.409707f, -0.409794f, -0.409881f, -0.409969f, -0.410056f,
+ -0.410144f, -0.410231f, -0.410319f, -0.410406f, -0.410493f, -0.410581f, -0.410668f, -0.410756f,
+ -0.410843f, -0.410931f, -0.411018f, -0.411105f, -0.411193f, -0.411280f, -0.411368f, -0.411455f,
+ -0.411542f, -0.411630f, -0.411717f, -0.411804f, -0.411892f, -0.411979f, -0.412067f, -0.412154f,
+ -0.412241f, -0.412329f, -0.412416f, -0.412503f, -0.412591f, -0.412678f, -0.412765f, -0.412853f,
+ -0.412940f, -0.413027f, -0.413115f, -0.413202f, -0.413289f, -0.413376f, -0.413464f, -0.413551f,
+ -0.413638f, -0.413726f, -0.413813f, -0.413900f, -0.413987f, -0.414075f, -0.414162f, -0.414249f,
+ -0.414337f, -0.414424f, -0.414511f, -0.414598f, -0.414685f, -0.414773f, -0.414860f, -0.414947f,
+ -0.415034f, -0.415122f, -0.415209f, -0.415296f, -0.415383f, -0.415471f, -0.415558f, -0.415645f,
+ -0.415732f, -0.415819f, -0.415906f, -0.415994f, -0.416081f, -0.416168f, -0.416255f, -0.416342f,
+ -0.416430f, -0.416517f, -0.416604f, -0.416691f, -0.416778f, -0.416865f, -0.416952f, -0.417040f,
+ -0.417127f, -0.417214f, -0.417301f, -0.417388f, -0.417475f, -0.417562f, -0.417650f, -0.417737f,
+ -0.417824f, -0.417911f, -0.417998f, -0.418085f, -0.418172f, -0.418259f, -0.418346f, -0.418433f,
+ -0.418520f, -0.418608f, -0.418695f, -0.418782f, -0.418869f, -0.418956f, -0.419043f, -0.419130f,
+ -0.419217f, -0.419304f, -0.419391f, -0.419478f, -0.419565f, -0.419652f, -0.419739f, -0.419826f,
+ -0.419913f, -0.420000f, -0.420087f, -0.420174f, -0.420261f, -0.420348f, -0.420435f, -0.420522f,
+ -0.420609f, -0.420696f, -0.420783f, -0.420870f, -0.420957f, -0.421044f, -0.421131f, -0.421218f,
+ -0.421305f, -0.421392f, -0.421479f, -0.421566f, -0.421653f, -0.421739f, -0.421826f, -0.421913f,
+ -0.422000f, -0.422087f, -0.422174f, -0.422261f, -0.422348f, -0.422435f, -0.422522f, -0.422609f,
+ -0.422695f, -0.422782f, -0.422869f, -0.422956f, -0.423043f, -0.423130f, -0.423217f, -0.423304f,
+ -0.423390f, -0.423477f, -0.423564f, -0.423651f, -0.423738f, -0.423825f, -0.423912f, -0.423998f,
+ -0.424085f, -0.424172f, -0.424259f, -0.424346f, -0.424432f, -0.424519f, -0.424606f, -0.424693f,
+ -0.424780f, -0.424866f, -0.424953f, -0.425040f, -0.425127f, -0.425214f, -0.425300f, -0.425387f,
+ -0.425474f, -0.425561f, -0.425647f, -0.425734f, -0.425821f, -0.425908f, -0.425994f, -0.426081f,
+ -0.426168f, -0.426255f, -0.426341f, -0.426428f, -0.426515f, -0.426601f, -0.426688f, -0.426775f,
+ -0.426862f, -0.426948f, -0.427035f, -0.427122f, -0.427208f, -0.427295f, -0.427382f, -0.427468f,
+ -0.427555f, -0.427642f, -0.427728f, -0.427815f, -0.427902f, -0.427988f, -0.428075f, -0.428162f,
+ -0.428248f, -0.428335f, -0.428422f, -0.428508f, -0.428595f, -0.428681f, -0.428768f, -0.428855f,
+ -0.428941f, -0.429028f, -0.429114f, -0.429201f, -0.429288f, -0.429374f, -0.429461f, -0.429547f,
+ -0.429634f, -0.429721f, -0.429807f, -0.429894f, -0.429980f, -0.430067f, -0.430153f, -0.430240f,
+ -0.430326f, -0.430413f, -0.430500f, -0.430586f, -0.430673f, -0.430759f, -0.430846f, -0.430932f,
+ -0.431019f, -0.431105f, -0.431192f, -0.431278f, -0.431365f, -0.431451f, -0.431538f, -0.431624f,
+ -0.431711f, -0.431797f, -0.431884f, -0.431970f, -0.432057f, -0.432143f, -0.432229f, -0.432316f,
+ -0.432402f, -0.432489f, -0.432575f, -0.432662f, -0.432748f, -0.432835f, -0.432921f, -0.433007f,
+ -0.433094f, -0.433180f, -0.433267f, -0.433353f, -0.433439f, -0.433526f, -0.433612f, -0.433699f,
+ -0.433785f, -0.433871f, -0.433958f, -0.434044f, -0.434131f, -0.434217f, -0.434303f, -0.434390f,
+ -0.434476f, -0.434562f, -0.434649f, -0.434735f, -0.434821f, -0.434908f, -0.434994f, -0.435080f,
+ -0.435167f, -0.435253f, -0.435339f, -0.435426f, -0.435512f, -0.435598f, -0.435685f, -0.435771f,
+ -0.435857f, -0.435943f, -0.436030f, -0.436116f, -0.436202f, -0.436288f, -0.436375f, -0.436461f,
+ -0.436547f, -0.436633f, -0.436720f, -0.436806f, -0.436892f, -0.436978f, -0.437065f, -0.437151f,
+ -0.437237f, -0.437323f, -0.437410f, -0.437496f, -0.437582f, -0.437668f, -0.437754f, -0.437841f,
+ -0.437927f, -0.438013f, -0.438099f, -0.438185f, -0.438272f, -0.438358f, -0.438444f, -0.438530f,
+ -0.438616f, -0.438702f, -0.438789f, -0.438875f, -0.438961f, -0.439047f, -0.439133f, -0.439219f,
+ -0.439305f, -0.439392f, -0.439478f, -0.439564f, -0.439650f, -0.439736f, -0.439822f, -0.439908f,
+ -0.439994f, -0.440080f, -0.440166f, -0.440253f, -0.440339f, -0.440425f, -0.440511f, -0.440597f,
+ -0.440683f, -0.440769f, -0.440855f, -0.440941f, -0.441027f, -0.441113f, -0.441199f, -0.441285f,
+ -0.441371f, -0.441457f, -0.441543f, -0.441629f, -0.441715f, -0.441801f, -0.441887f, -0.441973f,
+ -0.442059f, -0.442145f, -0.442231f, -0.442317f, -0.442403f, -0.442489f, -0.442575f, -0.442661f,
+ -0.442747f, -0.442833f, -0.442919f, -0.443005f, -0.443091f, -0.443177f, -0.443263f, -0.443349f,
+ -0.443435f, -0.443521f, -0.443607f, -0.443693f, -0.443779f, -0.443864f, -0.443950f, -0.444036f,
+ -0.444122f, -0.444208f, -0.444294f, -0.444380f, -0.444466f, -0.444552f, -0.444637f, -0.444723f,
+ -0.444809f, -0.444895f, -0.444981f, -0.445067f, -0.445153f, -0.445239f, -0.445324f, -0.445410f,
+ -0.445496f, -0.445582f, -0.445668f, -0.445754f, -0.445839f, -0.445925f, -0.446011f, -0.446097f,
+ -0.446183f, -0.446268f, -0.446354f, -0.446440f, -0.446526f, -0.446612f, -0.446697f, -0.446783f,
+ -0.446869f, -0.446955f, -0.447040f, -0.447126f, -0.447212f, -0.447298f, -0.447383f, -0.447469f,
+ -0.447555f, -0.447641f, -0.447726f, -0.447812f, -0.447898f, -0.447983f, -0.448069f, -0.448155f,
+ -0.448241f, -0.448326f, -0.448412f, -0.448498f, -0.448583f, -0.448669f, -0.448755f, -0.448840f,
+ -0.448926f, -0.449012f, -0.449097f, -0.449183f, -0.449269f, -0.449354f, -0.449440f, -0.449526f,
+ -0.449611f, -0.449697f, -0.449783f, -0.449868f, -0.449954f, -0.450039f, -0.450125f, -0.450211f,
+ -0.450296f, -0.450382f, -0.450467f, -0.450553f, -0.450639f, -0.450724f, -0.450810f, -0.450895f,
+ -0.450981f, -0.451067f, -0.451152f, -0.451238f, -0.451323f, -0.451409f, -0.451494f, -0.451580f,
+ -0.451665f, -0.451751f, -0.451836f, -0.451922f, -0.452008f, -0.452093f, -0.452179f, -0.452264f,
+ -0.452350f, -0.452435f, -0.452521f, -0.452606f, -0.452692f, -0.452777f, -0.452863f, -0.452948f,
+ -0.453033f, -0.453119f, -0.453204f, -0.453290f, -0.453375f, -0.453461f, -0.453546f, -0.453632f,
+ -0.453717f, -0.453803f, -0.453888f, -0.453973f, -0.454059f, -0.454144f, -0.454230f, -0.454315f,
+ -0.454400f, -0.454486f, -0.454571f, -0.454657f, -0.454742f, -0.454827f, -0.454913f, -0.454998f,
+ -0.455084f, -0.455169f, -0.455254f, -0.455340f, -0.455425f, -0.455510f, -0.455596f, -0.455681f,
+ -0.455766f, -0.455852f, -0.455937f, -0.456022f, -0.456108f, -0.456193f, -0.456278f, -0.456364f,
+ -0.456449f, -0.456534f, -0.456620f, -0.456705f, -0.456790f, -0.456875f, -0.456961f, -0.457046f,
+ -0.457131f, -0.457217f, -0.457302f, -0.457387f, -0.457472f, -0.457558f, -0.457643f, -0.457728f,
+ -0.457813f, -0.457899f, -0.457984f, -0.458069f, -0.458154f, -0.458239f, -0.458325f, -0.458410f,
+ -0.458495f, -0.458580f, -0.458665f, -0.458751f, -0.458836f, -0.458921f, -0.459006f, -0.459091f,
+ -0.459177f, -0.459262f, -0.459347f, -0.459432f, -0.459517f, -0.459602f, -0.459687f, -0.459773f,
+ -0.459858f, -0.459943f, -0.460028f, -0.460113f, -0.460198f, -0.460283f, -0.460369f, -0.460454f,
+ -0.460539f, -0.460624f, -0.460709f, -0.460794f, -0.460879f, -0.460964f, -0.461049f, -0.461134f,
+ -0.461219f, -0.461304f, -0.461390f, -0.461475f, -0.461560f, -0.461645f, -0.461730f, -0.461815f,
+ -0.461900f, -0.461985f, -0.462070f, -0.462155f, -0.462240f, -0.462325f, -0.462410f, -0.462495f,
+ -0.462580f, -0.462665f, -0.462750f, -0.462835f, -0.462920f, -0.463005f, -0.463090f, -0.463175f,
+ -0.463260f, -0.463345f, -0.463430f, -0.463515f, -0.463600f, -0.463685f, -0.463769f, -0.463854f,
+ -0.463939f, -0.464024f, -0.464109f, -0.464194f, -0.464279f, -0.464364f, -0.464449f, -0.464534f,
+ -0.464619f, -0.464704f, -0.464788f, -0.464873f, -0.464958f, -0.465043f, -0.465128f, -0.465213f,
+ -0.465298f, -0.465383f, -0.465467f, -0.465552f, -0.465637f, -0.465722f, -0.465807f, -0.465892f,
+ -0.465977f, -0.466061f, -0.466146f, -0.466231f, -0.466316f, -0.466401f, -0.466485f, -0.466570f,
+ -0.466655f, -0.466740f, -0.466825f, -0.466909f, -0.466994f, -0.467079f, -0.467164f, -0.467248f,
+ -0.467333f, -0.467418f, -0.467503f, -0.467587f, -0.467672f, -0.467757f, -0.467842f, -0.467926f,
+ -0.468011f, -0.468096f, -0.468181f, -0.468265f, -0.468350f, -0.468435f, -0.468519f, -0.468604f,
+ -0.468689f, -0.468774f, -0.468858f, -0.468943f, -0.469028f, -0.469112f, -0.469197f, -0.469282f,
+ -0.469366f, -0.469451f, -0.469536f, -0.469620f, -0.469705f, -0.469789f, -0.469874f, -0.469959f,
+ -0.470043f, -0.470128f, -0.470213f, -0.470297f, -0.470382f, -0.470466f, -0.470551f, -0.470636f,
+ -0.470720f, -0.470805f, -0.470889f, -0.470974f, -0.471058f, -0.471143f, -0.471228f, -0.471312f,
+ -0.471397f, -0.471481f, -0.471566f, -0.471650f, -0.471735f, -0.471819f, -0.471904f, -0.471988f,
+ -0.472073f, -0.472158f, -0.472242f, -0.472327f, -0.472411f, -0.472496f, -0.472580f, -0.472665f,
+ -0.472749f, -0.472834f, -0.472918f, -0.473002f, -0.473087f, -0.473171f, -0.473256f, -0.473340f,
+ -0.473425f, -0.473509f, -0.473594f, -0.473678f, -0.473763f, -0.473847f, -0.473931f, -0.474016f,
+ -0.474100f, -0.474185f, -0.474269f, -0.474353f, -0.474438f, -0.474522f, -0.474607f, -0.474691f,
+ -0.474775f, -0.474860f, -0.474944f, -0.475029f, -0.475113f, -0.475197f, -0.475282f, -0.475366f,
+ -0.475450f, -0.475535f, -0.475619f, -0.475703f, -0.475788f, -0.475872f, -0.475956f, -0.476041f,
+ -0.476125f, -0.476209f, -0.476294f, -0.476378f, -0.476462f, -0.476546f, -0.476631f, -0.476715f,
+ -0.476799f, -0.476884f, -0.476968f, -0.477052f, -0.477136f, -0.477221f, -0.477305f, -0.477389f,
+ -0.477473f, -0.477558f, -0.477642f, -0.477726f, -0.477810f, -0.477894f, -0.477979f, -0.478063f,
+ -0.478147f, -0.478231f, -0.478315f, -0.478400f, -0.478484f, -0.478568f, -0.478652f, -0.478736f,
+ -0.478821f, -0.478905f, -0.478989f, -0.479073f, -0.479157f, -0.479241f, -0.479325f, -0.479410f,
+ -0.479494f, -0.479578f, -0.479662f, -0.479746f, -0.479830f, -0.479914f, -0.479998f, -0.480083f,
+ -0.480167f, -0.480251f, -0.480335f, -0.480419f, -0.480503f, -0.480587f, -0.480671f, -0.480755f,
+ -0.480839f, -0.480923f, -0.481007f, -0.481091f, -0.481176f, -0.481260f, -0.481344f, -0.481428f,
+ -0.481512f, -0.481596f, -0.481680f, -0.481764f, -0.481848f, -0.481932f, -0.482016f, -0.482100f,
+ -0.482184f, -0.482268f, -0.482352f, -0.482436f, -0.482520f, -0.482604f, -0.482688f, -0.482772f,
+ -0.482856f, -0.482940f, -0.483023f, -0.483107f, -0.483191f, -0.483275f, -0.483359f, -0.483443f,
+ -0.483527f, -0.483611f, -0.483695f, -0.483779f, -0.483863f, -0.483947f, -0.484031f, -0.484114f,
+ -0.484198f, -0.484282f, -0.484366f, -0.484450f, -0.484534f, -0.484618f, -0.484702f, -0.484785f,
+ -0.484869f, -0.484953f, -0.485037f, -0.485121f, -0.485205f, -0.485288f, -0.485372f, -0.485456f,
+ -0.485540f, -0.485624f, -0.485708f, -0.485791f, -0.485875f, -0.485959f, -0.486043f, -0.486126f,
+ -0.486210f, -0.486294f, -0.486378f, -0.486462f, -0.486545f, -0.486629f, -0.486713f, -0.486797f,
+ -0.486880f, -0.486964f, -0.487048f, -0.487132f, -0.487215f, -0.487299f, -0.487383f, -0.487466f,
+ -0.487550f, -0.487634f, -0.487718f, -0.487801f, -0.487885f, -0.487969f, -0.488052f, -0.488136f,
+ -0.488220f, -0.488303f, -0.488387f, -0.488471f, -0.488554f, -0.488638f, -0.488722f, -0.488805f,
+ -0.488889f, -0.488973f, -0.489056f, -0.489140f, -0.489223f, -0.489307f, -0.489391f, -0.489474f,
+ -0.489558f, -0.489641f, -0.489725f, -0.489809f, -0.489892f, -0.489976f, -0.490059f, -0.490143f,
+ -0.490226f, -0.490310f, -0.490394f, -0.490477f, -0.490561f, -0.490644f, -0.490728f, -0.490811f,
+ -0.490895f, -0.490978f, -0.491062f, -0.491145f, -0.491229f, -0.491312f, -0.491396f, -0.491479f,
+ -0.491563f, -0.491646f, -0.491730f, -0.491813f, -0.491897f, -0.491980f, -0.492064f, -0.492147f,
+ -0.492231f, -0.492314f, -0.492398f, -0.492481f, -0.492564f, -0.492648f, -0.492731f, -0.492815f,
+ -0.492898f, -0.492982f, -0.493065f, -0.493148f, -0.493232f, -0.493315f, -0.493399f, -0.493482f,
+ -0.493565f, -0.493649f, -0.493732f, -0.493816f, -0.493899f, -0.493982f, -0.494066f, -0.494149f,
+ -0.494232f, -0.494316f, -0.494399f, -0.494482f, -0.494566f, -0.494649f, -0.494732f, -0.494816f,
+ -0.494899f, -0.494982f, -0.495066f, -0.495149f, -0.495232f, -0.495315f, -0.495399f, -0.495482f,
+ -0.495565f, -0.495649f, -0.495732f, -0.495815f, -0.495898f, -0.495982f, -0.496065f, -0.496148f,
+ -0.496231f, -0.496315f, -0.496398f, -0.496481f, -0.496564f, -0.496647f, -0.496731f, -0.496814f,
+ -0.496897f, -0.496980f, -0.497063f, -0.497147f, -0.497230f, -0.497313f, -0.497396f, -0.497479f,
+ -0.497562f, -0.497646f, -0.497729f, -0.497812f, -0.497895f, -0.497978f, -0.498061f, -0.498145f,
+ -0.498228f, -0.498311f, -0.498394f, -0.498477f, -0.498560f, -0.498643f, -0.498726f, -0.498809f,
+ -0.498893f, -0.498976f, -0.499059f, -0.499142f, -0.499225f, -0.499308f, -0.499391f, -0.499474f,
+ -0.499557f, -0.499640f, -0.499723f, -0.499806f, -0.499889f, -0.499972f, -0.500055f, -0.500138f,
+ -0.500221f, -0.500304f, -0.500387f, -0.500470f, -0.500553f, -0.500636f, -0.500719f, -0.500802f,
+ -0.500885f, -0.500968f, -0.501051f, -0.501134f, -0.501217f, -0.501300f, -0.501383f, -0.501466f,
+ -0.501549f, -0.501632f, -0.501715f, -0.501798f, -0.501881f, -0.501964f, -0.502047f, -0.502130f,
+ -0.502212f, -0.502295f, -0.502378f, -0.502461f, -0.502544f, -0.502627f, -0.502710f, -0.502793f,
+ -0.502876f, -0.502958f, -0.503041f, -0.503124f, -0.503207f, -0.503290f, -0.503373f, -0.503456f,
+ -0.503538f, -0.503621f, -0.503704f, -0.503787f, -0.503870f, -0.503953f, -0.504035f, -0.504118f,
+ -0.504201f, -0.504284f, -0.504366f, -0.504449f, -0.504532f, -0.504615f, -0.504698f, -0.504780f,
+ -0.504863f, -0.504946f, -0.505029f, -0.505111f, -0.505194f, -0.505277f, -0.505360f, -0.505442f,
+ -0.505525f, -0.505608f, -0.505690f, -0.505773f, -0.505856f, -0.505939f, -0.506021f, -0.506104f,
+ -0.506187f, -0.506269f, -0.506352f, -0.506435f, -0.506517f, -0.506600f, -0.506683f, -0.506765f,
+ -0.506848f, -0.506931f, -0.507013f, -0.507096f, -0.507179f, -0.507261f, -0.507344f, -0.507426f,
+ -0.507509f, -0.507592f, -0.507674f, -0.507757f, -0.507839f, -0.507922f, -0.508005f, -0.508087f,
+ -0.508170f, -0.508252f, -0.508335f, -0.508417f, -0.508500f, -0.508583f, -0.508665f, -0.508748f,
+ -0.508830f, -0.508913f, -0.508995f, -0.509078f, -0.509160f, -0.509243f, -0.509325f, -0.509408f,
+ -0.509490f, -0.509573f, -0.509655f, -0.509738f, -0.509820f, -0.509903f, -0.509985f, -0.510068f,
+ -0.510150f, -0.510233f, -0.510315f, -0.510397f, -0.510480f, -0.510562f, -0.510645f, -0.510727f,
+ -0.510810f, -0.510892f, -0.510974f, -0.511057f, -0.511139f, -0.511222f, -0.511304f, -0.511386f,
+ -0.511469f, -0.511551f, -0.511634f, -0.511716f, -0.511798f, -0.511881f, -0.511963f, -0.512045f,
+ -0.512128f, -0.512210f, -0.512292f, -0.512375f, -0.512457f, -0.512539f, -0.512622f, -0.512704f,
+ -0.512786f, -0.512869f, -0.512951f, -0.513033f, -0.513116f, -0.513198f, -0.513280f, -0.513362f,
+ -0.513445f, -0.513527f, -0.513609f, -0.513692f, -0.513774f, -0.513856f, -0.513938f, -0.514021f,
+ -0.514103f, -0.514185f, -0.514267f, -0.514349f, -0.514432f, -0.514514f, -0.514596f, -0.514678f,
+ -0.514760f, -0.514843f, -0.514925f, -0.515007f, -0.515089f, -0.515171f, -0.515254f, -0.515336f,
+ -0.515418f, -0.515500f, -0.515582f, -0.515664f, -0.515746f, -0.515829f, -0.515911f, -0.515993f,
+ -0.516075f, -0.516157f, -0.516239f, -0.516321f, -0.516403f, -0.516486f, -0.516568f, -0.516650f,
+ -0.516732f, -0.516814f, -0.516896f, -0.516978f, -0.517060f, -0.517142f, -0.517224f, -0.517306f,
+ -0.517388f, -0.517470f, -0.517552f, -0.517634f, -0.517716f, -0.517798f, -0.517880f, -0.517963f,
+ -0.518045f, -0.518126f, -0.518209f, -0.518291f, -0.518372f, -0.518454f, -0.518536f, -0.518618f,
+ -0.518700f, -0.518782f, -0.518864f, -0.518946f, -0.519028f, -0.519110f, -0.519192f, -0.519274f,
+ -0.519356f, -0.519438f, -0.519520f, -0.519602f, -0.519684f, -0.519766f, -0.519848f, -0.519929f,
+ -0.520011f, -0.520093f, -0.520175f, -0.520257f, -0.520339f, -0.520421f, -0.520503f, -0.520584f,
+ -0.520666f, -0.520748f, -0.520830f, -0.520912f, -0.520994f, -0.521075f, -0.521157f, -0.521239f,
+ -0.521321f, -0.521403f, -0.521485f, -0.521566f, -0.521648f, -0.521730f, -0.521812f, -0.521894f,
+ -0.521975f, -0.522057f, -0.522139f, -0.522221f, -0.522302f, -0.522384f, -0.522466f, -0.522548f,
+ -0.522629f, -0.522711f, -0.522793f, -0.522875f, -0.522956f, -0.523038f, -0.523120f, -0.523201f,
+ -0.523283f, -0.523365f, -0.523447f, -0.523528f, -0.523610f, -0.523692f, -0.523773f, -0.523855f,
+ -0.523937f, -0.524018f, -0.524100f, -0.524181f, -0.524263f, -0.524345f, -0.524426f, -0.524508f,
+ -0.524590f, -0.524671f, -0.524753f, -0.524835f, -0.524916f, -0.524998f, -0.525079f, -0.525161f,
+ -0.525243f, -0.525324f, -0.525406f, -0.525487f, -0.525569f, -0.525650f, -0.525732f, -0.525813f,
+ -0.525895f, -0.525977f, -0.526058f, -0.526140f, -0.526221f, -0.526303f, -0.526384f, -0.526466f,
+ -0.526547f, -0.526629f, -0.526710f, -0.526792f, -0.526873f, -0.526955f, -0.527036f, -0.527118f,
+ -0.527199f, -0.527281f, -0.527362f, -0.527444f, -0.527525f, -0.527606f, -0.527688f, -0.527769f,
+ -0.527851f, -0.527932f, -0.528014f, -0.528095f, -0.528176f, -0.528258f, -0.528339f, -0.528421f,
+ -0.528502f, -0.528583f, -0.528665f, -0.528746f, -0.528828f, -0.528909f, -0.528990f, -0.529072f,
+ -0.529153f, -0.529234f, -0.529316f, -0.529397f, -0.529478f, -0.529560f, -0.529641f, -0.529722f,
+ -0.529804f, -0.529885f, -0.529966f, -0.530048f, -0.530129f, -0.530210f, -0.530291f, -0.530373f,
+ -0.530454f, -0.530535f, -0.530617f, -0.530698f, -0.530779f, -0.530860f, -0.530942f, -0.531023f,
+ -0.531104f, -0.531185f, -0.531266f, -0.531348f, -0.531429f, -0.531510f, -0.531591f, -0.531673f,
+ -0.531754f, -0.531835f, -0.531916f, -0.531997f, -0.532078f, -0.532160f, -0.532241f, -0.532322f,
+ -0.532403f, -0.532484f, -0.532565f, -0.532647f, -0.532728f, -0.532809f, -0.532890f, -0.532971f,
+ -0.533052f, -0.533133f, -0.533214f, -0.533296f, -0.533377f, -0.533458f, -0.533539f, -0.533620f,
+ -0.533701f, -0.533782f, -0.533863f, -0.533944f, -0.534025f, -0.534106f, -0.534187f, -0.534268f,
+ -0.534349f, -0.534431f, -0.534512f, -0.534593f, -0.534674f, -0.534755f, -0.534836f, -0.534917f,
+ -0.534998f, -0.535079f, -0.535160f, -0.535241f, -0.535322f, -0.535403f, -0.535484f, -0.535564f,
+ -0.535645f, -0.535726f, -0.535807f, -0.535888f, -0.535969f, -0.536050f, -0.536131f, -0.536212f,
+ -0.536293f, -0.536374f, -0.536455f, -0.536536f, -0.536617f, -0.536698f, -0.536778f, -0.536859f,
+ -0.536940f, -0.537021f, -0.537102f, -0.537183f, -0.537264f, -0.537345f, -0.537425f, -0.537506f,
+ -0.537587f, -0.537668f, -0.537749f, -0.537830f, -0.537910f, -0.537991f, -0.538072f, -0.538153f,
+ -0.538234f, -0.538314f, -0.538395f, -0.538476f, -0.538557f, -0.538638f, -0.538718f, -0.538799f,
+ -0.538880f, -0.538961f, -0.539041f, -0.539122f, -0.539203f, -0.539284f, -0.539364f, -0.539445f,
+ -0.539526f, -0.539607f, -0.539687f, -0.539768f, -0.539849f, -0.539929f, -0.540010f, -0.540091f,
+ -0.540171f, -0.540252f, -0.540333f, -0.540413f, -0.540494f, -0.540575f, -0.540655f, -0.540736f,
+ -0.540817f, -0.540897f, -0.540978f, -0.541059f, -0.541139f, -0.541220f, -0.541301f, -0.541381f,
+ -0.541462f, -0.541542f, -0.541623f, -0.541704f, -0.541784f, -0.541865f, -0.541945f, -0.542026f,
+ -0.542106f, -0.542187f, -0.542268f, -0.542348f, -0.542429f, -0.542509f, -0.542590f, -0.542670f,
+ -0.542751f, -0.542831f, -0.542912f, -0.542992f, -0.543073f, -0.543153f, -0.543234f, -0.543314f,
+ -0.543395f, -0.543475f, -0.543556f, -0.543636f, -0.543717f, -0.543797f, -0.543878f, -0.543958f,
+ -0.544039f, -0.544119f, -0.544199f, -0.544280f, -0.544360f, -0.544441f, -0.544521f, -0.544602f,
+ -0.544682f, -0.544762f, -0.544843f, -0.544923f, -0.545003f, -0.545084f, -0.545164f, -0.545245f,
+ -0.545325f, -0.545405f, -0.545486f, -0.545566f, -0.545646f, -0.545727f, -0.545807f, -0.545887f,
+ -0.545968f, -0.546048f, -0.546128f, -0.546209f, -0.546289f, -0.546369f, -0.546450f, -0.546530f,
+ -0.546610f, -0.546690f, -0.546771f, -0.546851f, -0.546931f, -0.547011f, -0.547092f, -0.547172f,
+ -0.547252f, -0.547333f, -0.547413f, -0.547493f, -0.547573f, -0.547653f, -0.547734f, -0.547814f,
+ -0.547894f, -0.547974f, -0.548054f, -0.548135f, -0.548215f, -0.548295f, -0.548375f, -0.548455f,
+ -0.548536f, -0.548616f, -0.548696f, -0.548776f, -0.548856f, -0.548936f, -0.549016f, -0.549097f,
+ -0.549177f, -0.549257f, -0.549337f, -0.549417f, -0.549497f, -0.549577f, -0.549657f, -0.549737f,
+ -0.549818f, -0.549898f, -0.549978f, -0.550058f, -0.550138f, -0.550218f, -0.550298f, -0.550378f,
+ -0.550458f, -0.550538f, -0.550618f, -0.550698f, -0.550778f, -0.550858f, -0.550938f, -0.551018f,
+ -0.551098f, -0.551178f, -0.551258f, -0.551338f, -0.551418f, -0.551498f, -0.551578f, -0.551658f,
+ -0.551738f, -0.551818f, -0.551898f, -0.551978f, -0.552058f, -0.552138f, -0.552218f, -0.552298f,
+ -0.552378f, -0.552457f, -0.552537f, -0.552617f, -0.552697f, -0.552777f, -0.552857f, -0.552937f,
+ -0.553017f, -0.553097f, -0.553176f, -0.553256f, -0.553336f, -0.553416f, -0.553496f, -0.553576f,
+ -0.553656f, -0.553735f, -0.553815f, -0.553895f, -0.553975f, -0.554055f, -0.554134f, -0.554214f,
+ -0.554294f, -0.554374f, -0.554454f, -0.554533f, -0.554613f, -0.554693f, -0.554773f, -0.554853f,
+ -0.554932f, -0.555012f, -0.555092f, -0.555172f, -0.555251f, -0.555331f, -0.555411f, -0.555490f,
+ -0.555570f, -0.555650f, -0.555730f, -0.555809f, -0.555889f, -0.555969f, -0.556048f, -0.556128f,
+ -0.556208f, -0.556287f, -0.556367f, -0.556447f, -0.556526f, -0.556606f, -0.556686f, -0.556765f,
+ -0.556845f, -0.556925f, -0.557004f, -0.557084f, -0.557164f, -0.557243f, -0.557323f, -0.557402f,
+ -0.557482f, -0.557562f, -0.557641f, -0.557721f, -0.557800f, -0.557880f, -0.557959f, -0.558039f,
+ -0.558119f, -0.558198f, -0.558278f, -0.558357f, -0.558437f, -0.558516f, -0.558596f, -0.558675f,
+ -0.558755f, -0.558834f, -0.558914f, -0.558993f, -0.559073f, -0.559152f, -0.559232f, -0.559311f,
+ -0.559391f, -0.559470f, -0.559550f, -0.559629f, -0.559709f, -0.559788f, -0.559867f, -0.559947f,
+ -0.560026f, -0.560106f, -0.560185f, -0.560265f, -0.560344f, -0.560423f, -0.560503f, -0.560582f,
+ -0.560662f, -0.560741f, -0.560820f, -0.560900f, -0.560979f, -0.561058f, -0.561138f, -0.561217f,
+ -0.561297f, -0.561376f, -0.561455f, -0.561535f, -0.561614f, -0.561693f, -0.561773f, -0.561852f,
+ -0.561931f, -0.562010f, -0.562090f, -0.562169f, -0.562248f, -0.562328f, -0.562407f, -0.562486f,
+ -0.562565f, -0.562645f, -0.562724f, -0.562803f, -0.562882f, -0.562962f, -0.563041f, -0.563120f,
+ -0.563199f, -0.563279f, -0.563358f, -0.563437f, -0.563516f, -0.563595f, -0.563675f, -0.563754f,
+ -0.563833f, -0.563912f, -0.563991f, -0.564070f, -0.564150f, -0.564229f, -0.564308f, -0.564387f,
+ -0.564466f, -0.564545f, -0.564624f, -0.564704f, -0.564783f, -0.564862f, -0.564941f, -0.565020f,
+ -0.565099f, -0.565178f, -0.565257f, -0.565336f, -0.565416f, -0.565495f, -0.565574f, -0.565653f,
+ -0.565732f, -0.565811f, -0.565890f, -0.565969f, -0.566048f, -0.566127f, -0.566206f, -0.566285f,
+ -0.566364f, -0.566443f, -0.566522f, -0.566601f, -0.566680f, -0.566759f, -0.566838f, -0.566917f,
+ -0.566996f, -0.567075f, -0.567154f, -0.567233f, -0.567312f, -0.567391f, -0.567470f, -0.567549f,
+ -0.567628f, -0.567707f, -0.567786f, -0.567864f, -0.567943f, -0.568022f, -0.568101f, -0.568180f,
+ -0.568259f, -0.568338f, -0.568417f, -0.568496f, -0.568574f, -0.568653f, -0.568732f, -0.568811f,
+ -0.568890f, -0.568969f, -0.569048f, -0.569126f, -0.569205f, -0.569284f, -0.569363f, -0.569442f,
+ -0.569521f, -0.569599f, -0.569678f, -0.569757f, -0.569836f, -0.569914f, -0.569993f, -0.570072f,
+ -0.570151f, -0.570230f, -0.570308f, -0.570387f, -0.570466f, -0.570545f, -0.570623f, -0.570702f,
+ -0.570781f, -0.570859f, -0.570938f, -0.571017f, -0.571096f, -0.571174f, -0.571253f, -0.571332f,
+ -0.571410f, -0.571489f, -0.571568f, -0.571646f, -0.571725f, -0.571804f, -0.571882f, -0.571961f,
+ -0.572040f, -0.572118f, -0.572197f, -0.572276f, -0.572354f, -0.572433f, -0.572511f, -0.572590f,
+ -0.572669f, -0.572747f, -0.572826f, -0.572904f, -0.572983f, -0.573061f, -0.573140f, -0.573219f,
+ -0.573297f, -0.573376f, -0.573454f, -0.573533f, -0.573611f, -0.573690f, -0.573768f, -0.573847f,
+ -0.573925f, -0.574004f, -0.574082f, -0.574161f, -0.574239f, -0.574318f, -0.574396f, -0.574475f,
+ -0.574553f, -0.574632f, -0.574710f, -0.574789f, -0.574867f, -0.574946f, -0.575024f, -0.575103f,
+ -0.575181f, -0.575259f, -0.575338f, -0.575416f, -0.575495f, -0.575573f, -0.575651f, -0.575730f,
+ -0.575808f, -0.575887f, -0.575965f, -0.576043f, -0.576122f, -0.576200f, -0.576278f, -0.576357f,
+ -0.576435f, -0.576513f, -0.576592f, -0.576670f, -0.576748f, -0.576827f, -0.576905f, -0.576983f,
+ -0.577062f, -0.577140f, -0.577218f, -0.577297f, -0.577375f, -0.577453f, -0.577531f, -0.577610f,
+ -0.577688f, -0.577766f, -0.577844f, -0.577923f, -0.578001f, -0.578079f, -0.578157f, -0.578236f,
+ -0.578314f, -0.578392f, -0.578470f, -0.578548f, -0.578627f, -0.578705f, -0.578783f, -0.578861f,
+ -0.578939f, -0.579018f, -0.579096f, -0.579174f, -0.579252f, -0.579330f, -0.579408f, -0.579486f,
+ -0.579565f, -0.579643f, -0.579721f, -0.579799f, -0.579877f, -0.579955f, -0.580033f, -0.580111f,
+ -0.580189f, -0.580267f, -0.580346f, -0.580424f, -0.580502f, -0.580580f, -0.580658f, -0.580736f,
+ -0.580814f, -0.580892f, -0.580970f, -0.581048f, -0.581126f, -0.581204f, -0.581282f, -0.581360f,
+ -0.581438f, -0.581516f, -0.581594f, -0.581672f, -0.581750f, -0.581828f, -0.581906f, -0.581984f,
+ -0.582062f, -0.582140f, -0.582218f, -0.582296f, -0.582374f, -0.582452f, -0.582530f, -0.582608f,
+ -0.582685f, -0.582763f, -0.582841f, -0.582919f, -0.582997f, -0.583075f, -0.583153f, -0.583231f,
+ -0.583309f, -0.583387f, -0.583464f, -0.583542f, -0.583620f, -0.583698f, -0.583776f, -0.583854f,
+ -0.583931f, -0.584009f, -0.584087f, -0.584165f, -0.584243f, -0.584321f, -0.584398f, -0.584476f,
+ -0.584554f, -0.584632f, -0.584710f, -0.584787f, -0.584865f, -0.584943f, -0.585021f, -0.585098f,
+ -0.585176f, -0.585254f, -0.585332f, -0.585409f, -0.585487f, -0.585565f, -0.585642f, -0.585720f,
+ -0.585798f, -0.585876f, -0.585953f, -0.586031f, -0.586109f, -0.586186f, -0.586264f, -0.586342f,
+ -0.586419f, -0.586497f, -0.586575f, -0.586652f, -0.586730f, -0.586808f, -0.586885f, -0.586963f,
+ -0.587040f, -0.587118f, -0.587196f, -0.587273f, -0.587351f, -0.587428f, -0.587506f, -0.587584f,
+ -0.587661f, -0.587739f, -0.587816f, -0.587894f, -0.587971f, -0.588049f, -0.588126f, -0.588204f,
+ -0.588282f, -0.588359f, -0.588437f, -0.588514f, -0.588592f, -0.588669f, -0.588747f, -0.588824f,
+ -0.588902f, -0.588979f, -0.589057f, -0.589134f, -0.589212f, -0.589289f, -0.589366f, -0.589444f,
+ -0.589521f, -0.589599f, -0.589676f, -0.589754f, -0.589831f, -0.589908f, -0.589986f, -0.590063f,
+ -0.590141f, -0.590218f, -0.590295f, -0.590373f, -0.590450f, -0.590528f, -0.590605f, -0.590682f,
+ -0.590760f, -0.590837f, -0.590914f, -0.590992f, -0.591069f, -0.591146f, -0.591224f, -0.591301f,
+ -0.591378f, -0.591456f, -0.591533f, -0.591610f, -0.591688f, -0.591765f, -0.591842f, -0.591919f,
+ -0.591997f, -0.592074f, -0.592151f, -0.592228f, -0.592306f, -0.592383f, -0.592460f, -0.592537f,
+ -0.592615f, -0.592692f, -0.592769f, -0.592846f, -0.592924f, -0.593001f, -0.593078f, -0.593155f,
+ -0.593232f, -0.593309f, -0.593387f, -0.593464f, -0.593541f, -0.593618f, -0.593695f, -0.593772f,
+ -0.593850f, -0.593927f, -0.594004f, -0.594081f, -0.594158f, -0.594235f, -0.594312f, -0.594389f,
+ -0.594467f, -0.594544f, -0.594621f, -0.594698f, -0.594775f, -0.594852f, -0.594929f, -0.595006f,
+ -0.595083f, -0.595160f, -0.595237f, -0.595314f, -0.595391f, -0.595468f, -0.595545f, -0.595622f,
+ -0.595699f, -0.595776f, -0.595853f, -0.595930f, -0.596007f, -0.596084f, -0.596161f, -0.596238f,
+ -0.596315f, -0.596392f, -0.596469f, -0.596546f, -0.596623f, -0.596700f, -0.596777f, -0.596854f,
+ -0.596931f, -0.597008f, -0.597085f, -0.597161f, -0.597238f, -0.597315f, -0.597392f, -0.597469f,
+ -0.597546f, -0.597623f, -0.597700f, -0.597776f, -0.597853f, -0.597930f, -0.598007f, -0.598084f,
+ -0.598161f, -0.598238f, -0.598314f, -0.598391f, -0.598468f, -0.598545f, -0.598622f, -0.598698f,
+ -0.598775f, -0.598852f, -0.598929f, -0.599006f, -0.599082f, -0.599159f, -0.599236f, -0.599313f,
+ -0.599389f, -0.599466f, -0.599543f, -0.599620f, -0.599696f, -0.599773f, -0.599850f, -0.599926f,
+ -0.600003f, -0.600080f, -0.600156f, -0.600233f, -0.600310f, -0.600387f, -0.600463f, -0.600540f,
+ -0.600616f, -0.600693f, -0.600770f, -0.600846f, -0.600923f, -0.601000f, -0.601076f, -0.601153f,
+ -0.601230f, -0.601306f, -0.601383f, -0.601459f, -0.601536f, -0.601613f, -0.601689f, -0.601766f,
+ -0.601842f, -0.601919f, -0.601995f, -0.602072f, -0.602148f, -0.602225f, -0.602302f, -0.602378f,
+ -0.602455f, -0.602531f, -0.602608f, -0.602684f, -0.602761f, -0.602837f, -0.602914f, -0.602990f,
+ -0.603067f, -0.603143f, -0.603220f, -0.603296f, -0.603372f, -0.603449f, -0.603525f, -0.603602f,
+ -0.603678f, -0.603755f, -0.603831f, -0.603908f, -0.603984f, -0.604060f, -0.604137f, -0.604213f,
+ -0.604290f, -0.604366f, -0.604442f, -0.604519f, -0.604595f, -0.604671f, -0.604748f, -0.604824f,
+ -0.604900f, -0.604977f, -0.605053f, -0.605129f, -0.605206f, -0.605282f, -0.605358f, -0.605435f,
+ -0.605511f, -0.605587f, -0.605664f, -0.605740f, -0.605816f, -0.605892f, -0.605969f, -0.606045f,
+ -0.606121f, -0.606198f, -0.606274f, -0.606350f, -0.606426f, -0.606502f, -0.606579f, -0.606655f,
+ -0.606731f, -0.606807f, -0.606884f, -0.606960f, -0.607036f, -0.607112f, -0.607188f, -0.607264f,
+ -0.607341f, -0.607417f, -0.607493f, -0.607569f, -0.607645f, -0.607721f, -0.607798f, -0.607874f,
+ -0.607950f, -0.608026f, -0.608102f, -0.608178f, -0.608254f, -0.608330f, -0.608406f, -0.608482f,
+ -0.608559f, -0.608635f, -0.608711f, -0.608787f, -0.608863f, -0.608939f, -0.609015f, -0.609091f,
+ -0.609167f, -0.609243f, -0.609319f, -0.609395f, -0.609471f, -0.609547f, -0.609623f, -0.609699f,
+ -0.609775f, -0.609851f, -0.609927f, -0.610003f, -0.610079f, -0.610155f, -0.610231f, -0.610307f,
+ -0.610383f, -0.610459f, -0.610535f, -0.610611f, -0.610687f, -0.610762f, -0.610838f, -0.610914f,
+ -0.610990f, -0.611066f, -0.611142f, -0.611218f, -0.611294f, -0.611370f, -0.611445f, -0.611521f,
+ -0.611597f, -0.611673f, -0.611749f, -0.611825f, -0.611901f, -0.611976f, -0.612052f, -0.612128f,
+ -0.612204f, -0.612280f, -0.612355f, -0.612431f, -0.612507f, -0.612583f, -0.612659f, -0.612734f,
+ -0.612810f, -0.612886f, -0.612962f, -0.613037f, -0.613113f, -0.613189f, -0.613265f, -0.613340f,
+ -0.613416f, -0.613492f, -0.613567f, -0.613643f, -0.613719f, -0.613795f, -0.613870f, -0.613946f,
+ -0.614022f, -0.614097f, -0.614173f, -0.614249f, -0.614324f, -0.614400f, -0.614475f, -0.614551f,
+ -0.614627f, -0.614702f, -0.614778f, -0.614854f, -0.614929f, -0.615005f, -0.615080f, -0.615156f,
+ -0.615232f, -0.615307f, -0.615383f, -0.615458f, -0.615534f, -0.615609f, -0.615685f, -0.615761f,
+ -0.615836f, -0.615912f, -0.615987f, -0.616063f, -0.616138f, -0.616214f, -0.616289f, -0.616365f,
+ -0.616440f, -0.616516f, -0.616591f, -0.616667f, -0.616742f, -0.616818f, -0.616893f, -0.616968f,
+ -0.617044f, -0.617119f, -0.617195f, -0.617270f, -0.617346f, -0.617421f, -0.617496f, -0.617572f,
+ -0.617647f, -0.617723f, -0.617798f, -0.617873f, -0.617949f, -0.618024f, -0.618100f, -0.618175f,
+ -0.618250f, -0.618326f, -0.618401f, -0.618476f, -0.618552f, -0.618627f, -0.618702f, -0.618778f,
+ -0.618853f, -0.618928f, -0.619004f, -0.619079f, -0.619154f, -0.619229f, -0.619305f, -0.619380f,
+ -0.619455f, -0.619531f, -0.619606f, -0.619681f, -0.619756f, -0.619832f, -0.619907f, -0.619982f,
+ -0.620057f, -0.620132f, -0.620208f, -0.620283f, -0.620358f, -0.620433f, -0.620508f, -0.620584f,
+ -0.620659f, -0.620734f, -0.620809f, -0.620884f, -0.620959f, -0.621035f, -0.621110f, -0.621185f,
+ -0.621260f, -0.621335f, -0.621410f, -0.621485f, -0.621560f, -0.621636f, -0.621711f, -0.621786f,
+ -0.621861f, -0.621936f, -0.622011f, -0.622086f, -0.622161f, -0.622236f, -0.622311f, -0.622386f,
+ -0.622461f, -0.622536f, -0.622611f, -0.622686f, -0.622761f, -0.622836f, -0.622911f, -0.622986f,
+ -0.623061f, -0.623136f, -0.623211f, -0.623286f, -0.623361f, -0.623436f, -0.623511f, -0.623586f,
+ -0.623661f, -0.623736f, -0.623811f, -0.623886f, -0.623961f, -0.624036f, -0.624111f, -0.624186f,
+ -0.624260f, -0.624335f, -0.624410f, -0.624485f, -0.624560f, -0.624635f, -0.624710f, -0.624785f,
+ -0.624860f, -0.624934f, -0.625009f, -0.625084f, -0.625159f, -0.625234f, -0.625309f, -0.625383f,
+ -0.625458f, -0.625533f, -0.625608f, -0.625683f, -0.625757f, -0.625832f, -0.625907f, -0.625982f,
+ -0.626056f, -0.626131f, -0.626206f, -0.626281f, -0.626355f, -0.626430f, -0.626505f, -0.626580f,
+ -0.626654f, -0.626729f, -0.626804f, -0.626878f, -0.626953f, -0.627028f, -0.627102f, -0.627177f,
+ -0.627252f, -0.627326f, -0.627401f, -0.627476f, -0.627550f, -0.627625f, -0.627700f, -0.627774f,
+ -0.627849f, -0.627924f, -0.627998f, -0.628073f, -0.628147f, -0.628222f, -0.628297f, -0.628371f,
+ -0.628446f, -0.628520f, -0.628595f, -0.628669f, -0.628744f, -0.628819f, -0.628893f, -0.628968f,
+ -0.629042f, -0.629117f, -0.629191f, -0.629266f, -0.629340f, -0.629415f, -0.629489f, -0.629564f,
+ -0.629638f, -0.629713f, -0.629787f, -0.629862f, -0.629936f, -0.630011f, -0.630085f, -0.630159f,
+ -0.630234f, -0.630308f, -0.630383f, -0.630457f, -0.630532f, -0.630606f, -0.630680f, -0.630755f,
+ -0.630829f, -0.630904f, -0.630978f, -0.631052f, -0.631127f, -0.631201f, -0.631275f, -0.631350f,
+ -0.631424f, -0.631499f, -0.631573f, -0.631647f, -0.631721f, -0.631796f, -0.631870f, -0.631944f,
+ -0.632019f, -0.632093f, -0.632167f, -0.632242f, -0.632316f, -0.632390f, -0.632464f, -0.632539f,
+ -0.632613f, -0.632687f, -0.632761f, -0.632836f, -0.632910f, -0.632984f, -0.633058f, -0.633133f,
+ -0.633207f, -0.633281f, -0.633355f, -0.633429f, -0.633504f, -0.633578f, -0.633652f, -0.633726f,
+ -0.633800f, -0.633874f, -0.633949f, -0.634023f, -0.634097f, -0.634171f, -0.634245f, -0.634319f,
+ -0.634393f, -0.634467f, -0.634542f, -0.634616f, -0.634690f, -0.634764f, -0.634838f, -0.634912f,
+ -0.634986f, -0.635060f, -0.635134f, -0.635208f, -0.635282f, -0.635356f, -0.635430f, -0.635504f,
+ -0.635578f, -0.635652f, -0.635726f, -0.635800f, -0.635874f, -0.635948f, -0.636022f, -0.636096f,
+ -0.636170f, -0.636244f, -0.636318f, -0.636392f, -0.636466f, -0.636540f, -0.636614f, -0.636688f,
+ -0.636762f, -0.636836f, -0.636910f, -0.636984f, -0.637057f, -0.637131f, -0.637205f, -0.637279f,
+ -0.637353f, -0.637427f, -0.637501f, -0.637575f, -0.637649f, -0.637722f, -0.637796f, -0.637870f,
+ -0.637944f, -0.638018f, -0.638092f, -0.638165f, -0.638239f, -0.638313f, -0.638387f, -0.638461f,
+ -0.638534f, -0.638608f, -0.638682f, -0.638756f, -0.638829f, -0.638903f, -0.638977f, -0.639051f,
+ -0.639124f, -0.639198f, -0.639272f, -0.639346f, -0.639419f, -0.639493f, -0.639567f, -0.639640f,
+ -0.639714f, -0.639788f, -0.639862f, -0.639935f, -0.640009f, -0.640083f, -0.640156f, -0.640230f,
+ -0.640303f, -0.640377f, -0.640451f, -0.640524f, -0.640598f, -0.640672f, -0.640745f, -0.640819f,
+ -0.640892f, -0.640966f, -0.641040f, -0.641113f, -0.641187f, -0.641260f, -0.641334f, -0.641407f,
+ -0.641481f, -0.641555f, -0.641628f, -0.641702f, -0.641775f, -0.641849f, -0.641922f, -0.641996f,
+ -0.642069f, -0.642143f, -0.642216f, -0.642290f, -0.642363f, -0.642437f, -0.642510f, -0.642584f,
+ -0.642657f, -0.642730f, -0.642804f, -0.642877f, -0.642951f, -0.643024f, -0.643098f, -0.643171f,
+ -0.643245f, -0.643318f, -0.643391f, -0.643465f, -0.643538f, -0.643611f, -0.643685f, -0.643758f,
+ -0.643832f, -0.643905f, -0.643978f, -0.644052f, -0.644125f, -0.644198f, -0.644272f, -0.644345f,
+ -0.644418f, -0.644492f, -0.644565f, -0.644638f, -0.644711f, -0.644785f, -0.644858f, -0.644931f,
+ -0.645005f, -0.645078f, -0.645151f, -0.645224f, -0.645298f, -0.645371f, -0.645444f, -0.645517f,
+ -0.645590f, -0.645664f, -0.645737f, -0.645810f, -0.645883f, -0.645956f, -0.646030f, -0.646103f,
+ -0.646176f, -0.646249f, -0.646322f, -0.646396f, -0.646469f, -0.646542f, -0.646615f, -0.646688f,
+ -0.646761f, -0.646834f, -0.646907f, -0.646981f, -0.647054f, -0.647127f, -0.647200f, -0.647273f,
+ -0.647346f, -0.647419f, -0.647492f, -0.647565f, -0.647638f, -0.647711f, -0.647784f, -0.647857f,
+ -0.647930f, -0.648003f, -0.648076f, -0.648149f, -0.648222f, -0.648295f, -0.648368f, -0.648441f,
+ -0.648514f, -0.648587f, -0.648660f, -0.648733f, -0.648806f, -0.648879f, -0.648952f, -0.649025f,
+ -0.649098f, -0.649171f, -0.649244f, -0.649317f, -0.649390f, -0.649463f, -0.649536f, -0.649608f,
+ -0.649681f, -0.649754f, -0.649827f, -0.649900f, -0.649973f, -0.650046f, -0.650119f, -0.650191f,
+ -0.650264f, -0.650337f, -0.650410f, -0.650483f, -0.650555f, -0.650628f, -0.650701f, -0.650774f,
+ -0.650847f, -0.650919f, -0.650992f, -0.651065f, -0.651138f, -0.651211f, -0.651283f, -0.651356f,
+ -0.651429f, -0.651502f, -0.651574f, -0.651647f, -0.651720f, -0.651792f, -0.651865f, -0.651938f,
+ -0.652011f, -0.652083f, -0.652156f, -0.652229f, -0.652301f, -0.652374f, -0.652447f, -0.652519f,
+ -0.652592f, -0.652665f, -0.652737f, -0.652810f, -0.652882f, -0.652955f, -0.653028f, -0.653100f,
+ -0.653173f, -0.653245f, -0.653318f, -0.653391f, -0.653463f, -0.653536f, -0.653608f, -0.653681f,
+ -0.653753f, -0.653826f, -0.653899f, -0.653971f, -0.654044f, -0.654116f, -0.654189f, -0.654261f,
+ -0.654334f, -0.654406f, -0.654479f, -0.654551f, -0.654624f, -0.654696f, -0.654769f, -0.654841f,
+ -0.654913f, -0.654986f, -0.655058f, -0.655131f, -0.655203f, -0.655276f, -0.655348f, -0.655420f,
+ -0.655493f, -0.655565f, -0.655638f, -0.655710f, -0.655782f, -0.655855f, -0.655927f, -0.656000f,
+ -0.656072f, -0.656144f, -0.656217f, -0.656289f, -0.656361f, -0.656434f, -0.656506f, -0.656578f,
+ -0.656651f, -0.656723f, -0.656795f, -0.656867f, -0.656940f, -0.657012f, -0.657084f, -0.657157f,
+ -0.657229f, -0.657301f, -0.657373f, -0.657446f, -0.657518f, -0.657590f, -0.657662f, -0.657734f,
+ -0.657807f, -0.657879f, -0.657951f, -0.658023f, -0.658095f, -0.658168f, -0.658240f, -0.658312f,
+ -0.658384f, -0.658456f, -0.658529f, -0.658601f, -0.658673f, -0.658745f, -0.658817f, -0.658889f,
+ -0.658961f, -0.659033f, -0.659105f, -0.659178f, -0.659250f, -0.659322f, -0.659394f, -0.659466f,
+ -0.659538f, -0.659610f, -0.659682f, -0.659754f, -0.659826f, -0.659898f, -0.659970f, -0.660042f,
+ -0.660114f, -0.660186f, -0.660258f, -0.660330f, -0.660402f, -0.660474f, -0.660546f, -0.660618f,
+ -0.660690f, -0.660762f, -0.660834f, -0.660906f, -0.660978f, -0.661050f, -0.661122f, -0.661194f,
+ -0.661266f, -0.661338f, -0.661410f, -0.661482f, -0.661553f, -0.661625f, -0.661697f, -0.661769f,
+ -0.661841f, -0.661913f, -0.661985f, -0.662057f, -0.662128f, -0.662200f, -0.662272f, -0.662344f,
+ -0.662416f, -0.662488f, -0.662559f, -0.662631f, -0.662703f, -0.662775f, -0.662847f, -0.662918f,
+ -0.662990f, -0.663062f, -0.663134f, -0.663205f, -0.663277f, -0.663349f, -0.663421f, -0.663492f,
+ -0.663564f, -0.663636f, -0.663708f, -0.663779f, -0.663851f, -0.663923f, -0.663994f, -0.664066f,
+ -0.664138f, -0.664209f, -0.664281f, -0.664353f, -0.664424f, -0.664496f, -0.664568f, -0.664639f,
+ -0.664711f, -0.664783f, -0.664854f, -0.664926f, -0.664997f, -0.665069f, -0.665141f, -0.665212f,
+ -0.665284f, -0.665355f, -0.665427f, -0.665498f, -0.665570f, -0.665642f, -0.665713f, -0.665785f,
+ -0.665856f, -0.665928f, -0.665999f, -0.666071f, -0.666142f, -0.666214f, -0.666285f, -0.666357f,
+ -0.666428f, -0.666500f, -0.666571f, -0.666643f, -0.666714f, -0.666786f, -0.666857f, -0.666928f,
+ -0.667000f, -0.667071f, -0.667143f, -0.667214f, -0.667286f, -0.667357f, -0.667428f, -0.667500f,
+ -0.667571f, -0.667643f, -0.667714f, -0.667785f, -0.667857f, -0.667928f, -0.667999f, -0.668071f,
+ -0.668142f, -0.668213f, -0.668285f, -0.668356f, -0.668427f, -0.668499f, -0.668570f, -0.668641f,
+ -0.668712f, -0.668784f, -0.668855f, -0.668926f, -0.668998f, -0.669069f, -0.669140f, -0.669211f,
+ -0.669283f, -0.669354f, -0.669425f, -0.669496f, -0.669567f, -0.669639f, -0.669710f, -0.669781f,
+ -0.669852f, -0.669923f, -0.669995f, -0.670066f, -0.670137f, -0.670208f, -0.670279f, -0.670350f,
+ -0.670422f, -0.670493f, -0.670564f, -0.670635f, -0.670706f, -0.670777f, -0.670848f, -0.670919f,
+ -0.670990f, -0.671062f, -0.671133f, -0.671204f, -0.671275f, -0.671346f, -0.671417f, -0.671488f,
+ -0.671559f, -0.671630f, -0.671701f, -0.671772f, -0.671843f, -0.671914f, -0.671985f, -0.672056f,
+ -0.672127f, -0.672198f, -0.672269f, -0.672340f, -0.672411f, -0.672482f, -0.672553f, -0.672624f,
+ -0.672695f, -0.672766f, -0.672837f, -0.672908f, -0.672978f, -0.673049f, -0.673120f, -0.673191f,
+ -0.673262f, -0.673333f, -0.673404f, -0.673475f, -0.673546f, -0.673616f, -0.673687f, -0.673758f,
+ -0.673829f, -0.673900f, -0.673971f, -0.674042f, -0.674112f, -0.674183f, -0.674254f, -0.674325f,
+ -0.674396f, -0.674466f, -0.674537f, -0.674608f, -0.674679f, -0.674749f, -0.674820f, -0.674891f,
+ -0.674962f, -0.675032f, -0.675103f, -0.675174f, -0.675245f, -0.675315f, -0.675386f, -0.675457f,
+ -0.675527f, -0.675598f, -0.675669f, -0.675739f, -0.675810f, -0.675881f, -0.675951f, -0.676022f,
+ -0.676093f, -0.676163f, -0.676234f, -0.676305f, -0.676375f, -0.676446f, -0.676516f, -0.676587f,
+ -0.676658f, -0.676728f, -0.676799f, -0.676869f, -0.676940f, -0.677011f, -0.677081f, -0.677152f,
+ -0.677222f, -0.677293f, -0.677363f, -0.677434f, -0.677504f, -0.677575f, -0.677645f, -0.677716f,
+ -0.677786f, -0.677857f, -0.677927f, -0.677998f, -0.678068f, -0.678139f, -0.678209f, -0.678280f,
+ -0.678350f, -0.678420f, -0.678491f, -0.678561f, -0.678632f, -0.678702f, -0.678773f, -0.678843f,
+ -0.678913f, -0.678984f, -0.679054f, -0.679125f, -0.679195f, -0.679265f, -0.679336f, -0.679406f,
+ -0.679476f, -0.679547f, -0.679617f, -0.679687f, -0.679758f, -0.679828f, -0.679898f, -0.679969f,
+ -0.680039f, -0.680109f, -0.680179f, -0.680250f, -0.680320f, -0.680390f, -0.680461f, -0.680531f,
+ -0.680601f, -0.680671f, -0.680741f, -0.680812f, -0.680882f, -0.680952f, -0.681022f, -0.681093f,
+ -0.681163f, -0.681233f, -0.681303f, -0.681373f, -0.681443f, -0.681514f, -0.681584f, -0.681654f,
+ -0.681724f, -0.681794f, -0.681864f, -0.681934f, -0.682005f, -0.682075f, -0.682145f, -0.682215f,
+ -0.682285f, -0.682355f, -0.682425f, -0.682495f, -0.682565f, -0.682635f, -0.682705f, -0.682775f,
+ -0.682846f, -0.682916f, -0.682986f, -0.683056f, -0.683126f, -0.683196f, -0.683266f, -0.683336f,
+ -0.683406f, -0.683476f, -0.683546f, -0.683616f, -0.683686f, -0.683756f, -0.683825f, -0.683895f,
+ -0.683965f, -0.684035f, -0.684105f, -0.684175f, -0.684245f, -0.684315f, -0.684385f, -0.684455f,
+ -0.684525f, -0.684595f, -0.684664f, -0.684734f, -0.684804f, -0.684874f, -0.684944f, -0.685014f,
+ -0.685084f, -0.685153f, -0.685223f, -0.685293f, -0.685363f, -0.685433f, -0.685503f, -0.685572f,
+ -0.685642f, -0.685712f, -0.685782f, -0.685852f, -0.685921f, -0.685991f, -0.686061f, -0.686131f,
+ -0.686200f, -0.686270f, -0.686340f, -0.686409f, -0.686479f, -0.686549f, -0.686619f, -0.686688f,
+ -0.686758f, -0.686828f, -0.686897f, -0.686967f, -0.687037f, -0.687106f, -0.687176f, -0.687246f,
+ -0.687315f, -0.687385f, -0.687455f, -0.687524f, -0.687594f, -0.687663f, -0.687733f, -0.687803f,
+ -0.687872f, -0.687942f, -0.688011f, -0.688081f, -0.688151f, -0.688220f, -0.688290f, -0.688359f,
+ -0.688429f, -0.688498f, -0.688568f, -0.688637f, -0.688707f, -0.688776f, -0.688846f, -0.688915f,
+ -0.688985f, -0.689054f, -0.689124f, -0.689193f, -0.689263f, -0.689332f, -0.689402f, -0.689471f,
+ -0.689541f, -0.689610f, -0.689679f, -0.689749f, -0.689818f, -0.689888f, -0.689957f, -0.690026f,
+ -0.690096f, -0.690165f, -0.690235f, -0.690304f, -0.690373f, -0.690443f, -0.690512f, -0.690581f,
+ -0.690651f, -0.690720f, -0.690789f, -0.690859f, -0.690928f, -0.690997f, -0.691067f, -0.691136f,
+ -0.691205f, -0.691274f, -0.691344f, -0.691413f, -0.691482f, -0.691552f, -0.691621f, -0.691690f,
+ -0.691759f, -0.691828f, -0.691898f, -0.691967f, -0.692036f, -0.692105f, -0.692175f, -0.692244f,
+ -0.692313f, -0.692382f, -0.692451f, -0.692520f, -0.692590f, -0.692659f, -0.692728f, -0.692797f,
+ -0.692866f, -0.692935f, -0.693004f, -0.693074f, -0.693143f, -0.693212f, -0.693281f, -0.693350f,
+ -0.693419f, -0.693488f, -0.693557f, -0.693626f, -0.693695f, -0.693764f, -0.693833f, -0.693902f,
+ -0.693971f, -0.694040f, -0.694109f, -0.694179f, -0.694248f, -0.694317f, -0.694386f, -0.694454f,
+ -0.694524f, -0.694592f, -0.694661f, -0.694730f, -0.694799f, -0.694868f, -0.694937f, -0.695006f,
+ -0.695075f, -0.695144f, -0.695213f, -0.695282f, -0.695351f, -0.695420f, -0.695489f, -0.695557f,
+ -0.695626f, -0.695695f, -0.695764f, -0.695833f, -0.695902f, -0.695971f, -0.696039f, -0.696108f,
+ -0.696177f, -0.696246f, -0.696315f, -0.696384f, -0.696452f, -0.696521f, -0.696590f, -0.696659f,
+ -0.696728f, -0.696796f, -0.696865f, -0.696934f, -0.697003f, -0.697071f, -0.697140f, -0.697209f,
+ -0.697277f, -0.697346f, -0.697415f, -0.697484f, -0.697552f, -0.697621f, -0.697690f, -0.697758f,
+ -0.697827f, -0.697896f, -0.697964f, -0.698033f, -0.698102f, -0.698170f, -0.698239f, -0.698308f,
+ -0.698376f, -0.698445f, -0.698513f, -0.698582f, -0.698651f, -0.698719f, -0.698788f, -0.698856f,
+ -0.698925f, -0.698994f, -0.699062f, -0.699131f, -0.699199f, -0.699268f, -0.699336f, -0.699405f,
+ -0.699473f, -0.699542f, -0.699610f, -0.699679f, -0.699747f, -0.699816f, -0.699884f, -0.699953f,
+ -0.700021f, -0.700090f, -0.700158f, -0.700227f, -0.700295f, -0.700364f, -0.700432f, -0.700500f,
+ -0.700569f, -0.700637f, -0.700706f, -0.700774f, -0.700842f, -0.700911f, -0.700979f, -0.701048f,
+ -0.701116f, -0.701184f, -0.701253f, -0.701321f, -0.701389f, -0.701458f, -0.701526f, -0.701594f,
+ -0.701663f, -0.701731f, -0.701799f, -0.701868f, -0.701936f, -0.702004f, -0.702072f, -0.702141f,
+ -0.702209f, -0.702277f, -0.702345f, -0.702414f, -0.702482f, -0.702550f, -0.702618f, -0.702687f,
+ -0.702755f, -0.702823f, -0.702891f, -0.702959f, -0.703028f, -0.703096f, -0.703164f, -0.703232f,
+ -0.703300f, -0.703368f, -0.703436f, -0.703505f, -0.703573f, -0.703641f, -0.703709f, -0.703777f,
+ -0.703845f, -0.703913f, -0.703981f, -0.704050f, -0.704118f, -0.704186f, -0.704254f, -0.704322f,
+ -0.704390f, -0.704458f, -0.704526f, -0.704594f, -0.704662f, -0.704730f, -0.704798f, -0.704866f,
+ -0.704934f, -0.705002f, -0.705070f, -0.705138f, -0.705206f, -0.705274f, -0.705342f, -0.705410f,
+ -0.705478f, -0.705546f, -0.705614f, -0.705682f, -0.705750f, -0.705818f, -0.705885f, -0.705953f,
+ -0.706021f, -0.706089f, -0.706157f, -0.706225f, -0.706293f, -0.706361f, -0.706429f, -0.706496f,
+ -0.706564f, -0.706632f, -0.706700f, -0.706768f, -0.706836f, -0.706903f, -0.706971f, -0.707039f,
+ -0.707107f, -0.707175f, -0.707242f, -0.707310f, -0.707378f, -0.707446f, -0.707513f, -0.707581f,
+ -0.707649f, -0.707717f, -0.707784f, -0.707852f, -0.707920f, -0.707988f, -0.708055f, -0.708123f,
+ -0.708191f, -0.708258f, -0.708326f, -0.708394f, -0.708461f, -0.708529f, -0.708597f, -0.708664f,
+ -0.708732f, -0.708800f, -0.708867f, -0.708935f, -0.709002f, -0.709070f, -0.709138f, -0.709205f,
+ -0.709273f, -0.709340f, -0.709408f, -0.709476f, -0.709543f, -0.709611f, -0.709678f, -0.709746f,
+ -0.709813f, -0.709881f, -0.709948f, -0.710016f, -0.710083f, -0.710151f, -0.710218f, -0.710286f,
+ -0.710353f, -0.710421f, -0.710488f, -0.710556f, -0.710623f, -0.710691f, -0.710758f, -0.710826f,
+ -0.710893f, -0.710960f, -0.711028f, -0.711095f, -0.711163f, -0.711230f, -0.711297f, -0.711365f,
+ -0.711432f, -0.711500f, -0.711567f, -0.711634f, -0.711702f, -0.711769f, -0.711836f, -0.711904f,
+ -0.711971f, -0.712038f, -0.712106f, -0.712173f, -0.712240f, -0.712308f, -0.712375f, -0.712442f,
+ -0.712509f, -0.712577f, -0.712644f, -0.712711f, -0.712778f, -0.712846f, -0.712913f, -0.712980f,
+ -0.713047f, -0.713115f, -0.713182f, -0.713249f, -0.713316f, -0.713383f, -0.713451f, -0.713518f,
+ -0.713585f, -0.713652f, -0.713719f, -0.713786f, -0.713853f, -0.713921f, -0.713988f, -0.714055f,
+ -0.714122f, -0.714189f, -0.714256f, -0.714323f, -0.714390f, -0.714457f, -0.714525f, -0.714592f,
+ -0.714659f, -0.714726f, -0.714793f, -0.714860f, -0.714927f, -0.714994f, -0.715061f, -0.715128f,
+ -0.715195f, -0.715262f, -0.715329f, -0.715396f, -0.715463f, -0.715530f, -0.715597f, -0.715664f,
+ -0.715731f, -0.715798f, -0.715865f, -0.715932f, -0.715999f, -0.716066f, -0.716132f, -0.716199f,
+ -0.716266f, -0.716333f, -0.716400f, -0.716467f, -0.716534f, -0.716601f, -0.716668f, -0.716734f,
+ -0.716801f, -0.716868f, -0.716935f, -0.717002f, -0.717069f, -0.717135f, -0.717202f, -0.717269f,
+ -0.717336f, -0.717403f, -0.717469f, -0.717536f, -0.717603f, -0.717670f, -0.717737f, -0.717803f,
+ -0.717870f, -0.717937f, -0.718004f, -0.718070f, -0.718137f, -0.718204f, -0.718270f, -0.718337f,
+ -0.718404f, -0.718471f, -0.718537f, -0.718604f, -0.718670f, -0.718737f, -0.718804f, -0.718870f,
+ -0.718937f, -0.719004f, -0.719070f, -0.719137f, -0.719204f, -0.719270f, -0.719337f, -0.719403f,
+ -0.719470f, -0.719537f, -0.719603f, -0.719670f, -0.719736f, -0.719803f, -0.719869f, -0.719936f,
+ -0.720003f, -0.720069f, -0.720136f, -0.720202f, -0.720269f, -0.720335f, -0.720402f, -0.720468f,
+ -0.720535f, -0.720601f, -0.720668f, -0.720734f, -0.720800f, -0.720867f, -0.720933f, -0.721000f,
+ -0.721066f, -0.721133f, -0.721199f, -0.721265f, -0.721332f, -0.721398f, -0.721465f, -0.721531f,
+ -0.721597f, -0.721664f, -0.721730f, -0.721797f, -0.721863f, -0.721929f, -0.721996f, -0.722062f,
+ -0.722128f, -0.722194f, -0.722261f, -0.722327f, -0.722393f, -0.722460f, -0.722526f, -0.722592f,
+ -0.722659f, -0.722725f, -0.722791f, -0.722857f, -0.722924f, -0.722990f, -0.723056f, -0.723122f,
+ -0.723188f, -0.723255f, -0.723321f, -0.723387f, -0.723453f, -0.723520f, -0.723586f, -0.723652f,
+ -0.723718f, -0.723784f, -0.723850f, -0.723916f, -0.723983f, -0.724049f, -0.724115f, -0.724181f,
+ -0.724247f, -0.724313f, -0.724379f, -0.724445f, -0.724511f, -0.724578f, -0.724644f, -0.724710f,
+ -0.724776f, -0.724842f, -0.724908f, -0.724974f, -0.725040f, -0.725106f, -0.725172f, -0.725238f,
+ -0.725304f, -0.725370f, -0.725436f, -0.725502f, -0.725568f, -0.725634f, -0.725700f, -0.725766f,
+ -0.725832f, -0.725898f, -0.725964f, -0.726030f, -0.726095f, -0.726161f, -0.726227f, -0.726293f,
+ -0.726359f, -0.726425f, -0.726491f, -0.726557f, -0.726623f, -0.726689f, -0.726754f, -0.726820f,
+ -0.726886f, -0.726952f, -0.727018f, -0.727084f, -0.727149f, -0.727215f, -0.727281f, -0.727347f,
+ -0.727413f, -0.727478f, -0.727544f, -0.727610f, -0.727676f, -0.727741f, -0.727807f, -0.727873f,
+ -0.727939f, -0.728004f, -0.728070f, -0.728136f, -0.728202f, -0.728267f, -0.728333f, -0.728399f,
+ -0.728464f, -0.728530f, -0.728596f, -0.728661f, -0.728727f, -0.728793f, -0.728858f, -0.728924f,
+ -0.728990f, -0.729055f, -0.729121f, -0.729186f, -0.729252f, -0.729318f, -0.729383f, -0.729449f,
+ -0.729514f, -0.729580f, -0.729646f, -0.729711f, -0.729777f, -0.729842f, -0.729908f, -0.729973f,
+ -0.730039f, -0.730104f, -0.730170f, -0.730235f, -0.730301f, -0.730366f, -0.730432f, -0.730497f,
+ -0.730563f, -0.730628f, -0.730694f, -0.730759f, -0.730825f, -0.730890f, -0.730955f, -0.731021f,
+ -0.731086f, -0.731152f, -0.731217f, -0.731282f, -0.731348f, -0.731413f, -0.731479f, -0.731544f,
+ -0.731609f, -0.731675f, -0.731740f, -0.731805f, -0.731871f, -0.731936f, -0.732001f, -0.732067f,
+ -0.732132f, -0.732197f, -0.732263f, -0.732328f, -0.732393f, -0.732458f, -0.732524f, -0.732589f,
+ -0.732654f, -0.732720f, -0.732785f, -0.732850f, -0.732915f, -0.732980f, -0.733046f, -0.733111f,
+ -0.733176f, -0.733241f, -0.733306f, -0.733372f, -0.733437f, -0.733502f, -0.733567f, -0.733632f,
+ -0.733697f, -0.733763f, -0.733828f, -0.733893f, -0.733958f, -0.734023f, -0.734088f, -0.734153f,
+ -0.734218f, -0.734283f, -0.734349f, -0.734414f, -0.734479f, -0.734544f, -0.734609f, -0.734674f,
+ -0.734739f, -0.734804f, -0.734869f, -0.734934f, -0.734999f, -0.735064f, -0.735129f, -0.735194f,
+ -0.735259f, -0.735324f, -0.735389f, -0.735454f, -0.735519f, -0.735584f, -0.735649f, -0.735714f,
+ -0.735779f, -0.735844f, -0.735908f, -0.735973f, -0.736038f, -0.736103f, -0.736168f, -0.736233f,
+ -0.736298f, -0.736363f, -0.736428f, -0.736492f, -0.736557f, -0.736622f, -0.736687f, -0.736752f,
+ -0.736817f, -0.736881f, -0.736946f, -0.737011f, -0.737076f, -0.737141f, -0.737205f, -0.737270f,
+ -0.737335f, -0.737400f, -0.737464f, -0.737529f, -0.737594f, -0.737659f, -0.737723f, -0.737788f,
+ -0.737853f, -0.737918f, -0.737982f, -0.738047f, -0.738112f, -0.738176f, -0.738241f, -0.738306f,
+ -0.738370f, -0.738435f, -0.738500f, -0.738564f, -0.738629f, -0.738693f, -0.738758f, -0.738823f,
+ -0.738887f, -0.738952f, -0.739017f, -0.739081f, -0.739146f, -0.739210f, -0.739275f, -0.739339f,
+ -0.739404f, -0.739468f, -0.739533f, -0.739598f, -0.739662f, -0.739727f, -0.739791f, -0.739856f,
+ -0.739920f, -0.739985f, -0.740049f, -0.740114f, -0.740178f, -0.740242f, -0.740307f, -0.740371f,
+ -0.740436f, -0.740500f, -0.740565f, -0.740629f, -0.740694f, -0.740758f, -0.740822f, -0.740887f,
+ -0.740951f, -0.741015f, -0.741080f, -0.741144f, -0.741209f, -0.741273f, -0.741337f, -0.741402f,
+ -0.741466f, -0.741530f, -0.741595f, -0.741659f, -0.741723f, -0.741788f, -0.741852f, -0.741916f,
+ -0.741980f, -0.742045f, -0.742109f, -0.742173f, -0.742237f, -0.742302f, -0.742366f, -0.742430f,
+ -0.742494f, -0.742559f, -0.742623f, -0.742687f, -0.742751f, -0.742815f, -0.742880f, -0.742944f,
+ -0.743008f, -0.743072f, -0.743136f, -0.743200f, -0.743265f, -0.743329f, -0.743393f, -0.743457f,
+ -0.743521f, -0.743585f, -0.743649f, -0.743713f, -0.743777f, -0.743842f, -0.743906f, -0.743970f,
+ -0.744034f, -0.744098f, -0.744162f, -0.744226f, -0.744290f, -0.744354f, -0.744418f, -0.744482f,
+ -0.744546f, -0.744610f, -0.744674f, -0.744738f, -0.744802f, -0.744866f, -0.744930f, -0.744994f,
+ -0.745058f, -0.745122f, -0.745186f, -0.745250f, -0.745314f, -0.745377f, -0.745441f, -0.745505f,
+ -0.745569f, -0.745633f, -0.745697f, -0.745761f, -0.745825f, -0.745889f, -0.745952f, -0.746016f,
+ -0.746080f, -0.746144f, -0.746208f, -0.746272f, -0.746335f, -0.746399f, -0.746463f, -0.746527f,
+ -0.746591f, -0.746654f, -0.746718f, -0.746782f, -0.746846f, -0.746909f, -0.746973f, -0.747037f,
+ -0.747101f, -0.747164f, -0.747228f, -0.747292f, -0.747355f, -0.747419f, -0.747483f, -0.747547f,
+ -0.747610f, -0.747674f, -0.747738f, -0.747801f, -0.747865f, -0.747929f, -0.747992f, -0.748056f,
+ -0.748119f, -0.748183f, -0.748247f, -0.748310f, -0.748374f, -0.748437f, -0.748501f, -0.748565f,
+ -0.748628f, -0.748692f, -0.748755f, -0.748819f, -0.748882f, -0.748946f, -0.749009f, -0.749073f,
+ -0.749136f, -0.749200f, -0.749263f, -0.749327f, -0.749390f, -0.749454f, -0.749517f, -0.749581f,
+ -0.749644f, -0.749708f, -0.749771f, -0.749835f, -0.749898f, -0.749961f, -0.750025f, -0.750088f,
+ -0.750152f, -0.750215f, -0.750278f, -0.750342f, -0.750405f, -0.750469f, -0.750532f, -0.750595f,
+ -0.750659f, -0.750722f, -0.750785f, -0.750849f, -0.750912f, -0.750975f, -0.751039f, -0.751102f,
+ -0.751165f, -0.751228f, -0.751292f, -0.751355f, -0.751418f, -0.751481f, -0.751545f, -0.751608f,
+ -0.751671f, -0.751734f, -0.751798f, -0.751861f, -0.751924f, -0.751987f, -0.752050f, -0.752114f,
+ -0.752177f, -0.752240f, -0.752303f, -0.752366f, -0.752429f, -0.752493f, -0.752556f, -0.752619f,
+ -0.752682f, -0.752745f, -0.752808f, -0.752871f, -0.752934f, -0.752998f, -0.753061f, -0.753124f,
+ -0.753187f, -0.753250f, -0.753313f, -0.753376f, -0.753439f, -0.753502f, -0.753565f, -0.753628f,
+ -0.753691f, -0.753754f, -0.753817f, -0.753880f, -0.753943f, -0.754006f, -0.754069f, -0.754132f,
+ -0.754195f, -0.754258f, -0.754321f, -0.754384f, -0.754447f, -0.754510f, -0.754573f, -0.754636f,
+ -0.754698f, -0.754761f, -0.754824f, -0.754887f, -0.754950f, -0.755013f, -0.755076f, -0.755139f,
+ -0.755201f, -0.755264f, -0.755327f, -0.755390f, -0.755453f, -0.755516f, -0.755578f, -0.755641f,
+ -0.755704f, -0.755767f, -0.755829f, -0.755892f, -0.755955f, -0.756018f, -0.756081f, -0.756143f,
+ -0.756206f, -0.756269f, -0.756331f, -0.756394f, -0.756457f, -0.756520f, -0.756582f, -0.756645f,
+ -0.756708f, -0.756770f, -0.756833f, -0.756896f, -0.756958f, -0.757021f, -0.757084f, -0.757146f,
+ -0.757209f, -0.757271f, -0.757334f, -0.757397f, -0.757459f, -0.757522f, -0.757584f, -0.757647f,
+ -0.757710f, -0.757772f, -0.757835f, -0.757897f, -0.757960f, -0.758022f, -0.758085f, -0.758147f,
+ -0.758210f, -0.758272f, -0.758335f, -0.758397f, -0.758460f, -0.758522f, -0.758585f, -0.758647f,
+ -0.758710f, -0.758772f, -0.758835f, -0.758897f, -0.758960f, -0.759022f, -0.759084f, -0.759147f,
+ -0.759209f, -0.759272f, -0.759334f, -0.759396f, -0.759459f, -0.759521f, -0.759583f, -0.759646f,
+ -0.759708f, -0.759771f, -0.759833f, -0.759895f, -0.759957f, -0.760020f, -0.760082f, -0.760144f,
+ -0.760207f, -0.760269f, -0.760331f, -0.760394f, -0.760456f, -0.760518f, -0.760580f, -0.760643f,
+ -0.760705f, -0.760767f, -0.760829f, -0.760891f, -0.760954f, -0.761016f, -0.761078f, -0.761140f,
+ -0.761202f, -0.761265f, -0.761327f, -0.761389f, -0.761451f, -0.761513f, -0.761575f, -0.761637f,
+ -0.761700f, -0.761762f, -0.761824f, -0.761886f, -0.761948f, -0.762010f, -0.762072f, -0.762134f,
+ -0.762196f, -0.762258f, -0.762320f, -0.762382f, -0.762444f, -0.762507f, -0.762569f, -0.762631f,
+ -0.762693f, -0.762755f, -0.762817f, -0.762879f, -0.762941f, -0.763003f, -0.763065f, -0.763126f,
+ -0.763188f, -0.763250f, -0.763312f, -0.763374f, -0.763436f, -0.763498f, -0.763560f, -0.763622f,
+ -0.763684f, -0.763746f, -0.763808f, -0.763869f, -0.763931f, -0.763993f, -0.764055f, -0.764117f,
+ -0.764179f, -0.764241f, -0.764302f, -0.764364f, -0.764426f, -0.764488f, -0.764550f, -0.764611f,
+ -0.764673f, -0.764735f, -0.764797f, -0.764859f, -0.764920f, -0.764982f, -0.765044f, -0.765106f,
+ -0.765167f, -0.765229f, -0.765291f, -0.765352f, -0.765414f, -0.765476f, -0.765538f, -0.765599f,
+ -0.765661f, -0.765723f, -0.765784f, -0.765846f, -0.765907f, -0.765969f, -0.766031f, -0.766092f,
+ -0.766154f, -0.766216f, -0.766277f, -0.766339f, -0.766400f, -0.766462f, -0.766524f, -0.766585f,
+ -0.766647f, -0.766708f, -0.766770f, -0.766831f, -0.766893f, -0.766954f, -0.767016f, -0.767077f,
+ -0.767139f, -0.767200f, -0.767262f, -0.767323f, -0.767385f, -0.767446f, -0.767508f, -0.767569f,
+ -0.767631f, -0.767692f, -0.767754f, -0.767815f, -0.767876f, -0.767938f, -0.767999f, -0.768061f,
+ -0.768122f, -0.768183f, -0.768245f, -0.768306f, -0.768368f, -0.768429f, -0.768490f, -0.768552f,
+ -0.768613f, -0.768674f, -0.768736f, -0.768797f, -0.768858f, -0.768919f, -0.768981f, -0.769042f,
+ -0.769103f, -0.769165f, -0.769226f, -0.769287f, -0.769348f, -0.769410f, -0.769471f, -0.769532f,
+ -0.769593f, -0.769655f, -0.769716f, -0.769777f, -0.769838f, -0.769899f, -0.769961f, -0.770022f,
+ -0.770083f, -0.770144f, -0.770205f, -0.770266f, -0.770327f, -0.770389f, -0.770450f, -0.770511f,
+ -0.770572f, -0.770633f, -0.770694f, -0.770755f, -0.770816f, -0.770877f, -0.770938f, -0.770999f,
+ -0.771061f, -0.771122f, -0.771183f, -0.771244f, -0.771305f, -0.771366f, -0.771427f, -0.771488f,
+ -0.771549f, -0.771610f, -0.771671f, -0.771732f, -0.771793f, -0.771854f, -0.771915f, -0.771975f,
+ -0.772036f, -0.772097f, -0.772158f, -0.772219f, -0.772280f, -0.772341f, -0.772402f, -0.772463f,
+ -0.772524f, -0.772584f, -0.772645f, -0.772706f, -0.772767f, -0.772828f, -0.772889f, -0.772950f,
+ -0.773010f, -0.773071f, -0.773132f, -0.773193f, -0.773254f, -0.773314f, -0.773375f, -0.773436f,
+ -0.773497f, -0.773558f, -0.773618f, -0.773679f, -0.773740f, -0.773801f, -0.773861f, -0.773922f,
+ -0.773983f, -0.774043f, -0.774104f, -0.774165f, -0.774225f, -0.774286f, -0.774347f, -0.774407f,
+ -0.774468f, -0.774529f, -0.774589f, -0.774650f, -0.774711f, -0.774771f, -0.774832f, -0.774893f,
+ -0.774953f, -0.775014f, -0.775074f, -0.775135f, -0.775195f, -0.775256f, -0.775317f, -0.775377f,
+ -0.775438f, -0.775498f, -0.775559f, -0.775619f, -0.775680f, -0.775740f, -0.775801f, -0.775861f,
+ -0.775922f, -0.775982f, -0.776043f, -0.776103f, -0.776164f, -0.776224f, -0.776284f, -0.776345f,
+ -0.776405f, -0.776466f, -0.776526f, -0.776587f, -0.776647f, -0.776707f, -0.776768f, -0.776828f,
+ -0.776888f, -0.776949f, -0.777009f, -0.777070f, -0.777130f, -0.777190f, -0.777251f, -0.777311f,
+ -0.777371f, -0.777431f, -0.777492f, -0.777552f, -0.777612f, -0.777673f, -0.777733f, -0.777793f,
+ -0.777853f, -0.777914f, -0.777974f, -0.778034f, -0.778094f, -0.778155f, -0.778215f, -0.778275f,
+ -0.778335f, -0.778395f, -0.778456f, -0.778516f, -0.778576f, -0.778636f, -0.778696f, -0.778756f,
+ -0.778817f, -0.778877f, -0.778937f, -0.778997f, -0.779057f, -0.779117f, -0.779177f, -0.779237f,
+ -0.779297f, -0.779357f, -0.779418f, -0.779478f, -0.779538f, -0.779598f, -0.779658f, -0.779718f,
+ -0.779778f, -0.779838f, -0.779898f, -0.779958f, -0.780018f, -0.780078f, -0.780138f, -0.780198f,
+ -0.780258f, -0.780318f, -0.780378f, -0.780438f, -0.780498f, -0.780557f, -0.780617f, -0.780677f,
+ -0.780737f, -0.780797f, -0.780857f, -0.780917f, -0.780977f, -0.781037f, -0.781097f, -0.781156f,
+ -0.781216f, -0.781276f, -0.781336f, -0.781396f, -0.781456f, -0.781515f, -0.781575f, -0.781635f,
+ -0.781695f, -0.781755f, -0.781814f, -0.781874f, -0.781934f, -0.781994f, -0.782053f, -0.782113f,
+ -0.782173f, -0.782233f, -0.782292f, -0.782352f, -0.782412f, -0.782472f, -0.782531f, -0.782591f,
+ -0.782651f, -0.782710f, -0.782770f, -0.782830f, -0.782889f, -0.782949f, -0.783009f, -0.783068f,
+ -0.783128f, -0.783187f, -0.783247f, -0.783307f, -0.783366f, -0.783426f, -0.783485f, -0.783545f,
+ -0.783605f, -0.783664f, -0.783724f, -0.783783f, -0.783843f, -0.783902f, -0.783962f, -0.784021f,
+ -0.784081f, -0.784140f, -0.784200f, -0.784259f, -0.784319f, -0.784378f, -0.784438f, -0.784497f,
+ -0.784557f, -0.784616f, -0.784675f, -0.784735f, -0.784794f, -0.784854f, -0.784913f, -0.784973f,
+ -0.785032f, -0.785091f, -0.785151f, -0.785210f, -0.785269f, -0.785329f, -0.785388f, -0.785447f,
+ -0.785507f, -0.785566f, -0.785625f, -0.785685f, -0.785744f, -0.785803f, -0.785863f, -0.785922f,
+ -0.785981f, -0.786041f, -0.786100f, -0.786159f, -0.786218f, -0.786278f, -0.786337f, -0.786396f,
+ -0.786455f, -0.786514f, -0.786574f, -0.786633f, -0.786692f, -0.786751f, -0.786810f, -0.786870f,
+ -0.786929f, -0.786988f, -0.787047f, -0.787106f, -0.787165f, -0.787224f, -0.787284f, -0.787343f,
+ -0.787402f, -0.787461f, -0.787520f, -0.787579f, -0.787638f, -0.787697f, -0.787756f, -0.787815f,
+ -0.787874f, -0.787933f, -0.787992f, -0.788051f, -0.788110f, -0.788169f, -0.788228f, -0.788287f,
+ -0.788346f, -0.788405f, -0.788464f, -0.788523f, -0.788582f, -0.788641f, -0.788700f, -0.788759f,
+ -0.788818f, -0.788877f, -0.788936f, -0.788995f, -0.789054f, -0.789113f, -0.789172f, -0.789230f,
+ -0.789289f, -0.789348f, -0.789407f, -0.789466f, -0.789525f, -0.789584f, -0.789642f, -0.789701f,
+ -0.789760f, -0.789819f, -0.789878f, -0.789936f, -0.789995f, -0.790054f, -0.790113f, -0.790171f,
+ -0.790230f, -0.790289f, -0.790348f, -0.790406f, -0.790465f, -0.790524f, -0.790583f, -0.790641f,
+ -0.790700f, -0.790759f, -0.790817f, -0.790876f, -0.790935f, -0.790993f, -0.791052f, -0.791111f,
+ -0.791169f, -0.791228f, -0.791287f, -0.791345f, -0.791404f, -0.791462f, -0.791521f, -0.791580f,
+ -0.791638f, -0.791697f, -0.791755f, -0.791814f, -0.791872f, -0.791931f, -0.791990f, -0.792048f,
+ -0.792107f, -0.792165f, -0.792224f, -0.792282f, -0.792341f, -0.792399f, -0.792458f, -0.792516f,
+ -0.792575f, -0.792633f, -0.792691f, -0.792750f, -0.792808f, -0.792867f, -0.792925f, -0.792984f,
+ -0.793042f, -0.793100f, -0.793159f, -0.793217f, -0.793276f, -0.793334f, -0.793392f, -0.793451f,
+ -0.793509f, -0.793567f, -0.793626f, -0.793684f, -0.793742f, -0.793801f, -0.793859f, -0.793917f,
+ -0.793975f, -0.794034f, -0.794092f, -0.794150f, -0.794209f, -0.794267f, -0.794325f, -0.794383f,
+ -0.794442f, -0.794500f, -0.794558f, -0.794616f, -0.794674f, -0.794733f, -0.794791f, -0.794849f,
+ -0.794907f, -0.794965f, -0.795023f, -0.795082f, -0.795140f, -0.795198f, -0.795256f, -0.795314f,
+ -0.795372f, -0.795430f, -0.795488f, -0.795547f, -0.795605f, -0.795663f, -0.795721f, -0.795779f,
+ -0.795837f, -0.795895f, -0.795953f, -0.796011f, -0.796069f, -0.796127f, -0.796185f, -0.796243f,
+ -0.796301f, -0.796359f, -0.796417f, -0.796475f, -0.796533f, -0.796591f, -0.796649f, -0.796707f,
+ -0.796765f, -0.796823f, -0.796881f, -0.796939f, -0.796996f, -0.797054f, -0.797112f, -0.797170f,
+ -0.797228f, -0.797286f, -0.797344f, -0.797402f, -0.797459f, -0.797517f, -0.797575f, -0.797633f,
+ -0.797691f, -0.797749f, -0.797806f, -0.797864f, -0.797922f, -0.797980f, -0.798038f, -0.798095f,
+ -0.798153f, -0.798211f, -0.798269f, -0.798326f, -0.798384f, -0.798442f, -0.798500f, -0.798557f,
+ -0.798615f, -0.798673f, -0.798730f, -0.798788f, -0.798846f, -0.798903f, -0.798961f, -0.799019f,
+ -0.799076f, -0.799134f, -0.799192f, -0.799249f, -0.799307f, -0.799365f, -0.799422f, -0.799480f,
+ -0.799537f, -0.799595f, -0.799652f, -0.799710f, -0.799768f, -0.799825f, -0.799883f, -0.799940f,
+ -0.799998f, -0.800055f, -0.800113f, -0.800170f, -0.800228f, -0.800285f, -0.800343f, -0.800400f,
+ -0.800458f, -0.800515f, -0.800573f, -0.800630f, -0.800687f, -0.800745f, -0.800802f, -0.800860f,
+ -0.800917f, -0.800975f, -0.801032f, -0.801089f, -0.801147f, -0.801204f, -0.801261f, -0.801319f,
+ -0.801376f, -0.801434f, -0.801491f, -0.801548f, -0.801606f, -0.801663f, -0.801720f, -0.801777f,
+ -0.801835f, -0.801892f, -0.801949f, -0.802007f, -0.802064f, -0.802121f, -0.802178f, -0.802236f,
+ -0.802293f, -0.802350f, -0.802407f, -0.802464f, -0.802522f, -0.802579f, -0.802636f, -0.802693f,
+ -0.802750f, -0.802808f, -0.802865f, -0.802922f, -0.802979f, -0.803036f, -0.803093f, -0.803150f,
+ -0.803208f, -0.803265f, -0.803322f, -0.803379f, -0.803436f, -0.803493f, -0.803550f, -0.803607f,
+ -0.803664f, -0.803721f, -0.803778f, -0.803835f, -0.803892f, -0.803949f, -0.804006f, -0.804063f,
+ -0.804120f, -0.804177f, -0.804234f, -0.804291f, -0.804348f, -0.804405f, -0.804462f, -0.804519f,
+ -0.804576f, -0.804633f, -0.804690f, -0.804747f, -0.804804f, -0.804861f, -0.804918f, -0.804974f,
+ -0.805031f, -0.805088f, -0.805145f, -0.805202f, -0.805259f, -0.805316f, -0.805372f, -0.805429f,
+ -0.805486f, -0.805543f, -0.805600f, -0.805656f, -0.805713f, -0.805770f, -0.805827f, -0.805884f,
+ -0.805940f, -0.805997f, -0.806054f, -0.806111f, -0.806167f, -0.806224f, -0.806281f, -0.806338f,
+ -0.806394f, -0.806451f, -0.806508f, -0.806564f, -0.806621f, -0.806678f, -0.806734f, -0.806791f,
+ -0.806848f, -0.806904f, -0.806961f, -0.807017f, -0.807074f, -0.807131f, -0.807187f, -0.807244f,
+ -0.807300f, -0.807357f, -0.807414f, -0.807470f, -0.807527f, -0.807583f, -0.807640f, -0.807696f,
+ -0.807753f, -0.807809f, -0.807866f, -0.807922f, -0.807979f, -0.808035f, -0.808092f, -0.808148f,
+ -0.808205f, -0.808261f, -0.808318f, -0.808374f, -0.808430f, -0.808487f, -0.808543f, -0.808600f,
+ -0.808656f, -0.808713f, -0.808769f, -0.808825f, -0.808882f, -0.808938f, -0.808994f, -0.809051f,
+ -0.809107f, -0.809164f, -0.809220f, -0.809276f, -0.809332f, -0.809389f, -0.809445f, -0.809501f,
+ -0.809558f, -0.809614f, -0.809670f, -0.809726f, -0.809783f, -0.809839f, -0.809895f, -0.809951f,
+ -0.810008f, -0.810064f, -0.810120f, -0.810176f, -0.810232f, -0.810289f, -0.810345f, -0.810401f,
+ -0.810457f, -0.810513f, -0.810570f, -0.810626f, -0.810682f, -0.810738f, -0.810794f, -0.810850f,
+ -0.810906f, -0.810962f, -0.811018f, -0.811075f, -0.811131f, -0.811187f, -0.811243f, -0.811299f,
+ -0.811355f, -0.811411f, -0.811467f, -0.811523f, -0.811579f, -0.811635f, -0.811691f, -0.811747f,
+ -0.811803f, -0.811859f, -0.811915f, -0.811971f, -0.812027f, -0.812083f, -0.812139f, -0.812195f,
+ -0.812251f, -0.812307f, -0.812362f, -0.812418f, -0.812474f, -0.812530f, -0.812586f, -0.812642f,
+ -0.812698f, -0.812754f, -0.812809f, -0.812865f, -0.812921f, -0.812977f, -0.813033f, -0.813089f,
+ -0.813144f, -0.813200f, -0.813256f, -0.813312f, -0.813368f, -0.813423f, -0.813479f, -0.813535f,
+ -0.813591f, -0.813646f, -0.813702f, -0.813758f, -0.813814f, -0.813869f, -0.813925f, -0.813981f,
+ -0.814036f, -0.814092f, -0.814148f, -0.814203f, -0.814259f, -0.814315f, -0.814370f, -0.814426f,
+ -0.814482f, -0.814537f, -0.814593f, -0.814648f, -0.814704f, -0.814760f, -0.814815f, -0.814871f,
+ -0.814926f, -0.814982f, -0.815037f, -0.815093f, -0.815149f, -0.815204f, -0.815260f, -0.815315f,
+ -0.815371f, -0.815426f, -0.815482f, -0.815537f, -0.815593f, -0.815648f, -0.815704f, -0.815759f,
+ -0.815814f, -0.815870f, -0.815925f, -0.815981f, -0.816036f, -0.816092f, -0.816147f, -0.816202f,
+ -0.816258f, -0.816313f, -0.816368f, -0.816424f, -0.816479f, -0.816535f, -0.816590f, -0.816645f,
+ -0.816701f, -0.816756f, -0.816811f, -0.816867f, -0.816922f, -0.816977f, -0.817032f, -0.817088f,
+ -0.817143f, -0.817198f, -0.817253f, -0.817309f, -0.817364f, -0.817419f, -0.817474f, -0.817530f,
+ -0.817585f, -0.817640f, -0.817695f, -0.817750f, -0.817806f, -0.817861f, -0.817916f, -0.817971f,
+ -0.818026f, -0.818081f, -0.818137f, -0.818192f, -0.818247f, -0.818302f, -0.818357f, -0.818412f,
+ -0.818467f, -0.818522f, -0.818577f, -0.818632f, -0.818687f, -0.818742f, -0.818798f, -0.818853f,
+ -0.818908f, -0.818963f, -0.819018f, -0.819073f, -0.819128f, -0.819183f, -0.819238f, -0.819293f,
+ -0.819348f, -0.819402f, -0.819457f, -0.819512f, -0.819567f, -0.819622f, -0.819677f, -0.819732f,
+ -0.819787f, -0.819842f, -0.819897f, -0.819952f, -0.820007f, -0.820061f, -0.820116f, -0.820171f,
+ -0.820226f, -0.820281f, -0.820336f, -0.820390f, -0.820445f, -0.820500f, -0.820555f, -0.820610f,
+ -0.820664f, -0.820719f, -0.820774f, -0.820829f, -0.820884f, -0.820938f, -0.820993f, -0.821048f,
+ -0.821102f, -0.821157f, -0.821212f, -0.821267f, -0.821321f, -0.821376f, -0.821431f, -0.821485f,
+ -0.821540f, -0.821595f, -0.821649f, -0.821704f, -0.821759f, -0.821813f, -0.821868f, -0.821922f,
+ -0.821977f, -0.822032f, -0.822086f, -0.822141f, -0.822195f, -0.822250f, -0.822305f, -0.822359f,
+ -0.822414f, -0.822468f, -0.822523f, -0.822577f, -0.822632f, -0.822686f, -0.822741f, -0.822795f,
+ -0.822850f, -0.822904f, -0.822959f, -0.823013f, -0.823068f, -0.823122f, -0.823177f, -0.823231f,
+ -0.823285f, -0.823340f, -0.823394f, -0.823449f, -0.823503f, -0.823557f, -0.823612f, -0.823666f,
+ -0.823721f, -0.823775f, -0.823829f, -0.823884f, -0.823938f, -0.823992f, -0.824047f, -0.824101f,
+ -0.824155f, -0.824209f, -0.824264f, -0.824318f, -0.824372f, -0.824427f, -0.824481f, -0.824535f,
+ -0.824589f, -0.824644f, -0.824698f, -0.824752f, -0.824806f, -0.824860f, -0.824915f, -0.824969f,
+ -0.825023f, -0.825077f, -0.825131f, -0.825185f, -0.825240f, -0.825294f, -0.825348f, -0.825402f,
+ -0.825456f, -0.825510f, -0.825564f, -0.825618f, -0.825673f, -0.825727f, -0.825781f, -0.825835f,
+ -0.825889f, -0.825943f, -0.825997f, -0.826051f, -0.826105f, -0.826159f, -0.826213f, -0.826267f,
+ -0.826321f, -0.826375f, -0.826429f, -0.826483f, -0.826537f, -0.826591f, -0.826645f, -0.826699f,
+ -0.826753f, -0.826807f, -0.826861f, -0.826915f, -0.826968f, -0.827022f, -0.827076f, -0.827130f,
+ -0.827184f, -0.827238f, -0.827292f, -0.827346f, -0.827399f, -0.827453f, -0.827507f, -0.827561f,
+ -0.827615f, -0.827669f, -0.827722f, -0.827776f, -0.827830f, -0.827884f, -0.827938f, -0.827991f,
+ -0.828045f, -0.828099f, -0.828153f, -0.828206f, -0.828260f, -0.828314f, -0.828367f, -0.828421f,
+ -0.828475f, -0.828529f, -0.828582f, -0.828636f, -0.828690f, -0.828743f, -0.828797f, -0.828851f,
+ -0.828904f, -0.828958f, -0.829011f, -0.829065f, -0.829119f, -0.829172f, -0.829226f, -0.829279f,
+ -0.829333f, -0.829386f, -0.829440f, -0.829494f, -0.829547f, -0.829601f, -0.829654f, -0.829708f,
+ -0.829761f, -0.829815f, -0.829868f, -0.829922f, -0.829975f, -0.830029f, -0.830082f, -0.830136f,
+ -0.830189f, -0.830243f, -0.830296f, -0.830349f, -0.830403f, -0.830456f, -0.830510f, -0.830563f,
+ -0.830616f, -0.830670f, -0.830723f, -0.830777f, -0.830830f, -0.830883f, -0.830937f, -0.830990f,
+ -0.831043f, -0.831097f, -0.831150f, -0.831203f, -0.831257f, -0.831310f, -0.831363f, -0.831416f,
+ -0.831470f, -0.831523f, -0.831576f, -0.831629f, -0.831683f, -0.831736f, -0.831789f, -0.831842f,
+ -0.831895f, -0.831949f, -0.832002f, -0.832055f, -0.832108f, -0.832161f, -0.832215f, -0.832268f,
+ -0.832321f, -0.832374f, -0.832427f, -0.832480f, -0.832533f, -0.832586f, -0.832640f, -0.832693f,
+ -0.832746f, -0.832799f, -0.832852f, -0.832905f, -0.832958f, -0.833011f, -0.833064f, -0.833117f,
+ -0.833170f, -0.833223f, -0.833276f, -0.833329f, -0.833382f, -0.833435f, -0.833488f, -0.833541f,
+ -0.833594f, -0.833647f, -0.833700f, -0.833753f, -0.833806f, -0.833859f, -0.833912f, -0.833965f,
+ -0.834018f, -0.834070f, -0.834123f, -0.834176f, -0.834229f, -0.834282f, -0.834335f, -0.834388f,
+ -0.834440f, -0.834493f, -0.834546f, -0.834599f, -0.834652f, -0.834705f, -0.834757f, -0.834810f,
+ -0.834863f, -0.834916f, -0.834968f, -0.835021f, -0.835074f, -0.835127f, -0.835179f, -0.835232f,
+ -0.835285f, -0.835338f, -0.835390f, -0.835443f, -0.835496f, -0.835548f, -0.835601f, -0.835654f,
+ -0.835706f, -0.835759f, -0.835812f, -0.835864f, -0.835917f, -0.835969f, -0.836022f, -0.836075f,
+ -0.836127f, -0.836180f, -0.836232f, -0.836285f, -0.836338f, -0.836390f, -0.836443f, -0.836495f,
+ -0.836548f, -0.836600f, -0.836653f, -0.836705f, -0.836758f, -0.836810f, -0.836863f, -0.836915f,
+ -0.836968f, -0.837020f, -0.837073f, -0.837125f, -0.837178f, -0.837230f, -0.837282f, -0.837335f,
+ -0.837387f, -0.837440f, -0.837492f, -0.837544f, -0.837597f, -0.837649f, -0.837701f, -0.837754f,
+ -0.837806f, -0.837859f, -0.837911f, -0.837963f, -0.838015f, -0.838068f, -0.838120f, -0.838172f,
+ -0.838225f, -0.838277f, -0.838329f, -0.838382f, -0.838434f, -0.838486f, -0.838538f, -0.838591f,
+ -0.838643f, -0.838695f, -0.838747f, -0.838799f, -0.838852f, -0.838904f, -0.838956f, -0.839008f,
+ -0.839060f, -0.839112f, -0.839165f, -0.839217f, -0.839269f, -0.839321f, -0.839373f, -0.839425f,
+ -0.839477f, -0.839529f, -0.839581f, -0.839634f, -0.839686f, -0.839738f, -0.839790f, -0.839842f,
+ -0.839894f, -0.839946f, -0.839998f, -0.840050f, -0.840102f, -0.840154f, -0.840206f, -0.840258f,
+ -0.840310f, -0.840362f, -0.840414f, -0.840466f, -0.840518f, -0.840570f, -0.840622f, -0.840673f,
+ -0.840725f, -0.840777f, -0.840829f, -0.840881f, -0.840933f, -0.840985f, -0.841037f, -0.841089f,
+ -0.841140f, -0.841192f, -0.841244f, -0.841296f, -0.841348f, -0.841400f, -0.841451f, -0.841503f,
+ -0.841555f, -0.841607f, -0.841659f, -0.841710f, -0.841762f, -0.841814f, -0.841866f, -0.841917f,
+ -0.841969f, -0.842021f, -0.842072f, -0.842124f, -0.842176f, -0.842228f, -0.842279f, -0.842331f,
+ -0.842383f, -0.842434f, -0.842486f, -0.842538f, -0.842589f, -0.842641f, -0.842692f, -0.842744f,
+ -0.842796f, -0.842847f, -0.842899f, -0.842950f, -0.843002f, -0.843054f, -0.843105f, -0.843157f,
+ -0.843208f, -0.843260f, -0.843311f, -0.843363f, -0.843414f, -0.843466f, -0.843517f, -0.843569f,
+ -0.843620f, -0.843672f, -0.843723f, -0.843775f, -0.843826f, -0.843878f, -0.843929f, -0.843980f,
+ -0.844032f, -0.844083f, -0.844135f, -0.844186f, -0.844238f, -0.844289f, -0.844340f, -0.844392f,
+ -0.844443f, -0.844494f, -0.844546f, -0.844597f, -0.844648f, -0.844700f, -0.844751f, -0.844802f,
+ -0.844854f, -0.844905f, -0.844956f, -0.845007f, -0.845059f, -0.845110f, -0.845161f, -0.845212f,
+ -0.845264f, -0.845315f, -0.845366f, -0.845417f, -0.845469f, -0.845520f, -0.845571f, -0.845622f,
+ -0.845673f, -0.845724f, -0.845776f, -0.845827f, -0.845878f, -0.845929f, -0.845980f, -0.846031f,
+ -0.846082f, -0.846133f, -0.846185f, -0.846236f, -0.846287f, -0.846338f, -0.846389f, -0.846440f,
+ -0.846491f, -0.846542f, -0.846593f, -0.846644f, -0.846695f, -0.846746f, -0.846797f, -0.846848f,
+ -0.846899f, -0.846950f, -0.847001f, -0.847052f, -0.847103f, -0.847154f, -0.847205f, -0.847256f,
+ -0.847307f, -0.847358f, -0.847408f, -0.847459f, -0.847510f, -0.847561f, -0.847612f, -0.847663f,
+ -0.847714f, -0.847765f, -0.847815f, -0.847866f, -0.847917f, -0.847968f, -0.848019f, -0.848070f,
+ -0.848120f, -0.848171f, -0.848222f, -0.848273f, -0.848323f, -0.848374f, -0.848425f, -0.848476f,
+ -0.848526f, -0.848577f, -0.848628f, -0.848679f, -0.848729f, -0.848780f, -0.848831f, -0.848881f,
+ -0.848932f, -0.848983f, -0.849033f, -0.849084f, -0.849135f, -0.849185f, -0.849236f, -0.849287f,
+ -0.849337f, -0.849388f, -0.849438f, -0.849489f, -0.849540f, -0.849590f, -0.849641f, -0.849691f,
+ -0.849742f, -0.849792f, -0.849843f, -0.849893f, -0.849944f, -0.849994f, -0.850045f, -0.850095f,
+ -0.850146f, -0.850196f, -0.850247f, -0.850297f, -0.850348f, -0.850398f, -0.850449f, -0.850499f,
+ -0.850549f, -0.850600f, -0.850650f, -0.850701f, -0.850751f, -0.850801f, -0.850852f, -0.850902f,
+ -0.850953f, -0.851003f, -0.851053f, -0.851104f, -0.851154f, -0.851204f, -0.851255f, -0.851305f,
+ -0.851355f, -0.851406f, -0.851456f, -0.851506f, -0.851556f, -0.851607f, -0.851657f, -0.851707f,
+ -0.851757f, -0.851808f, -0.851858f, -0.851908f, -0.851958f, -0.852008f, -0.852059f, -0.852109f,
+ -0.852159f, -0.852209f, -0.852259f, -0.852309f, -0.852360f, -0.852410f, -0.852460f, -0.852510f,
+ -0.852560f, -0.852610f, -0.852660f, -0.852710f, -0.852760f, -0.852810f, -0.852861f, -0.852911f,
+ -0.852961f, -0.853011f, -0.853061f, -0.853111f, -0.853161f, -0.853211f, -0.853261f, -0.853311f,
+ -0.853361f, -0.853411f, -0.853461f, -0.853511f, -0.853561f, -0.853611f, -0.853660f, -0.853710f,
+ -0.853760f, -0.853810f, -0.853860f, -0.853910f, -0.853960f, -0.854010f, -0.854060f, -0.854110f,
+ -0.854159f, -0.854209f, -0.854259f, -0.854309f, -0.854359f, -0.854409f, -0.854458f, -0.854508f,
+ -0.854558f, -0.854608f, -0.854658f, -0.854707f, -0.854757f, -0.854807f, -0.854857f, -0.854906f,
+ -0.854956f, -0.855006f, -0.855056f, -0.855105f, -0.855155f, -0.855205f, -0.855254f, -0.855304f,
+ -0.855354f, -0.855403f, -0.855453f, -0.855503f, -0.855552f, -0.855602f, -0.855651f, -0.855701f,
+ -0.855751f, -0.855800f, -0.855850f, -0.855900f, -0.855949f, -0.855999f, -0.856048f, -0.856098f,
+ -0.856147f, -0.856197f, -0.856246f, -0.856296f, -0.856345f, -0.856395f, -0.856444f, -0.856494f,
+ -0.856543f, -0.856593f, -0.856642f, -0.856692f, -0.856741f, -0.856791f, -0.856840f, -0.856890f,
+ -0.856939f, -0.856988f, -0.857038f, -0.857087f, -0.857137f, -0.857186f, -0.857235f, -0.857285f,
+ -0.857334f, -0.857383f, -0.857433f, -0.857482f, -0.857531f, -0.857581f, -0.857630f, -0.857679f,
+ -0.857729f, -0.857778f, -0.857827f, -0.857876f, -0.857926f, -0.857975f, -0.858024f, -0.858073f,
+ -0.858123f, -0.858172f, -0.858221f, -0.858270f, -0.858320f, -0.858369f, -0.858418f, -0.858467f,
+ -0.858516f, -0.858565f, -0.858615f, -0.858664f, -0.858713f, -0.858762f, -0.858811f, -0.858860f,
+ -0.858909f, -0.858958f, -0.859007f, -0.859057f, -0.859106f, -0.859155f, -0.859204f, -0.859253f,
+ -0.859302f, -0.859351f, -0.859400f, -0.859449f, -0.859498f, -0.859547f, -0.859596f, -0.859645f,
+ -0.859694f, -0.859743f, -0.859792f, -0.859841f, -0.859890f, -0.859939f, -0.859988f, -0.860036f,
+ -0.860085f, -0.860134f, -0.860183f, -0.860232f, -0.860281f, -0.860330f, -0.860379f, -0.860428f,
+ -0.860476f, -0.860525f, -0.860574f, -0.860623f, -0.860672f, -0.860721f, -0.860769f, -0.860818f,
+ -0.860867f, -0.860916f, -0.860964f, -0.861013f, -0.861062f, -0.861111f, -0.861160f, -0.861208f,
+ -0.861257f, -0.861306f, -0.861354f, -0.861403f, -0.861452f, -0.861500f, -0.861549f, -0.861598f,
+ -0.861646f, -0.861695f, -0.861744f, -0.861792f, -0.861841f, -0.861890f, -0.861938f, -0.861987f,
+ -0.862035f, -0.862084f, -0.862133f, -0.862181f, -0.862230f, -0.862278f, -0.862327f, -0.862375f,
+ -0.862424f, -0.862472f, -0.862521f, -0.862570f, -0.862618f, -0.862666f, -0.862715f, -0.862763f,
+ -0.862812f, -0.862860f, -0.862909f, -0.862957f, -0.863006f, -0.863054f, -0.863103f, -0.863151f,
+ -0.863199f, -0.863248f, -0.863296f, -0.863345f, -0.863393f, -0.863441f, -0.863490f, -0.863538f,
+ -0.863586f, -0.863635f, -0.863683f, -0.863731f, -0.863780f, -0.863828f, -0.863876f, -0.863925f,
+ -0.863973f, -0.864021f, -0.864069f, -0.864118f, -0.864166f, -0.864214f, -0.864262f, -0.864311f,
+ -0.864359f, -0.864407f, -0.864455f, -0.864503f, -0.864552f, -0.864600f, -0.864648f, -0.864696f,
+ -0.864744f, -0.864792f, -0.864841f, -0.864889f, -0.864937f, -0.864985f, -0.865033f, -0.865081f,
+ -0.865129f, -0.865177f, -0.865225f, -0.865273f, -0.865321f, -0.865369f, -0.865418f, -0.865466f,
+ -0.865514f, -0.865562f, -0.865610f, -0.865658f, -0.865706f, -0.865754f, -0.865802f, -0.865850f,
+ -0.865898f, -0.865946f, -0.865993f, -0.866041f, -0.866089f, -0.866137f, -0.866185f, -0.866233f,
+ -0.866281f, -0.866329f, -0.866377f, -0.866425f, -0.866472f, -0.866520f, -0.866568f, -0.866616f,
+ -0.866664f, -0.866712f, -0.866759f, -0.866807f, -0.866855f, -0.866903f, -0.866951f, -0.866998f,
+ -0.867046f, -0.867094f, -0.867142f, -0.867190f, -0.867237f, -0.867285f, -0.867333f, -0.867380f,
+ -0.867428f, -0.867476f, -0.867523f, -0.867571f, -0.867619f, -0.867667f, -0.867714f, -0.867762f,
+ -0.867809f, -0.867857f, -0.867905f, -0.867952f, -0.868000f, -0.868048f, -0.868095f, -0.868143f,
+ -0.868190f, -0.868238f, -0.868285f, -0.868333f, -0.868381f, -0.868428f, -0.868476f, -0.868523f,
+ -0.868571f, -0.868618f, -0.868666f, -0.868713f, -0.868761f, -0.868808f, -0.868856f, -0.868903f,
+ -0.868951f, -0.868998f, -0.869045f, -0.869093f, -0.869140f, -0.869188f, -0.869235f, -0.869282f,
+ -0.869330f, -0.869377f, -0.869425f, -0.869472f, -0.869519f, -0.869567f, -0.869614f, -0.869661f,
+ -0.869709f, -0.869756f, -0.869803f, -0.869851f, -0.869898f, -0.869945f, -0.869992f, -0.870040f,
+ -0.870087f, -0.870134f, -0.870182f, -0.870229f, -0.870276f, -0.870323f, -0.870370f, -0.870418f,
+ -0.870465f, -0.870512f, -0.870559f, -0.870606f, -0.870654f, -0.870701f, -0.870748f, -0.870795f,
+ -0.870842f, -0.870889f, -0.870936f, -0.870983f, -0.871031f, -0.871078f, -0.871125f, -0.871172f,
+ -0.871219f, -0.871266f, -0.871313f, -0.871360f, -0.871407f, -0.871454f, -0.871501f, -0.871548f,
+ -0.871595f, -0.871642f, -0.871689f, -0.871736f, -0.871783f, -0.871830f, -0.871877f, -0.871924f,
+ -0.871971f, -0.872018f, -0.872065f, -0.872112f, -0.872159f, -0.872205f, -0.872252f, -0.872299f,
+ -0.872346f, -0.872393f, -0.872440f, -0.872487f, -0.872534f, -0.872580f, -0.872627f, -0.872674f,
+ -0.872721f, -0.872768f, -0.872814f, -0.872861f, -0.872908f, -0.872955f, -0.873001f, -0.873048f,
+ -0.873095f, -0.873142f, -0.873188f, -0.873235f, -0.873282f, -0.873329f, -0.873375f, -0.873422f,
+ -0.873469f, -0.873515f, -0.873562f, -0.873609f, -0.873655f, -0.873702f, -0.873749f, -0.873795f,
+ -0.873842f, -0.873888f, -0.873935f, -0.873982f, -0.874028f, -0.874075f, -0.874121f, -0.874168f,
+ -0.874215f, -0.874261f, -0.874308f, -0.874354f, -0.874401f, -0.874447f, -0.874494f, -0.874540f,
+ -0.874587f, -0.874633f, -0.874680f, -0.874726f, -0.874773f, -0.874819f, -0.874865f, -0.874912f,
+ -0.874958f, -0.875005f, -0.875051f, -0.875098f, -0.875144f, -0.875190f, -0.875237f, -0.875283f,
+ -0.875329f, -0.875376f, -0.875422f, -0.875468f, -0.875515f, -0.875561f, -0.875607f, -0.875654f,
+ -0.875700f, -0.875746f, -0.875793f, -0.875839f, -0.875885f, -0.875931f, -0.875978f, -0.876024f,
+ -0.876070f, -0.876116f, -0.876163f, -0.876209f, -0.876255f, -0.876301f, -0.876347f, -0.876393f,
+ -0.876440f, -0.876486f, -0.876532f, -0.876578f, -0.876624f, -0.876670f, -0.876716f, -0.876763f,
+ -0.876809f, -0.876855f, -0.876901f, -0.876947f, -0.876993f, -0.877039f, -0.877085f, -0.877131f,
+ -0.877177f, -0.877223f, -0.877269f, -0.877315f, -0.877361f, -0.877407f, -0.877453f, -0.877499f,
+ -0.877545f, -0.877591f, -0.877637f, -0.877683f, -0.877729f, -0.877775f, -0.877821f, -0.877867f,
+ -0.877913f, -0.877959f, -0.878005f, -0.878051f, -0.878096f, -0.878142f, -0.878188f, -0.878234f,
+ -0.878280f, -0.878326f, -0.878371f, -0.878417f, -0.878463f, -0.878509f, -0.878555f, -0.878600f,
+ -0.878646f, -0.878692f, -0.878738f, -0.878784f, -0.878829f, -0.878875f, -0.878921f, -0.878967f,
+ -0.879012f, -0.879058f, -0.879104f, -0.879149f, -0.879195f, -0.879241f, -0.879286f, -0.879332f,
+ -0.879378f, -0.879423f, -0.879469f, -0.879515f, -0.879560f, -0.879606f, -0.879651f, -0.879697f,
+ -0.879743f, -0.879788f, -0.879834f, -0.879879f, -0.879925f, -0.879970f, -0.880016f, -0.880061f,
+ -0.880107f, -0.880153f, -0.880198f, -0.880244f, -0.880289f, -0.880334f, -0.880380f, -0.880425f,
+ -0.880471f, -0.880516f, -0.880562f, -0.880607f, -0.880653f, -0.880698f, -0.880743f, -0.880789f,
+ -0.880834f, -0.880880f, -0.880925f, -0.880970f, -0.881016f, -0.881061f, -0.881106f, -0.881152f,
+ -0.881197f, -0.881242f, -0.881288f, -0.881333f, -0.881378f, -0.881424f, -0.881469f, -0.881514f,
+ -0.881559f, -0.881605f, -0.881650f, -0.881695f, -0.881740f, -0.881786f, -0.881831f, -0.881876f,
+ -0.881921f, -0.881966f, -0.882012f, -0.882057f, -0.882102f, -0.882147f, -0.882192f, -0.882237f,
+ -0.882283f, -0.882328f, -0.882373f, -0.882418f, -0.882463f, -0.882508f, -0.882553f, -0.882598f,
+ -0.882643f, -0.882688f, -0.882733f, -0.882779f, -0.882824f, -0.882869f, -0.882914f, -0.882959f,
+ -0.883004f, -0.883049f, -0.883094f, -0.883139f, -0.883184f, -0.883228f, -0.883273f, -0.883318f,
+ -0.883363f, -0.883408f, -0.883453f, -0.883498f, -0.883543f, -0.883588f, -0.883633f, -0.883678f,
+ -0.883723f, -0.883767f, -0.883812f, -0.883857f, -0.883902f, -0.883947f, -0.883992f, -0.884036f,
+ -0.884081f, -0.884126f, -0.884171f, -0.884216f, -0.884260f, -0.884305f, -0.884350f, -0.884395f,
+ -0.884439f, -0.884484f, -0.884529f, -0.884574f, -0.884618f, -0.884663f, -0.884708f, -0.884752f,
+ -0.884797f, -0.884842f, -0.884886f, -0.884931f, -0.884976f, -0.885020f, -0.885065f, -0.885110f,
+ -0.885154f, -0.885199f, -0.885243f, -0.885288f, -0.885333f, -0.885377f, -0.885422f, -0.885466f,
+ -0.885511f, -0.885555f, -0.885600f, -0.885644f, -0.885689f, -0.885733f, -0.885778f, -0.885822f,
+ -0.885867f, -0.885911f, -0.885956f, -0.886000f, -0.886045f, -0.886089f, -0.886134f, -0.886178f,
+ -0.886223f, -0.886267f, -0.886311f, -0.886356f, -0.886400f, -0.886445f, -0.886489f, -0.886533f,
+ -0.886578f, -0.886622f, -0.886666f, -0.886711f, -0.886755f, -0.886799f, -0.886844f, -0.886888f,
+ -0.886932f, -0.886976f, -0.887021f, -0.887065f, -0.887109f, -0.887153f, -0.887198f, -0.887242f,
+ -0.887286f, -0.887330f, -0.887375f, -0.887419f, -0.887463f, -0.887507f, -0.887551f, -0.887595f,
+ -0.887640f, -0.887684f, -0.887728f, -0.887772f, -0.887816f, -0.887860f, -0.887904f, -0.887949f,
+ -0.887993f, -0.888037f, -0.888081f, -0.888125f, -0.888169f, -0.888213f, -0.888257f, -0.888301f,
+ -0.888345f, -0.888389f, -0.888433f, -0.888477f, -0.888521f, -0.888565f, -0.888609f, -0.888653f,
+ -0.888697f, -0.888741f, -0.888785f, -0.888829f, -0.888873f, -0.888917f, -0.888961f, -0.889004f,
+ -0.889048f, -0.889092f, -0.889136f, -0.889180f, -0.889224f, -0.889268f, -0.889312f, -0.889355f,
+ -0.889399f, -0.889443f, -0.889487f, -0.889531f, -0.889574f, -0.889618f, -0.889662f, -0.889706f,
+ -0.889750f, -0.889793f, -0.889837f, -0.889881f, -0.889925f, -0.889968f, -0.890012f, -0.890056f,
+ -0.890099f, -0.890143f, -0.890187f, -0.890230f, -0.890274f, -0.890318f, -0.890361f, -0.890405f,
+ -0.890449f, -0.890492f, -0.890536f, -0.890580f, -0.890623f, -0.890667f, -0.890710f, -0.890754f,
+ -0.890797f, -0.890841f, -0.890885f, -0.890928f, -0.890972f, -0.891015f, -0.891059f, -0.891102f,
+ -0.891146f, -0.891189f, -0.891233f, -0.891276f, -0.891320f, -0.891363f, -0.891407f, -0.891450f,
+ -0.891493f, -0.891537f, -0.891580f, -0.891624f, -0.891667f, -0.891711f, -0.891754f, -0.891797f,
+ -0.891841f, -0.891884f, -0.891927f, -0.891971f, -0.892014f, -0.892057f, -0.892101f, -0.892144f,
+ -0.892187f, -0.892231f, -0.892274f, -0.892317f, -0.892361f, -0.892404f, -0.892447f, -0.892490f,
+ -0.892534f, -0.892577f, -0.892620f, -0.892663f, -0.892706f, -0.892750f, -0.892793f, -0.892836f,
+ -0.892879f, -0.892922f, -0.892965f, -0.893009f, -0.893052f, -0.893095f, -0.893138f, -0.893181f,
+ -0.893224f, -0.893267f, -0.893310f, -0.893354f, -0.893397f, -0.893440f, -0.893483f, -0.893526f,
+ -0.893569f, -0.893612f, -0.893655f, -0.893698f, -0.893741f, -0.893784f, -0.893827f, -0.893870f,
+ -0.893913f, -0.893956f, -0.893999f, -0.894042f, -0.894085f, -0.894128f, -0.894171f, -0.894214f,
+ -0.894256f, -0.894299f, -0.894342f, -0.894385f, -0.894428f, -0.894471f, -0.894514f, -0.894557f,
+ -0.894599f, -0.894642f, -0.894685f, -0.894728f, -0.894771f, -0.894814f, -0.894856f, -0.894899f,
+ -0.894942f, -0.894985f, -0.895028f, -0.895070f, -0.895113f, -0.895156f, -0.895198f, -0.895241f,
+ -0.895284f, -0.895327f, -0.895369f, -0.895412f, -0.895455f, -0.895497f, -0.895540f, -0.895583f,
+ -0.895625f, -0.895668f, -0.895711f, -0.895753f, -0.895796f, -0.895838f, -0.895881f, -0.895924f,
+ -0.895966f, -0.896009f, -0.896051f, -0.896094f, -0.896137f, -0.896179f, -0.896222f, -0.896264f,
+ -0.896307f, -0.896349f, -0.896392f, -0.896434f, -0.896477f, -0.896519f, -0.896562f, -0.896604f,
+ -0.896646f, -0.896689f, -0.896731f, -0.896774f, -0.896816f, -0.896859f, -0.896901f, -0.896943f,
+ -0.896986f, -0.897028f, -0.897071f, -0.897113f, -0.897155f, -0.897198f, -0.897240f, -0.897282f,
+ -0.897325f, -0.897367f, -0.897409f, -0.897452f, -0.897494f, -0.897536f, -0.897578f, -0.897621f,
+ -0.897663f, -0.897705f, -0.897747f, -0.897790f, -0.897832f, -0.897874f, -0.897916f, -0.897958f,
+ -0.898001f, -0.898043f, -0.898085f, -0.898127f, -0.898169f, -0.898211f, -0.898254f, -0.898296f,
+ -0.898338f, -0.898380f, -0.898422f, -0.898464f, -0.898506f, -0.898548f, -0.898590f, -0.898632f,
+ -0.898674f, -0.898717f, -0.898759f, -0.898801f, -0.898843f, -0.898885f, -0.898927f, -0.898969f,
+ -0.899011f, -0.899053f, -0.899095f, -0.899137f, -0.899179f, -0.899220f, -0.899262f, -0.899304f,
+ -0.899346f, -0.899388f, -0.899430f, -0.899472f, -0.899514f, -0.899556f, -0.899598f, -0.899639f,
+ -0.899681f, -0.899723f, -0.899765f, -0.899807f, -0.899849f, -0.899890f, -0.899932f, -0.899974f,
+ -0.900016f, -0.900058f, -0.900099f, -0.900141f, -0.900183f, -0.900225f, -0.900266f, -0.900308f,
+ -0.900350f, -0.900392f, -0.900433f, -0.900475f, -0.900517f, -0.900558f, -0.900600f, -0.900642f,
+ -0.900683f, -0.900725f, -0.900767f, -0.900808f, -0.900850f, -0.900892f, -0.900933f, -0.900975f,
+ -0.901016f, -0.901058f, -0.901100f, -0.901141f, -0.901183f, -0.901224f, -0.901266f, -0.901307f,
+ -0.901349f, -0.901390f, -0.901432f, -0.901473f, -0.901515f, -0.901556f, -0.901598f, -0.901639f,
+ -0.901681f, -0.901722f, -0.901764f, -0.901805f, -0.901847f, -0.901888f, -0.901929f, -0.901971f,
+ -0.902012f, -0.902054f, -0.902095f, -0.902136f, -0.902178f, -0.902219f, -0.902260f, -0.902302f,
+ -0.902343f, -0.902384f, -0.902426f, -0.902467f, -0.902508f, -0.902550f, -0.902591f, -0.902632f,
+ -0.902673f, -0.902715f, -0.902756f, -0.902797f, -0.902838f, -0.902879f, -0.902921f, -0.902962f,
+ -0.903003f, -0.903044f, -0.903085f, -0.903127f, -0.903168f, -0.903209f, -0.903250f, -0.903291f,
+ -0.903332f, -0.903373f, -0.903415f, -0.903456f, -0.903497f, -0.903538f, -0.903579f, -0.903620f,
+ -0.903661f, -0.903702f, -0.903743f, -0.903784f, -0.903825f, -0.903866f, -0.903907f, -0.903948f,
+ -0.903989f, -0.904030f, -0.904071f, -0.904112f, -0.904153f, -0.904194f, -0.904235f, -0.904276f,
+ -0.904317f, -0.904358f, -0.904399f, -0.904440f, -0.904481f, -0.904521f, -0.904562f, -0.904603f,
+ -0.904644f, -0.904685f, -0.904726f, -0.904767f, -0.904807f, -0.904848f, -0.904889f, -0.904930f,
+ -0.904971f, -0.905011f, -0.905052f, -0.905093f, -0.905134f, -0.905175f, -0.905215f, -0.905256f,
+ -0.905297f, -0.905337f, -0.905378f, -0.905419f, -0.905460f, -0.905500f, -0.905541f, -0.905582f,
+ -0.905622f, -0.905663f, -0.905704f, -0.905744f, -0.905785f, -0.905825f, -0.905866f, -0.905907f,
+ -0.905947f, -0.905988f, -0.906028f, -0.906069f, -0.906110f, -0.906150f, -0.906191f, -0.906231f,
+ -0.906272f, -0.906312f, -0.906353f, -0.906393f, -0.906434f, -0.906474f, -0.906515f, -0.906555f,
+ -0.906596f, -0.906636f, -0.906677f, -0.906717f, -0.906757f, -0.906798f, -0.906838f, -0.906879f,
+ -0.906919f, -0.906959f, -0.907000f, -0.907040f, -0.907081f, -0.907121f, -0.907161f, -0.907202f,
+ -0.907242f, -0.907282f, -0.907323f, -0.907363f, -0.907403f, -0.907444f, -0.907484f, -0.907524f,
+ -0.907564f, -0.907605f, -0.907645f, -0.907685f, -0.907725f, -0.907766f, -0.907806f, -0.907846f,
+ -0.907886f, -0.907926f, -0.907966f, -0.908007f, -0.908047f, -0.908087f, -0.908127f, -0.908167f,
+ -0.908207f, -0.908248f, -0.908288f, -0.908328f, -0.908368f, -0.908408f, -0.908448f, -0.908488f,
+ -0.908528f, -0.908568f, -0.908608f, -0.908648f, -0.908688f, -0.908728f, -0.908768f, -0.908808f,
+ -0.908848f, -0.908888f, -0.908928f, -0.908968f, -0.909008f, -0.909048f, -0.909088f, -0.909128f,
+ -0.909168f, -0.909208f, -0.909248f, -0.909288f, -0.909328f, -0.909368f, -0.909407f, -0.909447f,
+ -0.909487f, -0.909527f, -0.909567f, -0.909607f, -0.909646f, -0.909686f, -0.909726f, -0.909766f,
+ -0.909806f, -0.909845f, -0.909885f, -0.909925f, -0.909965f, -0.910005f, -0.910044f, -0.910084f,
+ -0.910124f, -0.910163f, -0.910203f, -0.910243f, -0.910283f, -0.910322f, -0.910362f, -0.910402f,
+ -0.910441f, -0.910481f, -0.910521f, -0.910560f, -0.910600f, -0.910639f, -0.910679f, -0.910719f,
+ -0.910758f, -0.910798f, -0.910837f, -0.910877f, -0.910917f, -0.910956f, -0.910996f, -0.911035f,
+ -0.911075f, -0.911114f, -0.911154f, -0.911193f, -0.911233f, -0.911272f, -0.911312f, -0.911351f,
+ -0.911391f, -0.911430f, -0.911470f, -0.911509f, -0.911548f, -0.911588f, -0.911627f, -0.911667f,
+ -0.911706f, -0.911745f, -0.911785f, -0.911824f, -0.911864f, -0.911903f, -0.911942f, -0.911982f,
+ -0.912021f, -0.912060f, -0.912099f, -0.912139f, -0.912178f, -0.912217f, -0.912257f, -0.912296f,
+ -0.912335f, -0.912374f, -0.912414f, -0.912453f, -0.912492f, -0.912531f, -0.912571f, -0.912610f,
+ -0.912649f, -0.912688f, -0.912727f, -0.912766f, -0.912806f, -0.912845f, -0.912884f, -0.912923f,
+ -0.912962f, -0.913001f, -0.913040f, -0.913080f, -0.913119f, -0.913158f, -0.913197f, -0.913236f,
+ -0.913275f, -0.913314f, -0.913353f, -0.913392f, -0.913431f, -0.913470f, -0.913509f, -0.913548f,
+ -0.913587f, -0.913626f, -0.913665f, -0.913704f, -0.913743f, -0.913782f, -0.913821f, -0.913860f,
+ -0.913899f, -0.913938f, -0.913976f, -0.914015f, -0.914054f, -0.914093f, -0.914132f, -0.914171f,
+ -0.914210f, -0.914249f, -0.914287f, -0.914326f, -0.914365f, -0.914404f, -0.914443f, -0.914482f,
+ -0.914520f, -0.914559f, -0.914598f, -0.914637f, -0.914675f, -0.914714f, -0.914753f, -0.914792f,
+ -0.914830f, -0.914869f, -0.914908f, -0.914946f, -0.914985f, -0.915024f, -0.915062f, -0.915101f,
+ -0.915140f, -0.915178f, -0.915217f, -0.915256f, -0.915294f, -0.915333f, -0.915372f, -0.915410f,
+ -0.915449f, -0.915487f, -0.915526f, -0.915564f, -0.915603f, -0.915642f, -0.915680f, -0.915719f,
+ -0.915757f, -0.915796f, -0.915834f, -0.915873f, -0.915911f, -0.915950f, -0.915988f, -0.916027f,
+ -0.916065f, -0.916103f, -0.916142f, -0.916180f, -0.916219f, -0.916257f, -0.916296f, -0.916334f,
+ -0.916372f, -0.916411f, -0.916449f, -0.916487f, -0.916526f, -0.916564f, -0.916602f, -0.916641f,
+ -0.916679f, -0.916717f, -0.916756f, -0.916794f, -0.916832f, -0.916871f, -0.916909f, -0.916947f,
+ -0.916985f, -0.917024f, -0.917062f, -0.917100f, -0.917138f, -0.917176f, -0.917215f, -0.917253f,
+ -0.917291f, -0.917329f, -0.917367f, -0.917405f, -0.917444f, -0.917482f, -0.917520f, -0.917558f,
+ -0.917596f, -0.917634f, -0.917672f, -0.917710f, -0.917749f, -0.917787f, -0.917825f, -0.917863f,
+ -0.917901f, -0.917939f, -0.917977f, -0.918015f, -0.918053f, -0.918091f, -0.918129f, -0.918167f,
+ -0.918205f, -0.918243f, -0.918281f, -0.918319f, -0.918357f, -0.918395f, -0.918433f, -0.918471f,
+ -0.918508f, -0.918546f, -0.918584f, -0.918622f, -0.918660f, -0.918698f, -0.918736f, -0.918774f,
+ -0.918811f, -0.918849f, -0.918887f, -0.918925f, -0.918963f, -0.919001f, -0.919038f, -0.919076f,
+ -0.919114f, -0.919152f, -0.919189f, -0.919227f, -0.919265f, -0.919303f, -0.919340f, -0.919378f,
+ -0.919416f, -0.919453f, -0.919491f, -0.919529f, -0.919567f, -0.919604f, -0.919642f, -0.919680f,
+ -0.919717f, -0.919755f, -0.919792f, -0.919830f, -0.919868f, -0.919905f, -0.919943f, -0.919980f,
+ -0.920018f, -0.920056f, -0.920093f, -0.920131f, -0.920168f, -0.920206f, -0.920243f, -0.920281f,
+ -0.920318f, -0.920356f, -0.920393f, -0.920431f, -0.920468f, -0.920506f, -0.920543f, -0.920581f,
+ -0.920618f, -0.920655f, -0.920693f, -0.920730f, -0.920768f, -0.920805f, -0.920842f, -0.920880f,
+ -0.920917f, -0.920955f, -0.920992f, -0.921029f, -0.921067f, -0.921104f, -0.921141f, -0.921179f,
+ -0.921216f, -0.921253f, -0.921291f, -0.921328f, -0.921365f, -0.921402f, -0.921440f, -0.921477f,
+ -0.921514f, -0.921551f, -0.921588f, -0.921626f, -0.921663f, -0.921700f, -0.921737f, -0.921774f,
+ -0.921812f, -0.921849f, -0.921886f, -0.921923f, -0.921960f, -0.921997f, -0.922034f, -0.922072f,
+ -0.922109f, -0.922146f, -0.922183f, -0.922220f, -0.922257f, -0.922294f, -0.922331f, -0.922368f,
+ -0.922405f, -0.922442f, -0.922479f, -0.922516f, -0.922553f, -0.922590f, -0.922627f, -0.922664f,
+ -0.922701f, -0.922738f, -0.922775f, -0.922812f, -0.922849f, -0.922886f, -0.922923f, -0.922960f,
+ -0.922997f, -0.923033f, -0.923070f, -0.923107f, -0.923144f, -0.923181f, -0.923218f, -0.923255f,
+ -0.923291f, -0.923328f, -0.923365f, -0.923402f, -0.923439f, -0.923475f, -0.923512f, -0.923549f,
+ -0.923586f, -0.923622f, -0.923659f, -0.923696f, -0.923733f, -0.923769f, -0.923806f, -0.923843f,
+ -0.923880f, -0.923916f, -0.923953f, -0.923990f, -0.924026f, -0.924063f, -0.924100f, -0.924136f,
+ -0.924173f, -0.924209f, -0.924246f, -0.924283f, -0.924319f, -0.924356f, -0.924392f, -0.924429f,
+ -0.924465f, -0.924502f, -0.924539f, -0.924575f, -0.924612f, -0.924648f, -0.924685f, -0.924721f,
+ -0.924758f, -0.924794f, -0.924831f, -0.924867f, -0.924904f, -0.924940f, -0.924976f, -0.925013f,
+ -0.925049f, -0.925086f, -0.925122f, -0.925158f, -0.925195f, -0.925231f, -0.925268f, -0.925304f,
+ -0.925340f, -0.925377f, -0.925413f, -0.925449f, -0.925486f, -0.925522f, -0.925558f, -0.925595f,
+ -0.925631f, -0.925667f, -0.925703f, -0.925740f, -0.925776f, -0.925812f, -0.925848f, -0.925885f,
+ -0.925921f, -0.925957f, -0.925993f, -0.926029f, -0.926066f, -0.926102f, -0.926138f, -0.926174f,
+ -0.926210f, -0.926246f, -0.926283f, -0.926319f, -0.926355f, -0.926391f, -0.926427f, -0.926463f,
+ -0.926499f, -0.926535f, -0.926571f, -0.926607f, -0.926643f, -0.926679f, -0.926715f, -0.926751f,
+ -0.926787f, -0.926823f, -0.926859f, -0.926895f, -0.926931f, -0.926967f, -0.927003f, -0.927039f,
+ -0.927075f, -0.927111f, -0.927147f, -0.927183f, -0.927219f, -0.927255f, -0.927291f, -0.927327f,
+ -0.927363f, -0.927398f, -0.927434f, -0.927470f, -0.927506f, -0.927542f, -0.927578f, -0.927613f,
+ -0.927649f, -0.927685f, -0.927721f, -0.927757f, -0.927792f, -0.927828f, -0.927864f, -0.927900f,
+ -0.927935f, -0.927971f, -0.928007f, -0.928043f, -0.928078f, -0.928114f, -0.928150f, -0.928185f,
+ -0.928221f, -0.928257f, -0.928292f, -0.928328f, -0.928364f, -0.928399f, -0.928435f, -0.928470f,
+ -0.928506f, -0.928542f, -0.928577f, -0.928613f, -0.928648f, -0.928684f, -0.928720f, -0.928755f,
+ -0.928791f, -0.928826f, -0.928862f, -0.928897f, -0.928933f, -0.928968f, -0.929004f, -0.929039f,
+ -0.929075f, -0.929110f, -0.929146f, -0.929181f, -0.929216f, -0.929252f, -0.929287f, -0.929323f,
+ -0.929358f, -0.929393f, -0.929429f, -0.929464f, -0.929500f, -0.929535f, -0.929570f, -0.929606f,
+ -0.929641f, -0.929676f, -0.929712f, -0.929747f, -0.929782f, -0.929817f, -0.929853f, -0.929888f,
+ -0.929923f, -0.929958f, -0.929994f, -0.930029f, -0.930064f, -0.930099f, -0.930135f, -0.930170f,
+ -0.930205f, -0.930240f, -0.930275f, -0.930311f, -0.930346f, -0.930381f, -0.930416f, -0.930451f,
+ -0.930486f, -0.930521f, -0.930556f, -0.930592f, -0.930627f, -0.930662f, -0.930697f, -0.930732f,
+ -0.930767f, -0.930802f, -0.930837f, -0.930872f, -0.930907f, -0.930942f, -0.930977f, -0.931012f,
+ -0.931047f, -0.931082f, -0.931117f, -0.931152f, -0.931187f, -0.931222f, -0.931257f, -0.931292f,
+ -0.931327f, -0.931362f, -0.931397f, -0.931431f, -0.931466f, -0.931501f, -0.931536f, -0.931571f,
+ -0.931606f, -0.931641f, -0.931675f, -0.931710f, -0.931745f, -0.931780f, -0.931815f, -0.931849f,
+ -0.931884f, -0.931919f, -0.931954f, -0.931989f, -0.932023f, -0.932058f, -0.932093f, -0.932128f,
+ -0.932162f, -0.932197f, -0.932232f, -0.932266f, -0.932301f, -0.932336f, -0.932370f, -0.932405f,
+ -0.932440f, -0.932474f, -0.932509f, -0.932544f, -0.932578f, -0.932613f, -0.932647f, -0.932682f,
+ -0.932716f, -0.932751f, -0.932786f, -0.932820f, -0.932855f, -0.932889f, -0.932924f, -0.932958f,
+ -0.932993f, -0.933027f, -0.933062f, -0.933096f, -0.933131f, -0.933165f, -0.933200f, -0.933234f,
+ -0.933269f, -0.933303f, -0.933337f, -0.933372f, -0.933406f, -0.933441f, -0.933475f, -0.933509f,
+ -0.933544f, -0.933578f, -0.933612f, -0.933647f, -0.933681f, -0.933716f, -0.933750f, -0.933784f,
+ -0.933818f, -0.933853f, -0.933887f, -0.933921f, -0.933956f, -0.933990f, -0.934024f, -0.934058f,
+ -0.934093f, -0.934127f, -0.934161f, -0.934195f, -0.934229f, -0.934264f, -0.934298f, -0.934332f,
+ -0.934366f, -0.934400f, -0.934434f, -0.934469f, -0.934503f, -0.934537f, -0.934571f, -0.934605f,
+ -0.934639f, -0.934673f, -0.934707f, -0.934741f, -0.934775f, -0.934810f, -0.934844f, -0.934878f,
+ -0.934912f, -0.934946f, -0.934980f, -0.935014f, -0.935048f, -0.935082f, -0.935116f, -0.935150f,
+ -0.935184f, -0.935217f, -0.935251f, -0.935285f, -0.935319f, -0.935353f, -0.935387f, -0.935421f,
+ -0.935455f, -0.935489f, -0.935523f, -0.935556f, -0.935590f, -0.935624f, -0.935658f, -0.935692f,
+ -0.935726f, -0.935759f, -0.935793f, -0.935827f, -0.935861f, -0.935895f, -0.935928f, -0.935962f,
+ -0.935996f, -0.936030f, -0.936063f, -0.936097f, -0.936131f, -0.936165f, -0.936198f, -0.936232f,
+ -0.936266f, -0.936299f, -0.936333f, -0.936367f, -0.936400f, -0.936434f, -0.936468f, -0.936501f,
+ -0.936535f, -0.936568f, -0.936602f, -0.936636f, -0.936669f, -0.936703f, -0.936736f, -0.936770f,
+ -0.936803f, -0.936837f, -0.936871f, -0.936904f, -0.936938f, -0.936971f, -0.937005f, -0.937038f,
+ -0.937072f, -0.937105f, -0.937138f, -0.937172f, -0.937205f, -0.937239f, -0.937272f, -0.937306f,
+ -0.937339f, -0.937372f, -0.937406f, -0.937439f, -0.937473f, -0.937506f, -0.937539f, -0.937573f,
+ -0.937606f, -0.937639f, -0.937673f, -0.937706f, -0.937739f, -0.937773f, -0.937806f, -0.937839f,
+ -0.937872f, -0.937906f, -0.937939f, -0.937972f, -0.938005f, -0.938039f, -0.938072f, -0.938105f,
+ -0.938138f, -0.938171f, -0.938205f, -0.938238f, -0.938271f, -0.938304f, -0.938337f, -0.938370f,
+ -0.938404f, -0.938437f, -0.938470f, -0.938503f, -0.938536f, -0.938569f, -0.938602f, -0.938635f,
+ -0.938668f, -0.938701f, -0.938734f, -0.938767f, -0.938800f, -0.938833f, -0.938866f, -0.938900f,
+ -0.938932f, -0.938965f, -0.938998f, -0.939031f, -0.939064f, -0.939097f, -0.939130f, -0.939163f,
+ -0.939196f, -0.939229f, -0.939262f, -0.939295f, -0.939328f, -0.939361f, -0.939394f, -0.939426f,
+ -0.939459f, -0.939492f, -0.939525f, -0.939558f, -0.939591f, -0.939623f, -0.939656f, -0.939689f,
+ -0.939722f, -0.939755f, -0.939787f, -0.939820f, -0.939853f, -0.939886f, -0.939918f, -0.939951f,
+ -0.939984f, -0.940016f, -0.940049f, -0.940082f, -0.940115f, -0.940147f, -0.940180f, -0.940213f,
+ -0.940245f, -0.940278f, -0.940310f, -0.940343f, -0.940376f, -0.940408f, -0.940441f, -0.940473f,
+ -0.940506f, -0.940539f, -0.940571f, -0.940604f, -0.940636f, -0.940669f, -0.940701f, -0.940734f,
+ -0.940766f, -0.940799f, -0.940831f, -0.940864f, -0.940896f, -0.940929f, -0.940961f, -0.940994f,
+ -0.941026f, -0.941059f, -0.941091f, -0.941123f, -0.941156f, -0.941188f, -0.941221f, -0.941253f,
+ -0.941285f, -0.941318f, -0.941350f, -0.941382f, -0.941415f, -0.941447f, -0.941479f, -0.941512f,
+ -0.941544f, -0.941576f, -0.941609f, -0.941641f, -0.941673f, -0.941705f, -0.941738f, -0.941770f,
+ -0.941802f, -0.941834f, -0.941867f, -0.941899f, -0.941931f, -0.941963f, -0.941995f, -0.942028f,
+ -0.942060f, -0.942092f, -0.942124f, -0.942156f, -0.942188f, -0.942220f, -0.942253f, -0.942285f,
+ -0.942317f, -0.942349f, -0.942381f, -0.942413f, -0.942445f, -0.942477f, -0.942509f, -0.942541f,
+ -0.942573f, -0.942605f, -0.942637f, -0.942669f, -0.942701f, -0.942733f, -0.942765f, -0.942797f,
+ -0.942829f, -0.942861f, -0.942893f, -0.942925f, -0.942957f, -0.942989f, -0.943021f, -0.943053f,
+ -0.943084f, -0.943116f, -0.943148f, -0.943180f, -0.943212f, -0.943244f, -0.943276f, -0.943307f,
+ -0.943339f, -0.943371f, -0.943403f, -0.943435f, -0.943466f, -0.943498f, -0.943530f, -0.943562f,
+ -0.943593f, -0.943625f, -0.943657f, -0.943689f, -0.943720f, -0.943752f, -0.943784f, -0.943815f,
+ -0.943847f, -0.943879f, -0.943910f, -0.943942f, -0.943974f, -0.944005f, -0.944037f, -0.944069f,
+ -0.944100f, -0.944132f, -0.944163f, -0.944195f, -0.944227f, -0.944258f, -0.944290f, -0.944321f,
+ -0.944353f, -0.944384f, -0.944416f, -0.944447f, -0.944479f, -0.944510f, -0.944542f, -0.944573f,
+ -0.944605f, -0.944636f, -0.944668f, -0.944699f, -0.944731f, -0.944762f, -0.944793f, -0.944825f,
+ -0.944856f, -0.944888f, -0.944919f, -0.944950f, -0.944982f, -0.945013f, -0.945045f, -0.945076f,
+ -0.945107f, -0.945139f, -0.945170f, -0.945201f, -0.945232f, -0.945264f, -0.945295f, -0.945326f,
+ -0.945358f, -0.945389f, -0.945420f, -0.945451f, -0.945482f, -0.945514f, -0.945545f, -0.945576f,
+ -0.945607f, -0.945639f, -0.945670f, -0.945701f, -0.945732f, -0.945763f, -0.945794f, -0.945825f,
+ -0.945857f, -0.945888f, -0.945919f, -0.945950f, -0.945981f, -0.946012f, -0.946043f, -0.946074f,
+ -0.946105f, -0.946136f, -0.946167f, -0.946198f, -0.946229f, -0.946260f, -0.946291f, -0.946322f,
+ -0.946353f, -0.946384f, -0.946415f, -0.946446f, -0.946477f, -0.946508f, -0.946539f, -0.946570f,
+ -0.946601f, -0.946632f, -0.946663f, -0.946694f, -0.946724f, -0.946755f, -0.946786f, -0.946817f,
+ -0.946848f, -0.946879f, -0.946910f, -0.946940f, -0.946971f, -0.947002f, -0.947033f, -0.947064f,
+ -0.947094f, -0.947125f, -0.947156f, -0.947187f, -0.947217f, -0.947248f, -0.947279f, -0.947310f,
+ -0.947340f, -0.947371f, -0.947402f, -0.947432f, -0.947463f, -0.947494f, -0.947524f, -0.947555f,
+ -0.947586f, -0.947616f, -0.947647f, -0.947677f, -0.947708f, -0.947739f, -0.947769f, -0.947800f,
+ -0.947830f, -0.947861f, -0.947891f, -0.947922f, -0.947953f, -0.947983f, -0.948014f, -0.948044f,
+ -0.948075f, -0.948105f, -0.948136f, -0.948166f, -0.948196f, -0.948227f, -0.948257f, -0.948288f,
+ -0.948318f, -0.948349f, -0.948379f, -0.948409f, -0.948440f, -0.948470f, -0.948501f, -0.948531f,
+ -0.948561f, -0.948592f, -0.948622f, -0.948652f, -0.948683f, -0.948713f, -0.948743f, -0.948774f,
+ -0.948804f, -0.948834f, -0.948864f, -0.948895f, -0.948925f, -0.948955f, -0.948985f, -0.949016f,
+ -0.949046f, -0.949076f, -0.949106f, -0.949136f, -0.949167f, -0.949197f, -0.949227f, -0.949257f,
+ -0.949287f, -0.949317f, -0.949348f, -0.949378f, -0.949408f, -0.949438f, -0.949468f, -0.949498f,
+ -0.949528f, -0.949558f, -0.949588f, -0.949618f, -0.949648f, -0.949678f, -0.949708f, -0.949739f,
+ -0.949768f, -0.949798f, -0.949829f, -0.949858f, -0.949888f, -0.949918f, -0.949948f, -0.949978f,
+ -0.950008f, -0.950038f, -0.950068f, -0.950098f, -0.950128f, -0.950158f, -0.950188f, -0.950218f,
+ -0.950247f, -0.950277f, -0.950307f, -0.950337f, -0.950367f, -0.950397f, -0.950426f, -0.950456f,
+ -0.950486f, -0.950516f, -0.950546f, -0.950575f, -0.950605f, -0.950635f, -0.950665f, -0.950694f,
+ -0.950724f, -0.950754f, -0.950784f, -0.950813f, -0.950843f, -0.950873f, -0.950902f, -0.950932f,
+ -0.950962f, -0.950991f, -0.951021f, -0.951051f, -0.951080f, -0.951110f, -0.951139f, -0.951169f,
+ -0.951199f, -0.951228f, -0.951258f, -0.951287f, -0.951317f, -0.951346f, -0.951376f, -0.951406f,
+ -0.951435f, -0.951465f, -0.951494f, -0.951524f, -0.951553f, -0.951582f, -0.951612f, -0.951641f,
+ -0.951671f, -0.951700f, -0.951730f, -0.951759f, -0.951789f, -0.951818f, -0.951847f, -0.951877f,
+ -0.951906f, -0.951936f, -0.951965f, -0.951994f, -0.952024f, -0.952053f, -0.952082f, -0.952112f,
+ -0.952141f, -0.952170f, -0.952199f, -0.952229f, -0.952258f, -0.952287f, -0.952317f, -0.952346f,
+ -0.952375f, -0.952404f, -0.952433f, -0.952463f, -0.952492f, -0.952521f, -0.952550f, -0.952579f,
+ -0.952609f, -0.952638f, -0.952667f, -0.952696f, -0.952725f, -0.952754f, -0.952783f, -0.952813f,
+ -0.952842f, -0.952871f, -0.952900f, -0.952929f, -0.952958f, -0.952987f, -0.953016f, -0.953045f,
+ -0.953074f, -0.953103f, -0.953132f, -0.953161f, -0.953190f, -0.953219f, -0.953248f, -0.953277f,
+ -0.953306f, -0.953335f, -0.953364f, -0.953393f, -0.953422f, -0.953451f, -0.953480f, -0.953508f,
+ -0.953537f, -0.953566f, -0.953595f, -0.953624f, -0.953653f, -0.953682f, -0.953711f, -0.953739f,
+ -0.953768f, -0.953797f, -0.953826f, -0.953855f, -0.953883f, -0.953912f, -0.953941f, -0.953970f,
+ -0.953998f, -0.954027f, -0.954056f, -0.954085f, -0.954113f, -0.954142f, -0.954171f, -0.954199f,
+ -0.954228f, -0.954257f, -0.954285f, -0.954314f, -0.954343f, -0.954371f, -0.954400f, -0.954429f,
+ -0.954457f, -0.954486f, -0.954514f, -0.954543f, -0.954572f, -0.954600f, -0.954629f, -0.954657f,
+ -0.954686f, -0.954714f, -0.954743f, -0.954771f, -0.954800f, -0.954828f, -0.954857f, -0.954885f,
+ -0.954914f, -0.954942f, -0.954971f, -0.954999f, -0.955028f, -0.955056f, -0.955084f, -0.955113f,
+ -0.955141f, -0.955170f, -0.955198f, -0.955226f, -0.955255f, -0.955283f, -0.955311f, -0.955340f,
+ -0.955368f, -0.955396f, -0.955425f, -0.955453f, -0.955481f, -0.955510f, -0.955538f, -0.955566f,
+ -0.955594f, -0.955623f, -0.955651f, -0.955679f, -0.955707f, -0.955736f, -0.955764f, -0.955792f,
+ -0.955820f, -0.955848f, -0.955876f, -0.955905f, -0.955933f, -0.955961f, -0.955989f, -0.956017f,
+ -0.956045f, -0.956073f, -0.956101f, -0.956130f, -0.956158f, -0.956186f, -0.956214f, -0.956242f,
+ -0.956270f, -0.956298f, -0.956326f, -0.956354f, -0.956382f, -0.956410f, -0.956438f, -0.956466f,
+ -0.956494f, -0.956522f, -0.956550f, -0.956578f, -0.956606f, -0.956634f, -0.956662f, -0.956689f,
+ -0.956717f, -0.956745f, -0.956773f, -0.956801f, -0.956829f, -0.956857f, -0.956885f, -0.956913f,
+ -0.956940f, -0.956968f, -0.956996f, -0.957024f, -0.957052f, -0.957079f, -0.957107f, -0.957135f,
+ -0.957163f, -0.957190f, -0.957218f, -0.957246f, -0.957274f, -0.957301f, -0.957329f, -0.957357f,
+ -0.957385f, -0.957412f, -0.957440f, -0.957468f, -0.957495f, -0.957523f, -0.957550f, -0.957578f,
+ -0.957606f, -0.957633f, -0.957661f, -0.957689f, -0.957716f, -0.957744f, -0.957771f, -0.957799f,
+ -0.957826f, -0.957854f, -0.957882f, -0.957909f, -0.957937f, -0.957964f, -0.957992f, -0.958019f,
+ -0.958046f, -0.958074f, -0.958101f, -0.958129f, -0.958156f, -0.958184f, -0.958211f, -0.958239f,
+ -0.958266f, -0.958293f, -0.958321f, -0.958348f, -0.958376f, -0.958403f, -0.958430f, -0.958458f,
+ -0.958485f, -0.958512f, -0.958540f, -0.958567f, -0.958594f, -0.958622f, -0.958649f, -0.958676f,
+ -0.958703f, -0.958731f, -0.958758f, -0.958785f, -0.958812f, -0.958840f, -0.958867f, -0.958894f,
+ -0.958921f, -0.958949f, -0.958976f, -0.959003f, -0.959030f, -0.959057f, -0.959084f, -0.959112f,
+ -0.959139f, -0.959166f, -0.959193f, -0.959220f, -0.959247f, -0.959274f, -0.959301f, -0.959328f,
+ -0.959355f, -0.959382f, -0.959409f, -0.959436f, -0.959463f, -0.959491f, -0.959518f, -0.959545f,
+ -0.959572f, -0.959598f, -0.959625f, -0.959652f, -0.959679f, -0.959706f, -0.959733f, -0.959760f,
+ -0.959787f, -0.959814f, -0.959841f, -0.959868f, -0.959895f, -0.959922f, -0.959948f, -0.959975f,
+ -0.960002f, -0.960029f, -0.960056f, -0.960083f, -0.960109f, -0.960136f, -0.960163f, -0.960190f,
+ -0.960217f, -0.960243f, -0.960270f, -0.960297f, -0.960324f, -0.960350f, -0.960377f, -0.960404f,
+ -0.960431f, -0.960457f, -0.960484f, -0.960511f, -0.960537f, -0.960564f, -0.960591f, -0.960617f,
+ -0.960644f, -0.960670f, -0.960697f, -0.960724f, -0.960750f, -0.960777f, -0.960804f, -0.960830f,
+ -0.960857f, -0.960883f, -0.960910f, -0.960936f, -0.960963f, -0.960989f, -0.961016f, -0.961042f,
+ -0.961069f, -0.961095f, -0.961122f, -0.961148f, -0.961175f, -0.961201f, -0.961228f, -0.961254f,
+ -0.961280f, -0.961307f, -0.961333f, -0.961360f, -0.961386f, -0.961412f, -0.961439f, -0.961465f,
+ -0.961492f, -0.961518f, -0.961544f, -0.961571f, -0.961597f, -0.961623f, -0.961649f, -0.961676f,
+ -0.961702f, -0.961728f, -0.961755f, -0.961781f, -0.961807f, -0.961833f, -0.961860f, -0.961886f,
+ -0.961912f, -0.961938f, -0.961964f, -0.961991f, -0.962017f, -0.962043f, -0.962069f, -0.962095f,
+ -0.962121f, -0.962148f, -0.962174f, -0.962200f, -0.962226f, -0.962252f, -0.962278f, -0.962304f,
+ -0.962330f, -0.962356f, -0.962382f, -0.962408f, -0.962434f, -0.962460f, -0.962486f, -0.962512f,
+ -0.962538f, -0.962564f, -0.962590f, -0.962616f, -0.962642f, -0.962668f, -0.962694f, -0.962720f,
+ -0.962746f, -0.962772f, -0.962798f, -0.962824f, -0.962850f, -0.962876f, -0.962902f, -0.962927f,
+ -0.962953f, -0.962979f, -0.963005f, -0.963031f, -0.963057f, -0.963082f, -0.963108f, -0.963134f,
+ -0.963160f, -0.963186f, -0.963211f, -0.963237f, -0.963263f, -0.963289f, -0.963314f, -0.963340f,
+ -0.963366f, -0.963391f, -0.963417f, -0.963443f, -0.963469f, -0.963494f, -0.963520f, -0.963546f,
+ -0.963571f, -0.963597f, -0.963623f, -0.963648f, -0.963674f, -0.963699f, -0.963725f, -0.963750f,
+ -0.963776f, -0.963802f, -0.963827f, -0.963853f, -0.963878f, -0.963904f, -0.963929f, -0.963955f,
+ -0.963980f, -0.964006f, -0.964031f, -0.964057f, -0.964082f, -0.964108f, -0.964133f, -0.964159f,
+ -0.964184f, -0.964209f, -0.964235f, -0.964260f, -0.964286f, -0.964311f, -0.964336f, -0.964362f,
+ -0.964387f, -0.964413f, -0.964438f, -0.964463f, -0.964489f, -0.964514f, -0.964539f, -0.964565f,
+ -0.964590f, -0.964615f, -0.964640f, -0.964666f, -0.964691f, -0.964716f, -0.964741f, -0.964767f,
+ -0.964792f, -0.964817f, -0.964842f, -0.964867f, -0.964893f, -0.964918f, -0.964943f, -0.964968f,
+ -0.964993f, -0.965018f, -0.965044f, -0.965069f, -0.965094f, -0.965119f, -0.965144f, -0.965169f,
+ -0.965194f, -0.965219f, -0.965244f, -0.965269f, -0.965294f, -0.965319f, -0.965344f, -0.965369f,
+ -0.965394f, -0.965419f, -0.965444f, -0.965469f, -0.965494f, -0.965519f, -0.965544f, -0.965569f,
+ -0.965594f, -0.965619f, -0.965644f, -0.965669f, -0.965694f, -0.965719f, -0.965744f, -0.965769f,
+ -0.965793f, -0.965818f, -0.965843f, -0.965868f, -0.965893f, -0.965918f, -0.965942f, -0.965967f,
+ -0.965992f, -0.966017f, -0.966042f, -0.966066f, -0.966091f, -0.966116f, -0.966141f, -0.966165f,
+ -0.966190f, -0.966215f, -0.966239f, -0.966264f, -0.966289f, -0.966313f, -0.966338f, -0.966363f,
+ -0.966387f, -0.966412f, -0.966437f, -0.966461f, -0.966486f, -0.966511f, -0.966535f, -0.966560f,
+ -0.966584f, -0.966609f, -0.966633f, -0.966658f, -0.966683f, -0.966707f, -0.966732f, -0.966756f,
+ -0.966781f, -0.966805f, -0.966830f, -0.966854f, -0.966879f, -0.966903f, -0.966928f, -0.966952f,
+ -0.966976f, -0.967001f, -0.967025f, -0.967050f, -0.967074f, -0.967099f, -0.967123f, -0.967147f,
+ -0.967172f, -0.967196f, -0.967220f, -0.967245f, -0.967269f, -0.967293f, -0.967318f, -0.967342f,
+ -0.967366f, -0.967391f, -0.967415f, -0.967439f, -0.967463f, -0.967488f, -0.967512f, -0.967536f,
+ -0.967560f, -0.967585f, -0.967609f, -0.967633f, -0.967657f, -0.967681f, -0.967706f, -0.967730f,
+ -0.967754f, -0.967778f, -0.967802f, -0.967826f, -0.967850f, -0.967874f, -0.967899f, -0.967923f,
+ -0.967947f, -0.967971f, -0.967995f, -0.968019f, -0.968043f, -0.968067f, -0.968091f, -0.968115f,
+ -0.968139f, -0.968163f, -0.968187f, -0.968211f, -0.968235f, -0.968259f, -0.968283f, -0.968307f,
+ -0.968331f, -0.968355f, -0.968379f, -0.968403f, -0.968427f, -0.968450f, -0.968474f, -0.968498f,
+ -0.968522f, -0.968546f, -0.968570f, -0.968594f, -0.968617f, -0.968641f, -0.968665f, -0.968689f,
+ -0.968713f, -0.968737f, -0.968760f, -0.968784f, -0.968808f, -0.968832f, -0.968855f, -0.968879f,
+ -0.968903f, -0.968927f, -0.968950f, -0.968974f, -0.968998f, -0.969021f, -0.969045f, -0.969069f,
+ -0.969092f, -0.969116f, -0.969140f, -0.969163f, -0.969187f, -0.969210f, -0.969234f, -0.969258f,
+ -0.969281f, -0.969305f, -0.969328f, -0.969352f, -0.969375f, -0.969399f, -0.969423f, -0.969446f,
+ -0.969470f, -0.969493f, -0.969517f, -0.969540f, -0.969564f, -0.969587f, -0.969611f, -0.969634f,
+ -0.969657f, -0.969681f, -0.969704f, -0.969728f, -0.969751f, -0.969774f, -0.969798f, -0.969821f,
+ -0.969845f, -0.969868f, -0.969891f, -0.969915f, -0.969938f, -0.969961f, -0.969985f, -0.970008f,
+ -0.970031f, -0.970055f, -0.970078f, -0.970101f, -0.970124f, -0.970148f, -0.970171f, -0.970194f,
+ -0.970217f, -0.970241f, -0.970264f, -0.970287f, -0.970310f, -0.970333f, -0.970357f, -0.970380f,
+ -0.970403f, -0.970426f, -0.970449f, -0.970472f, -0.970495f, -0.970518f, -0.970542f, -0.970565f,
+ -0.970588f, -0.970611f, -0.970634f, -0.970657f, -0.970680f, -0.970703f, -0.970726f, -0.970749f,
+ -0.970772f, -0.970795f, -0.970818f, -0.970841f, -0.970864f, -0.970887f, -0.970910f, -0.970933f,
+ -0.970956f, -0.970979f, -0.971002f, -0.971025f, -0.971048f, -0.971071f, -0.971093f, -0.971116f,
+ -0.971139f, -0.971162f, -0.971185f, -0.971208f, -0.971231f, -0.971253f, -0.971276f, -0.971299f,
+ -0.971322f, -0.971345f, -0.971367f, -0.971390f, -0.971413f, -0.971436f, -0.971458f, -0.971481f,
+ -0.971504f, -0.971527f, -0.971549f, -0.971572f, -0.971595f, -0.971617f, -0.971640f, -0.971663f,
+ -0.971685f, -0.971708f, -0.971731f, -0.971753f, -0.971776f, -0.971799f, -0.971821f, -0.971844f,
+ -0.971866f, -0.971889f, -0.971911f, -0.971934f, -0.971957f, -0.971979f, -0.972002f, -0.972024f,
+ -0.972047f, -0.972069f, -0.972092f, -0.972114f, -0.972137f, -0.972159f, -0.972182f, -0.972204f,
+ -0.972227f, -0.972249f, -0.972271f, -0.972294f, -0.972316f, -0.972339f, -0.972361f, -0.972383f,
+ -0.972406f, -0.972428f, -0.972450f, -0.972473f, -0.972495f, -0.972517f, -0.972540f, -0.972562f,
+ -0.972584f, -0.972607f, -0.972629f, -0.972651f, -0.972673f, -0.972696f, -0.972718f, -0.972740f,
+ -0.972762f, -0.972785f, -0.972807f, -0.972829f, -0.972851f, -0.972873f, -0.972896f, -0.972918f,
+ -0.972940f, -0.972962f, -0.972984f, -0.973006f, -0.973028f, -0.973051f, -0.973073f, -0.973095f,
+ -0.973117f, -0.973139f, -0.973161f, -0.973183f, -0.973205f, -0.973227f, -0.973249f, -0.973271f,
+ -0.973293f, -0.973315f, -0.973337f, -0.973359f, -0.973381f, -0.973403f, -0.973425f, -0.973447f,
+ -0.973469f, -0.973491f, -0.973513f, -0.973535f, -0.973557f, -0.973579f, -0.973601f, -0.973622f,
+ -0.973644f, -0.973666f, -0.973688f, -0.973710f, -0.973732f, -0.973753f, -0.973775f, -0.973797f,
+ -0.973819f, -0.973841f, -0.973862f, -0.973884f, -0.973906f, -0.973928f, -0.973949f, -0.973971f,
+ -0.973993f, -0.974015f, -0.974036f, -0.974058f, -0.974080f, -0.974101f, -0.974123f, -0.974145f,
+ -0.974166f, -0.974188f, -0.974210f, -0.974231f, -0.974253f, -0.974275f, -0.974296f, -0.974318f,
+ -0.974339f, -0.974361f, -0.974383f, -0.974404f, -0.974426f, -0.974447f, -0.974469f, -0.974490f,
+ -0.974512f, -0.974533f, -0.974555f, -0.974576f, -0.974598f, -0.974619f, -0.974641f, -0.974662f,
+ -0.974684f, -0.974705f, -0.974726f, -0.974748f, -0.974769f, -0.974791f, -0.974812f, -0.974833f,
+ -0.974855f, -0.974876f, -0.974897f, -0.974919f, -0.974940f, -0.974961f, -0.974983f, -0.975004f,
+ -0.975025f, -0.975047f, -0.975068f, -0.975089f, -0.975110f, -0.975132f, -0.975153f, -0.975174f,
+ -0.975195f, -0.975217f, -0.975238f, -0.975259f, -0.975280f, -0.975301f, -0.975323f, -0.975344f,
+ -0.975365f, -0.975386f, -0.975407f, -0.975428f, -0.975449f, -0.975471f, -0.975492f, -0.975513f,
+ -0.975534f, -0.975555f, -0.975576f, -0.975597f, -0.975618f, -0.975639f, -0.975660f, -0.975681f,
+ -0.975702f, -0.975723f, -0.975744f, -0.975765f, -0.975786f, -0.975807f, -0.975828f, -0.975849f,
+ -0.975870f, -0.975891f, -0.975912f, -0.975933f, -0.975954f, -0.975974f, -0.975995f, -0.976016f,
+ -0.976037f, -0.976058f, -0.976079f, -0.976100f, -0.976120f, -0.976141f, -0.976162f, -0.976183f,
+ -0.976204f, -0.976224f, -0.976245f, -0.976266f, -0.976287f, -0.976308f, -0.976328f, -0.976349f,
+ -0.976370f, -0.976390f, -0.976411f, -0.976432f, -0.976453f, -0.976473f, -0.976494f, -0.976515f,
+ -0.976535f, -0.976556f, -0.976576f, -0.976597f, -0.976618f, -0.976638f, -0.976659f, -0.976680f,
+ -0.976700f, -0.976721f, -0.976741f, -0.976762f, -0.976782f, -0.976803f, -0.976823f, -0.976844f,
+ -0.976864f, -0.976885f, -0.976905f, -0.976926f, -0.976946f, -0.976967f, -0.976987f, -0.977008f,
+ -0.977028f, -0.977049f, -0.977069f, -0.977089f, -0.977110f, -0.977130f, -0.977151f, -0.977171f,
+ -0.977191f, -0.977212f, -0.977232f, -0.977252f, -0.977273f, -0.977293f, -0.977313f, -0.977334f,
+ -0.977354f, -0.977374f, -0.977394f, -0.977415f, -0.977435f, -0.977455f, -0.977475f, -0.977496f,
+ -0.977516f, -0.977536f, -0.977556f, -0.977577f, -0.977597f, -0.977617f, -0.977637f, -0.977657f,
+ -0.977677f, -0.977697f, -0.977718f, -0.977738f, -0.977758f, -0.977778f, -0.977798f, -0.977818f,
+ -0.977838f, -0.977858f, -0.977878f, -0.977898f, -0.977918f, -0.977938f, -0.977959f, -0.977979f,
+ -0.977998f, -0.978019f, -0.978038f, -0.978058f, -0.978078f, -0.978098f, -0.978118f, -0.978138f,
+ -0.978158f, -0.978178f, -0.978198f, -0.978218f, -0.978238f, -0.978258f, -0.978278f, -0.978298f,
+ -0.978317f, -0.978337f, -0.978357f, -0.978377f, -0.978397f, -0.978417f, -0.978436f, -0.978456f,
+ -0.978476f, -0.978496f, -0.978516f, -0.978535f, -0.978555f, -0.978575f, -0.978594f, -0.978614f,
+ -0.978634f, -0.978654f, -0.978673f, -0.978693f, -0.978713f, -0.978732f, -0.978752f, -0.978772f,
+ -0.978791f, -0.978811f, -0.978831f, -0.978850f, -0.978870f, -0.978889f, -0.978909f, -0.978929f,
+ -0.978948f, -0.978968f, -0.978987f, -0.979007f, -0.979026f, -0.979046f, -0.979065f, -0.979085f,
+ -0.979104f, -0.979124f, -0.979143f, -0.979163f, -0.979182f, -0.979202f, -0.979221f, -0.979241f,
+ -0.979260f, -0.979280f, -0.979299f, -0.979318f, -0.979338f, -0.979357f, -0.979376f, -0.979396f,
+ -0.979415f, -0.979435f, -0.979454f, -0.979473f, -0.979493f, -0.979512f, -0.979531f, -0.979550f,
+ -0.979570f, -0.979589f, -0.979608f, -0.979628f, -0.979647f, -0.979666f, -0.979685f, -0.979704f,
+ -0.979724f, -0.979743f, -0.979762f, -0.979781f, -0.979800f, -0.979820f, -0.979839f, -0.979858f,
+ -0.979877f, -0.979896f, -0.979915f, -0.979934f, -0.979954f, -0.979973f, -0.979992f, -0.980011f,
+ -0.980030f, -0.980049f, -0.980068f, -0.980087f, -0.980106f, -0.980125f, -0.980144f, -0.980163f,
+ -0.980182f, -0.980201f, -0.980220f, -0.980239f, -0.980258f, -0.980277f, -0.980296f, -0.980315f,
+ -0.980334f, -0.980353f, -0.980372f, -0.980390f, -0.980409f, -0.980428f, -0.980447f, -0.980466f,
+ -0.980485f, -0.980504f, -0.980523f, -0.980541f, -0.980560f, -0.980579f, -0.980598f, -0.980617f,
+ -0.980635f, -0.980654f, -0.980673f, -0.980692f, -0.980710f, -0.980729f, -0.980748f, -0.980767f,
+ -0.980785f, -0.980804f, -0.980823f, -0.980841f, -0.980860f, -0.980879f, -0.980897f, -0.980916f,
+ -0.980935f, -0.980953f, -0.980972f, -0.980990f, -0.981009f, -0.981028f, -0.981046f, -0.981065f,
+ -0.981083f, -0.981102f, -0.981120f, -0.981139f, -0.981158f, -0.981176f, -0.981195f, -0.981213f,
+ -0.981232f, -0.981250f, -0.981269f, -0.981287f, -0.981305f, -0.981324f, -0.981342f, -0.981361f,
+ -0.981379f, -0.981398f, -0.981416f, -0.981434f, -0.981453f, -0.981471f, -0.981490f, -0.981508f,
+ -0.981526f, -0.981545f, -0.981563f, -0.981581f, -0.981600f, -0.981618f, -0.981636f, -0.981654f,
+ -0.981673f, -0.981691f, -0.981709f, -0.981727f, -0.981746f, -0.981764f, -0.981782f, -0.981800f,
+ -0.981819f, -0.981837f, -0.981855f, -0.981873f, -0.981891f, -0.981909f, -0.981928f, -0.981946f,
+ -0.981964f, -0.981982f, -0.982000f, -0.982018f, -0.982036f, -0.982054f, -0.982072f, -0.982091f,
+ -0.982109f, -0.982127f, -0.982145f, -0.982163f, -0.982181f, -0.982199f, -0.982217f, -0.982235f,
+ -0.982253f, -0.982271f, -0.982289f, -0.982307f, -0.982325f, -0.982343f, -0.982360f, -0.982378f,
+ -0.982396f, -0.982414f, -0.982432f, -0.982450f, -0.982468f, -0.982486f, -0.982504f, -0.982521f,
+ -0.982539f, -0.982557f, -0.982575f, -0.982593f, -0.982611f, -0.982628f, -0.982646f, -0.982664f,
+ -0.982682f, -0.982699f, -0.982717f, -0.982735f, -0.982753f, -0.982770f, -0.982788f, -0.982806f,
+ -0.982824f, -0.982841f, -0.982859f, -0.982877f, -0.982894f, -0.982912f, -0.982930f, -0.982947f,
+ -0.982965f, -0.982982f, -0.983000f, -0.983018f, -0.983035f, -0.983053f, -0.983070f, -0.983088f,
+ -0.983105f, -0.983123f, -0.983141f, -0.983158f, -0.983176f, -0.983193f, -0.983211f, -0.983228f,
+ -0.983246f, -0.983263f, -0.983281f, -0.983298f, -0.983315f, -0.983333f, -0.983350f, -0.983368f,
+ -0.983385f, -0.983402f, -0.983420f, -0.983437f, -0.983455f, -0.983472f, -0.983489f, -0.983507f,
+ -0.983524f, -0.983541f, -0.983559f, -0.983576f, -0.983593f, -0.983611f, -0.983628f, -0.983645f,
+ -0.983662f, -0.983680f, -0.983697f, -0.983714f, -0.983731f, -0.983749f, -0.983766f, -0.983783f,
+ -0.983800f, -0.983817f, -0.983835f, -0.983852f, -0.983869f, -0.983886f, -0.983903f, -0.983920f,
+ -0.983937f, -0.983955f, -0.983972f, -0.983989f, -0.984006f, -0.984023f, -0.984040f, -0.984057f,
+ -0.984074f, -0.984091f, -0.984108f, -0.984125f, -0.984142f, -0.984159f, -0.984176f, -0.984193f,
+ -0.984210f, -0.984227f, -0.984244f, -0.984261f, -0.984278f, -0.984295f, -0.984312f, -0.984329f,
+ -0.984346f, -0.984362f, -0.984379f, -0.984396f, -0.984413f, -0.984430f, -0.984447f, -0.984464f,
+ -0.984480f, -0.984497f, -0.984514f, -0.984531f, -0.984548f, -0.984564f, -0.984581f, -0.984598f,
+ -0.984615f, -0.984632f, -0.984648f, -0.984665f, -0.984682f, -0.984698f, -0.984715f, -0.984732f,
+ -0.984748f, -0.984765f, -0.984782f, -0.984798f, -0.984815f, -0.984832f, -0.984848f, -0.984865f,
+ -0.984882f, -0.984898f, -0.984915f, -0.984931f, -0.984948f, -0.984965f, -0.984981f, -0.984998f,
+ -0.985014f, -0.985031f, -0.985047f, -0.985064f, -0.985080f, -0.985097f, -0.985113f, -0.985130f,
+ -0.985146f, -0.985163f, -0.985179f, -0.985196f, -0.985212f, -0.985228f, -0.985245f, -0.985261f,
+ -0.985278f, -0.985294f, -0.985310f, -0.985327f, -0.985343f, -0.985359f, -0.985376f, -0.985392f,
+ -0.985408f, -0.985425f, -0.985441f, -0.985457f, -0.985474f, -0.985490f, -0.985506f, -0.985523f,
+ -0.985539f, -0.985555f, -0.985571f, -0.985587f, -0.985604f, -0.985620f, -0.985636f, -0.985652f,
+ -0.985668f, -0.985685f, -0.985701f, -0.985717f, -0.985733f, -0.985749f, -0.985765f, -0.985781f,
+ -0.985798f, -0.985814f, -0.985830f, -0.985846f, -0.985862f, -0.985878f, -0.985894f, -0.985910f,
+ -0.985926f, -0.985942f, -0.985958f, -0.985974f, -0.985990f, -0.986006f, -0.986022f, -0.986038f,
+ -0.986054f, -0.986070f, -0.986086f, -0.986102f, -0.986118f, -0.986134f, -0.986150f, -0.986165f,
+ -0.986181f, -0.986197f, -0.986213f, -0.986229f, -0.986245f, -0.986261f, -0.986276f, -0.986292f,
+ -0.986308f, -0.986324f, -0.986340f, -0.986355f, -0.986371f, -0.986387f, -0.986403f, -0.986419f,
+ -0.986434f, -0.986450f, -0.986466f, -0.986481f, -0.986497f, -0.986513f, -0.986529f, -0.986544f,
+ -0.986560f, -0.986576f, -0.986591f, -0.986607f, -0.986623f, -0.986638f, -0.986654f, -0.986669f,
+ -0.986685f, -0.986701f, -0.986716f, -0.986732f, -0.986747f, -0.986763f, -0.986778f, -0.986794f,
+ -0.986809f, -0.986825f, -0.986840f, -0.986856f, -0.986871f, -0.986887f, -0.986902f, -0.986918f,
+ -0.986933f, -0.986949f, -0.986964f, -0.986980f, -0.986995f, -0.987010f, -0.987026f, -0.987041f,
+ -0.987057f, -0.987072f, -0.987087f, -0.987103f, -0.987118f, -0.987133f, -0.987149f, -0.987164f,
+ -0.987179f, -0.987195f, -0.987210f, -0.987225f, -0.987240f, -0.987256f, -0.987271f, -0.987286f,
+ -0.987301f, -0.987317f, -0.987332f, -0.987347f, -0.987362f, -0.987377f, -0.987393f, -0.987408f,
+ -0.987423f, -0.987438f, -0.987453f, -0.987468f, -0.987484f, -0.987499f, -0.987514f, -0.987529f,
+ -0.987544f, -0.987559f, -0.987574f, -0.987589f, -0.987604f, -0.987619f, -0.987634f, -0.987649f,
+ -0.987664f, -0.987679f, -0.987694f, -0.987709f, -0.987724f, -0.987739f, -0.987754f, -0.987769f,
+ -0.987784f, -0.987799f, -0.987814f, -0.987829f, -0.987844f, -0.987859f, -0.987874f, -0.987889f,
+ -0.987903f, -0.987918f, -0.987933f, -0.987948f, -0.987963f, -0.987978f, -0.987992f, -0.988007f,
+ -0.988022f, -0.988037f, -0.988052f, -0.988066f, -0.988081f, -0.988096f, -0.988111f, -0.988125f,
+ -0.988140f, -0.988155f, -0.988169f, -0.988184f, -0.988199f, -0.988214f, -0.988228f, -0.988243f,
+ -0.988258f, -0.988272f, -0.988287f, -0.988301f, -0.988316f, -0.988331f, -0.988345f, -0.988360f,
+ -0.988374f, -0.988389f, -0.988404f, -0.988418f, -0.988433f, -0.988447f, -0.988462f, -0.988476f,
+ -0.988491f, -0.988505f, -0.988520f, -0.988534f, -0.988549f, -0.988563f, -0.988578f, -0.988592f,
+ -0.988607f, -0.988621f, -0.988635f, -0.988650f, -0.988664f, -0.988679f, -0.988693f, -0.988707f,
+ -0.988722f, -0.988736f, -0.988750f, -0.988765f, -0.988779f, -0.988793f, -0.988808f, -0.988822f,
+ -0.988836f, -0.988851f, -0.988865f, -0.988879f, -0.988893f, -0.988908f, -0.988922f, -0.988936f,
+ -0.988950f, -0.988964f, -0.988979f, -0.988993f, -0.989007f, -0.989021f, -0.989035f, -0.989050f,
+ -0.989064f, -0.989078f, -0.989092f, -0.989106f, -0.989120f, -0.989134f, -0.989148f, -0.989162f,
+ -0.989177f, -0.989191f, -0.989205f, -0.989219f, -0.989233f, -0.989247f, -0.989261f, -0.989275f,
+ -0.989289f, -0.989303f, -0.989317f, -0.989331f, -0.989345f, -0.989359f, -0.989373f, -0.989386f,
+ -0.989400f, -0.989414f, -0.989428f, -0.989442f, -0.989456f, -0.989470f, -0.989484f, -0.989498f,
+ -0.989511f, -0.989525f, -0.989539f, -0.989553f, -0.989567f, -0.989581f, -0.989594f, -0.989608f,
+ -0.989622f, -0.989636f, -0.989650f, -0.989663f, -0.989677f, -0.989691f, -0.989704f, -0.989718f,
+ -0.989732f, -0.989746f, -0.989759f, -0.989773f, -0.989787f, -0.989800f, -0.989814f, -0.989828f,
+ -0.989841f, -0.989855f, -0.989869f, -0.989882f, -0.989896f, -0.989909f, -0.989923f, -0.989936f,
+ -0.989950f, -0.989964f, -0.989977f, -0.989991f, -0.990004f, -0.990018f, -0.990031f, -0.990045f,
+ -0.990058f, -0.990072f, -0.990085f, -0.990099f, -0.990112f, -0.990126f, -0.990139f, -0.990152f,
+ -0.990166f, -0.990179f, -0.990193f, -0.990206f, -0.990219f, -0.990233f, -0.990246f, -0.990259f,
+ -0.990273f, -0.990286f, -0.990299f, -0.990313f, -0.990326f, -0.990339f, -0.990353f, -0.990366f,
+ -0.990379f, -0.990393f, -0.990406f, -0.990419f, -0.990432f, -0.990445f, -0.990459f, -0.990472f,
+ -0.990485f, -0.990498f, -0.990511f, -0.990525f, -0.990538f, -0.990551f, -0.990564f, -0.990577f,
+ -0.990590f, -0.990603f, -0.990617f, -0.990630f, -0.990643f, -0.990656f, -0.990669f, -0.990682f,
+ -0.990695f, -0.990708f, -0.990721f, -0.990734f, -0.990747f, -0.990760f, -0.990773f, -0.990786f,
+ -0.990799f, -0.990812f, -0.990825f, -0.990838f, -0.990851f, -0.990864f, -0.990877f, -0.990890f,
+ -0.990903f, -0.990916f, -0.990928f, -0.990941f, -0.990954f, -0.990967f, -0.990980f, -0.990993f,
+ -0.991006f, -0.991018f, -0.991031f, -0.991044f, -0.991057f, -0.991070f, -0.991082f, -0.991095f,
+ -0.991108f, -0.991121f, -0.991133f, -0.991146f, -0.991159f, -0.991172f, -0.991184f, -0.991197f,
+ -0.991210f, -0.991222f, -0.991235f, -0.991248f, -0.991260f, -0.991273f, -0.991286f, -0.991298f,
+ -0.991311f, -0.991323f, -0.991336f, -0.991349f, -0.991361f, -0.991374f, -0.991386f, -0.991399f,
+ -0.991411f, -0.991424f, -0.991437f, -0.991449f, -0.991462f, -0.991474f, -0.991487f, -0.991499f,
+ -0.991511f, -0.991524f, -0.991536f, -0.991549f, -0.991561f, -0.991574f, -0.991586f, -0.991598f,
+ -0.991611f, -0.991623f, -0.991636f, -0.991648f, -0.991660f, -0.991673f, -0.991685f, -0.991697f,
+ -0.991710f, -0.991722f, -0.991734f, -0.991747f, -0.991759f, -0.991771f, -0.991783f, -0.991796f,
+ -0.991808f, -0.991820f, -0.991832f, -0.991845f, -0.991857f, -0.991869f, -0.991881f, -0.991894f,
+ -0.991906f, -0.991918f, -0.991930f, -0.991942f, -0.991954f, -0.991966f, -0.991979f, -0.991991f,
+ -0.992003f, -0.992015f, -0.992027f, -0.992039f, -0.992051f, -0.992063f, -0.992075f, -0.992087f,
+ -0.992099f, -0.992111f, -0.992123f, -0.992135f, -0.992147f, -0.992159f, -0.992171f, -0.992183f,
+ -0.992195f, -0.992207f, -0.992219f, -0.992231f, -0.992243f, -0.992255f, -0.992267f, -0.992279f,
+ -0.992291f, -0.992302f, -0.992314f, -0.992326f, -0.992338f, -0.992350f, -0.992362f, -0.992374f,
+ -0.992385f, -0.992397f, -0.992409f, -0.992421f, -0.992433f, -0.992444f, -0.992456f, -0.992468f,
+ -0.992480f, -0.992491f, -0.992503f, -0.992515f, -0.992526f, -0.992538f, -0.992550f, -0.992561f,
+ -0.992573f, -0.992585f, -0.992596f, -0.992608f, -0.992620f, -0.992631f, -0.992643f, -0.992655f,
+ -0.992666f, -0.992678f, -0.992689f, -0.992701f, -0.992712f, -0.992724f, -0.992736f, -0.992747f,
+ -0.992759f, -0.992770f, -0.992782f, -0.992793f, -0.992805f, -0.992816f, -0.992828f, -0.992839f,
+ -0.992850f, -0.992862f, -0.992873f, -0.992885f, -0.992896f, -0.992908f, -0.992919f, -0.992930f,
+ -0.992942f, -0.992953f, -0.992964f, -0.992976f, -0.992987f, -0.992998f, -0.993010f, -0.993021f,
+ -0.993032f, -0.993044f, -0.993055f, -0.993066f, -0.993077f, -0.993089f, -0.993100f, -0.993111f,
+ -0.993122f, -0.993134f, -0.993145f, -0.993156f, -0.993167f, -0.993178f, -0.993190f, -0.993201f,
+ -0.993212f, -0.993223f, -0.993234f, -0.993245f, -0.993257f, -0.993268f, -0.993279f, -0.993290f,
+ -0.993301f, -0.993312f, -0.993323f, -0.993334f, -0.993345f, -0.993356f, -0.993367f, -0.993378f,
+ -0.993389f, -0.993400f, -0.993411f, -0.993422f, -0.993433f, -0.993444f, -0.993455f, -0.993466f,
+ -0.993477f, -0.993488f, -0.993499f, -0.993510f, -0.993521f, -0.993532f, -0.993542f, -0.993553f,
+ -0.993564f, -0.993575f, -0.993586f, -0.993597f, -0.993608f, -0.993618f, -0.993629f, -0.993640f,
+ -0.993651f, -0.993662f, -0.993672f, -0.993683f, -0.993694f, -0.993705f, -0.993715f, -0.993726f,
+ -0.993737f, -0.993747f, -0.993758f, -0.993769f, -0.993779f, -0.993790f, -0.993801f, -0.993811f,
+ -0.993822f, -0.993833f, -0.993843f, -0.993854f, -0.993865f, -0.993875f, -0.993886f, -0.993896f,
+ -0.993907f, -0.993918f, -0.993928f, -0.993939f, -0.993949f, -0.993960f, -0.993970f, -0.993981f,
+ -0.993991f, -0.994002f, -0.994012f, -0.994023f, -0.994033f, -0.994044f, -0.994054f, -0.994064f,
+ -0.994075f, -0.994085f, -0.994096f, -0.994106f, -0.994116f, -0.994127f, -0.994137f, -0.994148f,
+ -0.994158f, -0.994168f, -0.994179f, -0.994189f, -0.994199f, -0.994210f, -0.994220f, -0.994230f,
+ -0.994240f, -0.994251f, -0.994261f, -0.994271f, -0.994281f, -0.994292f, -0.994302f, -0.994312f,
+ -0.994322f, -0.994333f, -0.994343f, -0.994353f, -0.994363f, -0.994373f, -0.994383f, -0.994394f,
+ -0.994404f, -0.994414f, -0.994424f, -0.994434f, -0.994444f, -0.994454f, -0.994464f, -0.994474f,
+ -0.994484f, -0.994494f, -0.994505f, -0.994515f, -0.994525f, -0.994535f, -0.994545f, -0.994555f,
+ -0.994565f, -0.994575f, -0.994585f, -0.994594f, -0.994604f, -0.994614f, -0.994624f, -0.994634f,
+ -0.994644f, -0.994654f, -0.994664f, -0.994674f, -0.994684f, -0.994694f, -0.994703f, -0.994713f,
+ -0.994723f, -0.994733f, -0.994743f, -0.994753f, -0.994762f, -0.994772f, -0.994782f, -0.994792f,
+ -0.994802f, -0.994811f, -0.994821f, -0.994831f, -0.994841f, -0.994850f, -0.994860f, -0.994870f,
+ -0.994879f, -0.994889f, -0.994899f, -0.994908f, -0.994918f, -0.994928f, -0.994937f, -0.994947f,
+ -0.994957f, -0.994966f, -0.994976f, -0.994985f, -0.994995f, -0.995005f, -0.995014f, -0.995024f,
+ -0.995033f, -0.995043f, -0.995052f, -0.995062f, -0.995071f, -0.995081f, -0.995090f, -0.995100f,
+ -0.995109f, -0.995119f, -0.995128f, -0.995138f, -0.995147f, -0.995156f, -0.995166f, -0.995175f,
+ -0.995185f, -0.995194f, -0.995203f, -0.995213f, -0.995222f, -0.995232f, -0.995241f, -0.995250f,
+ -0.995260f, -0.995269f, -0.995278f, -0.995288f, -0.995297f, -0.995306f, -0.995315f, -0.995325f,
+ -0.995334f, -0.995343f, -0.995352f, -0.995362f, -0.995371f, -0.995380f, -0.995389f, -0.995398f,
+ -0.995408f, -0.995417f, -0.995426f, -0.995435f, -0.995444f, -0.995453f, -0.995463f, -0.995472f,
+ -0.995481f, -0.995490f, -0.995499f, -0.995508f, -0.995517f, -0.995526f, -0.995535f, -0.995544f,
+ -0.995553f, -0.995562f, -0.995571f, -0.995580f, -0.995589f, -0.995598f, -0.995607f, -0.995616f,
+ -0.995625f, -0.995634f, -0.995643f, -0.995652f, -0.995661f, -0.995670f, -0.995679f, -0.995688f,
+ -0.995697f, -0.995705f, -0.995714f, -0.995723f, -0.995732f, -0.995741f, -0.995750f, -0.995759f,
+ -0.995767f, -0.995776f, -0.995785f, -0.995794f, -0.995803f, -0.995811f, -0.995820f, -0.995829f,
+ -0.995838f, -0.995846f, -0.995855f, -0.995864f, -0.995872f, -0.995881f, -0.995890f, -0.995899f,
+ -0.995907f, -0.995916f, -0.995925f, -0.995933f, -0.995942f, -0.995950f, -0.995959f, -0.995968f,
+ -0.995976f, -0.995985f, -0.995993f, -0.996002f, -0.996011f, -0.996019f, -0.996028f, -0.996036f,
+ -0.996045f, -0.996053f, -0.996062f, -0.996070f, -0.996079f, -0.996087f, -0.996096f, -0.996104f,
+ -0.996113f, -0.996121f, -0.996129f, -0.996138f, -0.996146f, -0.996155f, -0.996163f, -0.996171f,
+ -0.996180f, -0.996188f, -0.996197f, -0.996205f, -0.996213f, -0.996222f, -0.996230f, -0.996238f,
+ -0.996247f, -0.996255f, -0.996263f, -0.996271f, -0.996280f, -0.996288f, -0.996296f, -0.996304f,
+ -0.996313f, -0.996321f, -0.996329f, -0.996337f, -0.996345f, -0.996354f, -0.996362f, -0.996370f,
+ -0.996378f, -0.996386f, -0.996394f, -0.996403f, -0.996411f, -0.996419f, -0.996427f, -0.996435f,
+ -0.996443f, -0.996451f, -0.996459f, -0.996467f, -0.996475f, -0.996483f, -0.996491f, -0.996499f,
+ -0.996507f, -0.996515f, -0.996523f, -0.996531f, -0.996539f, -0.996547f, -0.996555f, -0.996563f,
+ -0.996571f, -0.996579f, -0.996587f, -0.996595f, -0.996603f, -0.996611f, -0.996619f, -0.996626f,
+ -0.996634f, -0.996642f, -0.996650f, -0.996658f, -0.996666f, -0.996674f, -0.996681f, -0.996689f,
+ -0.996697f, -0.996705f, -0.996712f, -0.996720f, -0.996728f, -0.996736f, -0.996743f, -0.996751f,
+ -0.996759f, -0.996767f, -0.996774f, -0.996782f, -0.996790f, -0.996797f, -0.996805f, -0.996813f,
+ -0.996820f, -0.996828f, -0.996836f, -0.996843f, -0.996851f, -0.996858f, -0.996866f, -0.996874f,
+ -0.996881f, -0.996889f, -0.996896f, -0.996904f, -0.996911f, -0.996919f, -0.996926f, -0.996934f,
+ -0.996941f, -0.996949f, -0.996956f, -0.996964f, -0.996971f, -0.996979f, -0.996986f, -0.996994f,
+ -0.997001f, -0.997008f, -0.997016f, -0.997023f, -0.997031f, -0.997038f, -0.997045f, -0.997053f,
+ -0.997060f, -0.997067f, -0.997075f, -0.997082f, -0.997089f, -0.997097f, -0.997104f, -0.997111f,
+ -0.997119f, -0.997126f, -0.997133f, -0.997140f, -0.997148f, -0.997155f, -0.997162f, -0.997169f,
+ -0.997176f, -0.997184f, -0.997191f, -0.997198f, -0.997205f, -0.997212f, -0.997219f, -0.997227f,
+ -0.997234f, -0.997241f, -0.997248f, -0.997255f, -0.997262f, -0.997269f, -0.997276f, -0.997283f,
+ -0.997290f, -0.997298f, -0.997305f, -0.997312f, -0.997319f, -0.997326f, -0.997333f, -0.997340f,
+ -0.997347f, -0.997354f, -0.997361f, -0.997368f, -0.997374f, -0.997381f, -0.997388f, -0.997395f,
+ -0.997402f, -0.997409f, -0.997416f, -0.997423f, -0.997430f, -0.997437f, -0.997443f, -0.997450f,
+ -0.997457f, -0.997464f, -0.997471f, -0.997478f, -0.997484f, -0.997491f, -0.997498f, -0.997505f,
+ -0.997511f, -0.997518f, -0.997525f, -0.997532f, -0.997538f, -0.997545f, -0.997552f, -0.997559f,
+ -0.997565f, -0.997572f, -0.997579f, -0.997585f, -0.997592f, -0.997599f, -0.997605f, -0.997612f,
+ -0.997618f, -0.997625f, -0.997632f, -0.997638f, -0.997645f, -0.997651f, -0.997658f, -0.997665f,
+ -0.997671f, -0.997678f, -0.997684f, -0.997691f, -0.997697f, -0.997704f, -0.997710f, -0.997717f,
+ -0.997723f, -0.997730f, -0.997736f, -0.997742f, -0.997749f, -0.997755f, -0.997762f, -0.997768f,
+ -0.997774f, -0.997781f, -0.997787f, -0.997794f, -0.997800f, -0.997806f, -0.997813f, -0.997819f,
+ -0.997825f, -0.997832f, -0.997838f, -0.997844f, -0.997851f, -0.997857f, -0.997863f, -0.997869f,
+ -0.997876f, -0.997882f, -0.997888f, -0.997894f, -0.997901f, -0.997907f, -0.997913f, -0.997919f,
+ -0.997925f, -0.997931f, -0.997938f, -0.997944f, -0.997950f, -0.997956f, -0.997962f, -0.997968f,
+ -0.997974f, -0.997980f, -0.997987f, -0.997993f, -0.997999f, -0.998005f, -0.998011f, -0.998017f,
+ -0.998023f, -0.998029f, -0.998035f, -0.998041f, -0.998047f, -0.998053f, -0.998059f, -0.998065f,
+ -0.998071f, -0.998077f, -0.998083f, -0.998089f, -0.998094f, -0.998100f, -0.998106f, -0.998112f,
+ -0.998118f, -0.998124f, -0.998130f, -0.998136f, -0.998142f, -0.998147f, -0.998153f, -0.998159f,
+ -0.998165f, -0.998171f, -0.998176f, -0.998182f, -0.998188f, -0.998194f, -0.998200f, -0.998205f,
+ -0.998211f, -0.998217f, -0.998222f, -0.998228f, -0.998234f, -0.998240f, -0.998245f, -0.998251f,
+ -0.998257f, -0.998262f, -0.998268f, -0.998273f, -0.998279f, -0.998285f, -0.998290f, -0.998296f,
+ -0.998302f, -0.998307f, -0.998313f, -0.998318f, -0.998324f, -0.998329f, -0.998335f, -0.998340f,
+ -0.998346f, -0.998351f, -0.998357f, -0.998362f, -0.998368f, -0.998373f, -0.998379f, -0.998384f,
+ -0.998390f, -0.998395f, -0.998401f, -0.998406f, -0.998411f, -0.998417f, -0.998422f, -0.998428f,
+ -0.998433f, -0.998438f, -0.998444f, -0.998449f, -0.998454f, -0.998460f, -0.998465f, -0.998470f,
+ -0.998476f, -0.998481f, -0.998486f, -0.998491f, -0.998497f, -0.998502f, -0.998507f, -0.998512f,
+ -0.998518f, -0.998523f, -0.998528f, -0.998533f, -0.998538f, -0.998544f, -0.998549f, -0.998554f,
+ -0.998559f, -0.998564f, -0.998569f, -0.998574f, -0.998580f, -0.998585f, -0.998590f, -0.998595f,
+ -0.998600f, -0.998605f, -0.998610f, -0.998615f, -0.998620f, -0.998625f, -0.998630f, -0.998635f,
+ -0.998640f, -0.998645f, -0.998650f, -0.998655f, -0.998660f, -0.998665f, -0.998670f, -0.998675f,
+ -0.998680f, -0.998685f, -0.998690f, -0.998695f, -0.998700f, -0.998704f, -0.998709f, -0.998714f,
+ -0.998719f, -0.998724f, -0.998729f, -0.998734f, -0.998738f, -0.998743f, -0.998748f, -0.998753f,
+ -0.998758f, -0.998762f, -0.998767f, -0.998772f, -0.998777f, -0.998781f, -0.998786f, -0.998791f,
+ -0.998795f, -0.998800f, -0.998805f, -0.998810f, -0.998814f, -0.998819f, -0.998824f, -0.998828f,
+ -0.998833f, -0.998837f, -0.998842f, -0.998847f, -0.998851f, -0.998856f, -0.998860f, -0.998865f,
+ -0.998870f, -0.998874f, -0.998879f, -0.998883f, -0.998888f, -0.998892f, -0.998897f, -0.998901f,
+ -0.998906f, -0.998910f, -0.998915f, -0.998919f, -0.998924f, -0.998928f, -0.998932f, -0.998937f,
+ -0.998941f, -0.998946f, -0.998950f, -0.998954f, -0.998959f, -0.998963f, -0.998968f, -0.998972f,
+ -0.998976f, -0.998981f, -0.998985f, -0.998989f, -0.998994f, -0.998998f, -0.999002f, -0.999006f,
+ -0.999011f, -0.999015f, -0.999019f, -0.999023f, -0.999028f, -0.999032f, -0.999036f, -0.999040f,
+ -0.999044f, -0.999049f, -0.999053f, -0.999057f, -0.999061f, -0.999065f, -0.999069f, -0.999074f,
+ -0.999078f, -0.999082f, -0.999086f, -0.999090f, -0.999094f, -0.999098f, -0.999102f, -0.999106f,
+ -0.999110f, -0.999114f, -0.999118f, -0.999122f, -0.999126f, -0.999130f, -0.999134f, -0.999138f,
+ -0.999142f, -0.999146f, -0.999150f, -0.999154f, -0.999158f, -0.999162f, -0.999166f, -0.999170f,
+ -0.999174f, -0.999178f, -0.999182f, -0.999186f, -0.999189f, -0.999193f, -0.999197f, -0.999201f,
+ -0.999205f, -0.999209f, -0.999212f, -0.999216f, -0.999220f, -0.999224f, -0.999228f, -0.999231f,
+ -0.999235f, -0.999239f, -0.999243f, -0.999246f, -0.999250f, -0.999254f, -0.999257f, -0.999261f,
+ -0.999265f, -0.999268f, -0.999272f, -0.999276f, -0.999279f, -0.999283f, -0.999287f, -0.999290f,
+ -0.999294f, -0.999297f, -0.999301f, -0.999305f, -0.999308f, -0.999312f, -0.999315f, -0.999319f,
+ -0.999322f, -0.999326f, -0.999329f, -0.999333f, -0.999336f, -0.999340f, -0.999343f, -0.999347f,
+ -0.999350f, -0.999354f, -0.999357f, -0.999361f, -0.999364f, -0.999367f, -0.999371f, -0.999374f,
+ -0.999378f, -0.999381f, -0.999384f, -0.999388f, -0.999391f, -0.999394f, -0.999398f, -0.999401f,
+ -0.999404f, -0.999408f, -0.999411f, -0.999414f, -0.999418f, -0.999421f, -0.999424f, -0.999427f,
+ -0.999431f, -0.999434f, -0.999437f, -0.999440f, -0.999443f, -0.999447f, -0.999450f, -0.999453f,
+ -0.999456f, -0.999459f, -0.999462f, -0.999466f, -0.999469f, -0.999472f, -0.999475f, -0.999478f,
+ -0.999481f, -0.999484f, -0.999487f, -0.999490f, -0.999493f, -0.999497f, -0.999500f, -0.999503f,
+ -0.999506f, -0.999509f, -0.999512f, -0.999515f, -0.999518f, -0.999521f, -0.999524f, -0.999527f,
+ -0.999529f, -0.999532f, -0.999535f, -0.999538f, -0.999541f, -0.999544f, -0.999547f, -0.999550f,
+ -0.999553f, -0.999556f, -0.999558f, -0.999561f, -0.999564f, -0.999567f, -0.999570f, -0.999573f,
+ -0.999575f, -0.999578f, -0.999581f, -0.999584f, -0.999586f, -0.999589f, -0.999592f, -0.999595f,
+ -0.999597f, -0.999600f, -0.999603f, -0.999605f, -0.999608f, -0.999611f, -0.999614f, -0.999616f,
+ -0.999619f, -0.999621f, -0.999624f, -0.999627f, -0.999629f, -0.999632f, -0.999635f, -0.999637f,
+ -0.999640f, -0.999642f, -0.999645f, -0.999647f, -0.999650f, -0.999652f, -0.999655f, -0.999658f,
+ -0.999660f, -0.999663f, -0.999665f, -0.999667f, -0.999670f, -0.999672f, -0.999675f, -0.999677f,
+ -0.999680f, -0.999682f, -0.999685f, -0.999687f, -0.999689f, -0.999692f, -0.999694f, -0.999696f,
+ -0.999699f, -0.999701f, -0.999704f, -0.999706f, -0.999708f, -0.999710f, -0.999713f, -0.999715f,
+ -0.999717f, -0.999720f, -0.999722f, -0.999724f, -0.999726f, -0.999729f, -0.999731f, -0.999733f,
+ -0.999735f, -0.999738f, -0.999740f, -0.999742f, -0.999744f, -0.999746f, -0.999748f, -0.999750f,
+ -0.999753f, -0.999755f, -0.999757f, -0.999759f, -0.999761f, -0.999763f, -0.999765f, -0.999767f,
+ -0.999769f, -0.999771f, -0.999774f, -0.999776f, -0.999778f, -0.999780f, -0.999782f, -0.999784f,
+ -0.999786f, -0.999788f, -0.999790f, -0.999792f, -0.999793f, -0.999795f, -0.999797f, -0.999799f,
+ -0.999801f, -0.999803f, -0.999805f, -0.999807f, -0.999809f, -0.999811f, -0.999812f, -0.999814f,
+ -0.999816f, -0.999818f, -0.999820f, -0.999822f, -0.999823f, -0.999825f, -0.999827f, -0.999829f,
+ -0.999831f, -0.999832f, -0.999834f, -0.999836f, -0.999838f, -0.999839f, -0.999841f, -0.999843f,
+ -0.999844f, -0.999846f, -0.999848f, -0.999849f, -0.999851f, -0.999853f, -0.999854f, -0.999856f,
+ -0.999858f, -0.999859f, -0.999861f, -0.999862f, -0.999864f, -0.999866f, -0.999867f, -0.999869f,
+ -0.999870f, -0.999872f, -0.999873f, -0.999875f, -0.999876f, -0.999878f, -0.999879f, -0.999881f,
+ -0.999882f, -0.999884f, -0.999885f, -0.999887f, -0.999888f, -0.999890f, -0.999891f, -0.999892f,
+ -0.999894f, -0.999895f, -0.999897f, -0.999898f, -0.999899f, -0.999901f, -0.999902f, -0.999903f,
+ -0.999905f, -0.999906f, -0.999907f, -0.999909f, -0.999910f, -0.999911f, -0.999913f, -0.999914f,
+ -0.999915f, -0.999916f, -0.999917f, -0.999919f, -0.999920f, -0.999921f, -0.999922f, -0.999924f,
+ -0.999925f, -0.999926f, -0.999927f, -0.999928f, -0.999929f, -0.999930f, -0.999932f, -0.999933f,
+ -0.999934f, -0.999935f, -0.999936f, -0.999937f, -0.999938f, -0.999939f, -0.999940f, -0.999941f,
+ -0.999942f, -0.999943f, -0.999944f, -0.999945f, -0.999946f, -0.999947f, -0.999948f, -0.999949f,
+ -0.999950f, -0.999951f, -0.999952f, -0.999953f, -0.999954f, -0.999955f, -0.999956f, -0.999957f,
+ -0.999958f, -0.999959f, -0.999959f, -0.999960f, -0.999961f, -0.999962f, -0.999963f, -0.999964f,
+ -0.999964f, -0.999965f, -0.999966f, -0.999967f, -0.999968f, -0.999968f, -0.999969f, -0.999970f,
+ -0.999971f, -0.999971f, -0.999972f, -0.999973f, -0.999973f, -0.999974f, -0.999975f, -0.999976f,
+ -0.999976f, -0.999977f, -0.999977f, -0.999978f, -0.999979f, -0.999979f, -0.999980f, -0.999981f,
+ -0.999981f, -0.999982f, -0.999982f, -0.999983f, -0.999983f, -0.999984f, -0.999985f, -0.999985f,
+ -0.999986f, -0.999986f, -0.999987f, -0.999987f, -0.999988f, -0.999988f, -0.999988f, -0.999989f,
+ -0.999989f, -0.999990f, -0.999990f, -0.999991f, -0.999991f, -0.999991f, -0.999992f, -0.999992f,
+ -0.999993f, -0.999993f, -0.999993f, -0.999994f, -0.999994f, -0.999994f, -0.999995f, -0.999995f,
+ -0.999995f, -0.999996f, -0.999996f, -0.999996f, -0.999996f, -0.999997f, -0.999997f, -0.999997f,
+ -0.999997f, -0.999998f, -0.999998f, -0.999998f, -0.999998f, -0.999998f, -0.999999f, -0.999999f,
+ -0.999999f, -0.999999f, -0.999999f, -0.999999f, -0.999999f, -0.999999f, -1.000000f, -1.000000f,
+ -1.000000f, -1.000000f, -1.000000f, -1.000000f, -1.000000f, -1.000000f, -1.000000f, -1.000000f
+};
+
+static const float *sinTables[17] = {
+ 0 , 0 , 0 , 0 ,
+ sinTable16 , sinTable32 , sinTable64 , sinTable128 ,
+ sinTable256 , sinTable512 , sinTable1024 , sinTable2048 ,
+ sinTable4096, sinTable8192, sinTable16384, sinTable32768,
+ sinTable65536
+};
+
+const float *getSineTable(int bits) {
+ assert((bits >= 4) && (bits <= 16));
+
+ return sinTables[bits];
+}
+
+} // End of namespace Common
diff --git a/common/sinetables.h b/common/sinetables.h
new file mode 100644
index 0000000000..28918838f4
--- /dev/null
+++ b/common/sinetables.h
@@ -0,0 +1,37 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef COMMON_SINETABLES_H
+#define COMMON_SINETABLES_H
+
+namespace Common {
+
+/**
+ * Get a sine table with the specified bit precision
+ *
+ * @param bits Precision of the table, which must be in range [4, 16]
+ */
+const float *getSineTable(int bits);
+
+} // End of namespace Common
+
+#endif // COMMON_SINETABLES_H
diff --git a/common/str.h b/common/str.h
index 8e07b6233d..5039130707 100644
--- a/common/str.h
+++ b/common/str.h
@@ -219,14 +219,14 @@ public:
* except that it stores the result in (variably sized) String
* instead of a fixed size buffer.
*/
- static Common::String format(const char *fmt, ...) GCC_PRINTF(1,2);
+ static String format(const char *fmt, ...) GCC_PRINTF(1,2);
/**
* Print formatted data into a String object. Similar to vsprintf,
* except that it stores the result in (variably sized) String
* instead of a fixed size buffer.
*/
- static Common::String vformat(const char *fmt, va_list args);
+ static String vformat(const char *fmt, va_list args);
public:
typedef char * iterator;
@@ -293,7 +293,7 @@ extern char *trim(char *t);
* @param sep character used to separate path components
* @return The last component of the path.
*/
-Common::String lastPathComponent(const Common::String &path, const char sep);
+String lastPathComponent(const String &path, const char sep);
/**
* Normalize a given path to a canonical form. In particular:
@@ -307,7 +307,7 @@ Common::String lastPathComponent(const Common::String &path, const char sep);
* @param sep the separator token (usually '/' on Unix-style systems, or '\\' on Windows based stuff)
* @return the normalized path
*/
-Common::String normalizePath(const Common::String &path, const char sep);
+String normalizePath(const String &path, const char sep);
/**
diff --git a/common/stream.cpp b/common/stream.cpp
index 60b40d0df2..30b3bca497 100644
--- a/common/stream.cpp
+++ b/common/stream.cpp
@@ -20,6 +20,7 @@
*
*/
+#include "common/ptr.h"
#include "common/stream.h"
#include "common/memstream.h"
#include "common/substream.h"
@@ -258,8 +259,7 @@ namespace {
*/
class BufferedReadStream : virtual public ReadStream {
protected:
- ReadStream *_parentStream;
- DisposeAfterUse::Flag _disposeParentStream;
+ DisposablePtr<ReadStream> _parentStream;
byte *_buf;
uint32 _pos;
bool _eos; // end of stream
@@ -278,8 +278,7 @@ public:
};
BufferedReadStream::BufferedReadStream(ReadStream *parentStream, uint32 bufSize, DisposeAfterUse::Flag disposeParentStream)
- : _parentStream(parentStream),
- _disposeParentStream(disposeParentStream),
+ : _parentStream(parentStream, disposeParentStream),
_pos(0),
_eos(false),
_bufSize(0),
@@ -291,8 +290,6 @@ BufferedReadStream::BufferedReadStream(ReadStream *parentStream, uint32 bufSize,
}
BufferedReadStream::~BufferedReadStream() {
- if (_disposeParentStream)
- delete _parentStream;
delete[] _buf;
}
diff --git a/common/substream.h b/common/substream.h
index f4f79ff02f..7e67389da1 100644
--- a/common/substream.h
+++ b/common/substream.h
@@ -23,6 +23,7 @@
#ifndef COMMON_SUBSTREAM_H
#define COMMON_SUBSTREAM_H
+#include "common/ptr.h"
#include "common/stream.h"
#include "common/types.h"
@@ -38,24 +39,18 @@ namespace Common {
*/
class SubReadStream : virtual public ReadStream {
protected:
- ReadStream *_parentStream;
- DisposeAfterUse::Flag _disposeParentStream;
+ DisposablePtr<ReadStream> _parentStream;
uint32 _pos;
uint32 _end;
bool _eos;
public:
SubReadStream(ReadStream *parentStream, uint32 end, DisposeAfterUse::Flag disposeParentStream = DisposeAfterUse::NO)
- : _parentStream(parentStream),
- _disposeParentStream(disposeParentStream),
+ : _parentStream(parentStream, disposeParentStream),
_pos(0),
_end(end),
_eos(false) {
assert(parentStream);
}
- ~SubReadStream() {
- if (_disposeParentStream)
- delete _parentStream;
- }
virtual bool eos() const { return _eos | _parentStream->eos(); }
virtual bool err() const { return _parentStream->err(); }
diff --git a/common/system.cpp b/common/system.cpp
index 8d5bfd39cd..59210544ab 100644
--- a/common/system.cpp
+++ b/common/system.cpp
@@ -28,6 +28,7 @@
#include "common/savefile.h"
#include "common/str.h"
#include "common/taskbar.h"
+#include "common/updates.h"
#include "common/textconsole.h"
#include "backends/audiocd/default/default-audiocd.h"
@@ -44,6 +45,9 @@ OSystem::OSystem() {
#if defined(USE_TASKBAR)
_taskbarManager = 0;
#endif
+#if defined(USE_UPDATES)
+ _updateManager = 0;
+#endif
_fsFactory = 0;
}
@@ -62,6 +66,11 @@ OSystem::~OSystem() {
_taskbarManager = 0;
#endif
+#if defined(USE_UPDATES)
+ delete _updateManager;
+ _updateManager = 0;
+#endif
+
delete _savefileManager;
_savefileManager = 0;
diff --git a/common/system.h b/common/system.h
index 9b833c5b1a..413fe326a7 100644
--- a/common/system.h
+++ b/common/system.h
@@ -45,6 +45,9 @@ class String;
#if defined(USE_TASKBAR)
class TaskbarManager;
#endif
+#if defined(USE_UPDATES)
+class UpdateManager;
+#endif
class TimerManager;
class SeekableReadStream;
class WriteStream;
@@ -161,6 +164,15 @@ protected:
Common::TaskbarManager *_taskbarManager;
#endif
+#if defined(USE_UPDATES)
+ /**
+ * No default value is provided for _updateManager by OSystem.
+ *
+ * @note _updateManager is deleted by the OSystem destructor.
+ */
+ Common::UpdateManager *_updateManager;
+#endif
+
/**
* No default value is provided for _fsFactory by OSystem.
*
@@ -391,6 +403,11 @@ public:
* factor 2x, too, just like the game graphics. But if it has a
* cursorTargetScale of 2, then it shouldn't be scaled again by
* the game graphics scaler.
+ *
+ * On a note for OSystem users here. We do not require our graphics
+ * to be thread safe and in fact most/all backends using OpenGL are
+ * not. So do *not* try to call any of these functions from a timer
+ * and/or audio callback (like readBuffer of AudioStreams).
*/
//@{
@@ -1071,6 +1088,18 @@ public:
}
#endif
+#if defined(USE_UPDATES)
+ /**
+ * Returns the UpdateManager, used to handle auto-updating,
+ * and updating of ScummVM in general.
+ *
+ * @return the UpdateManager for the current architecture
+ */
+ virtual Common::UpdateManager *getUpdateManager() {
+ return _updateManager;
+ }
+#endif
+
/**
* Returns the FilesystemFactory object, depending on the current architecture.
*
diff --git a/common/taskbar.h b/common/taskbar.h
index 023227e5e0..ba99d4e487 100644
--- a/common/taskbar.h
+++ b/common/taskbar.h
@@ -18,8 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
*/
#ifndef COMMON_TASKBAR_MANAGER_H
@@ -124,6 +122,18 @@ public:
*/
virtual void addRecent(const String &name, const String &description) {}
+ /**
+ * Notifies the user an error occured through the taskbar icon
+ *
+ * This will for example show the taskbar icon as red (using progress of 100% and an error state)
+ * on Windows, and set the launcher icon in the urgent state on Unity
+ */
+ virtual void notifyError() {}
+
+ /**
+ * Clears the error notification
+ */
+ virtual void clearError() {}
};
} // End of namespace Common
diff --git a/common/timer.h b/common/timer.h
index 40438f078c..3db32df76a 100644
--- a/common/timer.h
+++ b/common/timer.h
@@ -23,6 +23,7 @@
#define COMMON_TIMER_H
#include "common/scummsys.h"
+#include "common/str.h"
#include "common/noncopyable.h"
namespace Common {
@@ -43,9 +44,10 @@ public:
* @param proc the callback
* @param interval the interval in which the timer shall be invoked (in microseconds)
* @param refCon an arbitrary void pointer; will be passed to the timer callback
+ * @param id unique string id of the installed timer. Used by the event recorder
* @return true if the timer was installed successfully, false otherwise
*/
- virtual bool installTimerProc(TimerProc proc, int32 interval, void *refCon) = 0;
+ virtual bool installTimerProc(TimerProc proc, int32 interval, void *refCon, const Common::String &id) = 0;
/**
* Remove the given timer callback. It will not be invoked anymore,
diff --git a/common/tokenizer.cpp b/common/tokenizer.cpp
index 395ff0767a..46ba7a8d8b 100644
--- a/common/tokenizer.cpp
+++ b/common/tokenizer.cpp
@@ -53,4 +53,3 @@ String StringTokenizer::nextToken() {
}
} // End of namespace Common
-
diff --git a/common/translation.cpp b/common/translation.cpp
index 5c8a04352d..3570e8c5ae 100644
--- a/common/translation.cpp
+++ b/common/translation.cpp
@@ -19,7 +19,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
-#ifdef WIN32
+#if defined(WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
// winnt.h defines ARRAYSIZE, but we want our own one... - this is needed before including util.h
diff --git a/common/unarj.cpp b/common/unarj.cpp
index f45dddaa38..cccc330bb5 100644
--- a/common/unarj.cpp
+++ b/common/unarj.cpp
@@ -293,8 +293,8 @@ ArjHeader *readHeader(SeekableReadStream &stream) {
return NULL;
}
- Common::strlcpy(header.filename, (const char *)&headData[header.firstHdrSize], ARJ_FILENAME_MAX);
- Common::strlcpy(header.comment, (const char *)&headData[header.firstHdrSize + strlen(header.filename) + 1], ARJ_COMMENT_MAX);
+ strlcpy(header.filename, (const char *)&headData[header.firstHdrSize], ARJ_FILENAME_MAX);
+ strlcpy(header.comment, (const char *)&headData[header.firstHdrSize + strlen(header.filename) + 1], ARJ_COMMENT_MAX);
// Process extended headers, if any
uint16 extHeaderSize;
@@ -692,15 +692,15 @@ void ArjDecoder::decode_f(int32 origsize) {
typedef HashMap<String, ArjHeader*, IgnoreCase_Hash, IgnoreCase_EqualTo> ArjHeadersMap;
-class ArjArchive : public Common::Archive {
+class ArjArchive : public Archive {
ArjHeadersMap _headers;
- Common::String _arjFilename;
+ String _arjFilename;
public:
ArjArchive(const String &name);
virtual ~ArjArchive();
- // Common::Archive implementation
+ // Archive implementation
virtual bool hasFile(const String &name);
virtual int listMembers(ArchiveMemberList &list);
virtual ArchiveMemberPtr getMember(const String &name);
@@ -708,7 +708,7 @@ public:
};
ArjArchive::ArjArchive(const String &filename) : _arjFilename(filename) {
- Common::File arjFile;
+ File arjFile;
if (!arjFile.open(_arjFilename)) {
warning("ArjArchive::ArjArchive(): Could not find the archive file");
@@ -775,7 +775,7 @@ SeekableReadStream *ArjArchive::createReadStreamForMember(const String &name) co
ArjHeader *hdr = _headers[name];
- Common::File archiveFile;
+ File archiveFile;
archiveFile.open(_arjFilename);
archiveFile.seek(hdr->pos, SEEK_SET);
@@ -794,8 +794,8 @@ SeekableReadStream *ArjArchive::createReadStreamForMember(const String &name) co
// If reading from archiveFile directly is too slow to be usable,
// maybe the filesystem code should instead wrap its files
// in a BufferedReadStream.
- decoder->_compressed = Common::wrapBufferedReadStream(&archiveFile, 4096, DisposeAfterUse::NO);
- decoder->_outstream = new Common::MemoryWriteStream(uncompressedData, hdr->origSize);
+ decoder->_compressed = wrapBufferedReadStream(&archiveFile, 4096, DisposeAfterUse::NO);
+ decoder->_outstream = new MemoryWriteStream(uncompressedData, hdr->origSize);
if (hdr->method == 1 || hdr->method == 2 || hdr->method == 3)
decoder->decode(hdr->origSize);
@@ -805,7 +805,7 @@ SeekableReadStream *ArjArchive::createReadStreamForMember(const String &name) co
delete decoder;
}
- return new Common::MemoryReadStream(uncompressedData, hdr->origSize, DisposeAfterUse::YES);
+ return new MemoryReadStream(uncompressedData, hdr->origSize, DisposeAfterUse::YES);
}
Archive *makeArjArchive(const String &name) {
diff --git a/common/unzip.cpp b/common/unzip.cpp
index 91f352f40a..8650c91866 100644
--- a/common/unzip.cpp
+++ b/common/unzip.cpp
@@ -1458,11 +1458,11 @@ ZipArchive::~ZipArchive() {
unzClose(_zipFile);
}
-bool ZipArchive::hasFile(const Common::String &name) {
+bool ZipArchive::hasFile(const String &name) {
return (unzLocateFile(_zipFile, name.c_str(), 2) == UNZ_OK);
}
-int ZipArchive::listMembers(Common::ArchiveMemberList &list) {
+int ZipArchive::listMembers(ArchiveMemberList &list) {
int matches = 0;
int err = unzGoToFirstFile(_zipFile);
@@ -1488,7 +1488,7 @@ ArchiveMemberPtr ZipArchive::getMember(const String &name) {
return ArchiveMemberPtr(new GenericArchiveMember(name, this));
}
-Common::SeekableReadStream *ZipArchive::createReadStreamForMember(const Common::String &name) const {
+SeekableReadStream *ZipArchive::createReadStreamForMember(const String &name) const {
if (unzLocateFile(_zipFile, name.c_str(), 2) != UNZ_OK)
return 0;
@@ -1512,7 +1512,7 @@ Common::SeekableReadStream *ZipArchive::createReadStreamForMember(const Common::
return 0;
}
- return new Common::MemoryReadStream(buffer, fileInfo.uncompressed_size, DisposeAfterUse::YES);
+ return new MemoryReadStream(buffer, fileInfo.uncompressed_size, DisposeAfterUse::YES);
// FIXME: instead of reading all into a memory stream, we could
// instead create a new ZipStream class. But then we have to be
diff --git a/common/updates.h b/common/updates.h
new file mode 100644
index 0000000000..1e0babdf6d
--- /dev/null
+++ b/common/updates.h
@@ -0,0 +1,102 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef BACKENDS_UPDATES_ABSTRACT_H
+#define BACKENDS_UPDATES_ABSTRACT_H
+
+#if defined(USE_UPDATES)
+
+namespace Common {
+
+/**
+ * The UpdateManager allows configuring of the automatic update checking
+ * for systems that support it:
+ * - using Sparkle on MacOSX
+ * - using WinSparkle on Windows
+ *
+ * Most of the update checking is completely automated and this class only
+ * gives access to basic settings. It is mostly used by the GUI to set
+ * widgets state on the update page and for manually checking for updates
+ *
+ */
+class UpdateManager {
+public:
+ enum UpdateState {
+ kUpdateStateDisabled = 0,
+ kUpdateStateEnabled = 1,
+ kUpdateStateNotSupported = 2
+ };
+
+ enum UpdateInterval {
+ kUpdateIntervalNotSupported = 0,
+ kUpdateIntervalOneDay = 86400,
+ kUpdateIntervalOneWeek = 604800,
+ kUpdateIntervalOneMonth = 2628000 // average seconds per month (60*60*24*365)/12
+ };
+
+ UpdateManager() {}
+ virtual ~UpdateManager() {}
+
+ /**
+ * Checks manually if an update is available, showing progress UI to the user.
+ *
+ * By default, update checks are done silently on start.
+ * This allows to manually start an update check.
+ */
+ virtual void checkForUpdates() {}
+
+ /**
+ * Sets the automatic update checking state
+ *
+ * @param state The state.
+ */
+ virtual void setAutomaticallyChecksForUpdates(UpdateState state) {}
+
+ /**
+ * Gets the automatic update checking state
+ *
+ * @return kUpdateStateDisabled if automatic update checking is disabled,
+ * kUpdateStateEnabled if automatic update checking is enabled,
+ * kUpdateStateNotSupported if automatic update checking is not available
+ */
+ virtual UpdateState getAutomaticallyChecksForUpdates() { return kUpdateStateNotSupported; }
+
+ /**
+ * Sets the update checking interval.
+ *
+ * @param interval The interval.
+ */
+ virtual void setUpdateCheckInterval(UpdateInterval interval) {}
+
+ /**
+ * Gets the update check interval.
+ *
+ * @return the update check interval.
+ */
+ virtual UpdateInterval getUpdateCheckInterval() { return kUpdateIntervalNotSupported; }
+};
+
+} // End of namespace Common
+
+#endif
+
+#endif // BACKENDS_UPDATES_ABSTRACT_H
diff --git a/common/util.cpp b/common/util.cpp
index a7ec1a9de7..699950dac3 100644
--- a/common/util.cpp
+++ b/common/util.cpp
@@ -82,7 +82,7 @@ void hexdump(const byte *data, int len, int bytesPerLine, int startOffset) {
#pragma mark -
-bool parseBool(const Common::String &val, bool &valAsBool) {
+bool parseBool(const String &val, bool &valAsBool) {
if (val.equalsIgnoreCase("true") ||
val.equalsIgnoreCase("yes") ||
val.equals("1")) {
@@ -104,29 +104,29 @@ bool parseBool(const Common::String &val, bool &valAsBool) {
const LanguageDescription g_languages[] = {
- { "zh-cn"/*, "zh_CN"*/, "Chinese (China)", ZH_CNA },
- { "zh"/*, "zh_TW"*/, "Chinese (Taiwan)", ZH_TWN },
- { "cz"/*, "cs_CZ"*/, "Czech", CZ_CZE },
- { "nl"/*, "nl_NL"*/, "Dutch", NL_NLD },
- { "en"/*, "en"*/, "English", EN_ANY }, // Generic English (when only one game version exist)
- { "gb"/*, "en_GB"*/, "English (GB)", EN_GRB },
- { "us"/*, "en_US"*/, "English (US)", EN_USA },
- { "fr"/*, "fr_FR"*/, "French", FR_FRA },
- { "de"/*, "de_DE"*/, "German", DE_DEU },
- { "gr"/*, "el_GR"*/, "Greek", GR_GRE },
- { "he"/*, "he_IL"*/, "Hebrew", HE_ISR },
- { "hb"/*, "he_IL"*/, "Hebrew", HE_ISR }, // Deprecated
- { "hu"/*, "hu_HU"*/, "Hungarian", HU_HUN },
- { "it"/*, "it_IT"*/, "Italian", IT_ITA },
- { "jp"/*, "ja_JP"*/, "Japanese", JA_JPN },
- { "kr"/*, "ko_KR"*/, "Korean", KO_KOR },
- { "nb"/*, "nb_NO"*/, "Norwegian Bokm\xE5l", NB_NOR }, // TODO Someone should verify the unix locale
- { "pl"/*, "pl_PL"*/, "Polish", PL_POL },
- { "br"/*, "pt_BR"*/, "Portuguese", PT_BRA },
- { "ru"/*, "ru_RU"*/, "Russian", RU_RUS },
- { "es"/*, "es_ES"*/, "Spanish", ES_ESP },
- { "se"/*, "sv_SE"*/, "Swedish", SE_SWE },
- { 0/*, 0*/, 0, UNK_LANG }
+ { "zh-cn", "zh_CN", "Chinese (China)", ZH_CNA },
+ { "zh", "zh_TW", "Chinese (Taiwan)", ZH_TWN },
+ { "cz", "cs_CZ", "Czech", CZ_CZE },
+ { "nl", "nl_NL", "Dutch", NL_NLD },
+ { "en", "en", "English", EN_ANY }, // Generic English (when only one game version exist)
+ { "gb", "en_GB", "English (GB)", EN_GRB },
+ { "us", "en_US", "English (US)", EN_USA },
+ { "fr", "fr_FR", "French", FR_FRA },
+ { "de", "de_DE", "German", DE_DEU },
+ { "gr", "el_GR", "Greek", GR_GRE },
+ { "he", "he_IL", "Hebrew", HE_ISR },
+ { "hb", "he_IL", "Hebrew", HE_ISR }, // Deprecated
+ { "hu", "hu_HU", "Hungarian", HU_HUN },
+ { "it", "it_IT", "Italian", IT_ITA },
+ { "jp", "ja_JP", "Japanese", JA_JPN },
+ { "kr", "ko_KR", "Korean", KO_KOR },
+ { "nb", "nb_NO", "Norwegian Bokm\xE5l", NB_NOR }, // TODO Someone should verify the unix locale
+ { "pl", "pl_PL", "Polish", PL_POL },
+ { "br", "pt_BR", "Portuguese", PT_BRA },
+ { "ru", "ru_RU", "Russian", RU_RUS },
+ { "es", "es_ES", "Spanish", ES_ESP },
+ { "se", "sv_SE", "Swedish", SE_SWE },
+ { 0, 0, 0, UNK_LANG }
};
Language parseLanguage(const String &str) {
@@ -142,7 +142,7 @@ Language parseLanguage(const String &str) {
return UNK_LANG;
}
-/*Language parseLanguageFromLocale(const char *locale) {
+Language parseLanguageFromLocale(const char *locale) {
if (!locale || !*locale)
return UNK_LANG;
@@ -153,7 +153,7 @@ Language parseLanguage(const String &str) {
}
return UNK_LANG;
-}*/
+}
const char *getLanguageCode(Language id) {
const LanguageDescription *l = g_languages;
@@ -164,14 +164,14 @@ const char *getLanguageCode(Language id) {
return 0;
}
-/*const char *getLanguageLocale(Language id) {
+const char *getLanguageLocale(Language id) {
const LanguageDescription *l = g_languages;
for (; l->code; ++l) {
if (l->id == id)
return l->unixLocale;
}
return 0;
-}*/
+}
const char *getLanguageDescription(Language id) {
const LanguageDescription *l = g_languages;
@@ -271,6 +271,7 @@ const char *getPlatformDescription(Platform id) {
const RenderModeDescription g_renderModes[] = {
+ // I18N: Hercules is graphics card name
{ "hercGreen", _s("Hercules Green"), kRenderHercG },
{ "hercAmber", _s("Hercules Amber"), kRenderHercA },
{ "cga", "CGA", kRenderCGA },
@@ -402,4 +403,3 @@ void updateGameGUIOptions(const uint32 options, const String &langOption) {
}
} // End of namespace Common
-
diff --git a/common/util.h b/common/util.h
index cd890c970f..bccb17c6da 100644
--- a/common/util.h
+++ b/common/util.h
@@ -58,6 +58,11 @@ template<typename T> inline void SWAP(T &a, T &b) { T tmp = a; a = b; b = tmp; }
*/
#define ARRAYSIZE(x) ((int)(sizeof(x) / sizeof(x[0])))
+/**
+ * Compute a pointer to one past the last element of an array.
+ */
+#define ARRAYEND(x) ((x) + ARRAYSIZE((x)))
+
/**
* @def SCUMMVM_CURRENT_FUNCTION
@@ -96,7 +101,7 @@ extern void hexdump(const byte * data, int len, int bytesPerLine = 16, int start
* @param[out] valAsBool the parsing result
* @return true if the string parsed correctly, false if an error occurred.
*/
-bool parseBool(const Common::String &val, bool &valAsBool);
+bool parseBool(const String &val, bool &valAsBool);
/**
* List of game language.
@@ -129,9 +134,9 @@ enum Language {
struct LanguageDescription {
const char *code;
- //const char *unixLocale;
+ const char *unixLocale;
const char *description;
- Common::Language id;
+ Language id;
};
extern const LanguageDescription g_languages[];
@@ -139,13 +144,11 @@ extern const LanguageDescription g_languages[];
/** Convert a string containing a language name into a Language enum value. */
extern Language parseLanguage(const String &str);
+extern Language parseLanguageFromLocale(const char *locale);
extern const char *getLanguageCode(Language id);
+extern const char *getLanguageLocale(Language id);
extern const char *getLanguageDescription(Language id);
-// locale <-> Language conversion is disabled, since it is not used currently
-/*extern const char *getLanguageLocale(Language id);
-extern Language parseLanguageFromLocale(const char *locale);*/
-
/**
* List of game platforms. Specifying a platform for a target can be used to
* give the game engines a hint for which platform the game data file are.
@@ -182,7 +185,7 @@ struct PlatformDescription {
const char *code2;
const char *abbrev;
const char *description;
- Common::Platform id;
+ Platform id;
};
extern const PlatformDescription g_platforms[];
@@ -211,7 +214,7 @@ enum RenderMode {
struct RenderModeDescription {
const char *code;
const char *description;
- Common::RenderMode id;
+ RenderMode id;
};
extern const RenderModeDescription g_renderModes[];
diff --git a/common/winexe_pe.cpp b/common/winexe_pe.cpp
index e5f6a24bcd..6c0f9c9962 100644
--- a/common/winexe_pe.cpp
+++ b/common/winexe_pe.cpp
@@ -133,7 +133,7 @@ void PEResources::parseResourceLevel(Section &section, uint32 offset, int level)
_exe->seek(section.offset + (value & 0x7fffffff));
// Read in the name, truncating from unicode to ascii
- Common::String name;
+ String name;
uint16 nameLength = _exe->readUint16LE();
while (nameLength--)
name += (char)(_exe->readUint16LE() & 0xff);
diff --git a/common/xmlparser.cpp b/common/xmlparser.cpp
index 623619914a..f768e44382 100644
--- a/common/xmlparser.cpp
+++ b/common/xmlparser.cpp
@@ -81,7 +81,7 @@ void XMLParser::close() {
_stream = 0;
}
-bool XMLParser::parserError(const Common::String &errStr) {
+bool XMLParser::parserError(const String &errStr) {
_state = kParserError;
const int startPosition = _stream->pos();
diff --git a/common/xmlparser.h b/common/xmlparser.h
index d75dc0e4a9..93433b7132 100644
--- a/common/xmlparser.h
+++ b/common/xmlparser.h
@@ -275,7 +275,7 @@ protected:
* Parser error always returns "false" so we can pass the return value
* directly and break down the parsing.
*/
- bool parserError(const Common::String &errStr);
+ bool parserError(const String &errStr);
/**
* Skips spaces/whitelines etc.
diff --git a/common/zlib.cpp b/common/zlib.cpp
index b047586af0..86c618830e 100644
--- a/common/zlib.cpp
+++ b/common/zlib.cpp
@@ -24,6 +24,7 @@
#define FORBIDDEN_SYMBOL_ALLOW_ALL
#include "common/zlib.h"
+#include "common/ptr.h"
#include "common/util.h"
#include "common/stream.h"
@@ -53,7 +54,7 @@ bool uncompress(byte *dst, unsigned long *dstLen, const byte *src, unsigned long
* other SeekableReadStream and will then provide on-the-fly decompression support.
* Assumes the compressed data to be in gzip format.
*/
-class GZipReadStream : public Common::SeekableReadStream {
+class GZipReadStream : public SeekableReadStream {
protected:
enum {
BUFSIZE = 16384 // 1 << MAX_WBITS
@@ -61,7 +62,7 @@ protected:
byte _buf[BUFSIZE];
- Common::SeekableReadStream *_wrapped;
+ ScopedPtr<SeekableReadStream> _wrapped;
z_stream _stream;
int _zlibErr;
uint32 _pos;
@@ -70,13 +71,9 @@ protected:
public:
- GZipReadStream(Common::SeekableReadStream *w) : _wrapped(w) {
+ GZipReadStream(SeekableReadStream *w) : _wrapped(w), _stream() {
assert(w != 0);
- _stream.zalloc = Z_NULL;
- _stream.zfree = Z_NULL;
- _stream.opaque = Z_NULL;
-
// Verify file header is correct
w->seek(0, SEEK_SET);
uint16 header = w->readUint16BE();
@@ -111,7 +108,6 @@ public:
~GZipReadStream() {
inflateEnd(&_stream);
- delete _wrapped;
}
bool err() const { return (_zlibErr != Z_OK) && (_zlibErr != Z_STREAM_END); }
@@ -201,14 +197,14 @@ public:
* other WriteStream and will then provide on-the-fly compression support.
* The compressed data is written in the gzip format.
*/
-class GZipWriteStream : public Common::WriteStream {
+class GZipWriteStream : public WriteStream {
protected:
enum {
BUFSIZE = 16384 // 1 << MAX_WBITS
};
byte _buf[BUFSIZE];
- Common::WriteStream *_wrapped;
+ ScopedPtr<WriteStream> _wrapped;
z_stream _stream;
int _zlibErr;
@@ -228,11 +224,8 @@ protected:
}
public:
- GZipWriteStream(Common::WriteStream *w) : _wrapped(w) {
+ GZipWriteStream(WriteStream *w) : _wrapped(w), _stream() {
assert(w != 0);
- _stream.zalloc = Z_NULL;
- _stream.zfree = Z_NULL;
- _stream.opaque = Z_NULL;
// Adding 16 to windowBits indicates to zlib that it is supposed to
// write gzip headers. This feature was added in zlib 1.2.0.4,
@@ -255,7 +248,6 @@ public:
~GZipWriteStream() {
finalize();
deflateEnd(&_stream);
- delete _wrapped;
}
bool err() const {
@@ -308,7 +300,7 @@ public:
#endif // USE_ZLIB
-Common::SeekableReadStream *wrapCompressedReadStream(Common::SeekableReadStream *toBeWrapped) {
+SeekableReadStream *wrapCompressedReadStream(SeekableReadStream *toBeWrapped) {
#if defined(USE_ZLIB)
if (toBeWrapped) {
uint16 header = toBeWrapped->readUint16BE();
@@ -323,7 +315,7 @@ Common::SeekableReadStream *wrapCompressedReadStream(Common::SeekableReadStream
return toBeWrapped;
}
-Common::WriteStream *wrapCompressedWriteStream(Common::WriteStream *toBeWrapped) {
+WriteStream *wrapCompressedWriteStream(WriteStream *toBeWrapped) {
#if defined(USE_ZLIB)
if (toBeWrapped)
return new GZipWriteStream(toBeWrapped);
diff --git a/configure b/configure
index fbcd2147c6..9c1ecebea8 100755
--- a/configure
+++ b/configure
@@ -85,6 +85,7 @@ add_engine agos "AGOS" yes "agos2"
add_engine agos2 "AGOS 2 games" yes
add_engine cge "CGE" no
add_engine cine "Cinematique evo 1" yes
+add_engine composer "Magic Composer" no
add_engine cruise "Cinematique evo 2" yes
add_engine draci "Dragon History" yes
add_engine drascula "Drascula: The Vampire Strikes Back" yes
@@ -119,10 +120,9 @@ add_engine testbed "TestBed: the Testing framework" no
add_engine tinsel "Tinsel" yes
add_engine toon "Toonstruck" yes
add_engine touche "Touche: The Adventures of the Fifth Musketeer" yes
-add_engine tsage "Ringworld: Revenge Of The Patriarch" no
+add_engine tsage "Ringworld: Revenge Of The Patriarch" yes
add_engine tucker "Bud Tucker in Double Trouble" yes
-
#
# Default settings
#
@@ -136,6 +136,7 @@ _alsa=auto
_seq_midi=auto
_timidity=auto
_zlib=auto
+_sparkle=auto
_png=auto
_theoradec=auto
_faad=auto
@@ -144,6 +145,7 @@ _opengl=auto
_opengles=auto
_readline=auto
_taskbar=yes
+_updates=no
_libunity=auto
# Default option behaviour yes/no
_debug_build=auto
@@ -155,6 +157,7 @@ _build_scalers=yes
_build_hq_scalers=yes
_enable_prof=no
_global_constructors=no
+_bink=yes
# Default vkeybd/keymapper options
_vkeybd=no
_keymapper=no
@@ -191,7 +194,6 @@ _posix=no
_endian=unknown
_need_memalign=yes
_have_x86=no
-_arm_asm=no
@@ -704,7 +706,7 @@ Usage: $0 [OPTIONS]...
Configuration:
-h, --help display this help and exit
- --backend=BACKEND backend to build (android, dc, dingux, ds, gp2x, gph,
+ --backend=BACKEND backend to build (android, bada, dc, dingux, ds, gp2x, gph,
iphone, linuxmoto, maemo, n64, null, openpandora, ps2,
psp, samsungtv, sdl, webos, wii, wince) [sdl]
@@ -733,6 +735,7 @@ Fine tuning of the installation directories:
Special configuration feature:
--host=HOST cross-compile to target HOST (arm-linux, ...)
special targets: android for Android
+ bada for Samsung BADA
caanoo for Caanoo
dingux for Dingux
dreamcast for Sega Dreamcast
@@ -773,9 +776,11 @@ Optional Features:
--disable-hq-scalers exclude HQ2x and HQ3x scalers
--disable-translation don't build support for translated messages
--disable-taskbar don't build support for taskbar and launcher integration
+ --enable-updates build support for updates
--enable-text-console use text console instead of graphical console
--enable-verbose-build enable regular echoing of commands during build
process
+ --disable-bink don't build with Bink video support
Optional Libraries:
--with-alsa-prefix=DIR Prefix where alsa is installed (optional)
@@ -813,6 +818,9 @@ Optional Libraries:
installed (optional)
--disable-fluidsynth disable fluidsynth MIDI driver [autodetect]
+ --with-sparkle-prefix=DIR Prefix where sparkle is installed (MacOSX only - optional)
+ --disable-sparkle disable sparkle automatic update support [MacOSX only - autodetect]
+
--with-sdl-prefix=DIR Prefix where the sdl-config script is
installed (optional)
@@ -861,6 +869,8 @@ for ac_option in $@; do
--disable-mad) _mad=no ;;
--enable-zlib) _zlib=yes ;;
--disable-zlib) _zlib=no ;;
+ --enable-sparkle) _sparkle=yes ;;
+ --disable-sparkle) _sparkle=no ;;
--enable-nasm) _nasm=yes ;;
--disable-nasm) _nasm=no ;;
--disable-png) _png=no ;;
@@ -874,10 +884,14 @@ for ac_option in $@; do
--disable-readline) _readline=no ;;
--enable-taskbar) _taskbar=yes ;;
--disable-taskbar) _taskbar=no ;;
+ --enable-updates) _updates=yes ;;
+ --disable-updates) _updates=no ;;
--enable-libunity) _libunity=yes ;;
--disable-libunity) _libunity=no ;;
--enable-opengl) _opengl=yes ;;
--disable-opengl) _opengl=no ;;
+ --enable-bink) _bink=yes ;;
+ --disable-bink) _bink=no ;;
--enable-verbose-build) _verbose_build=yes ;;
--enable-plugins) _dynamic_modules=yes ;;
--default-dynamic) _plugins_default=dynamic ;;
@@ -946,6 +960,11 @@ for ac_option in $@; do
ZLIB_CFLAGS="-I$arg/include"
ZLIB_LIBS="-L$arg/lib"
;;
+ --with-sparkle-prefix=*)
+ arg=`echo $ac_option | cut -d '=' -f 2`
+ SPARKLE_CFLAGS="-F$arg"
+ SPARKLE_LIBS="-F$arg"
+ ;;
--with-readline-prefix=*)
arg=`echo $ac_option | cut -d '=' -f 2`
READLINE_CFLAGS="-I$arg/include"
@@ -1052,6 +1071,16 @@ arm-riscos)
_host_os=riscos
_host_cpu=arm
;;
+bada)
+ _host_os=bada
+ if test "$_debug_build" = yes; then
+ _host_cpu=i686
+ _host_alias=i686-mingw32
+ else
+ _host_cpu=arm
+ _host_alias=arm-samsung-nucleuseabi
+ fi
+ ;;
caanoo)
_host_os=gph-linux
_host_cpu=arm
@@ -1139,12 +1168,12 @@ ps3)
_host_os=ps3
_host_cpu=ppc
_host_alias=powerpc64-ps3-elf
-
+
# The prefix is always the same on PS3 so we hardcode the default
# here. It is still possible to define a custom prefix which is
# needed when packaging the app with a user-specific app ID.
test "x$prefix" = xNONE && prefix=/dev_hdd0/game/SCUM12000/USRDIR
- # PS3 apps are installed into app-specific directories. The
+ # PS3 apps are installed into app-specific directories. The
# default directory structure of ScummVM makes no sense here so we
# hardcode PS3 specific directories here.
datarootdir='${prefix}/data'
@@ -1169,7 +1198,7 @@ webos)
# here. It is still possible to define a custom prefix which is
# needed when packaging the app with a user-specific app ID.
test "x$prefix" = xNONE && prefix=/media/cryptofs/apps/usr/palm/applications/org.scummvm.scummvm
- # WebOS apps are installed into app-specific directories. The
+ # WebOS apps are installed into app-specific directories. The
# default directory structure of ScummVM makes no sense here so we
# hardcode WebOS specific directories here.
datarootdir='${prefix}/data'
@@ -1274,6 +1303,12 @@ android)
exit 1
fi
;;
+bada)
+ if test -z "$BADA_SDK"; then
+ echo "Please set BADA_SDK in your environment. export BADA_SDK=<path to Bada SDK>"
+ exit 1
+ fi
+ ;;
ds | gamecube | wii)
if test -z "$DEVKITPRO"; then
echo "Please set DEVKITPRO in your environment. export DEVKITPRO=<path to devkitPRO>"
@@ -1490,7 +1525,7 @@ if test "$have_gcc" = yes ; then
case $_host_os in
# newlib-based system include files suppress non-C89 function
# declarations under __STRICT_ANSI__
- amigaos* | android | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | wii | wince )
+ amigaos* | android | bada | dreamcast | ds | gamecube | mingw* | n64 | psp | ps2 | ps3 | wii | wince )
;;
*)
CXXFLAGS="$CXXFLAGS -ansi"
@@ -1668,38 +1703,40 @@ echo "$_need_memalign"
define_in_config_h_if_yes $_need_memalign 'SCUMM_NEED_ALIGNMENT'
#
-# Check whether we can use x86 asm routines
+# Check the CPU architecture
#
-echo_n "Compiling for x86... "
+echo_n "Checking host CPU architecture... "
case $_host_cpu in
- i386|i486|i586|i686)
+ arm*)
+ echo "ARM"
+ define_in_config_if_yes yes 'USE_ARM_SCALER_ASM'
+ define_in_config_if_yes yes 'USE_ARM_SOUND_ASM'
+ define_in_config_if_yes yes 'USE_ARM_SMUSH_ASM'
+ define_in_config_if_yes yes 'USE_ARM_GFX_ASM'
+ define_in_config_if_yes yes 'USE_ARM_COSTUME_ASM'
+
+ DEFINES="$DEFINES -DARM_TARGET"
+ ;;
+ i[3-6]86)
+ echo "x86"
_have_x86=yes
+ define_in_config_h_if_yes $_have_x86 'HAVE_X86'
;;
- *)
- _have_x86=no
+ mips*)
+ echo "MIPS"
+ DEFINES="$DEFINES -DMIPS_TARGET"
;;
-esac
-echo "$_have_x86"
-define_in_config_h_if_yes $_have_x86 'HAVE_X86'
-
-#
-# Check whether to use optimized ARM asm
-#
-echo_n "Compiling for ARM... "
-case $_host_cpu in
- arm*)
- _arm_asm=yes
+ ppc*)
+ echo "PowerPC"
+ DEFINES="$DEFINES -DPPC_TARGET"
+ ;;
+ x86_64)
+ echo "x86_64"
;;
*)
- _arm_asm=no
+ echo "unknown ($_host_cpu)"
;;
esac
-echo "$_arm_asm"
-define_in_config_if_yes "$_arm_asm" 'USE_ARM_SCALER_ASM'
-define_in_config_if_yes "$_arm_asm" 'USE_ARM_SOUND_ASM'
-define_in_config_if_yes "$_arm_asm" 'USE_ARM_SMUSH_ASM'
-define_in_config_if_yes "$_arm_asm" 'USE_ARM_GFX_ASM'
-define_in_config_if_yes "$_arm_asm" 'USE_ARM_COSTUME_ASM'
#
@@ -1756,6 +1793,16 @@ case $_host_os in
add_line_to_config_mk "ANDROID_SDK = $ANDROID_SDK"
_seq_midi=no
;;
+ bada)
+ BADA_SDK_ROOT="`cygpath -m ${BADA_SDK}`"
+ add_line_to_config_mk "BADA_SDK = $BADA_SDK"
+ add_line_to_config_mk "BADA_SDK_ROOT = $BADA_SDK_ROOT"
+
+ # assume dependencies have been installed in cygwin's /usr/local
+ CYGWIN_USR_LOCAL="`cygpath -m /usr/local`"
+ LDFLAGS="$LDFLAGS -L${CYGWIN_USR_LOCAL}/lib"
+ CXXFLAGS="$CXXFLAGS -I${CYGWIN_USR_LOCAL}/include"
+ ;;
beos*)
DEFINES="$DEFINES -DSYSTEM_NOT_SUPPORTING_D_TYPE"
# Needs -lbind -lsocket for the timidity MIDI driver
@@ -1883,7 +1930,7 @@ case $_host_os in
ps3)
# Force use of SDL from the ps3 toolchain
_sdlpath="$PS3DEV/portlibs/ppu:$PS3DEV/portlibs/ppu/bin"
-
+
DEFINES="$DEFINES -DPLAYSTATION3"
CXXFLAGS="$CXXFLAGS -mcpu=cell -mminimal-toc -I$PS3DEV/psl1ght/ppu/include -I$PS3DEV/portlibs/ppu/include"
LDFLAGS="$LDFLAGS -L$PS3DEV/psl1ght/ppu/lib -L$PS3DEV/portlibs/ppu/lib"
@@ -1982,6 +2029,22 @@ if test -n "$_host"; then
arm-riscos|linupy)
DEFINES="$DEFINES -DLINUPY"
;;
+ bada)
+ _unix=yes
+ _backend="bada"
+ _port_mk="backends/platform/bada/bada.mk"
+ if test "$_debug_build" = yes; then
+ _arm_asm=no
+ else
+ _arm_asm=yes
+ fi
+ _taskbar=no
+ _build_scalers=no
+ _seq_midi=no
+ _mt32emu=no
+ _timidity=no
+ _vkeybd=yes
+ ;;
bfin*)
;;
caanoo)
@@ -2066,6 +2129,7 @@ if test -n "$_host"; then
gamecube)
_backend="wii"
_build_scalers=no
+ _vkeybd=yes
_mt32emu=no
_port_mk="backends/platform/wii/wii.mk"
add_line_to_config_mk 'GAMECUBE = 1'
@@ -2078,7 +2142,7 @@ if test -n "$_host"; then
;;
gp2x)
# This uses the GPH backend.
- DEFINES="$DEFINES -DGPH_DEVICE"
+ DEFINES="$DEFINES -DGPH_DEVICE"
DEFINES="$DEFINES -DGP2X"
DEFINES="$DEFINES -DREDUCE_MEMORY_USAGE"
if test "$_debug_build" = yes; then
@@ -2280,6 +2344,7 @@ if test -n "$_host"; then
wii)
_backend="wii"
_build_scalers=no
+ _vkeybd=yes
_port_mk="backends/platform/wii/wii.mk"
add_line_to_config_mk 'GAMECUBE = 0'
add_line_to_config_h '#define AUDIO_REVERSE_STEREO'
@@ -2313,6 +2378,34 @@ case $_backend in
CXXFLAGS="$CXXFLAGS -Wa,--noexecstack"
LDFLAGS="$LDFLAGS -Wl,-z,noexecstack"
;;
+ bada)
+ # dirent.h not available. NONSTANDARD_PORT==ensure portdefs.h is included
+ DEFINES="$DEFINES -DBADA -DDISABLE_STDIO_FILESTREAM -DNONSTANDARD_PORT"
+ DEFINES="$DEFINES -DNO_STDERR_STDOUT"
+ DEFINES="$DEFINES -DDISABLE_COMMAND_LINE"
+ INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/bada '
+ INCLUDES="$INCLUDES "'-I$(BADA_SDK)/include'
+ INCLUDES="$INCLUDES "'-I$(BADA_SDK_ROOT)/Include'
+ if test "$_debug_build" = yes; then
+ # debug using with the simulator
+ CXXFLAGS="$CXXFLAGS -D_DEBUG -DSHP -DBUILD_DLL -fmessage-length=0"
+ else
+ # created a shared library for inclusion via the eclipse build
+ CXXFLAGS="$CXXFLAGS -DSHP"
+ CXXFLAGS="$CXXFLAGS -fpic"
+ CXXFLAGS="$CXXFLAGS -fshort-wchar"
+ CXXFLAGS="$CXXFLAGS -mcpu=cortex-a8"
+ CXXFLAGS="$CXXFLAGS -mfpu=vfpv3"
+ CXXFLAGS="$CXXFLAGS -mfloat-abi=hard"
+ CXXFLAGS="$CXXFLAGS -mlittle-endian"
+ CXXFLAGS="$CXXFLAGS -mthumb-interwork"
+ CXXFLAGS="$CXXFLAGS -Wno-psabi"
+ CXXFLAGS="$CXXFLAGS -fno-strict-aliasing"
+ CXXFLAGS="$CXXFLAGS -fno-short-enums"
+ fi
+ HOSTEXEPRE=lib
+ HOSTEXEEXT=.a
+ ;;
dc)
INCLUDES="$INCLUDES "'-I$(srcdir)/backends/platform/dc'
INCLUDES="$INCLUDES "'-isystem $(ronindir)/include'
@@ -2452,7 +2545,7 @@ esac
# Enable 16bit support only for backends which support it
#
case $_backend in
- android | dingux | dreamcast | gph | openpandora | psp | samsungtv | sdl | webos | wii)
+ android | bada | dingux | dreamcast | gph | openpandora | psp | samsungtv | sdl | webos | wii)
if test "$_16bit" = auto ; then
_16bit=yes
else
@@ -2560,7 +2653,9 @@ POST_OBJS_FLAGS := -Wl,--no-whole-archive
;;
ds)
_elf_loader=yes
- DEFINES="$DEFINES -DARM_TARGET -DELF_LOADER_CXA_ATEXIT -DUNCACHED_PLUGINS -DELF_NO_MEM_MANAGER"
+ DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
+ DEFINES="$DEFINES -DUNCACHED_PLUGINS"
+ DEFINES="$DEFINES -DELF_NO_MEM_MANAGER"
_mak_plugins='
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/ds/plugin.ld -mthumb-interwork -mno-fpu
'
@@ -2578,7 +2673,8 @@ POST_OBJS_FLAGS := -Wl,-no-whole-archive
;;
gamecube | wii)
_elf_loader=yes
- DEFINES="$DEFINES -DPPC_TARGET -DELF_LOADER_CXA_ATEXIT -DUNCACHED_PLUGINS"
+ DEFINES="$DEFINES -DELF_LOADER_CXA_ATEXIT"
+ DEFINES="$DEFINES -DUNCACHED_PLUGINS"
_mak_plugins='
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/wii/plugin.ld
'
@@ -2631,7 +2727,6 @@ POST_OBJS_FLAGS := -Wl,--export-all-symbols -Wl,--no-whole-archive -Wl,--out-im
;;
ps2)
_elf_loader=yes
- DEFINES="$DEFINES -DMIPS_TARGET"
_mak_plugins='
LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/main_prog.ld
PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backends/plugins/ps2/plugin.ld -lstdc++ -lc
@@ -2639,7 +2734,7 @@ PLUGIN_LDFLAGS += -mno-crt0 $(PS2SDK)/ee/startup/crt0.o -Wl,-T$(srcdir)/backend
;;
psp)
_elf_loader=yes
- DEFINES="$DEFINES -DMIPS_TARGET -DUNCACHED_PLUGINS"
+ DEFINES="$DEFINES -DUNCACHED_PLUGINS"
_mak_plugins='
LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/main_prog.ld
PLUGIN_LDFLAGS += -Wl,-T$(srcdir)/backends/plugins/psp/plugin.ld -lstdc++ -lc
@@ -2967,6 +3062,30 @@ if test `get_engine_build sword25` = yes && test ! "$_zlib" = yes ; then
fi
#
+# Check for Sparkle if updates support is enabled
+#
+echocheck "Sparkle"
+if test "$_updates" = no; then
+ _sparkle=no
+else
+if test "$_sparkle" = auto ; then
+ _sparkle=no
+ cat > $TMPC << EOF
+#include <Cocoa/Cocoa.h>
+#include <Sparkle/Sparkle.h>
+int main(void) { SUUpdater *updater = [SUUpdater sharedUpdater]; return 0; }
+EOF
+ cc_check $SPARKLE_CFLAGS $SPARKLE_LIBS -framework Sparkle -ObjC++ -lobjc && _sparkle=yes
+fi
+if test "$_sparkle" = yes ; then
+ LIBS="$LIBS $SPARKLE_LIBS -framework Sparkle"
+ INCLUDES="$INCLUDES $SPARKLE_CFLAGS"
+fi
+define_in_config_if_yes "$_sparkle" 'USE_SPARKLE'
+fi
+echo "$_sparkle"
+
+#
# Check for libfluidsynth
#
echocheck "libfluidsynth"
@@ -3142,6 +3261,14 @@ EOF
fi
fi
+case $_host_os in
+ bada)
+ # components live in non-standard locations so just assume sane SDK
+ _opengl=yes
+ _opengles=yes
+ ;;
+esac
+
if test "$_opengles" = "yes" ; then
echo "yes (OpenGL ES)"
else
@@ -3266,6 +3393,28 @@ else
fi
#
+# Check whether to build Bink video support
+#
+echo_n "Building Bink video support... "
+define_in_config_if_yes $_bink 'USE_BINK'
+echo "$_bink"
+
+#
+# Check whether to build updates support
+#
+echo_n "Building updates support... "
+define_in_config_if_yes $_updates 'USE_UPDATES'
+if test "$_updates" = yes; then
+ if test "$_sparkle" = yes; then
+ echo "Sparkle"
+ else
+ echo "$_updates"
+ fi
+else
+ echo "$_updates"
+fi
+
+#
# Figure out installation directories
#
test "x$prefix" = xNONE && prefix=/usr/local
@@ -3371,7 +3520,7 @@ case $_backend in
LIBS="-Wl,-Bstatic $static_libs -Wl,-Bdynamic -lgcc $system_libs -llog -lGLESv1_CM"
;;
n64)
- # Move some libs down here, otherwise some symbols requires by libvorbis aren't found
+ # Move some libs down here, otherwise some symbols requires by libvorbis aren't found
# during linking stage
LIBS="$LIBS -lc -lgcc -lnosys"
;;
@@ -3385,6 +3534,15 @@ _engines_built_static=""
_engines_built_dynamic=""
_engines_skipped=""
+# Show a message if looping over engines takes longer than 5 secs
+sh -c "
+ touch config.gnomes
+ sleep 5
+ if test -f config.gnomes; then
+ printf 'Employing little gnomes...'
+ rm -f config.gnomes
+ fi" 2>/dev/null &
+
for engine in $_engines; do
if test "`get_engine_sub $engine`" = "no" ; then
# It's a main engine
@@ -3449,6 +3607,14 @@ done
add_to_config_h_if_yes `get_var _tainted_build` '#define TAINTED_BUILD'
+# Complete the message on slow systems
+if test -f config.gnomes ; then
+ # Kill does not work well here as it produces nasty 'Killed' message
+ rm -rf config.gnomes
+else
+ echo " work is done"
+fi
+
#
# Show which engines ("frontends") are to be built
#
diff --git a/devtools/create_hugo/README b/devtools/create_hugo/README
index 42bdd22c36..0d57d5eae5 100644
--- a/devtools/create_hugo/README
+++ b/devtools/create_hugo/README
@@ -4,4 +4,3 @@ is used by the engine depending on the version of the game started.
In order to work properly, the content of the DATA sub-directory has to be
copy next to the executable.
-
diff --git a/devtools/create_hugo/dists/msvc10/create_hugo.vcxproj b/devtools/create_hugo/dists/msvc10/create_hugo.vcxproj
index eae5fbc55c..1bc98740a0 100644
--- a/devtools/create_hugo/dists/msvc10/create_hugo.vcxproj
+++ b/devtools/create_hugo/dists/msvc10/create_hugo.vcxproj
@@ -110,4 +110,4 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/devtools/create_hugo/staticdata.h b/devtools/create_hugo/staticdata.h
index 582d5aaa8e..612e044982 100644
--- a/devtools/create_hugo/staticdata.h
+++ b/devtools/create_hugo/staticdata.h
@@ -11682,4 +11682,3 @@ int16 def_tunes_2d[] = {-1};
int16 def_tunes_3d[] = {-1};
#endif
-
diff --git a/devtools/create_kyradat/create_kyradat.cpp b/devtools/create_kyradat/create_kyradat.cpp
index e4686cc66c..627b517c62 100644
--- a/devtools/create_kyradat/create_kyradat.cpp
+++ b/devtools/create_kyradat/create_kyradat.cpp
@@ -45,7 +45,7 @@
#include <map>
enum {
- kKyraDatVersion = 74
+ kKyraDatVersion = 78
};
const ExtractFilename extractFilenames[] = {
@@ -119,6 +119,7 @@ const ExtractFilename extractFilenames[] = {
// AUDIO filename table
{ k1AudioTracks, kTypeStringList, false },
+ { k1AudioTracks2, kTypeStringList, false },
{ k1AudioTracksIntro, kTypeStringList, false },
// AMULET anim
@@ -219,7 +220,7 @@ const ExtractFilename extractFilenames[] = {
// Ingame
{ kLolIngamePakFiles, kTypeStringList, false },
- { kLolCharacterDefs, kLolTypeCharData, false },
+ { kLolCharacterDefs, kLolTypeCharData, true },
{ kLolIngameSfxFiles, k2TypeSfxList, false },
{ kLolIngameSfxIndex, kTypeRawData, false },
{ kLolMusicTrackMap, kTypeRawData, false },
@@ -330,7 +331,7 @@ const TypeTable gameTable[] = {
};
byte getGameID(int game) {
- return std::find(gameTable, gameTable + ARRAYSIZE(gameTable) - 1, game)->value;
+ return std::find(gameTable, ARRAYEND(gameTable) - 1, game)->value;
}
const TypeTable languageTable[] = {
@@ -341,11 +342,12 @@ const TypeTable languageTable[] = {
{ ES_ESP, 4 },
{ IT_ITA, 5 },
{ JA_JPN, 6 },
+ { RU_RUS, 7 },
{ -1, -1 }
};
byte getLanguageID(int lang) {
- return std::find(languageTable, languageTable + ARRAYSIZE(languageTable) - 1, lang)->value;
+ return std::find(languageTable, ARRAYEND(languageTable) - 1, lang)->value;
}
const TypeTable platformTable[] = {
@@ -358,7 +360,7 @@ const TypeTable platformTable[] = {
};
byte getPlatformID(int platform) {
- return std::find(platformTable, platformTable + ARRAYSIZE(platformTable) - 1, platform)->value;
+ return std::find(platformTable, ARRAYEND(platformTable) - 1, platform)->value;
}
const TypeTable specialTable[] = {
@@ -366,11 +368,12 @@ const TypeTable specialTable[] = {
{ kTalkieVersion, 1 },
{ kDemoVersion, 2 },
{ kTalkieDemoVersion, 3 },
+ { kOldFloppy, 4 },
{ -1, -1 }
};
byte getSpecialID(int special) {
- return std::find(specialTable, specialTable + ARRAYSIZE(specialTable) - 1, special)->value;
+ return std::find(specialTable, ARRAYEND(specialTable) - 1, special)->value;
}
// filename processing
@@ -767,6 +770,8 @@ const char *getIdString(const int id) {
return "k1CharacterImageFilenames";
case k1AudioTracks:
return "k1AudioTracks";
+ case k1AudioTracks2:
+ return "k1AudioTracks2";
case k1AudioTracksIntro:
return "k1AudioTracksIntro";
case k1ItemNames:
@@ -1433,4 +1438,3 @@ bool getExtractionData(const Game *g, Search &search, ExtractMap &map) {
return result;
}
-
diff --git a/devtools/create_kyradat/create_kyradat.h b/devtools/create_kyradat/create_kyradat.h
index 22a6db4b39..983ba3c228 100644
--- a/devtools/create_kyradat/create_kyradat.h
+++ b/devtools/create_kyradat/create_kyradat.h
@@ -131,6 +131,7 @@ enum kExtractID {
k1ConfigStrings,
k1AudioTracks,
+ k1AudioTracks2,
k1AudioTracksIntro,
k1CreditsStrings,
@@ -275,7 +276,8 @@ enum kSpecial {
kNoSpecial = 0,
kTalkieVersion,
kDemoVersion,
- kTalkieDemoVersion
+ kTalkieDemoVersion,
+ kOldFloppy,
};
enum kGame {
diff --git a/devtools/create_kyradat/extract.cpp b/devtools/create_kyradat/extract.cpp
index 5581dacec0..371f2f4e2b 100644
--- a/devtools/create_kyradat/extract.cpp
+++ b/devtools/create_kyradat/extract.cpp
@@ -127,7 +127,7 @@ const ExtractType *findExtractType(const int type) {
}
byte getTypeID(int type) {
- return std::find(typeTable, typeTable + ARRAYSIZE(typeTable) - 1, type)->value;
+ return std::find(typeTable, ARRAYEND(typeTable) - 1, type)->value;
}
// Extractor implementation
@@ -142,19 +142,56 @@ bool extractRaw(PAKFile &out, const ExtractInformation *info, const byte *data,
}
bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *data, const uint32 size, const char *filename, int id) {
- int fmtPatch = 0;
+ // Skip tables for skipping English string left-overs in the hacky Russian fan translations
+ static const uint8 rusFanSkip_k2SeqplayStrings[] = { 1, 3, 5, 8, 10, 11, 13, 15, 17, 20, 22, 25, 26, 30, 33, 38, 40, 41, 44, 49, 51, 55, 104, 119, 121, 123 };
+ static const uint8 rusFanSkip_k1IntroStrings[] = { 3, 5, 9, 11, 13, 16, 18, 21, 24, 32, 34, 36, 38, 41, 44, 49, 52, 55, 57, 59, 61, 64, 66, 69, 72, 75 };
+ static const uint8 rusFanSkip_k1ThePoisonStrings[] = { 1, 4 };
+ static const uint8 rusFanSkip_k1FullFlaskStrings[] = { 1, 2, 4, 5, 7 };
+ static const uint8 rusFanSkip_k1WispJewelStrings[] = { 2 };
+ static const uint8 rusFanSkip_k1GUIStrings[] = { 1, 3, 6, 8, 11, 13, 18 };
+ uint32 rusFanSkipIdLen = 0;
+ const uint8 *rusFanSkipId = 0;
+ int rusFanEmptyId = 10000;
+ uint32 skipCount = 0;
+
+ int patch = 0;
// FM Towns files that need addional patches
if (info->platform == kPlatformFMTowns) {
if (id == k1TakenStrings || id == k1NoDropStrings || id == k1PoisonGoneString ||
id == k1ThePoisonStrings || id == k1FluteStrings || id == k1WispJewelStrings)
- fmtPatch = 1;
+ patch = 1;
else if (id == k1IntroStrings)
- fmtPatch = 2;
+ patch = 2;
else if (id == k2SeqplayStrings)
- fmtPatch = 3;
+ patch = 3;
} else if (info->platform == kPlatformPC) {
if (id == k2IngamePakFiles)
- fmtPatch = 4;
+ patch = 4;
+
+ if (info->lang == Common::RU_RUS) {
+ patch = 5;
+ if (id == k2SeqplayStrings) {
+ rusFanSkipId = rusFanSkip_k2SeqplayStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k2SeqplayStrings);
+ rusFanEmptyId = 81;
+ } else if (id == k1IntroStrings) {
+ rusFanSkipId = rusFanSkip_k1IntroStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k1IntroStrings);
+ rusFanEmptyId = 30;
+ } else if (id == k1ThePoisonStrings) {
+ rusFanSkipId = rusFanSkip_k1ThePoisonStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k1ThePoisonStrings);
+ } else if (id == k1FullFlaskString) {
+ rusFanSkipId = rusFanSkip_k1FullFlaskStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k1FullFlaskStrings);
+ } else if (id == k1GUIStrings) {
+ rusFanSkipId = rusFanSkip_k1GUIStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k1GUIStrings);
+ } else if (id == k1WispJewelStrings) {
+ rusFanSkipId = rusFanSkip_k1WispJewelStrings;
+ rusFanSkipIdLen = ARRAYSIZE(rusFanSkip_k1WispJewelStrings);
+ }
+ }
// HACK
if (id == k2SeqplayIntroTracks && info->game == kLol)
@@ -183,7 +220,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
break;
targetsize--;
}
- if (fmtPatch == 1) {
+ if (patch == 1) {
// Here is the first step of the extra treatment for all FM-TOWNS string arrays that
// contain more than one string and which the original code
// addresses via stringname[boolJapanese].
@@ -201,11 +238,38 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
targetsize--;
}
}
+ } else if (patch == 5) {
+ ++skipCount;
+ while (!data[i + 1]) {
+ if (skipCount == rusFanEmptyId) {
+ ++skipCount;
+ ++entries;
+ break;
+ }
+ if (++i == size)
+ break;
+ targetsize--;
+ }
+
+ // Skip English string left-overs in the hacky Russian fan translation
+ for (uint32 ii = 0; ii < rusFanSkipIdLen; ++ii) {
+ if (skipCount == rusFanSkipId[ii]) {
+ ++skipCount;
+ uint32 len = strlen((const char*) data + i);
+ i += len;
+ targetsize = targetsize - 1 - len;
+ while (!data[i + 1]) {
+ if (++i == len)
+ break;
+ targetsize--;
+ }
+ }
+ }
}
}
}
- if (fmtPatch == 2) {
+ if (patch == 2) {
if (info->lang == EN_ANY) {
targetsize--;
entries += 1;
@@ -215,12 +279,12 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
}
}
- if (fmtPatch == 3) {
+ if (patch == 3) {
entries++;
targetsize++;
}
- if (fmtPatch == 4) {
+ if (patch == 4) {
targetsize -= 9;
}
@@ -229,12 +293,13 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
memset(buffer, 0, targetsize);
uint8 *output = buffer;
const uint8 *input = (const uint8*) data;
+ skipCount = 0;
WRITE_BE_UINT32(output, entries); output += 4;
if (info->platform == kPlatformFMTowns) {
const byte *c = data + size;
do {
- if (fmtPatch == 2 && input - data == 0x3C0 && input[0x10] == 0x32) {
+ if (patch == 2 && input - data == 0x3C0 && input[0x10] == 0x32) {
memcpy(output, input, 0x0F);
input += 0x11; output += 0x0F;
}
@@ -245,14 +310,14 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
// skip empty entries
while (!*input) {
// Write one empty string into intro strings file
- if (fmtPatch == 2) {
+ if (patch == 2) {
if ((info->lang == EN_ANY && input - data == 0x260) ||
(info->lang == JA_JPN && (input - data == 0x2BD || input - data == 0x2BE)))
*output++ = *input;
}
// insert one dummy string at hof sequence strings position 59
- if (fmtPatch == 3) {
+ if (patch == 3) {
if ((info->lang == EN_ANY && input - data == 0x695) ||
(info->lang == JA_JPN && input - data == 0x598))
*output++ = *input;
@@ -262,7 +327,7 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
break;
}
- if (fmtPatch == 1) {
+ if (patch == 1) {
// Here is the extra treatment for all FM-TOWNS string arrays that
// contain more than one string and which the original code
// addresses via stringname[boolJapanese].
@@ -292,9 +357,38 @@ bool extractStrings(PAKFile &out, const ExtractInformation *info, const byte *da
++dstPos;
}
targetsize = dstPos + 4;
+ } else if (patch == 5) {
+ const byte *c = data + size;
+ do {
+ strcpy((char*) output, (const char*) input);
+ uint32 stringsize = strlen((const char*)output) + 1;
+ input += stringsize; output += stringsize;
+
+ ++skipCount;
+ while (!*input) {
+ if (skipCount == rusFanEmptyId) {
+ *output++ = *input;
+ ++skipCount;
+ }
+ if (++input == c)
+ break;
+ }
+ // Skip English string left-overs in the hacky Russian fan translation
+ for (uint32 ii = 0; ii < rusFanSkipIdLen; ++ii) {
+ if (skipCount == rusFanSkipId[ii]) {
+ ++skipCount;
+ input += strlen((const char*)input);
+ while (!*input) {
+ if (++input == c)
+ break;
+ }
+ }
+ }
+
+ } while (input < c);
} else {
uint32 copySize = size;
- if (fmtPatch == 4) {
+ if (patch == 4) {
memcpy(output, data, 44);
output += 44;
data += 44;
@@ -981,4 +1075,3 @@ bool extractMrShapeAnimData(PAKFile &out, const ExtractInformation *info, const
}
} // end of anonymous namespace
-
diff --git a/devtools/create_kyradat/extract.h b/devtools/create_kyradat/extract.h
index fc473b33d1..a44927427f 100644
--- a/devtools/create_kyradat/extract.h
+++ b/devtools/create_kyradat/extract.h
@@ -72,4 +72,3 @@ const ExtractType *findExtractType(const int type);
byte getTypeID(int type);
#endif
-
diff --git a/devtools/create_kyradat/games.cpp b/devtools/create_kyradat/games.cpp
index 76d5d70186..86f3535f10 100644
--- a/devtools/create_kyradat/games.cpp
+++ b/devtools/create_kyradat/games.cpp
@@ -44,6 +44,7 @@ const Game kyra1Games[] = {
{ kKyra1, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "aa9d6d78d8b199deaf48efeca6d19af2", 0 } },
{ kKyra1, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "5d7550306b369a3492f9f3402702477c", 0 } },
{ kKyra1, { ES_ESP, -1, -1 }, kPlatformPC, kNoSpecial, { "9ff130d2558bcd674d4074849d93c362", 0 } },
+ { kKyra1, { RU_RUS, -1, -1 }, kPlatformPC, kOldFloppy, { "3b4719e1f8a4d67813b7ada29774aead", 0 } },
// Talkie
{ kKyra1, { EN_ANY, -1, -1 }, kPlatformPC, kTalkieVersion, { "1ebc18f3e7fbb72474a55cb0fa089ed4", 0 } },
@@ -71,6 +72,7 @@ const Game kyra2Games[] = {
{ kKyra2, { FR_FRA, -1, -1 }, kPlatformPC, kNoSpecial, { "df31cc9e37e1cf68df2fdc75ddf2d87b", "fc2c6782778e6c6d5a553d1cb73c98ad" } },
{ kKyra2, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "0ca4f9a1438264a4c63c3218e064ed3b", "0d9b0eb7b0ad889ec942d74d80dde1bf" } },
{ kKyra2, { IT_ITA, -1, -1 }, kPlatformPC, kNoSpecial, { "178d3ab913f61bfba21d2fb196405e8c", "3a61ed6b7c00ddae383a0361799e2ba6" } },
+ { kKyra2, { RU_RUS, -1, -1 }, kPlatformPC, kNoSpecial, { "fd6a388c01de9a578e24e3bbeacd8012", "3a61ed6b7c00ddae383a0361799e2ba6" } },
// talkie games
{ kKyra2, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "85bbc1cc6c4cef6ad31fc6ee79518efb", "e20d0d2e500f01e399ec588247a7e213" } },
@@ -98,8 +100,9 @@ const Game lolGames[] = {
// DOS demo
{ kLol, { EN_ANY, -1, -1 }, kPlatformPC, kDemoVersion, { "30bb5af87d38adb47d3e6ce06b1cb042", 0 } },
- // DOS floppy (no language specifc strings)
+ // DOS floppy (no language specifc strings except character presets)
{ kLol, { EN_ANY, -1, -1 }, kPlatformPC, kNoSpecial, { "0cc764a204f7ba8cefe1a5f14c479619", 0 } },
+ { kLol, { RU_RUS, -1, -1 }, kPlatformPC, kNoSpecial, { "80a9f9bf243bc6ed36d98584fc6988c4", 0 } },
{ kLol, { DE_DEU, -1, -1 }, kPlatformPC, kNoSpecial, { "6b843869772c1b779e1386be868c15dd", 0 } },
// PC98 (no language specifc strings)
@@ -108,6 +111,7 @@ const Game lolGames[] = {
// DOS CD (multi language version, with no language specific strings)
{ kLol, { EN_ANY, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "263998ec600afca1cc7b935c473df670" } },
{ kLol, { IT_ITA, FR_FRA, DE_DEU }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "f2af366e00f79dbf832fa19701d71ed9" } }, // Italian fan translation
+ { kLol, { EN_ANY, FR_FRA, RU_RUS }, kPlatformPC, kTalkieVersion, { "9d1778314de80598c0b0d032e2a1a1cf", "5b33478718968676343803911dd5e3e4" } }, // Russian fan translation
GAME_DUMMY_ENTRY
};
@@ -208,6 +212,93 @@ const int kyra1FloppyNeed[] = {
k1NewGameString,
k1ConfigStrings,
k1AudioTracks,
+ k1AudioTracks2,
+ k1AudioTracksIntro,
+ -1
+};
+
+const int kyra1FloppyOldNeed[] = {
+ k1KallakWritingSeq,
+ k1MalcolmTreeSeq,
+ k1WestwoodLogoSeq,
+ k1KyrandiaLogoSeq,
+ k1KallakMalcolmSeq,
+ k1ForestSeq,
+ k1IntroCPSStrings,
+ k1IntroCOLStrings,
+ k1IntroWSAStrings,
+ k1IntroStrings,
+ k1RoomList,
+ k1RoomFilenames,
+ k1CharacterImageFilenames,
+ k1DefaultShapes,
+ k1ItemNames,
+ k1TakenStrings,
+ k1PlacedStrings,
+ k1DroppedStrings,
+ k1AmuleteAnimSeq,
+ k1SpecialPalette1,
+ k1SpecialPalette2,
+ k1SpecialPalette3,
+ k1SpecialPalette4,
+ k1SpecialPalette5,
+ k1SpecialPalette6,
+ k1SpecialPalette7,
+ k1SpecialPalette8,
+ k1SpecialPalette9,
+ k1SpecialPalette10,
+ k1SpecialPalette11,
+ k1SpecialPalette12,
+ k1SpecialPalette13,
+ k1SpecialPalette14,
+ k1SpecialPalette15,
+ k1SpecialPalette16,
+ k1SpecialPalette17,
+ k1SpecialPalette18,
+ k1SpecialPalette19,
+ k1SpecialPalette20,
+ k1SpecialPalette21,
+ k1SpecialPalette22,
+ k1SpecialPalette23,
+ k1SpecialPalette24,
+ k1SpecialPalette25,
+ k1SpecialPalette26,
+ k1SpecialPalette27,
+ k1SpecialPalette28,
+ k1SpecialPalette29,
+ k1SpecialPalette30,
+ k1SpecialPalette31,
+ k1SpecialPalette32,
+ k1PutDownString,
+ k1WaitAmuletString,
+ k1BlackJewelString,
+ k1HealingTipString,
+ k1PoisonGoneString,
+ k1Healing1Shapes,
+ k1Healing2Shapes,
+ k1ThePoisonStrings,
+ k1FluteStrings,
+ k1PoisonDeathShapes,
+ k1FluteShapes,
+ k1Winter1Shapes,
+ k1Winter2Shapes,
+ k1Winter3Shapes,
+ k1DrinkShapes,
+ k1WispShapes,
+ k1MagicAnimShapes,
+ k1BranStoneShapes,
+ k1WispJewelStrings,
+ k1MagicJewelStrings,
+ k1FlaskFullString,
+ k1FullFlaskString,
+ k1OutroReunionSeq,
+ k1OutroHomeString,
+ k1VeryCleverString,
+ k1GUIStrings,
+ k1NewGameString,
+ k1ConfigStrings,
+ k1AudioTracks,
+ k1AudioTracks2,
k1AudioTracksIntro,
-1
};
@@ -295,6 +386,7 @@ const int kyra1CDNeed[] = {
k1NewGameString,
k1ConfigStrings,
k1AudioTracks,
+ k1AudioTracks2,
k1AudioTracksIntro,
-1
};
@@ -938,6 +1030,7 @@ struct GameNeed {
const GameNeed gameNeedTable[] = {
{ kKyra1, kPlatformPC, kNoSpecial, kyra1FloppyNeed },
+ { kKyra1, kPlatformPC, kOldFloppy, kyra1FloppyOldNeed },
{ kKyra1, kPlatformAmiga, kNoSpecial, kyra1AmigaNeed },
{ kKyra1, kPlatformPC, kTalkieVersion, kyra1CDNeed },
@@ -984,4 +1077,3 @@ const int *getNeedList(const Game *g) {
return 0;
}
-
diff --git a/devtools/create_kyradat/search.cpp b/devtools/create_kyradat/search.cpp
index 36b59d948c..b861ff0f5a 100644
--- a/devtools/create_kyradat/search.cpp
+++ b/devtools/create_kyradat/search.cpp
@@ -213,4 +213,3 @@ bool Search::search(ResultList &res) {
return !res.empty();
}
-
diff --git a/devtools/create_kyradat/search.h b/devtools/create_kyradat/search.h
index bd6aa0355b..a9e8ee2726 100644
--- a/devtools/create_kyradat/search.h
+++ b/devtools/create_kyradat/search.h
@@ -114,4 +114,3 @@ private:
};
#endif
-
diff --git a/devtools/create_kyradat/tables.cpp b/devtools/create_kyradat/tables.cpp
index 090b32debc..8042dcac71 100644
--- a/devtools/create_kyradat/tables.cpp
+++ b/devtools/create_kyradat/tables.cpp
@@ -68,6 +68,7 @@ const ExtractEntrySearchData k1KyrandiaLogoSeqProvider[] = {
const ExtractEntrySearchData k1KallakMalcolmSeqProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x0000026B, 0x00002132, { { 0x51, 0x07, 0x32, 0xA2, 0x09, 0x47, 0x97, 0x02, 0x85, 0x31, 0x39, 0x93, 0x3A, 0x53, 0x47, 0xA5 } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x00000267, 0x00002100, { { 0xD9, 0x5E, 0x59, 0xF0, 0x7B, 0xC8, 0xF1, 0x40, 0x4F, 0x68, 0x6F, 0xEC, 0xB5, 0xE8, 0x88, 0xE2 } } } }, // floppy
{ UNK_LANG, kPlatformUnknown, { 0x0000027B, 0x0000220A, { { 0xB7, 0xC1, 0x57, 0x04, 0x9B, 0x67, 0x82, 0x7B, 0x6E, 0xFD, 0x59, 0xF2, 0x10, 0x93, 0x89, 0x12 } } } }, // CD + Amiga
{ UNK_LANG, kPlatformUnknown, { 0x000002B8, 0x0000280B, { { 0x98, 0xC8, 0x36, 0x8C, 0xF8, 0x92, 0xC2, 0xB9, 0x1B, 0x71, 0x6B, 0x4C, 0xA4, 0x6C, 0xF6, 0x30 } } } }, // Amiga + CD demo
@@ -134,8 +135,9 @@ const ExtractEntrySearchData k1AmuleteAnimSeqProvider[] = {
const ExtractEntrySearchData k1OutroReunionSeqProvider[] = {
{ UNK_LANG, kPlatformPC, { 0x00000547, 0x0000781C, { { 0xCF, 0xD6, 0x1D, 0x3D, 0x14, 0x40, 0x88, 0x35, 0x36, 0x4F, 0x0B, 0x1F, 0x9A, 0x1C, 0x3D, 0xAC } } } }, // floppy
+ { UNK_LANG, kPlatformPC, { 0x00000547, 0x000077E0, { { 0x80, 0xC4, 0xFC, 0xD5, 0xEB, 0xAA, 0xA5, 0x87, 0x58, 0x5E, 0xAA, 0xE7, 0x01, 0x8F, 0x59, 0x3F } } } }, // floppy
{ UNK_LANG, kPlatformPC, { 0x000005E5, 0x00008918, { { 0x6A, 0x33, 0x8C, 0xB0, 0x16, 0x57, 0x2D, 0xEB, 0xB2, 0xE1, 0x64, 0x80, 0x98, 0x99, 0x98, 0x19 } } } }, // CD
-
+
{ UNK_LANG, kPlatformAmiga, { 0x0000054A, 0x0000785F, { { 0x55, 0xEA, 0xB8, 0x7F, 0x3A, 0x86, 0xCD, 0xA6, 0xBC, 0xA7, 0x9A, 0x39, 0xED, 0xF5, 0x30, 0x0A } } } },
{ UNK_LANG, kPlatformUnknown, { 0x00000547, 0x00007876, { { 0x7A, 0xC7, 0x80, 0x34, 0x7A, 0x1B, 0xAB, 0xF8, 0xA7, 0x2F, 0x63, 0x3C, 0xDA, 0x89, 0x3F, 0x82 } } } }, // some floppy DOS + FM-TOWNS
@@ -150,6 +152,7 @@ const ExtractEntrySearchData k1IntroCPSStringsProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000014, 0x0000071D, { { 0xBA, 0xB6, 0x58, 0xB3, 0x28, 0x5E, 0x9F, 0x77, 0x69, 0x9D, 0x77, 0x53, 0x9D, 0x0D, 0xB0, 0x29 } } } }, // floppy + PC98
{ UNK_LANG, kPlatformPC, { 0x00000015, 0x00000786, { { 0xCF, 0x09, 0xE1, 0xD9, 0x8E, 0x34, 0x5D, 0xEA, 0xBC, 0xAC, 0xC4, 0xF4, 0x4A, 0xEC, 0xFF, 0xC1 } } } }, // CD
+ { UNK_LANG, kPlatformPC, { 0x00000019, 0x000008DB, { { 0x3A, 0xDC, 0x1D, 0xAD, 0xF4, 0x5E, 0xC9, 0x19, 0xE9, 0x84, 0xD1, 0x31, 0x89, 0x6B, 0x6C, 0xF7 } } } }, // Old floppy
{ UNK_LANG, kPlatformPC, { 0x0000000C, 0x00000413, { { 0xA1, 0xE3, 0x06, 0x53, 0x23, 0x9A, 0xE0, 0xF1, 0xE4, 0xFD, 0xD9, 0x05, 0x22, 0xA6, 0x28, 0x46 } } } }, // demo
{ UNK_LANG, kPlatformAmiga, { 0x00000016, 0x0000070A, { { 0xD9, 0xDB, 0x91, 0xCD, 0x93, 0x81, 0xC4, 0x3F, 0x14, 0xF1, 0xC5, 0x02, 0xE7, 0x3F, 0x3A, 0x6C } } } },
@@ -194,6 +197,8 @@ const ExtractEntrySearchData k1IntroStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x000005CF, 0x00020415, { { 0xCC, 0xE5, 0x9F, 0xB8, 0xCA, 0xFA, 0x2D, 0x05, 0xB8, 0xAF, 0x9F, 0x1F, 0x8A, 0xA8, 0x56, 0xDE } } } },
+ { RU_RUS, kPlatformPC, { 0x000004F6, 0x000131C6, { { 0x77, 0x76, 0x12, 0xB1, 0xDA, 0x9C, 0xA9, 0xB5, 0x21, 0x1E, 0x49, 0x08, 0x46, 0xB3, 0xE4, 0x61 } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x0000050A, 0x0001A7B1, { { 0x1B, 0x74, 0x71, 0x4C, 0xAB, 0x81, 0x10, 0x59, 0x8A, 0x21, 0x50, 0xBB, 0xFE, 0x6F, 0xD0, 0xE8 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000626, 0x00021319, { { 0x80, 0x55, 0x54, 0x14, 0x5D, 0x6F, 0x49, 0x04, 0x4A, 0xEF, 0x92, 0xB8, 0x5B, 0x01, 0x0F, 0x97 } } } },
@@ -219,6 +224,8 @@ const ExtractEntrySearchData k1OutroHomeStringProvider[] = {
{ IT_ITA, kPlatformPC, { 0x00000007, 0x000001B8, { { 0x17, 0x95, 0x5B, 0x4F, 0xE2, 0x07, 0x5A, 0x49, 0xFA, 0xCE, 0x53, 0x8B, 0xE7, 0x46, 0x69, 0xC7 } } } }, // (fan) CD
+ { RU_RUS, kPlatformPC, { 0x00000005, 0x000000EF, { { 0xA0, 0xB4, 0xF2, 0x11, 0x16, 0x92, 0xC8, 0xEB, 0xF2, 0x0C, 0xFE, 0x43, 0xFE, 0x18, 0xF6, 0xBB } } } },
+
EXTRACT_END_ENTRY
};
@@ -235,6 +242,7 @@ const ExtractEntrySearchData k1RoomListProvider[] = {
{ UNK_LANG, kPlatformFMTowns, { 0x000064E8, 0x0010312B, { { 0x94, 0x5C, 0x87, 0x35, 0x35, 0x6B, 0x3E, 0xBF, 0x55, 0x3D, 0xDB, 0xD9, 0xFB, 0x97, 0x27, 0x5D } } } },
{ UNK_LANG, kPlatformUnknown, { 0x00004DD6, 0x0010312B, { { 0xC6, 0xF0, 0xC4, 0x2C, 0x5A, 0xD7, 0x48, 0xE4, 0x41, 0x23, 0x65, 0x6D, 0xC8, 0xC7, 0xCE, 0xF5 } } } }, // DOS + PC98
+ { UNK_LANG, kPlatformUnknown, { 0x00004DD6, 0x0010315D, { { 0x4A, 0x1B, 0xA2, 0x35, 0xE1, 0x22, 0xD3, 0x7A, 0xE9, 0x69, 0x12, 0x3A, 0x9C, 0x92, 0x6F, 0x5C } } } }, // Old DOS floppy
{ UNK_LANG, kPlatformAmiga, { 0x00004ECC, 0x0010312B, { { 0x9A, 0x91, 0xF1, 0x9C, 0x8A, 0x96, 0x1C, 0x7B, 0xB7, 0xE4, 0xF1, 0xE9, 0x7D, 0xEF, 0x40, 0xBF } } } },
@@ -252,13 +260,19 @@ const ExtractEntrySearchData k1CharacterImageFilenamesProvider[] = {
};
const ExtractEntrySearchData k1AudioTracksProvider[] = {
- { UNK_LANG, kPlatformPC, { 0x00000041, 0x00000FBF, { { 0xB5, 0xA2, 0x90, 0xE9, 0x73, 0x83, 0x47, 0x5A, 0xB3, 0x3E, 0x04, 0xBB, 0xAA, 0xC8, 0x84, 0x53 } } } },
+ { UNK_LANG, kPlatformPC, { 0x00000038, 0x00000D5C, { { 0x65, 0x35, 0x2F, 0xA3, 0x93, 0x22, 0x15, 0xA0, 0xC6, 0x2B, 0x73, 0x7C, 0x3E, 0xB8, 0x7A, 0xB5 } } } },
{ UNK_LANG, kPlatformFMTowns, { 0x0000005D, 0x0000154E, { { 0xA7, 0x7E, 0x03, 0x0A, 0x81, 0x54, 0xD2, 0x5D, 0x7B, 0x33, 0x07, 0xBF, 0x70, 0x01, 0x4B, 0x79 } } } },
EXTRACT_END_ENTRY
};
+const ExtractEntrySearchData k1AudioTracks2Provider[] = {
+ { UNK_LANG, kPlatformPC, { 0x00000009, 0x00000363, { { 0x16, 0xA2, 0x68, 0x21, 0x04, 0xA8, 0x39, 0x7E, 0xA1, 0x7D, 0x70, 0xFD, 0x86, 0xC7, 0x69, 0x28 } } } },
+
+ EXTRACT_END_ENTRY
+};
+
const ExtractEntrySearchData k1AudioTracksIntroProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x00000006, 0x0000022C, { { 0x5F, 0xC9, 0xE1, 0x4B, 0x34, 0x52, 0xB9, 0xF8, 0xFF, 0x37, 0x8B, 0xF4, 0xEF, 0x5E, 0xC5, 0xDA } } } }, // floppy + demo
{ UNK_LANG, kPlatformUnknown, { 0x0000000C, 0x00000458, { { 0xEB, 0xB3, 0x96, 0xA5, 0x07, 0xE6, 0x11, 0x58, 0xDB, 0x3F, 0x34, 0x30, 0xFB, 0x7B, 0x92, 0xC8 } } } }, // CD
@@ -278,6 +292,8 @@ const ExtractEntrySearchData k1ItemNamesProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000530, 0x0001D90A, { { 0x52, 0xFB, 0xA8, 0x3F, 0xA3, 0x6F, 0xC2, 0x67, 0x55, 0x9F, 0x66, 0x9F, 0xFD, 0x79, 0x44, 0xDF } } } },
+ { RU_RUS, kPlatformPC, { 0x000004AE, 0x00011888, { { 0x6F, 0x4D, 0xBE, 0xC8, 0xAE, 0x7C, 0x12, 0x3E, 0x69, 0x0B, 0x39, 0xCB, 0x4D, 0x4B, 0xA8, 0x3A } } } }, // floppy
+
{ EN_ANY, kPlatformAmiga, { 0x00000380, 0x00012960, { { 0x2D, 0x81, 0xCF, 0x7A, 0x9D, 0x71, 0x83, 0xB7, 0xE5, 0x00, 0xB0, 0x6E, 0x25, 0x94, 0xCB, 0xA4 } } } },
{ DE_DEU, kPlatformAmiga, { 0x000003E5, 0x0001607D, { { 0x6D, 0xBE, 0xAD, 0xE5, 0xD1, 0x41, 0x6C, 0x42, 0x71, 0x79, 0x9C, 0x78, 0x93, 0x84, 0xC8, 0x11 } } } },
@@ -302,6 +318,8 @@ const ExtractEntrySearchData k1TakenStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000014, 0x000005D8, { { 0xD6, 0x00, 0x90, 0x6A, 0x75, 0x3B, 0xF1, 0xFE, 0xF4, 0x3E, 0x0E, 0x1D, 0x39, 0xEB, 0x2D, 0xC8 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000010, 0x00000262, { { 0x1E, 0x90, 0x20, 0xC8, 0xD3, 0x08, 0x53, 0x4F, 0x28, 0x95, 0x6A, 0xA4, 0x14, 0x37, 0x05, 0xF0 } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x00000008, 0x00000261, { { 0x93, 0x5B, 0x79, 0xE8, 0x89, 0x8E, 0xB5, 0x37, 0x39, 0x2A, 0xB0, 0x04, 0x98, 0x80, 0x5A, 0x4E } } } },
{ DE_DEU, kPlatformAmiga, { 0x0000000E, 0x000004E0, { { 0x52, 0x4D, 0x74, 0x91, 0x70, 0x0D, 0x4C, 0x40, 0x5C, 0x7E, 0xBA, 0xDA, 0x24, 0x49, 0xF3, 0x1A } } } },
@@ -324,8 +342,10 @@ const ExtractEntrySearchData k1PlacedStringsProvider[] = {
{ IT_ITA, kPlatformPC, { 0x0000000D, 0x0000040D, { { 0x9C, 0x71, 0x53, 0x35, 0xC3, 0xE8, 0x46, 0xB9, 0xD2, 0xFA, 0x1C, 0x8C, 0xC3, 0xFF, 0xBC, 0x1F } } } }, // floppy
{ IT_ITA, kPlatformPC, { 0x00000011, 0x000003B8, { { 0xC8, 0xA6, 0xE4, 0x8A, 0xF7, 0x4C, 0x3F, 0xA6, 0x24, 0x7F, 0xEF, 0xE4, 0x63, 0x8B, 0x72, 0xF3 } } } }, // (fan) CD
-
+
{ ES_ESP, kPlatformPC, { 0x0000000D, 0x00000439, { { 0x57, 0xAE, 0x1C, 0xC1, 0xF5, 0xE8, 0x5B, 0x9E, 0x90, 0x02, 0xB9, 0x8D, 0x86, 0x38, 0xFB, 0xA8 } } } },
+
+ { RU_RUS, kPlatformPC, { 0x00000009, 0x00000203, { { 0x7D, 0xAE, 0x67, 0x94, 0x8E, 0x73, 0x35, 0xC1, 0x11, 0xB4, 0x55, 0x6E, 0x92, 0x25, 0x39, 0xE4 } } } },
EXTRACT_END_ENTRY
};
@@ -344,6 +364,8 @@ const ExtractEntrySearchData k1DroppedStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000008, 0x00000261, { { 0x1D, 0xB5, 0xFB, 0x23, 0x94, 0xA7, 0x86, 0x7A, 0xAC, 0x53, 0xDA, 0x6F, 0xCC, 0x41, 0x0F, 0xD7 } } } },
+ { RU_RUS, kPlatformPC, { 0x0000000A, 0x000001F5, { { 0xAA, 0x21, 0x88, 0x6D, 0xD0, 0xAB, 0x5C, 0x15, 0x7F, 0xAD, 0x0E, 0x3B, 0x2F, 0x17, 0xBF, 0xAD } } } },
+
EXTRACT_END_ENTRY
};
@@ -384,6 +406,8 @@ const ExtractEntrySearchData k1PutDownStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000002D, 0x00001052, { { 0x12, 0x0A, 0x23, 0x11, 0xDF, 0x8A, 0x59, 0xD4, 0xF2, 0xCA, 0xA5, 0xA7, 0x76, 0x1B, 0x54, 0xB6 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000024, 0x0000099F, { { 0x05, 0xD7, 0xB8, 0x32, 0x95, 0x93, 0x29, 0x5F, 0xF3, 0x1A, 0xF0, 0x2E, 0xBA, 0x3A, 0x0D, 0x27 } } } },
+
EXTRACT_END_ENTRY
};
@@ -401,6 +425,8 @@ const ExtractEntrySearchData k1WaitAmuletStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000042, 0x000017FD, { { 0x0A, 0x8A, 0x7E, 0x9A, 0x5F, 0x4A, 0x35, 0x06, 0x4D, 0x6B, 0xBF, 0x29, 0x1B, 0xAD, 0xD8, 0x37 } } } },
+ { RU_RUS, kPlatformPC, { 0x0000003C, 0x00000EF1, { { 0xC1, 0x0A, 0xFA, 0xBB, 0x65, 0xC3, 0x31, 0xC9, 0x80, 0x9B, 0x0C, 0x16, 0xED, 0xBF, 0x47, 0xFA } } } },
+
{ EN_ANY, kPlatformUnknown, { 0x0000003E, 0x0000150D, { { 0xA8, 0xBF, 0x99, 0x9B, 0xC1, 0x36, 0x21, 0x47, 0x6D, 0x99, 0x4F, 0x34, 0xE6, 0x61, 0x47, 0xFD } } } }, // Amiga + FM-TOWNS
EXTRACT_END_ENTRY
@@ -420,6 +446,8 @@ const ExtractEntrySearchData k1BlackJewelStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000025, 0x00000CF6, { { 0x4B, 0x13, 0x39, 0xCB, 0x3F, 0x44, 0x18, 0x46, 0x43, 0xDB, 0x94, 0xC5, 0x3E, 0x6B, 0xC4, 0x74 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000021, 0x000007FF, { { 0x3F, 0x26, 0xB4, 0xB4, 0x11, 0x0C, 0xEF, 0xC0, 0x6A, 0xD1, 0xCC, 0x0E, 0x68, 0x7D, 0xA5, 0x1A } } } },
+
{ EN_ANY, kPlatformUnknown, { 0x00000024, 0x00000B73, { { 0x8D, 0x57, 0x5F, 0x93, 0x85, 0x75, 0xF2, 0xD8, 0x36, 0xC2, 0x7C, 0x0E, 0x3B, 0xEA, 0xE0, 0x0A } } } }, // Amiga + FM-TOWNS
EXTRACT_END_ENTRY
@@ -438,6 +466,8 @@ const ExtractEntrySearchData k1PoisonGoneStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000033, 0x0000127E, { { 0x67, 0xEB, 0xD3, 0x00, 0xF8, 0x4F, 0xF1, 0x79, 0x48, 0xE6, 0x9C, 0xB2, 0xA7, 0xCF, 0x76, 0x07 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000027, 0x00000952, { { 0x36, 0x64, 0x30, 0x1C, 0x5A, 0xC0, 0x0D, 0x73, 0xE5, 0xA6, 0x2F, 0xD8, 0x64, 0x98, 0x81, 0x56 } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x0000002E, 0x00000F59, { { 0xAD, 0x95, 0xF3, 0xA7, 0xBB, 0x04, 0x08, 0x77, 0xD0, 0x71, 0xFC, 0x8B, 0x33, 0x2A, 0x6D, 0xD3 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000037, 0x00001324, { { 0xB3, 0xE6, 0x0A, 0x49, 0x37, 0x73, 0x3C, 0xAF, 0x78, 0x9E, 0x7D, 0x13, 0x75, 0xAE, 0xA8, 0x89 } } } },
@@ -463,6 +493,8 @@ const ExtractEntrySearchData k1HealingTipStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000028, 0x00000E0F, { { 0x3E, 0x40, 0xCA, 0x2A, 0x5F, 0xFE, 0x74, 0x30, 0x8C, 0x31, 0x41, 0x09, 0xBD, 0xFD, 0xA3, 0x7E } } } },
+ { RU_RUS, kPlatformPC, { 0x00000026, 0x000008EE, { { 0x7C, 0xC0, 0x62, 0x39, 0x66, 0x9E, 0x63, 0xCD, 0x21, 0x3D, 0x72, 0x91, 0xB8, 0xB9, 0xB6, 0x92 } } } },
+
{ EN_ANY, kPlatformUnknown, { 0x0000002E, 0x00000F04, { { 0x95, 0x39, 0x36, 0x89, 0xC4, 0x60, 0x7C, 0x0C, 0xDC, 0x06, 0xF7, 0x86, 0x1A, 0xF7, 0x93, 0x2B } } } }, // Amiga + FM-TOWNS
EXTRACT_END_ENTRY
@@ -483,6 +515,9 @@ const ExtractEntrySearchData k1WispJewelStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000005F, 0x0000211E, { { 0xE7, 0x0A, 0x85, 0x25, 0x44, 0x41, 0x47, 0x3B, 0x7A, 0xA6, 0x62, 0xAE, 0xAE, 0xD5, 0x92, 0x45 } } } },
+ // only one of two strings translated in the fan translation
+ { RU_RUS, kPlatformPC, { 0x00000053, 0x0000191F, { { 0x14, 0xEB, 0x38, 0x54, 0x40, 0x40, 0x04, 0xA6, 0xA0, 0xFE, 0xDB, 0xD0, 0x8C, 0xA6, 0x1F, 0x55 } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x00000056, 0x00001C62, { { 0x43, 0x28, 0x3C, 0x0F, 0x78, 0x52, 0xE7, 0x2A, 0x77, 0xF3, 0x21, 0x5A, 0xF0, 0xFC, 0x9E, 0xF8 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000063, 0x00002184, { { 0x6B, 0xDC, 0x6B, 0xCF, 0xD4, 0xC7, 0x2A, 0x9A, 0x2E, 0x34, 0x71, 0x4E, 0xB7, 0xF6, 0xAF, 0xDA } } } },
@@ -508,6 +543,8 @@ const ExtractEntrySearchData k1MagicJewelStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000011, 0x000005CD, { { 0x32, 0x2A, 0xFF, 0x9F, 0x10, 0x75, 0x6B, 0xD6, 0x46, 0xAE, 0x55, 0xD3, 0x68, 0x4F, 0xBB, 0x5A } } } },
+ { RU_RUS, kPlatformPC, { 0x00000012, 0x0000047D, { { 0xB1, 0xC3, 0x66, 0xBC, 0x42, 0xAD, 0x5B, 0xD8, 0xF5, 0x3D, 0xB9, 0x50, 0x77, 0x32, 0xA7, 0x15 } } } },
+
{ EN_ANY, kPlatformUnknown, { 0x00000014, 0x0000069E, { { 0x6A, 0x1C, 0x9B, 0x85, 0x61, 0xC7, 0x28, 0xA9, 0xA3, 0xF4, 0xFA, 0x47, 0x90, 0x8F, 0x06, 0xB4 } } } }, // Amiga + FM-TOWNS
EXTRACT_END_ENTRY
@@ -525,6 +562,8 @@ const ExtractEntrySearchData k1ThePoisonStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000059, 0x00001DF7, { { 0x16, 0x7B, 0x5F, 0x91, 0x06, 0x5B, 0xFC, 0x9C, 0x88, 0x61, 0xCC, 0x1B, 0x52, 0x4F, 0x91, 0xC5 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000052, 0x0000136F, { { 0xEF, 0xD2, 0xA0, 0x5F, 0xD5, 0xE6, 0x77, 0x96, 0xFA, 0xC5, 0x60, 0x7C, 0xB7, 0xA8, 0x7C, 0x7A } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x00000058, 0x00001C24, { { 0xBA, 0x1F, 0xBD, 0x5C, 0x85, 0x3D, 0x3C, 0x92, 0xD1, 0x13, 0xF3, 0x40, 0x2E, 0xBB, 0x1C, 0xE2 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000073, 0x00002690, { { 0x44, 0xAE, 0xC9, 0xFD, 0x9F, 0x8E, 0x1B, 0xDD, 0x3F, 0xE4, 0x4D, 0x4B, 0x5A, 0x13, 0xE5, 0x99 } } } },
@@ -549,6 +588,9 @@ const ExtractEntrySearchData k1FluteStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000052, 0x00001D8E, { { 0x9D, 0xA5, 0xF1, 0x42, 0xD1, 0x48, 0xEB, 0x8F, 0x4B, 0xDC, 0xD9, 0x10, 0x55, 0xBD, 0x12, 0xBB } } } },
+ // not translated in the fan translation
+ { RU_RUS, kPlatformPC, { 0x0000003C, 0x00001599, { { 0x96, 0x72, 0x5A, 0x8A, 0xA0, 0xEE, 0xA2, 0xCE, 0x4D, 0x21, 0x01, 0x6C, 0xC5, 0x1A, 0xEB, 0x21 } } } },
+
{ EN_ANY, kPlatformFMTowns, { 0x0000005A, 0x000024F9, { { 0xCA, 0x1F, 0x62, 0x23, 0x22, 0x25, 0x4A, 0x94, 0x8A, 0x50, 0x59, 0xD5, 0xB4, 0x4E, 0xF1, 0xA6 } } } },
{ JA_JPN, kPlatformFMTowns, { 0x00000053, 0x00002745, { { 0x7A, 0xBB, 0xFC, 0x30, 0xB6, 0xCE, 0x61, 0xD4, 0xDB, 0xB0, 0xE6, 0xB2, 0xF4, 0x4D, 0x81, 0x35 } } } },
@@ -571,6 +613,8 @@ const ExtractEntrySearchData k1FlaskFullStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000001B, 0x0000099D, { { 0x13, 0x23, 0x5D, 0x38, 0x9B, 0xFB, 0x00, 0x5C, 0xA1, 0x3A, 0x22, 0xD6, 0xCD, 0x5C, 0x09, 0xAE } } } },
+ { RU_RUS, kPlatformPC, { 0x0000001A, 0x0000066E, { { 0x36, 0x43, 0xB6, 0xB2, 0xED, 0xBA, 0x21, 0x0C, 0x16, 0x54, 0x99, 0xF9, 0x2E, 0x6E, 0x0A, 0x28 } } } },
+
EXTRACT_END_ENTRY
};
@@ -586,6 +630,8 @@ const ExtractEntrySearchData k1FullFlaskStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000009A, 0x0000363B, { { 0x38, 0x25, 0xE6, 0xB5, 0xCB, 0x78, 0x5E, 0xAD, 0x2D, 0xD4, 0x2E, 0x8B, 0x89, 0x20, 0xB1, 0x95 } } } },
+ { RU_RUS, kPlatformPC, { 0x00000094, 0x0000232B, { { 0xBF, 0x68, 0xF9, 0x8F, 0x82, 0xE9, 0xE7, 0x69, 0x33, 0xD6, 0x41, 0x15, 0x2C, 0xFE, 0x72, 0xAB } } } },
+
{ EN_ANY, kPlatformAmiga, { 0x0000009A, 0x00003521, { { 0x26, 0xE5, 0xC8, 0x6D, 0x14, 0x81, 0x9F, 0x90, 0x38, 0x3C, 0x00, 0x9D, 0x8E, 0x72, 0xB1, 0x83 } } } },
{ DE_DEU, kPlatformAmiga, { 0x000000B0, 0x00003E38, { { 0x8A, 0x6D, 0x42, 0x36, 0x29, 0x06, 0xB2, 0xCE, 0xA3, 0x41, 0x14, 0xE8, 0xB1, 0xEF, 0x6E, 0x3B } } } },
@@ -611,6 +657,9 @@ const ExtractEntrySearchData k1VeryCleverStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x00000036, 0x000013F8, { { 0x2D, 0x9B, 0x7D, 0x58, 0xD1, 0x94, 0x04, 0x45, 0x6E, 0x81, 0xCC, 0x1E, 0x2F, 0xC5, 0xC9, 0xEA } } } },
+ // not translated in the fan translation
+ { RU_RUS, kPlatformPC, { 0x00000032, 0x0000118D, { { 0x4B, 0x6D, 0xD4, 0xDC, 0x3E, 0xA2, 0x2D, 0x6D, 0x2C, 0x5A, 0xF7, 0x67, 0x4B, 0x6D, 0x40, 0xEF } } } },
+
EXTRACT_END_ENTRY
};
@@ -628,6 +677,8 @@ const ExtractEntrySearchData k1NewGameStringProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000001B, 0x00000701, { { 0x2B, 0x87, 0xC3, 0x82, 0x68, 0xA5, 0xFC, 0xC5, 0x64, 0x9E, 0xAB, 0xD2, 0x8A, 0x07, 0x9C, 0x1E } } } },
+ { RU_RUS, kPlatformPC, { 0x00000015, 0x0000035F, { { 0x7E, 0x49, 0xC1, 0xCB, 0x2D, 0x61, 0xA7, 0x4C, 0x20, 0xAC, 0xEC, 0x54, 0x80, 0x14, 0x6A, 0xCA } } } },
+
EXTRACT_END_ENTRY
};
@@ -654,7 +705,7 @@ const ExtractEntrySearchData k1Healing2ShapesProvider[] = {
const ExtractEntrySearchData k1PoisonDeathShapesProvider[] = {
{ UNK_LANG, kPlatformUnknown, { 0x0000008C, 0x00002E90, { { 0xBC, 0x44, 0xFB, 0x98, 0xE7, 0x42, 0xF6, 0xC8, 0x87, 0xDD, 0x00, 0x42, 0x85, 0xD8, 0x1E, 0x81 } } } },
-
+ { UNK_LANG, kPlatformUnknown, { 0x0000008C, 0x00002E7C, { { 0xA5, 0xD7, 0x13, 0xFC, 0x43, 0x22, 0x13, 0xBC, 0x5F, 0x3F, 0xC8, 0x28, 0xDA, 0x04, 0xB0, 0xDD } } } }, // Old Dos Floppy
EXTRACT_END_ENTRY
};
@@ -931,6 +982,8 @@ const ExtractEntrySearchData k1GUIStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000023A, 0x0000C3BD, { { 0xED, 0x0D, 0xE7, 0x5B, 0xDC, 0x21, 0x41, 0x54, 0x68, 0x7D, 0x8E, 0x97, 0x1A, 0xB1, 0xA1, 0x4A } } } }, // floppy
+ { RU_RUS, kPlatformPC, { 0x000001B1, 0x000065E8, { { 0x91, 0x22, 0x61, 0x8B, 0xCD, 0x7C, 0x0E, 0xD4, 0x32, 0x00, 0xC3, 0x6E, 0x50, 0x7F, 0x3C, 0x82 } } } }, // floppy
+
{ EN_ANY, kPlatformAmiga, { 0x000001DF, 0x00009042, { { 0x0D, 0xD3, 0x1A, 0x92, 0x8D, 0x9C, 0x72, 0x55, 0xEF, 0xFB, 0x81, 0x21, 0x3B, 0x43, 0xA7, 0xE8 } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000237, 0x0000BAF7, { { 0xD7, 0x1A, 0x8E, 0xCC, 0x6D, 0x3E, 0xA9, 0xDD, 0x9A, 0x6B, 0x71, 0xFE, 0xD4, 0x50, 0x30, 0x6E } } } },
@@ -957,6 +1010,9 @@ const ExtractEntrySearchData k1ConfigStringsProvider[] = {
{ ES_ESP, kPlatformPC, { 0x0000004A, 0x00001B7B, { { 0x6B, 0x69, 0x50, 0x92, 0x9B, 0x35, 0x58, 0xE1, 0xEA, 0xBF, 0x42, 0x0B, 0xEB, 0x88, 0x41, 0x8D } } } }, // floppy
+ // not translated in the fan translation
+ { RU_RUS, kPlatformPC, { 0x0000003F, 0x00000B0D, { { 0x0E, 0x60, 0x0F, 0x4A, 0xA9, 0xF0, 0x1B, 0x76, 0xBB, 0x33, 0xB2, 0x4B, 0x5C, 0xB5, 0x4A, 0x97 } } } }, // floppy
+
{ EN_ANY, kPlatformAmiga, { 0x0000002E, 0x00000FA1, { { 0x5E, 0xFF, 0xFF, 0x3D, 0xF8, 0x11, 0x6F, 0x3B, 0xC5, 0x39, 0x8F, 0x25, 0x8F, 0x0F, 0xE9, 0x2B } } } },
{ DE_DEU, kPlatformAmiga, { 0x00000043, 0x00001783, { { 0xB2, 0x2B, 0xAB, 0x27, 0x06, 0x9A, 0x1E, 0x4B, 0xA7, 0xD3, 0xFF, 0xEB, 0xFD, 0x12, 0xDC, 0x94 } } } },
@@ -1057,6 +1113,8 @@ const ExtractEntrySearchData k2SeqplayStringsProvider[] = {
{ IT_ITA, kPlatformPC, { 0x00000916, 0x0003188F, { { 0xDC, 0x46, 0x06, 0xE1, 0xB0, 0x66, 0xBC, 0x18, 0x2E, 0x6E, 0x9E, 0xC9, 0xA4, 0x14, 0x8D, 0x08 } } } }, // floppy
{ IT_ITA, kPlatformPC, { 0x000008C8, 0x00030947, { { 0x7F, 0x75, 0x5F, 0x99, 0x94, 0xFE, 0xA1, 0xE6, 0xEF, 0xB8, 0x93, 0x71, 0x83, 0x1B, 0xAC, 0x4A } } } }, // (fan) CD
+ { RU_RUS, kPlatformPC, { 0x000008C8, 0x00028639, { { 0xF9, 0x1D, 0x6A, 0x85, 0x23, 0x5E, 0x2A, 0x64, 0xBC, 0x45, 0xB2, 0x48, 0x13, 0x49, 0xD4, 0xF7 } } } }, // (fan) floppy
+
{ EN_ANY, kPlatformFMTowns, { 0x00000990, 0x00030C61, { { 0x60, 0x51, 0x11, 0x83, 0x3F, 0x06, 0xC3, 0xA3, 0xE0, 0xC0, 0x2F, 0x41, 0x29, 0xDE, 0x65, 0xB1 } } } },
{ JA_JPN, kPlatformFMTowns, { 0x000008A8, 0x00036831, { { 0x56, 0x5B, 0x23, 0x61, 0xE8, 0x3B, 0xE1, 0x36, 0xD6, 0x62, 0xD0, 0x84, 0x00, 0x04, 0x05, 0xAD } } } },
@@ -1281,10 +1339,15 @@ const ExtractEntrySearchData kLolIngamePakFilesProvider[] = {
};
const ExtractEntrySearchData kLolCharacterDefsProvider[] = {
- { UNK_LANG, kPlatformPC, { 0x00000492, 0x000046B0, { { 0x7A, 0x94, 0x8B, 0xC6, 0xF7, 0xF1, 0x2F, 0xF3, 0xBC, 0x1B, 0x0B, 0x4E, 0x00, 0xC9, 0x44, 0x58 } } } }, // floppy
- { UNK_LANG, kPlatformPC, { 0x00000492, 0x000047FD, { { 0x8C, 0x0B, 0x8B, 0xCE, 0xE0, 0xB0, 0x8F, 0xA9, 0x06, 0xC3, 0x98, 0xE6, 0x2E, 0x09, 0xB6, 0x93 } } } }, // floppy
- { UNK_LANG, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
- { UNK_LANG, kPlatformPC98, { 0x00000492, 0x00005893, { { 0x7C, 0x7E, 0xFB, 0x80, 0xD9, 0xB6, 0x16, 0x87, 0x80, 0xB7, 0x46, 0x9B, 0x96, 0x1A, 0x6A, 0xBE } } } },
+ { RU_RUS, kPlatformPC, { 0x00000492, 0x000052BA, { { 0x52, 0x29, 0x0D, 0x49, 0xFD, 0x17, 0xD7, 0x70, 0x6D, 0xCA, 0xEB, 0xB6, 0x7E, 0xFA, 0xBE, 0x08 } } } }, // floppy
+ { EN_ANY, kPlatformPC, { 0x00000492, 0x000046B0, { { 0x7A, 0x94, 0x8B, 0xC6, 0xF7, 0xF1, 0x2F, 0xF3, 0xBC, 0x1B, 0x0B, 0x4E, 0x00, 0xC9, 0x44, 0x58 } } } }, // floppy
+ { DE_DEU, kPlatformPC, { 0x00000492, 0x000047FD, { { 0x8C, 0x0B, 0x8B, 0xCE, 0xE0, 0xB0, 0x8F, 0xA9, 0x06, 0xC3, 0x98, 0xE6, 0x2E, 0x09, 0xB6, 0x93 } } } }, // floppy
+ { EN_ANY, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { DE_DEU, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { FR_FRA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { RU_RUS, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { IT_ITA, kPlatformPC, { 0x00000492, 0x00004ACD, { { 0xDF, 0x87, 0xFE, 0x89, 0x59, 0xCC, 0x01, 0xD7, 0xC7, 0xEB, 0x16, 0xA4, 0x09, 0xAF, 0x5D, 0xC0 } } } }, // CD
+ { JA_JPN, kPlatformPC98, { 0x00000492, 0x00005893, { { 0x7C, 0x7E, 0xFB, 0x80, 0xD9, 0xB6, 0x16, 0x87, 0x80, 0xB7, 0x46, 0x9B, 0x96, 0x1A, 0x6A, 0xBE } } } },
EXTRACT_END_ENTRY
};
@@ -1766,6 +1829,7 @@ const ExtractEntry extractProviders[] = {
{ k1RoomList, k1RoomListProvider },
{ k1CharacterImageFilenames, k1CharacterImageFilenamesProvider },
{ k1AudioTracks, k1AudioTracksProvider },
+ { k1AudioTracks2, k1AudioTracks2Provider },
{ k1AudioTracksIntro, k1AudioTracksIntroProvider },
{ k1ItemNames, k1ItemNamesProvider },
{ k1TakenStrings, k1TakenStringsProvider },
@@ -1962,4 +2026,3 @@ ExtractEntryList getProvidersForId(int id) {
return list;
}
-
diff --git a/devtools/create_kyradat/tables.h b/devtools/create_kyradat/tables.h
index b9687a5949..833c70a4fe 100644
--- a/devtools/create_kyradat/tables.h
+++ b/devtools/create_kyradat/tables.h
@@ -39,4 +39,3 @@ typedef std::list<ExtractEntrySearchData> ExtractEntryList;
ExtractEntryList getProvidersForId(int id);
#endif
-
diff --git a/devtools/create_kyradat/util.cpp b/devtools/create_kyradat/util.cpp
index 3b9f621949..2420f44168 100644
--- a/devtools/create_kyradat/util.cpp
+++ b/devtools/create_kyradat/util.cpp
@@ -137,4 +137,3 @@ uint32 fileSize(FILE *fp) {
fseek(fp, pos, SEEK_SET);
return sz;
}
-
diff --git a/devtools/create_mads/main.cpp b/devtools/create_mads/main.cpp
index aec9e45b8b..b4de34d832 100644
--- a/devtools/create_mads/main.cpp
+++ b/devtools/create_mads/main.cpp
@@ -124,4 +124,4 @@ int main(int argc, char *argv[]) {
}
return 0;
-} \ No newline at end of file
+}
diff --git a/devtools/create_mads/scripts/rex_nebular.txt b/devtools/create_mads/scripts/rex_nebular.txt
index f177720398..f33a574813 100644
--- a/devtools/create_mads/scripts/rex_nebular.txt
+++ b/devtools/create_mads/scripts/rex_nebular.txt
@@ -2239,5 +2239,3 @@ sub scene101_actions
@2f6ba:
RET
end
-
-
diff --git a/devtools/create_project/create_project.cpp b/devtools/create_project/create_project.cpp
index 35d08561bf..0b190b3f0e 100644
--- a/devtools/create_project/create_project.cpp
+++ b/devtools/create_project/create_project.cpp
@@ -773,6 +773,7 @@ const Feature s_features[] = {
{ "theora", "USE_THEORADEC", "libtheora_static", true, "Theora decoding support" },
// Feature flags
+ { "bink", "USE_BINK", "", true, "Bink video support" },
{ "scalers", "USE_SCALERS", "", true, "Scalers" },
{ "hqscalers", "USE_HQ_SCALERS", "", true, "HQ scalers" },
{ "16bit", "USE_RGB_COLOR", "", true, "16bit color support" },
diff --git a/devtools/create_project/msvc10/create_project.vcxproj b/devtools/create_project/msvc10/create_project.vcxproj
index 3d7f8fdd3d..40c515f26b 100644
--- a/devtools/create_project/msvc10/create_project.vcxproj
+++ b/devtools/create_project/msvc10/create_project.vcxproj
@@ -59,11 +59,11 @@
</Link>
<PostBuildEvent>
<Command>@echo off
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc10\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc9\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc8\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\codeblocks\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\iphone\</Command>
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\"</Command>
</PostBuildEvent>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
@@ -84,10 +84,12 @@ xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\iphone\</Command>
<TargetMachine>MachineX86</TargetMachine>
</Link>
<PostBuildEvent>
- <Command>xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc10\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc9\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\msvc8\
-xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\codeblocks\</Command>
+ <Command>@echo off
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc10\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc9\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\msvc8\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\codeblocks\"
+xcopy /Y "$(TargetPath)" "$(SolutionDir)\..\..\..\dists\iphone\"</Command>
</PostBuildEvent>
<PreBuildEvent>
<Command>
@@ -120,4 +122,4 @@ xcopy /Y $(TargetPath) $(SolutionDir)\..\..\..\dists\codeblocks\</Command>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/devtools/create_project/msvc10/create_project.vcxproj.filters b/devtools/create_project/msvc10/create_project.vcxproj.filters
index 5ecd6c3dde..b4f0b18774 100644
--- a/devtools/create_project/msvc10/create_project.vcxproj.filters
+++ b/devtools/create_project/msvc10/create_project.vcxproj.filters
@@ -68,4 +68,4 @@
<Filter>scripts</Filter>
</None>
</ItemGroup>
-</Project> \ No newline at end of file
+</Project>
diff --git a/devtools/create_toon/create_toon.cpp b/devtools/create_toon/create_toon.cpp
index bdd57be7df..2cf8895d4b 100644
--- a/devtools/create_toon/create_toon.cpp
+++ b/devtools/create_toon/create_toon.cpp
@@ -77,8 +77,8 @@ int main(int argc, char *argv[]) {
writeByte(outFile, TOON_DAT_VER_MAJ);
writeByte(outFile, TOON_DAT_VER_MIN);
- // game versions/variantes
- writeUint16BE(outFile, NUM_VARIANTE);
+ // game versions/variants
+ writeUint16BE(outFile, NUM_VARIANTS);
// Write locationDirNotVisited
nbrElem = sizeof(locationDirNotVisited_EN) / sizeof(char *);
@@ -128,7 +128,7 @@ int main(int argc, char *argv[]) {
nbrElem = sizeof(specialInfoLine_SP) / sizeof(char *);
writeTextArray(outFile, specialInfoLine_SP, nbrElem);
-// Not yet handled : miscTexts, endingLine and exitLine. Are they useful?
+ // Not yet handled: miscTexts, endingLine and exitLine. Are they useful?
fclose(outFile);
return 0;
@@ -160,4 +160,3 @@ void writeTextArray(FILE *outFile, const char *textArray[], int nbrText) {
fwrite(padBuf, pad, 1, outFile);
}
}
-
diff --git a/devtools/create_toon/create_toon.h b/devtools/create_toon/create_toon.h
index 60b33013f4..b047959215 100644
--- a/devtools/create_toon/create_toon.h
+++ b/devtools/create_toon/create_toon.h
@@ -30,9 +30,9 @@
#define TOON_DAT_VER_MAJ 0 // 1 byte
#define TOON_DAT_VER_MIN 3 // 1 byte
-// Number of Variante of the game. For the moment, it's the same
-// than the number of languages
-#define NUM_VARIANTE 5
+// Number of variants of the game. For the moment, it's the same
+// as the number of languages
+#define NUM_VARIANTS 5
typedef unsigned char uint8;
typedef unsigned char byte;
diff --git a/devtools/create_toon/staticdata.h b/devtools/create_toon/staticdata.h
index 2164512337..bc49c7adaf 100644
--- a/devtools/create_toon/staticdata.h
+++ b/devtools/create_toon/staticdata.h
@@ -318,4 +318,3 @@ const char *exitLine_RU = "Hope you enjoyed playing ToonStruck!!";
const char* exitLine_SP = "\255\255Esperamos que te diviertas jugando a ToonStruck!!";
#endif
-
diff --git a/devtools/credits.pl b/devtools/credits.pl
index a124314670..8d4bc19df0 100755
--- a/devtools/credits.pl
+++ b/devtools/credits.pl
@@ -445,12 +445,27 @@ sub add_paragraph {
begin_credits("Credits");
begin_section("ScummVM Team");
- begin_section("Project Leaders");
+ begin_section("Project Leader");
begin_persons();
add_person("Eugene Sandulenko", "sev", "");
end_persons();
end_section();
+ begin_section("PR Office");
+ begin_persons();
+ add_person("Arnaud Boutonn&eacute;", "Strangerke", "Public Relations Officer, Project Administrator");
+ add_person("Eugene Sandulenko", "sev", "Project Leader");
+ end_persons();
+ end_section();
+
+ begin_section("Core Team");
+ begin_persons();
+ add_person("Willem Jan Palenstijn", "wjp", "");
+ add_person("Eugene Sandulenko", "sev", "");
+ add_person("Johannes Schickel", "LordHoto", "");
+ end_persons();
+ end_section();
+
begin_section("Retired Project Leaders");
begin_persons();
add_person("James Brown", "ender", "");
@@ -526,6 +541,7 @@ begin_credits("Credits");
begin_section("DreamWeb");
add_person("Vladimir Menshakov", "whoozle", "");
add_person("Torbj&ouml;rn Andersson", "eriktorbjorn", "");
+ add_person("Bertrand Augereau", "Tramb", "");
end_section();
begin_section("Gob");
@@ -683,6 +699,10 @@ begin_credits("Credits");
add_person("Angus Lees", "Gus", "");
end_section();
+ begin_section("BADA");
+ add_person("Chris Warren-Smith", "", "");
+ end_section();
+
begin_section("Dreamcast");
add_person("Marcus Comstedt", "", "");
end_section();
@@ -709,6 +729,7 @@ begin_credits("Credits");
begin_section("Nintendo DS");
add_person("Neil Millstone", "agent-q", "");
+ add_person("Bertrand Augereau", "Tramb", "HQ software scaler");
end_section();
begin_section("OpenPandora");
diff --git a/devtools/sci/musicplayer.cpp b/devtools/sci/musicplayer.cpp
index e4d0779848..d225195f71 100644
--- a/devtools/sci/musicplayer.cpp
+++ b/devtools/sci/musicplayer.cpp
@@ -96,5 +96,3 @@ int main(int argc, char** argv) {
scir_free_resource_manager(resmgr);
return 0;
}
-
-
diff --git a/devtools/sci/scitrace.asm b/devtools/sci/scitrace.asm
index 2e541326f2..2c5d2cc4cc 100644
--- a/devtools/sci/scitrace.asm
+++ b/devtools/sci/scitrace.asm
@@ -130,4 +130,3 @@ NowInstallTSR:
code_seg ends
end scitrace
-
diff --git a/devtools/scumm-md5.txt b/devtools/scumm-md5.txt
index e9e155925e..cae949b99b 100644
--- a/devtools/scumm-md5.txt
+++ b/devtools/scumm-md5.txt
@@ -433,8 +433,8 @@ arttime Blue's Art Time Activities
d00ffc8c32d17e575fd985d435d2eb88 -1 en All - Demo - Kirben
BluesBirthday Blue's Birthday Adventure
- 99128b6a5bdd9831d9682fb8b5cbf8d4 -1 en All - Yellow - knifethrower
- 1ff5997c78fbd0a841a75ef15a05d9d5 -1 en Windows - Red - Mathew
+ 99128b6a5bdd9831d9682fb8b5cbf8d4 -1 en All Yellow Yellow - knifethrower
+ 1ff5997c78fbd0a841a75ef15a05d9d5 -1 en All Red Red - Mathew
2d4acbdcfd8e374c9da8c2e7303a5cd0 -1 en All - Demo - Kirben
cc0c4111449054f1692bb3c0c5e04629 -1 en All - Demo - George Kormend
diff --git a/devtools/skycpt/KmpSearch.h b/devtools/skycpt/KmpSearch.h
index f39b993bd2..7bec5f07a8 100644
--- a/devtools/skycpt/KmpSearch.h
+++ b/devtools/skycpt/KmpSearch.h
@@ -32,5 +32,3 @@ private:
};
#endif //__KmpSearch__
-
-
diff --git a/devtools/skycpt/skycpt-engine.patch b/devtools/skycpt/skycpt-engine.patch
index 16388a3221..d7ead35c9b 100644
--- a/devtools/skycpt/skycpt-engine.patch
+++ b/devtools/skycpt/skycpt-engine.patch
@@ -64,4 +64,3 @@ Index: engines/sky/logic.cpp
+ _skyControl->doLoadSavePanel();
return true;
}
-
diff --git a/devtools/tasmrecover/.gitignore b/devtools/tasmrecover/.gitignore
index f2bff8e8d9..69ae325082 100644
--- a/devtools/tasmrecover/.gitignore
+++ b/devtools/tasmrecover/.gitignore
@@ -1,4 +1,3 @@
*.pyc
dreamgen.*
_stubs*
-
diff --git a/devtools/tasmrecover/dreamweb/backdrop.asm b/devtools/tasmrecover/dreamweb/backdrop.asm
index 5dfe20bf5d..ec0e4959b3 100644
--- a/devtools/tasmrecover/dreamweb/backdrop.asm
+++ b/devtools/tasmrecover/dreamweb/backdrop.asm
@@ -850,27 +850,3 @@ over147: mov ch,0
ret
endp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/dreamweb.asm b/devtools/tasmrecover/dreamweb/dreamweb.asm
index c222a63178..8a52435b0c 100644
--- a/devtools/tasmrecover/dreamweb/dreamweb.asm
+++ b/devtools/tasmrecover/dreamweb/dreamweb.asm
@@ -6264,20 +6264,3 @@ STACKSPACE ends
;-----------------------------------------------------------End of all code----
end Dreamweb
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/keypad.asm b/devtools/tasmrecover/dreamweb/keypad.asm
index 8d918e618b..6eee2fa11c 100644
--- a/devtools/tasmrecover/dreamweb/keypad.asm
+++ b/devtools/tasmrecover/dreamweb/keypad.asm
@@ -1759,4 +1759,3 @@ Findtext1 proc near
ret
endp
-
diff --git a/devtools/tasmrecover/dreamweb/look.asm b/devtools/tasmrecover/dreamweb/look.asm
index 399e1f16fd..a5a8b8055e 100644
--- a/devtools/tasmrecover/dreamweb/look.asm
+++ b/devtools/tasmrecover/dreamweb/look.asm
@@ -158,9 +158,3 @@ dogetback: mov getback,1
ret
endp
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/monitor.asm b/devtools/tasmrecover/dreamweb/monitor.asm
index 7f3979c2b3..5354e9f7d5 100644
--- a/devtools/tasmrecover/dreamweb/monitor.asm
+++ b/devtools/tasmrecover/dreamweb/monitor.asm
@@ -1490,8 +1490,3 @@ finishcurdel:
ret
endp
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/newplace.asm b/devtools/tasmrecover/dreamweb/newplace.asm
index 2bbf4fe498..b06a351f5f 100644
--- a/devtools/tasmrecover/dreamweb/newplace.asm
+++ b/devtools/tasmrecover/dreamweb/newplace.asm
@@ -577,8 +577,3 @@ Readcitypic proc near
ret
endp
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/object.asm b/devtools/tasmrecover/dreamweb/object.asm
index 830c9676f3..e6f8037579 100644
--- a/devtools/tasmrecover/dreamweb/object.asm
+++ b/devtools/tasmrecover/dreamweb/object.asm
@@ -2603,8 +2603,3 @@ beforethistext: mov [es:di],ax
ret
endp
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/saveload.asm b/devtools/tasmrecover/dreamweb/saveload.asm
index 369e799d53..6c98774a0f 100644
--- a/devtools/tasmrecover/dreamweb/saveload.asm
+++ b/devtools/tasmrecover/dreamweb/saveload.asm
@@ -1502,6 +1502,7 @@ Loadold proc near
alreadyloadold: mov ax,mousebutton
and ax,1
jz noloadold
+ mov ax,0ffffh
call doload
cmp getback,4
jz noloadold
@@ -1513,7 +1514,3 @@ alreadyloadold: mov ax,mousebutton
noloadold: ret
endp
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/sblaster.asm b/devtools/tasmrecover/dreamweb/sblaster.asm
index 46eb8e2366..7a271e9c90 100644
--- a/devtools/tasmrecover/dreamweb/sblaster.asm
+++ b/devtools/tasmrecover/dreamweb/sblaster.asm
@@ -1260,33 +1260,3 @@ nopitflip: cli
iret
endp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/sprite.asm b/devtools/tasmrecover/dreamweb/sprite.asm
index 45f807da3f..06b06c76e3 100644
--- a/devtools/tasmrecover/dreamweb/sprite.asm
+++ b/devtools/tasmrecover/dreamweb/sprite.asm
@@ -4226,7 +4226,7 @@ botofdoor2: sub ah,ch
opendoor2: cmp throughdoor,1
jz mustbeopen
cmp lockstatus,1
- jz shutdoor
+ jz shutdoor2
mustbeopen: mov cl,[es:bx+19]
cmp cl,1
jnz notdoorsound4
@@ -5017,17 +5017,3 @@ dumpevery2: mov ax,[es:bx]
finishevery2: ret
endp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/talk.asm b/devtools/tasmrecover/dreamweb/talk.asm
index b6b96313f7..4d6b381881 100644
--- a/devtools/tasmrecover/dreamweb/talk.asm
+++ b/devtools/tasmrecover/dreamweb/talk.asm
@@ -563,21 +563,3 @@ doredes: call delpointer
ret
endp
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/titles.asm b/devtools/tasmrecover/dreamweb/titles.asm
index 8f2b46e3f4..52f58867ed 100644
--- a/devtools/tasmrecover/dreamweb/titles.asm
+++ b/devtools/tasmrecover/dreamweb/titles.asm
@@ -570,16 +570,3 @@ realcreditsearly:
ret
endp
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/use.asm b/devtools/tasmrecover/dreamweb/use.asm
index fbbd9c99db..78917d50f4 100644
--- a/devtools/tasmrecover/dreamweb/use.asm
+++ b/devtools/tasmrecover/dreamweb/use.asm
@@ -3815,14 +3815,3 @@ nowinch: call showfirstuse
ret
endp
-
-
-
-
-
-
-
-
-
-
-
diff --git a/devtools/tasmrecover/dreamweb/vars.asm b/devtools/tasmrecover/dreamweb/vars.asm
index 8646697e52..6d34074528 100644
--- a/devtools/tasmrecover/dreamweb/vars.asm
+++ b/devtools/tasmrecover/dreamweb/vars.asm
@@ -273,7 +273,7 @@ savesource dw 0
savex db 0
savey db 0
currentob db 0
-priority db 0
+priorityDep db 0 ; dep for deprecated, I leave a byte here to minimize changes to the generated code
destpos db 0
@@ -560,4 +560,3 @@ roomssample db 0
gameerror db 0
howmuchalloc dw 0
-
diff --git a/devtools/tasmrecover/dreamweb/vgafades.asm b/devtools/tasmrecover/dreamweb/vgafades.asm
index 06cc9d6a44..a1043d9cf5 100644
--- a/devtools/tasmrecover/dreamweb/vgafades.asm
+++ b/devtools/tasmrecover/dreamweb/vgafades.asm
@@ -862,5 +862,3 @@ Initialmoncols proc near
ret
endp
-
-
diff --git a/devtools/tasmrecover/dreamweb/vgagrafx.asm b/devtools/tasmrecover/dreamweb/vgagrafx.asm
index 110fc95ee0..4ba1b16ba1 100644
--- a/devtools/tasmrecover/dreamweb/vgagrafx.asm
+++ b/devtools/tasmrecover/dreamweb/vgagrafx.asm
@@ -1758,5 +1758,3 @@ Title6graphics db "DREAMWEB.I06",0
Title7graphics db "DREAMWEB.I07",0
Palettescreen db "DREAMWEB.PAL",0
-
-
diff --git a/devtools/tasmrecover/tasm-recover b/devtools/tasmrecover/tasm-recover
index 5f7a528a5b..8e37b4e851 100755
--- a/devtools/tasmrecover/tasm-recover
+++ b/devtools/tasmrecover/tasm-recover
@@ -1,5 +1,26 @@
#!/usr/bin/python
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
from tasm.parser import parser
from tasm.cpp import cpp
@@ -8,6 +29,7 @@ p.strip_path = 3
context = p.parse('dreamweb/dreamweb.asm')
p.link()
generator = cpp(context, "DreamGen", blacklist = [
+ # These functions are not processed
'randomnumber',
'quickquit',
'quickquit2',
@@ -15,15 +37,122 @@ generator = cpp(context, "DreamGen", blacklist = [
'multiget',
'multiput',
'multidump',
- 'frameoutnm',
- 'cls',
+ 'frameoutnm',
+ 'frameoutbh',
+ 'frameoutfx',
+ 'cls',
+ 'clearwork',
'printundermon',
+ 'kernchars',
+ 'getnextword',
+ 'getnumber',
+ 'dumptextline',
+ 'printboth',
+ 'printchar',
+ 'printdirect',
+ 'printslow',
+ 'usetimedtext',
+ 'dumptimedtext',
+ 'setuptimedtemp',
+ 'putundertimed',
+ 'getundertimed',
'worktoscreen',
'width160',
'convertkey',
'readabyte',
'readoneblock',
+ 'printsprites',
+ 'printasprite',
+ 'eraseoldobs',
+ 'clearsprites',
+ 'makesprite',
+ 'showframe',
+ 'initman',
+ 'aboutturn',
+ 'readheader',
+ 'fillspace',
+ 'getroomdata',
+ 'startloading',
+ 'showreelframe',
+ 'showgamereel',
+ 'getreelframeax',
+ 'findsource',
+ 'walking',
+ 'autosetwalk',
+ 'checkdest',
+ 'spriteupdate',
+ 'dodoor',
+ 'lockeddoorway',
+ 'liftsprite',
'frameoutv',
- 'modifychar'
+ 'modifychar',
+ 'allocatework',
+ 'lockmon',
+ 'cancelch0',
+ 'cancelch1',
+ 'getroomspaths',
+ 'makebackob',
+ 'dealwithspecial',
+ 'plotreel',
+ 'facerightway',
+ 'zoom',
+ 'crosshair',
+ 'showrain',
+ 'domix',
+ 'channel0tran',
+ 'makenextblock',
+ 'loopchannel0',
+ 'parseblaster',
+ 'deltextline',
+ 'doblocks',
+ 'checkifperson',
+ 'checkiffree',
+ 'getreelstart',
+ 'findobname',
+ 'copyname',
+ 'commandwithob',
+ 'showpanel',
+ 'updatepeople',
+ 'madmantext',
+ 'madmode',
+ 'movemap',
+ 'doorway',
+ 'widedoor',
+ 'showallobs',
+ 'addalong',
+ 'addlength',
+ 'getdimension',
+ 'getxad',
+ 'getyad',
+ 'getmapad',
+ 'calcmapad',
+ 'calcfrframe',
+ 'finalframe',
+ 'commandonly',
+ 'makename',
+ 'findlen',
+ 'blocknametext',
+ 'walktotext',
+ 'personnametext',
+ 'findxyfrompath',
+ 'findormake',
+ 'setallchanges',
+ 'dochange',
+ 'deletetaken',
+ 'placesetobject',
+ 'removesetobject',
+ 'showallfree',
+ 'adjustlen',
+ 'finishedwalking',
+ 'checkone',
+ ], skip_output = [
+ # These functions are processed but not output
+ 'dreamweb',
+ 'backobject',
+ 'mainman',
+ 'madman',
+ 'loadgame',
+ 'savegame',
+ 'doload'
])
generator.generate('dreamweb') #start routine
diff --git a/devtools/tasmrecover/tasm/cpp.py b/devtools/tasmrecover/tasm/cpp.py
index dfdfb239f4..d2b860ddf5 100644
--- a/devtools/tasmrecover/tasm/cpp.py
+++ b/devtools/tasmrecover/tasm/cpp.py
@@ -1,3 +1,24 @@
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
import op, traceback, re, proc
from copy import copy
proc_module = proc
@@ -12,11 +33,35 @@ def parse_bin(s):
return v
class cpp:
- def __init__(self, context, namespace, skip_first = 0, blacklist = []):
+ def __init__(self, context, namespace, skip_first = 0, blacklist = [], skip_output = []):
self.namespace = namespace
fname = namespace.lower() + ".cpp"
header = namespace.lower() + ".h"
- banner = "/* PLEASE DO NOT MODIFY THIS FILE. ALL CHANGES WILL BE LOST! LOOK FOR README FOR DETAILS */"
+ banner = """/* PLEASE DO NOT MODIFY THIS FILE. ALL CHANGES WILL BE LOST! LOOK FOR README FOR DETAILS */
+
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+"""
self.fd = open(fname, "wt")
self.hd = open(header, "wt")
hid = "TASMRECOVER_%s_STUBS_H__" %namespace.upper()
@@ -34,8 +79,10 @@ class cpp:
self.proc_done = []
self.blacklist = blacklist
self.failed = list(blacklist)
+ self.skip_output = skip_output
self.translated = []
self.proc_addr = []
+ self.used_data_offsets = set()
self.methods = []
self.fd.write("""%s
@@ -53,11 +100,13 @@ namespace %s {
if self.indirection == -1:
try:
offset,p,p = self.context.get_offset(name)
- print "OFFSET = %d" %offset
- self.indirection = 0
- return str(offset)
except:
pass
+ else:
+ print "OFFSET = %d" %offset
+ self.indirection = 0
+ self.used_data_offsets.add((name,offset))
+ return "offset_%s" % (name,)
g = self.context.get_global(name)
if isinstance(g, op.const):
@@ -482,7 +531,8 @@ namespace %s {
self.proc.optimize(keep_labels=[label])
self.proc.visit(self, start)
self.body += "}\n";
- self.translated.insert(0, self.body)
+ if name not in self.skip_output:
+ self.translated.insert(0, self.body)
self.proc = None
if self.temps_count > 0:
raise Exception("temps count == %d at the exit of proc" %self.temps_count);
@@ -544,14 +594,23 @@ namespace %s {
"""\n#include "dreamweb/runtime.h"
namespace %s {
-
+#include "structs.h"
class %sContext : public Context {
public:
void __start();
void __dispatch_call(uint16 addr);
+#include "stubs.h" // Allow hand-reversed functions to have a signature different than void f()
"""
%(self.namespace, self.namespace))
+
+ for name,addr in self.proc_addr:
+ self.hd.write("\tstatic const uint16 addr_%s = 0x%04x;\n" %(name, addr))
+
+
+ for name,addr in self.used_data_offsets:
+ self.hd.write("\tstatic const uint16 offset_%s = 0x%04x;\n" %(name, addr))
+
offsets = []
for k, v in self.context.get_globals().items():
if isinstance(v, op.var):
@@ -561,10 +620,13 @@ public:
offsets = sorted(offsets, key=lambda t: t[1])
for o in offsets:
- self.hd.write("\tconst static uint16 k%s = %s;\n" %o)
+ self.hd.write("\tstatic const uint16 k%s = %s;\n" %o)
self.hd.write("\n")
for p in set(self.methods):
- self.hd.write("\tvoid %s();\n" %p)
+ if p in self.blacklist:
+ self.hd.write("\t//void %s();\n" %p)
+ else:
+ self.hd.write("\tvoid %s();\n" %p)
self.hd.write("};\n}\n\n#endif\n")
self.hd.close()
@@ -574,7 +636,7 @@ public:
self.fd.write("\nvoid %sContext::__dispatch_call(uint16 addr) {\n\tswitch(addr) {\n" %self.namespace)
self.proc_addr.sort(cmp = lambda x, y: x[1] - y[1])
for name,addr in self.proc_addr:
- self.fd.write("\t\tcase 0x%04x: %s(); break;\n" %(addr, name))
+ self.fd.write("\t\tcase addr_%s: %s(); break;\n" %(name, name))
self.fd.write("\t\tdefault: ::error(\"invalid call to %04x dispatched\", (uint16)ax);")
self.fd.write("\n\t}\n}\n\n} /*namespace*/\n")
diff --git a/devtools/tasmrecover/tasm/lex.py b/devtools/tasmrecover/tasm/lex.py
index cf7e6e19bf..9728c149ca 100644
--- a/devtools/tasmrecover/tasm/lex.py
+++ b/devtools/tasmrecover/tasm/lex.py
@@ -1,3 +1,24 @@
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
def parse_args(text):
#print "parsing: [%s]" %text
escape = False
diff --git a/devtools/tasmrecover/tasm/op.py b/devtools/tasmrecover/tasm/op.py
index 10fdd8a568..30852bcb58 100644
--- a/devtools/tasmrecover/tasm/op.py
+++ b/devtools/tasmrecover/tasm/op.py
@@ -1,3 +1,24 @@
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
import re
import lex
@@ -407,4 +428,3 @@ class label(baseop):
self.name = name
def visit(self, visitor):
visitor._label(self.name)
-
diff --git a/devtools/tasmrecover/tasm/parser.py b/devtools/tasmrecover/tasm/parser.py
index 4cea496722..ebbd714cf4 100644
--- a/devtools/tasmrecover/tasm/parser.py
+++ b/devtools/tasmrecover/tasm/parser.py
@@ -1,3 +1,24 @@
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
import os, re
from proc import proc
import lex
diff --git a/devtools/tasmrecover/tasm/proc.py b/devtools/tasmrecover/tasm/proc.py
index ed7053df89..50a394413f 100644
--- a/devtools/tasmrecover/tasm/proc.py
+++ b/devtools/tasmrecover/tasm/proc.py
@@ -1,3 +1,24 @@
+# ScummVM - Graphic Adventure Engine
+#
+# ScummVM is the legal property of its developers, whose names
+# are too numerous to list here. Please refer to the COPYRIGHT
+# file distributed with this source distribution.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+
import re
import op
diff --git a/devtools/themeparser.py b/devtools/themeparser.py
index a3524461a0..5c6f89897b 100644
--- a/devtools/themeparser.py
+++ b/devtools/themeparser.py
@@ -616,4 +616,3 @@ class STXBinaryFile(object):
if __name__ == '__main__':
bin = STXBinaryFile('../gui/themes/scummclassic', True, True)
bin.parse()
-
diff --git a/dists/android/AndroidManifest.xml b/dists/android/AndroidManifest.xml
index 1bc784cc4c..e540e4e8b9 100644
--- a/dists/android/AndroidManifest.xml
+++ b/dists/android/AndroidManifest.xml
@@ -58,4 +58,3 @@
<uses-configuration android:reqTouchScreen="stylus"
android:reqKeyboardType="qwerty"/>
</manifest>
-
diff --git a/dists/android/AndroidManifest.xml.in b/dists/android/AndroidManifest.xml.in
index a8d40bdddc..e9ab30a42b 100644
--- a/dists/android/AndroidManifest.xml.in
+++ b/dists/android/AndroidManifest.xml.in
@@ -58,4 +58,3 @@
<uses-configuration android:reqTouchScreen="stylus"
android:reqKeyboardType="qwerty"/>
</manifest>
-
diff --git a/dists/android/README.Android b/dists/android/README.Android
index 550b73bdfa..7fa8c08371 100644
--- a/dists/android/README.Android
+++ b/dists/android/README.Android
@@ -53,4 +53,3 @@ CONTROLS
Menu button: ScummVM menu
Menu button held for 0.5s: Toggle virtual keyboard
Camera or Search button: Right mouse button click
-
diff --git a/dists/android/mkplugin.sh b/dists/android/mkplugin.sh
index f4643132cf..1811fc0475 100755
--- a/dists/android/mkplugin.sh
+++ b/dists/android/mkplugin.sh
@@ -14,4 +14,3 @@ TARGET=$5
PLUGIN_DESC=`sed -n s/add_engine\s$PLUGIN_NAME\s\"\(.\+\)\"\s.*/\1/p` < $CONFIGURE
sed "s|@PLUGIN_NAME@|$PLUGIN_NAME|;s|@PLUGIN_VERSION_CODE@|$PLUGIN_VERSION_CODE|;s|@PLUGIN_DESC@|$PLUGIN_DESC|" < $TEMPLATE > $TARGET
-
diff --git a/dists/android/plugin-manifest.xml b/dists/android/plugin-manifest.xml
index 3fd9e393d0..2fbd56b367 100644
--- a/dists/android/plugin-manifest.xml
+++ b/dists/android/plugin-manifest.xml
@@ -32,4 +32,3 @@
<uses-configuration android:reqTouchScreen="stylus"
android:reqKeyboardType="qwerty"/>
</manifest>
-
diff --git a/dists/android/plugin-manifest.xml.in b/dists/android/plugin-manifest.xml.in
index c941b2f48c..47db078c93 100644
--- a/dists/android/plugin-manifest.xml.in
+++ b/dists/android/plugin-manifest.xml.in
@@ -32,4 +32,3 @@
<uses-configuration android:reqTouchScreen="stylus"
android:reqKeyboardType="qwerty"/>
</manifest>
-
diff --git a/dists/android/plugin-strings.xml b/dists/android/plugin-strings.xml
index 363503f8d8..ade37e0aca 100644
--- a/dists/android/plugin-strings.xml
+++ b/dists/android/plugin-strings.xml
@@ -4,4 +4,3 @@
<string name="app_name">ScummVM plugin: "@PLUGIN_NAME@"</string>
<string name="app_desc">Game engine for: @PLUGIN_DESC@</string>
</resources>
-
diff --git a/dists/android/res/layout/main.xml b/dists/android/res/layout/main.xml
index b6164edc96..7b633c416d 100644
--- a/dists/android/res/layout/main.xml
+++ b/dists/android/res/layout/main.xml
@@ -10,4 +10,3 @@
android:focusable="true"
android:focusableInTouchMode="true"
/>
-
diff --git a/dists/bada/Icons/mainMenu1.png b/dists/bada/Icons/mainMenu1.png
new file mode 100644
index 0000000000..fe016776ca
--- /dev/null
+++ b/dists/bada/Icons/mainMenu1.png
Binary files differ
diff --git a/dists/bada/Icons/mainMenu2.png b/dists/bada/Icons/mainMenu2.png
new file mode 100644
index 0000000000..1b6c99027b
--- /dev/null
+++ b/dists/bada/Icons/mainMenu2.png
Binary files differ
diff --git a/dists/bada/Icons/splash1.png b/dists/bada/Icons/splash1.png
new file mode 100644
index 0000000000..fa135fe0a1
--- /dev/null
+++ b/dists/bada/Icons/splash1.png
Binary files differ
diff --git a/dists/bada/Icons/splash2.png b/dists/bada/Icons/splash2.png
new file mode 100644
index 0000000000..ad27b535b7
--- /dev/null
+++ b/dists/bada/Icons/splash2.png
Binary files differ
diff --git a/dists/bada/Res/scummmobile/THEMERC b/dists/bada/Res/scummmobile/THEMERC
new file mode 100644
index 0000000000..61fccdb996
--- /dev/null
+++ b/dists/bada/Res/scummmobile/THEMERC
@@ -0,0 +1 @@
+[SCUMMVM_STX0.8.3:ScummVM Mobile Theme:No Author]
diff --git a/dists/bada/Res/scummmobile/checkbox.bmp b/dists/bada/Res/scummmobile/checkbox.bmp
new file mode 100644
index 0000000000..a0b91b569f
--- /dev/null
+++ b/dists/bada/Res/scummmobile/checkbox.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/checkbox_empty.bmp b/dists/bada/Res/scummmobile/checkbox_empty.bmp
new file mode 100644
index 0000000000..89ebdcbf41
--- /dev/null
+++ b/dists/bada/Res/scummmobile/checkbox_empty.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/clR6x12-iso-8859-2.fcc b/dists/bada/Res/scummmobile/clR6x12-iso-8859-2.fcc
new file mode 100644
index 0000000000..042bc5b24d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/clR6x12-iso-8859-2.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/clR6x12-iso-8859-5.fcc b/dists/bada/Res/scummmobile/clR6x12-iso-8859-5.fcc
new file mode 100644
index 0000000000..d8e614211d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/clR6x12-iso-8859-5.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/cursor.bmp b/dists/bada/Res/scummmobile/cursor.bmp
new file mode 100644
index 0000000000..e7bdb60cad
--- /dev/null
+++ b/dists/bada/Res/scummmobile/cursor.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/cursor_small.bmp b/dists/bada/Res/scummmobile/cursor_small.bmp
new file mode 100644
index 0000000000..024a6d0b9b
--- /dev/null
+++ b/dists/bada/Res/scummmobile/cursor_small.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/fixed5x8-iso-8859-2.fcc b/dists/bada/Res/scummmobile/fixed5x8-iso-8859-2.fcc
new file mode 100644
index 0000000000..73bb5fff2d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/fixed5x8-iso-8859-2.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/fixed5x8-iso-8859-5.fcc b/dists/bada/Res/scummmobile/fixed5x8-iso-8859-5.fcc
new file mode 100644
index 0000000000..e70388dd93
--- /dev/null
+++ b/dists/bada/Res/scummmobile/fixed5x8-iso-8859-5.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvB14-ASCII.fcc b/dists/bada/Res/scummmobile/helvB14-ASCII.fcc
new file mode 100644
index 0000000000..9e9c97f0a8
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB14-ASCII.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvB14.bdf b/dists/bada/Res/scummmobile/helvB14.bdf
new file mode 100644
index 0000000000..1374758bcc
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB14.bdf
@@ -0,0 +1,16308 @@
+STARTFONT 2.1
+FONT -Adobe-Helvetica-Bold-R-Normal--20-140-100-100-P-105-ISO10646-1
+SIZE 14 100 100
+FONTBOUNDINGBOX 22 29 -2 -7
+COMMENT ISO10646-1 extension by Markus Kuhn <mkuhn@acm.org>, 2001-03-20
+COMMENT
+COMMENT +
+COMMENT Copyright 1984-1989, 1994 Adobe Systems Incorporated.
+COMMENT Copyright 1988, 1994 Digital Equipment Corporation.
+COMMENT
+COMMENT Adobe is a trademark of Adobe Systems Incorporated which may be
+COMMENT registered in certain jurisdictions.
+COMMENT Permission to use these trademarks is hereby granted only in
+COMMENT association with the images described in this file.
+COMMENT
+COMMENT Permission to use, copy, modify, distribute and sell this software
+COMMENT and its documentation for any purpose and without fee is hereby
+COMMENT granted, provided that the above copyright notices appear in all
+COMMENT copies and that both those copyright notices and this permission
+COMMENT notice appear in supporting documentation, and that the names of
+COMMENT Adobe Systems and Digital Equipment Corporation not be used in
+COMMENT advertising or publicity pertaining to distribution of the software
+COMMENT without specific, written prior permission. Adobe Systems and
+COMMENT Digital Equipment Corporation make no representations about the
+COMMENT suitability of this software for any purpose. It is provided "as
+COMMENT is" without express or implied warranty.
+COMMENT -
+STARTPROPERTIES 26
+FOUNDRY "Adobe"
+FAMILY_NAME "Helvetica"
+WEIGHT_NAME "Bold"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 20
+POINT_SIZE 140
+RESOLUTION_X 100
+RESOLUTION_Y 100
+SPACING "P"
+AVERAGE_WIDTH 105
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+CAP_HEIGHT 14
+X_HEIGHT 10
+FONT_ASCENT 16
+FONT_DESCENT 5
+FACE_NAME "Helvetica Bold"
+COPYRIGHT "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved."
+NOTICE "Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. "
+_DEC_DEVICE_FONTNAMES "PS=Helvetica-Bold"
+DEFAULT_CHAR 0
+RELATIVE_SETWIDTH 50
+RELATIVE_WEIGHT 70
+FULL_NAME "Helvetica Bold"
+ENDPROPERTIES
+CHARS 756
+STARTCHAR char0
+ENCODING 0
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 11 13 1 0
+BITMAP
+AAA0
+0000
+8020
+0000
+8020
+0000
+8020
+0000
+8020
+0000
+8020
+0000
+AAA0
+ENDCHAR
+STARTCHAR space
+ENCODING 32
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+C0
+C0
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 474 0
+DWIDTH 7 0
+BBX 5 5 1 9
+BITMAP
+D8
+D8
+D8
+D8
+90
+ENDCHAR
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 11 13 0 0
+BITMAP
+0D80
+0D80
+0D80
+7FE0
+7FE0
+1B00
+1B00
+1B00
+FFC0
+FFC0
+3600
+3600
+3600
+ENDCHAR
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 16 0 -2
+BITMAP
+0400
+3F00
+7F80
+E580
+E400
+E400
+7C00
+3F00
+0F80
+09C0
+E9C0
+E9C0
+7F80
+3F00
+0800
+0800
+ENDCHAR
+STARTCHAR percent
+ENCODING 37
+SWIDTH 889 0
+DWIDTH 16 0
+BBX 13 13 1 0
+BITMAP
+7860
+FC60
+CCC0
+CC80
+FD80
+7B00
+0200
+06F0
+0DF8
+0998
+1998
+31F8
+30F0
+ENDCHAR
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 14 1 0
+BITMAP
+1E00
+3F00
+7380
+6180
+7300
+3E00
+1C60
+7E60
+E7E0
+C3C0
+C1C0
+E3E0
+7F70
+3E38
+ENDCHAR
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 238 0
+DWIDTH 4 0
+BBX 2 5 1 9
+BITMAP
+C0
+C0
+C0
+C0
+80
+ENDCHAR
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 18 1 -4
+BITMAP
+1C
+38
+30
+70
+60
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+60
+70
+30
+38
+1C
+ENDCHAR
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 18 0 -4
+BITMAP
+E0
+70
+30
+38
+18
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+18
+38
+30
+70
+E0
+ENDCHAR
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 389 0
+DWIDTH 9 0
+BBX 7 6 1 8
+BITMAP
+10
+D6
+7C
+38
+6C
+44
+ENDCHAR
+STARTCHAR plus
+ENCODING 43
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 8 8 1 1
+BITMAP
+18
+18
+18
+FF
+FF
+18
+18
+18
+ENDCHAR
+STARTCHAR comma
+ENCODING 44
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 6 1 -3
+BITMAP
+E0
+E0
+E0
+60
+C0
+80
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 3 0 4
+BITMAP
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR period
+ENCODING 46
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 3 1 0
+BITMAP
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR slash
+ENCODING 47
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 0 0
+BITMAP
+18
+18
+18
+38
+30
+30
+30
+70
+60
+60
+E0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR zero
+ENCODING 48
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+1C00
+7F00
+7700
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+7700
+7F00
+1C00
+ENDCHAR
+STARTCHAR one
+ENCODING 49
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 6 13 1 0
+BITMAP
+1C
+3C
+FC
+FC
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+ENDCHAR
+STARTCHAR two
+ENCODING 50
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3E00
+7F00
+E380
+E380
+0380
+0700
+1F00
+3E00
+7800
+7000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR three
+ENCODING 51
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3E00
+7F00
+E700
+E300
+0700
+1E00
+1F00
+0780
+0380
+E380
+E780
+7F00
+3E00
+ENDCHAR
+STARTCHAR four
+ENCODING 52
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+0700
+0F00
+1F00
+3F00
+3700
+7700
+6700
+E700
+FF80
+FF80
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR five
+ENCODING 53
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+FF00
+FF00
+E000
+E000
+FE00
+FF00
+E780
+0380
+0380
+E380
+E780
+FF00
+7E00
+ENDCHAR
+STARTCHAR six
+ENCODING 54
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3F00
+7F80
+7180
+E000
+EE00
+FF00
+F380
+E180
+E180
+E180
+F380
+7F00
+3E00
+ENDCHAR
+STARTCHAR seven
+ENCODING 55
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+FF80
+FF80
+0380
+0700
+0E00
+0E00
+1C00
+1C00
+3800
+3800
+7000
+7000
+7000
+ENDCHAR
+STARTCHAR eight
+ENCODING 56
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3E00
+7F00
+E380
+E380
+E380
+7F00
+3E00
+7700
+E380
+E380
+E380
+7F00
+3E00
+ENDCHAR
+STARTCHAR nine
+ENCODING 57
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3E00
+7F00
+E780
+C380
+C380
+C380
+E780
+7F80
+3B80
+0380
+C700
+FF00
+7E00
+ENDCHAR
+STARTCHAR colon
+ENCODING 58
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 3 10 1 0
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 3 13 1 -3
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+E0
+E0
+E0
+60
+C0
+80
+ENDCHAR
+STARTCHAR less
+ENCODING 60
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 9 1 0
+BITMAP
+0380
+0F80
+3E00
+7800
+E000
+7800
+3E00
+0F80
+0380
+ENDCHAR
+STARTCHAR equal
+ENCODING 61
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 5 1 3
+BITMAP
+FF80
+FF80
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR greater
+ENCODING 62
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 9 1 0
+BITMAP
+E000
+F800
+3E00
+0F00
+0380
+0F00
+3E00
+F800
+E000
+ENDCHAR
+STARTCHAR question
+ENCODING 63
+SWIDTH 611 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+7E
+FF
+E7
+E7
+0E
+1E
+1C
+38
+38
+38
+00
+38
+38
+38
+ENDCHAR
+STARTCHAR at
+ENCODING 64
+SWIDTH 975 0
+DWIDTH 18 0
+BBX 16 17 1 -3
+BITMAP
+07F0
+1FFC
+3C1E
+7006
+63B7
+E7F3
+C663
+CC63
+CCC3
+CCC6
+CCC6
+EFFC
+E7B8
+7000
+3C00
+1FF0
+07F0
+ENDCHAR
+STARTCHAR A
+ENCODING 65
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR B
+ENCODING 66
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 11 14 2 0
+BITMAP
+FE00
+FF80
+E3C0
+E1C0
+E1C0
+E380
+FF80
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+ENDCHAR
+STARTCHAR C
+ENCODING 67
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR D
+ENCODING 68
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+ENDCHAR
+STARTCHAR E
+ENCODING 69
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 14 2 0
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR F
+ENCODING 70
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR G
+ENCODING 71
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 14 1 0
+BITMAP
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR H
+ENCODING 72
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR I
+ENCODING 73
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR J
+ENCODING 74
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 14 0 0
+BITMAP
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+E380
+E380
+F780
+7F00
+3E00
+ENDCHAR
+STARTCHAR K
+ENCODING 75
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 14 1 0
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+ENDCHAR
+STARTCHAR L
+ENCODING 76
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR M
+ENCODING 77
+SWIDTH 833 0
+DWIDTH 16 0
+BBX 14 14 1 0
+BITMAP
+E01C
+E01C
+F03C
+F03C
+F87C
+F87C
+F87C
+ECDC
+ECDC
+ECDC
+E79C
+E79C
+E31C
+E31C
+ENDCHAR
+STARTCHAR N
+ENCODING 78
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR O
+ENCODING 79
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 14 1 0
+BITMAP
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR P
+ENCODING 80
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR Q
+ENCODING 81
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 15 1 -1
+BITMAP
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F378
+73F0
+79F0
+3FE0
+0FF0
+0030
+ENDCHAR
+STARTCHAR R
+ENCODING 82
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR S
+ENCODING 83
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR T
+ENCODING 84
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 14 0 0
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR U
+ENCODING 85
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR V
+ENCODING 86
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 14 0 0
+BITMAP
+E038
+E038
+7070
+7070
+3060
+38E0
+38E0
+1DC0
+1DC0
+0D80
+0F80
+0F80
+0700
+0700
+ENDCHAR
+STARTCHAR W
+ENCODING 87
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 14 1 0
+BITMAP
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR X
+ENCODING 88
+SWIDTH 667 0
+DWIDTH 12 0
+BBX 12 14 0 0
+BITMAP
+E070
+E070
+70E0
+79E0
+1980
+1F80
+0F00
+1F80
+1980
+39C0
+70E0
+70E0
+E070
+E070
+ENDCHAR
+STARTCHAR Y
+ENCODING 89
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 14 0 0
+BITMAP
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR Z
+ENCODING 90
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 18 1 -4
+BITMAP
+F8
+F8
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+F8
+F8
+ENDCHAR
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 0 0
+BITMAP
+C0
+C0
+C0
+E0
+60
+60
+60
+70
+30
+30
+38
+18
+18
+18
+ENDCHAR
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 18 0 -4
+BITMAP
+F8
+F8
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F8
+ENDCHAR
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 584 0
+DWIDTH 10 0
+BBX 10 7 0 6
+BITMAP
+0C00
+1E00
+1E00
+3300
+7380
+6180
+E1C0
+ENDCHAR
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 2 0 -4
+BITMAP
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR grave
+ENCODING 96
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 11
+BITMAP
+E0
+70
+38
+ENDCHAR
+STARTCHAR a
+ENCODING 97
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 10 1 0
+BITMAP
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR b
+ENCODING 98
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+ENDCHAR
+STARTCHAR c
+ENCODING 99
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR d
+ENCODING 100
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+ENDCHAR
+STARTCHAR e
+ENCODING 101
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR f
+ENCODING 102
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 14 0 0
+BITMAP
+1E
+3E
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR g
+ENCODING 103
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 -4
+BITMAP
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR h
+ENCODING 104
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR i
+ENCODING 105
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR j
+ENCODING 106
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 18 -1 -4
+BITMAP
+38
+38
+38
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR k
+ENCODING 107
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 14 1 0
+BITMAP
+E000
+E000
+E000
+E000
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+ENDCHAR
+STARTCHAR l
+ENCODING 108
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR m
+ENCODING 109
+SWIDTH 889 0
+DWIDTH 17 0
+BBX 15 10 1 0
+BITMAP
+EF3C
+FFFE
+F3CE
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+ENDCHAR
+STARTCHAR n
+ENCODING 110
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR o
+ENCODING 111
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 10 1 0
+BITMAP
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR p
+ENCODING 112
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 -4
+BITMAP
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR q
+ENCODING 113
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 -4
+BITMAP
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+01C0
+01C0
+01C0
+ENDCHAR
+STARTCHAR r
+ENCODING 114
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 10 1 0
+BITMAP
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR s
+ENCODING 115
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+ENDCHAR
+STARTCHAR t
+ENCODING 116
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 13 0 0
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+ENDCHAR
+STARTCHAR u
+ENCODING 117
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR v
+ENCODING 118
+SWIDTH 556 0
+DWIDTH 9 0
+BBX 9 10 0 0
+BITMAP
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+ENDCHAR
+STARTCHAR w
+ENCODING 119
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 10 0 0
+BITMAP
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR x
+ENCODING 120
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+E380
+E380
+7700
+3E00
+1C00
+3E00
+7700
+7700
+E380
+E380
+ENDCHAR
+STARTCHAR y
+ENCODING 121
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR z
+ENCODING 122
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 10 1 0
+BITMAP
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 389 0
+DWIDTH 8 0
+BBX 7 18 1 -4
+BITMAP
+0E
+1C
+38
+38
+38
+38
+38
+70
+E0
+70
+38
+38
+38
+38
+38
+38
+1C
+0E
+ENDCHAR
+STARTCHAR bar
+ENCODING 124
+SWIDTH 280 0
+DWIDTH 5 0
+BBX 2 18 1 -4
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 389 0
+DWIDTH 8 0
+BBX 7 18 0 -4
+BITMAP
+E0
+70
+38
+38
+38
+38
+38
+1C
+0E
+1C
+38
+38
+38
+38
+38
+38
+70
+E0
+ENDCHAR
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 3 1 4
+BITMAP
+7980
+FF80
+CF00
+ENDCHAR
+STARTCHAR space
+ENCODING 160
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 3 14 2 -4
+BITMAP
+E0
+E0
+E0
+00
+60
+60
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR cent
+ENCODING 162
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 8 14 1 -2
+BITMAP
+02
+02
+3E
+7F
+E7
+C8
+C8
+D0
+D0
+E3
+7F
+7E
+40
+40
+ENDCHAR
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 13 0 0
+BITMAP
+1F00
+3FC0
+71C0
+7000
+7000
+3800
+7F00
+1C00
+1C00
+3800
+70C0
+FFC0
+EF80
+ENDCHAR
+STARTCHAR currency
+ENCODING 164
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 8 1 2
+BITMAP
+C180
+FF80
+7700
+6300
+6300
+7700
+FF80
+C180
+ENDCHAR
+STARTCHAR yen
+ENCODING 165
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+E380
+E380
+E380
+7700
+7700
+3E00
+FF80
+1C00
+FF80
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR brokenbar
+ENCODING 166
+SWIDTH 280 0
+DWIDTH 5 0
+BBX 2 18 1 -4
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR section
+ENCODING 167
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 18 0 -4
+BITMAP
+3E00
+7F00
+E380
+E380
+F000
+7C00
+FE00
+C700
+C380
+E180
+7180
+3F80
+0F00
+0780
+E380
+E380
+7F00
+3E00
+ENDCHAR
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 2 1 12
+BITMAP
+D8
+D8
+ENDCHAR
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 737 0
+DWIDTH 15 0
+BBX 14 14 1 0
+BITMAP
+0FC0
+3870
+6018
+C78C
+CFCC
+98C4
+9804
+9804
+9844
+CFCC
+C78C
+6018
+3870
+0FC0
+ENDCHAR
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 370 0
+DWIDTH 8 0
+BBX 6 9 1 5
+BITMAP
+78
+8C
+7C
+CC
+CC
+74
+00
+FC
+FC
+ENDCHAR
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 8 0 1
+BITMAP
+1DC0
+3B80
+7700
+EE00
+EE00
+7700
+3B80
+1DC0
+ENDCHAR
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 5 1 3
+BITMAP
+FF80
+FF80
+0180
+0180
+0180
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 3 0 4
+BITMAP
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR registered
+ENCODING 174
+SWIDTH 737 0
+DWIDTH 15 0
+BBX 13 14 1 0
+BITMAP
+0F80
+3060
+6010
+5F90
+99C8
+98C8
+99C8
+9F08
+9988
+9988
+58D0
+6030
+38E0
+0F80
+ENDCHAR
+STARTCHAR macron
+ENCODING 175
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 2 1 12
+BITMAP
+F8
+F8
+ENDCHAR
+STARTCHAR degree
+ENCODING 176
+SWIDTH 400 0
+DWIDTH 7 0
+BBX 6 6 0 7
+BITMAP
+78
+FC
+CC
+CC
+FC
+78
+ENDCHAR
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 9 1 0
+BITMAP
+1C00
+1C00
+FF80
+FF80
+1C00
+1C00
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 8 0 5
+BITMAP
+78
+FC
+CC
+1C
+78
+E0
+FC
+FC
+ENDCHAR
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 8 0 5
+BITMAP
+78
+FC
+CC
+38
+3C
+CC
+FC
+78
+ENDCHAR
+STARTCHAR acute
+ENCODING 180
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 11
+BITMAP
+38
+70
+E0
+ENDCHAR
+STARTCHAR mu
+ENCODING 181
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+FB80
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 18 0 -4
+BITMAP
+3F80
+7B00
+FB00
+FB00
+FB00
+FB00
+FB00
+7B00
+3B00
+1B00
+1B00
+1B00
+1B00
+1B00
+1B00
+1B00
+1B00
+1B00
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 2 2 1 6
+BITMAP
+C0
+C0
+ENDCHAR
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 5 1 -5
+BITMAP
+60
+70
+18
+F8
+F0
+ENDCHAR
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 4 8 0 5
+BITMAP
+30
+F0
+F0
+30
+30
+30
+30
+30
+ENDCHAR
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 365 0
+DWIDTH 8 0
+BBX 6 9 1 5
+BITMAP
+78
+CC
+CC
+CC
+CC
+78
+00
+FC
+FC
+ENDCHAR
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 8 0 1
+BITMAP
+EE00
+7700
+3B80
+1DC0
+1DC0
+3B80
+7700
+EE00
+ENDCHAR
+STARTCHAR onequarter
+ENCODING 188
+SWIDTH 834 0
+DWIDTH 15 0
+BBX 14 13 0 0
+BITMAP
+3060
+F060
+F0C0
+30C0
+3180
+3198
+3338
+3638
+0678
+0CD8
+0CFC
+1818
+1818
+ENDCHAR
+STARTCHAR onehalf
+ENCODING 189
+SWIDTH 834 0
+DWIDTH 15 0
+BBX 15 13 0 0
+BITMAP
+3060
+F060
+F0C0
+30C0
+3180
+31BC
+337E
+3666
+060E
+0C3C
+0C70
+187E
+187E
+ENDCHAR
+STARTCHAR threequarters
+ENCODING 190
+SWIDTH 834 0
+DWIDTH 15 0
+BBX 14 13 0 0
+BITMAP
+7830
+FC30
+CC60
+3860
+3CC0
+CCD8
+FDB8
+7B38
+0378
+06D8
+06FC
+0C18
+0C18
+ENDCHAR
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 611 0
+DWIDTH 10 0
+BBX 8 14 1 -4
+BITMAP
+1C
+1C
+1C
+00
+1C
+1C
+1C
+38
+78
+70
+E7
+E7
+FF
+7E
+ENDCHAR
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3800
+1C00
+0600
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+01C0
+0380
+0600
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0E20
+1FC0
+2380
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1980
+1980
+1980
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0F00
+1980
+1980
+0F00
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR AE
+ENCODING 198
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 16 14 1 0
+BITMAP
+0FFF
+0FFF
+1F80
+1B80
+3B80
+3B80
+33FE
+73FE
+7380
+7F80
+FF80
+E380
+E3FF
+E3FF
+ENDCHAR
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+3800
+1C00
+0600
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+0380
+0700
+0C00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+0E00
+1F00
+3B80
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+3300
+3300
+3300
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 18 -1 0
+BITMAP
+E0
+70
+18
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 18 1 0
+BITMAP
+38
+70
+C0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 0
+BITMAP
+38
+7C
+EE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 6 18 0 0
+BITMAP
+CC
+CC
+CC
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 14 -1 0
+BITMAP
+3FC0
+3FF0
+3878
+3838
+381C
+381C
+FF1C
+FF1C
+381C
+381C
+3838
+3878
+3FF0
+3FC0
+ENDCHAR
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0E20
+1FC0
+2380
+0000
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+1C00
+0E00
+0300
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+01C0
+0380
+0600
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+0710
+0FE0
+11C0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+0CC0
+0CC0
+0CC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 10 8 0 1
+BITMAP
+E1C0
+7380
+3F00
+1E00
+1E00
+3F00
+7380
+E1C0
+ENDCHAR
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 14 0 0
+BITMAP
+07C6
+1FFC
+3C38
+3878
+78DC
+719C
+711C
+731C
+761C
+7C3C
+3838
+3C78
+7FF0
+C7C0
+ENDCHAR
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1C00
+0E00
+0300
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+01C0
+0380
+0600
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1980
+1980
+1980
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 18 0 0
+BITMAP
+01C0
+0380
+0600
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+E000
+E000
+E000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 611 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+3C
+7E
+E7
+E7
+E7
+E7
+EE
+EE
+E7
+E7
+E7
+E7
+EF
+EE
+ENDCHAR
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+7000
+3800
+0C00
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+0380
+0700
+0C00
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+3300
+3300
+3300
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR aring
+ENCODING 229
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+3C00
+6600
+6600
+3C00
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR ae
+ENCODING 230
+SWIDTH 889 0
+DWIDTH 16 0
+BBX 14 10 1 0
+BITMAP
+3DF0
+7FF8
+671C
+0F1C
+3FFC
+7700
+E700
+EF9C
+FFFC
+79F0
+ENDCHAR
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 15 1 -5
+BITMAP
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7000
+3800
+0C00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0380
+0700
+0C00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3300
+3300
+3300
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 -1 0
+BITMAP
+E0
+70
+18
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 1 0
+BITMAP
+38
+70
+C0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -1 0
+BITMAP
+38
+7C
+EE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 0 0
+BITMAP
+D8
+D8
+D8
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR eth
+ENCODING 240
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+6000
+3700
+3C00
+6600
+1F00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+7000
+3800
+0C00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+0380
+0700
+0C00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+3300
+3300
+3300
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR divide
+ENCODING 247
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 8 1 1
+BITMAP
+1C00
+1C00
+0000
+FF80
+FF80
+0000
+1C00
+1C00
+ENDCHAR
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 10 0 0
+BITMAP
+0F30
+3FE0
+39C0
+73E0
+77E0
+7EE0
+7CE0
+39C0
+7FC0
+CF00
+ENDCHAR
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7000
+3800
+0C00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0380
+0700
+0C00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+0700
+0E00
+1800
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR Amacron
+ENCODING 256
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0F80
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR amacron
+ENCODING 257
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 13 1 0
+BITMAP
+3E00
+3E00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR Abreve
+ENCODING 258
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+18C0
+1DC0
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR abreve
+ENCODING 259
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+6300
+7700
+3E00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR Aogonek
+ENCODING 260
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+0700
+0E00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR aogonek
+ENCODING 261
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 15 1 -5
+BITMAP
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+0E00
+1C00
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR Cacute
+ENCODING 262
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR cacute
+ENCODING 263
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Ccircumflex
+ENCODING 264
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR ccircumflex
+ENCODING 265
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Cdotaccent
+ENCODING 266
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0600
+0600
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR cdotaccent
+ENCODING 267
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+0C00
+0C00
+0000
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Ccaron
+ENCODING 268
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR ccaron
+ENCODING 269
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Dcaron
+ENCODING 270
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+ENDCHAR
+STARTCHAR dcaron
+ENCODING 271
+SWIDTH 858 0
+DWIDTH 16 0
+BBX 14 14 1 0
+BITMAP
+01DC
+01DC
+01CC
+01CC
+3DD8
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+ENDCHAR
+STARTCHAR Dcroat
+ENCODING 272
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 14 -1 0
+BITMAP
+3FC0
+3FF0
+3878
+3838
+381C
+381C
+FF1C
+FF1C
+381C
+381C
+3838
+3878
+3FF0
+3FC0
+ENDCHAR
+STARTCHAR dcroat
+ENCODING 273
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+01C0
+01C0
+03C0
+03C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+ENDCHAR
+STARTCHAR Emacron
+ENCODING 274
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 17 2 0
+BITMAP
+3E00
+3E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR emacron
+ENCODING 275
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+3E00
+3E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Ebreve
+ENCODING 276
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+6300
+7700
+3E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR ebreve
+ENCODING 277
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+6300
+7700
+3E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Edotaccent
+ENCODING 278
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 17 2 0
+BITMAP
+1800
+1800
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR edotaccent
+ENCODING 279
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+0C00
+0C00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Eogonek
+ENCODING 280
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 19 2 -5
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+1C00
+3800
+7000
+7E00
+3C00
+ENDCHAR
+STARTCHAR eogonek
+ENCODING 281
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 15 1 -5
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+0E00
+1C00
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR Ecaron
+ENCODING 282
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+7700
+3E00
+1C00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR ecaron
+ENCODING 283
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Gcircumflex
+ENCODING 284
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR gcircumflex
+ENCODING 285
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+0E00
+1F00
+3B80
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Gbreve
+ENCODING 286
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 18 1 0
+BITMAP
+18C0
+1DC0
+0F80
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR gbreve
+ENCODING 287
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+3180
+3B80
+1F00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Gdotaccent
+ENCODING 288
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 17 1 0
+BITMAP
+0600
+0600
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR gdotaccent
+ENCODING 289
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -4
+BITMAP
+0C00
+0C00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Gcommaaccent
+ENCODING 290
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 21 1 -7
+BITMAP
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+0000
+0700
+0700
+0700
+0300
+0600
+0400
+ENDCHAR
+STARTCHAR gcommaaccent
+ENCODING 291
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 20 1 -4
+BITMAP
+0600
+0C00
+0C00
+0E00
+0E00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Hcircumflex
+ENCODING 292
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR hcircumflex
+ENCODING 293
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 10 18 0 0
+BITMAP
+3800
+7C00
+EE00
+0000
+7000
+7000
+7000
+7000
+7780
+7FC0
+79C0
+71C0
+71C0
+71C0
+71C0
+71C0
+71C0
+71C0
+ENDCHAR
+STARTCHAR Hbar
+ENCODING 294
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR hbar
+ENCODING 295
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+E000
+E000
+F000
+F000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR Itilde
+ENCODING 296
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 0
+BITMAP
+76
+FE
+DC
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR itilde
+ENCODING 297
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -1 0
+BITMAP
+76
+FE
+DC
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Imacron
+ENCODING 298
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 17 0 0
+BITMAP
+F8
+F8
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR imacron
+ENCODING 299
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 13 0 0
+BITMAP
+F8
+F8
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Ibreve
+ENCODING 300
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 0
+BITMAP
+C6
+EE
+7C
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR ibreve
+ENCODING 301
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -1 0
+BITMAP
+C6
+EE
+7C
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Iogonek
+ENCODING 302
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 6 19 0 -5
+BITMAP
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+38
+70
+E0
+FC
+78
+ENDCHAR
+STARTCHAR iogonek
+ENCODING 303
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 6 19 0 -5
+BITMAP
+70
+70
+70
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+38
+70
+E0
+FC
+78
+ENDCHAR
+STARTCHAR Idotaccent
+ENCODING 304
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 17 1 0
+BITMAP
+60
+60
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR dotlessi
+ENCODING 305
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 10 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR IJ
+ENCODING 306
+SWIDTH 820 0
+DWIDTH 15 0
+BBX 13 14 1 0
+BITMAP
+E038
+E038
+E038
+E038
+E038
+E038
+E038
+E038
+E038
+EE38
+EE38
+EF78
+E7F0
+E3E0
+ENDCHAR
+STARTCHAR ij
+ENCODING 307
+SWIDTH 542 0
+DWIDTH 10 0
+BBX 8 18 1 -4
+BITMAP
+E7
+E7
+E7
+00
+E7
+E7
+E7
+E7
+E7
+E7
+E7
+E7
+E7
+E7
+07
+07
+1F
+1E
+ENDCHAR
+STARTCHAR Jcircumflex
+ENCODING 308
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 18 0 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+E380
+E380
+F780
+7F00
+3E00
+ENDCHAR
+STARTCHAR jcircumflex
+ENCODING 309
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 -4
+BITMAP
+38
+7C
+EE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR Kcommaaccent
+ENCODING 310
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 21 1 -7
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+0000
+0700
+0700
+0700
+0300
+0600
+0400
+ENDCHAR
+STARTCHAR kcommaaccent
+ENCODING 311
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 21 1 -7
+BITMAP
+E000
+E000
+E000
+E000
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+0000
+1C00
+1C00
+1C00
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR kgreenlandic
+ENCODING 312
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 10 1 0
+BITMAP
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+ENDCHAR
+STARTCHAR Lacute
+ENCODING 313
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+1C00
+3800
+7000
+0000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR lacute
+ENCODING 314
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 18 1 0
+BITMAP
+38
+70
+E0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Lcommaaccent
+ENCODING 315
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 21 1 -7
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+0000
+1C00
+1C00
+1C00
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR lcommaaccent
+ENCODING 316
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 21 1 -7
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+E0
+E0
+E0
+60
+C0
+80
+ENDCHAR
+STARTCHAR Lcaron
+ENCODING 317
+SWIDTH 858 0
+DWIDTH 15 0
+BBX 13 14 1 0
+BITMAP
+E038
+E038
+E018
+E018
+E030
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR lcaron
+ENCODING 318
+SWIDTH 542 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+E7
+E7
+E3
+E3
+E6
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Ldot
+ENCODING 319
+SWIDTH 858 0
+DWIDTH 15 0
+BBX 12 14 1 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E030
+E030
+E000
+E000
+E000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR ldot
+ENCODING 320
+SWIDTH 542 0
+DWIDTH 10 0
+BBX 7 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E6
+E6
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Lslash
+ENCODING 321
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 10 14 0 0
+BITMAP
+7000
+7000
+7000
+7000
+7600
+7E00
+F800
+F000
+7000
+7000
+7000
+7000
+7FC0
+7FC0
+ENDCHAR
+STARTCHAR lslash
+ENCODING 322
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 14 0 0
+BITMAP
+70
+70
+70
+70
+70
+78
+F8
+F0
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Nacute
+ENCODING 323
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR nacute
+ENCODING 324
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR Ncommaaccent
+ENCODING 325
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 -7
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+0000
+0700
+0700
+0700
+0300
+0600
+0400
+ENDCHAR
+STARTCHAR ncommaaccent
+ENCODING 326
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 -7
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+1C00
+1C00
+1C00
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR Ncaron
+ENCODING 327
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR ncaron
+ENCODING 328
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR napostrophe
+ENCODING 329
+SWIDTH 875 0
+DWIDTH 16 0
+BBX 14 14 1 0
+BITMAP
+E000
+E000
+6000
+6000
+C778
+07FC
+079C
+071C
+071C
+071C
+071C
+071C
+071C
+071C
+ENDCHAR
+STARTCHAR Eng
+ENCODING 330
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+0070
+0070
+01F0
+01E0
+ENDCHAR
+STARTCHAR eng
+ENCODING 331
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0380
+0380
+0F80
+0F00
+ENDCHAR
+STARTCHAR Omacron
+ENCODING 332
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 17 1 0
+BITMAP
+0F80
+0F80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR omacron
+ENCODING 333
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 13 1 0
+BITMAP
+1F00
+1F00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Obreve
+ENCODING 334
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+18C0
+1DC0
+0F80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR obreve
+ENCODING 335
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+3180
+3B80
+1F00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Ohungarumlaut
+ENCODING 336
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+0360
+06C0
+0D80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR ohungarumlaut
+ENCODING 337
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+0D80
+1B00
+3600
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR OE
+ENCODING 338
+SWIDTH 1000 0
+DWIDTH 19 0
+BBX 17 14 1 0
+BITMAP
+0FFF80
+3FFF80
+79E000
+70E000
+F0E000
+E0E000
+E0FF00
+E0FF00
+E0E000
+F0E000
+70E000
+79E000
+3FFF80
+0FFF80
+ENDCHAR
+STARTCHAR oe
+ENCODING 339
+SWIDTH 944 0
+DWIDTH 18 0
+BBX 16 10 1 0
+BITMAP
+3F7C
+7FFE
+73C7
+E1C7
+E1FF
+E1C0
+E1C0
+73E7
+7FFF
+3F7C
+ENDCHAR
+STARTCHAR Racute
+ENCODING 340
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR racute
+ENCODING 341
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 14 1 0
+BITMAP
+1C
+38
+70
+00
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Rcommaaccent
+ENCODING 342
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 -7
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+0000
+0E00
+0E00
+0E00
+0600
+0C00
+0800
+ENDCHAR
+STARTCHAR rcommaaccent
+ENCODING 343
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 17 1 -7
+BITMAP
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+70
+70
+70
+30
+60
+40
+ENDCHAR
+STARTCHAR Rcaron
+ENCODING 344
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR rcaron
+ENCODING 345
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 7 14 0 0
+BITMAP
+EE
+7C
+38
+00
+76
+7E
+7E
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Sacute
+ENCODING 346
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR sacute
+ENCODING 347
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+ENDCHAR
+STARTCHAR Scircumflex
+ENCODING 348
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 18 1 0
+BITMAP
+0E00
+1F00
+3B80
+0000
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR scircumflex
+ENCODING 349
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+1C00
+3E00
+7700
+0000
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+ENDCHAR
+STARTCHAR Scedilla
+ENCODING 350
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 19 1 -5
+BITMAP
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR scedilla
+ENCODING 351
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 15 1 -5
+BITMAP
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR Scaron
+ENCODING 352
+SWIDTH 667 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+3F00
+7F80
+E380
+F800
+7E00
+1F80
+E3C0
+F3C0
+7F80
+3F00
+ENDCHAR
+STARTCHAR scaron
+ENCODING 353
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+77
+3E
+1C
+00
+1E
+7F
+E7
+E0
+FE
+3F
+07
+E7
+FE
+78
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 354
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 19 0 -5
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 355
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 18 0 -5
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+30
+38
+0C
+7C
+78
+ENDCHAR
+STARTCHAR Tcaron
+ENCODING 356
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 18 0 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR tcaron
+ENCODING 357
+SWIDTH 594 0
+DWIDTH 11 0
+BBX 10 14 0 0
+BITMAP
+01C0
+71C0
+70C0
+70C0
+FD80
+FC00
+7000
+7000
+7000
+7000
+7000
+7000
+7C00
+3C00
+ENDCHAR
+STARTCHAR Tbar
+ENCODING 358
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 14 0 0
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR tbar
+ENCODING 359
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 13 0 0
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+78
+78
+70
+70
+7C
+3C
+ENDCHAR
+STARTCHAR Utilde
+ENCODING 360
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR utilde
+ENCODING 361
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Umacron
+ENCODING 362
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0F80
+0F80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR umacron
+ENCODING 363
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+3E00
+3E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Ubreve
+ENCODING 364
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+18C0
+1DC0
+0F80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR ubreve
+ENCODING 365
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+6300
+7700
+3E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Uring
+ENCODING 366
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0F00
+1980
+1980
+0F00
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uring
+ENCODING 367
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 15 1 0
+BITMAP
+1E00
+3300
+3300
+1E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Uhungarumlaut
+ENCODING 368
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+06C0
+0D80
+1B00
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uhungarumlaut
+ENCODING 369
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0D80
+1B00
+3600
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Uogonek
+ENCODING 370
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0700
+0E00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR uogonek
+ENCODING 371
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 15 1 -5
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0E00
+1C00
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR Wcircumflex
+ENCODING 372
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 18 1 0
+BITMAP
+0380
+07C0
+0EE0
+0000
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR wcircumflex
+ENCODING 373
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 14 0 0
+BITMAP
+0380
+07C0
+0EE0
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR Ycircumflex
+ENCODING 374
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 18 0 0
+BITMAP
+0700
+0F80
+1DC0
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR ycircumflex
+ENCODING 375
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+1C00
+3E00
+7700
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR Ydieresis
+ENCODING 376
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 13 1 0
+BITMAP
+1B00
+1B00
+0000
+E0E0
+60C0
+71C0
+3180
+1B00
+1F00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR Zacute
+ENCODING 377
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR zacute
+ENCODING 378
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+0E
+1C
+38
+00
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR Zdotaccent
+ENCODING 379
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+0C00
+0C00
+0000
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR zdotaccent
+ENCODING 380
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 13 1 0
+BITMAP
+18
+18
+00
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR Zcaron
+ENCODING 381
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 10 14 0 0
+BITMAP
+7700
+3E00
+1C00
+0000
+FF80
+FF80
+0700
+0E00
+1C00
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR zcaron
+ENCODING 382
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+EE
+7C
+38
+00
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR uni0186
+ENCODING 390
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+1F00
+7FC0
+71E0
+E0E0
+E0F0
+0070
+0070
+0070
+0070
+E0F0
+E0E0
+71E0
+7FC0
+1F00
+ENDCHAR
+STARTCHAR uni0189
+ENCODING 393
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 14 -1 0
+BITMAP
+3FC0
+3FF0
+3878
+3838
+381C
+381C
+FF1C
+FF1C
+381C
+381C
+3838
+3878
+3FF0
+3FC0
+ENDCHAR
+STARTCHAR uni018E
+ENCODING 398
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 14 2 0
+BITMAP
+FFC0
+FFC0
+01C0
+01C0
+01C0
+01C0
+7FC0
+7FC0
+01C0
+01C0
+01C0
+01C0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR florin
+ENCODING 402
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 17 -1 -4
+BITMAP
+03C0
+07C0
+0E00
+0E00
+7F80
+7F80
+1C00
+1C00
+1C00
+1C00
+1C00
+3800
+3800
+3800
+3800
+F000
+E000
+ENDCHAR
+STARTCHAR uni0197
+ENCODING 407
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni019A
+ENCODING 410
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni019D
+ENCODING 413
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 18 -1 -4
+BITMAP
+381C
+3C1C
+3C1C
+3E1C
+3F1C
+3B1C
+3B9C
+399C
+39DC
+38DC
+387C
+387C
+383C
+381C
+3800
+3800
+F800
+F000
+ENDCHAR
+STARTCHAR uni019F
+ENCODING 415
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 14 1 0
+BITMAP
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+FFF8
+FFF8
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Ohorn
+ENCODING 416
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 14 1 0
+BITMAP
+0F8E
+3FEE
+78F6
+7076
+F07C
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR ohorn
+ENCODING 417
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 10 1 0
+BITMAP
+1E70
+7FF0
+73B0
+E1F0
+E1E0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni01A7
+ENCODING 423
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+3F80
+7FC0
+F1E0
+E0E0
+01E0
+0FC0
+3F80
+7E00
+F000
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni01A8
+ENCODING 424
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+7E00
+FF00
+E380
+0380
+7F80
+FE00
+E000
+E380
+7F80
+3F00
+ENDCHAR
+STARTCHAR uni01AE
+ENCODING 430
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 18 0 -4
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0F80
+0780
+ENDCHAR
+STARTCHAR Uhorn
+ENCODING 431
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 14 1 0
+BITMAP
+E07C
+E07C
+E07C
+E07C
+E078
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uhorn
+ENCODING 432
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 10 1 0
+BITMAP
+E3E0
+E3E0
+E3E0
+E3E0
+E3C0
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01B5
+ENCODING 437
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1E00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni01B6
+ENCODING 438
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 10 1 0
+BITMAP
+FF
+FF
+07
+0E
+1C
+3C
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR uni01BB
+ENCODING 443
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+3E00
+7F00
+E380
+E380
+0380
+FF80
+FF80
+3E00
+7800
+7000
+E000
+FF80
+FF80
+ENDCHAR
+STARTCHAR uni01BC
+ENCODING 444
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 13 0 0
+BITMAP
+FF00
+FF00
+E000
+E000
+FE00
+FF00
+E780
+0380
+0380
+E380
+E780
+FF00
+7E00
+ENDCHAR
+STARTCHAR uni01C0
+ENCODING 448
+SWIDTH 280 0
+DWIDTH 5 0
+BBX 2 18 1 -4
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR uni01C2
+ENCODING 450
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 18 1 -3
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FF80
+FF80
+0C00
+FF80
+FF80
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni01C3
+ENCODING 451
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 3 14 1 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+C0
+C0
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni01CD
+ENCODING 461
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni01CE
+ENCODING 462
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni01CF
+ENCODING 463
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 0
+BITMAP
+EE
+7C
+38
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni01D0
+ENCODING 464
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -1 0
+BITMAP
+EE
+7C
+38
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni01D1
+ENCODING 465
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni01D2
+ENCODING 466
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni01D3
+ENCODING 467
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01D4
+ENCODING 468
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01D5
+ENCODING 469
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 0
+BITMAP
+0F80
+0F80
+0000
+1980
+1980
+1980
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01D6
+ENCODING 470
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+3E00
+3E00
+0000
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01D7
+ENCODING 471
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+1980
+1980
+1980
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01D8
+ENCODING 472
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01D9
+ENCODING 473
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+1980
+1980
+1980
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01DA
+ENCODING 474
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+7700
+3E00
+1C00
+0000
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01DB
+ENCODING 475
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+1980
+1980
+1980
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01DC
+ENCODING 476
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+3800
+1C00
+0E00
+0000
+3300
+3300
+3300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni01DD
+ENCODING 477
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+3C00
+FF00
+E700
+0380
+FF80
+FF80
+C380
+E700
+7F00
+3C00
+ENDCHAR
+STARTCHAR uni01DE
+ENCODING 478
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 0
+BITMAP
+0F80
+0F80
+0000
+1980
+1980
+1980
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni01DF
+ENCODING 479
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 17 1 0
+BITMAP
+1F00
+1F00
+0000
+3300
+3300
+3300
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni01E0
+ENCODING 480
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 20 1 0
+BITMAP
+0F80
+0F80
+0000
+0600
+0600
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni01E1
+ENCODING 481
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 16 1 0
+BITMAP
+3E00
+3E00
+0000
+0C00
+0C00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni01E2
+ENCODING 482
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 16 17 1 0
+BITMAP
+03E0
+03E0
+0000
+0FFF
+0FFF
+1F80
+1B80
+3B80
+3B80
+33FE
+73FE
+7380
+7F80
+FF80
+E380
+E3FF
+E3FF
+ENDCHAR
+STARTCHAR uni01E3
+ENCODING 483
+SWIDTH 889 0
+DWIDTH 16 0
+BBX 14 13 1 0
+BITMAP
+07C0
+07C0
+0000
+3DF0
+7FF8
+671C
+0F1C
+3FFC
+7700
+E700
+EF9C
+FFFC
+79F0
+ENDCHAR
+STARTCHAR uni01E4
+ENCODING 484
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 14 1 0
+BITMAP
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR uni01E5
+ENCODING 485
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 -4
+BITMAP
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+FFC0
+FFC0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR Gcaron
+ENCODING 486
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR gcaron
+ENCODING 487
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+3B80
+1F00
+0E00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni01E8
+ENCODING 488
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 18 1 0
+BITMAP
+3B80
+1F00
+0E00
+0000
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+ENDCHAR
+STARTCHAR uni01E9
+ENCODING 489
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 18 0 0
+BITMAP
+EE00
+7C00
+3800
+0000
+7000
+7000
+7000
+7000
+7380
+7700
+7E00
+7C00
+7C00
+7E00
+7700
+7380
+73C0
+71C0
+ENDCHAR
+STARTCHAR uni01EA
+ENCODING 490
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 19 1 -5
+BITMAP
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+0380
+0700
+0E00
+0FC0
+0780
+ENDCHAR
+STARTCHAR uni01EB
+ENCODING 491
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 15 1 -5
+BITMAP
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+0E00
+1C00
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR uni01EC
+ENCODING 492
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 22 1 -5
+BITMAP
+0F80
+0F80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+0380
+0700
+0E00
+0FC0
+0780
+ENDCHAR
+STARTCHAR uni01ED
+ENCODING 493
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -5
+BITMAP
+1F00
+1F00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+0E00
+1C00
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR uni01F0
+ENCODING 496
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 -4
+BITMAP
+EE
+7C
+38
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR uni01F4
+ENCODING 500
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR uni01F5
+ENCODING 501
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+0380
+0700
+0E00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni01F8
+ENCODING 504
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR uni01F9
+ENCODING 505
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+7000
+3800
+1C00
+0000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR Aringacute
+ENCODING 506
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+0F00
+1980
+1980
+0F00
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR aringacute
+ENCODING 507
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3C00
+6600
+6600
+3C00
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR AEacute
+ENCODING 508
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+0070
+00E0
+01C0
+0000
+0FFF
+0FFF
+1F80
+1B80
+3B80
+3B80
+33FE
+73FE
+7380
+7F80
+FF80
+E380
+E3FF
+E3FF
+ENDCHAR
+STARTCHAR aeacute
+ENCODING 509
+SWIDTH 889 0
+DWIDTH 16 0
+BBX 14 14 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+3DF0
+7FF8
+671C
+0F1C
+3FFC
+7700
+E700
+EF9C
+FFFC
+79F0
+ENDCHAR
+STARTCHAR Oslashacute
+ENCODING 510
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 18 0 0
+BITMAP
+00E0
+01C0
+0380
+0000
+07C6
+1FFC
+3C38
+3878
+78DC
+719C
+711C
+731C
+761C
+7C3C
+3838
+3C78
+7FF0
+C7C0
+ENDCHAR
+STARTCHAR oslashacute
+ENCODING 511
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 14 0 0
+BITMAP
+01C0
+0380
+0700
+0000
+0F30
+3FE0
+39C0
+73E0
+77E0
+7EE0
+7CE0
+39C0
+7FC0
+CF00
+ENDCHAR
+STARTCHAR uni0200
+ENCODING 512
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3600
+1B00
+0D80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni0201
+ENCODING 513
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+6C00
+3600
+1B00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni0202
+ENCODING 514
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0F80
+1DC0
+18C0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni0203
+ENCODING 515
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 14 1 0
+BITMAP
+3E00
+7700
+6300
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni0204
+ENCODING 516
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+D800
+6C00
+3600
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni0205
+ENCODING 517
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+6C00
+3600
+1B00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0206
+ENCODING 518
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+3E00
+7700
+6300
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni0207
+ENCODING 519
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3E00
+7700
+6300
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0208
+ENCODING 520
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -2 0
+BITMAP
+D8
+6C
+36
+00
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+ENDCHAR
+STARTCHAR uni0209
+ENCODING 521
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -2 0
+BITMAP
+D8
+6C
+36
+00
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+ENDCHAR
+STARTCHAR uni020A
+ENCODING 522
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 0
+BITMAP
+7C
+EE
+C6
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni020B
+ENCODING 523
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 14 -1 0
+BITMAP
+7C
+EE
+C6
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni020C
+ENCODING 524
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+3600
+1B00
+0D80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni020D
+ENCODING 525
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+6C00
+3600
+1B00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni020E
+ENCODING 526
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 18 1 0
+BITMAP
+0F80
+1DC0
+18C0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni020F
+ENCODING 527
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+1F00
+3B80
+3180
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0210
+ENCODING 528
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+6C00
+3600
+1B00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR uni0211
+ENCODING 529
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 7 14 0 0
+BITMAP
+D8
+6C
+36
+00
+76
+7E
+7E
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR uni0212
+ENCODING 530
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1F00
+3B80
+3180
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR uni0213
+ENCODING 531
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 7 14 0 0
+BITMAP
+7C
+EE
+C6
+00
+76
+7E
+7E
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR uni0214
+ENCODING 532
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+3600
+1B00
+0D80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni0215
+ENCODING 533
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+D800
+6C00
+3600
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni0216
+ENCODING 534
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0F80
+1DC0
+18C0
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni0217
+ENCODING 535
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3E00
+7700
+6300
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR Scommaaccent
+ENCODING 536
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 21 1 -7
+BITMAP
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0E00
+0E00
+0E00
+0600
+0C00
+0800
+ENDCHAR
+STARTCHAR scommaaccent
+ENCODING 537
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 -7
+BITMAP
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+0000
+1C00
+1C00
+1C00
+0C00
+1800
+1000
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 538
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 21 0 -7
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0000
+0E00
+0E00
+0E00
+0600
+0C00
+0800
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 539
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 20 0 -7
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+00
+38
+38
+38
+18
+30
+20
+ENDCHAR
+STARTCHAR uni021E
+ENCODING 542
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1DC0
+0F80
+0700
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni021F
+ENCODING 543
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 10 18 0 0
+BITMAP
+EE00
+7C00
+3800
+0000
+7000
+7000
+7000
+7000
+7780
+7FC0
+79C0
+71C0
+71C0
+71C0
+71C0
+71C0
+71C0
+71C0
+ENDCHAR
+STARTCHAR uni0226
+ENCODING 550
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0600
+0600
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni0227
+ENCODING 551
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 13 1 0
+BITMAP
+0C00
+0C00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni0228
+ENCODING 552
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 19 2 -5
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni0229
+ENCODING 553
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 15 1 -5
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni022A
+ENCODING 554
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 0
+BITMAP
+0F80
+0F80
+0000
+0CC0
+0CC0
+0CC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni022B
+ENCODING 555
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+1F00
+1F00
+0000
+3300
+3300
+3300
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni022C
+ENCODING 556
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 0
+BITMAP
+07C0
+07C0
+0000
+0710
+0FE0
+11C0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni022D
+ENCODING 557
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+3E00
+3E00
+0000
+3B00
+7F00
+6E00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni022E
+ENCODING 558
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 17 1 0
+BITMAP
+0300
+0300
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni022F
+ENCODING 559
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 13 1 0
+BITMAP
+0C00
+0C00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0230
+ENCODING 560
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 20 1 0
+BITMAP
+0F80
+0F80
+0000
+0300
+0300
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni0231
+ENCODING 561
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 16 1 0
+BITMAP
+1F00
+1F00
+0000
+0C00
+0C00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0232
+ENCODING 562
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 17 0 0
+BITMAP
+0F80
+0F80
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR uni0233
+ENCODING 563
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 -4
+BITMAP
+3E00
+3E00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR uni0250
+ENCODING 592
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 10 1 0
+BITMAP
+F780
+77C0
+79C0
+71C0
+7780
+7F00
+7800
+7180
+3F80
+1F00
+ENDCHAR
+STARTCHAR uni0254
+ENCODING 596
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+3C00
+FF00
+E700
+0380
+0380
+0380
+0380
+E700
+FF00
+3C00
+ENDCHAR
+STARTCHAR uni0258
+ENCODING 600
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+3C00
+7F00
+E700
+C380
+FF80
+FF80
+0380
+E700
+FF00
+3C00
+ENDCHAR
+STARTCHAR uni0259
+ENCODING 601
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+3C00
+FF00
+E700
+0380
+FF80
+FF80
+C380
+E700
+7F00
+3C00
+ENDCHAR
+STARTCHAR uni025F
+ENCODING 607
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 14 0 -4
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+FE
+FE
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR uni0265
+ENCODING 613
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni0275
+ENCODING 629
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 10 1 0
+BITMAP
+1E00
+7F80
+7380
+E1C0
+FFC0
+FFC0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni0279
+ENCODING 633
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 10 1 0
+BITMAP
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+FC
+FC
+DC
+ENDCHAR
+STARTCHAR uni0287
+ENCODING 647
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 13 0 0
+BITMAP
+F0
+F8
+38
+38
+38
+38
+38
+38
+FC
+FC
+38
+38
+38
+ENDCHAR
+STARTCHAR uni0288
+ENCODING 648
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 17 0 -4
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+7C
+3C
+ENDCHAR
+STARTCHAR uni0289
+ENCODING 649
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 10 1 0
+BITMAP
+E380
+E380
+E380
+E380
+FF80
+FF80
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni028C
+ENCODING 652
+SWIDTH 556 0
+DWIDTH 9 0
+BBX 9 10 0 0
+BITMAP
+1C00
+1C00
+3E00
+3E00
+7700
+7700
+7700
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR uni028D
+ENCODING 653
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 10 0 0
+BITMAP
+1C70
+1C70
+3C78
+3EF8
+76DC
+77DC
+739C
+E38E
+E38E
+E38E
+ENDCHAR
+STARTCHAR uni028E
+ENCODING 654
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+0700
+0F00
+0C00
+1C00
+1C00
+1C00
+3E00
+3E00
+7700
+7700
+7700
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR uni029E
+ENCODING 670
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 14 1 -4
+BITMAP
+E380
+F380
+7380
+3B80
+1F80
+0F80
+0F80
+1F80
+3B80
+7380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni02BB
+ENCODING 699
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+60
+C0
+C0
+E0
+E0
+ENDCHAR
+STARTCHAR afii57929
+ENCODING 700
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR afii64937
+ENCODING 701
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+E0
+E0
+C0
+C0
+60
+ENDCHAR
+STARTCHAR circumflex
+ENCODING 710
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 3 0 11
+BITMAP
+38
+7C
+EE
+ENDCHAR
+STARTCHAR caron
+ENCODING 711
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 3 0 11
+BITMAP
+EE
+7C
+38
+ENDCHAR
+STARTCHAR uni02C8
+ENCODING 712
+SWIDTH 238 0
+DWIDTH 4 0
+BBX 2 5 1 9
+BITMAP
+C0
+C0
+C0
+C0
+80
+ENDCHAR
+STARTCHAR macron
+ENCODING 713
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 2 1 12
+BITMAP
+F8
+F8
+ENDCHAR
+STARTCHAR uni02CA
+ENCODING 714
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 11
+BITMAP
+38
+70
+E0
+ENDCHAR
+STARTCHAR uni02CB
+ENCODING 715
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 11
+BITMAP
+E0
+70
+38
+ENDCHAR
+STARTCHAR uni02CD
+ENCODING 717
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 2 1 -3
+BITMAP
+F8
+F8
+ENDCHAR
+STARTCHAR uni02CE
+ENCODING 718
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 -4
+BITMAP
+E0
+70
+38
+ENDCHAR
+STARTCHAR uni02CF
+ENCODING 719
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 -4
+BITMAP
+38
+70
+E0
+ENDCHAR
+STARTCHAR breve
+ENCODING 728
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 3 0 11
+BITMAP
+C6
+EE
+7C
+ENDCHAR
+STARTCHAR dotaccent
+ENCODING 729
+SWIDTH 333 0
+DWIDTH 4 0
+BBX 2 2 1 12
+BITMAP
+C0
+C0
+ENDCHAR
+STARTCHAR ring
+ENCODING 730
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 4 0 10
+BITMAP
+78
+CC
+CC
+78
+ENDCHAR
+STARTCHAR ogonek
+ENCODING 731
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 5 0 -5
+BITMAP
+38
+70
+E0
+FC
+78
+ENDCHAR
+STARTCHAR tilde
+ENCODING 732
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 3 0 11
+BITMAP
+76
+FE
+DC
+ENDCHAR
+STARTCHAR hungarumlaut
+ENCODING 733
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 3 0 11
+BITMAP
+36
+6C
+D8
+ENDCHAR
+STARTCHAR uni02EE
+ENCODING 750
+SWIDTH 500 0
+DWIDTH 9 0
+BBX 7 5 1 9
+BITMAP
+EE
+EE
+66
+66
+CC
+ENDCHAR
+STARTCHAR uni037E
+ENCODING 894
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 3 13 1 -3
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+E0
+E0
+E0
+60
+C0
+80
+ENDCHAR
+STARTCHAR tonos
+ENCODING 900
+SWIDTH 333 0
+DWIDTH 5 0
+BBX 5 3 0 11
+BITMAP
+38
+70
+E0
+ENDCHAR
+STARTCHAR dieresistonos
+ENCODING 901
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 6 1 12
+BITMAP
+1C
+38
+70
+00
+D8
+D8
+ENDCHAR
+STARTCHAR anoteleia
+ENCODING 903
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 2 2 1 6
+BITMAP
+C0
+C0
+ENDCHAR
+STARTCHAR mu
+ENCODING 956
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+FB80
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E00
+ENCODING 7680
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+0000
+0F00
+1980
+1980
+0F00
+ENDCHAR
+STARTCHAR uni1E01
+ENCODING 7681
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 15 1 -5
+BITMAP
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+0000
+1E00
+3300
+3300
+1E00
+ENDCHAR
+STARTCHAR uni1E02
+ENCODING 7682
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 11 17 2 0
+BITMAP
+0C00
+0C00
+0000
+FE00
+FF80
+E3C0
+E1C0
+E1C0
+E380
+FF80
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+ENDCHAR
+STARTCHAR uni1E03
+ENCODING 7683
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+3000
+3000
+0000
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+ENDCHAR
+STARTCHAR uni1E04
+ENCODING 7684
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 11 17 2 -3
+BITMAP
+FE00
+FF80
+E3C0
+E1C0
+E1C0
+E380
+FF80
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E05
+ENCODING 7685
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E06
+ENCODING 7686
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 11 17 2 -3
+BITMAP
+FE00
+FF80
+E3C0
+E1C0
+E1C0
+E380
+FF80
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+0000
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni1E07
+ENCODING 7687
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E08
+ENCODING 7688
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 23 1 -5
+BITMAP
+0380
+0700
+0E00
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E000
+E000
+F070
+7070
+78E0
+3FE0
+0F80
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR uni1E09
+ENCODING 7689
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 19 1 -5
+BITMAP
+0700
+0E00
+1C00
+0000
+1E00
+7F80
+7380
+E000
+E000
+E000
+E000
+7380
+7F80
+1E00
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1E0A
+ENCODING 7690
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0C00
+0C00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+ENDCHAR
+STARTCHAR uni1E0B
+ENCODING 7691
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+0300
+0300
+0000
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+ENDCHAR
+STARTCHAR uni1E0C
+ENCODING 7692
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E0D
+ENCODING 7693
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E0E
+ENCODING 7694
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+0000
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni1E0F
+ENCODING 7695
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+0000
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni1E10
+ENCODING 7696
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR uni1E11
+ENCODING 7697
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 19 1 -5
+BITMAP
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+0C00
+0E00
+0300
+1F00
+1E00
+ENDCHAR
+STARTCHAR uni1E12
+ENCODING 7698
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E070
+E070
+E070
+E070
+E070
+E070
+E0E0
+E1E0
+FFC0
+FF00
+0000
+0E00
+1F00
+3B80
+ENDCHAR
+STARTCHAR uni1E13
+ENCODING 7699
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+01C0
+01C0
+01C0
+01C0
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+0000
+0E00
+1F00
+3B80
+ENDCHAR
+STARTCHAR uni1E14
+ENCODING 7700
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 21 2 0
+BITMAP
+3800
+1C00
+0E00
+0000
+3E00
+3E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E15
+ENCODING 7701
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+7000
+3800
+1C00
+0000
+3E00
+3E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E16
+ENCODING 7702
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 21 2 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3E00
+3E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E17
+ENCODING 7703
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3E00
+3E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E18
+ENCODING 7704
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 -4
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+0000
+1C00
+3E00
+7700
+ENDCHAR
+STARTCHAR uni1E19
+ENCODING 7705
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+0000
+1C00
+3E00
+7700
+ENDCHAR
+STARTCHAR uni1E1A
+ENCODING 7706
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 -4
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+0000
+3B00
+7F00
+6E00
+ENDCHAR
+STARTCHAR uni1E1B
+ENCODING 7707
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+0000
+3B00
+7F00
+6E00
+ENDCHAR
+STARTCHAR uni1E1C
+ENCODING 7708
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 23 2 -5
+BITMAP
+6300
+7700
+3E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1E1D
+ENCODING 7709
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 19 1 -5
+BITMAP
+6300
+7700
+3E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1E1E
+ENCODING 7710
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+1800
+1800
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E1F
+ENCODING 7711
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 7 17 0 0
+BITMAP
+18
+18
+00
+1E
+3E
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni1E20
+ENCODING 7712
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 12 17 1 0
+BITMAP
+0F80
+0F80
+0000
+0F80
+3FE0
+78E0
+7070
+F070
+E000
+E000
+E3F0
+E3F0
+F070
+7070
+78F0
+3FF0
+1FB0
+ENDCHAR
+STARTCHAR uni1E21
+ENCODING 7713
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -4
+BITMAP
+1F00
+1F00
+0000
+3DC0
+7FC0
+73C0
+E1C0
+E1C0
+E1C0
+E1C0
+73C0
+7FC0
+3DC0
+01C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E22
+ENCODING 7714
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0600
+0600
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1E23
+ENCODING 7715
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+3000
+3000
+0000
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR uni1E24
+ENCODING 7716
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E25
+ENCODING 7717
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E26
+ENCODING 7718
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0D80
+0D80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1E27
+ENCODING 7719
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+D800
+D800
+0000
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR uni1E28
+ENCODING 7720
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+0600
+0700
+0180
+0F80
+0F00
+ENDCHAR
+STARTCHAR uni1E29
+ENCODING 7721
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 19 1 -5
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+1800
+1C00
+0600
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1E2A
+ENCODING 7722
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+E070
+E070
+E070
+E070
+0000
+18C0
+1DC0
+0F80
+ENDCHAR
+STARTCHAR uni1E2B
+ENCODING 7723
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+6300
+7700
+3E00
+ENDCHAR
+STARTCHAR uni1E2C
+ENCODING 7724
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 -4
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+00
+76
+FE
+DC
+ENDCHAR
+STARTCHAR uni1E2D
+ENCODING 7725
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 -4
+BITMAP
+38
+38
+38
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+00
+76
+FE
+DC
+ENDCHAR
+STARTCHAR uni1E2E
+ENCODING 7726
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 6 22 0 0
+BITMAP
+1C
+38
+70
+00
+CC
+CC
+CC
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR uni1E2F
+ENCODING 7727
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 6 18 0 0
+BITMAP
+1C
+38
+70
+00
+D8
+D8
+D8
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR uni1E30
+ENCODING 7728
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 18 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+ENDCHAR
+STARTCHAR uni1E31
+ENCODING 7729
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 18 1 0
+BITMAP
+1C00
+3800
+7000
+0000
+E000
+E000
+E000
+E000
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+ENDCHAR
+STARTCHAR uni1E32
+ENCODING 7730
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 17 1 -3
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E33
+ENCODING 7731
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1E34
+ENCODING 7732
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 17 1 -3
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+0000
+0F80
+0F80
+ENDCHAR
+STARTCHAR uni1E35
+ENCODING 7733
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+E700
+EE00
+FC00
+F800
+F800
+FC00
+EE00
+E700
+E780
+E380
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E36
+ENCODING 7734
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1E37
+ENCODING 7735
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 17 1 -3
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+60
+60
+ENDCHAR
+STARTCHAR uni1E38
+ENCODING 7736
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 20 1 -3
+BITMAP
+F800
+F800
+0000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1E39
+ENCODING 7737
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 20 0 -3
+BITMAP
+F8
+F8
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+00
+30
+30
+ENDCHAR
+STARTCHAR uni1E3A
+ENCODING 7738
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E3B
+ENCODING 7739
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 5 17 0 -3
+BITMAP
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+00
+F8
+F8
+ENDCHAR
+STARTCHAR uni1E3C
+ENCODING 7740
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FF80
+FF80
+0000
+1C00
+3E00
+7700
+ENDCHAR
+STARTCHAR uni1E3D
+ENCODING 7741
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 7 18 -1 -4
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+00
+38
+7C
+EE
+ENDCHAR
+STARTCHAR uni1E3E
+ENCODING 7742
+SWIDTH 833 0
+DWIDTH 16 0
+BBX 14 18 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+E01C
+E01C
+F03C
+F03C
+F87C
+F87C
+F87C
+ECDC
+ECDC
+ECDC
+E79C
+E79C
+E31C
+E31C
+ENDCHAR
+STARTCHAR uni1E3F
+ENCODING 7743
+SWIDTH 889 0
+DWIDTH 17 0
+BBX 15 14 1 0
+BITMAP
+00E0
+01C0
+0380
+0000
+EF3C
+FFFE
+F3CE
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+ENDCHAR
+STARTCHAR uni1E40
+ENCODING 7744
+SWIDTH 833 0
+DWIDTH 16 0
+BBX 14 17 1 0
+BITMAP
+0300
+0300
+0000
+E01C
+E01C
+F03C
+F03C
+F87C
+F87C
+F87C
+ECDC
+ECDC
+ECDC
+E79C
+E79C
+E31C
+E31C
+ENDCHAR
+STARTCHAR uni1E41
+ENCODING 7745
+SWIDTH 889 0
+DWIDTH 17 0
+BBX 15 13 1 0
+BITMAP
+0300
+0300
+0000
+EF3C
+FFFE
+F3CE
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+ENDCHAR
+STARTCHAR uni1E42
+ENCODING 7746
+SWIDTH 833 0
+DWIDTH 16 0
+BBX 14 17 1 -3
+BITMAP
+E01C
+E01C
+F03C
+F03C
+F87C
+F87C
+F87C
+ECDC
+ECDC
+ECDC
+E79C
+E79C
+E31C
+E31C
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1E43
+ENCODING 7747
+SWIDTH 889 0
+DWIDTH 17 0
+BBX 15 13 1 -3
+BITMAP
+EF3C
+FFFE
+F3CE
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+E38E
+0000
+0180
+0180
+ENDCHAR
+STARTCHAR uni1E44
+ENCODING 7748
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0600
+0600
+0000
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR uni1E45
+ENCODING 7749
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+1800
+1800
+0000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+ENDCHAR
+STARTCHAR uni1E46
+ENCODING 7750
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E47
+ENCODING 7751
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E48
+ENCODING 7752
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+0000
+0F80
+0F80
+ENDCHAR
+STARTCHAR uni1E49
+ENCODING 7753
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E4A
+ENCODING 7754
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+E070
+F070
+F070
+F870
+FC70
+EC70
+EE70
+E670
+E770
+E370
+E1F0
+E1F0
+E0F0
+E070
+0000
+0700
+0F80
+1DC0
+ENDCHAR
+STARTCHAR uni1E4B
+ENCODING 7755
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+1C00
+3E00
+7700
+ENDCHAR
+STARTCHAR uni1E4C
+ENCODING 7756
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 22 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+0710
+0FE0
+11C0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E4D
+ENCODING 7757
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3B00
+7F00
+6E00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E4E
+ENCODING 7758
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 0
+BITMAP
+06C0
+06C0
+0000
+0710
+0FE0
+11C0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E4F
+ENCODING 7759
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+3600
+3600
+0000
+3B00
+7F00
+6E00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E50
+ENCODING 7760
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+0F80
+0F80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E51
+ENCODING 7761
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+3800
+1C00
+0E00
+0000
+1F00
+1F00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E52
+ENCODING 7762
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+0F80
+0F80
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E53
+ENCODING 7763
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+1F00
+1F00
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1E54
+ENCODING 7764
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E55
+ENCODING 7765
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 -4
+BITMAP
+0700
+0E00
+1C00
+0000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E56
+ENCODING 7766
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0C00
+0C00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF00
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E57
+ENCODING 7767
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -4
+BITMAP
+0C00
+0C00
+0000
+EF00
+FF80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+F380
+FF80
+EF00
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E58
+ENCODING 7768
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0C00
+0C00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+ENDCHAR
+STARTCHAR uni1E59
+ENCODING 7769
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 13 1 0
+BITMAP
+30
+30
+00
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni1E5A
+ENCODING 7770
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E5B
+ENCODING 7771
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 13 1 -3
+BITMAP
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+60
+60
+ENDCHAR
+STARTCHAR uni1E5C
+ENCODING 7772
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 20 1 -3
+BITMAP
+1F00
+1F00
+0000
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E5D
+ENCODING 7773
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 16 1 -3
+BITMAP
+F8
+F8
+00
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+60
+60
+ENDCHAR
+STARTCHAR uni1E5E
+ENCODING 7774
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+FF00
+FFC0
+E1E0
+E0E0
+E0E0
+E1E0
+FFC0
+FF80
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0F0
+0000
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni1E5F
+ENCODING 7775
+SWIDTH 389 0
+DWIDTH 7 0
+BBX 6 13 1 -3
+BITMAP
+EC
+FC
+FC
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+F8
+F8
+ENDCHAR
+STARTCHAR uni1E60
+ENCODING 7776
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0600
+0600
+0000
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni1E61
+ENCODING 7777
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+0C00
+0C00
+0000
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+ENDCHAR
+STARTCHAR uni1E62
+ENCODING 7778
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 17 1 -3
+BITMAP
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E63
+ENCODING 7779
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1E64
+ENCODING 7780
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 21 1 0
+BITMAP
+0600
+0600
+0000
+0380
+0700
+0E00
+0000
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni1E65
+ENCODING 7781
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 0
+BITMAP
+0C00
+0C00
+0000
+0700
+0E00
+1C00
+0000
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+ENDCHAR
+STARTCHAR uni1E66
+ENCODING 7782
+SWIDTH 667 0
+DWIDTH 12 0
+BBX 10 17 1 0
+BITMAP
+0C00
+0C00
+0000
+7700
+3E00
+1C00
+0000
+3F00
+7F80
+E380
+F800
+7E00
+1F80
+E3C0
+F3C0
+7F80
+3F00
+ENDCHAR
+STARTCHAR uni1E67
+ENCODING 7783
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 8 17 1 0
+BITMAP
+18
+18
+00
+77
+3E
+1C
+00
+1E
+7F
+E7
+E0
+FE
+3F
+07
+E7
+FE
+78
+ENDCHAR
+STARTCHAR uni1E68
+ENCODING 7784
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 11 20 1 -3
+BITMAP
+0C00
+0C00
+0000
+3F80
+7FC0
+F1E0
+E0E0
+F000
+7E00
+3F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E69
+ENCODING 7785
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 16 1 -3
+BITMAP
+1800
+1800
+0000
+3F00
+7F80
+E380
+E000
+FF00
+3F80
+0380
+E380
+FF00
+7E00
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1E6A
+ENCODING 7786
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 17 0 0
+BITMAP
+0600
+0600
+0000
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E6B
+ENCODING 7787
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 16 0 0
+BITMAP
+30
+30
+00
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+ENDCHAR
+STARTCHAR uni1E6C
+ENCODING 7788
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 17 0 -3
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1E6D
+ENCODING 7789
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 16 0 -3
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+00
+30
+30
+ENDCHAR
+STARTCHAR uni1E6E
+ENCODING 7790
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 17 0 -3
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0000
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni1E6F
+ENCODING 7791
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 16 0 -3
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+00
+7C
+7C
+ENDCHAR
+STARTCHAR uni1E70
+ENCODING 7792
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 18 0 -4
+BITMAP
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0000
+0E00
+1F00
+3B80
+ENDCHAR
+STARTCHAR uni1E71
+ENCODING 7793
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 7 17 0 -4
+BITMAP
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+00
+38
+7C
+EE
+ENDCHAR
+STARTCHAR uni1E72
+ENCODING 7794
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0000
+0D80
+0D80
+ENDCHAR
+STARTCHAR uni1E73
+ENCODING 7795
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0000
+3600
+3600
+ENDCHAR
+STARTCHAR uni1E74
+ENCODING 7796
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0000
+1D80
+3F80
+3700
+ENDCHAR
+STARTCHAR uni1E75
+ENCODING 7797
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0000
+3B00
+7F00
+6E00
+ENDCHAR
+STARTCHAR uni1E76
+ENCODING 7798
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0000
+0700
+0F80
+1DC0
+ENDCHAR
+STARTCHAR uni1E77
+ENCODING 7799
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0000
+1C00
+3E00
+7700
+ENDCHAR
+STARTCHAR uni1E78
+ENCODING 7800
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+0EC0
+1FC0
+1B80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1E79
+ENCODING 7801
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+3B00
+7F00
+6E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni1E7A
+ENCODING 7802
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 20 1 0
+BITMAP
+0D80
+0D80
+0000
+0F80
+0F80
+0000
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1E7B
+ENCODING 7803
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 16 1 0
+BITMAP
+3600
+3600
+0000
+3E00
+3E00
+0000
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni1E7C
+ENCODING 7804
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 18 0 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+E038
+E038
+7070
+7070
+3060
+38E0
+38E0
+1DC0
+1DC0
+0D80
+0F80
+0F80
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E7D
+ENCODING 7805
+SWIDTH 556 0
+DWIDTH 9 0
+BBX 9 14 0 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni1E7E
+ENCODING 7806
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 17 0 -3
+BITMAP
+E038
+E038
+7070
+7070
+3060
+38E0
+38E0
+1DC0
+1DC0
+0D80
+0F80
+0F80
+0700
+0700
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1E7F
+ENCODING 7807
+SWIDTH 556 0
+DWIDTH 9 0
+BBX 9 13 0 -3
+BITMAP
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR Wgrave
+ENCODING 7808
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 18 1 0
+BITMAP
+0E00
+0700
+0380
+0000
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR wgrave
+ENCODING 7809
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 14 0 0
+BITMAP
+0E00
+0700
+0380
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR Wacute
+ENCODING 7810
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 18 1 0
+BITMAP
+00E0
+01C0
+0380
+0000
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR wacute
+ENCODING 7811
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 14 0 0
+BITMAP
+00E0
+01C0
+0380
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR Wdieresis
+ENCODING 7812
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 17 1 0
+BITMAP
+06C0
+06C0
+0000
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR wdieresis
+ENCODING 7813
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 13 0 0
+BITMAP
+06C0
+06C0
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR uni1E86
+ENCODING 7814
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 17 1 0
+BITMAP
+0180
+0180
+0000
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR uni1E87
+ENCODING 7815
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 13 0 0
+BITMAP
+0180
+0180
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR uni1E88
+ENCODING 7816
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 17 1 -3
+BITMAP
+E38E
+E38E
+E38E
+E38E
+739C
+739C
+739C
+76DC
+36D8
+36D8
+3EF8
+1C70
+1C70
+1C70
+0000
+0180
+0180
+ENDCHAR
+STARTCHAR uni1E89
+ENCODING 7817
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 13 0 -3
+BITMAP
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+0000
+0180
+0180
+ENDCHAR
+STARTCHAR uni1E8A
+ENCODING 7818
+SWIDTH 667 0
+DWIDTH 12 0
+BBX 12 17 0 0
+BITMAP
+0600
+0600
+0000
+E070
+E070
+70E0
+79E0
+1980
+1F80
+0F00
+1F80
+1980
+39C0
+70E0
+70E0
+E070
+E070
+ENDCHAR
+STARTCHAR uni1E8B
+ENCODING 7819
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+0C00
+0C00
+0000
+E380
+E380
+7700
+3E00
+1C00
+3E00
+7700
+7700
+E380
+E380
+ENDCHAR
+STARTCHAR uni1E8C
+ENCODING 7820
+SWIDTH 667 0
+DWIDTH 12 0
+BBX 12 17 0 0
+BITMAP
+0D80
+0D80
+0000
+E070
+E070
+70E0
+79E0
+1980
+1F80
+0F00
+1F80
+1980
+39C0
+70E0
+70E0
+E070
+E070
+ENDCHAR
+STARTCHAR uni1E8D
+ENCODING 7821
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 0
+BITMAP
+3600
+3600
+0000
+E380
+E380
+7700
+3E00
+1C00
+3E00
+7700
+7700
+E380
+E380
+ENDCHAR
+STARTCHAR uni1E8E
+ENCODING 7822
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 17 0 0
+BITMAP
+0300
+0300
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E8F
+ENCODING 7823
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 -4
+BITMAP
+0C00
+0C00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR uni1E90
+ENCODING 7824
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+0E00
+1F00
+3B80
+0000
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E91
+ENCODING 7825
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 14 1 0
+BITMAP
+1C
+3E
+77
+00
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+ENDCHAR
+STARTCHAR uni1E92
+ENCODING 7826
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1E93
+ENCODING 7827
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 13 1 -3
+BITMAP
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+00
+18
+18
+ENDCHAR
+STARTCHAR uni1E94
+ENCODING 7828
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+FFC0
+FFC0
+01C0
+0380
+0700
+0700
+0E00
+1C00
+3800
+3800
+7000
+E000
+FFC0
+FFC0
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E95
+ENCODING 7829
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 8 13 1 -3
+BITMAP
+FF
+FF
+07
+0E
+1C
+38
+70
+E0
+FF
+FF
+00
+7C
+7C
+ENDCHAR
+STARTCHAR uni1E96
+ENCODING 7830
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 17 1 -3
+BITMAP
+E000
+E000
+E000
+E000
+EF00
+FF80
+F380
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+0000
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E97
+ENCODING 7831
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 16 0 0
+BITMAP
+D8
+D8
+00
+70
+70
+70
+FC
+FC
+70
+70
+70
+70
+70
+70
+7C
+3C
+ENDCHAR
+STARTCHAR uni1E98
+ENCODING 7832
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 15 0 0
+BITMAP
+03C0
+0660
+0660
+03C0
+0000
+E38E
+E38E
+E38E
+739C
+77DC
+76DC
+3EF8
+3C78
+1C70
+1C70
+ENDCHAR
+STARTCHAR uni1E99
+ENCODING 7833
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 19 1 -4
+BITMAP
+1E00
+3300
+3300
+1E00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR uni1EA0
+ENCODING 7840
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1EA1
+ENCODING 7841
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 13 1 -3
+BITMAP
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EA4
+ENCODING 7844
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+0700
+0F80
+1DC0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EA5
+ENCODING 7845
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+1C00
+3E00
+7700
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EA6
+ENCODING 7846
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+0700
+0F80
+1DC0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EA7
+ENCODING 7847
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+3800
+1C00
+0E00
+0000
+1C00
+3E00
+7700
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EAA
+ENCODING 7850
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+0700
+0F80
+1DC0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EAB
+ENCODING 7851
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+1C00
+3E00
+7700
+0000
+3E00
+7F00
+7380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EAC
+ENCODING 7852
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 -3
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1EAD
+ENCODING 7853
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 17 1 -3
+BITMAP
+0E00
+1F00
+3B80
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EAE
+ENCODING 7854
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+18C0
+1DC0
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EAF
+ENCODING 7855
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+6300
+7700
+3E00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EB0
+ENCODING 7856
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+18C0
+1DC0
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EB1
+ENCODING 7857
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+3800
+1C00
+0E00
+0000
+6300
+7700
+3E00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EB4
+ENCODING 7860
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+18C0
+1DC0
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni1EB5
+ENCODING 7861
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 18 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+6300
+7700
+3E00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+ENDCHAR
+STARTCHAR uni1EB6
+ENCODING 7862
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 21 1 -3
+BITMAP
+18C0
+1DC0
+0F80
+0000
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1EB7
+ENCODING 7863
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 10 17 1 -3
+BITMAP
+3180
+3B80
+1F00
+0000
+3E00
+7F00
+6380
+0780
+3F80
+7B80
+E380
+E780
+FB80
+7BC0
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EB8
+ENCODING 7864
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 17 2 -3
+BITMAP
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1EB9
+ENCODING 7865
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EBC
+ENCODING 7868
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1EBD
+ENCODING 7869
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 14 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EBE
+ENCODING 7870
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 22 2 0
+BITMAP
+0700
+0E00
+1C00
+0000
+0E00
+1F00
+3B80
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1EBF
+ENCODING 7871
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EC0
+ENCODING 7872
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 22 2 0
+BITMAP
+3800
+1C00
+0E00
+0000
+0E00
+1F00
+3B80
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1EC1
+ENCODING 7873
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+7000
+3800
+1C00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EC4
+ENCODING 7876
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 22 2 0
+BITMAP
+1D80
+3F80
+3700
+0000
+0E00
+1F00
+3B80
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1EC5
+ENCODING 7877
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EC6
+ENCODING 7878
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 21 2 -3
+BITMAP
+1C00
+3E00
+7700
+0000
+FFC0
+FFC0
+E000
+E000
+E000
+E000
+FF80
+FF80
+E000
+E000
+E000
+E000
+FFC0
+FFC0
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1EC7
+ENCODING 7879
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 -3
+BITMAP
+1C00
+3E00
+7700
+0000
+1E00
+7F00
+7380
+E180
+FF80
+FF80
+E000
+7380
+7F80
+1E00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1ECA
+ENCODING 7882
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 17 1 -3
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+60
+60
+ENDCHAR
+STARTCHAR uni1ECB
+ENCODING 7883
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 17 1 -3
+BITMAP
+E0
+E0
+E0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+60
+60
+ENDCHAR
+STARTCHAR uni1ECC
+ENCODING 7884
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 17 1 -3
+BITMAP
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1ECD
+ENCODING 7885
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 13 1 -3
+BITMAP
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1ED0
+ENCODING 7888
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 22 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1ED1
+ENCODING 7889
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+0700
+0E00
+1C00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1ED2
+ENCODING 7890
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1ED3
+ENCODING 7891
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+3800
+1C00
+0E00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1ED6
+ENCODING 7894
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 22 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1ED7
+ENCODING 7895
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 18 1 0
+BITMAP
+3B00
+7F00
+6E00
+0000
+1C00
+3E00
+7700
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1ED8
+ENCODING 7896
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 13 21 1 -3
+BITMAP
+0700
+0F80
+1DC0
+0000
+0F80
+3FE0
+78F0
+7070
+F078
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1ED9
+ENCODING 7897
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 17 1 -3
+BITMAP
+0E00
+1F00
+3B80
+0000
+1E00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+1E00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EDA
+ENCODING 7898
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 18 1 0
+BITMAP
+00E0
+01C0
+0380
+0000
+0F8E
+3FEE
+78F6
+7076
+F07C
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EDB
+ENCODING 7899
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 14 1 0
+BITMAP
+01C0
+0380
+0700
+0000
+1E70
+7FF0
+73B0
+E1F0
+E1E0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EDC
+ENCODING 7900
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 18 1 0
+BITMAP
+0700
+0380
+01C0
+0000
+0F8E
+3FEE
+78F6
+7076
+F07C
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EDD
+ENCODING 7901
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 14 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+1E70
+7FF0
+73B0
+E1F0
+E1E0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EE0
+ENCODING 7904
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 18 1 0
+BITMAP
+03B0
+07F0
+06E0
+0000
+0F8E
+3FEE
+78F6
+7076
+F07C
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EE1
+ENCODING 7905
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 14 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+1E70
+7FF0
+73B0
+E1F0
+E1E0
+E1C0
+E1C0
+7380
+7F80
+1E00
+ENDCHAR
+STARTCHAR uni1EE2
+ENCODING 7906
+SWIDTH 778 0
+DWIDTH 15 0
+BBX 15 17 1 -3
+BITMAP
+0F8E
+3FEE
+78F6
+7076
+F07C
+E038
+E038
+E038
+E038
+F078
+7070
+78F0
+3FE0
+0F80
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1EE3
+ENCODING 7907
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 12 13 1 -3
+BITMAP
+1E70
+7FF0
+73B0
+E1F0
+E1E0
+E1C0
+E1C0
+7380
+7F80
+1E00
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EE4
+ENCODING 7908
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1EE5
+ENCODING 7909
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 9 13 1 -3
+BITMAP
+E380
+E380
+E380
+E380
+E380
+E380
+E380
+E780
+FF80
+7B80
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni1EE8
+ENCODING 7912
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 18 1 0
+BITMAP
+00E0
+01C0
+0380
+0000
+E07C
+E07C
+E07C
+E07C
+E078
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1EE9
+ENCODING 7913
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 14 1 0
+BITMAP
+0380
+0700
+0E00
+0000
+E3E0
+E3E0
+E3E0
+E3E0
+E3C0
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni1EEA
+ENCODING 7914
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 18 1 0
+BITMAP
+0E00
+0700
+0380
+0000
+E07C
+E07C
+E07C
+E07C
+E078
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1EEB
+ENCODING 7915
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 14 1 0
+BITMAP
+1C00
+0E00
+0700
+0000
+E3E0
+E3E0
+E3E0
+E3E0
+E3C0
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni1EEE
+ENCODING 7918
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 18 1 0
+BITMAP
+0760
+0FE0
+0DC0
+0000
+E07C
+E07C
+E07C
+E07C
+E078
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1EEF
+ENCODING 7919
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 14 1 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+E3E0
+E3E0
+E3E0
+E3E0
+E3C0
+E380
+E380
+E780
+FF80
+7B80
+ENDCHAR
+STARTCHAR uni1EF0
+ENCODING 7920
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 17 1 -3
+BITMAP
+E07C
+E07C
+E07C
+E07C
+E078
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+0000
+0600
+0600
+ENDCHAR
+STARTCHAR uni1EF1
+ENCODING 7921
+SWIDTH 611 0
+DWIDTH 11 0
+BBX 11 13 1 -3
+BITMAP
+E3E0
+E3E0
+E3E0
+E3E0
+E3C0
+E380
+E380
+E780
+FF80
+7B80
+0000
+0C00
+0C00
+ENDCHAR
+STARTCHAR Ygrave
+ENCODING 7922
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 18 0 0
+BITMAP
+1C00
+0E00
+0700
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR ygrave
+ENCODING 7923
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+7000
+3800
+1C00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR uni1EF4
+ENCODING 7924
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 17 0 -3
+BITMAP
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+0000
+0300
+0300
+ENDCHAR
+STARTCHAR uni1EF5
+ENCODING 7925
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 17 1 -7
+BITMAP
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+0000
+1800
+1800
+ENDCHAR
+STARTCHAR uni1EF8
+ENCODING 7928
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 13 18 0 0
+BITMAP
+0EC0
+1FC0
+1B80
+0000
+E038
+E038
+7070
+38E0
+38E0
+1DC0
+1DC0
+0F80
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EF9
+ENCODING 7929
+SWIDTH 556 0
+DWIDTH 11 0
+BBX 9 18 1 -4
+BITMAP
+3B00
+7F00
+6E00
+0000
+E380
+E380
+E380
+7700
+7700
+7700
+3E00
+3E00
+1C00
+1C00
+1C00
+1800
+7800
+7000
+ENDCHAR
+STARTCHAR uni2000
+ENCODING 8192
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2001
+ENCODING 8193
+SWIDTH 1000 0
+DWIDTH 19 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2002
+ENCODING 8194
+SWIDTH 500 0
+DWIDTH 10 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2003
+ENCODING 8195
+SWIDTH 1000 0
+DWIDTH 19 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2004
+ENCODING 8196
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2005
+ENCODING 8197
+SWIDTH 250 0
+DWIDTH 5 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2006
+ENCODING 8198
+SWIDTH 167 0
+DWIDTH 3 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2007
+ENCODING 8199
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2008
+ENCODING 8200
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2009
+ENCODING 8201
+SWIDTH 200 0
+DWIDTH 4 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200A
+ENCODING 8202
+SWIDTH 100 0
+DWIDTH 2 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200B
+ENCODING 8203
+SWIDTH 0 0
+DWIDTH 0 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2010
+ENCODING 8208
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 3 0 4
+BITMAP
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR uni2011
+ENCODING 8209
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 5 3 0 4
+BITMAP
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR figuredash
+ENCODING 8210
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 2 0 4
+BITMAP
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR endash
+ENCODING 8211
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 10 2 0 4
+BITMAP
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR emdash
+ENCODING 8212
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 18 2 0 4
+BITMAP
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR afii00208
+ENCODING 8213
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 18 2 0 4
+BITMAP
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR quoteleft
+ENCODING 8216
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+60
+C0
+C0
+E0
+E0
+ENDCHAR
+STARTCHAR quoteright
+ENCODING 8217
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR quotesinglbase
+ENCODING 8218
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 -3
+BITMAP
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR quotereversed
+ENCODING 8219
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 3 5 1 9
+BITMAP
+E0
+E0
+C0
+C0
+60
+ENDCHAR
+STARTCHAR quotedblleft
+ENCODING 8220
+SWIDTH 500 0
+DWIDTH 9 0
+BBX 7 5 1 9
+BITMAP
+66
+CC
+CC
+EE
+EE
+ENDCHAR
+STARTCHAR quotedblright
+ENCODING 8221
+SWIDTH 500 0
+DWIDTH 9 0
+BBX 7 5 1 9
+BITMAP
+EE
+EE
+66
+66
+CC
+ENDCHAR
+STARTCHAR quotedblbase
+ENCODING 8222
+SWIDTH 500 0
+DWIDTH 9 0
+BBX 7 5 1 -3
+BITMAP
+EE
+EE
+66
+66
+CC
+ENDCHAR
+STARTCHAR uni201F
+ENCODING 8223
+SWIDTH 500 0
+DWIDTH 9 0
+BBX 7 5 1 9
+BITMAP
+EE
+EE
+CC
+CC
+66
+ENDCHAR
+STARTCHAR dagger
+ENCODING 8224
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 18 0 -4
+BITMAP
+1C00
+1C00
+1C00
+1C00
+FF80
+FF80
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR daggerdbl
+ENCODING 8225
+SWIDTH 556 0
+DWIDTH 10 0
+BBX 9 18 0 -4
+BITMAP
+1C00
+1C00
+1C00
+1C00
+FF80
+FF80
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+FF80
+FF80
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR bullet
+ENCODING 8226
+SWIDTH 350 0
+DWIDTH 7 0
+BBX 5 5 1 4
+BITMAP
+70
+F8
+F8
+F8
+70
+ENDCHAR
+STARTCHAR ellipsis
+ENCODING 8230
+SWIDTH 1000 0
+DWIDTH 18 0
+BBX 14 2 2 0
+BITMAP
+C30C
+C30C
+ENDCHAR
+STARTCHAR perthousand
+ENCODING 8240
+SWIDTH 1000 0
+DWIDTH 20 0
+BBX 19 13 0 0
+BITMAP
+706000
+F86000
+D8C000
+D88000
+F98000
+730000
+020000
+0671C0
+0CFBE0
+08DB60
+18DB60
+30FBE0
+3071C0
+ENDCHAR
+STARTCHAR guilsinglleft
+ENCODING 8249
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 8 0 1
+BITMAP
+1C
+38
+70
+E0
+E0
+70
+38
+1C
+ENDCHAR
+STARTCHAR guilsinglright
+ENCODING 8250
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 8 0 1
+BITMAP
+E0
+70
+38
+1C
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8260
+SWIDTH 167 0
+DWIDTH 6 0
+BBX 8 13 -1 0
+BITMAP
+03
+03
+06
+06
+0C
+0C
+18
+30
+30
+60
+60
+C0
+C0
+ENDCHAR
+STARTCHAR oneinferior
+ENCODING 8321
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 4 8 0 -5
+BITMAP
+30
+F0
+F0
+30
+30
+30
+30
+30
+ENDCHAR
+STARTCHAR twoinferior
+ENCODING 8322
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 8 0 -5
+BITMAP
+78
+FC
+CC
+1C
+78
+E0
+FC
+FC
+ENDCHAR
+STARTCHAR threeinferior
+ENCODING 8323
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 6 8 0 -5
+BITMAP
+78
+FC
+CC
+38
+3C
+CC
+FC
+78
+ENDCHAR
+STARTCHAR uni20A5
+ENCODING 8357
+SWIDTH 889 0
+DWIDTH 17 0
+BBX 15 14 1 -2
+BITMAP
+00C0
+00C0
+EFFC
+FFFE
+F3CE
+E38E
+E38E
+E38E
+E38E
+E38E
+E78E
+E78E
+0600
+0600
+ENDCHAR
+STARTCHAR uni20A6
+ENCODING 8358
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+F070
+F070
+F870
+FFF0
+FFF0
+EE70
+FFF0
+FFF0
+E370
+E1F0
+E1F0
+E0F0
+E070
+ENDCHAR
+STARTCHAR uni20A9
+ENCODING 8361
+SWIDTH 944 0
+DWIDTH 17 0
+BBX 15 14 1 0
+BITMAP
+E38E
+E38E
+E38E
+E38E
+7FFC
+7FFC
+739C
+7FFC
+3FF8
+36D8
+3EF8
+1C70
+1C70
+1C70
+ENDCHAR
+STARTCHAR Euro
+ENCODING 8364
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 14 14 -1 0
+BITMAP
+03E0
+0FF8
+1E38
+1C1C
+FF9C
+FF80
+3800
+FF80
+FF80
+3C1C
+1C1C
+1E38
+0FF8
+03E0
+ENDCHAR
+STARTCHAR uni20AD
+ENCODING 8365
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 14 1 0
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FFF8
+FFF8
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+ENDCHAR
+STARTCHAR uni2103
+ENCODING 8451
+SWIDTH 1102 0
+DWIDTH 21 0
+BBX 20 14 0 0
+BITMAP
+000F80
+783FE0
+FC78E0
+CC7070
+CCF070
+FCE000
+78E000
+00E000
+00E000
+00F070
+007070
+0078E0
+003FE0
+000F80
+ENDCHAR
+STARTCHAR uni2109
+ENCODING 8457
+SWIDTH 991 0
+DWIDTH 19 0
+BBX 18 14 0 0
+BITMAP
+00FFC0
+78FFC0
+FCE000
+CCE000
+CCE000
+FCE000
+78FF80
+00FF80
+00E000
+00E000
+00E000
+00E000
+00E000
+00E000
+ENDCHAR
+STARTCHAR trademark
+ENCODING 8482
+SWIDTH 1000 0
+DWIDTH 17 0
+BBX 15 7 1 6
+BITMAP
+FEC6
+10C6
+10AA
+10AA
+10BA
+1092
+1092
+ENDCHAR
+STARTCHAR uni212A
+ENCODING 8490
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 13 14 1 0
+BITMAP
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E780
+E3C0
+E1E0
+E0F0
+E078
+ENDCHAR
+STARTCHAR uni212B
+ENCODING 8491
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0F00
+1980
+1980
+0F00
+0F00
+0F00
+1F80
+1980
+1980
+39C0
+39C0
+30C0
+70E0
+7FE0
+7FE0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni2132
+ENCODING 8498
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 10 14 1 0
+BITMAP
+01C0
+01C0
+01C0
+01C0
+01C0
+01C0
+7FC0
+7FC0
+01C0
+01C0
+01C0
+01C0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR universal
+ENCODING 8704
+SWIDTH 722 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+E070
+E070
+7FE0
+7FE0
+70E0
+30C0
+39C0
+39C0
+1980
+1980
+1F80
+0F00
+0F00
+ENDCHAR
+STARTCHAR existential
+ENCODING 8707
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 14 2 0
+BITMAP
+FFC0
+FFC0
+01C0
+01C0
+01C0
+01C0
+7FC0
+7FC0
+01C0
+01C0
+01C0
+01C0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni2204
+ENCODING 8708
+SWIDTH 667 0
+DWIDTH 13 0
+BBX 10 14 2 0
+BITMAP
+FFC0
+FFC0
+03C0
+07C0
+07C0
+07C0
+7FC0
+7FC0
+0DC0
+0DC0
+1DC0
+19C0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR minus
+ENCODING 8722
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 2 1 4
+BITMAP
+FF80
+FF80
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8725
+SWIDTH 167 0
+DWIDTH 6 0
+BBX 8 13 -1 0
+BITMAP
+03
+03
+06
+06
+0C
+0C
+18
+30
+30
+60
+60
+C0
+C0
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 8729
+SWIDTH 278 0
+DWIDTH 5 0
+BBX 2 2 1 6
+BITMAP
+C0
+C0
+ENDCHAR
+STARTCHAR uni2236
+ENCODING 8758
+SWIDTH 333 0
+DWIDTH 6 0
+BBX 3 10 1 0
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni2259
+ENCODING 8793
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 9 1 3
+BITMAP
+1C00
+3E00
+7700
+0000
+FF80
+FF80
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR uni225A
+ENCODING 8794
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 9 1 3
+BITMAP
+7700
+3E00
+1C00
+0000
+FF80
+FF80
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR notequal
+ENCODING 8800
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 1 -1
+BITMAP
+0600
+0600
+0600
+0E00
+0C00
+FF80
+FF80
+1C00
+FF80
+FF80
+3800
+3000
+3000
+3000
+ENDCHAR
+STARTCHAR equivalence
+ENCODING 8801
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 8 0 1
+BITMAP
+FF80
+FF80
+0000
+FF80
+FF80
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR uni2262
+ENCODING 8802
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 0 -2
+BITMAP
+0600
+0600
+0600
+FF80
+FF80
+0C00
+FF80
+FF80
+1800
+FF80
+FF80
+3000
+3000
+3000
+ENDCHAR
+STARTCHAR lessequal
+ENCODING 8804
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 12 1 -3
+BITMAP
+0380
+0F80
+3E00
+7800
+E000
+7800
+3E00
+0F80
+0380
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR greaterequal
+ENCODING 8805
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 12 1 -3
+BITMAP
+E000
+F800
+3E00
+0F00
+0380
+0F00
+3E00
+F800
+E000
+0000
+FF80
+FF80
+ENDCHAR
+STARTCHAR uni226E
+ENCODING 8814
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 1 -2
+BITMAP
+0600
+0600
+0600
+0F80
+0F80
+3E00
+7C00
+FC00
+7800
+3E00
+3F80
+3380
+3000
+3000
+ENDCHAR
+STARTCHAR uni226F
+ENCODING 8815
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 1 -2
+BITMAP
+0600
+0600
+0600
+EE00
+FC00
+3E00
+0F00
+1F80
+1F00
+3E00
+F800
+F000
+3000
+3000
+ENDCHAR
+STARTCHAR uni2270
+ENCODING 8816
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+0600
+0780
+0F80
+3E00
+7C00
+EC00
+7C00
+3E00
+1F80
+1B80
+3800
+FF80
+FF80
+3000
+ENDCHAR
+STARTCHAR uni2271
+ENCODING 8817
+SWIDTH 584 0
+DWIDTH 11 0
+BBX 9 14 1 -4
+BITMAP
+0600
+E600
+FE00
+3E00
+0F00
+0F80
+0F00
+3E00
+F800
+F800
+3800
+FF80
+FF80
+3000
+ENDCHAR
+STARTCHAR fi
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 11 14 0 0
+BITMAP
+1EE0
+3EE0
+3800
+3800
+FEE0
+FEE0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+ENDCHAR
+STARTCHAR fl
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 12 0
+BBX 11 14 0 0
+BITMAP
+1EE0
+3EE0
+38E0
+38E0
+FEE0
+FEE0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+ENDCHAR
+ENDFONT
diff --git a/dists/bada/Res/scummmobile/helvB18-ASCII.fcc b/dists/bada/Res/scummmobile/helvB18-ASCII.fcc
new file mode 100644
index 0000000000..343ac39e8e
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB18-ASCII.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvB18.bdf b/dists/bada/Res/scummmobile/helvB18.bdf
new file mode 100644
index 0000000000..1d14b6ef4d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB18.bdf
@@ -0,0 +1,19752 @@
+STARTFONT 2.1
+FONT -Adobe-Helvetica-Bold-R-Normal--25-180-100-100-P-138-ISO10646-1
+SIZE 18 100 100
+FONTBOUNDINGBOX 28 37 -2 -8
+COMMENT ISO10646-1 extension by Markus Kuhn <mkuhn@acm.org>, 2001-03-20
+COMMENT
+COMMENT +
+COMMENT Copyright 1984-1989, 1994 Adobe Systems Incorporated.
+COMMENT Copyright 1988, 1994 Digital Equipment Corporation.
+COMMENT
+COMMENT Adobe is a trademark of Adobe Systems Incorporated which may be
+COMMENT registered in certain jurisdictions.
+COMMENT Permission to use these trademarks is hereby granted only in
+COMMENT association with the images described in this file.
+COMMENT
+COMMENT Permission to use, copy, modify, distribute and sell this software
+COMMENT and its documentation for any purpose and without fee is hereby
+COMMENT granted, provided that the above copyright notices appear in all
+COMMENT copies and that both those copyright notices and this permission
+COMMENT notice appear in supporting documentation, and that the names of
+COMMENT Adobe Systems and Digital Equipment Corporation not be used in
+COMMENT advertising or publicity pertaining to distribution of the software
+COMMENT without specific, written prior permission. Adobe Systems and
+COMMENT Digital Equipment Corporation make no representations about the
+COMMENT suitability of this software for any purpose. It is provided "as
+COMMENT is" without express or implied warranty.
+COMMENT -
+STARTPROPERTIES 26
+FOUNDRY "Adobe"
+FAMILY_NAME "Helvetica"
+WEIGHT_NAME "Bold"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 25
+POINT_SIZE 180
+RESOLUTION_X 100
+RESOLUTION_Y 100
+SPACING "P"
+AVERAGE_WIDTH 138
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+CAP_HEIGHT 19
+X_HEIGHT 14
+FONT_ASCENT 22
+FONT_DESCENT 5
+FACE_NAME "Helvetica Bold"
+COPYRIGHT "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved."
+NOTICE "Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. "
+_DEC_DEVICE_FONTNAMES "PS=Helvetica-Bold"
+DEFAULT_CHAR 0
+RELATIVE_SETWIDTH 50
+RELATIVE_WEIGHT 70
+FULL_NAME "Helvetica Bold"
+ENDPROPERTIES
+CHARS 756
+STARTCHAR char0
+ENCODING 0
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+AAAA
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+8002
+0000
+AAAA
+ENDCHAR
+STARTCHAR space
+ENCODING 32
+SWIDTH 278 0
+DWIDTH 6 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+C0
+C0
+C0
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 474 0
+DWIDTH 9 0
+BBX 5 6 2 13
+BITMAP
+D8
+D8
+D8
+D8
+D8
+90
+ENDCHAR
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+7FF0
+7FF0
+1980
+1980
+1980
+1980
+FFE0
+FFE0
+3300
+3300
+3300
+3300
+3300
+ENDCHAR
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 21 0 -2
+BITMAP
+0600
+3F80
+7FE0
+F6E0
+E670
+E670
+F600
+7E00
+3E00
+0F00
+07C0
+07E0
+06F0
+E670
+E670
+E670
+F6F0
+7FE0
+1FC0
+0600
+0600
+ENDCHAR
+STARTCHAR percent
+ENCODING 37
+SWIDTH 889 0
+DWIDTH 22 0
+BBX 21 18 0 0
+BITMAP
+000700
+3E0700
+7F0E00
+E38E00
+C19C00
+C19C00
+E3B800
+7F3800
+3E7000
+007000
+00E3E0
+00E7F0
+01CE38
+01CC18
+038C18
+038E38
+0707F0
+0703E0
+ENDCHAR
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+0F80
+1FC0
+3DE0
+38E0
+38E0
+38E0
+1DC0
+0F80
+1F00
+3F9C
+7BDC
+71FC
+E0F8
+E070
+E0F8
+F1FC
+7FCE
+1F87
+ENDCHAR
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 238 0
+DWIDTH 6 0
+BBX 2 6 2 13
+BITMAP
+C0
+C0
+C0
+C0
+C0
+80
+ENDCHAR
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 24 1 -5
+BITMAP
+0C
+1C
+38
+38
+70
+70
+60
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+60
+70
+70
+38
+38
+1C
+0C
+ENDCHAR
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 24 1 -5
+BITMAP
+C0
+E0
+70
+70
+38
+38
+18
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+18
+38
+38
+70
+70
+E0
+C0
+ENDCHAR
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 8 7 1 12
+BITMAP
+18
+18
+DB
+FF
+3C
+66
+66
+ENDCHAR
+STARTCHAR plus
+ENCODING 43
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 12 12 1 1
+BITMAP
+0600
+0600
+0600
+0600
+0600
+FFF0
+FFF0
+0600
+0600
+0600
+0600
+0600
+ENDCHAR
+STARTCHAR comma
+ENCODING 44
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 -3
+BITMAP
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 7 3 0 6
+BITMAP
+FE
+FE
+FE
+ENDCHAR
+STARTCHAR period
+ENCODING 46
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 3 2 0
+BITMAP
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR slash
+ENCODING 47
+SWIDTH 278 0
+DWIDTH 8 0
+BBX 7 19 1 0
+BITMAP
+06
+06
+06
+0C
+0C
+0C
+18
+18
+18
+18
+30
+30
+30
+60
+60
+60
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR zero
+ENCODING 48
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+1F80
+3FC0
+79E0
+70E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR one
+ENCODING 49
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 7 18 2 0
+BITMAP
+0E
+0E
+1E
+FE
+FE
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+ENDCHAR
+STARTCHAR two
+ENCODING 50
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+1F00
+7FC0
+71E0
+E0E0
+E070
+E070
+0070
+00E0
+01E0
+03C0
+0780
+1F00
+3C00
+7800
+F000
+E000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR three
+ENCODING 51
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+1F00
+7FC0
+71C0
+E0E0
+E0E0
+E0E0
+00E0
+01C0
+0F80
+0FE0
+00E0
+0070
+0070
+E070
+E0F0
+71E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR four
+ENCODING 52
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+01C0
+03C0
+03C0
+07C0
+07C0
+0DC0
+1DC0
+19C0
+31C0
+71C0
+61C0
+E1C0
+FFF0
+FFF0
+01C0
+01C0
+01C0
+01C0
+ENDCHAR
+STARTCHAR five
+ENCODING 53
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+7FE0
+7FE0
+7000
+7000
+7000
+7000
+7F80
+7FC0
+71E0
+00E0
+0070
+0070
+0070
+E070
+E0F0
+F1E0
+7FC0
+1F80
+ENDCHAR
+STARTCHAR six
+ENCODING 54
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+0F80
+3FE0
+78E0
+7070
+E070
+E000
+E000
+EF00
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR seven
+ENCODING 55
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+FFF0
+FFF0
+00F0
+00E0
+01C0
+01C0
+0380
+0380
+0700
+0700
+0E00
+0E00
+1E00
+1C00
+1C00
+3C00
+3800
+3800
+ENDCHAR
+STARTCHAR eight
+ENCODING 56
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+0F00
+3FC0
+39C0
+70E0
+70E0
+70E0
+70E0
+39C0
+1F80
+3FC0
+70E0
+E070
+E070
+E070
+E070
+70E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR nine
+ENCODING 57
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+1F80
+7FC0
+79E0
+F0E0
+E070
+E070
+E070
+E070
+F0F0
+79F0
+7FF0
+1F70
+0070
+0070
+E0E0
+F3E0
+7FC0
+1F00
+ENDCHAR
+STARTCHAR colon
+ENCODING 58
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 14 2 0
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+00
+00
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 17 2 -3
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+00
+00
+00
+00
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR less
+ENCODING 60
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 13 12 0 1
+BITMAP
+0038
+00F8
+03E0
+0F80
+3E00
+F000
+F000
+3E00
+0F80
+03E0
+00F8
+0038
+ENDCHAR
+STARTCHAR equal
+ENCODING 61
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 5 2 5
+BITMAP
+FFC0
+FFC0
+0000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR greater
+ENCODING 62
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 13 12 1 1
+BITMAP
+E000
+F800
+3E00
+0F80
+03E0
+0078
+0078
+03E0
+0F80
+3E00
+F800
+E000
+ENDCHAR
+STARTCHAR question
+ENCODING 63
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+1F80
+7FC0
+79E0
+F0E0
+E0E0
+E1E0
+01C0
+03C0
+0780
+0700
+0E00
+0E00
+0E00
+0E00
+0000
+0000
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR at
+ENCODING 64
+SWIDTH 975 0
+DWIDTH 24 0
+BBX 22 22 1 -4
+BITMAP
+01FF00
+07FFC0
+0F81F0
+1E0078
+3C0038
+787D9C
+70FF9C
+F1C71C
+E3871C
+E30E1C
+E70E38
+E70C38
+E71C70
+E71C70
+E39DE0
+F3FFC0
+71F700
+780000
+3C0000
+1F0700
+0FFF00
+03FC00
+ENDCHAR
+STARTCHAR A
+ENCODING 65
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR B
+ENCODING 66
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 15 19 2 0
+BITMAP
+FFE0
+FFF8
+E078
+E01C
+E01C
+E01C
+E01C
+E038
+FFF0
+FFF8
+E01C
+E00E
+E00E
+E00E
+E00E
+E01E
+E07C
+FFF8
+FFE0
+ENDCHAR
+STARTCHAR C
+ENCODING 67
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+ENDCHAR
+STARTCHAR D
+ENCODING 68
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 19 2 0
+BITMAP
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+ENDCHAR
+STARTCHAR E
+ENCODING 69
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 19 2 0
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR F
+ENCODING 70
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 2 0
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR G
+ENCODING 71
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 19 1 0
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR H
+ENCODING 72
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR I
+ENCODING 73
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR J
+ENCODING 74
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 19 1 0
+BITMAP
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+E0E0
+E0E0
+E0E0
+E0E0
+71E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR K
+ENCODING 75
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 19 2 0
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+ENDCHAR
+STARTCHAR L
+ENCODING 76
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR M
+ENCODING 77
+SWIDTH 833 0
+DWIDTH 23 0
+BBX 19 19 2 0
+BITMAP
+E000E0
+F001E0
+F001E0
+F803E0
+F803E0
+FC07E0
+EC06E0
+EE0EE0
+E60CE0
+E71CE0
+E71CE0
+E318E0
+E3B8E0
+E3B8E0
+E1F0E0
+E1F0E0
+E0E0E0
+E0E0E0
+E0E0E0
+ENDCHAR
+STARTCHAR N
+ENCODING 78
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR O
+ENCODING 79
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 19 1 0
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR P
+ENCODING 80
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 19 2 0
+BITMAP
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR Q
+ENCODING 81
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 20 1 -1
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F02780
+707700
+783F00
+3E1E00
+1FFE00
+07F700
+000200
+ENDCHAR
+STARTCHAR R
+ENCODING 82
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 19 2 0
+BITMAP
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR S
+ENCODING 83
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 19 2 0
+BITMAP
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+ENDCHAR
+STARTCHAR T
+ENCODING 84
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 19 0 0
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR U
+ENCODING 85
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR V
+ENCODING 86
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+E007
+E007
+F00F
+700E
+781E
+381C
+381C
+3C3C
+1C38
+1C38
+1E78
+0E70
+0E70
+0E70
+07E0
+07E0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR W
+ENCODING 87
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 19 1 0
+BITMAP
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR X
+ENCODING 88
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+E007
+F00F
+781E
+381C
+1C38
+0E70
+0FF0
+07E0
+03C0
+03C0
+07E0
+0FF0
+0E70
+1C38
+3C3C
+381C
+700E
+F00F
+E007
+ENDCHAR
+STARTCHAR Y
+ENCODING 89
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 19 1 0
+BITMAP
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR Z
+ENCODING 90
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 19 1 0
+BITMAP
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 5 24 1 -5
+BITMAP
+F8
+F8
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+F8
+F8
+ENDCHAR
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 278 0
+DWIDTH 8 0
+BBX 7 19 0 0
+BITMAP
+C0
+C0
+C0
+60
+60
+60
+30
+30
+30
+30
+18
+18
+18
+0C
+0C
+0C
+06
+06
+06
+ENDCHAR
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 5 24 2 -5
+BITMAP
+F8
+F8
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F8
+ENDCHAR
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 11 9 1 10
+BITMAP
+0E00
+0E00
+1F00
+1B00
+3B80
+71C0
+71C0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 14 2 0 -5
+BITMAP
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR grave
+ENCODING 96
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 15
+BITMAP
+E0
+70
+38
+1C
+ENDCHAR
+STARTCHAR a
+ENCODING 97
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR b
+ENCODING 98
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+ENDCHAR
+STARTCHAR c
+ENCODING 99
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR d
+ENCODING 100
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 1 0
+BITMAP
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+ENDCHAR
+STARTCHAR e
+ENCODING 101
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR f
+ENCODING 102
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 19 1 0
+BITMAP
+1E
+3E
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR g
+ENCODING 103
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 1 -5
+BITMAP
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR h
+ENCODING 104
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR i
+ENCODING 105
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+00
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR j
+ENCODING 106
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 5 24 0 -5
+BITMAP
+38
+38
+38
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR k
+ENCODING 107
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+ENDCHAR
+STARTCHAR l
+ENCODING 108
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR m
+ENCODING 109
+SWIDTH 889 0
+DWIDTH 21 0
+BBX 17 14 2 0
+BITMAP
+EF3E00
+FFFF00
+F3E780
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+ENDCHAR
+STARTCHAR n
+ENCODING 110
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 14 2 0
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR o
+ENCODING 111
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR p
+ENCODING 112
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 2 -5
+BITMAP
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR q
+ENCODING 113
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 1 -5
+BITMAP
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+0070
+0070
+0070
+0070
+ENDCHAR
+STARTCHAR r
+ENCODING 114
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 14 2 0
+BITMAP
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR s
+ENCODING 115
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR t
+ENCODING 116
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 18 1 0
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+ENDCHAR
+STARTCHAR u
+ENCODING 117
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 14 2 0
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR v
+ENCODING 118
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E070
+E070
+E070
+70E0
+70E0
+70E0
+39C0
+39C0
+39C0
+1F80
+1F80
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR w
+ENCODING 119
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 14 0 0
+BITMAP
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR x
+ENCODING 120
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+E0E0
+F1E0
+71C0
+3B80
+3F80
+1F00
+0E00
+1F00
+1F00
+3B80
+7BC0
+71C0
+F1E0
+E0E0
+ENDCHAR
+STARTCHAR y
+ENCODING 121
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 19 1 -5
+BITMAP
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR z
+ENCODING 122
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 24 1 -5
+BITMAP
+0E
+1C
+38
+38
+38
+38
+38
+38
+38
+38
+70
+E0
+E0
+70
+38
+38
+38
+38
+38
+38
+38
+38
+1C
+0E
+ENDCHAR
+STARTCHAR bar
+ENCODING 124
+SWIDTH 280 0
+DWIDTH 7 0
+BBX 2 24 3 -5
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 24 2 -5
+BITMAP
+E0
+70
+38
+38
+38
+38
+38
+38
+38
+38
+1C
+0E
+0E
+1C
+38
+38
+38
+38
+38
+38
+38
+38
+70
+E0
+ENDCHAR
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 11 4 1 5
+BITMAP
+78E0
+FEE0
+EFE0
+E3C0
+ENDCHAR
+STARTCHAR space
+ENCODING 160
+SWIDTH 278 0
+DWIDTH 6 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 19 2 -5
+BITMAP
+E0
+E0
+E0
+00
+00
+60
+60
+60
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR cent
+ENCODING 162
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 18 1 -2
+BITMAP
+0180
+0180
+1F80
+3FC0
+7BE0
+7360
+E300
+E600
+E600
+E600
+E600
+EC00
+ECE0
+7DE0
+7FC0
+3F80
+1800
+1800
+ENDCHAR
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 18 1 0
+BITMAP
+1F80
+3FC0
+70E0
+70E0
+7000
+7800
+3800
+1C00
+FFC0
+FFC0
+1C00
+1C00
+1C00
+3800
+3800
+7F38
+FFF8
+F1F0
+ENDCHAR
+STARTCHAR currency
+ENCODING 164
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 12 1 3
+BITMAP
+C030
+EF70
+7FE0
+39C0
+70E0
+70E0
+70E0
+70E0
+39C0
+7FE0
+EF70
+C030
+ENDCHAR
+STARTCHAR yen
+ENCODING 165
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 18 0 0
+BITMAP
+E038
+E038
+7070
+7070
+38E0
+38E0
+1DC0
+1DC0
+7FF0
+7FF0
+0700
+7FF0
+7FF0
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR brokenbar
+ENCODING 166
+SWIDTH 280 0
+DWIDTH 7 0
+BBX 2 24 3 -5
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+00
+00
+00
+00
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR section
+ENCODING 167
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 -5
+BITMAP
+1F80
+3FC0
+79E0
+70E0
+78E0
+3C00
+1E00
+7F00
+F780
+E3C0
+E1E0
+E0E0
+7070
+7870
+3C70
+1EE0
+0FC0
+0780
+03C0
+71E0
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 2 1 16
+BITMAP
+EE
+EE
+ENDCHAR
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 737 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+01F000
+0FFE00
+1E0F00
+380380
+7001C0
+61F0C0
+E3B8E0
+C60C60
+C60060
+C60060
+C60060
+C60C60
+E3B8E0
+61F0C0
+7001C0
+380380
+1E0F00
+0FFE00
+01F000
+ENDCHAR
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 370 0
+DWIDTH 10 0
+BBX 8 12 1 7
+BITMAP
+7C
+FE
+C6
+1E
+7E
+E6
+C6
+FF
+7B
+00
+FF
+FF
+ENDCHAR
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 10 8 1 3
+BITMAP
+1DC0
+3B80
+7700
+EE00
+EE00
+7700
+3B80
+1DC0
+ENDCHAR
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 12 7 1 4
+BITMAP
+FFF0
+FFF0
+0030
+0030
+0030
+0030
+0030
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 7 3 0 6
+BITMAP
+FE
+FE
+FE
+ENDCHAR
+STARTCHAR registered
+ENCODING 174
+SWIDTH 737 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+03F800
+0FFE00
+1C0F00
+380380
+73F9C0
+631CC0
+E30CE0
+C30C60
+C31860
+C3F060
+C33060
+C31860
+E31860
+630CE0
+7000C0
+3801C0
+1E0380
+0FFE00
+03F800
+ENDCHAR
+STARTCHAR macron
+ENCODING 175
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 2 1 17
+BITMAP
+FE
+FE
+ENDCHAR
+STARTCHAR degree
+ENCODING 176
+SWIDTH 400 0
+DWIDTH 9 0
+BBX 8 7 0 11
+BITMAP
+3C
+66
+C3
+C3
+C3
+66
+3C
+ENDCHAR
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 11 13 2 0
+BITMAP
+0E00
+0E00
+0E00
+0E00
+FFE0
+FFE0
+0E00
+0E00
+0E00
+0E00
+0000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 10 0 8
+BITMAP
+78
+FC
+CC
+0C
+1C
+78
+E0
+C0
+FC
+FC
+ENDCHAR
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 10 0 8
+BITMAP
+78
+FC
+CC
+0C
+38
+38
+0C
+CC
+FC
+78
+ENDCHAR
+STARTCHAR acute
+ENCODING 180
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 15
+BITMAP
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR mu
+ENCODING 181
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+F3E0
+FEE0
+ECE0
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 24 1 -5
+BITMAP
+0FE0
+3FE0
+7CC0
+7CC0
+FCC0
+FCC0
+FCC0
+FCC0
+FCC0
+7CC0
+7CC0
+3CC0
+1CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+0CC0
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 3 2 6
+BITMAP
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 6 1 -5
+BITMAP
+70
+78
+1C
+1C
+FC
+78
+ENDCHAR
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 4 10 1 8
+BITMAP
+30
+30
+F0
+F0
+30
+30
+30
+30
+30
+30
+ENDCHAR
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 365 0
+DWIDTH 10 0
+BBX 8 12 1 7
+BITMAP
+3C
+7E
+E7
+C3
+C3
+C3
+E7
+7E
+3C
+00
+FF
+FF
+ENDCHAR
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 10 8 1 3
+BITMAP
+EE00
+7700
+3B80
+1DC0
+1DC0
+3B80
+7700
+EE00
+ENDCHAR
+STARTCHAR onequarter
+ENCODING 188
+SWIDTH 834 0
+DWIDTH 19 0
+BBX 17 18 1 0
+BITMAP
+301800
+301800
+F03000
+F03000
+306000
+306000
+30C000
+30C000
+318600
+318E00
+031E00
+031E00
+063600
+066600
+0C7F80
+0C7F80
+180600
+180600
+ENDCHAR
+STARTCHAR onehalf
+ENCODING 189
+SWIDTH 834 0
+DWIDTH 19 0
+BBX 16 18 1 0
+BITMAP
+3018
+3018
+F030
+F030
+3060
+3060
+30C0
+30C0
+319E
+31BF
+0333
+0303
+0607
+061E
+0C38
+0C30
+183F
+183F
+ENDCHAR
+STARTCHAR threequarters
+ENCODING 190
+SWIDTH 834 0
+DWIDTH 19 0
+BBX 17 18 1 0
+BITMAP
+781800
+FC1800
+CC3000
+0C3000
+386000
+386000
+0CC000
+CCC000
+FD8600
+798E00
+031E00
+031E00
+063600
+066600
+0C7F80
+0C7F80
+180600
+180600
+ENDCHAR
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+0E00
+0E00
+0E00
+0000
+0000
+0E00
+0E00
+0E00
+0E00
+1C00
+3C00
+7800
+7000
+F0E0
+E0E0
+E1E0
+F3C0
+7FC0
+3F00
+ENDCHAR
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+01C0
+03E0
+0770
+0E38
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+0798
+0FF8
+0CF0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+0E70
+0E70
+0000
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+03C0
+0660
+0420
+0660
+03C0
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR AE
+ENCODING 198
+SWIDTH 1000 0
+DWIDTH 24 0
+BBX 22 19 1 0
+BITMAP
+03FFF8
+03FFF8
+077000
+077000
+0E7000
+0E7000
+0E7000
+1C7000
+1C7FF0
+1C7FF0
+387000
+387000
+3FF000
+7FF000
+707000
+707000
+E07000
+E07FFC
+E07FFC
+ENDCHAR
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 -5
+BITMAP
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+03C0
+00E0
+00E0
+07E0
+03C0
+ENDCHAR
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+3800
+1C00
+0E00
+0700
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 23 2 0
+BITMAP
+38E0
+38E0
+0000
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 24 0 0
+BITMAP
+E0
+70
+38
+1C
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 24 1 0
+BITMAP
+1C
+38
+70
+E0
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 0
+BITMAP
+1C00
+3E00
+7700
+E380
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 23 0 0
+BITMAP
+EE
+EE
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 19 19 -1 0
+BITMAP
+1FFC00
+1FFF00
+1C0F80
+1C03C0
+1C01C0
+1C01E0
+1C00E0
+1C00E0
+FFC0E0
+FFC0E0
+1C00E0
+1C00E0
+1C00E0
+1C01E0
+1C01C0
+1C03C0
+1C0F80
+1FFF00
+1FFC00
+ENDCHAR
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+0E0000
+070000
+038000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+003800
+007000
+00E000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 23 1 0
+BITMAP
+079800
+0FF800
+0CF000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 23 1 0
+BITMAP
+0E3800
+0E3800
+000000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 12 12 1 1
+BITMAP
+4020
+E070
+70E0
+39C0
+1F80
+0F00
+0F00
+1F80
+39C0
+70E0
+E070
+4020
+ENDCHAR
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+03F860
+0FFEE0
+1F1FC0
+3C0380
+380780
+780FC0
+701DC0
+7039C0
+7071C0
+70E1C0
+71C1C0
+7381C0
+7701C0
+7E03C0
+3C0380
+3C0780
+7F1F00
+EFFE00
+C3F800
+ENDCHAR
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+0380
+07C0
+0EE0
+1C70
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 0
+BITMAP
+1C70
+1C70
+0000
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 24 1 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+E00E
+F01E
+701C
+783C
+3838
+3C78
+1C70
+1EF0
+0EE0
+0FE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 11 19 2 0
+BITMAP
+1E00
+7F80
+F380
+E1C0
+E1C0
+E1C0
+E1C0
+E380
+EF00
+EF80
+E3C0
+E1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E1C0
+EFC0
+EF80
+ENDCHAR
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+39C0
+39C0
+0000
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR aring
+ENCODING 229
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0700
+0D80
+0880
+0D80
+0700
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR ae
+ENCODING 230
+SWIDTH 889 0
+DWIDTH 22 0
+BBX 20 14 1 0
+BITMAP
+1F8F00
+3FFFC0
+71F9E0
+70F0E0
+00E070
+07E070
+3FFFF0
+7CFFF0
+F0E000
+E0E000
+E1F070
+F3F8F0
+7F3FE0
+3E0F80
+ENDCHAR
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 -5
+BITMAP
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+1E00
+0700
+0700
+3F00
+1E00
+ENDCHAR
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+39C0
+39C0
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 19 0 0
+BITMAP
+E0
+70
+38
+1C
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 19 1 0
+BITMAP
+1C
+38
+70
+E0
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 19 -1 0
+BITMAP
+1C00
+3E00
+7700
+E380
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 18 0 0
+BITMAP
+EE
+EE
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR eth
+ENCODING 240
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+7000
+1DC0
+0700
+1F00
+6180
+0FC0
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+0000
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+39C0
+39C0
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR divide
+ENCODING 247
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 11 12 2 1
+BITMAP
+0E00
+0E00
+0E00
+0000
+0000
+FFE0
+FFE0
+0000
+0000
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 14 0 0
+BITMAP
+078C
+1FFC
+3CF8
+3870
+70F8
+71F8
+73B8
+7738
+7E38
+7C38
+3870
+7CF0
+FFE0
+C780
+ENDCHAR
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+3800
+1C00
+0E00
+0700
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 18 2 0
+BITMAP
+39C0
+39C0
+0000
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 24 1 -5
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 2 -5
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 23 1 -5
+BITMAP
+1CE0
+1CE0
+0000
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR Amacron
+ENCODING 256
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+0FE0
+0FE0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR amacron
+ENCODING 257
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+1FC0
+1FC0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR Abreve
+ENCODING 258
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+1830
+1C70
+0FE0
+07C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR abreve
+ENCODING 259
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR Aogonek
+ENCODING 260
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 -5
+BITMAP
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E1E7
+0380
+0700
+0700
+07E0
+03C0
+ENDCHAR
+STARTCHAR aogonek
+ENCODING 261
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3FF0
+0E00
+1C00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR Cacute
+ENCODING 262
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+ENDCHAR
+STARTCHAR cacute
+ENCODING 263
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR Ccircumflex
+ENCODING 264
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+01C0
+03E0
+0770
+0E38
+0000
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+ENDCHAR
+STARTCHAR ccircumflex
+ENCODING 265
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR Cdotaccent
+ENCODING 266
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+01C0
+01C0
+0000
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+ENDCHAR
+STARTCHAR cdotaccent
+ENCODING 267
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0E00
+0E00
+0000
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR Ccaron
+ENCODING 268
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0E38
+0770
+03E0
+01C0
+0000
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+ENDCHAR
+STARTCHAR ccaron
+ENCODING 269
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR Dcaron
+ENCODING 270
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 24 2 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+ENDCHAR
+STARTCHAR dcaron
+ENCODING 271
+SWIDTH 858 0
+DWIDTH 21 0
+BBX 18 19 1 0
+BITMAP
+0071C0
+0071C0
+0071C0
+0070C0
+0070C0
+1F7180
+3FF000
+79F000
+70F000
+E07000
+E07000
+E07000
+E07000
+E07000
+E07000
+70F000
+79F000
+3FF000
+1F7000
+ENDCHAR
+STARTCHAR Dcroat
+ENCODING 272
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 19 19 -1 0
+BITMAP
+1FFC00
+1FFF00
+1C0F80
+1C03C0
+1C01C0
+1C01E0
+1C00E0
+1C00E0
+FFC0E0
+FFC0E0
+1C00E0
+1C00E0
+1C00E0
+1C01E0
+1C01C0
+1C03C0
+1C0F80
+1FFF00
+1FFC00
+ENDCHAR
+STARTCHAR dcroat
+ENCODING 273
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 1 0
+BITMAP
+0070
+0070
+0070
+00F0
+00F0
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+ENDCHAR
+STARTCHAR Emacron
+ENCODING 274
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 22 2 0
+BITMAP
+3F80
+3F80
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR emacron
+ENCODING 275
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Ebreve
+ENCODING 276
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+60C0
+71C0
+3F80
+1F00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR ebreve
+ENCODING 277
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Edotaccent
+ENCODING 278
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 22 2 0
+BITMAP
+0E00
+0E00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR edotaccent
+ENCODING 279
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0700
+0700
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Eogonek
+ENCODING 280
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 -5
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+1C00
+3800
+3800
+3F00
+1E00
+ENDCHAR
+STARTCHAR eogonek
+ENCODING 281
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0E00
+1C00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR Ecaron
+ENCODING 282
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR ecaron
+ENCODING 283
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR Gcircumflex
+ENCODING 284
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR gcircumflex
+ENCODING 285
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Gbreve
+ENCODING 286
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+0C1800
+0E3800
+07F000
+03E000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR gbreve
+ENCODING 287
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Gdotaccent
+ENCODING 288
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 22 1 0
+BITMAP
+01C000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR gdotaccent
+ENCODING 289
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 -5
+BITMAP
+0700
+0700
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Gcommaaccent
+ENCODING 290
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 26 1 -7
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+000000
+00E000
+00E000
+00E000
+006000
+006000
+00C000
+ENDCHAR
+STARTCHAR gcommaaccent
+ENCODING 291
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 26 1 -5
+BITMAP
+0300
+0600
+0600
+0700
+0700
+0700
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Hcircumflex
+ENCODING 292
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+0380
+07C0
+0EE0
+1C70
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR hcircumflex
+ENCODING 293
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 24 0 0
+BITMAP
+1C00
+3E00
+7700
+E380
+0000
+3800
+3800
+3800
+3800
+3800
+3BC0
+3FF0
+3C70
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+ENDCHAR
+STARTCHAR Hbar
+ENCODING 294
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR hbar
+ENCODING 295
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+E000
+E000
+E000
+F800
+F800
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR Itilde
+ENCODING 296
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 23 -1 0
+BITMAP
+7980
+FF80
+CF00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR itilde
+ENCODING 297
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 18 -1 0
+BITMAP
+7980
+FF80
+CF00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR Imacron
+ENCODING 298
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 22 0 0
+BITMAP
+FE
+FE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR imacron
+ENCODING 299
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 17 0 0
+BITMAP
+FE
+FE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Ibreve
+ENCODING 300
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 0
+BITMAP
+C180
+E380
+7F00
+3E00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR ibreve
+ENCODING 301
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 19 -1 0
+BITMAP
+C180
+E380
+7F00
+3E00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR Iogonek
+ENCODING 302
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 24 0 -5
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3C
+70
+E0
+E0
+FC
+78
+ENDCHAR
+STARTCHAR iogonek
+ENCODING 303
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 24 0 -5
+BITMAP
+38
+38
+38
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3C
+70
+E0
+E0
+FC
+78
+ENDCHAR
+STARTCHAR Idotaccent
+ENCODING 304
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 22 2 0
+BITMAP
+E0
+E0
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR dotlessi
+ENCODING 305
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 14 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR IJ
+ENCODING 306
+SWIDTH 820 0
+DWIDTH 21 0
+BBX 17 19 2 0
+BITMAP
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E38380
+E38380
+E38380
+E38380
+E1C780
+E1FF00
+E0FE00
+ENDCHAR
+STARTCHAR ij
+ENCODING 307
+SWIDTH 542 0
+DWIDTH 14 0
+BBX 10 24 2 -5
+BITMAP
+E1C0
+E1C0
+E1C0
+0000
+0000
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+01C0
+01C0
+01C0
+07C0
+0780
+ENDCHAR
+STARTCHAR Jcircumflex
+ENCODING 308
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 24 1 0
+BITMAP
+01C0
+03E0
+0770
+0E38
+0000
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+E0E0
+E0E0
+E0E0
+E0E0
+71E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR jcircumflex
+ENCODING 309
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 -5
+BITMAP
+1C00
+3E00
+7700
+E380
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+7C00
+7800
+ENDCHAR
+STARTCHAR Kcommaaccent
+ENCODING 310
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 26 2 -7
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+0000
+0700
+0700
+0700
+0300
+0300
+0600
+ENDCHAR
+STARTCHAR kcommaaccent
+ENCODING 311
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 26 2 -7
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+0000
+0E00
+0E00
+0E00
+0600
+0600
+0C00
+ENDCHAR
+STARTCHAR kgreenlandic
+ENCODING 312
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 14 2 0
+BITMAP
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+ENDCHAR
+STARTCHAR Lacute
+ENCODING 313
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 2 0
+BITMAP
+0E00
+1C00
+3800
+7000
+0000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR lacute
+ENCODING 314
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 6 24 1 0
+BITMAP
+1C
+38
+70
+E0
+00
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+ENDCHAR
+STARTCHAR Lcommaaccent
+ENCODING 315
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 26 2 -7
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+0000
+0E00
+0E00
+0E00
+0600
+0600
+0C00
+ENDCHAR
+STARTCHAR lcommaaccent
+ENCODING 316
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 26 2 -7
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR Lcaron
+ENCODING 317
+SWIDTH 858 0
+DWIDTH 21 0
+BBX 17 19 2 0
+BITMAP
+E00380
+E00380
+E00380
+E00180
+E00180
+E00300
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+FFF000
+FFF000
+ENDCHAR
+STARTCHAR lcaron
+ENCODING 318
+SWIDTH 542 0
+DWIDTH 14 0
+BBX 10 19 2 0
+BITMAP
+E1C0
+E1C0
+E1C0
+E0C0
+E0C0
+E180
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR Ldot
+ENCODING 319
+SWIDTH 858 0
+DWIDTH 21 0
+BBX 17 19 2 0
+BITMAP
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00000
+E00380
+E00380
+E00380
+E00000
+E00000
+E00000
+E00000
+FFF000
+FFF000
+ENDCHAR
+STARTCHAR ldot
+ENCODING 320
+SWIDTH 542 0
+DWIDTH 14 0
+BBX 10 19 2 0
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E1C0
+E1C0
+E1C0
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR Lslash
+ENCODING 321
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 14 19 0 0
+BITMAP
+3800
+3800
+3800
+3800
+3800
+3800
+3B00
+3E00
+3C00
+7800
+F800
+3800
+3800
+3800
+3800
+3800
+3800
+3FFC
+3FFC
+ENDCHAR
+STARTCHAR lslash
+ENCODING 322
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 19 0 0
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+3E
+3C
+78
+F8
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR Nacute
+ENCODING 323
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR nacute
+ENCODING 324
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR Ncommaaccent
+ENCODING 325
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 26 2 -7
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+0000
+0380
+0380
+0380
+0180
+0180
+0300
+ENDCHAR
+STARTCHAR ncommaaccent
+ENCODING 326
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 21 2 -7
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+0E00
+0E00
+0E00
+0600
+0600
+0C00
+ENDCHAR
+STARTCHAR Ncaron
+ENCODING 327
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR ncaron
+ENCODING 328
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR napostrophe
+ENCODING 329
+SWIDTH 875 0
+DWIDTH 22 0
+BBX 18 19 2 0
+BITMAP
+E00000
+E00000
+E00000
+600000
+600000
+C1DF00
+01FF80
+01E380
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+01C1C0
+ENDCHAR
+STARTCHAR Eng
+ENCODING 330
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+000E
+000E
+000E
+003E
+003C
+ENDCHAR
+STARTCHAR eng
+ENCODING 331
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+00E0
+00E0
+00E0
+03E0
+03C0
+ENDCHAR
+STARTCHAR Omacron
+ENCODING 332
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 22 1 0
+BITMAP
+07F000
+07F000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR omacron
+ENCODING 333
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR Obreve
+ENCODING 334
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+0C1800
+0E3800
+07F000
+03E000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR obreve
+ENCODING 335
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR Ohungarumlaut
+ENCODING 336
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 23 1 0
+BITMAP
+01DC00
+03B800
+077000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR ohungarumlaut
+ENCODING 337
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+0EE0
+1DC0
+3B80
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR OE
+ENCODING 338
+SWIDTH 1000 0
+DWIDTH 26 0
+BBX 24 19 1 0
+BITMAP
+0FDFFE
+1FFFFE
+3C7C00
+703C00
+701C00
+E01C00
+E01C00
+E01C00
+E01FFC
+E01FFC
+E01C00
+E01C00
+E01C00
+E01C00
+701C00
+703C00
+3C7C00
+1FFFFF
+07DFFF
+ENDCHAR
+STARTCHAR oe
+ENCODING 339
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 14 1 0
+BITMAP
+0F0780
+3FDFE0
+79FCF0
+70F870
+E07038
+E07038
+E07FF8
+E07FF8
+E07000
+E07000
+70F838
+79FC78
+3FDFF0
+0F07C0
+ENDCHAR
+STARTCHAR Racute
+ENCODING 340
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR racute
+ENCODING 341
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 19 2 0
+BITMAP
+0E
+1C
+38
+70
+00
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR Rcommaaccent
+ENCODING 342
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 26 2 -7
+BITMAP
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+0000
+0380
+0380
+0380
+0180
+0180
+0300
+ENDCHAR
+STARTCHAR rcommaaccent
+ENCODING 343
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 21 2 -7
+BITMAP
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+70
+70
+70
+30
+30
+60
+ENDCHAR
+STARTCHAR Rcaron
+ENCODING 344
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR rcaron
+ENCODING 345
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 9 19 1 0
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+7700
+7F00
+7F00
+7800
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+ENDCHAR
+STARTCHAR Sacute
+ENCODING 346
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+ENDCHAR
+STARTCHAR sacute
+ENCODING 347
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Scircumflex
+ENCODING 348
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+ENDCHAR
+STARTCHAR scircumflex
+ENCODING 349
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Scedilla
+ENCODING 350
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 24 2 -5
+BITMAP
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+0780
+01C0
+01C0
+0FC0
+0780
+ENDCHAR
+STARTCHAR scedilla
+ENCODING 351
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 -5
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR Scaron
+ENCODING 352
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 19 1 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+0FC0
+3FF0
+7878
+7038
+7800
+7FC0
+3FF0
+0FFC
+003C
+E01C
+E01C
+787C
+3FF8
+1FE0
+ENDCHAR
+STARTCHAR scaron
+ENCODING 353
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 354
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 24 0 -5
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+03C0
+00E0
+00E0
+07E0
+03C0
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 355
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 23 1 -5
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+3E
+3C
+0E
+0E
+7E
+3C
+ENDCHAR
+STARTCHAR Tcaron
+ENCODING 356
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 24 0 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR tcaron
+ENCODING 357
+SWIDTH 594 0
+DWIDTH 16 0
+BBX 13 19 1 0
+BITMAP
+0038
+3838
+3838
+3818
+3818
+FE30
+FE00
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3E00
+1E00
+ENDCHAR
+STARTCHAR Tbar
+ENCODING 358
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 19 0 0
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR tbar
+ENCODING 359
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 18 1 0
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+ENDCHAR
+STARTCHAR Utilde
+ENCODING 360
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR utilde
+ENCODING 361
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 18 2 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Umacron
+ENCODING 362
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 0
+BITMAP
+0FE0
+0FE0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR umacron
+ENCODING 363
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 0
+BITMAP
+3F80
+3F80
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Ubreve
+ENCODING 364
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+1830
+1C70
+0FE0
+07C0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR ubreve
+ENCODING 365
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+60C0
+71C0
+3F80
+1F00
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Uring
+ENCODING 366
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 25 2 0
+BITMAP
+0380
+07C0
+06C0
+07C0
+0380
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uring
+ENCODING 367
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 20 2 0
+BITMAP
+0E00
+1F00
+1B00
+1F00
+0E00
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Uhungarumlaut
+ENCODING 368
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 0
+BITMAP
+03B8
+0770
+0EE0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uhungarumlaut
+ENCODING 369
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 18 2 0
+BITMAP
+0EE0
+1DC0
+3B80
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Uogonek
+ENCODING 370
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+0700
+0E00
+0E00
+0FC0
+0780
+ENDCHAR
+STARTCHAR uogonek
+ENCODING 371
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1FE0
+0E00
+1C00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR Wcircumflex
+ENCODING 372
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 24 1 0
+BITMAP
+007000
+00F800
+01DC00
+038E00
+000000
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR wcircumflex
+ENCODING 373
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+00E000
+01F000
+03B800
+071C00
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR Ycircumflex
+ENCODING 374
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 24 1 0
+BITMAP
+0380
+07C0
+0EE0
+1C70
+0000
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR ycircumflex
+ENCODING 375
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 24 1 -5
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR Ydieresis
+ENCODING 376
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 18 1 0
+BITMAP
+0EE0
+0EE0
+0000
+0000
+E00E
+E00E
+701C
+3838
+1830
+1C70
+0EE0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR Zacute
+ENCODING 377
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 24 1 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR zacute
+ENCODING 378
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR Zdotaccent
+ENCODING 379
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 22 1 0
+BITMAP
+0380
+0380
+0000
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR zdotaccent
+ENCODING 380
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0E00
+0E00
+0000
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR Zcaron
+ENCODING 381
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 19 1 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+FFF8
+FFF8
+0078
+00F0
+01E0
+03C0
+0780
+0F00
+1E00
+3C00
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR zcaron
+ENCODING 382
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR uni0186
+ENCODING 390
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+0FE0
+3FF8
+7C7C
+F01E
+E00E
+E00F
+0007
+0007
+0007
+0007
+0007
+0007
+0007
+000F
+E00E
+F01E
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni0189
+ENCODING 393
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 19 19 -1 0
+BITMAP
+1FFC00
+1FFF00
+1C0F80
+1C03C0
+1C01C0
+1C01E0
+1C00E0
+1C00E0
+FFC0E0
+FFC0E0
+1C00E0
+1C00E0
+1C00E0
+1C01E0
+1C01C0
+1C03C0
+1C0F80
+1FFF00
+1FFC00
+ENDCHAR
+STARTCHAR uni018E
+ENCODING 398
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 19 2 0
+BITMAP
+FFF8
+FFF8
+0038
+0038
+0038
+0038
+0038
+0038
+0038
+3FF8
+3FF8
+0038
+0038
+0038
+0038
+0038
+0038
+7FF8
+7FF8
+ENDCHAR
+STARTCHAR florin
+ENCODING 402
+SWIDTH 556 0
+DWIDTH 12 0
+BBX 13 23 -2 -5
+BITMAP
+00F8
+01F8
+03C0
+0380
+0380
+0380
+1FF0
+1FF0
+0700
+0700
+0700
+0700
+0700
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0C00
+1C00
+F800
+F000
+ENDCHAR
+STARTCHAR uni0197
+ENCODING 407
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni019A
+ENCODING 410
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni019D
+ENCODING 413
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 24 0 -5
+BITMAP
+380380
+3C0380
+3C0380
+3E0380
+3E0380
+3F0380
+3B8380
+3B8380
+39C380
+38E380
+38E380
+387380
+383380
+383B80
+381F80
+380F80
+380F80
+380780
+380380
+380000
+380000
+380000
+F80000
+F00000
+ENDCHAR
+STARTCHAR uni019F
+ENCODING 415
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 19 1 0
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+FFFF80
+FFFF80
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Ohorn
+ENCODING 416
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 18 19 1 0
+BITMAP
+07F1C0
+1FFDC0
+3E3FC0
+780FC0
+7007C0
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR ohorn
+ENCODING 417
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 14 1 0
+BITMAP
+0F1C
+3FDC
+79FC
+70EC
+E07C
+E078
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni01A7
+ENCODING 423
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 19 2 0
+BITMAP
+0FC0
+3FF0
+7C78
+703C
+701C
+001C
+003C
+00F8
+0FF0
+3F80
+7C00
+F000
+E000
+E01C
+E01C
+F01C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01A8
+ENCODING 424
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+1F80
+3FC0
+79E0
+70E0
+00E0
+07E0
+3FC0
+7E00
+F000
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni01AE
+ENCODING 430
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 24 0 -5
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+03E0
+01E0
+ENDCHAR
+STARTCHAR Uhorn
+ENCODING 431
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 19 2 0
+BITMAP
+E00F80
+E00F80
+E00F80
+E00F80
+E00F80
+E00F00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+F01E00
+701C00
+7C7C00
+3FF800
+0FE000
+ENDCHAR
+STARTCHAR uhorn
+ENCODING 432
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 14 2 0
+BITMAP
+E0F8
+E0F8
+E0F8
+E0F8
+E0F8
+E0F0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01B5
+ENCODING 437
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 19 1 0
+BITMAP
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR uni01B6
+ENCODING 438
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR uni01BB
+ENCODING 443
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+1F00
+7FC0
+71E0
+E0E0
+E070
+E070
+0070
+00E0
+FFF0
+FFF0
+0780
+1F00
+3C00
+7800
+F000
+E000
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR uni01BC
+ENCODING 444
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 12 18 0 0
+BITMAP
+7FE0
+7FE0
+7000
+7000
+7000
+7000
+7F80
+7FC0
+71E0
+00E0
+0070
+0070
+0070
+E070
+E0F0
+F1E0
+7FC0
+1F80
+ENDCHAR
+STARTCHAR uni01C0
+ENCODING 448
+SWIDTH 280 0
+DWIDTH 7 0
+BBX 2 24 3 -5
+BITMAP
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR uni01C2
+ENCODING 450
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 24 2 -4
+BITMAP
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+FFC0
+FFC0
+0C00
+FFC0
+FFC0
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni01C3
+ENCODING 451
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 19 2 0
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+C0
+C0
+C0
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni01CD
+ENCODING 461
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni01CE
+ENCODING 462
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni01CF
+ENCODING 463
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 0
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni01D0
+ENCODING 464
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 19 -1 0
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni01D1
+ENCODING 465
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+0E3800
+077000
+03E000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni01D2
+ENCODING 466
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni01D3
+ENCODING 467
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01D4
+ENCODING 468
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01D5
+ENCODING 469
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 26 2 0
+BITMAP
+0FE0
+0FE0
+0000
+1C70
+1C70
+0000
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01D6
+ENCODING 470
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 21 2 0
+BITMAP
+3F80
+3F80
+0000
+39C0
+39C0
+0000
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01D7
+ENCODING 471
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 28 2 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+1C70
+1C70
+0000
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01D8
+ENCODING 472
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 23 2 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+39C0
+39C0
+0000
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01D9
+ENCODING 473
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 28 2 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+1C70
+1C70
+0000
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01DA
+ENCODING 474
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 23 2 0
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+39C0
+39C0
+0000
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01DB
+ENCODING 475
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 28 2 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+1C70
+1C70
+0000
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni01DC
+ENCODING 476
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 23 2 0
+BITMAP
+3800
+1C00
+0E00
+0700
+0000
+39C0
+39C0
+0000
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni01DD
+ENCODING 477
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+1F00
+7FC0
+F1E0
+E0E0
+0070
+0070
+FFF0
+FFF0
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni01DE
+ENCODING 478
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 26 1 0
+BITMAP
+07F0
+07F0
+0000
+0E70
+0E70
+0000
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni01DF
+ENCODING 479
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 21 1 0
+BITMAP
+1FC0
+1FC0
+0000
+39C0
+39C0
+0000
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni01E0
+ENCODING 480
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 25 1 0
+BITMAP
+0FE0
+0FE0
+0000
+0380
+0380
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni01E1
+ENCODING 481
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 20 1 0
+BITMAP
+1FC0
+1FC0
+0000
+0700
+0700
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni01E2
+ENCODING 482
+SWIDTH 1000 0
+DWIDTH 24 0
+BBX 22 22 1 0
+BITMAP
+00FE00
+00FE00
+000000
+03FFF8
+03FFF8
+077000
+077000
+0E7000
+0E7000
+0E7000
+1C7000
+1C7FF0
+1C7FF0
+387000
+387000
+3FF000
+7FF000
+707000
+707000
+E07000
+E07FFC
+E07FFC
+ENDCHAR
+STARTCHAR uni01E3
+ENCODING 483
+SWIDTH 889 0
+DWIDTH 22 0
+BBX 20 17 1 0
+BITMAP
+03F800
+03F800
+000000
+1F8F00
+3FFFC0
+71F9E0
+70F0E0
+00E070
+07E070
+3FFFF0
+7CFFF0
+F0E000
+E0E000
+E1F070
+F3F8F0
+7F3FE0
+3E0F80
+ENDCHAR
+STARTCHAR uni01E4
+ENCODING 484
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 19 1 0
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00780
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR uni01E5
+ENCODING 485
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 1 -5
+BITMAP
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+FFF0
+FFF0
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR Gcaron
+ENCODING 486
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+0E3800
+077000
+03E000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR gcaron
+ENCODING 487
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01E8
+ENCODING 488
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 24 2 0
+BITMAP
+38E0
+1DC0
+0F80
+0700
+0000
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+ENDCHAR
+STARTCHAR uni01E9
+ENCODING 489
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 24 0 0
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+3800
+3800
+3800
+3800
+3800
+3870
+38F0
+39E0
+3BC0
+3F80
+3F00
+3F80
+3BC0
+39C0
+39E0
+38F0
+3870
+3878
+3838
+ENDCHAR
+STARTCHAR uni01EA
+ENCODING 490
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 -5
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+038000
+070000
+070000
+07E000
+03C000
+ENDCHAR
+STARTCHAR uni01EB
+ENCODING 491
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F80
+0E00
+1C00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni01EC
+ENCODING 492
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 27 1 -5
+BITMAP
+07F000
+07F000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+038000
+070000
+070000
+07E000
+03C000
+ENDCHAR
+STARTCHAR uni01ED
+ENCODING 493
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 -5
+BITMAP
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F80
+0E00
+1C00
+1C00
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni01F0
+ENCODING 496
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 -5
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+7C00
+7800
+ENDCHAR
+STARTCHAR uni01F4
+ENCODING 500
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+007000
+00E000
+01C000
+038000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR uni01F5
+ENCODING 501
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni01F8
+ENCODING 504
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR uni01F9
+ENCODING 505
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+7000
+3800
+1C00
+0E00
+0000
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR Aringacute
+ENCODING 506
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+03C0
+0660
+0420
+0660
+03C0
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR aringacute
+ENCODING 507
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+0700
+0D80
+0880
+0D80
+0700
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR AEacute
+ENCODING 508
+SWIDTH 1000 0
+DWIDTH 24 0
+BBX 22 24 1 0
+BITMAP
+000E00
+001C00
+003800
+007000
+000000
+03FFF8
+03FFF8
+077000
+077000
+0E7000
+0E7000
+0E7000
+1C7000
+1C7FF0
+1C7FF0
+387000
+387000
+3FF000
+7FF000
+707000
+707000
+E07000
+E07FFC
+E07FFC
+ENDCHAR
+STARTCHAR aeacute
+ENCODING 509
+SWIDTH 889 0
+DWIDTH 22 0
+BBX 20 19 1 0
+BITMAP
+001C00
+003800
+007000
+00E000
+000000
+1F8F00
+3FFFC0
+71F9E0
+70F0E0
+00E070
+07E070
+3FFFF0
+7CFFF0
+F0E000
+E0E000
+E1F070
+F3F8F0
+7F3FE0
+3E0F80
+ENDCHAR
+STARTCHAR Oslashacute
+ENCODING 510
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 24 0 0
+BITMAP
+001C00
+003800
+007000
+00E000
+000000
+03F860
+0FFEE0
+1F1FC0
+3C0380
+380780
+780FC0
+701DC0
+7039C0
+7071C0
+70E1C0
+71C1C0
+7381C0
+7701C0
+7E03C0
+3C0380
+3C0780
+7F1F00
+EFFE00
+C3F800
+ENDCHAR
+STARTCHAR oslashacute
+ENCODING 511
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 19 0 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+078C
+1FFC
+3CF8
+3870
+70F8
+71F8
+73B8
+7738
+7E38
+7C38
+3870
+7CF0
+FFE0
+C780
+ENDCHAR
+STARTCHAR uni0200
+ENCODING 512
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+1DC0
+0EE0
+0770
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni0201
+ENCODING 513
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+7700
+3B80
+1DC0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni0202
+ENCODING 514
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+07C0
+0FE0
+1C70
+1830
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni0203
+ENCODING 515
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0F80
+1FC0
+38E0
+3060
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni0204
+ENCODING 516
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 23 2 0
+BITMAP
+EE00
+7700
+3B80
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni0205
+ENCODING 517
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+7700
+3B80
+1DC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni0206
+ENCODING 518
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 0
+BITMAP
+1F00
+3F80
+71C0
+60C0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni0207
+ENCODING 519
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0F80
+1FC0
+38E0
+3060
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni0208
+ENCODING 520
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 23 -2 0
+BITMAP
+EE00
+7700
+3B80
+0000
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni0209
+ENCODING 521
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 18 -2 0
+BITMAP
+EE00
+7700
+3B80
+0000
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni020A
+ENCODING 522
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 0
+BITMAP
+3E00
+7F00
+E380
+C180
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni020B
+ENCODING 523
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 19 -1 0
+BITMAP
+3E00
+7F00
+E380
+C180
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni020C
+ENCODING 524
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 23 1 0
+BITMAP
+1DC000
+0EE000
+077000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni020D
+ENCODING 525
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+7700
+3B80
+1DC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni020E
+ENCODING 526
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 24 1 0
+BITMAP
+03E000
+07F000
+0E3800
+0C1800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni020F
+ENCODING 527
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 19 1 0
+BITMAP
+0F80
+1FC0
+38E0
+3060
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni0210
+ENCODING 528
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 23 2 0
+BITMAP
+7700
+3B80
+1DC0
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR uni0211
+ENCODING 529
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 9 18 0 0
+BITMAP
+EE00
+7700
+3B80
+0000
+3B80
+3F80
+3F80
+3C00
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+3800
+ENDCHAR
+STARTCHAR uni0212
+ENCODING 530
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+0F80
+1FC0
+38E0
+3060
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR uni0213
+ENCODING 531
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 9 19 1 0
+BITMAP
+3E00
+7F00
+E380
+C180
+0000
+7700
+7F00
+7F00
+7800
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+7000
+ENDCHAR
+STARTCHAR uni0214
+ENCODING 532
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 0
+BITMAP
+3B80
+1DC0
+0EE0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni0215
+ENCODING 533
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 18 2 0
+BITMAP
+EE00
+7700
+3B80
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni0216
+ENCODING 534
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+07C0
+0FE0
+1C70
+1830
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni0217
+ENCODING 535
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 0
+BITMAP
+1F00
+3F80
+71C0
+60C0
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR Scommaaccent
+ENCODING 536
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 26 2 -7
+BITMAP
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+0000
+0700
+0700
+0700
+0300
+0300
+0600
+ENDCHAR
+STARTCHAR scommaaccent
+ENCODING 537
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 21 1 -7
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0E00
+0E00
+0E00
+0600
+0600
+0C00
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 538
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 26 0 -7
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0000
+0380
+0380
+0380
+0180
+0180
+0300
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 539
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 25 1 -7
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+00
+38
+38
+38
+18
+18
+30
+ENDCHAR
+STARTCHAR uni021E
+ENCODING 542
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 0
+BITMAP
+1C70
+0EE0
+07C0
+0380
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR uni021F
+ENCODING 543
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 24 0 0
+BITMAP
+E380
+7700
+3E00
+1C00
+0000
+3800
+3800
+3800
+3800
+3800
+3BC0
+3FF0
+3C70
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+3838
+ENDCHAR
+STARTCHAR uni0226
+ENCODING 550
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+0380
+0380
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni0227
+ENCODING 551
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0700
+0700
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni0228
+ENCODING 552
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 -5
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni0229
+ENCODING 553
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni022A
+ENCODING 554
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 26 1 0
+BITMAP
+07F000
+07F000
+000000
+0E3800
+0E3800
+000000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni022B
+ENCODING 555
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 21 1 0
+BITMAP
+1FC0
+1FC0
+0000
+39C0
+39C0
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni022C
+ENCODING 556
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 26 1 0
+BITMAP
+07F000
+07F000
+000000
+079800
+0FF800
+0CF000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni022D
+ENCODING 557
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+3F80
+3F80
+0000
+3CC0
+7FC0
+6780
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni022E
+ENCODING 558
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 22 1 0
+BITMAP
+01C000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni022F
+ENCODING 559
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 17 1 0
+BITMAP
+0700
+0700
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni0230
+ENCODING 560
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 25 1 0
+BITMAP
+07F000
+07F000
+000000
+01C000
+01C000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni0231
+ENCODING 561
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 20 1 0
+BITMAP
+1FC0
+1FC0
+0000
+0700
+0700
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni0232
+ENCODING 562
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 22 1 0
+BITMAP
+0FE0
+0FE0
+0000
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni0233
+ENCODING 563
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 22 1 -5
+BITMAP
+1FC0
+1FC0
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni0250
+ENCODING 592
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+E7C0
+FFE0
+7CF0
+7870
+7070
+70F0
+73E0
+7FC0
+7E00
+7000
+70E0
+78E0
+3FC0
+1F80
+ENDCHAR
+STARTCHAR uni0254
+ENCODING 596
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 14 1 0
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+00E0
+00E0
+00E0
+00E0
+00E0
+00E0
+E1C0
+F3C0
+7F80
+3F00
+ENDCHAR
+STARTCHAR uni0258
+ENCODING 600
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+0070
+0070
+E0E0
+F1E0
+7FC0
+1F00
+ENDCHAR
+STARTCHAR uni0259
+ENCODING 601
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+1F00
+7FC0
+F1E0
+E0E0
+0070
+0070
+FFF0
+FFF0
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni025F
+ENCODING 607
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 19 1 -5
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+F8
+F0
+ENDCHAR
+STARTCHAR uni0265
+ENCODING 613
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+71E0
+7FE0
+1EE0
+00E0
+00E0
+00E0
+00E0
+00E0
+ENDCHAR
+STARTCHAR uni0275
+ENCODING 629
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni0279
+ENCODING 633
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 14 2 0
+BITMAP
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+0E
+1E
+FE
+FE
+EE
+ENDCHAR
+STARTCHAR uni0287
+ENCODING 647
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 18 1 0
+BITMAP
+F0
+F8
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni0288
+ENCODING 648
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 23 1 -5
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+ENDCHAR
+STARTCHAR uni0289
+ENCODING 649
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 14 2 0
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+FFE0
+FFE0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni028C
+ENCODING 652
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 14 1 0
+BITMAP
+0F00
+0F00
+0F00
+1F80
+1F80
+39C0
+39C0
+39C0
+70E0
+70E0
+70E0
+E070
+E070
+E070
+ENDCHAR
+STARTCHAR uni028D
+ENCODING 653
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 14 0 0
+BITMAP
+0E0E00
+0E0E00
+0E0E00
+1F1F00
+1F1F00
+1B1B00
+3BBB80
+33B980
+31B180
+71F1C0
+71F1C0
+60E0C0
+E0E0E0
+E0E0E0
+ENDCHAR
+STARTCHAR uni028E
+ENCODING 654
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 19 1 0
+BITMAP
+01E0
+03E0
+0380
+0700
+0700
+0E00
+0E00
+0F00
+1F00
+1F80
+1F80
+39C0
+39C0
+79E0
+70E0
+70F0
+E070
+E038
+E038
+ENDCHAR
+STARTCHAR uni029E
+ENCODING 670
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+F0E0
+70E0
+78E0
+3CE0
+1CE0
+1EE0
+0FE0
+07E0
+0FE0
+1EE0
+3CE0
+78E0
+70E0
+00E0
+00E0
+00E0
+00E0
+00E0
+ENDCHAR
+STARTCHAR uni02BB
+ENCODING 699
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+60
+C0
+C0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR afii57929
+ENCODING 700
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR afii64937
+ENCODING 701
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+E0
+E0
+E0
+C0
+C0
+60
+ENDCHAR
+STARTCHAR circumflex
+ENCODING 710
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 4 0 15
+BITMAP
+1C00
+3E00
+7700
+E380
+ENDCHAR
+STARTCHAR caron
+ENCODING 711
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 4 0 15
+BITMAP
+E380
+7700
+3E00
+1C00
+ENDCHAR
+STARTCHAR uni02C8
+ENCODING 712
+SWIDTH 238 0
+DWIDTH 6 0
+BBX 2 6 2 13
+BITMAP
+C0
+C0
+C0
+C0
+C0
+80
+ENDCHAR
+STARTCHAR macron
+ENCODING 713
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 2 1 17
+BITMAP
+FE
+FE
+ENDCHAR
+STARTCHAR uni02CA
+ENCODING 714
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 15
+BITMAP
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR uni02CB
+ENCODING 715
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 15
+BITMAP
+E0
+70
+38
+1C
+ENDCHAR
+STARTCHAR uni02CD
+ENCODING 717
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 2 1 -3
+BITMAP
+FE
+FE
+ENDCHAR
+STARTCHAR uni02CE
+ENCODING 718
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 -5
+BITMAP
+E0
+70
+38
+1C
+ENDCHAR
+STARTCHAR uni02CF
+ENCODING 719
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 -5
+BITMAP
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR breve
+ENCODING 728
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 4 0 15
+BITMAP
+C180
+E380
+7F00
+3E00
+ENDCHAR
+STARTCHAR dotaccent
+ENCODING 729
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 2 2 16
+BITMAP
+E0
+E0
+ENDCHAR
+STARTCHAR ring
+ENCODING 730
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 5 5 1 14
+BITMAP
+70
+F8
+D8
+F8
+70
+ENDCHAR
+STARTCHAR ogonek
+ENCODING 731
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 6 1 -5
+BITMAP
+3C
+70
+E0
+E0
+FC
+78
+ENDCHAR
+STARTCHAR tilde
+ENCODING 732
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 3 0 16
+BITMAP
+7980
+FF80
+CF00
+ENDCHAR
+STARTCHAR hungarumlaut
+ENCODING 733
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 3 0 16
+BITMAP
+3B80
+7700
+EE00
+ENDCHAR
+STARTCHAR uni02EE
+ENCODING 750
+SWIDTH 500 0
+DWIDTH 12 0
+BBX 8 6 2 13
+BITMAP
+E7
+E7
+E7
+63
+63
+C6
+ENDCHAR
+STARTCHAR uni037E
+ENCODING 894
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 17 2 -3
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+00
+00
+00
+00
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR tonos
+ENCODING 900
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 4 1 15
+BITMAP
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR dieresistonos
+ENCODING 901
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 7 1 16
+BITMAP
+0E
+1C
+38
+70
+00
+EE
+EE
+ENDCHAR
+STARTCHAR anoteleia
+ENCODING 903
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 3 2 6
+BITMAP
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR mu
+ENCODING 956
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+F3E0
+FEE0
+ECE0
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E00
+ENCODING 7680
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 25 1 -6
+BITMAP
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+0000
+01C0
+03E0
+0360
+03E0
+01C0
+ENDCHAR
+STARTCHAR uni1E01
+ENCODING 7681
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 20 1 -6
+BITMAP
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+0000
+0700
+0F80
+0D80
+0F80
+0700
+ENDCHAR
+STARTCHAR uni1E02
+ENCODING 7682
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 15 22 2 0
+BITMAP
+0700
+0700
+0000
+FFE0
+FFF8
+E078
+E01C
+E01C
+E01C
+E01C
+E038
+FFF0
+FFF8
+E01C
+E00E
+E00E
+E00E
+E00E
+E01E
+E07C
+FFF8
+FFE0
+ENDCHAR
+STARTCHAR uni1E03
+ENCODING 7683
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 0
+BITMAP
+3800
+3800
+0000
+E000
+E000
+E000
+E000
+E000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+ENDCHAR
+STARTCHAR uni1E04
+ENCODING 7684
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 15 22 2 -3
+BITMAP
+FFE0
+FFF8
+E078
+E01C
+E01C
+E01C
+E01C
+E038
+FFF0
+FFF8
+E01C
+E00E
+E00E
+E00E
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E05
+ENCODING 7685
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E06
+ENCODING 7686
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 15 22 2 -3
+BITMAP
+FFE0
+FFF8
+E078
+E01C
+E01C
+E01C
+E01C
+E038
+FFF0
+FFF8
+E01C
+E00E
+E00E
+E00E
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0000
+0FE0
+0FE0
+ENDCHAR
+STARTCHAR uni1E07
+ENCODING 7687
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+0000
+3F80
+3F80
+ENDCHAR
+STARTCHAR uni1E08
+ENCODING 7688
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 -5
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+07F0
+1FFC
+3E3E
+780F
+7007
+F000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+F007
+7007
+780F
+3E3E
+1FFC
+07F0
+03C0
+00E0
+00E0
+07E0
+03C0
+ENDCHAR
+STARTCHAR uni1E09
+ENCODING 7689
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 24 1 -5
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+1F80
+3FC0
+79E0
+70E0
+E000
+E000
+E000
+E000
+E000
+E000
+70E0
+79E0
+3FC0
+1F80
+1E00
+0700
+0700
+3F00
+1E00
+ENDCHAR
+STARTCHAR uni1E0A
+ENCODING 7690
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 22 2 0
+BITMAP
+0380
+0380
+0000
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+ENDCHAR
+STARTCHAR uni1E0B
+ENCODING 7691
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 0
+BITMAP
+00E0
+00E0
+0000
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+ENDCHAR
+STARTCHAR uni1E0C
+ENCODING 7692
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 22 2 -3
+BITMAP
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E0D
+ENCODING 7693
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 -3
+BITMAP
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E0E
+ENCODING 7694
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 22 2 -3
+BITMAP
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0000
+0FE0
+0FE0
+ENDCHAR
+STARTCHAR uni1E0F
+ENCODING 7695
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 -3
+BITMAP
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0000
+1FC0
+1FC0
+ENDCHAR
+STARTCHAR uni1E10
+ENCODING 7696
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 24 2 -5
+BITMAP
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0780
+01C0
+01C0
+0FC0
+0780
+ENDCHAR
+STARTCHAR uni1E11
+ENCODING 7697
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0780
+01C0
+01C0
+0FC0
+0780
+ENDCHAR
+STARTCHAR uni1E12
+ENCODING 7698
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 16 24 2 -5
+BITMAP
+FFE0
+FFF8
+E07C
+E01E
+E00E
+E00F
+E007
+E007
+E007
+E007
+E007
+E007
+E007
+E00F
+E00E
+E01E
+E07C
+FFF8
+FFE0
+0000
+0380
+07C0
+0EE0
+1C70
+ENDCHAR
+STARTCHAR uni1E13
+ENCODING 7699
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 1 -5
+BITMAP
+0070
+0070
+0070
+0070
+0070
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0000
+0700
+0F80
+1DC0
+38E0
+ENDCHAR
+STARTCHAR uni1E14
+ENCODING 7700
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 27 2 0
+BITMAP
+3800
+1C00
+0E00
+0700
+0000
+3F80
+3F80
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1E15
+ENCODING 7701
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E16
+ENCODING 7702
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 27 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+3F80
+3F80
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1E17
+ENCODING 7703
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1E18
+ENCODING 7704
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 24 2 -5
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0000
+0E00
+1F00
+3B80
+71C0
+ENDCHAR
+STARTCHAR uni1E19
+ENCODING 7705
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 19 1 -5
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0000
+0700
+0F80
+1DC0
+38E0
+ENDCHAR
+STARTCHAR uni1E1A
+ENCODING 7706
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 23 2 -4
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0000
+3CC0
+7FC0
+6780
+ENDCHAR
+STARTCHAR uni1E1B
+ENCODING 7707
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 -4
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0000
+1E60
+3FE0
+33C0
+ENDCHAR
+STARTCHAR uni1E1C
+ENCODING 7708
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 29 2 -5
+BITMAP
+60C0
+71C0
+3F80
+1F00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni1E1D
+ENCODING 7709
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 -5
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni1E1E
+ENCODING 7710
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 0
+BITMAP
+0E00
+0E00
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E1F
+ENCODING 7711
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 22 1 0
+BITMAP
+38
+38
+00
+1E
+3E
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni1E20
+ENCODING 7712
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 22 1 0
+BITMAP
+07F000
+07F000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00000
+E00000
+E00000
+E00000
+E07F80
+E07F80
+E00380
+E00380
+F00380
+700780
+780F80
+3E3F80
+1FFB80
+07F380
+ENDCHAR
+STARTCHAR uni1E21
+ENCODING 7713
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 -5
+BITMAP
+1FC0
+1FC0
+0000
+1F70
+3FF0
+79F0
+70F0
+E070
+E070
+E070
+E070
+E070
+E070
+70F0
+79F0
+3FF0
+1F70
+0070
+E070
+F0E0
+7FE0
+1F80
+ENDCHAR
+STARTCHAR uni1E22
+ENCODING 7714
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 0
+BITMAP
+0380
+0380
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR uni1E23
+ENCODING 7715
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 22 2 0
+BITMAP
+7000
+7000
+0000
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR uni1E24
+ENCODING 7716
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 -3
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E25
+ENCODING 7717
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E26
+ENCODING 7718
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 0
+BITMAP
+0EE0
+0EE0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+ENDCHAR
+STARTCHAR uni1E27
+ENCODING 7719
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 1 0
+BITMAP
+EE00
+EE00
+0000
+7000
+7000
+7000
+7000
+7000
+7780
+7FE0
+78E0
+7070
+7070
+7070
+7070
+7070
+7070
+7070
+7070
+7070
+7070
+7070
+ENDCHAR
+STARTCHAR uni1E28
+ENCODING 7720
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E38E
+03C0
+00E0
+00E0
+07E0
+03C0
+ENDCHAR
+STARTCHAR uni1E29
+ENCODING 7721
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 24 2 -5
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+EEE0
+0F00
+0380
+0380
+1F80
+0F00
+ENDCHAR
+STARTCHAR uni1E2A
+ENCODING 7722
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+FFFE
+FFFE
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+0000
+1830
+1C70
+0FE0
+07C0
+ENDCHAR
+STARTCHAR uni1E2B
+ENCODING 7723
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 24 2 -5
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+60C0
+71C0
+3F80
+1F00
+ENDCHAR
+STARTCHAR uni1E2C
+ENCODING 7724
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 23 -1 -4
+BITMAP
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+0000
+7980
+FF80
+CF00
+ENDCHAR
+STARTCHAR uni1E2D
+ENCODING 7725
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 23 -1 -4
+BITMAP
+1C00
+1C00
+1C00
+0000
+0000
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+0000
+7980
+FF80
+CF00
+ENDCHAR
+STARTCHAR uni1E2E
+ENCODING 7726
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 28 0 0
+BITMAP
+0E
+1C
+38
+70
+00
+EE
+EE
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni1E2F
+ENCODING 7727
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 23 0 0
+BITMAP
+0E
+1C
+38
+70
+00
+EE
+EE
+00
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+ENDCHAR
+STARTCHAR uni1E30
+ENCODING 7728
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 24 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+ENDCHAR
+STARTCHAR uni1E31
+ENCODING 7729
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 24 2 0
+BITMAP
+0E00
+1C00
+3800
+7000
+0000
+E000
+E000
+E000
+E000
+E000
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+ENDCHAR
+STARTCHAR uni1E32
+ENCODING 7730
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 22 2 -3
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E33
+ENCODING 7731
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E34
+ENCODING 7732
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 22 2 -3
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+0000
+1FC0
+1FC0
+ENDCHAR
+STARTCHAR uni1E35
+ENCODING 7733
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 11 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E1C0
+E3C0
+E780
+EF00
+FE00
+FC00
+FE00
+EF00
+E700
+E780
+E3C0
+E1C0
+E1E0
+E0E0
+0000
+3F80
+3F80
+ENDCHAR
+STARTCHAR uni1E36
+ENCODING 7734
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E37
+ENCODING 7735
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 22 2 -3
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+E0
+E0
+ENDCHAR
+STARTCHAR uni1E38
+ENCODING 7736
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 25 2 -3
+BITMAP
+FE00
+FE00
+0000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E39
+ENCODING 7737
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 25 0 -3
+BITMAP
+FE
+FE
+00
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+00
+38
+38
+ENDCHAR
+STARTCHAR uni1E3A
+ENCODING 7738
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+0000
+3F80
+3F80
+ENDCHAR
+STARTCHAR uni1E3B
+ENCODING 7739
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 7 22 0 -3
+BITMAP
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+00
+FE
+FE
+ENDCHAR
+STARTCHAR uni1E3C
+ENCODING 7740
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 2 -5
+BITMAP
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF0
+FFF0
+0000
+0E00
+1F00
+3B80
+71C0
+ENDCHAR
+STARTCHAR uni1E3D
+ENCODING 7741
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 9 24 -1 -5
+BITMAP
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+0000
+1C00
+3E00
+7700
+E380
+ENDCHAR
+STARTCHAR uni1E3E
+ENCODING 7742
+SWIDTH 833 0
+DWIDTH 23 0
+BBX 19 24 2 0
+BITMAP
+003800
+007000
+00E000
+01C000
+000000
+E000E0
+F001E0
+F001E0
+F803E0
+F803E0
+FC07E0
+EC06E0
+EE0EE0
+E60CE0
+E71CE0
+E71CE0
+E318E0
+E3B8E0
+E3B8E0
+E1F0E0
+E1F0E0
+E0E0E0
+E0E0E0
+E0E0E0
+ENDCHAR
+STARTCHAR uni1E3F
+ENCODING 7743
+SWIDTH 889 0
+DWIDTH 21 0
+BBX 17 19 2 0
+BITMAP
+007000
+00E000
+01C000
+038000
+000000
+EF3E00
+FFFF00
+F3E780
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+ENDCHAR
+STARTCHAR uni1E40
+ENCODING 7744
+SWIDTH 833 0
+DWIDTH 23 0
+BBX 19 22 2 0
+BITMAP
+00E000
+00E000
+000000
+E000E0
+F001E0
+F001E0
+F803E0
+F803E0
+FC07E0
+EC06E0
+EE0EE0
+E60CE0
+E71CE0
+E71CE0
+E318E0
+E3B8E0
+E3B8E0
+E1F0E0
+E1F0E0
+E0E0E0
+E0E0E0
+E0E0E0
+ENDCHAR
+STARTCHAR uni1E41
+ENCODING 7745
+SWIDTH 889 0
+DWIDTH 21 0
+BBX 17 17 2 0
+BITMAP
+01C000
+01C000
+000000
+EF3E00
+FFFF00
+F3E780
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+ENDCHAR
+STARTCHAR uni1E42
+ENCODING 7746
+SWIDTH 833 0
+DWIDTH 23 0
+BBX 19 22 2 -3
+BITMAP
+E000E0
+F001E0
+F001E0
+F803E0
+F803E0
+FC07E0
+EC06E0
+EE0EE0
+E60CE0
+E71CE0
+E71CE0
+E318E0
+E3B8E0
+E3B8E0
+E1F0E0
+E1F0E0
+E0E0E0
+E0E0E0
+E0E0E0
+000000
+00E000
+00E000
+ENDCHAR
+STARTCHAR uni1E43
+ENCODING 7747
+SWIDTH 889 0
+DWIDTH 21 0
+BBX 17 17 2 -3
+BITMAP
+EF3E00
+FFFF00
+F3E780
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+000000
+01C000
+01C000
+ENDCHAR
+STARTCHAR uni1E44
+ENCODING 7748
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 0
+BITMAP
+0380
+0380
+0000
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR uni1E45
+ENCODING 7749
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 0
+BITMAP
+0E00
+0E00
+0000
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+ENDCHAR
+STARTCHAR uni1E46
+ENCODING 7750
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 -3
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E47
+ENCODING 7751
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 -3
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E48
+ENCODING 7752
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 -3
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+0000
+0FE0
+0FE0
+ENDCHAR
+STARTCHAR uni1E49
+ENCODING 7753
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 -3
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+3F80
+3F80
+ENDCHAR
+STARTCHAR uni1E4A
+ENCODING 7754
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+EE0E
+E70E
+E38E
+E38E
+E1CE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+0000
+0380
+07C0
+0EE0
+1C70
+ENDCHAR
+STARTCHAR uni1E4B
+ENCODING 7755
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+EF80
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+0E00
+1F00
+3B80
+71C0
+ENDCHAR
+STARTCHAR uni1E4C
+ENCODING 7756
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 28 1 0
+BITMAP
+007000
+00E000
+01C000
+038000
+000000
+079800
+0FF800
+0CF000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E4D
+ENCODING 7757
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+3CC0
+7FC0
+6780
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1E4E
+ENCODING 7758
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 26 1 0
+BITMAP
+077000
+077000
+000000
+079800
+0FF800
+0CF000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E4F
+ENCODING 7759
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+3B80
+3B80
+0000
+3CC0
+7FC0
+6780
+0000
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1E50
+ENCODING 7760
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 27 1 0
+BITMAP
+070000
+038000
+01C000
+00E000
+000000
+07F000
+07F000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E51
+ENCODING 7761
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1E52
+ENCODING 7762
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 27 1 0
+BITMAP
+007000
+00E000
+01C000
+038000
+000000
+07F000
+07F000
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E53
+ENCODING 7763
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+1FC0
+1FC0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1E54
+ENCODING 7764
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 24 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E55
+ENCODING 7765
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 24 2 -5
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E56
+ENCODING 7766
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 22 2 0
+BITMAP
+0700
+0700
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E57
+ENCODING 7767
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 22 2 -5
+BITMAP
+0E00
+0E00
+0000
+EF80
+FFC0
+F9E0
+F0E0
+E070
+E070
+E070
+E070
+E070
+E070
+F0E0
+F9E0
+FFC0
+EF80
+E000
+E000
+E000
+E000
+E000
+ENDCHAR
+STARTCHAR uni1E58
+ENCODING 7768
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 22 2 0
+BITMAP
+0700
+0700
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+ENDCHAR
+STARTCHAR uni1E59
+ENCODING 7769
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 17 2 0
+BITMAP
+38
+38
+00
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni1E5A
+ENCODING 7770
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 22 2 -3
+BITMAP
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E5B
+ENCODING 7771
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 17 2 -3
+BITMAP
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+70
+70
+ENDCHAR
+STARTCHAR uni1E5C
+ENCODING 7772
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 25 2 -3
+BITMAP
+1FC0
+1FC0
+0000
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E5D
+ENCODING 7773
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 7 20 2 -3
+BITMAP
+FE
+FE
+00
+EE
+FE
+FE
+F0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+70
+70
+ENDCHAR
+STARTCHAR uni1E5E
+ENCODING 7774
+SWIDTH 722 0
+DWIDTH 17 0
+BBX 14 22 2 -3
+BITMAP
+FFE0
+FFF8
+E038
+E01C
+E01C
+E01C
+E01C
+E038
+FFF8
+FFF0
+E078
+E038
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+E01C
+0000
+0FE0
+0FE0
+ENDCHAR
+STARTCHAR uni1E5F
+ENCODING 7775
+SWIDTH 389 0
+DWIDTH 10 0
+BBX 8 17 1 -3
+BITMAP
+77
+7F
+7F
+78
+70
+70
+70
+70
+70
+70
+70
+70
+70
+70
+00
+FE
+FE
+ENDCHAR
+STARTCHAR uni1E60
+ENCODING 7776
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 22 2 0
+BITMAP
+0700
+0700
+0000
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+ENDCHAR
+STARTCHAR uni1E61
+ENCODING 7777
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0E00
+0E00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni1E62
+ENCODING 7778
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 22 2 -3
+BITMAP
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E63
+ENCODING 7779
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 17 1 -3
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E64
+ENCODING 7780
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 27 2 0
+BITMAP
+0380
+0380
+0000
+00E0
+01C0
+0380
+0700
+0000
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+ENDCHAR
+STARTCHAR uni1E65
+ENCODING 7781
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 22 1 0
+BITMAP
+0E00
+0E00
+0000
+0380
+0700
+0E00
+1C00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni1E66
+ENCODING 7782
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 22 1 0
+BITMAP
+0380
+0380
+0000
+1C70
+0EE0
+07C0
+0380
+0000
+0FC0
+3FF0
+7878
+7038
+7800
+7FC0
+3FF0
+0FFC
+003C
+E01C
+E01C
+787C
+3FF8
+1FE0
+ENDCHAR
+STARTCHAR uni1E67
+ENCODING 7783
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 22 1 0
+BITMAP
+0E00
+0E00
+0000
+71C0
+3B80
+1F00
+0E00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+ENDCHAR
+STARTCHAR uni1E68
+ENCODING 7784
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 14 25 2 -3
+BITMAP
+0700
+0700
+0000
+0FC0
+3FF0
+78F8
+F038
+E038
+E000
+F000
+7C00
+3FC0
+07F0
+00F8
+003C
+001C
+E01C
+E01C
+E03C
+F8F8
+7FF0
+1FC0
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E69
+ENCODING 7785
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 20 1 -3
+BITMAP
+1C00
+1C00
+0000
+3F00
+7F80
+F3C0
+E1C0
+E000
+FC00
+7F80
+0FC0
+01E0
+E0E0
+E0E0
+F1E0
+7FC0
+3F80
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1E6A
+ENCODING 7786
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 22 0 0
+BITMAP
+0380
+0380
+0000
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E6B
+ENCODING 7787
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 21 1 0
+BITMAP
+38
+38
+00
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+ENDCHAR
+STARTCHAR uni1E6C
+ENCODING 7788
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 22 0 -3
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E6D
+ENCODING 7789
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 21 1 -3
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+00
+38
+38
+ENDCHAR
+STARTCHAR uni1E6E
+ENCODING 7790
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 22 0 -3
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0000
+0FE0
+0FE0
+ENDCHAR
+STARTCHAR uni1E6F
+ENCODING 7791
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 21 1 -3
+BITMAP
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+00
+FE
+FE
+ENDCHAR
+STARTCHAR uni1E70
+ENCODING 7792
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 15 24 0 -5
+BITMAP
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0000
+0380
+07C0
+0EE0
+1C70
+ENDCHAR
+STARTCHAR uni1E71
+ENCODING 7793
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 9 23 0 -5
+BITMAP
+1C00
+1C00
+1C00
+1C00
+7F00
+7F00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1C00
+1F00
+0F00
+0000
+1C00
+3E00
+7700
+E380
+ENDCHAR
+STARTCHAR uni1E72
+ENCODING 7794
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 -3
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+0000
+0EE0
+0EE0
+ENDCHAR
+STARTCHAR uni1E73
+ENCODING 7795
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 -3
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+0000
+3B80
+3B80
+ENDCHAR
+STARTCHAR uni1E74
+ENCODING 7796
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 23 2 -4
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+0000
+0F30
+1FF0
+19E0
+ENDCHAR
+STARTCHAR uni1E75
+ENCODING 7797
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 18 2 -4
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+0000
+3CC0
+7FC0
+6780
+ENDCHAR
+STARTCHAR uni1E76
+ENCODING 7798
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 24 2 -5
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+0000
+0380
+07C0
+0EE0
+1C70
+ENDCHAR
+STARTCHAR uni1E77
+ENCODING 7799
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 19 2 -5
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+0000
+0E00
+1F00
+3B80
+71C0
+ENDCHAR
+STARTCHAR uni1E78
+ENCODING 7800
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 28 2 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+0F30
+1FF0
+19E0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni1E79
+ENCODING 7801
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 23 2 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+3CC0
+7FC0
+6780
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni1E7A
+ENCODING 7802
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 25 2 0
+BITMAP
+0EE0
+0EE0
+0000
+0FE0
+0FE0
+0000
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR uni1E7B
+ENCODING 7803
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 20 2 0
+BITMAP
+3B80
+3B80
+0000
+3F80
+3F80
+0000
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni1E7C
+ENCODING 7804
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+0798
+0FF8
+0CF0
+0000
+E007
+E007
+F00F
+700E
+781E
+381C
+381C
+3C3C
+1C38
+1C38
+1E78
+0E70
+0E70
+0E70
+07E0
+07E0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E7D
+ENCODING 7805
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+E070
+E070
+E070
+70E0
+70E0
+70E0
+39C0
+39C0
+39C0
+1F80
+1F80
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR uni1E7E
+ENCODING 7806
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 22 1 -3
+BITMAP
+E007
+E007
+F00F
+700E
+781E
+381C
+381C
+3C3C
+1C38
+1C38
+1E78
+0E70
+0E70
+0E70
+07E0
+07E0
+03C0
+03C0
+03C0
+0000
+01C0
+01C0
+ENDCHAR
+STARTCHAR uni1E7F
+ENCODING 7807
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+E070
+E070
+E070
+70E0
+70E0
+70E0
+39C0
+39C0
+39C0
+1F80
+1F80
+0F00
+0F00
+0F00
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR Wgrave
+ENCODING 7808
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 24 1 0
+BITMAP
+01C000
+00E000
+007000
+003800
+000000
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR wgrave
+ENCODING 7809
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+038000
+01C000
+00E000
+007000
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR Wacute
+ENCODING 7810
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 24 1 0
+BITMAP
+001C00
+003800
+007000
+00E000
+000000
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR wacute
+ENCODING 7811
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 19 0 0
+BITMAP
+003800
+007000
+00E000
+01C000
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR Wdieresis
+ENCODING 7812
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 22 1 0
+BITMAP
+01DC00
+01DC00
+000000
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR wdieresis
+ENCODING 7813
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 17 0 0
+BITMAP
+03B800
+03B800
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR uni1E86
+ENCODING 7814
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 22 1 0
+BITMAP
+007000
+007000
+000000
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR uni1E87
+ENCODING 7815
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 17 0 0
+BITMAP
+00E000
+00E000
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR uni1E88
+ENCODING 7816
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 22 1 -3
+BITMAP
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+71DC70
+31DC60
+39DCE0
+398CE0
+3B8EE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+000000
+007000
+007000
+ENDCHAR
+STARTCHAR uni1E89
+ENCODING 7817
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 17 0 -3
+BITMAP
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+000000
+00E000
+00E000
+ENDCHAR
+STARTCHAR uni1E8A
+ENCODING 7818
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+01C0
+01C0
+0000
+E007
+F00F
+781E
+381C
+1C38
+0E70
+0FF0
+07E0
+03C0
+03C0
+07E0
+0FF0
+0E70
+1C38
+3C3C
+381C
+700E
+F00F
+E007
+ENDCHAR
+STARTCHAR uni1E8B
+ENCODING 7819
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+0E00
+0E00
+0000
+E0E0
+F1E0
+71C0
+3B80
+3F80
+1F00
+0E00
+1F00
+1F00
+3B80
+7BC0
+71C0
+F1E0
+E0E0
+ENDCHAR
+STARTCHAR uni1E8C
+ENCODING 7820
+SWIDTH 667 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+0770
+0770
+0000
+E007
+F00F
+781E
+381C
+1C38
+0E70
+0FF0
+07E0
+03C0
+03C0
+07E0
+0FF0
+0E70
+1C38
+3C3C
+381C
+700E
+F00F
+E007
+ENDCHAR
+STARTCHAR uni1E8D
+ENCODING 7821
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 11 17 1 0
+BITMAP
+3B80
+3B80
+0000
+E0E0
+F1E0
+71C0
+3B80
+3F80
+1F00
+0E00
+1F00
+1F00
+3B80
+7BC0
+71C0
+F1E0
+E0E0
+ENDCHAR
+STARTCHAR uni1E8E
+ENCODING 7822
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 22 1 0
+BITMAP
+0380
+0380
+0000
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni1E8F
+ENCODING 7823
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 22 1 -5
+BITMAP
+0700
+0700
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1E90
+ENCODING 7824
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 24 1 0
+BITMAP
+0380
+07C0
+0EE0
+1C70
+0000
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR uni1E91
+ENCODING 7825
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 19 1 0
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+ENDCHAR
+STARTCHAR uni1E92
+ENCODING 7826
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 22 1 -3
+BITMAP
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1E93
+ENCODING 7827
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 17 1 -3
+BITMAP
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+0000
+1C00
+1C00
+ENDCHAR
+STARTCHAR uni1E94
+ENCODING 7828
+SWIDTH 611 0
+DWIDTH 16 0
+BBX 14 22 1 -3
+BITMAP
+FFFC
+FFFC
+003C
+0078
+00F0
+01E0
+01E0
+03C0
+0780
+0780
+0F00
+1E00
+1E00
+3C00
+3800
+7800
+F000
+FFFC
+FFFC
+0000
+1FC0
+1FC0
+ENDCHAR
+STARTCHAR uni1E95
+ENCODING 7829
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 11 17 1 -3
+BITMAP
+FFE0
+FFE0
+01C0
+0380
+0780
+0F00
+0E00
+1E00
+3C00
+3800
+7000
+F000
+FFE0
+FFE0
+0000
+7F00
+7F00
+ENDCHAR
+STARTCHAR uni1E96
+ENCODING 7830
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 22 2 -3
+BITMAP
+E000
+E000
+E000
+E000
+E000
+EF00
+FFC0
+F1C0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+0000
+3F80
+3F80
+ENDCHAR
+STARTCHAR uni1E97
+ENCODING 7831
+SWIDTH 333 0
+DWIDTH 9 0
+BBX 7 21 1 0
+BITMAP
+EE
+EE
+00
+38
+38
+38
+38
+FE
+FE
+38
+38
+38
+38
+38
+38
+38
+38
+38
+38
+3E
+1E
+ENDCHAR
+STARTCHAR uni1E98
+ENCODING 7832
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 19 20 0 0
+BITMAP
+00E000
+01F000
+01B000
+01F000
+00E000
+000000
+E0E0E0
+E0E0E0
+60E0C0
+71F1C0
+71F1C0
+31B180
+33B980
+3BBB80
+1B1B00
+1F1F00
+1F1F00
+0E0E00
+0E0E00
+0E0E00
+ENDCHAR
+STARTCHAR uni1E99
+ENCODING 7833
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 25 1 -5
+BITMAP
+0700
+0F80
+0D80
+0F80
+0700
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1EA0
+ENCODING 7840
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 22 1 -3
+BITMAP
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+0000
+01C0
+01C0
+ENDCHAR
+STARTCHAR uni1EA1
+ENCODING 7841
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EA4
+ENCODING 7844
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 0
+BITMAP
+0070
+00E0
+01C0
+0380
+0000
+01C0
+03E0
+0770
+0E38
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EA5
+ENCODING 7845
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EA6
+ENCODING 7846
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 0
+BITMAP
+0700
+0380
+01C0
+00E0
+0000
+01C0
+03E0
+0770
+0E38
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EA7
+ENCODING 7847
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EAA
+ENCODING 7850
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 28 1 0
+BITMAP
+0798
+0FF8
+0CF0
+0000
+01C0
+03E0
+0770
+0E38
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EAB
+ENCODING 7851
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 23 1 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EAC
+ENCODING 7852
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 27 1 -3
+BITMAP
+0380
+07C0
+0EE0
+1C70
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+0000
+01C0
+01C0
+ENDCHAR
+STARTCHAR uni1EAD
+ENCODING 7853
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 22 1 -3
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EAE
+ENCODING 7854
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+1830
+1C70
+0FE0
+07C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EAF
+ENCODING 7855
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+3060
+38E0
+1FC0
+0F80
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EB0
+ENCODING 7856
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 29 1 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+1830
+1C70
+0FE0
+07C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EB1
+ENCODING 7857
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+3060
+38E0
+1FC0
+0F80
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EB4
+ENCODING 7860
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 28 1 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+1830
+1C70
+0FE0
+07C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni1EB5
+ENCODING 7861
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 23 1 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+3060
+38E0
+1FC0
+0F80
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+ENDCHAR
+STARTCHAR uni1EB6
+ENCODING 7862
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 27 1 -3
+BITMAP
+1830
+1C70
+0FE0
+07C0
+0000
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+0000
+01C0
+01C0
+ENDCHAR
+STARTCHAR uni1EB7
+ENCODING 7863
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 22 1 -3
+BITMAP
+3060
+38E0
+1FC0
+0F80
+0000
+1F80
+3FC0
+71E0
+70E0
+00E0
+07E0
+3FE0
+7CE0
+F0E0
+E0E0
+E1E0
+F3E0
+7FF0
+3E70
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EB8
+ENCODING 7864
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 22 2 -3
+BITMAP
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1EB9
+ENCODING 7865
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EBC
+ENCODING 7868
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 23 2 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1EBD
+ENCODING 7869
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 18 1 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EBE
+ENCODING 7870
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 29 2 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1EBF
+ENCODING 7871
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+01C0
+0380
+0700
+0E00
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EC0
+ENCODING 7872
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 29 2 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1EC1
+ENCODING 7873
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EC4
+ENCODING 7876
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 28 2 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni1EC5
+ENCODING 7877
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 23 1 0
+BITMAP
+1E60
+3FE0
+33C0
+0000
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+ENDCHAR
+STARTCHAR uni1EC6
+ENCODING 7878
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 27 2 -3
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+FFF0
+FFF0
+E000
+E000
+E000
+E000
+E000
+E000
+FFE0
+FFE0
+E000
+E000
+E000
+E000
+E000
+E000
+E000
+FFF8
+FFF8
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1EC7
+ENCODING 7879
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 12 22 1 -3
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+FFF0
+FFF0
+E000
+E000
+7070
+78F0
+3FE0
+0F80
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1ECA
+ENCODING 7882
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 22 2 -3
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+E0
+E0
+ENDCHAR
+STARTCHAR uni1ECB
+ENCODING 7883
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 22 2 -3
+BITMAP
+E0
+E0
+E0
+00
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+E0
+E0
+ENDCHAR
+STARTCHAR uni1ECC
+ENCODING 7884
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 22 1 -3
+BITMAP
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+000000
+01C000
+01C000
+ENDCHAR
+STARTCHAR uni1ECD
+ENCODING 7885
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 17 1 -3
+BITMAP
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1ED0
+ENCODING 7888
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 29 1 0
+BITMAP
+007000
+00E000
+01C000
+038000
+000000
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED1
+ENCODING 7889
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+0380
+0700
+0E00
+1C00
+0000
+0E00
+1F00
+3B80
+71C0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1ED2
+ENCODING 7890
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 29 1 0
+BITMAP
+070000
+038000
+01C000
+00E000
+000000
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED3
+ENCODING 7891
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 24 1 0
+BITMAP
+3800
+1C00
+0E00
+0700
+0000
+0E00
+1F00
+3B80
+71C0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1ED6
+ENCODING 7894
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 28 1 0
+BITMAP
+079800
+0FF800
+0CF000
+000000
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED7
+ENCODING 7895
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 23 1 0
+BITMAP
+3CC0
+7FC0
+6780
+0000
+0E00
+1F00
+3B80
+71C0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1ED8
+ENCODING 7896
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 17 27 1 -3
+BITMAP
+01C000
+03E000
+077000
+0E3800
+000000
+07F000
+1FFC00
+3E3E00
+780F00
+700700
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+000000
+01C000
+01C000
+ENDCHAR
+STARTCHAR uni1ED9
+ENCODING 7897
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 12 22 1 -3
+BITMAP
+0700
+0F80
+1DC0
+38E0
+0000
+0F00
+3FC0
+79E0
+70E0
+E070
+E070
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EDA
+ENCODING 7898
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 18 24 1 0
+BITMAP
+001C00
+003800
+007000
+00E000
+000000
+07F1C0
+1FFDC0
+3E3FC0
+780FC0
+7007C0
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EDB
+ENCODING 7899
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 19 1 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+0F1C
+3FDC
+79FC
+70EC
+E07C
+E078
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1EDC
+ENCODING 7900
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 18 24 1 0
+BITMAP
+038000
+01C000
+00E000
+007000
+000000
+07F1C0
+1FFDC0
+3E3FC0
+780FC0
+7007C0
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EDD
+ENCODING 7901
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 19 1 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+0F1C
+3FDC
+79FC
+70EC
+E07C
+E078
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1EE0
+ENCODING 7904
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 18 23 1 0
+BITMAP
+01E600
+03FE00
+033C00
+000000
+07F1C0
+1FFDC0
+3E3FC0
+780FC0
+7007C0
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EE1
+ENCODING 7905
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 18 1 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+0F1C
+3FDC
+79FC
+70EC
+E07C
+E078
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+ENDCHAR
+STARTCHAR uni1EE2
+ENCODING 7906
+SWIDTH 778 0
+DWIDTH 19 0
+BBX 18 22 1 -3
+BITMAP
+07F1C0
+1FFDC0
+3E3FC0
+780FC0
+7007C0
+F00780
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+E00380
+F00780
+700700
+780F00
+3E3E00
+1FFC00
+07F000
+000000
+01C000
+01C000
+ENDCHAR
+STARTCHAR uni1EE3
+ENCODING 7907
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 14 17 1 -3
+BITMAP
+0F1C
+3FDC
+79FC
+70EC
+E07C
+E078
+E070
+E070
+E070
+E070
+70E0
+79E0
+3FC0
+0F00
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR uni1EE4
+ENCODING 7908
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 22 2 -3
+BITMAP
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+E00E
+F01E
+701C
+7C7C
+3FF8
+0FE0
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1EE5
+ENCODING 7909
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 11 17 2 -3
+BITMAP
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1EE8
+ENCODING 7912
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 24 2 0
+BITMAP
+003800
+007000
+00E000
+01C000
+000000
+E00F80
+E00F80
+E00F80
+E00F80
+E00F80
+E00F00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+F01E00
+701C00
+7C7C00
+3FF800
+0FE000
+ENDCHAR
+STARTCHAR uni1EE9
+ENCODING 7913
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 19 2 0
+BITMAP
+00E0
+01C0
+0380
+0700
+0000
+E0F8
+E0F8
+E0F8
+E0F8
+E0F8
+E0F0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni1EEA
+ENCODING 7914
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 24 2 0
+BITMAP
+038000
+01C000
+00E000
+007000
+000000
+E00F80
+E00F80
+E00F80
+E00F80
+E00F80
+E00F00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+F01E00
+701C00
+7C7C00
+3FF800
+0FE000
+ENDCHAR
+STARTCHAR uni1EEB
+ENCODING 7915
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 19 2 0
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+E0F8
+E0F8
+E0F8
+E0F8
+E0F8
+E0F0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni1EEE
+ENCODING 7918
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 23 2 0
+BITMAP
+03CC00
+07FC00
+067800
+000000
+E00F80
+E00F80
+E00F80
+E00F80
+E00F80
+E00F00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+F01E00
+701C00
+7C7C00
+3FF800
+0FE000
+ENDCHAR
+STARTCHAR uni1EEF
+ENCODING 7919
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 18 2 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+E0F8
+E0F8
+E0F8
+E0F8
+E0F8
+E0F0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+ENDCHAR
+STARTCHAR uni1EF0
+ENCODING 7920
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 17 22 2 -3
+BITMAP
+E00F80
+E00F80
+E00F80
+E00F80
+E00F80
+E00F00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+E00E00
+F01E00
+701C00
+7C7C00
+3FF800
+0FE000
+000000
+038000
+038000
+ENDCHAR
+STARTCHAR uni1EF1
+ENCODING 7921
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 13 17 2 -3
+BITMAP
+E0F8
+E0F8
+E0F8
+E0F8
+E0F8
+E0F0
+E0E0
+E0E0
+E0E0
+E0E0
+E1E0
+73E0
+7EE0
+1CE0
+0000
+0700
+0700
+ENDCHAR
+STARTCHAR Ygrave
+ENCODING 7922
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 24 1 0
+BITMAP
+0E00
+0700
+0380
+01C0
+0000
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR ygrave
+ENCODING 7923
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 24 1 -5
+BITMAP
+1C00
+0E00
+0700
+0380
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni1EF4
+ENCODING 7924
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 22 1 -3
+BITMAP
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0000
+0380
+0380
+ENDCHAR
+STARTCHAR uni1EF5
+ENCODING 7925
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 22 1 -8
+BITMAP
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+0000
+0E00
+0E00
+ENDCHAR
+STARTCHAR uni1EF8
+ENCODING 7928
+SWIDTH 667 0
+DWIDTH 17 0
+BBX 15 23 1 0
+BITMAP
+0F30
+1FF0
+19E0
+0000
+E00E
+F00E
+701C
+781C
+3838
+3C38
+1C70
+1C70
+0EE0
+0EE0
+07C0
+07C0
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni1EF9
+ENCODING 7929
+SWIDTH 556 0
+DWIDTH 15 0
+BBX 13 23 1 -5
+BITMAP
+1E60
+3FE0
+33C0
+0000
+E038
+E038
+7038
+7870
+3870
+3CF0
+1CE0
+1CE0
+0FC0
+0FC0
+07C0
+0780
+0380
+0380
+0700
+0700
+0E00
+3E00
+3C00
+ENDCHAR
+STARTCHAR uni2000
+ENCODING 8192
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2001
+ENCODING 8193
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2002
+ENCODING 8194
+SWIDTH 500 0
+DWIDTH 13 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2003
+ENCODING 8195
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2004
+ENCODING 8196
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2005
+ENCODING 8197
+SWIDTH 250 0
+DWIDTH 6 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2006
+ENCODING 8198
+SWIDTH 167 0
+DWIDTH 4 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2007
+ENCODING 8199
+SWIDTH 556 0
+DWIDTH 13 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2008
+ENCODING 8200
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2009
+ENCODING 8201
+SWIDTH 200 0
+DWIDTH 5 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200A
+ENCODING 8202
+SWIDTH 100 0
+DWIDTH 3 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200B
+ENCODING 8203
+SWIDTH 0 0
+DWIDTH 0 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2010
+ENCODING 8208
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 7 3 0 6
+BITMAP
+FE
+FE
+FE
+ENDCHAR
+STARTCHAR uni2011
+ENCODING 8209
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 7 3 0 6
+BITMAP
+FE
+FE
+FE
+ENDCHAR
+STARTCHAR figuredash
+ENCODING 8210
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 14 2 0 6
+BITMAP
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR endash
+ENCODING 8211
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 14 2 0 6
+BITMAP
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR emdash
+ENCODING 8212
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 25 2 0 6
+BITMAP
+FFFFFF80
+FFFFFF80
+ENDCHAR
+STARTCHAR afii00208
+ENCODING 8213
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 25 2 0 6
+BITMAP
+FFFFFF80
+FFFFFF80
+ENDCHAR
+STARTCHAR quoteleft
+ENCODING 8216
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+60
+C0
+C0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR quoteright
+ENCODING 8217
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+E0
+E0
+E0
+60
+60
+C0
+ENDCHAR
+STARTCHAR quotesinglbase
+ENCODING 8218
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 4 6 1 -3
+BITMAP
+70
+70
+70
+30
+30
+E0
+ENDCHAR
+STARTCHAR quotereversed
+ENCODING 8219
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 6 2 13
+BITMAP
+E0
+E0
+E0
+C0
+C0
+60
+ENDCHAR
+STARTCHAR quotedblleft
+ENCODING 8220
+SWIDTH 500 0
+DWIDTH 12 0
+BBX 8 6 2 13
+BITMAP
+63
+C6
+C6
+E7
+E7
+E7
+ENDCHAR
+STARTCHAR quotedblright
+ENCODING 8221
+SWIDTH 500 0
+DWIDTH 12 0
+BBX 8 6 2 13
+BITMAP
+E7
+E7
+E7
+63
+63
+C6
+ENDCHAR
+STARTCHAR quotedblbase
+ENCODING 8222
+SWIDTH 500 0
+DWIDTH 12 0
+BBX 9 6 1 -3
+BITMAP
+7380
+7380
+7380
+3180
+3180
+E300
+ENDCHAR
+STARTCHAR uni201F
+ENCODING 8223
+SWIDTH 500 0
+DWIDTH 12 0
+BBX 8 6 2 13
+BITMAP
+E7
+E7
+E7
+C6
+C6
+63
+ENDCHAR
+STARTCHAR dagger
+ENCODING 8224
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 24 0 -5
+BITMAP
+0700
+0700
+0700
+0700
+0700
+FFF8
+FFF8
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR daggerdbl
+ENCODING 8225
+SWIDTH 556 0
+DWIDTH 14 0
+BBX 13 24 0 -5
+BITMAP
+0700
+0700
+0700
+0700
+0700
+FFF8
+FFF8
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+0700
+FFF8
+FFF8
+0700
+0700
+0700
+0700
+0700
+ENDCHAR
+STARTCHAR bullet
+ENCODING 8226
+SWIDTH 350 0
+DWIDTH 9 0
+BBX 5 5 2 5
+BITMAP
+70
+F8
+F8
+F8
+70
+ENDCHAR
+STARTCHAR ellipsis
+ENCODING 8230
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 19 3 3 0
+BITMAP
+E0E0E0
+E0E0E0
+E0E0E0
+ENDCHAR
+STARTCHAR perthousand
+ENCODING 8240
+SWIDTH 1000 0
+DWIDTH 25 0
+BBX 24 18 0 0
+BITMAP
+001C00
+381C00
+7C3800
+EE3800
+C67000
+C67000
+EEE000
+7CE000
+39C000
+01C000
+039C1C
+03BE3E
+077777
+076363
+0E6363
+0E7777
+1C3E3E
+1C1C1C
+ENDCHAR
+STARTCHAR guilsinglleft
+ENCODING 8249
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 8 1 3
+BITMAP
+1C
+38
+70
+E0
+E0
+70
+38
+1C
+ENDCHAR
+STARTCHAR guilsinglright
+ENCODING 8250
+SWIDTH 333 0
+DWIDTH 8 0
+BBX 6 8 1 3
+BITMAP
+E0
+70
+38
+1C
+1C
+38
+70
+E0
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8260
+SWIDTH 167 0
+DWIDTH 8 0
+BBX 10 18 -1 0
+BITMAP
+00C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1800
+3000
+3000
+6000
+6000
+C000
+C000
+ENDCHAR
+STARTCHAR oneinferior
+ENCODING 8321
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 4 10 1 -5
+BITMAP
+30
+30
+F0
+F0
+30
+30
+30
+30
+30
+30
+ENDCHAR
+STARTCHAR twoinferior
+ENCODING 8322
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 10 0 -5
+BITMAP
+78
+FC
+CC
+0C
+1C
+78
+E0
+C0
+FC
+FC
+ENDCHAR
+STARTCHAR threeinferior
+ENCODING 8323
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 6 10 0 -5
+BITMAP
+78
+FC
+CC
+0C
+38
+38
+0C
+CC
+FC
+78
+ENDCHAR
+STARTCHAR uni20A5
+ENCODING 8357
+SWIDTH 889 0
+DWIDTH 21 0
+BBX 17 19 2 -2
+BITMAP
+003000
+003000
+003000
+EF7E00
+FFFF00
+F3E780
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E1C380
+E3C380
+E3C380
+E3C380
+E7C380
+060000
+060000
+ENDCHAR
+STARTCHAR uni20A6
+ENCODING 8358
+SWIDTH 722 0
+DWIDTH 19 0
+BBX 15 19 2 0
+BITMAP
+E00E
+F00E
+F00E
+F80E
+F80E
+FC0E
+EE0E
+FFFE
+FFFE
+E38E
+FFFE
+FFFE
+E0CE
+E0EE
+E07E
+E03E
+E03E
+E01E
+E00E
+ENDCHAR
+STARTCHAR uni20A9
+ENCODING 8361
+SWIDTH 944 0
+DWIDTH 23 0
+BBX 21 19 1 0
+BITMAP
+E07038
+E07038
+E07038
+E07038
+70F870
+70F870
+70D870
+73FF70
+33FF60
+39DCE0
+3BFFE0
+3BFFE0
+1B8EC0
+1B8EC0
+1F07C0
+1F07C0
+0E0380
+0E0380
+0E0380
+ENDCHAR
+STARTCHAR Euro
+ENCODING 8364
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 18 19 -1 0
+BITMAP
+01FC00
+07FF00
+0F8F80
+1E03C0
+1C01C0
+3C0000
+380000
+FFC000
+FFC000
+380000
+FFC000
+FFC000
+380000
+3C01C0
+1C01C0
+1E03C0
+0F8F80
+07FF00
+01FC00
+ENDCHAR
+STARTCHAR uni20AD
+ENCODING 8365
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 19 2 0
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FFFC
+FFFC
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+ENDCHAR
+STARTCHAR uni2103
+ENCODING 8451
+SWIDTH 1102 0
+DWIDTH 27 0
+BBX 26 19 0 0
+BITMAP
+0001FC00
+3C07FF00
+660F8F80
+C31E03C0
+C31C01C0
+C33C0000
+66380000
+3C380000
+00380000
+00380000
+00380000
+00380000
+00380000
+003C01C0
+001C01C0
+001E03C0
+000F8F80
+0007FF00
+0001FC00
+ENDCHAR
+STARTCHAR uni2109
+ENCODING 8457
+SWIDTH 991 0
+DWIDTH 24 0
+BBX 23 19 0 0
+BITMAP
+001FFE
+3C1FFE
+661C00
+C31C00
+C31C00
+C31C00
+661C00
+3C1C00
+001FFC
+001FFC
+001C00
+001C00
+001C00
+001C00
+001C00
+001C00
+001C00
+001C00
+001C00
+ENDCHAR
+STARTCHAR trademark
+ENCODING 8482
+SWIDTH 1000 0
+DWIDTH 23 0
+BBX 21 10 1 7
+BITMAP
+FF3838
+FF3838
+183C78
+183458
+1836D8
+1836D8
+1836D8
+183398
+183398
+183398
+ENDCHAR
+STARTCHAR uni212A
+ENCODING 8490
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 14 19 2 0
+BITMAP
+E03C
+E078
+E0F0
+E1E0
+E3C0
+E780
+EF00
+FE00
+FE00
+FF00
+F780
+E380
+E1C0
+E1E0
+E0E0
+E070
+E078
+E038
+E03C
+ENDCHAR
+STARTCHAR uni212B
+ENCODING 8491
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+03C0
+0660
+0420
+0660
+03C0
+03C0
+03C0
+07E0
+07E0
+0E60
+0E70
+0E70
+1C38
+1C38
+1C38
+381C
+381C
+3FFC
+7FFE
+700E
+700E
+E007
+E007
+E007
+ENDCHAR
+STARTCHAR uni2132
+ENCODING 8498
+SWIDTH 611 0
+DWIDTH 15 0
+BBX 12 19 2 0
+BITMAP
+0070
+0070
+0070
+0070
+0070
+0070
+0070
+0070
+0070
+7FF0
+7FF0
+0070
+0070
+0070
+0070
+0070
+0070
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR universal
+ENCODING 8704
+SWIDTH 722 0
+DWIDTH 18 0
+BBX 16 19 1 0
+BITMAP
+E007
+E007
+E007
+700E
+700E
+7FFE
+3FFC
+381C
+381C
+1C38
+1C38
+1C38
+0E70
+0E70
+0E60
+07E0
+07E0
+03C0
+03C0
+ENDCHAR
+STARTCHAR existential
+ENCODING 8707
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 19 2 0
+BITMAP
+7FF8
+7FF8
+0038
+0038
+0038
+0038
+0038
+0038
+3FF8
+3FF8
+0038
+0038
+0038
+0038
+0038
+0038
+0038
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni2204
+ENCODING 8708
+SWIDTH 667 0
+DWIDTH 16 0
+BBX 13 19 2 0
+BITMAP
+7FF8
+7FF8
+00F8
+01B8
+01B8
+01B8
+0338
+0338
+3FF8
+3FF8
+0638
+0638
+0638
+0C38
+0C38
+0C38
+1838
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR minus
+ENCODING 8722
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 12 2 1 6
+BITMAP
+FFF0
+FFF0
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8725
+SWIDTH 167 0
+DWIDTH 8 0
+BBX 10 18 -1 0
+BITMAP
+00C0
+00C0
+0180
+0180
+0300
+0300
+0600
+0600
+0C00
+0C00
+1800
+1800
+3000
+3000
+6000
+6000
+C000
+C000
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 8729
+SWIDTH 278 0
+DWIDTH 7 0
+BBX 3 3 2 6
+BITMAP
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni2236
+ENCODING 8758
+SWIDTH 333 0
+DWIDTH 7 0
+BBX 3 14 2 0
+BITMAP
+E0
+E0
+E0
+00
+00
+00
+00
+00
+00
+00
+00
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni2259
+ENCODING 8793
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 10 2 5
+BITMAP
+0E00
+1F00
+3B80
+71C0
+0000
+FFC0
+FFC0
+0000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni225A
+ENCODING 8794
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 10 2 5
+BITMAP
+71C0
+3B80
+1F00
+0E00
+0000
+FFC0
+FFC0
+0000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR notequal
+ENCODING 8800
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 19 2 -2
+BITMAP
+0180
+0180
+0180
+0300
+0300
+0300
+0600
+FFC0
+FFC0
+0600
+FFC0
+FFC0
+0C00
+1800
+1800
+1800
+3000
+3000
+3000
+ENDCHAR
+STARTCHAR equivalence
+ENCODING 8801
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 8 0 3
+BITMAP
+FFC0
+FFC0
+0000
+FFC0
+FFC0
+0000
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni2262
+ENCODING 8802
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 10 19 0 -2
+BITMAP
+0180
+0180
+0180
+0300
+0300
+0300
+FFC0
+FFC0
+0600
+FFC0
+FFC0
+0C00
+FFC0
+FFC0
+1800
+1800
+3000
+3000
+3000
+ENDCHAR
+STARTCHAR lessequal
+ENCODING 8804
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 13 15 0 -2
+BITMAP
+0038
+00F8
+03E0
+0F80
+3E00
+F000
+F000
+3E00
+0F80
+03E0
+00F8
+0038
+0000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR greaterequal
+ENCODING 8805
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 13 15 1 -2
+BITMAP
+E000
+F800
+3E00
+0F80
+03E0
+0078
+0078
+03E0
+0F80
+3E00
+F800
+E000
+0000
+FFF8
+FFF8
+ENDCHAR
+STARTCHAR uni226E
+ENCODING 8814
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 13 19 0 -2
+BITMAP
+00C0
+00C0
+00C0
+0180
+01B8
+01F8
+03E0
+0F80
+3F00
+F300
+F600
+3E00
+0F80
+0FE0
+0CF8
+0C38
+1800
+1800
+1800
+ENDCHAR
+STARTCHAR uni226F
+ENCODING 8815
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 13 19 1 -2
+BITMAP
+00C0
+00C0
+00C0
+0180
+E180
+F980
+3F00
+0F80
+03E0
+0378
+0678
+07E0
+0F80
+3E00
+FC00
+EC00
+1800
+1800
+1800
+ENDCHAR
+STARTCHAR uni2270
+ENCODING 8816
+SWIDTH 584 0
+DWIDTH 15 0
+BBX 13 19 0 -4
+BITMAP
+00C0
+00C0
+00F8
+01F8
+03E0
+0F80
+3F00
+F300
+F300
+3F00
+0F80
+07E0
+06F8
+0C38
+0C00
+FFF8
+FFF8
+1800
+1800
+ENDCHAR
+STARTCHAR uni2271
+ENCODING 8817
+SWIDTH 584 0
+DWIDTH 14 0
+BBX 13 19 1 -4
+BITMAP
+00C0
+00C0
+E0C0
+F980
+3F80
+0F80
+03E0
+0378
+0378
+03E0
+0F80
+3E00
+FE00
+EC00
+0C00
+FFF8
+FFF8
+1800
+1800
+ENDCHAR
+STARTCHAR fi
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 11 19 1 0
+BITMAP
+1EE0
+3EE0
+38E0
+3800
+3800
+FEE0
+FEE0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+ENDCHAR
+STARTCHAR fl
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 14 0
+BBX 11 19 1 0
+BITMAP
+1EE0
+3EE0
+38E0
+38E0
+38E0
+FEE0
+FEE0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+38E0
+ENDCHAR
+ENDFONT
diff --git a/dists/bada/Res/scummmobile/helvB24-ASCII.fcc b/dists/bada/Res/scummmobile/helvB24-ASCII.fcc
new file mode 100644
index 0000000000..48fa5ca92d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB24-ASCII.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvB24.bdf b/dists/bada/Res/scummmobile/helvB24.bdf
new file mode 100644
index 0000000000..d7f71ae129
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvB24.bdf
@@ -0,0 +1,24371 @@
+STARTFONT 2.1
+FONT -Adobe-Helvetica-Bold-R-Normal--34-240-100-100-P-182-ISO10646-1
+SIZE 24 100 100
+FONTBOUNDINGBOX 40 49 -6 -12
+COMMENT ISO10646-1 extension by Markus Kuhn <mkuhn@acm.org>, 2001-03-20
+COMMENT
+COMMENT +
+COMMENT Copyright 1984-1989, 1994 Adobe Systems Incorporated.
+COMMENT Copyright 1988, 1994 Digital Equipment Corporation.
+COMMENT
+COMMENT Adobe is a trademark of Adobe Systems Incorporated which may be
+COMMENT registered in certain jurisdictions.
+COMMENT Permission to use these trademarks is hereby granted only in
+COMMENT association with the images described in this file.
+COMMENT
+COMMENT Permission to use, copy, modify, distribute and sell this software
+COMMENT and its documentation for any purpose and without fee is hereby
+COMMENT granted, provided that the above copyright notices appear in all
+COMMENT copies and that both those copyright notices and this permission
+COMMENT notice appear in supporting documentation, and that the names of
+COMMENT Adobe Systems and Digital Equipment Corporation not be used in
+COMMENT advertising or publicity pertaining to distribution of the software
+COMMENT without specific, written prior permission. Adobe Systems and
+COMMENT Digital Equipment Corporation make no representations about the
+COMMENT suitability of this software for any purpose. It is provided "as
+COMMENT is" without express or implied warranty.
+COMMENT -
+STARTPROPERTIES 26
+FOUNDRY "Adobe"
+FAMILY_NAME "Helvetica"
+WEIGHT_NAME "Bold"
+SLANT "R"
+SETWIDTH_NAME "Normal"
+ADD_STYLE_NAME ""
+PIXEL_SIZE 34
+POINT_SIZE 240
+RESOLUTION_X 100
+RESOLUTION_Y 100
+SPACING "P"
+AVERAGE_WIDTH 182
+CHARSET_REGISTRY "ISO10646"
+CHARSET_ENCODING "1"
+CAP_HEIGHT 25
+X_HEIGHT 18
+FONT_ASCENT 28
+FONT_DESCENT 7
+FACE_NAME "Helvetica Bold"
+COPYRIGHT "Copyright (c) 1984, 1987 Adobe Systems Incorporated. All Rights Reserved. Copyright (c) 1988, 1991 Digital Equipment Corporation. All Rights Reserved."
+NOTICE "Helvetica is a trademark of Linotype-Hell AG and/or its subsidiaries. "
+_DEC_DEVICE_FONTNAMES "PS=Helvetica-Bold"
+DEFAULT_CHAR 0
+RELATIVE_SETWIDTH 50
+RELATIVE_WEIGHT 70
+FULL_NAME "Helvetica Bold"
+ENDPROPERTIES
+CHARS 756
+STARTCHAR char0
+ENCODING 0
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 25 2 0
+BITMAP
+AAAAA0
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+800020
+000000
+AAAAA0
+ENDCHAR
+STARTCHAR space
+ENCODING 32
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclam
+ENCODING 33
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 25 3 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+70
+70
+70
+70
+70
+70
+70
+00
+00
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR quotedbl
+ENCODING 34
+SWIDTH 474 0
+DWIDTH 16 0
+BBX 11 9 2 16
+BITMAP
+F1E0
+F1E0
+F1E0
+F1E0
+F1E0
+F1E0
+F1E0
+60C0
+60C0
+ENDCHAR
+STARTCHAR numbersign
+ENCODING 35
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 18 25 0 -1
+BITMAP
+03C700
+03C700
+038F00
+038F00
+078F00
+078E00
+078E00
+7FFFC0
+7FFFC0
+7FFFC0
+7FFFC0
+0F1C00
+0E1C00
+0E1C00
+0E3C00
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+1C7800
+3C7800
+3C7000
+3C7000
+38F000
+38F000
+ENDCHAR
+STARTCHAR dollar
+ENCODING 36
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 28 1 -3
+BITMAP
+0180
+0180
+0FF0
+3FFC
+7FFE
+FDBE
+F99F
+F19F
+F18F
+F980
+FF80
+7FC0
+3FF0
+0FFC
+01FE
+01FF
+019F
+018F
+F18F
+F19F
+F99F
+7FFE
+7FFE
+3FF8
+07E0
+0180
+0180
+0180
+ENDCHAR
+STARTCHAR percent
+ENCODING 37
+SWIDTH 889 0
+DWIDTH 29 0
+BBX 26 23 1 0
+BITMAP
+0E003000
+3F807000
+7FC06000
+71C0E000
+E0E0C000
+E0E1C000
+E0E38000
+E0E38000
+71C70000
+7FC60000
+3F8E0000
+0E0C1C00
+001C7F00
+0018FF80
+0038E380
+0031C1C0
+0071C1C0
+0061C1C0
+00E1C1C0
+01C0E380
+01C0FF80
+03807F00
+03001C00
+ENDCHAR
+STARTCHAR ampersand
+ENCODING 38
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 25 2 0
+BITMAP
+03E000
+0FF800
+1FFC00
+1FFC00
+1E3C00
+3E3C00
+3E3C00
+1F3C00
+1FF800
+0FF800
+0FF000
+0FE000
+3FF1E0
+7FF1E0
+7CF9C0
+F8FFC0
+F07FC0
+F03F80
+F01F00
+F80F80
+FC3FC0
+7FFFE0
+7FFBE0
+1FF1F0
+07C000
+ENDCHAR
+STARTCHAR quotesingle
+ENCODING 39
+SWIDTH 238 0
+DWIDTH 8 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+60
+60
+ENDCHAR
+STARTCHAR parenleft
+ENCODING 40
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 8 31 1 -6
+BITMAP
+07
+0F
+1E
+1E
+3C
+3C
+38
+78
+78
+78
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F8
+78
+78
+78
+78
+3C
+3C
+1C
+1E
+0E
+0F
+07
+ENDCHAR
+STARTCHAR parenright
+ENCODING 41
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 8 31 1 -6
+BITMAP
+E0
+F0
+78
+78
+3C
+3C
+1C
+1E
+1E
+1E
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+1F
+1E
+1E
+1E
+1C
+3C
+3C
+38
+78
+70
+F0
+E0
+ENDCHAR
+STARTCHAR asterisk
+ENCODING 42
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 11 1 13
+BITMAP
+0C00
+0C00
+4C80
+EDC0
+FFC0
+7F80
+1E00
+3F00
+7F80
+7380
+2100
+ENDCHAR
+STARTCHAR plus
+ENCODING 43
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 16 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+FFFF
+FFFF
+FFFF
+FFFF
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR comma
+ENCODING 44
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 11 2 -6
+BITMAP
+F8
+F8
+F8
+F8
+F8
+18
+18
+38
+70
+E0
+80
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 45
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 5 1 7
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+STARTCHAR period
+ENCODING 46
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 5 2 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR slash
+ENCODING 47
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 8 25 0 0
+BITMAP
+03
+03
+03
+03
+06
+06
+06
+0E
+0C
+0C
+0C
+1C
+18
+18
+18
+30
+30
+30
+70
+60
+60
+60
+C0
+C0
+C0
+ENDCHAR
+STARTCHAR zero
+ENCODING 48
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+0FE0
+1FF0
+3FF8
+7FFC
+7C7C
+F83E
+F83E
+F83E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F83E
+F83E
+7C7C
+7FFC
+3FF8
+1FF0
+0FE0
+ENDCHAR
+STARTCHAR one
+ENCODING 49
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 10 23 2 0
+BITMAP
+01C0
+03C0
+07C0
+1FC0
+FFC0
+FFC0
+FFC0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR two
+ENCODING 50
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0FE0
+3FF8
+7FFC
+7FFE
+FC7E
+F83F
+F81F
+F01F
+F01F
+003F
+003E
+007E
+00FC
+01F8
+07F0
+0FE0
+1F80
+3F00
+7E00
+FC00
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR three
+ENCODING 51
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0FE0
+3FF8
+7FFC
+7FFC
+F83E
+F03E
+F01E
+F01E
+003E
+007C
+03F8
+03F0
+03FC
+007E
+003F
+001F
+F01F
+F01F
+F03F
+F83E
+7FFE
+7FFC
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR four
+ENCODING 52
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+00F8
+00F8
+01F8
+03F8
+03F8
+07F8
+0F78
+0E78
+1E78
+1C78
+3C78
+7878
+7078
+F078
+E078
+FFFF
+FFFF
+FFFF
+FFFF
+0078
+0078
+0078
+0078
+0078
+ENDCHAR
+STARTCHAR five
+ENCODING 53
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+3FFC
+3FFC
+3FFC
+3FFC
+3800
+7800
+7800
+7800
+7BE0
+7FF8
+7FFC
+7FFC
+787E
+003E
+003E
+001E
+001E
+F03E
+F03E
+F87C
+7FFC
+7FF8
+3FF0
+0FC0
+ENDCHAR
+STARTCHAR six
+ENCODING 54
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+07E0
+1FF8
+3FFC
+3FFE
+7C3E
+781E
+F000
+F000
+F3E0
+F7F8
+FFFC
+FFFC
+FC7E
+F83E
+F01E
+F01E
+F01E
+F01E
+F83E
+7C7C
+7FFC
+3FF8
+1FF0
+07C0
+ENDCHAR
+STARTCHAR seven
+ENCODING 55
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+FFFF
+FFFF
+FFFF
+FFFF
+001E
+003E
+003C
+0078
+00F8
+00F0
+01F0
+01E0
+03E0
+03C0
+07C0
+07C0
+0780
+0F80
+0F80
+0F80
+1F00
+1F00
+1F00
+1F00
+ENDCHAR
+STARTCHAR eight
+ENCODING 56
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 17 24 0 0
+BITMAP
+07F000
+1FFC00
+3FFE00
+3E3E00
+7C1F00
+780F00
+780F00
+780F00
+7C1F00
+3E3E00
+1FFC00
+1FFC00
+3FFE00
+7C1F00
+F80F80
+F00780
+F00780
+F00780
+F80F80
+7E3F00
+7FFE00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR nine
+ENCODING 57
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+07C0
+1FF0
+3FF8
+7FFC
+7C7C
+F83E
+F01E
+F01E
+F01E
+F01E
+F83E
+FC7E
+7FFE
+7FFE
+3FDE
+079E
+001E
+001E
+F03C
+F87C
+7FF8
+7FF8
+1FF0
+07C0
+ENDCHAR
+STARTCHAR colon
+ENCODING 58
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 17 3 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+00
+00
+00
+00
+00
+00
+00
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR semicolon
+ENCODING 59
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 23 3 -6
+BITMAP
+F8
+F8
+F8
+F8
+F8
+00
+00
+00
+00
+00
+00
+00
+F8
+F8
+F8
+F8
+F8
+18
+18
+38
+70
+E0
+80
+ENDCHAR
+STARTCHAR less
+ENCODING 60
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 16 1 0
+BITMAP
+0003
+001F
+007F
+03FF
+0FFE
+7FF8
+FFC0
+FE00
+FE00
+FFC0
+7FF0
+0FFE
+03FF
+007F
+001F
+0003
+ENDCHAR
+STARTCHAR equal
+ENCODING 61
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 12 2 2
+BITMAP
+FFFE
+FFFE
+FFFE
+FFFE
+0000
+0000
+0000
+0000
+FFFE
+FFFE
+FFFE
+FFFE
+ENDCHAR
+STARTCHAR greater
+ENCODING 62
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 16 1 0
+BITMAP
+C000
+F000
+FE00
+FFC0
+7FF0
+1FFE
+03FF
+007F
+007F
+03FF
+1FFE
+7FF0
+FFC0
+FE00
+F000
+C000
+ENDCHAR
+STARTCHAR question
+ENCODING 63
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 0
+BITMAP
+0FE0
+3FF8
+7FFC
+7FFE
+FC7E
+F83F
+F81F
+F01F
+F01F
+003F
+007E
+00FE
+01FC
+01F8
+03E0
+03C0
+07C0
+07C0
+0000
+0000
+07C0
+07C0
+07C0
+07C0
+07C0
+ENDCHAR
+STARTCHAR at
+ENCODING 64
+SWIDTH 975 0
+DWIDTH 33 0
+BBX 29 30 1 -5
+BITMAP
+000FE000
+007FFC00
+01FFFE00
+03F03F80
+07C007C0
+0F0003C0
+1E0001E0
+1C0000F0
+3C07DC70
+381FFC70
+703CFC38
+70787838
+F0F03838
+E0E03838
+E1E03838
+E1C07078
+E1C07070
+E1C07070
+E1E0F0E0
+F1E1F1E0
+70FFFFC0
+787F3F80
+383E1E00
+3C000000
+1E000000
+0F800000
+0FF03C00
+03FFFC00
+01FFFC00
+007FE000
+ENDCHAR
+STARTCHAR A
+ENCODING 65
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 25 0 0
+BITMAP
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR B
+ENCODING 66
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 25 3 0
+BITMAP
+FFFC00
+FFFF00
+FFFF80
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80F80
+FFFF00
+FFFF00
+FFFF80
+FFFFC0
+F807C0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807E0
+FFFFC0
+FFFFC0
+FFFF80
+FFFE00
+ENDCHAR
+STARTCHAR C
+ENCODING 67
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 25 1 0
+BITMAP
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F8
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FE00
+ENDCHAR
+STARTCHAR D
+ENCODING 68
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 25 2 0
+BITMAP
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+ENDCHAR
+STARTCHAR E
+ENCODING 69
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR F
+ENCODING 70
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 0
+BITMAP
+FFFF
+FFFF
+FFFF
+FFFF
+F800
+F800
+F800
+F800
+F800
+F800
+FFFE
+FFFE
+FFFE
+FFFE
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+ENDCHAR
+STARTCHAR G
+ENCODING 71
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 25 1 0
+BITMAP
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR H
+ENCODING 72
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 25 2 0
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR I
+ENCODING 73
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 25 2 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR J
+ENCODING 74
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 0
+BITMAP
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+F83E
+F83E
+F83E
+F83E
+F83E
+FC7E
+FFFC
+7FFC
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR K
+ENCODING 75
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 25 2 0
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+ENDCHAR
+STARTCHAR L
+ENCODING 76
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 0
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR M
+ENCODING 77
+SWIDTH 833 0
+DWIDTH 27 0
+BBX 23 25 2 0
+BITMAP
+FE00FE
+FE00FE
+FF01FE
+FF01FE
+FF01FE
+FF01FE
+FF83FE
+FF83FE
+FB83BE
+FB83BE
+FBC7BE
+FBC7BE
+FBC7BE
+F9C73E
+F9EF3E
+F9EF3E
+F9EF3E
+F9EF3E
+F8EE3E
+F8FE3E
+F8FE3E
+F8FE3E
+F87C3E
+F87C3E
+F87C3E
+ENDCHAR
+STARTCHAR N
+ENCODING 78
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 25 2 0
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR O
+ENCODING 79
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 25 1 0
+BITMAP
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR P
+ENCODING 80
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+FFF800
+FFFE00
+FFFF00
+FFFF80
+F81F80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80FC0
+F81F80
+FFFF80
+FFFF00
+FFFC00
+FFF000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+ENDCHAR
+STARTCHAR Q
+ENCODING 81
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 23 26 1 -1
+BITMAP
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+FC007E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8023E
+FC073E
+7C0FBC
+7E0FFC
+3F07F8
+3FC3F0
+1FFFF8
+0FFFFC
+07FFFE
+01FF3C
+000018
+ENDCHAR
+STARTCHAR R
+ENCODING 82
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 25 2 0
+BITMAP
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR S
+ENCODING 83
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 25 1 0
+BITMAP
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+ENDCHAR
+STARTCHAR T
+ENCODING 84
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 25 0 0
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR U
+ENCODING 85
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 25 2 0
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR V
+ENCODING 86
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 25 1 0
+BITMAP
+F801F0
+F801F0
+7C03E0
+7C03E0
+7C03E0
+3C03C0
+3E07C0
+3E07C0
+1E0780
+1F0F80
+1F0F80
+0F0F00
+0F0F00
+0F0F00
+079E00
+079E00
+079E00
+07FE00
+03FC00
+03FC00
+03FC00
+01F800
+01F800
+01F800
+00F000
+ENDCHAR
+STARTCHAR W
+ENCODING 87
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 25 1 0
+BITMAP
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR X
+ENCODING 88
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 25 1 0
+BITMAP
+FC03E0
+7E07E0
+7E07C0
+3F0FC0
+1F0F80
+1F9F00
+0F9F00
+0FBE00
+07FE00
+07FC00
+03FC00
+03F800
+01F800
+03F800
+03FC00
+07FC00
+07FE00
+0FBF00
+1F9F00
+1F1F80
+3F0F80
+3E0FC0
+7E07C0
+FC07E0
+FC03F0
+ENDCHAR
+STARTCHAR Y
+ENCODING 89
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 25 1 0
+BITMAP
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR Z
+ENCODING 90
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 0
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR bracketleft
+ENCODING 91
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 8 31 2 -6
+BITMAP
+FF
+FF
+FF
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR backslash
+ENCODING 92
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 9 25 0 0
+BITMAP
+C000
+C000
+E000
+6000
+6000
+7000
+7000
+3000
+3800
+3800
+1800
+1C00
+1C00
+0C00
+0C00
+0E00
+0E00
+0600
+0700
+0700
+0300
+0380
+0380
+0180
+0180
+ENDCHAR
+STARTCHAR bracketright
+ENCODING 93
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 8 31 0 -6
+BITMAP
+FF
+FF
+FF
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+0F
+FF
+FF
+FF
+ENDCHAR
+STARTCHAR asciicircum
+ENCODING 94
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 14 14 2 9
+BITMAP
+0780
+0FC0
+0FC0
+0FC0
+1FE0
+1FE0
+3CF0
+3CF0
+3870
+7878
+7878
+703C
+F03C
+F03C
+ENDCHAR
+STARTCHAR underscore
+ENCODING 95
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 18 2 0 -6
+BITMAP
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR grave
+ENCODING 96
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 5 2 20
+BITMAP
+E0
+F0
+70
+78
+38
+ENDCHAR
+STARTCHAR a
+ENCODING 97
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 18 1 0
+BITMAP
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR b
+ENCODING 98
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 0
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F3F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81F
+F01F
+F00F
+F00F
+F00F
+F00F
+F01F
+F01F
+F83E
+FFFE
+FFFC
+F7F8
+F1F0
+ENDCHAR
+STARTCHAR c
+ENCODING 99
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 18 1 0
+BITMAP
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+783E
+F01E
+F000
+F000
+F000
+F000
+F01E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+ENDCHAR
+STARTCHAR d
+ENCODING 100
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 1 0
+BITMAP
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+ENDCHAR
+STARTCHAR e
+ENCODING 101
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR f
+ENCODING 102
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 25 0 0
+BITMAP
+07C0
+0FC0
+1FC0
+1F00
+1E00
+1E00
+1E00
+FFC0
+FFC0
+FFC0
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR g
+ENCODING 103
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 1 -7
+BITMAP
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR h
+ENCODING 104
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR i
+ENCODING 105
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 25 2 0
+BITMAP
+F0
+F0
+F0
+F0
+00
+00
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR j
+ENCODING 106
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 6 32 0 -7
+BITMAP
+3C
+3C
+3C
+3C
+00
+00
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+FC
+FC
+F8
+F8
+ENDCHAR
+STARTCHAR k
+ENCODING 107
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 25 2 0
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+ENDCHAR
+STARTCHAR l
+ENCODING 108
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 25 2 0
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR m
+ENCODING 109
+SWIDTH 889 0
+DWIDTH 30 0
+BBX 24 18 2 0
+BITMAP
+F1E0F8
+F7FBFE
+FFFFFE
+FFFFFF
+FC7F1F
+F83E0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+ENDCHAR
+STARTCHAR n
+ENCODING 110
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 18 2 0
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR o
+ENCODING 111
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 18 1 0
+BITMAP
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR p
+ENCODING 112
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 -7
+BITMAP
+F1F0
+F7F8
+FFFC
+FFFE
+FC3E
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+FC3E
+FFFE
+FFFC
+F7F8
+F1F0
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR q
+ENCODING 113
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 1 -7
+BITMAP
+07CF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FFF
+3FEF
+0FCF
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+ENDCHAR
+STARTCHAR r
+ENCODING 114
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR s
+ENCODING 115
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 18 1 0
+BITMAP
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR t
+ENCODING 116
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 22 1 0
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+ENDCHAR
+STARTCHAR u
+ENCODING 117
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 18 2 0
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR v
+ENCODING 118
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 17 18 0 0
+BITMAP
+F80F80
+F80F80
+7C1F00
+7C1F00
+3C1E00
+3C1E00
+3E3E00
+1E3C00
+1E3C00
+1E3C00
+0F7800
+0F7800
+0F7800
+07F000
+07F000
+07F000
+03E000
+03E000
+ENDCHAR
+STARTCHAR w
+ENCODING 119
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 18 0 0
+BITMAP
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR x
+ENCODING 120
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 18 1 0
+BITMAP
+F81F
+FC3F
+7C3E
+3E7C
+3E78
+1FF8
+0FF0
+07E0
+03C0
+07E0
+0FE0
+0FF0
+1FF8
+3E78
+3E7C
+7C3E
+FC3F
+F81F
+ENDCHAR
+STARTCHAR y
+ENCODING 121
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 25 1 -7
+BITMAP
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR z
+ENCODING 122
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 18 1 0
+BITMAP
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR braceleft
+ENCODING 123
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 9 32 2 -7
+BITMAP
+0F80
+1F80
+3F80
+3E00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+7C00
+7800
+E000
+7800
+7C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+1F80
+0F80
+ENDCHAR
+STARTCHAR bar
+ENCODING 124
+SWIDTH 280 0
+DWIDTH 9 0
+BBX 3 31 3 -6
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR braceright
+ENCODING 125
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 9 32 2 -7
+BITMAP
+F800
+FC00
+FE00
+3E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1F00
+0F00
+0380
+0F00
+1F00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+FE00
+FC00
+F800
+ENDCHAR
+STARTCHAR asciitilde
+ENCODING 126
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 14 6 2 5
+BITMAP
+3800
+7E0C
+FF9C
+E7FC
+C1F8
+0070
+ENDCHAR
+STARTCHAR space
+ENCODING 160
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR exclamdown
+ENCODING 161
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 24 2 -6
+BITMAP
+F8
+F8
+F8
+F8
+F8
+00
+00
+70
+70
+70
+70
+70
+70
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR cent
+ENCODING 162
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 -3
+BITMAP
+0020
+0020
+0060
+07F0
+1FF8
+3FFC
+7FFC
+7CBE
+F89E
+F99E
+F180
+F180
+F300
+F300
+F31E
+FA1E
+7E3E
+7FFC
+3FF8
+1FF0
+0FC0
+0C00
+0800
+0800
+ENDCHAR
+STARTCHAR sterling
+ENCODING 163
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 17 24 0 0
+BITMAP
+03F000
+1FFC00
+3FFE00
+3FFF00
+7E1F00
+7C0F80
+7C0F80
+7C0780
+7C0000
+7E0000
+3E0000
+FFF000
+FFF000
+1F0000
+0F0000
+0F0000
+0F0000
+1F0000
+1E0000
+3DE300
+7FFF80
+FFFF80
+FFFF00
+607E00
+ENDCHAR
+STARTCHAR currency
+ENCODING 164
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 15 1 4
+BITMAP
+E00E
+F7DE
+FFFE
+7FFC
+3C78
+783C
+701C
+701C
+701C
+783C
+3C78
+7FFC
+FFFE
+F7DE
+E00E
+ENDCHAR
+STARTCHAR yen
+ENCODING 165
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 18 24 0 0
+BITMAP
+F807C0
+F807C0
+7C0F80
+3C0F00
+1E1E00
+1E1E00
+0F3C00
+0F3C00
+07F800
+07F800
+03F000
+01E000
+3FFF00
+3FFF00
+01E000
+01E000
+3FFF00
+3FFF00
+01E000
+01E000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR brokenbar
+ENCODING 166
+SWIDTH 280 0
+DWIDTH 9 0
+BBX 3 31 3 -6
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+00
+00
+00
+00
+00
+00
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR section
+ENCODING 167
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 32 1 -7
+BITMAP
+0FF0
+1FF8
+3FF8
+7E7C
+7C3C
+7C3C
+7E00
+7F00
+3FC0
+1FE0
+3FF8
+7FFC
+71FE
+F0FF
+F03F
+F81F
+FC0F
+7F0F
+7F9F
+3FFE
+1FF8
+07FC
+01FE
+007E
+003E
+781E
+781E
+7C3E
+3FFC
+3FFC
+1FF8
+07E0
+ENDCHAR
+STARTCHAR dieresis
+ENCODING 168
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 4 0 21
+BITMAP
+F3C0
+F3C0
+F3C0
+F3C0
+ENDCHAR
+STARTCHAR copyright
+ENCODING 169
+SWIDTH 737 0
+DWIDTH 24 0
+BBX 26 25 0 0
+BITMAP
+007F8000
+03FFE000
+0780F800
+1F003C00
+1C000E00
+38000700
+703F0300
+707F8380
+E0F3C180
+E1C0E1C0
+C1C0E0C0
+C38000C0
+C38000C0
+C38000C0
+C38000C0
+C1C0E0C0
+E1C0E1C0
+E0F3C380
+607F8380
+703F0700
+38000E00
+1E003C00
+0F80F800
+07FFE000
+01FF8000
+ENDCHAR
+STARTCHAR ordfeminine
+ENCODING 170
+SWIDTH 370 0
+DWIDTH 12 0
+BBX 9 16 1 9
+BITMAP
+3E00
+7F00
+E380
+C380
+1F80
+7F80
+F380
+E380
+E380
+FF80
+7B80
+0000
+0000
+FF80
+FF80
+FF80
+ENDCHAR
+STARTCHAR guillemotleft
+ENCODING 171
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 12 13 3 2
+BITMAP
+0810
+1830
+3870
+78F0
+F1E0
+E1C0
+E1C0
+F1E0
+F9F0
+78F0
+3870
+1830
+0810
+ENDCHAR
+STARTCHAR logicalnot
+ENCODING 172
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 10 1 4
+BITMAP
+FFFF
+FFFF
+FFFF
+FFFF
+000F
+000F
+000F
+000F
+000F
+000F
+ENDCHAR
+STARTCHAR hyphen
+ENCODING 173
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 5 1 7
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+STARTCHAR registered
+ENCODING 174
+SWIDTH 737 0
+DWIDTH 24 0
+BBX 26 25 0 0
+BITMAP
+00FF8000
+03FFE000
+0780F800
+1E003C00
+1C000E00
+38FF8700
+70FFC300
+70E1E380
+E0E0E180
+E0E0E180
+C0E0E1C0
+C0E1C1C0
+C0FF81C0
+C0FF01C0
+C0E381C0
+C0E3C1C0
+E0E1C180
+E0E0E380
+70E0F380
+70E07700
+38000E00
+1E001C00
+0F807800
+07FFE000
+01FF8000
+ENDCHAR
+STARTCHAR macron
+ENCODING 175
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 3 0 21
+BITMAP
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR degree
+ENCODING 176
+SWIDTH 400 0
+DWIDTH 13 0
+BBX 9 10 2 14
+BITMAP
+3E00
+7F00
+6300
+C180
+C180
+C180
+C180
+6300
+7F00
+3E00
+ENDCHAR
+STARTCHAR plusminus
+ENCODING 177
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 22 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+FFFF
+FFFF
+FFFF
+FFFF
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+0000
+0000
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR twosuperior
+ENCODING 178
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 15 0 9
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E1C0
+01C0
+03C0
+0780
+0F00
+3E00
+7800
+7000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR threesuperior
+ENCODING 179
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 15 0 9
+BITMAP
+1E00
+7F80
+F3C0
+E1C0
+E1C0
+03C0
+0F80
+0F80
+03C0
+01C0
+E1C0
+E1C0
+F3C0
+7F80
+3E00
+ENDCHAR
+STARTCHAR acute
+ENCODING 180
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 5 4 20
+BITMAP
+3C
+78
+70
+E0
+E0
+ENDCHAR
+STARTCHAR mu
+ENCODING 181
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 -7
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+FFFE
+FFDE
+F79E
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR paragraph
+ENCODING 182
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 17 31 0 -6
+BITMAP
+0FFF80
+1FFF80
+3F8C00
+7F8C00
+7F8C00
+FF8C00
+FF8C00
+FF8C00
+FF8C00
+FF8C00
+7F8C00
+7F8C00
+3F8C00
+3F8C00
+0F8C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+018C00
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 183
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 5 2 11
+BITMAP
+60
+F0
+F0
+F0
+60
+ENDCHAR
+STARTCHAR cedilla
+ENCODING 184
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 7 8 2 -7
+BITMAP
+30
+30
+30
+7C
+1E
+0E
+FC
+F8
+ENDCHAR
+STARTCHAR onesuperior
+ENCODING 185
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 15 2 9
+BITMAP
+1C
+3C
+FC
+FC
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+ENDCHAR
+STARTCHAR ordmasculine
+ENCODING 186
+SWIDTH 365 0
+DWIDTH 12 0
+BBX 10 16 1 9
+BITMAP
+3F00
+7F80
+7380
+E1C0
+E1C0
+E1C0
+E1C0
+E1C0
+7380
+7F80
+3F00
+0000
+0000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR guillemotright
+ENCODING 187
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 12 12 3 3
+BITMAP
+8100
+C180
+E1C0
+F1E0
+78F0
+3870
+3870
+78F0
+F1E0
+E1C0
+C180
+8100
+ENDCHAR
+STARTCHAR onequarter
+ENCODING 188
+SWIDTH 834 0
+DWIDTH 28 0
+BBX 26 24 0 0
+BITMAP
+00003800
+06007000
+1E007000
+FE00E000
+FE01C000
+0E01C000
+0E038000
+0E038000
+0E070000
+0E070000
+0E0E0700
+0E1C0F00
+0E1C1F00
+0E381F00
+00383700
+00706700
+0070E700
+00E0C700
+01C18700
+01C1FFC0
+0381FFC0
+03800700
+07000700
+07000700
+ENDCHAR
+STARTCHAR onehalf
+ENCODING 189
+SWIDTH 834 0
+DWIDTH 28 0
+BBX 25 24 1 0
+BITMAP
+0000E000
+0C01C000
+1C01C000
+FC038000
+FC038000
+1C070000
+1C0E0000
+1C0E0000
+1C1C0000
+1C1C0000
+1C387E00
+1C30FF00
+1C71E780
+1CE1C380
+00E1C380
+01C00780
+01C00F00
+03801E00
+07003C00
+07007800
+0E00F000
+0E01FF80
+1C01FF80
+1C01FF80
+ENDCHAR
+STARTCHAR threequarters
+ENCODING 190
+SWIDTH 834 0
+DWIDTH 27 0
+BBX 25 24 1 0
+BITMAP
+3F001C00
+7F803800
+F3C03800
+E1C07000
+E1C0E000
+03C0E000
+0F81C000
+0F81C000
+0FC38000
+01C70000
+E1C70E00
+E1CE1E00
+F3CE1E00
+7F9C3E00
+3F1C7E00
+0038EE00
+0070CE00
+00718E00
+00E38E00
+00E3FF80
+01C3FF80
+01C00E00
+03800E00
+03800E00
+ENDCHAR
+STARTCHAR questiondown
+ENCODING 191
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 24 1 -6
+BITMAP
+03E0
+03E0
+03E0
+03E0
+0000
+0000
+03C0
+03C0
+03C0
+07C0
+1F80
+3F80
+7F00
+7E00
+FC00
+F80F
+F80F
+F80F
+FC1F
+7E7F
+7FFE
+3FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Agrave
+ENCODING 192
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+03C000
+01E000
+00F000
+007800
+003C00
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR Aacute
+ENCODING 193
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+000F00
+001E00
+003C00
+007800
+00F000
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR Acircumflex
+ENCODING 194
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR Atilde
+ENCODING 195
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 30 0 0
+BITMAP
+00F180
+01FF80
+03FF00
+031E00
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR Adieresis
+ENCODING 196
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+03CF00
+03CF00
+03CF00
+03CF00
+000000
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR Aring
+ENCODING 197
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+007800
+00CC00
+008400
+008400
+00CC00
+007800
+000000
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR AE
+ENCODING 198
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 31 25 0 0
+BITMAP
+00FFFFFC
+00FFFFFC
+00FFFFFC
+01FFFFFC
+01F3C000
+01E3C000
+03E3C000
+03E3C000
+03C3C000
+07C3C000
+07C3C000
+07C3FFF8
+0F83FFF8
+0F83FFF8
+0F83FFF8
+1F03C000
+1FFFC000
+1FFFC000
+3FFFC000
+3FFFC000
+3E03C000
+7C03FFFE
+7C03FFFE
+F803FFFE
+F803FFFE
+ENDCHAR
+STARTCHAR Ccedilla
+ENCODING 199
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 21 32 1 -7
+BITMAP
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F0
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FC00
+006000
+006000
+00F800
+001C00
+001C00
+01F800
+01F000
+ENDCHAR
+STARTCHAR Egrave
+ENCODING 200
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+1E0000
+0F0000
+078000
+03C000
+01E000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR Eacute
+ENCODING 201
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+007800
+00F000
+01E000
+03C000
+078000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR Ecircumflex
+ENCODING 202
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR Edieresis
+ENCODING 203
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+1E3C00
+1E3C00
+1E3C00
+1E3C00
+000000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR Igrave
+ENCODING 204
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 8 31 0 0
+BITMAP
+F0
+78
+3C
+1E
+0F
+00
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+3E
+ENDCHAR
+STARTCHAR Iacute
+ENCODING 205
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 8 31 2 0
+BITMAP
+0F
+1E
+3C
+78
+F0
+00
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR Icircumflex
+ENCODING 206
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 31 0 0
+BITMAP
+0C00
+1E00
+3F00
+7380
+E1C0
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR Idieresis
+ENCODING 207
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 31 0 0
+BITMAP
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR Eth
+ENCODING 208
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 23 25 -1 0
+BITMAP
+1FFF80
+1FFFE0
+1FFFF0
+1FFFF8
+1F07F8
+1F00FC
+1F00FC
+1F007C
+1F007E
+1F003E
+1F003E
+FFF03E
+FFF03E
+FFF03E
+1F003E
+1F003E
+1F007C
+1F007C
+1F007C
+1F00F8
+1F03F8
+1FFFF0
+1FFFF0
+1FFFC0
+1FFF80
+ENDCHAR
+STARTCHAR Ntilde
+ENCODING 209
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 0
+BITMAP
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR Ograve
+ENCODING 210
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+01E000
+00F000
+007800
+003C00
+001E00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR Oacute
+ENCODING 211
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+000780
+000F00
+001E00
+003C00
+007800
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR Ocircumflex
+ENCODING 212
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+001800
+003C00
+007E00
+00E700
+01C380
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR Otilde
+ENCODING 213
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 30 1 0
+BITMAP
+0078C0
+00FFC0
+01FF80
+018F00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR Odieresis
+ENCODING 214
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+01E780
+01E780
+01E780
+01E780
+000000
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR multiply
+ENCODING 215
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 16 2 0
+BITMAP
+2008
+701C
+F83E
+FC7E
+7EFC
+3FF8
+1FF0
+0FE0
+0FE0
+1FF0
+3FF8
+7EFC
+FC7E
+F83E
+701C
+2008
+ENDCHAR
+STARTCHAR Oslash
+ENCODING 216
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 24 25 1 0
+BITMAP
+01FF07
+07FFCE
+0FFFFC
+1FFFF8
+3FC7F8
+3F00F8
+7E01FC
+7C03FC
+7C07BC
+F8073E
+F80E3E
+F81C3E
+F8383E
+F8703E
+F8E03E
+F8E03E
+7DC07C
+7F807C
+7F00FC
+3F01F8
+3FC7F8
+3FFFF0
+3FFFE0
+77FFC0
+E1FF00
+ENDCHAR
+STARTCHAR Ugrave
+ENCODING 217
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+078000
+03C000
+01E000
+00F000
+007800
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR Uacute
+ENCODING 218
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+001E00
+003C00
+007800
+00F000
+01E000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR Ucircumflex
+ENCODING 219
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+006000
+00F000
+01F800
+039C00
+070E00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR Udieresis
+ENCODING 220
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+0F1E00
+0F1E00
+0F1E00
+0F1E00
+000000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR Yacute
+ENCODING 221
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 31 1 0
+BITMAP
+001E00
+003C00
+007800
+00F000
+01E000
+000000
+FC03F0
+FC03F0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR Thorn
+ENCODING 222
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+F80000
+F80000
+F80000
+FFF800
+FFFE00
+FFFF00
+FFFF80
+F81F80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80FC0
+F81F80
+FFFF80
+FFFF00
+FFFE00
+FFFC00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+ENDCHAR
+STARTCHAR germandbls
+ENCODING 223
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 2 0
+BITMAP
+0FC000
+3FF000
+7FFC00
+FFFC00
+F87E00
+F83E00
+F03E00
+F03E00
+F07C00
+F0FC00
+F1F800
+F1FC00
+F1FE00
+F07F00
+F01F00
+F01F80
+F00F80
+F00F80
+F00F80
+F01F80
+F03F00
+F1FF00
+F1FE00
+F1FC00
+F1F000
+ENDCHAR
+STARTCHAR agrave
+ENCODING 224
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 0
+BITMAP
+0F00
+0780
+0380
+01C0
+00E0
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR aacute
+ENCODING 225
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 0
+BITMAP
+0078
+00F0
+00E0
+01C0
+0380
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR acircumflex
+ENCODING 226
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 0
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR atilde
+ENCODING 227
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+078C
+0FFC
+1FF8
+18F0
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR adieresis
+ENCODING 228
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+1E78
+1E78
+1E78
+1E78
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR aring
+ENCODING 229
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 0
+BITMAP
+03C0
+0660
+0420
+0420
+0660
+03C0
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR ae
+ENCODING 230
+SWIDTH 889 0
+DWIDTH 29 0
+BBX 26 19 1 0
+BITMAP
+07E0F800
+1FFBFE00
+3FFFFF00
+3FFFFF00
+7C3F0F80
+781E0780
+781E07C0
+003E07C0
+07FFFFC0
+3FFFFFC0
+7FFFFFC0
+7C1E0000
+F81E0000
+F81E07C0
+FC3F0FC0
+FFFFFF80
+7FF7FF00
+3FE3FE00
+0F81F800
+ENDCHAR
+STARTCHAR ccedilla
+ENCODING 231
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 -7
+BITMAP
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+781E
+F81E
+F000
+F000
+F000
+F000
+F81E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+0300
+0300
+07C0
+00E0
+00E0
+0FC0
+0F80
+ENDCHAR
+STARTCHAR egrave
+ENCODING 232
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 0
+BITMAP
+0F00
+0780
+0380
+01C0
+00E0
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR eacute
+ENCODING 233
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 0
+BITMAP
+0078
+00F0
+00E0
+01C0
+0380
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR ecircumflex
+ENCODING 234
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 0
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR edieresis
+ENCODING 235
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+1E78
+1E78
+1E78
+1E78
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR igrave
+ENCODING 236
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 7 25 1 0
+BITMAP
+F0
+78
+38
+1C
+0E
+00
+00
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+1E
+ENDCHAR
+STARTCHAR iacute
+ENCODING 237
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 6 25 2 0
+BITMAP
+3C
+38
+70
+70
+E0
+00
+00
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR icircumflex
+ENCODING 238
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 25 -1 0
+BITMAP
+0C00
+1E00
+3F00
+7380
+E1C0
+0000
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR idieresis
+ENCODING 239
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 24 -1 0
+BITMAP
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR eth
+ENCODING 240
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 26 1 0
+BITMAP
+300000
+782000
+7CF000
+3FE000
+1FC000
+3FE000
+73F000
+21F800
+07FC00
+1FFE00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F80F80
+F80F80
+FC1F80
+7E3F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR ntilde
+ENCODING 241
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+0F18
+1FF8
+3FF0
+31E0
+0000
+0000
+F3F0
+F7F8
+FFFC
+FFFE
+FC3E
+F83E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR ograve
+ENCODING 242
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 0
+BITMAP
+078000
+03C000
+01C000
+01E000
+00F000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR oacute
+ENCODING 243
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+03C000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR ocircumflex
+ENCODING 244
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 0
+BITMAP
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR otilde
+ENCODING 245
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+078C00
+0FFC00
+1FF800
+18F000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR odieresis
+ENCODING 246
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+1E3C00
+1E3C00
+1E3C00
+1E3C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR divide
+ENCODING 247
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 16 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+0000
+FFFF
+FFFF
+FFFF
+FFFF
+0000
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR oslash
+ENCODING 248
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 21 18 -1 0
+BITMAP
+01FC38
+07FF70
+0FFFE0
+1FFFC0
+1F8FC0
+3E07E0
+3E0FE0
+3C1DE0
+3C39E0
+3C71E0
+3EE3E0
+3F83E0
+3F07E0
+1F8FC0
+1FFFC0
+3FFF80
+77FF00
+E1FC00
+ENDCHAR
+STARTCHAR ugrave
+ENCODING 249
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+1E00
+0F00
+0700
+0380
+01C0
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uacute
+ENCODING 250
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0700
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR ucircumflex
+ENCODING 251
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+0300
+0780
+0FC0
+1CE0
+3870
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR udieresis
+ENCODING 252
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+3C78
+3C78
+3C78
+3C78
+0000
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR yacute
+ENCODING 253
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 32 1 -7
+BITMAP
+0078
+00F0
+01E0
+01C0
+0380
+0000
+0000
+F81F
+F81F
+F81F
+781E
+7C3E
+7C3C
+3C3C
+3C3C
+3E78
+3E78
+1E78
+1FF0
+1FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR thorn
+ENCODING 254
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 32 2 -7
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F3F0
+F7FC
+FFFE
+FFFE
+FC3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+FC3E
+FFFE
+FFFC
+F7F8
+F1F0
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR ydieresis
+ENCODING 255
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 31 1 -7
+BITMAP
+1E78
+1E78
+1E78
+1E78
+0000
+0000
+F81F
+F81F
+F81F
+783E
+7C3E
+7C3C
+7C3C
+3E7C
+3E78
+3E78
+1E78
+1FF0
+1FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR Amacron
+ENCODING 256
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 29 0 0
+BITMAP
+03FF00
+03FF00
+03FF00
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR amacron
+ENCODING 257
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 22 1 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR Abreve
+ENCODING 258
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR abreve
+ENCODING 259
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR Aogonek
+ENCODING 260
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 32 0 -7
+BITMAP
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8387C
+003000
+007000
+007000
+007000
+007F00
+003F00
+001E00
+ENDCHAR
+STARTCHAR aogonek
+ENCODING 261
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 -7
+BITMAP
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F9E
+0300
+0700
+0700
+0700
+07F0
+03F0
+01E0
+ENDCHAR
+STARTCHAR Cacute
+ENCODING 262
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 1 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F8
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FE00
+ENDCHAR
+STARTCHAR cacute
+ENCODING 263
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+783E
+F01E
+F000
+F000
+F000
+F000
+F01E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+ENDCHAR
+STARTCHAR Ccircumflex
+ENCODING 264
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 1 0
+BITMAP
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F8
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FE00
+ENDCHAR
+STARTCHAR ccircumflex
+ENCODING 265
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+783E
+F01E
+F000
+F000
+F000
+F000
+F01E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+ENDCHAR
+STARTCHAR Cdotaccent
+ENCODING 266
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 30 1 0
+BITMAP
+007800
+007800
+007800
+007800
+000000
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F8
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FE00
+ENDCHAR
+STARTCHAR cdotaccent
+ENCODING 267
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 23 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+783E
+F01E
+F000
+F000
+F000
+F000
+F01E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+ENDCHAR
+STARTCHAR Ccaron
+ENCODING 268
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 1 0
+BITMAP
+038700
+01CE00
+00FC00
+007800
+003000
+000000
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F8
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FE00
+ENDCHAR
+STARTCHAR ccaron
+ENCODING 269
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+783E
+F01E
+F000
+F000
+F000
+F000
+F01E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+ENDCHAR
+STARTCHAR Dcaron
+ENCODING 270
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 2 0
+BITMAP
+0E1C00
+073800
+03F000
+01E000
+00C000
+000000
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+ENDCHAR
+STARTCHAR dcaron
+ENCODING 271
+SWIDTH 858 0
+DWIDTH 28 0
+BBX 24 25 1 0
+BITMAP
+000F0F
+000F0F
+000F0F
+000F0F
+000F03
+000F03
+000F03
+0FCF06
+1FEF0C
+3FFF00
+7FFF00
+7C3F00
+F81F00
+F00F00
+F00F00
+F00F00
+F00F00
+F00F00
+F00F00
+F81F00
+7C3F00
+7FFF00
+3FEF00
+1FEF00
+0F8F00
+ENDCHAR
+STARTCHAR Dcroat
+ENCODING 272
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 23 25 -1 0
+BITMAP
+1FFF80
+1FFFE0
+1FFFF0
+1FFFF8
+1F07F8
+1F00FC
+1F00FC
+1F007C
+1F007E
+1F003E
+1F003E
+FFF03E
+FFF03E
+FFF03E
+1F003E
+1F003E
+1F007C
+1F007C
+1F007C
+1F00F8
+1F03F8
+1FFFF0
+1FFFF0
+1FFFC0
+1FFF80
+ENDCHAR
+STARTCHAR dcroat
+ENCODING 273
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 1 0
+BITMAP
+000F
+000F
+000F
+000F
+000F
+003F
+003F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+ENDCHAR
+STARTCHAR Emacron
+ENCODING 274
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 29 2 0
+BITMAP
+1FF800
+1FF800
+1FF800
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR emacron
+ENCODING 275
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 22 1 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR Ebreve
+ENCODING 276
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+101000
+183000
+0FE000
+0FE000
+038000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR ebreve
+ENCODING 277
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0808
+0C18
+07F0
+07F0
+01C0
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR Edotaccent
+ENCODING 278
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 30 2 0
+BITMAP
+03C000
+03C000
+03C000
+03C000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR edotaccent
+ENCODING 279
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR Eogonek
+ENCODING 280
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 32 2 -7
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+018000
+038000
+038000
+038000
+03F800
+01F800
+00F000
+ENDCHAR
+STARTCHAR eogonek
+ENCODING 281
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 -7
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0300
+0700
+0700
+0700
+07F0
+03F0
+01E0
+ENDCHAR
+STARTCHAR Ecaron
+ENCODING 282
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+1C3800
+0E7000
+07E000
+03C000
+018000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR ecaron
+ENCODING 283
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR Gcircumflex
+ENCODING 284
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 31 1 0
+BITMAP
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR gcircumflex
+ENCODING 285
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 -7
+BITMAP
+00C0
+01E0
+03F0
+0738
+0E1C
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Gbreve
+ENCODING 286
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 31 1 0
+BITMAP
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR gbreve
+ENCODING 287
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 -7
+BITMAP
+0808
+0C18
+07F0
+07F0
+01C0
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Gdotaccent
+ENCODING 288
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 30 1 0
+BITMAP
+007800
+007800
+007800
+007800
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR gdotaccent
+ENCODING 289
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 1 -7
+BITMAP
+01E0
+01E0
+01E0
+01E0
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Gcommaaccent
+ENCODING 290
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 37 1 -12
+BITMAP
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+000000
+007C00
+007C00
+007C00
+007C00
+007C00
+000C00
+000C00
+001C00
+003800
+007000
+004000
+ENDCHAR
+STARTCHAR gcommaaccent
+ENCODING 291
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 35 1 -7
+BITMAP
+0060
+00C0
+0180
+0180
+0180
+01E0
+01E0
+01E0
+01E0
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Hcircumflex
+ENCODING 292
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 31 2 0
+BITMAP
+006000
+00F000
+01F800
+039C00
+070E00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR hcircumflex
+ENCODING 293
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 0
+BITMAP
+0C00
+1E00
+3F00
+7380
+E1C0
+0000
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+78F0
+7BFC
+7FFE
+7FFE
+7E1F
+7C0F
+7C0F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+ENDCHAR
+STARTCHAR Hbar
+ENCODING 294
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 25 2 0
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR hbar
+ENCODING 295
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+F000
+F000
+F000
+F000
+F000
+FE00
+FE00
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR Itilde
+ENCODING 296
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 30 -1 0
+BITMAP
+3C60
+7FE0
+FFC0
+C780
+0000
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+ENDCHAR
+STARTCHAR itilde
+ENCODING 297
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 23 -1 0
+BITMAP
+3C60
+7FE0
+FFC0
+C780
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR Imacron
+ENCODING 298
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 29 0 0
+BITMAP
+FFC0
+FFC0
+FFC0
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR imacron
+ENCODING 299
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 22 -1 0
+BITMAP
+FFC0
+FFC0
+FFC0
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR Ibreve
+ENCODING 300
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 9 31 0 0
+BITMAP
+8080
+C180
+7F00
+7F00
+1C00
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR ibreve
+ENCODING 301
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 9 24 0 0
+BITMAP
+8080
+C180
+7F00
+7F00
+1C00
+0000
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+ENDCHAR
+STARTCHAR Iogonek
+ENCODING 302
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 7 32 2 -7
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+60
+E0
+E0
+E0
+FE
+7E
+3C
+ENDCHAR
+STARTCHAR iogonek
+ENCODING 303
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 7 32 2 -7
+BITMAP
+F0
+F0
+F0
+F0
+00
+00
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+60
+E0
+E0
+E0
+FE
+7E
+3C
+ENDCHAR
+STARTCHAR Idotaccent
+ENCODING 304
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 30 2 0
+BITMAP
+78
+78
+78
+78
+00
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR dotlessi
+ENCODING 305
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 18 2 0
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR IJ
+ENCODING 306
+SWIDTH 820 0
+DWIDTH 27 0
+BBX 23 25 2 0
+BITMAP
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8F83E
+F8F83E
+F8F83E
+F8F83E
+F8F83E
+F8FC7E
+F8FFFC
+F87FFC
+F83FF8
+F80FE0
+ENDCHAR
+STARTCHAR ij
+ENCODING 307
+SWIDTH 542 0
+DWIDTH 18 0
+BBX 13 32 2 -7
+BITMAP
+F078
+F078
+F078
+F078
+0000
+0000
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+F078
+0078
+0078
+0078
+01F8
+01F8
+01F0
+01F0
+ENDCHAR
+STARTCHAR Jcircumflex
+ENCODING 308
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 31 1 0
+BITMAP
+0030
+0078
+00FC
+01CE
+0387
+0000
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+003E
+F83E
+F83E
+F83E
+F83E
+F83E
+FC7E
+FFFC
+7FFC
+3FF8
+0FE0
+ENDCHAR
+STARTCHAR jcircumflex
+ENCODING 309
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 32 -1 -7
+BITMAP
+0C00
+1E00
+3F00
+7380
+E1C0
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+7E00
+7E00
+7C00
+7C00
+ENDCHAR
+STARTCHAR Kcommaaccent
+ENCODING 310
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 37 2 -12
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+000000
+01F000
+01F000
+01F000
+01F000
+01F000
+003000
+003000
+007000
+00E000
+01C000
+010000
+ENDCHAR
+STARTCHAR kcommaaccent
+ENCODING 311
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 37 2 -12
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+0000
+07C0
+07C0
+07C0
+07C0
+07C0
+00C0
+00C0
+01C0
+0380
+0700
+0400
+ENDCHAR
+STARTCHAR kgreenlandic
+ENCODING 312
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 18 2 0
+BITMAP
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+ENDCHAR
+STARTCHAR Lacute
+ENCODING 313
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 2 0
+BITMAP
+0F00
+1E00
+1C00
+3800
+3800
+0000
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR lacute
+ENCODING 314
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 6 31 2 0
+BITMAP
+3C
+78
+70
+E0
+E0
+00
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR Lcommaaccent
+ENCODING 315
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 37 2 -12
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+0000
+07C0
+07C0
+07C0
+07C0
+07C0
+00C0
+00C0
+01C0
+0380
+0700
+0400
+ENDCHAR
+STARTCHAR lcommaaccent
+ENCODING 316
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 37 2 -12
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+00
+F8
+F8
+F8
+F8
+F8
+18
+18
+38
+70
+E0
+80
+ENDCHAR
+STARTCHAR Lcaron
+ENCODING 317
+SWIDTH 858 0
+DWIDTH 28 0
+BBX 23 25 2 0
+BITMAP
+F8001E
+F8001E
+F8001E
+F8001E
+F80006
+F80006
+F80006
+F8000C
+F80018
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+ENDCHAR
+STARTCHAR lcaron
+ENCODING 318
+SWIDTH 542 0
+DWIDTH 18 0
+BBX 13 25 2 0
+BITMAP
+F078
+F078
+F078
+F078
+F018
+F018
+F018
+F030
+F060
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR Ldot
+ENCODING 319
+SWIDTH 858 0
+DWIDTH 28 0
+BBX 23 25 2 0
+BITMAP
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F8000C
+F8001E
+F8001E
+F8001E
+F8000C
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+ENDCHAR
+STARTCHAR ldot
+ENCODING 320
+SWIDTH 542 0
+DWIDTH 18 0
+BBX 13 25 2 0
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F030
+F078
+F078
+F078
+F030
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR Lslash
+ENCODING 321
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 25 0 0
+BITMAP
+1F0000
+1F0000
+1F0000
+1F0000
+1F0000
+1F0000
+1F0000
+1F2000
+1FE000
+1FE000
+1FC000
+1F0000
+3F0000
+FF0000
+FF0000
+DF0000
+1F0000
+1F0000
+1F0000
+1F0000
+1F0000
+1FFFE0
+1FFFE0
+1FFFE0
+1FFFE0
+ENDCHAR
+STARTCHAR lslash
+ENCODING 322
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 8 25 0 0
+BITMAP
+3C
+3C
+3C
+3C
+3C
+3C
+3D
+3F
+3F
+3E
+3C
+3C
+7C
+FC
+FC
+BC
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+3C
+ENDCHAR
+STARTCHAR Nacute
+ENCODING 323
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR nacute
+ENCODING 324
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+01E0
+03C0
+0380
+0700
+0700
+0000
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR Ncommaaccent
+ENCODING 325
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 37 2 -12
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+000000
+01F000
+01F000
+01F000
+01F000
+01F000
+003000
+003000
+007000
+00E000
+01C000
+010000
+ENDCHAR
+STARTCHAR ncommaaccent
+ENCODING 326
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 30 2 -12
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+07C0
+07C0
+07C0
+07C0
+07C0
+00C0
+00C0
+01C0
+0380
+0700
+0400
+ENDCHAR
+STARTCHAR Ncaron
+ENCODING 327
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+0E1C00
+073800
+03F000
+01E000
+00C000
+000000
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR ncaron
+ENCODING 328
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+3870
+1CE0
+0FC0
+0780
+0300
+0000
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR napostrophe
+ENCODING 329
+SWIDTH 875 0
+DWIDTH 29 0
+BBX 24 25 2 0
+BITMAP
+F00000
+F00000
+F00000
+F00000
+300000
+300000
+300000
+6078F8
+C07BFE
+007FFE
+007FFF
+007E1F
+007C0F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+00780F
+ENDCHAR
+STARTCHAR Eng
+ENCODING 330
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 32 2 -7
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+0001E0
+0001E0
+0001E0
+0007E0
+0007E0
+0007C0
+0007C0
+ENDCHAR
+STARTCHAR eng
+ENCODING 331
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 -7
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+001E
+001E
+001E
+007E
+007E
+007C
+007C
+ENDCHAR
+STARTCHAR Omacron
+ENCODING 332
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 29 1 0
+BITMAP
+01FF80
+01FF80
+01FF80
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR omacron
+ENCODING 333
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 22 1 0
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Obreve
+ENCODING 334
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR obreve
+ENCODING 335
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+080800
+0C1800
+07F000
+07F000
+01C000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR Ohungarumlaut
+ENCODING 336
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+0071C0
+00F3C0
+00E380
+01C700
+018600
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR ohungarumlaut
+ENCODING 337
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+038E00
+079E00
+071C00
+0E3800
+0C3000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR OE
+ENCODING 338
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 29 25 1 0
+BITMAP
+03FBFFF8
+07FFFFF8
+0FFFFFF8
+1FFFFFF8
+3F8FFFF8
+3F07E000
+7E03E000
+7C03E000
+7C03E000
+F803E000
+F803E000
+F803FFF0
+F803FFF0
+F803FFF0
+F803FFF0
+F803E000
+7803E000
+7C03E000
+7C03E000
+7E03E000
+3F0FE000
+3FFFFFF8
+1FFFFFF8
+0FFFFFF8
+03FBFFF8
+ENDCHAR
+STARTCHAR oe
+ENCODING 339
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 28 19 1 0
+BITMAP
+07E03E00
+1FF8FF80
+3FFDFFC0
+3FFFFFE0
+7E7FE3E0
+7C1FC1F0
+F81F80F0
+F80F80F0
+F00FFFF0
+F00FFFF0
+F00FFFF0
+F00F8000
+F81F8000
+F81FC1F0
+7C3FC1F0
+7FFFFFE0
+3FFDFFC0
+1FF8FF80
+07E03E00
+ENDCHAR
+STARTCHAR Racute
+ENCODING 340
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR racute
+ENCODING 341
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 24 2 0
+BITMAP
+0780
+0F00
+0E00
+1C00
+1C00
+0000
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR Rcommaaccent
+ENCODING 342
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 37 2 -12
+BITMAP
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+000000
+01F000
+01F000
+01F000
+01F000
+01F000
+003000
+003000
+007000
+00E000
+01C000
+010000
+ENDCHAR
+STARTCHAR rcommaaccent
+ENCODING 343
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 30 2 -12
+BITMAP
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+0000
+7C00
+7C00
+7C00
+7C00
+7C00
+0C00
+0C00
+1C00
+3800
+7000
+4000
+ENDCHAR
+STARTCHAR Rcaron
+ENCODING 344
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+0E1C00
+073800
+03F000
+01E000
+00C000
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR rcaron
+ENCODING 345
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 24 2 0
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR Sacute
+ENCODING 346
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 31 1 0
+BITMAP
+003C00
+007800
+007000
+00E000
+00E000
+000000
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+ENDCHAR
+STARTCHAR sacute
+ENCODING 347
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 24 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Scircumflex
+ENCODING 348
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 31 1 0
+BITMAP
+006000
+00F000
+01F800
+039C00
+070E00
+000000
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+ENDCHAR
+STARTCHAR scircumflex
+ENCODING 349
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 24 1 0
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Scedilla
+ENCODING 350
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 32 1 -7
+BITMAP
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+006000
+006000
+00F800
+003C00
+001C00
+01F800
+01F000
+ENDCHAR
+STARTCHAR scedilla
+ENCODING 351
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 25 1 -7
+BITMAP
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+0180
+0180
+03E0
+00F0
+0070
+07E0
+07C0
+ENDCHAR
+STARTCHAR Scaron
+ENCODING 352
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 27 2 0
+BITMAP
+1C3800
+0E7000
+07E000
+03C000
+018000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+FC3F00
+F80F00
+FE0000
+7FC000
+7FFC00
+1FFF00
+01FF80
+001FC0
+F007C0
+F007C0
+F807C0
+FC1F80
+7FFF80
+3FFF00
+1FFE00
+07F000
+ENDCHAR
+STARTCHAR scaron
+ENCODING 353
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+0000
+0FF0
+1FFC
+3FFE
+7E7E
+781E
+781E
+7F00
+7FF0
+3FFC
+1FFE
+03FF
+003F
+F81F
+F81F
+7F3E
+7FFE
+3FFC
+0FF8
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 354
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 32 0 -7
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+00C000
+00C000
+01F000
+007800
+003800
+03F000
+03E000
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 355
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 29 1 -7
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+0C00
+0C00
+1F00
+0780
+0380
+3F00
+3E00
+ENDCHAR
+STARTCHAR Tcaron
+ENCODING 356
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 31 0 0
+BITMAP
+070E00
+039C00
+01F800
+00F000
+006000
+000000
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR tcaron
+ENCODING 357
+SWIDTH 594 0
+DWIDTH 19 0
+BBX 15 25 1 0
+BITMAP
+001E
+001E
+001E
+3C1E
+3C06
+3C06
+3C06
+FF8C
+FF98
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+ENDCHAR
+STARTCHAR Tbar
+ENCODING 358
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 25 0 0
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR tbar
+ENCODING 359
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 22 1 0
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3E00
+3E00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+ENDCHAR
+STARTCHAR Utilde
+ENCODING 360
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 0
+BITMAP
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR utilde
+ENCODING 361
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 0
+BITMAP
+0F18
+1FF8
+3FF0
+31E0
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Umacron
+ENCODING 362
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 29 2 0
+BITMAP
+07FE00
+07FE00
+07FE00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR umacron
+ENCODING 363
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 22 2 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Ubreve
+ENCODING 364
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+040400
+060C00
+03F800
+03F800
+00E000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR ubreve
+ENCODING 365
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Uring
+ENCODING 366
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 32 2 0
+BITMAP
+00E000
+01B000
+011000
+011000
+01B000
+00E000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uring
+ENCODING 367
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 0
+BITMAP
+0380
+06C0
+0440
+0440
+06C0
+0380
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Uhungarumlaut
+ENCODING 368
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+01C700
+03CF00
+038E00
+071C00
+061800
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uhungarumlaut
+ENCODING 369
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+071C
+0F3C
+0E38
+1C70
+1860
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Uogonek
+ENCODING 370
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 32 2 -7
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+00C000
+01C000
+01C000
+01C000
+01FC00
+00FC00
+007800
+ENDCHAR
+STARTCHAR uogonek
+ENCODING 371
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 -7
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F9E
+0300
+0700
+0700
+0700
+07F0
+03F0
+01E0
+ENDCHAR
+STARTCHAR Wcircumflex
+ENCODING 372
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 31 1 0
+BITMAP
+00030000
+00078000
+000FC000
+001CE000
+00387000
+00000000
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR wcircumflex
+ENCODING 373
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 24 0 0
+BITMAP
+000C0000
+001E0000
+003F0000
+00738000
+00E1C000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR Ycircumflex
+ENCODING 374
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 31 1 0
+BITMAP
+006000
+00F000
+01F800
+039C00
+070E00
+000000
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR ycircumflex
+ENCODING 375
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 31 1 -7
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR Ydieresis
+ENCODING 376
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 27 1 0
+BITMAP
+0F3C00
+0F3C00
+0F3C00
+0F3C00
+000000
+000000
+000000
+F001E0
+F803E0
+7C07C0
+3E0F80
+1F1F00
+0FBE00
+07FC00
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR Zacute
+ENCODING 377
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 31 1 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR zacute
+ENCODING 378
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 24 1 0
+BITMAP
+01E0
+03C0
+0380
+0700
+0700
+0000
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR Zdotaccent
+ENCODING 379
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 30 1 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR zdotaccent
+ENCODING 380
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 23 1 0
+BITMAP
+0780
+0780
+0780
+0780
+0000
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR Zcaron
+ENCODING 381
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 27 1 0
+BITMAP
+1C3800
+0E7000
+07E000
+03C000
+018000
+000000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+003F00
+007E00
+00FC00
+01F800
+03F000
+07E000
+0FC000
+1F8000
+3F0000
+7E0000
+FC0000
+F80000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR zcaron
+ENCODING 382
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 25 1 0
+BITMAP
+3870
+1CE0
+0FC0
+0780
+0300
+0000
+0000
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7E00
+FC00
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR uni0186
+ENCODING 390
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 25 1 0
+BITMAP
+03FC00
+0FFF00
+1FFF80
+3FFFC0
+7F0FE0
+7C03E0
+FC03F0
+F801F0
+F801F0
+0000F8
+0000F8
+0000F8
+0000F8
+0000F8
+0000F8
+0000F8
+F801F0
+F801F0
+FC01F0
+7C03E0
+7F0FE0
+3FFFC0
+1FFF80
+0FFF00
+03FC00
+ENDCHAR
+STARTCHAR uni0189
+ENCODING 393
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 23 25 -1 0
+BITMAP
+1FFF80
+1FFFE0
+1FFFF0
+1FFFF8
+1F07F8
+1F00FC
+1F00FC
+1F007C
+1F007E
+1F003E
+1F003E
+FFF03E
+FFF03E
+FFF03E
+1F003E
+1F003E
+1F007C
+1F007C
+1F007C
+1F00F8
+1F03F8
+1FFFF0
+1FFFF0
+1FFFC0
+1FFF80
+ENDCHAR
+STARTCHAR uni018E
+ENCODING 398
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+3FFFC0
+3FFFC0
+3FFFC0
+3FFFC0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+7FFFC0
+7FFFC0
+7FFFC0
+7FFFC0
+ENDCHAR
+STARTCHAR florin
+ENCODING 402
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 32 1 -7
+BITMAP
+003F
+007F
+007F
+00FF
+00F0
+01F0
+01F0
+01E0
+01E0
+3FFE
+3FFE
+3FFE
+03E0
+03C0
+03C0
+07C0
+07C0
+07C0
+07C0
+07C0
+0780
+0780
+0F80
+0F80
+0F80
+0F80
+0F00
+1F00
+FF00
+FE00
+FC00
+F800
+ENDCHAR
+STARTCHAR uni0197
+ENCODING 407
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 25 2 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR uni019A
+ENCODING 410
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 25 2 0
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F8
+F8
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR uni019D
+ENCODING 413
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 32 0 -7
+BITMAP
+3E00F8
+3F00F8
+3F00F8
+3F80F8
+3F80F8
+3FC0F8
+3FC0F8
+3FE0F8
+3FF0F8
+3EF0F8
+3EF8F8
+3E78F8
+3E7CF8
+3E3CF8
+3E3EF8
+3E1EF8
+3E0FF8
+3E0FF8
+3C07F8
+3C07F8
+3C03F8
+3C03F8
+3C01F8
+3C01F8
+3C00F8
+3C0000
+3C0000
+3C0000
+FC0000
+FC0000
+F80000
+F80000
+ENDCHAR
+STARTCHAR uni019F
+ENCODING 415
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 25 1 0
+BITMAP
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+FFFFFE
+FFFFFE
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR Ohorn
+ENCODING 416
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 25 25 1 0
+BITMAP
+01FF0780
+07FFC780
+0FFFE780
+1FFFF780
+3FC7F980
+3F01F980
+7E00FD80
+7C007F00
+7C007E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+7C007C00
+7C007C00
+7E00FC00
+3F01F800
+3FC7F800
+1FFFF000
+0FFFE000
+07FFC000
+01FF0000
+ENDCHAR
+STARTCHAR ohorn
+ENCODING 417
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 18 1 0
+BITMAP
+07F1E0
+1FFDE0
+3FFFE0
+7FFFE0
+7C1F60
+F80FE0
+F80FE0
+F007C0
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni01A7
+ENCODING 423
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 25 1 0
+BITMAP
+03F800
+0FFE00
+1FFF00
+3FFF80
+3F0F80
+7C07C0
+7C03C0
+7803C0
+0007C0
+001FC0
+01FF80
+0FFF80
+3FFF00
+7FF800
+7F8000
+FC0000
+F80000
+F803E0
+F803E0
+F807C0
+7E0FC0
+7FFF80
+3FFF00
+1FFE00
+03F800
+ENDCHAR
+STARTCHAR uni01A8
+ENCODING 424
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 18 1 0
+BITMAP
+0FE0
+3FF8
+7FFC
+7C3E
+F81E
+F81E
+003E
+03FE
+1FFC
+7FF0
+FFC0
+FC00
+F01F
+F01F
+F83E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni01AE
+ENCODING 430
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 32 0 -7
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00F000
+00FC00
+00FC00
+007C00
+007C00
+ENDCHAR
+STARTCHAR Uhorn
+ENCODING 431
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 25 2 0
+BITMAP
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uhorn
+ENCODING 432
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 18 18 2 0
+BITMAP
+F01FC0
+F01FC0
+F01FC0
+F01FC0
+F01EC0
+F01EC0
+F01EC0
+F01F80
+F01F00
+F01E00
+F01E00
+F01E00
+F83E00
+F87E00
+FFFE00
+7FFE00
+7FDE00
+1F1E00
+ENDCHAR
+STARTCHAR uni01B5
+ENCODING 437
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 0
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR uni01B6
+ENCODING 438
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 18 1 0
+BITMAP
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1FC0
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR uni01BB
+ENCODING 443
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+0FE0
+3FF8
+7FFC
+7FFE
+FC7E
+F83F
+F81F
+F01F
+F01F
+003F
+003E
+FFFF
+FFFF
+01F8
+07F0
+0FE0
+1F80
+3F00
+7E00
+FC00
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR uni01BC
+ENCODING 444
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+3FFC
+3FFC
+3FFC
+3FFC
+3800
+7800
+7800
+7800
+7BE0
+7FF8
+7FFC
+7FFC
+787E
+003E
+003E
+001E
+001E
+F03E
+F03E
+F87C
+7FFC
+7FF8
+3FF0
+0FC0
+ENDCHAR
+STARTCHAR uni01C0
+ENCODING 448
+SWIDTH 280 0
+DWIDTH 9 0
+BBX 3 31 3 -6
+BITMAP
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+E0
+ENDCHAR
+STARTCHAR uni01C2
+ENCODING 450
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 31 2 -7
+BITMAP
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+FFFE
+FFFE
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+FFFE
+FFFE
+FFFE
+FFFE
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+0380
+ENDCHAR
+STARTCHAR uni01C3
+ENCODING 451
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 25 3 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+70
+70
+70
+70
+70
+70
+70
+00
+00
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR uni01CD
+ENCODING 461
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+038700
+01CE00
+00FC00
+007800
+003000
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni01CE
+ENCODING 462
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni01CF
+ENCODING 463
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 31 0 0
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni01D0
+ENCODING 464
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 24 -1 0
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni01D1
+ENCODING 465
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+01C380
+00E700
+007E00
+003C00
+001800
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni01D2
+ENCODING 466
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+0E1C00
+073800
+03F000
+01E000
+00C000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni01D3
+ENCODING 467
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+070E00
+039C00
+01F800
+00F000
+006000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni01D4
+ENCODING 468
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni01D5
+ENCODING 469
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 35 2 0
+BITMAP
+07FE00
+07FE00
+07FE00
+000000
+0F1E00
+0F1E00
+0F1E00
+0F1E00
+000000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni01D6
+ENCODING 470
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 29 2 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+3C78
+3C78
+3C78
+3C78
+0000
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni01D7
+ENCODING 471
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 37 2 0
+BITMAP
+003C00
+007800
+007000
+00E000
+00E000
+000000
+0F1E00
+0F1E00
+0F1E00
+0F1E00
+000000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni01D8
+ENCODING 472
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 31 2 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+3C78
+3C78
+3C78
+3C78
+0000
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni01D9
+ENCODING 473
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 37 2 0
+BITMAP
+070E00
+039C00
+01F800
+00F000
+006000
+000000
+0F1E00
+0F1E00
+0F1E00
+0F1E00
+000000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni01DA
+ENCODING 474
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 31 2 0
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+3C78
+3C78
+3C78
+3C78
+0000
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni01DB
+ENCODING 475
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 37 2 0
+BITMAP
+01C000
+01E000
+00E000
+00F000
+007000
+000000
+0F1E00
+0F1E00
+0F1E00
+0F1E00
+000000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni01DC
+ENCODING 476
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 31 2 0
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+3C78
+3C78
+3C78
+3C78
+0000
+0000
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni01DD
+ENCODING 477
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+03E0
+0FF8
+3FFC
+3FFE
+7C3E
+781F
+000F
+000F
+FFFF
+FFFF
+FFFF
+F80F
+F81F
+7C3E
+7FFE
+3FFC
+1FF8
+07E0
+ENDCHAR
+STARTCHAR uni01DE
+ENCODING 478
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 35 0 0
+BITMAP
+03FF00
+03FF00
+03FF00
+000000
+03CF00
+03CF00
+03CF00
+03CF00
+000000
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni01DF
+ENCODING 479
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 28 1 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+1E78
+1E78
+1E78
+1E78
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni01E0
+ENCODING 480
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 34 0 0
+BITMAP
+03FF00
+03FF00
+03FF00
+000000
+007800
+007800
+007800
+007800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni01E1
+ENCODING 481
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 27 1 0
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+03C0
+03C0
+03C0
+03C0
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni01E2
+ENCODING 482
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 31 29 0 0
+BITMAP
+000FFC00
+000FFC00
+000FFC00
+00000000
+00FFFFFC
+00FFFFFC
+00FFFFFC
+01FFFFFC
+01F3C000
+01E3C000
+03E3C000
+03E3C000
+03C3C000
+07C3C000
+07C3C000
+07C3FFF8
+0F83FFF8
+0F83FFF8
+0F83FFF8
+1F03C000
+1FFFC000
+1FFFC000
+3FFFC000
+3FFFC000
+3E03C000
+7C03FFFE
+7C03FFFE
+F803FFFE
+F803FFFE
+ENDCHAR
+STARTCHAR uni01E3
+ENCODING 483
+SWIDTH 889 0
+DWIDTH 29 0
+BBX 26 23 1 0
+BITMAP
+00FFC000
+00FFC000
+00FFC000
+00000000
+07E0F800
+1FFBFE00
+3FFFFF00
+3FFFFF00
+7C3F0F80
+781E0780
+781E07C0
+003E07C0
+07FFFFC0
+3FFFFFC0
+7FFFFFC0
+7C1E0000
+F81E0000
+F81E07C0
+FC3F0FC0
+FFFFFF80
+7FF7FF00
+3FE3FE00
+0F81F800
+ENDCHAR
+STARTCHAR uni01E4
+ENCODING 484
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 25 1 0
+BITMAP
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR uni01E5
+ENCODING 485
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 1 -7
+BITMAP
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+FFFF
+FFFF
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR Gcaron
+ENCODING 486
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 31 1 0
+BITMAP
+038700
+01CE00
+00FC00
+007800
+003000
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR gcaron
+ENCODING 487
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 -7
+BITMAP
+0E1C
+0738
+03F0
+01E0
+00C0
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni01E8
+ENCODING 488
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 31 2 0
+BITMAP
+0E1C00
+073800
+03F000
+01E000
+00C000
+000000
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+ENDCHAR
+STARTCHAR uni01E9
+ENCODING 489
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 31 1 0
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+781F
+783E
+787C
+78F8
+79F0
+7BE0
+7FC0
+7FE0
+7FE0
+7FF0
+7FF0
+7CF8
+78F8
+787C
+783C
+783E
+781F
+781F
+ENDCHAR
+STARTCHAR uni01EA
+ENCODING 490
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 32 1 -7
+BITMAP
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+003000
+007000
+007000
+007000
+007F00
+003F00
+001E00
+ENDCHAR
+STARTCHAR uni01EB
+ENCODING 491
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 1 -7
+BITMAP
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+018000
+038000
+038000
+038000
+03F800
+01F800
+00F000
+ENDCHAR
+STARTCHAR uni01EC
+ENCODING 492
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 36 1 -7
+BITMAP
+01FF80
+01FF80
+01FF80
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+003000
+007000
+007000
+007000
+007F00
+003F00
+001E00
+ENDCHAR
+STARTCHAR uni01ED
+ENCODING 493
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 29 1 -7
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+018000
+038000
+038000
+038000
+03F800
+01F800
+00F000
+ENDCHAR
+STARTCHAR uni01F0
+ENCODING 496
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 32 -1 -7
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+7E00
+7E00
+7C00
+7C00
+ENDCHAR
+STARTCHAR uni01F4
+ENCODING 500
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 31 1 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR uni01F5
+ENCODING 501
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 -7
+BITMAP
+0078
+00F0
+00E0
+01C0
+01C0
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni01F8
+ENCODING 504
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+038000
+03C000
+01C000
+01E000
+00E000
+000000
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni01F9
+ENCODING 505
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+0E00
+0F00
+0700
+0780
+0380
+0000
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR Aringacute
+ENCODING 506
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 37 0 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+007800
+00CC00
+008400
+008400
+00CC00
+007800
+000000
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR aringacute
+ENCODING 507
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 31 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+03C0
+0660
+0420
+0420
+0660
+03C0
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR AEacute
+ENCODING 508
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 31 31 0 0
+BITMAP
+00007800
+0000F000
+0000E000
+0001C000
+0001C000
+00000000
+00FFFFFC
+00FFFFFC
+00FFFFFC
+01FFFFFC
+01F3C000
+01E3C000
+03E3C000
+03E3C000
+03C3C000
+07C3C000
+07C3C000
+07C3FFF8
+0F83FFF8
+0F83FFF8
+0F83FFF8
+1F03C000
+1FFFC000
+1FFFC000
+3FFFC000
+3FFFC000
+3E03C000
+7C03FFFE
+7C03FFFE
+F803FFFE
+F803FFFE
+ENDCHAR
+STARTCHAR aeacute
+ENCODING 509
+SWIDTH 889 0
+DWIDTH 29 0
+BBX 26 25 1 0
+BITMAP
+00078000
+000F0000
+000E0000
+001C0000
+001C0000
+00000000
+07E0F800
+1FFBFE00
+3FFFFF00
+3FFFFF00
+7C3F0F80
+781E0780
+781E07C0
+003E07C0
+07FFFFC0
+3FFFFFC0
+7FFFFFC0
+7C1E0000
+F81E0000
+F81E07C0
+FC3F0FC0
+FFFFFF80
+7FF7FF00
+3FE3FE00
+0F81F800
+ENDCHAR
+STARTCHAR Oslashacute
+ENCODING 510
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 24 31 1 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+01FF07
+07FFCE
+0FFFFC
+1FFFF8
+3FC7F8
+3F00F8
+7E01FC
+7C03FC
+7C07BC
+F8073E
+F80E3E
+F81C3E
+F8383E
+F8703E
+F8E03E
+F8E03E
+7DC07C
+7F807C
+7F00FC
+3F01F8
+3FC7F8
+3FFFF0
+3FFFE0
+77FFC0
+E1FF00
+ENDCHAR
+STARTCHAR oslashacute
+ENCODING 511
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 21 24 -1 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+01FC38
+07FF70
+0FFFE0
+1FFFC0
+1F8FC0
+3E07E0
+3E0FE0
+3C1DE0
+3C39E0
+3C71E0
+3EE3E0
+3F83E0
+3F07E0
+1F8FC0
+1FFFC0
+3FFF80
+77FF00
+E1FC00
+ENDCHAR
+STARTCHAR uni0200
+ENCODING 512
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+071C00
+079E00
+038E00
+01C700
+00C300
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni0201
+ENCODING 513
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+71C0
+79E0
+38E0
+1C70
+0C30
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni0202
+ENCODING 514
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+003800
+00FE00
+00FE00
+018300
+010100
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni0203
+ENCODING 515
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 24 1 0
+BITMAP
+0380
+0FE0
+0FE0
+1830
+1010
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni0204
+ENCODING 516
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+38E000
+3CF000
+1C7000
+0E3800
+061800
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni0205
+ENCODING 517
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+38E0
+3CF0
+1C70
+0E38
+0618
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni0206
+ENCODING 518
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+038000
+0FE000
+0FE000
+183000
+101000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni0207
+ENCODING 519
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 0
+BITMAP
+01C0
+07F0
+07F0
+0C18
+0808
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni0208
+ENCODING 520
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 31 -2 0
+BITMAP
+E380
+F3C0
+71C0
+38E0
+1860
+0000
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+0F80
+ENDCHAR
+STARTCHAR uni0209
+ENCODING 521
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 24 -2 0
+BITMAP
+E380
+F3C0
+71C0
+38E0
+1860
+0000
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+ENDCHAR
+STARTCHAR uni020A
+ENCODING 522
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 9 31 0 0
+BITMAP
+1C00
+7F00
+7F00
+C180
+8080
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni020B
+ENCODING 523
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 9 24 0 0
+BITMAP
+1C00
+7F00
+7F00
+C180
+8080
+0000
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+ENDCHAR
+STARTCHAR uni020C
+ENCODING 524
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+071C00
+079E00
+038E00
+01C700
+00C300
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni020D
+ENCODING 525
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+38E000
+3CF000
+1C7000
+0E3800
+061800
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni020E
+ENCODING 526
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 31 1 0
+BITMAP
+003800
+00FE00
+00FE00
+018300
+010100
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni020F
+ENCODING 527
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 24 1 0
+BITMAP
+01C000
+07F000
+07F000
+0C1800
+080800
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni0210
+ENCODING 528
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+1C7000
+1E7800
+0E3800
+071C00
+030C00
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni0211
+ENCODING 529
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 11 24 1 0
+BITMAP
+E380
+F3C0
+71C0
+38E0
+1860
+0000
+7860
+79E0
+7BE0
+7FE0
+7FE0
+7E00
+7C00
+7C00
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+ENDCHAR
+STARTCHAR uni0212
+ENCODING 530
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+00E000
+03F800
+03F800
+060C00
+040400
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni0213
+ENCODING 531
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 24 2 0
+BITMAP
+1C00
+7F00
+7F00
+C180
+8080
+0000
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR uni0214
+ENCODING 532
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+1C7000
+1E7800
+0E3800
+071C00
+030C00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni0215
+ENCODING 533
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+71C0
+79E0
+38E0
+1C70
+0C30
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni0216
+ENCODING 534
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 0
+BITMAP
+00E000
+03F800
+03F800
+060C00
+040400
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni0217
+ENCODING 535
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 0
+BITMAP
+0380
+0FE0
+0FE0
+1830
+1010
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR Scommaaccent
+ENCODING 536
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 37 1 -12
+BITMAP
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+000000
+01F000
+01F000
+01F000
+01F000
+01F000
+003000
+003000
+007000
+00E000
+01C000
+010000
+ENDCHAR
+STARTCHAR scommaaccent
+ENCODING 537
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 30 1 -12
+BITMAP
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+0000
+03E0
+03E0
+03E0
+03E0
+03E0
+0060
+0060
+00E0
+01C0
+0380
+0200
+ENDCHAR
+STARTCHAR Tcommaaccent
+ENCODING 538
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 37 0 -12
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+000000
+01F000
+01F000
+01F000
+01F000
+01F000
+003000
+003000
+007000
+00E000
+01C000
+010000
+ENDCHAR
+STARTCHAR tcommaaccent
+ENCODING 539
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 34 1 -12
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+0000
+1F00
+1F00
+1F00
+1F00
+1F00
+0300
+0300
+0700
+0E00
+1C00
+1000
+ENDCHAR
+STARTCHAR uni021E
+ENCODING 542
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 31 2 0
+BITMAP
+070E00
+039C00
+01F800
+00F000
+006000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR uni021F
+ENCODING 543
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 0
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+0000
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+78F0
+7BFC
+7FFE
+7FFE
+7E1F
+7C0F
+7C0F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+ENDCHAR
+STARTCHAR uni0226
+ENCODING 550
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 30 0 0
+BITMAP
+007800
+007800
+007800
+007800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni0227
+ENCODING 551
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 23 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni0228
+ENCODING 552
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 32 2 -7
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+018000
+018000
+03E000
+00F000
+007000
+07E000
+07C000
+ENDCHAR
+STARTCHAR uni0229
+ENCODING 553
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 25 1 -7
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0180
+0180
+03E0
+00F0
+0070
+07E0
+07C0
+ENDCHAR
+STARTCHAR uni022A
+ENCODING 554
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 35 1 0
+BITMAP
+01FF80
+01FF80
+01FF80
+000000
+01E780
+01E780
+01E780
+01E780
+000000
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni022B
+ENCODING 555
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 28 1 0
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+1E3C00
+1E3C00
+1E3C00
+1E3C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni022C
+ENCODING 556
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 34 1 0
+BITMAP
+01FF80
+01FF80
+01FF80
+000000
+0078C0
+00FFC0
+01FF80
+018F00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni022D
+ENCODING 557
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 28 1 0
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+078C00
+0FFC00
+1FF800
+18F000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni022E
+ENCODING 558
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 30 1 0
+BITMAP
+003C00
+003C00
+003C00
+003C00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni022F
+ENCODING 559
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 23 1 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni0230
+ENCODING 560
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 34 1 0
+BITMAP
+01FF80
+01FF80
+01FF80
+000000
+003C00
+003C00
+003C00
+003C00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni0231
+ENCODING 561
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 27 1 0
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+01E000
+01E000
+01E000
+01E000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni0232
+ENCODING 562
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 29 1 0
+BITMAP
+07FE00
+07FE00
+07FE00
+000000
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR uni0233
+ENCODING 563
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 29 1 -7
+BITMAP
+1FF8
+1FF8
+1FF8
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR uni0250
+ENCODING 592
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 18 1 0
+BITMAP
+F1F8
+F7FC
+FFFE
+FFFE
+FC3E
+F81E
+F03E
+F03E
+F1FC
+FFF8
+FFE0
+FE00
+F03E
+F03E
+F87C
+7FFC
+7FF8
+1FE0
+ENDCHAR
+STARTCHAR uni0254
+ENCODING 596
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 18 1 0
+BITMAP
+0FC0
+3FF0
+7FF8
+7FF8
+F87C
+F83C
+F01E
+001E
+001E
+001E
+001E
+F01E
+F03E
+F87C
+7FFC
+3FF8
+3FF0
+0FC0
+ENDCHAR
+STARTCHAR uni0258
+ENCODING 600
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F80F
+FFFF
+FFFF
+FFFF
+000F
+000F
+781F
+7C3E
+3FFE
+3FFC
+0FF8
+03E0
+ENDCHAR
+STARTCHAR uni0259
+ENCODING 601
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 18 1 0
+BITMAP
+03E0
+0FF8
+3FFC
+3FFE
+7C3E
+781F
+000F
+000F
+FFFF
+FFFF
+FFFF
+F80F
+F81F
+7C3E
+7FFE
+3FFC
+1FF8
+07E0
+ENDCHAR
+STARTCHAR uni025F
+ENCODING 607
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 25 0 -7
+BITMAP
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+FFC0
+FFC0
+FFC0
+1E00
+1E00
+1E00
+3E00
+FE00
+FC00
+F800
+ENDCHAR
+STARTCHAR uni0265
+ENCODING 613
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 -7
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F03E
+F03E
+F87E
+7FFE
+7FFE
+3FDE
+0F1E
+001E
+001E
+001E
+001E
+001E
+001E
+001E
+ENDCHAR
+STARTCHAR uni0275
+ENCODING 629
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 18 1 0
+BITMAP
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+FFFF80
+FFFF80
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni0279
+ENCODING 633
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 18 2 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+07C0
+07C0
+0FC0
+FFC0
+FFC0
+FBC0
+F3C0
+C3C0
+ENDCHAR
+STARTCHAR uni0287
+ENCODING 647
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 22 1 0
+BITMAP
+F800
+FC00
+FE00
+FE00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+FF80
+FF80
+FF80
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni0288
+ENCODING 648
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 29 1 -7
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F00
+3F00
+1F00
+1F00
+ENDCHAR
+STARTCHAR uni0289
+ENCODING 649
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 18 2 0
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+FFFE
+FFFE
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni028C
+ENCODING 652
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 17 18 0 0
+BITMAP
+03E000
+03E000
+07F000
+07F000
+07F000
+0F7800
+0F7800
+0F7800
+1E3C00
+1E3C00
+1E3C00
+3E3E00
+3C1E00
+3C1E00
+7C1F00
+7C1F00
+F80F80
+F80F80
+ENDCHAR
+STARTCHAR uni028D
+ENCODING 653
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 18 0 0
+BITMAP
+0780F000
+0780F000
+0FC1F800
+0FC1F800
+0FC1F800
+1FE3FC00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+3CF79E00
+3C771E00
+3C7F1E00
+3C7F1E00
+7C7F1F00
+7C3E1F00
+783E0F00
+F83E0F80
+F83E0F80
+ENDCHAR
+STARTCHAR uni028E
+ENCODING 654
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 25 1 0
+BITMAP
+003C
+00FC
+00FC
+01FC
+01F0
+03E0
+03E0
+03E0
+07E0
+07E0
+07F0
+0FF0
+0FF0
+0FF8
+1E78
+1E78
+1E7C
+3E7C
+3C3C
+3C3E
+7C3E
+7C1E
+781F
+F81F
+F81F
+ENDCHAR
+STARTCHAR uni029E
+ENCODING 670
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 25 2 -7
+BITMAP
+F81E
+F81E
+7C1E
+3C1E
+3E1E
+1F1E
+1F3E
+0FFE
+0FFE
+07FE
+07FE
+03FE
+07DE
+0F9E
+1F1E
+3E1E
+7C1E
+F81E
+001E
+001E
+001E
+001E
+001E
+001E
+001E
+ENDCHAR
+STARTCHAR uni02BB
+ENCODING 699
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+30
+60
+C0
+C0
+C0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR afii57929
+ENCODING 700
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+30
+30
+30
+60
+C0
+ENDCHAR
+STARTCHAR afii64937
+ENCODING 701
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+C0
+C0
+C0
+60
+30
+ENDCHAR
+STARTCHAR circumflex
+ENCODING 710
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 5 0 20
+BITMAP
+0C00
+1E00
+3F00
+7380
+E1C0
+ENDCHAR
+STARTCHAR caron
+ENCODING 711
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 5 0 20
+BITMAP
+E1C0
+7380
+3F00
+1E00
+0C00
+ENDCHAR
+STARTCHAR uni02C8
+ENCODING 712
+SWIDTH 238 0
+DWIDTH 8 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+60
+60
+ENDCHAR
+STARTCHAR macron
+ENCODING 713
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 3 0 21
+BITMAP
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni02CA
+ENCODING 714
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 5 4 20
+BITMAP
+3C
+78
+70
+E0
+E0
+ENDCHAR
+STARTCHAR uni02CB
+ENCODING 715
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 5 2 20
+BITMAP
+E0
+F0
+70
+78
+38
+ENDCHAR
+STARTCHAR uni02CD
+ENCODING 717
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 3 0 -4
+BITMAP
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni02CE
+ENCODING 718
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 5 2 -6
+BITMAP
+E0
+F0
+70
+78
+38
+ENDCHAR
+STARTCHAR uni02CF
+ENCODING 719
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 5 4 -6
+BITMAP
+3C
+78
+70
+E0
+E0
+ENDCHAR
+STARTCHAR breve
+ENCODING 728
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 5 1 20
+BITMAP
+8080
+C180
+7F00
+7F00
+1C00
+ENDCHAR
+STARTCHAR dotaccent
+ENCODING 729
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 4 4 3 21
+BITMAP
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR ring
+ENCODING 730
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 6 3 19
+BITMAP
+70
+D8
+88
+88
+D8
+70
+ENDCHAR
+STARTCHAR ogonek
+ENCODING 731
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 7 8 1 -7
+BITMAP
+70
+60
+E0
+E0
+E0
+FE
+7E
+3C
+ENDCHAR
+STARTCHAR tilde
+ENCODING 732
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 11 4 0 20
+BITMAP
+3C60
+7FE0
+FFC0
+C780
+ENDCHAR
+STARTCHAR hungarumlaut
+ENCODING 733
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 11 5 -1 20
+BITMAP
+38E0
+79E0
+71C0
+E380
+C300
+ENDCHAR
+STARTCHAR uni02EE
+ENCODING 750
+SWIDTH 500 0
+DWIDTH 16 0
+BBX 12 8 2 17
+BITMAP
+F0F0
+F0F0
+F0F0
+F0F0
+3030
+3030
+6060
+E0C0
+ENDCHAR
+STARTCHAR uni037E
+ENCODING 894
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 23 3 -6
+BITMAP
+F8
+F8
+F8
+F8
+F8
+00
+00
+00
+00
+00
+00
+00
+F8
+F8
+F8
+F8
+F8
+18
+18
+38
+70
+E0
+80
+ENDCHAR
+STARTCHAR tonos
+ENCODING 900
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 5 4 20
+BITMAP
+3C
+78
+70
+E0
+E0
+ENDCHAR
+STARTCHAR dieresistonos
+ENCODING 901
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 10 0 21
+BITMAP
+0780
+0F00
+0E00
+1C00
+1C00
+0000
+F3C0
+F3C0
+F3C0
+F3C0
+ENDCHAR
+STARTCHAR anoteleia
+ENCODING 903
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 5 2 11
+BITMAP
+60
+F0
+F0
+F0
+60
+ENDCHAR
+STARTCHAR mu
+ENCODING 956
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 25 2 -7
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+FFFE
+FFDE
+F79E
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR uni1E00
+ENCODING 7680
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 32 0 -7
+BITMAP
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+000000
+003800
+006C00
+004400
+004400
+006C00
+003800
+ENDCHAR
+STARTCHAR uni1E01
+ENCODING 7681
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 25 1 -7
+BITMAP
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+0000
+0380
+06C0
+0440
+0440
+06C0
+0380
+ENDCHAR
+STARTCHAR uni1E02
+ENCODING 7682
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 3 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+FFFC00
+FFFF00
+FFFF80
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80F80
+FFFF00
+FFFF00
+FFFF80
+FFFFC0
+F807C0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807E0
+FFFFC0
+FFFFC0
+FFFF80
+FFFE00
+ENDCHAR
+STARTCHAR uni1E03
+ENCODING 7683
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 2 0
+BITMAP
+3C00
+3C00
+3C00
+3C00
+0000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F3F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81F
+F01F
+F00F
+F00F
+F00F
+F00F
+F01F
+F01F
+F83E
+FFFE
+FFFC
+F7F8
+F1F0
+ENDCHAR
+STARTCHAR uni1E04
+ENCODING 7684
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 3 -5
+BITMAP
+FFFC00
+FFFF00
+FFFF80
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80F80
+FFFF00
+FFFF00
+FFFF80
+FFFFC0
+F807C0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807E0
+FFFFC0
+FFFFC0
+FFFF80
+FFFE00
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1E05
+ENCODING 7685
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 2 -5
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F3F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81F
+F01F
+F00F
+F00F
+F00F
+F00F
+F01F
+F01F
+F83E
+FFFE
+FFFC
+F7F8
+F1F0
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E06
+ENCODING 7686
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 29 3 -4
+BITMAP
+FFFC00
+FFFF00
+FFFF80
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80F80
+FFFF00
+FFFF00
+FFFF80
+FFFFC0
+F807C0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807E0
+FFFFC0
+FFFFC0
+FFFF80
+FFFE00
+000000
+0FFC00
+0FFC00
+0FFC00
+ENDCHAR
+STARTCHAR uni1E07
+ENCODING 7687
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 29 2 -4
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F3F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81F
+F01F
+F00F
+F00F
+F00F
+F00F
+F01F
+F01F
+F83E
+FFFE
+FFFC
+F7F8
+F1F0
+0000
+1FF8
+1FF8
+1FF8
+ENDCHAR
+STARTCHAR uni1E08
+ENCODING 7688
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 21 38 1 -7
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+01FE00
+07FF80
+0FFFC0
+1FFFE0
+3F87F0
+3E01F0
+7C01F0
+7C00F8
+7C00F8
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+7C00F8
+7C00F8
+7E01F8
+3E01F0
+3F87F0
+1FFFE0
+0FFFC0
+07FF80
+01FC00
+006000
+006000
+00F800
+001C00
+001C00
+01F800
+01F000
+ENDCHAR
+STARTCHAR uni1E09
+ENCODING 7689
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 31 1 -7
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+07E0
+1FF8
+3FFC
+3FFC
+7C3E
+781E
+F81E
+F000
+F000
+F000
+F000
+F81E
+F81E
+7C3E
+7FFC
+3FF8
+1FF8
+07E0
+0300
+0300
+07C0
+00E0
+00E0
+0FC0
+0F80
+ENDCHAR
+STARTCHAR uni1E0A
+ENCODING 7690
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 30 2 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+ENDCHAR
+STARTCHAR uni1E0B
+ENCODING 7691
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 1 0
+BITMAP
+003C
+003C
+003C
+003C
+0000
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+ENDCHAR
+STARTCHAR uni1E0C
+ENCODING 7692
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 30 2 -5
+BITMAP
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1E0D
+ENCODING 7693
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 1 -5
+BITMAP
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E0E
+ENCODING 7694
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 29 2 -4
+BITMAP
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+000000
+0FFC00
+0FFC00
+0FFC00
+ENDCHAR
+STARTCHAR uni1E0F
+ENCODING 7695
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 29 1 -4
+BITMAP
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+0000
+1FF8
+1FF8
+1FF8
+ENDCHAR
+STARTCHAR uni1E10
+ENCODING 7696
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 32 2 -7
+BITMAP
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+00C000
+00C000
+01F000
+007800
+003800
+03F000
+03E000
+ENDCHAR
+STARTCHAR uni1E11
+ENCODING 7697
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 32 1 -7
+BITMAP
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+0180
+0180
+03E0
+00F0
+0070
+07E0
+07C0
+ENDCHAR
+STARTCHAR uni1E12
+ENCODING 7698
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 2 -6
+BITMAP
+FFF800
+FFFF00
+FFFF80
+FFFFC0
+F80FE0
+F803E0
+F803F0
+F801F0
+F801F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F800F8
+F801F8
+F801F0
+F803F0
+F803E0
+F80FE0
+FFFFC0
+FFFF80
+FFFF00
+FFF800
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+ENDCHAR
+STARTCHAR uni1E13
+ENCODING 7699
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 1 -6
+BITMAP
+000F
+000F
+000F
+000F
+000F
+000F
+000F
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F00F
+F00F
+F00F
+F00F
+F00F
+F00F
+F81F
+7C3F
+7FFF
+3FEF
+1FEF
+0F8F
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+ENDCHAR
+STARTCHAR uni1E14
+ENCODING 7700
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 35 2 0
+BITMAP
+038000
+03C000
+01C000
+01E000
+00E000
+000000
+1FF800
+1FF800
+1FF800
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1E15
+ENCODING 7701
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 28 1 0
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+1FF8
+1FF8
+1FF8
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1E16
+ENCODING 7702
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 35 2 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+1FF800
+1FF800
+1FF800
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1E17
+ENCODING 7703
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 28 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+1FF8
+1FF8
+1FF8
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1E18
+ENCODING 7704
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 -6
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+000000
+018000
+03C000
+07E000
+0E7000
+1C3800
+ENDCHAR
+STARTCHAR uni1E19
+ENCODING 7705
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 24 1 -6
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+ENDCHAR
+STARTCHAR uni1E1A
+ENCODING 7706
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 30 2 -5
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+000000
+0F1800
+1FF800
+3FF000
+31E000
+ENDCHAR
+STARTCHAR uni1E1B
+ENCODING 7707
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 23 1 -5
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0000
+0F18
+1FF8
+3FF0
+31E0
+ENDCHAR
+STARTCHAR uni1E1C
+ENCODING 7708
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 38 2 -7
+BITMAP
+101000
+183000
+0FE000
+0FE000
+038000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+018000
+018000
+03E000
+00F000
+007000
+07E000
+07C000
+ENDCHAR
+STARTCHAR uni1E1D
+ENCODING 7709
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 31 1 -7
+BITMAP
+0808
+0C18
+07F0
+07F0
+01C0
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0180
+0180
+03E0
+00F0
+0070
+07E0
+07C0
+ENDCHAR
+STARTCHAR uni1E1E
+ENCODING 7710
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 2 0
+BITMAP
+0780
+0780
+0780
+0780
+0000
+FFFF
+FFFF
+FFFF
+FFFF
+F800
+F800
+F800
+F800
+F800
+F800
+FFFE
+FFFE
+FFFE
+FFFE
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+ENDCHAR
+STARTCHAR uni1E1F
+ENCODING 7711
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 30 0 0
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0000
+07C0
+0FC0
+1FC0
+1F00
+1E00
+1E00
+1E00
+FFC0
+FFC0
+FFC0
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni1E20
+ENCODING 7712
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 22 29 1 0
+BITMAP
+03FF00
+03FF00
+03FF00
+000000
+00FF00
+03FFC0
+0FFFE0
+1FFFF0
+1FC3F8
+3F00F8
+7E007C
+7C007C
+FC0000
+F80000
+F80000
+F80000
+F80FFC
+F80FFC
+F80FFC
+F80FFC
+FC007C
+7C007C
+7E007C
+7E00FC
+3F83FC
+3FFFFC
+1FFFDC
+07FF9C
+03FE1C
+ENDCHAR
+STARTCHAR uni1E21
+ENCODING 7713
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 29 1 -7
+BITMAP
+0FFC
+0FFC
+0FFC
+0000
+0FCF
+1FEF
+3FFF
+7FFF
+7C3F
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+7C3F
+7FFF
+3FFF
+1FEF
+0FCF
+000F
+F81F
+F81F
+7E7E
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni1E22
+ENCODING 7714
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 30 2 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR uni1E23
+ENCODING 7715
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 30 2 0
+BITMAP
+3C00
+3C00
+3C00
+3C00
+0000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR uni1E24
+ENCODING 7716
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 30 2 -5
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E25
+ENCODING 7717
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 30 2 -5
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E26
+ENCODING 7718
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 30 2 0
+BITMAP
+079E00
+079E00
+079E00
+079E00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+ENDCHAR
+STARTCHAR uni1E27
+ENCODING 7719
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 1 0
+BITMAP
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+7800
+7800
+7800
+7800
+7800
+7800
+7800
+78F0
+7BFC
+7FFE
+7FFE
+7E1F
+7C0F
+7C0F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+780F
+ENDCHAR
+STARTCHAR uni1E28
+ENCODING 7720
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 32 2 -7
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F8C3E0
+00C000
+00C000
+01F000
+007800
+003800
+03F000
+03E000
+ENDCHAR
+STARTCHAR uni1E29
+ENCODING 7721
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 32 2 -7
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F31E
+0300
+0300
+07C0
+01E0
+00E0
+0FC0
+0F80
+ENDCHAR
+STARTCHAR uni1E2A
+ENCODING 7722
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 19 31 2 -6
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+000000
+040400
+060C00
+03F800
+03F800
+00E000
+ENDCHAR
+STARTCHAR uni1E2B
+ENCODING 7723
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 31 2 -6
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+1010
+1830
+0FE0
+0FE0
+0380
+ENDCHAR
+STARTCHAR uni1E2C
+ENCODING 7724
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 30 -1 -5
+BITMAP
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+1F00
+0000
+3C60
+7FE0
+FFC0
+C780
+ENDCHAR
+STARTCHAR uni1E2D
+ENCODING 7725
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 11 30 -2 -5
+BITMAP
+0F00
+0F00
+0F00
+0F00
+0000
+0000
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0F00
+0000
+3C60
+7FE0
+FFC0
+C780
+ENDCHAR
+STARTCHAR uni1E2E
+ENCODING 7726
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 37 0 0
+BITMAP
+0780
+0F00
+0E00
+1C00
+1C00
+0000
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+0000
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+3E00
+ENDCHAR
+STARTCHAR uni1E2F
+ENCODING 7727
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 30 -1 0
+BITMAP
+0780
+0F00
+0E00
+1C00
+1C00
+0000
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni1E30
+ENCODING 7728
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 31 2 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+ENDCHAR
+STARTCHAR uni1E31
+ENCODING 7729
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 31 2 0
+BITMAP
+0F00
+1E00
+1C00
+3800
+3800
+0000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+ENDCHAR
+STARTCHAR uni1E32
+ENCODING 7730
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 30 2 -5
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E33
+ENCODING 7731
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 30 2 -5
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+0000
+0780
+0780
+0780
+0780
+ENDCHAR
+STARTCHAR uni1E34
+ENCODING 7732
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 29 2 -4
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+000000
+07FE00
+07FE00
+07FE00
+ENDCHAR
+STARTCHAR uni1E35
+ENCODING 7733
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 15 29 2 -4
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F03E
+F07C
+F0F8
+F1F0
+F3E0
+F7C0
+FF80
+FFC0
+FFC0
+FFE0
+FFE0
+F9F0
+F1F0
+F0F8
+F078
+F07C
+F03E
+F03E
+0000
+3FF0
+3FF0
+3FF0
+ENDCHAR
+STARTCHAR uni1E36
+ENCODING 7734
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 2 -5
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+0000
+0780
+0780
+0780
+0780
+ENDCHAR
+STARTCHAR uni1E37
+ENCODING 7735
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 30 2 -5
+BITMAP
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+00
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR uni1E38
+ENCODING 7736
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 34 1 -5
+BITMAP
+FFC000
+FFC000
+FFC000
+000000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7C0000
+7FFF80
+7FFF80
+7FFF80
+7FFF80
+000000
+03C000
+03C000
+03C000
+03C000
+ENDCHAR
+STARTCHAR uni1E39
+ENCODING 7737
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 34 -1 -5
+BITMAP
+FFC0
+FFC0
+FFC0
+0000
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+0000
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni1E3A
+ENCODING 7738
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 29 2 -4
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+0000
+3FF0
+3FF0
+3FF0
+ENDCHAR
+STARTCHAR uni1E3B
+ENCODING 7739
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 29 -1 -4
+BITMAP
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+0000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E3C
+ENCODING 7740
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 2 -6
+BITMAP
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+F800
+FFFF
+FFFF
+FFFF
+FFFF
+0000
+0300
+0780
+0FC0
+1CE0
+3870
+ENDCHAR
+STARTCHAR uni1E3D
+ENCODING 7741
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 10 31 -1 -6
+BITMAP
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+0000
+0C00
+1E00
+3F00
+7380
+E1C0
+ENDCHAR
+STARTCHAR uni1E3E
+ENCODING 7742
+SWIDTH 833 0
+DWIDTH 27 0
+BBX 23 31 2 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+FE00FE
+FE00FE
+FF01FE
+FF01FE
+FF01FE
+FF01FE
+FF83FE
+FF83FE
+FB83BE
+FB83BE
+FBC7BE
+FBC7BE
+FBC7BE
+F9C73E
+F9EF3E
+F9EF3E
+F9EF3E
+F9EF3E
+F8EE3E
+F8FE3E
+F8FE3E
+F8FE3E
+F87C3E
+F87C3E
+F87C3E
+ENDCHAR
+STARTCHAR uni1E3F
+ENCODING 7743
+SWIDTH 889 0
+DWIDTH 30 0
+BBX 24 24 2 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+F1E0F8
+F7FBFE
+FFFFFE
+FFFFFF
+FC7F1F
+F83E0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+ENDCHAR
+STARTCHAR uni1E40
+ENCODING 7744
+SWIDTH 833 0
+DWIDTH 27 0
+BBX 23 30 2 0
+BITMAP
+003C00
+003C00
+003C00
+003C00
+000000
+FE00FE
+FE00FE
+FF01FE
+FF01FE
+FF01FE
+FF01FE
+FF83FE
+FF83FE
+FB83BE
+FB83BE
+FBC7BE
+FBC7BE
+FBC7BE
+F9C73E
+F9EF3E
+F9EF3E
+F9EF3E
+F9EF3E
+F8EE3E
+F8FE3E
+F8FE3E
+F8FE3E
+F87C3E
+F87C3E
+F87C3E
+ENDCHAR
+STARTCHAR uni1E41
+ENCODING 7745
+SWIDTH 889 0
+DWIDTH 30 0
+BBX 24 23 2 0
+BITMAP
+003C00
+003C00
+003C00
+003C00
+000000
+F1E0F8
+F7FBFE
+FFFFFE
+FFFFFF
+FC7F1F
+F83E0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+ENDCHAR
+STARTCHAR uni1E42
+ENCODING 7746
+SWIDTH 833 0
+DWIDTH 27 0
+BBX 23 30 2 -5
+BITMAP
+FE00FE
+FE00FE
+FF01FE
+FF01FE
+FF01FE
+FF01FE
+FF83FE
+FF83FE
+FB83BE
+FB83BE
+FBC7BE
+FBC7BE
+FBC7BE
+F9C73E
+F9EF3E
+F9EF3E
+F9EF3E
+F9EF3E
+F8EE3E
+F8FE3E
+F8FE3E
+F8FE3E
+F87C3E
+F87C3E
+F87C3E
+000000
+003C00
+003C00
+003C00
+003C00
+ENDCHAR
+STARTCHAR uni1E43
+ENCODING 7747
+SWIDTH 889 0
+DWIDTH 30 0
+BBX 24 23 2 -5
+BITMAP
+F1E0F8
+F7FBFE
+FFFFFE
+FFFFFF
+FC7F1F
+F83E0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+000000
+003C00
+003C00
+003C00
+003C00
+ENDCHAR
+STARTCHAR uni1E44
+ENCODING 7748
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni1E45
+ENCODING 7749
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 0
+BITMAP
+0780
+0780
+0780
+0780
+0000
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+ENDCHAR
+STARTCHAR uni1E46
+ENCODING 7750
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 -5
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E47
+ENCODING 7751
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 -5
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E48
+ENCODING 7752
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 29 2 -4
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+000000
+07FE00
+07FE00
+07FE00
+ENDCHAR
+STARTCHAR uni1E49
+ENCODING 7753
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 22 2 -4
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+1FF8
+1FF8
+1FF8
+ENDCHAR
+STARTCHAR uni1E4A
+ENCODING 7754
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 -6
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FF03E0
+FF83E0
+FFC3E0
+FBC3E0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+F8FBE0
+F87BE0
+F83FE0
+F83FE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+000000
+006000
+00F000
+01F800
+039C00
+070E00
+ENDCHAR
+STARTCHAR uni1E4B
+ENCODING 7755
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 -6
+BITMAP
+F1F0
+F7FC
+FFFC
+FFFE
+FC3E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+ENDCHAR
+STARTCHAR uni1E4C
+ENCODING 7756
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 36 1 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+0078C0
+00FFC0
+01FF80
+018F00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1E4D
+ENCODING 7757
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 30 1 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+078C00
+0FFC00
+1FF800
+18F000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E4E
+ENCODING 7758
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 35 1 0
+BITMAP
+01E780
+01E780
+01E780
+01E780
+000000
+0078C0
+00FFC0
+01FF80
+018F00
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1E4F
+ENCODING 7759
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 29 1 0
+BITMAP
+0F3C00
+0F3C00
+0F3C00
+0F3C00
+000000
+078C00
+0FFC00
+1FF800
+18F000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E50
+ENCODING 7760
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 35 1 0
+BITMAP
+007000
+007800
+003800
+003C00
+001C00
+000000
+01FF80
+01FF80
+01FF80
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1E51
+ENCODING 7761
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 28 1 0
+BITMAP
+038000
+03C000
+01C000
+01E000
+00E000
+000000
+0FFC00
+0FFC00
+0FFC00
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E52
+ENCODING 7762
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 35 1 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+01FF80
+01FF80
+01FF80
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1E53
+ENCODING 7763
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 28 1 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+0FFC00
+0FFC00
+0FFC00
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1E54
+ENCODING 7764
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 31 2 0
+BITMAP
+00F000
+01E000
+01C000
+038000
+038000
+000000
+FFF800
+FFFE00
+FFFF00
+FFFF80
+F81F80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80FC0
+F81F80
+FFFF80
+FFFF00
+FFFC00
+FFF000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+ENDCHAR
+STARTCHAR uni1E55
+ENCODING 7765
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 31 2 -7
+BITMAP
+01E0
+03C0
+0380
+0700
+0700
+0000
+F1F0
+F7F8
+FFFC
+FFFE
+FC3E
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+FC3E
+FFFE
+FFFC
+F7F8
+F1F0
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR uni1E56
+ENCODING 7766
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 30 2 0
+BITMAP
+03C000
+03C000
+03C000
+03C000
+000000
+FFF800
+FFFE00
+FFFF00
+FFFF80
+F81F80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F80FC0
+F81F80
+FFFF80
+FFFF00
+FFFC00
+FFF000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+ENDCHAR
+STARTCHAR uni1E57
+ENCODING 7767
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 30 2 -7
+BITMAP
+0780
+0780
+0780
+0780
+0000
+F1F0
+F7F8
+FFFC
+FFFE
+FC3E
+F81F
+F81F
+F00F
+F00F
+F00F
+F00F
+F81F
+F81F
+FC3E
+FFFE
+FFFC
+F7F8
+F1F0
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR uni1E58
+ENCODING 7768
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 0
+BITMAP
+01E000
+01E000
+01E000
+01E000
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni1E59
+ENCODING 7769
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 23 2 0
+BITMAP
+1E00
+1E00
+1E00
+1E00
+0000
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+ENDCHAR
+STARTCHAR uni1E5A
+ENCODING 7770
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 -5
+BITMAP
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1E5B
+ENCODING 7771
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 23 2 -5
+BITMAP
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+0000
+7800
+7800
+7800
+7800
+ENDCHAR
+STARTCHAR uni1E5C
+ENCODING 7772
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 34 2 -5
+BITMAP
+0FFC00
+0FFC00
+0FFC00
+000000
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1E5D
+ENCODING 7773
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 10 27 2 -5
+BITMAP
+FFC0
+FFC0
+FFC0
+0000
+F0C0
+F3C0
+F7C0
+FFC0
+FFC0
+FC00
+F800
+F800
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+0000
+7800
+7800
+7800
+7800
+ENDCHAR
+STARTCHAR uni1E5E
+ENCODING 7774
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 29 2 -4
+BITMAP
+FFFE00
+FFFF80
+FFFFC0
+FFFFC0
+F807E0
+F803E0
+F803E0
+F803E0
+F803E0
+F807C0
+F80FC0
+FFFF80
+FFFF00
+FFFF00
+FFFF80
+F80FC0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807C0
+F807E0
+F803E0
+000000
+0FFC00
+0FFC00
+0FFC00
+ENDCHAR
+STARTCHAR uni1E5F
+ENCODING 7775
+SWIDTH 389 0
+DWIDTH 13 0
+BBX 12 22 0 -4
+BITMAP
+3C30
+3CF0
+3DF0
+3FF0
+3FF0
+3F00
+3E00
+3E00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+0000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E60
+ENCODING 7776
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 30 1 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+ENDCHAR
+STARTCHAR uni1E61
+ENCODING 7777
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 23 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni1E62
+ENCODING 7778
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 30 1 -5
+BITMAP
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E63
+ENCODING 7779
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 23 1 -5
+BITMAP
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E64
+ENCODING 7780
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 36 1 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+003C00
+007800
+007000
+00E000
+00E000
+000000
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+ENDCHAR
+STARTCHAR uni1E65
+ENCODING 7781
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 29 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+00F0
+01E0
+01C0
+0380
+0380
+0000
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+ENDCHAR
+STARTCHAR uni1E66
+ENCODING 7782
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 32 2 0
+BITMAP
+03C000
+03C000
+03C000
+03C000
+000000
+1C3800
+0E7000
+07E000
+03C000
+018000
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+FC3F00
+F80F00
+FE0000
+7FC000
+7FFC00
+1FFF00
+01FF80
+001FC0
+F007C0
+F007C0
+F807C0
+FC1F80
+7FFF80
+3FFF00
+1FFE00
+07F000
+ENDCHAR
+STARTCHAR uni1E67
+ENCODING 7783
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 30 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+0000
+0FF0
+1FFC
+3FFE
+7E7E
+781E
+781E
+7F00
+7FF0
+3FFC
+1FFE
+03FF
+003F
+F81F
+F81F
+7F3E
+7FFE
+3FFC
+0FF8
+ENDCHAR
+STARTCHAR uni1E68
+ENCODING 7784
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 19 35 1 -5
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+03F800
+0FFE00
+1FFF00
+3FFF80
+3E1F80
+7C07C0
+7807C0
+7803C0
+7C0000
+7F0000
+3FF000
+3FFE00
+1FFF80
+03FFC0
+003FC0
+0007E0
+0003E0
+F803E0
+F803E0
+7C03E0
+7E0FC0
+3FFFC0
+1FFF80
+0FFF00
+03F800
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E69
+ENCODING 7785
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 28 1 -5
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+07F0
+1FFC
+3FFE
+7C3E
+781F
+781F
+7C00
+7FC0
+3FF8
+0FFE
+03FF
+003F
+F80F
+F80F
+7C1F
+7FFE
+3FFC
+0FF0
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1E6A
+ENCODING 7786
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 30 0 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR uni1E6B
+ENCODING 7787
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 27 1 0
+BITMAP
+3C00
+3C00
+3C00
+3C00
+0000
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+ENDCHAR
+STARTCHAR uni1E6C
+ENCODING 7788
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 30 0 -5
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E6D
+ENCODING 7789
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 27 1 -5
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+0000
+1E00
+1E00
+1E00
+1E00
+ENDCHAR
+STARTCHAR uni1E6E
+ENCODING 7790
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 29 0 -4
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+000000
+07FE00
+07FE00
+07FE00
+ENDCHAR
+STARTCHAR uni1E6F
+ENCODING 7791
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 26 1 -4
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+0000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR uni1E70
+ENCODING 7792
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 31 0 -6
+BITMAP
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+000000
+006000
+00F000
+01F800
+039C00
+070E00
+ENDCHAR
+STARTCHAR uni1E71
+ENCODING 7793
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 28 1 -6
+BITMAP
+3C00
+3C00
+3C00
+3C00
+FF80
+FF80
+FF80
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3C00
+3F80
+3F80
+1F80
+0F80
+0000
+0C00
+1E00
+3F00
+7380
+E1C0
+ENDCHAR
+STARTCHAR uni1E72
+ENCODING 7794
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 -5
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+000000
+079E00
+079E00
+079E00
+079E00
+ENDCHAR
+STARTCHAR uni1E73
+ENCODING 7795
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 -5
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+0000
+1E78
+1E78
+1E78
+1E78
+ENDCHAR
+STARTCHAR uni1E74
+ENCODING 7796
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 -5
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+000000
+03C600
+07FE00
+0FFC00
+0C7800
+ENDCHAR
+STARTCHAR uni1E75
+ENCODING 7797
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 -5
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+0000
+0F18
+1FF8
+3FF0
+31E0
+ENDCHAR
+STARTCHAR uni1E76
+ENCODING 7798
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 31 2 -6
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+000000
+006000
+00F000
+01F800
+039C00
+070E00
+ENDCHAR
+STARTCHAR uni1E77
+ENCODING 7799
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 24 2 -6
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+ENDCHAR
+STARTCHAR uni1E78
+ENCODING 7800
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 36 2 0
+BITMAP
+003C00
+007800
+007000
+00E000
+00E000
+000000
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni1E79
+ENCODING 7801
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 29 2 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+0F18
+1FF8
+3FF0
+31E0
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni1E7A
+ENCODING 7802
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 34 2 0
+BITMAP
+079E00
+079E00
+079E00
+079E00
+000000
+07FE00
+07FE00
+07FE00
+000000
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni1E7B
+ENCODING 7803
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 27 2 0
+BITMAP
+1E78
+1E78
+1E78
+1E78
+0000
+1FF8
+1FF8
+1FF8
+0000
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+ENDCHAR
+STARTCHAR uni1E7C
+ENCODING 7804
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 0
+BITMAP
+01E300
+03FF00
+07FE00
+063C00
+000000
+F801F0
+F801F0
+7C03E0
+7C03E0
+7C03E0
+3C03C0
+3E07C0
+3E07C0
+1E0780
+1F0F80
+1F0F80
+0F0F00
+0F0F00
+0F0F00
+079E00
+079E00
+079E00
+07FE00
+03FC00
+03FC00
+03FC00
+01F800
+01F800
+01F800
+00F000
+ENDCHAR
+STARTCHAR uni1E7D
+ENCODING 7805
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 17 23 0 0
+BITMAP
+078C00
+0FFC00
+1FF800
+18F000
+000000
+F80F80
+F80F80
+7C1F00
+7C1F00
+3C1E00
+3C1E00
+3E3E00
+1E3C00
+1E3C00
+1E3C00
+0F7800
+0F7800
+0F7800
+07F000
+07F000
+07F000
+03E000
+03E000
+ENDCHAR
+STARTCHAR uni1E7E
+ENCODING 7806
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 -5
+BITMAP
+F801F0
+F801F0
+7C03E0
+7C03E0
+7C03E0
+3C03C0
+3E07C0
+3E07C0
+1E0780
+1F0F80
+1F0F80
+0F0F00
+0F0F00
+0F0F00
+079E00
+079E00
+079E00
+07FE00
+03FC00
+03FC00
+03FC00
+01F800
+01F800
+01F800
+00F000
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1E7F
+ENCODING 7807
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 17 23 0 -5
+BITMAP
+F80F80
+F80F80
+7C1F00
+7C1F00
+3C1E00
+3C1E00
+3E3E00
+1E3C00
+1E3C00
+1E3C00
+0F7800
+0F7800
+0F7800
+07F000
+07F000
+07F000
+03E000
+03E000
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR Wgrave
+ENCODING 7808
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 31 1 0
+BITMAP
+000E0000
+000F0000
+00070000
+00078000
+00038000
+00000000
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR wgrave
+ENCODING 7809
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 24 0 0
+BITMAP
+00380000
+003C0000
+001C0000
+001E0000
+000E0000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR Wacute
+ENCODING 7810
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 31 1 0
+BITMAP
+0001E000
+0003C000
+00038000
+00070000
+00070000
+00000000
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR wacute
+ENCODING 7811
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 24 0 0
+BITMAP
+00078000
+000F0000
+000E0000
+001C0000
+001C0000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR Wdieresis
+ENCODING 7812
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 30 1 0
+BITMAP
+003CF000
+003CF000
+003CF000
+003CF000
+00000000
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR wdieresis
+ENCODING 7813
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 23 0 0
+BITMAP
+00F3C000
+00F3C000
+00F3C000
+00F3C000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR uni1E86
+ENCODING 7814
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 30 1 0
+BITMAP
+00078000
+00078000
+00078000
+00078000
+00000000
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR uni1E87
+ENCODING 7815
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 23 0 0
+BITMAP
+001E0000
+001E0000
+001E0000
+001E0000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR uni1E88
+ENCODING 7816
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 30 1 -5
+BITMAP
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7C3FC3E0
+7C3FC3E0
+3C3FC3E0
+3C39C3C0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1E70E780
+1E70E780
+0FF0FF00
+0FF0FF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+00000000
+000F0000
+000F0000
+000F0000
+000F0000
+ENDCHAR
+STARTCHAR uni1E89
+ENCODING 7817
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 23 0 -5
+BITMAP
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+00000000
+001E0000
+001E0000
+001E0000
+001E0000
+ENDCHAR
+STARTCHAR uni1E8A
+ENCODING 7818
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+FC03E0
+7E07E0
+7E07C0
+3F0FC0
+1F0F80
+1F9F00
+0F9F00
+0FBE00
+07FE00
+07FC00
+03FC00
+03F800
+01F800
+03F800
+03FC00
+07FC00
+07FE00
+0FBF00
+1F9F00
+1F1F80
+3F0F80
+3E0FC0
+7E07C0
+FC07E0
+FC03F0
+ENDCHAR
+STARTCHAR uni1E8B
+ENCODING 7819
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 23 1 0
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+F81F
+FC3F
+7C3E
+3E7C
+3E78
+1FF8
+0FF0
+07E0
+03C0
+07E0
+0FE0
+0FF0
+1FF8
+3E78
+3E7C
+7C3E
+FC3F
+F81F
+ENDCHAR
+STARTCHAR uni1E8C
+ENCODING 7820
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 0
+BITMAP
+079E00
+079E00
+079E00
+079E00
+000000
+FC03E0
+7E07E0
+7E07C0
+3F0FC0
+1F0F80
+1F9F00
+0F9F00
+0FBE00
+07FE00
+07FC00
+03FC00
+03F800
+01F800
+03F800
+03FC00
+07FC00
+07FE00
+0FBF00
+1F9F00
+1F1F80
+3F0F80
+3E0FC0
+7E07C0
+FC07E0
+FC03F0
+ENDCHAR
+STARTCHAR uni1E8D
+ENCODING 7821
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 23 1 0
+BITMAP
+1E78
+1E78
+1E78
+1E78
+0000
+F81F
+FC3F
+7C3E
+3E7C
+3E78
+1FF8
+0FF0
+07E0
+03C0
+07E0
+0FE0
+0FF0
+1FF8
+3E78
+3E7C
+7C3E
+FC3F
+F81F
+ENDCHAR
+STARTCHAR uni1E8E
+ENCODING 7822
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 0
+BITMAP
+00F000
+00F000
+00F000
+00F000
+000000
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR uni1E8F
+ENCODING 7823
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 30 1 -7
+BITMAP
+03C0
+03C0
+03C0
+03C0
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR uni1E90
+ENCODING 7824
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 31 1 0
+BITMAP
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+ENDCHAR
+STARTCHAR uni1E91
+ENCODING 7825
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 24 1 0
+BITMAP
+0300
+0780
+0FC0
+1CE0
+3870
+0000
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+ENDCHAR
+STARTCHAR uni1E92
+ENCODING 7826
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 30 1 -5
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000000
+03C000
+03C000
+03C000
+03C000
+ENDCHAR
+STARTCHAR uni1E93
+ENCODING 7827
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 23 1 -5
+BITMAP
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+0000
+0780
+0780
+0780
+0780
+ENDCHAR
+STARTCHAR uni1E94
+ENCODING 7828
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 29 1 -4
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000F80
+001F80
+003F00
+007E00
+007C00
+00FC00
+01F800
+03F000
+03F000
+07E000
+0FC000
+0F8000
+1F8000
+3F0000
+7E0000
+7E0000
+FC0000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+000000
+1FF800
+1FF800
+1FF800
+ENDCHAR
+STARTCHAR uni1E95
+ENCODING 7829
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 14 22 1 -4
+BITMAP
+FFFC
+FFFC
+FFFC
+FFFC
+00F8
+01F0
+03F0
+07E0
+0FC0
+1F80
+1F00
+3E00
+7C00
+F800
+FFFC
+FFFC
+FFFC
+FFFC
+0000
+3FF0
+3FF0
+3FF0
+ENDCHAR
+STARTCHAR uni1E96
+ENCODING 7830
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 29 2 -4
+BITMAP
+F000
+F000
+F000
+F000
+F000
+F000
+F000
+F1E0
+F7F8
+FFFC
+FFFC
+FC3E
+F81E
+F81E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+0000
+1FF8
+1FF8
+1FF8
+ENDCHAR
+STARTCHAR uni1E97
+ENCODING 7831
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 27 0 0
+BITMAP
+F3C0
+F3C0
+F3C0
+F3C0
+0000
+1E00
+1E00
+1E00
+1E00
+7FC0
+7FC0
+7FC0
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1E00
+1FC0
+1FC0
+0FC0
+07C0
+ENDCHAR
+STARTCHAR uni1E98
+ENCODING 7832
+SWIDTH 778 0
+DWIDTH 26 0
+BBX 25 25 0 0
+BITMAP
+001C0000
+00360000
+00220000
+00220000
+00360000
+001C0000
+00000000
+F83E0F80
+F83E0F80
+783E0F00
+7C3E1F00
+7C7F1F00
+3C7F1E00
+3C7F1E00
+3C771E00
+3CF79E00
+1EE3BC00
+1EE3BC00
+1EE3BC00
+1FE3FC00
+0FC1F800
+0FC1F800
+0FC1F800
+0780F000
+0780F000
+ENDCHAR
+STARTCHAR uni1E99
+ENCODING 7833
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 32 1 -7
+BITMAP
+0380
+06C0
+0440
+0440
+06C0
+0380
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR uni1EA0
+ENCODING 7840
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 30 0 -5
+BITMAP
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+000000
+007800
+007800
+007800
+007800
+ENDCHAR
+STARTCHAR uni1EA1
+ENCODING 7841
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 23 1 -5
+BITMAP
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1EA4
+ENCODING 7844
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 37 0 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EA5
+ENCODING 7845
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 31 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EA6
+ENCODING 7846
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 37 0 0
+BITMAP
+00E000
+00F000
+007000
+007800
+003800
+000000
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EA7
+ENCODING 7847
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 31 1 0
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EAA
+ENCODING 7850
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 36 0 0
+BITMAP
+00F180
+01FF80
+03FF00
+031E00
+000000
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EAB
+ENCODING 7851
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 30 1 0
+BITMAP
+078C
+0FFC
+1FF8
+18F0
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+01FE
+0FFE
+3FFE
+7F1E
+F81E
+F01E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EAC
+ENCODING 7852
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 36 0 -5
+BITMAP
+003000
+007800
+00FC00
+01CE00
+038700
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+000000
+007800
+007800
+007800
+007800
+ENDCHAR
+STARTCHAR uni1EAD
+ENCODING 7853
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 29 1 -5
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1EAE
+ENCODING 7854
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 37 0 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EAF
+ENCODING 7855
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 30 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EB0
+ENCODING 7856
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 37 0 0
+BITMAP
+00E000
+00F000
+007000
+007800
+003800
+000000
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EB1
+ENCODING 7857
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 30 1 0
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EB4
+ENCODING 7860
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 36 0 0
+BITMAP
+00F180
+01FF80
+03FF00
+031E00
+000000
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni1EB5
+ENCODING 7861
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 29 1 0
+BITMAP
+0F18
+1FF8
+3FF0
+31E0
+0000
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+ENDCHAR
+STARTCHAR uni1EB6
+ENCODING 7862
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 36 0 -5
+BITMAP
+010100
+018300
+00FE00
+00FE00
+003800
+000000
+00FC00
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+000000
+007800
+007800
+007800
+007800
+ENDCHAR
+STARTCHAR uni1EB7
+ENCODING 7863
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 15 29 1 -5
+BITMAP
+1010
+1830
+0FE0
+0FE0
+0380
+0000
+0FF0
+3FFC
+7FFC
+7C3E
+F81E
+F81E
+00FE
+0FFE
+3FFE
+7F1E
+F81E
+F81E
+F03E
+F87E
+FFFE
+FFFE
+7FDE
+3F1E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1EB8
+ENCODING 7864
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 30 2 -5
+BITMAP
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+000000
+03C000
+03C000
+03C000
+03C000
+ENDCHAR
+STARTCHAR uni1EB9
+ENCODING 7865
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 23 1 -5
+BITMAP
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1EBC
+ENCODING 7868
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 30 2 0
+BITMAP
+078C00
+0FFC00
+1FF800
+18F000
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1EBD
+ENCODING 7869
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 23 1 0
+BITMAP
+078C
+0FFC
+1FF8
+18F0
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1EBE
+ENCODING 7870
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 37 2 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1EBF
+ENCODING 7871
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 31 1 0
+BITMAP
+00F0
+01E0
+01C0
+0380
+0380
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1EC0
+ENCODING 7872
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 37 2 0
+BITMAP
+038000
+03C000
+01C000
+01E000
+00E000
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1EC1
+ENCODING 7873
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 31 1 0
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1EC4
+ENCODING 7876
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 36 2 0
+BITMAP
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni1EC5
+ENCODING 7877
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 30 1 0
+BITMAP
+078C
+0FFC
+1FF8
+18F0
+0000
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81E
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFE
+3FFC
+1FF0
+07C0
+ENDCHAR
+STARTCHAR uni1EC6
+ENCODING 7878
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 36 2 -5
+BITMAP
+018000
+03C000
+07E000
+0E7000
+1C3800
+000000
+FFFF80
+FFFF80
+FFFF80
+FFFF80
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFF00
+FFFF00
+FFFF00
+FFFF00
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+F80000
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+000000
+03C000
+03C000
+03C000
+03C000
+ENDCHAR
+STARTCHAR uni1EC7
+ENCODING 7879
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 29 1 -5
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+07E0
+1FF8
+3FFC
+7FFE
+7C3E
+F81F
+F01F
+FFFF
+FFFF
+FFFF
+F000
+F000
+F81E
+7C3E
+7FFC
+3FFC
+1FF0
+07C0
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1ECA
+ENCODING 7882
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 5 30 2 -5
+BITMAP
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+F8
+00
+78
+78
+78
+78
+ENDCHAR
+STARTCHAR uni1ECB
+ENCODING 7883
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 30 2 -5
+BITMAP
+F0
+F0
+F0
+F0
+00
+00
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+F0
+00
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR uni1ECC
+ENCODING 7884
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 30 1 -5
+BITMAP
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+000000
+003C00
+003C00
+003C00
+003C00
+ENDCHAR
+STARTCHAR uni1ECD
+ENCODING 7885
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 23 1 -5
+BITMAP
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1ED0
+ENCODING 7888
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 37 1 0
+BITMAP
+000F00
+001E00
+001C00
+003800
+003800
+000000
+001800
+003C00
+007E00
+00E700
+01C380
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1ED1
+ENCODING 7889
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 31 1 0
+BITMAP
+007800
+00F000
+00E000
+01C000
+01C000
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED2
+ENCODING 7890
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 37 1 0
+BITMAP
+007000
+007800
+003800
+003C00
+001C00
+000000
+001800
+003C00
+007E00
+00E700
+01C380
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1ED3
+ENCODING 7891
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 31 1 0
+BITMAP
+038000
+03C000
+01C000
+01E000
+00E000
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED6
+ENCODING 7894
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 36 1 0
+BITMAP
+0078C0
+00FFC0
+01FF80
+018F00
+000000
+001800
+003C00
+007E00
+00E700
+01C380
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+ENDCHAR
+STARTCHAR uni1ED7
+ENCODING 7895
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 30 1 0
+BITMAP
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1ED8
+ENCODING 7896
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 23 36 1 -5
+BITMAP
+001800
+003C00
+007E00
+00E700
+01C380
+000000
+01FF00
+07FFC0
+0FFFE0
+1FFFF0
+3FC7F8
+3F01F8
+7E00FC
+7C007C
+7C007C
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+F8003E
+7C007C
+7C007C
+7E00FC
+3F01F8
+3FC7F8
+1FFFF0
+0FFFE0
+07FFC0
+01FF00
+000000
+003C00
+003C00
+003C00
+003C00
+ENDCHAR
+STARTCHAR uni1ED9
+ENCODING 7897
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 29 1 -5
+BITMAP
+00C000
+01E000
+03F000
+073800
+0E1C00
+000000
+07F000
+1FFC00
+3FFE00
+7FFF00
+7C1F00
+F80F80
+F80F80
+F00780
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1EDA
+ENCODING 7898
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 25 31 1 0
+BITMAP
+00078000
+000F0000
+000E0000
+001C0000
+001C0000
+00000000
+01FF0780
+07FFC780
+0FFFE780
+1FFFF780
+3FC7F980
+3F01F980
+7E00FD80
+7C007F00
+7C007E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+7C007C00
+7C007C00
+7E00FC00
+3F01F800
+3FC7F800
+1FFFF000
+0FFFE000
+07FFC000
+01FF0000
+ENDCHAR
+STARTCHAR uni1EDB
+ENCODING 7899
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 24 1 0
+BITMAP
+003C00
+007800
+007000
+00E000
+00E000
+000000
+07F1E0
+1FFDE0
+3FFFE0
+7FFFE0
+7C1F60
+F80FE0
+F80FE0
+F007C0
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EDC
+ENCODING 7900
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 25 31 1 0
+BITMAP
+00380000
+003C0000
+001C0000
+001E0000
+000E0000
+00000000
+01FF0780
+07FFC780
+0FFFE780
+1FFFF780
+3FC7F980
+3F01F980
+7E00FD80
+7C007F00
+7C007E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+7C007C00
+7C007C00
+7E00FC00
+3F01F800
+3FC7F800
+1FFFF000
+0FFFE000
+07FFC000
+01FF0000
+ENDCHAR
+STARTCHAR uni1EDD
+ENCODING 7901
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 24 1 0
+BITMAP
+01C000
+01E000
+00E000
+00F000
+007000
+000000
+07F1E0
+1FFDE0
+3FFFE0
+7FFFE0
+7C1F60
+F80FE0
+F80FE0
+F007C0
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EE0
+ENCODING 7904
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 25 30 1 0
+BITMAP
+003C6000
+007FE000
+00FFC000
+00C78000
+00000000
+01FF0780
+07FFC780
+0FFFE780
+1FFFF780
+3FC7F980
+3F01F980
+7E00FD80
+7C007F00
+7C007E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+7C007C00
+7C007C00
+7E00FC00
+3F01F800
+3FC7F800
+1FFFF000
+0FFFE000
+07FFC000
+01FF0000
+ENDCHAR
+STARTCHAR uni1EE1
+ENCODING 7905
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 23 1 0
+BITMAP
+01E300
+03FF00
+07FE00
+063C00
+000000
+07F1E0
+1FFDE0
+3FFFE0
+7FFFE0
+7C1F60
+F80FE0
+F80FE0
+F007C0
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+ENDCHAR
+STARTCHAR uni1EE2
+ENCODING 7906
+SWIDTH 778 0
+DWIDTH 25 0
+BBX 25 30 1 -5
+BITMAP
+01FF0780
+07FFC780
+0FFFE780
+1FFFF780
+3FC7F980
+3F01F980
+7E00FD80
+7C007F00
+7C007E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+F8003E00
+7C007C00
+7C007C00
+7E00FC00
+3F01F800
+3FC7F800
+1FFFF000
+0FFFE000
+07FFC000
+01FF0000
+00000000
+003C0000
+003C0000
+003C0000
+003C0000
+ENDCHAR
+STARTCHAR uni1EE3
+ENCODING 7907
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 19 23 1 -5
+BITMAP
+07F1E0
+1FFDE0
+3FFFE0
+7FFFE0
+7C1F60
+F80FE0
+F80FE0
+F007C0
+F00780
+F00780
+F00780
+F80F80
+F80F80
+7C1F00
+7FFF00
+3FFE00
+1FFC00
+07F000
+000000
+01E000
+01E000
+01E000
+01E000
+ENDCHAR
+STARTCHAR uni1EE4
+ENCODING 7908
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 30 2 -5
+BITMAP
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1EE5
+ENCODING 7909
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 15 23 2 -5
+BITMAP
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F01E
+F83E
+F87E
+FFFE
+7FFE
+7FDE
+1F1E
+0000
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR uni1EE8
+ENCODING 7912
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 2 0
+BITMAP
+001E00
+003C00
+003800
+007000
+007000
+000000
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni1EE9
+ENCODING 7913
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 18 24 2 0
+BITMAP
+003C00
+007800
+007000
+00E000
+00E000
+000000
+F01FC0
+F01FC0
+F01FC0
+F01FC0
+F01EC0
+F01EC0
+F01EC0
+F01F80
+F01F00
+F01E00
+F01E00
+F01E00
+F83E00
+F87E00
+FFFE00
+7FFE00
+7FDE00
+1F1E00
+ENDCHAR
+STARTCHAR uni1EEA
+ENCODING 7914
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 31 2 0
+BITMAP
+00E000
+00F000
+007000
+007800
+003800
+000000
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni1EEB
+ENCODING 7915
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 18 24 2 0
+BITMAP
+01C000
+01E000
+00E000
+00F000
+007000
+000000
+F01FC0
+F01FC0
+F01FC0
+F01FC0
+F01EC0
+F01EC0
+F01EC0
+F01F80
+F01F00
+F01E00
+F01E00
+F01E00
+F83E00
+F87E00
+FFFE00
+7FFE00
+7FDE00
+1F1E00
+ENDCHAR
+STARTCHAR uni1EEE
+ENCODING 7918
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 30 2 0
+BITMAP
+00F180
+01FF80
+03FF00
+031E00
+000000
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+ENDCHAR
+STARTCHAR uni1EEF
+ENCODING 7919
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 18 23 2 0
+BITMAP
+03C600
+07FE00
+0FFC00
+0C7800
+000000
+F01FC0
+F01FC0
+F01FC0
+F01FC0
+F01EC0
+F01EC0
+F01EC0
+F01F80
+F01F00
+F01E00
+F01E00
+F01E00
+F83E00
+F87E00
+FFFE00
+7FFE00
+7FDE00
+1F1E00
+ENDCHAR
+STARTCHAR uni1EF0
+ENCODING 7920
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 21 30 2 -5
+BITMAP
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F8
+F803F0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+F803E0
+FC07E0
+7F1FC0
+7FFFC0
+3FFF80
+1FFF00
+07FC00
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1EF1
+ENCODING 7921
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 18 23 2 -5
+BITMAP
+F01FC0
+F01FC0
+F01FC0
+F01FC0
+F01EC0
+F01EC0
+F01EC0
+F01F80
+F01F00
+F01E00
+F01E00
+F01E00
+F83E00
+F87E00
+FFFE00
+7FFE00
+7FDE00
+1F1E00
+000000
+03C000
+03C000
+03C000
+03C000
+ENDCHAR
+STARTCHAR Ygrave
+ENCODING 7922
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 31 1 0
+BITMAP
+01C000
+01E000
+00E000
+00F000
+007000
+000000
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR ygrave
+ENCODING 7923
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 31 1 -7
+BITMAP
+0700
+0780
+0380
+03C0
+01C0
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR uni1EF4
+ENCODING 7924
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 -5
+BITMAP
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+000000
+00F000
+00F000
+00F000
+00F000
+ENDCHAR
+STARTCHAR uni1EF5
+ENCODING 7925
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 30 1 -12
+BITMAP
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+0000
+0780
+0780
+0780
+0780
+ENDCHAR
+STARTCHAR uni1EF8
+ENCODING 7928
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 20 30 1 0
+BITMAP
+01E300
+03FF00
+07FE00
+063C00
+000000
+FC03F0
+FC03E0
+7E07E0
+3E07C0
+3F0FC0
+3F0F80
+1F0F80
+1F9F00
+0F9F00
+0FFE00
+07FE00
+07FC00
+03FC00
+03F800
+03F800
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+01F000
+ENDCHAR
+STARTCHAR uni1EF9
+ENCODING 7929
+SWIDTH 556 0
+DWIDTH 19 0
+BBX 16 30 1 -7
+BITMAP
+078C
+0FFC
+1FF8
+18F0
+0000
+F81F
+F81F
+F81E
+783E
+7C3E
+7C3C
+3C3C
+3E7C
+3E78
+1E78
+1E78
+1FF0
+0FF0
+0FF0
+0FE0
+07E0
+07E0
+07C0
+07C0
+07C0
+0F80
+3F80
+3F00
+3F00
+3C00
+ENDCHAR
+STARTCHAR uni2000
+ENCODING 8192
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2001
+ENCODING 8193
+SWIDTH 1000 0
+DWIDTH 33 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2002
+ENCODING 8194
+SWIDTH 500 0
+DWIDTH 17 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2003
+ENCODING 8195
+SWIDTH 1000 0
+DWIDTH 33 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2004
+ENCODING 8196
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2005
+ENCODING 8197
+SWIDTH 250 0
+DWIDTH 8 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2006
+ENCODING 8198
+SWIDTH 167 0
+DWIDTH 6 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2007
+ENCODING 8199
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2008
+ENCODING 8200
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2009
+ENCODING 8201
+SWIDTH 200 0
+DWIDTH 7 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200A
+ENCODING 8202
+SWIDTH 100 0
+DWIDTH 3 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni200B
+ENCODING 8203
+SWIDTH 0 0
+DWIDTH 0 0
+BBX 1 1 0 0
+BITMAP
+00
+ENDCHAR
+STARTCHAR uni2010
+ENCODING 8208
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 5 1 7
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+STARTCHAR uni2011
+ENCODING 8209
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 9 5 1 7
+BITMAP
+FF80
+FF80
+FF80
+FF80
+FF80
+ENDCHAR
+STARTCHAR figuredash
+ENCODING 8210
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 18 3 0 7
+BITMAP
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR endash
+ENCODING 8211
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 18 3 0 7
+BITMAP
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR emdash
+ENCODING 8212
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 32 3 0 7
+BITMAP
+FFFFFFFF
+FFFFFFFF
+FFFFFFFF
+ENDCHAR
+STARTCHAR afii00208
+ENCODING 8213
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 32 3 0 7
+BITMAP
+FFFFFFFF
+FFFFFFFF
+FFFFFFFF
+ENDCHAR
+STARTCHAR quoteleft
+ENCODING 8216
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+30
+60
+C0
+C0
+C0
+F0
+F0
+F0
+F0
+ENDCHAR
+STARTCHAR quoteright
+ENCODING 8217
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+30
+30
+30
+60
+C0
+ENDCHAR
+STARTCHAR quotesinglbase
+ENCODING 8218
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 8 2 -4
+BITMAP
+F0
+F0
+F0
+F0
+30
+30
+60
+E0
+ENDCHAR
+STARTCHAR quotereversed
+ENCODING 8219
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 9 2 16
+BITMAP
+F0
+F0
+F0
+F0
+C0
+C0
+C0
+60
+30
+ENDCHAR
+STARTCHAR quotedblleft
+ENCODING 8220
+SWIDTH 500 0
+DWIDTH 16 0
+BBX 12 8 2 16
+BITMAP
+3070
+60E0
+C0C0
+C0C0
+F0F0
+F0F0
+F0F0
+F0F0
+ENDCHAR
+STARTCHAR quotedblright
+ENCODING 8221
+SWIDTH 500 0
+DWIDTH 16 0
+BBX 12 8 2 17
+BITMAP
+F0F0
+F0F0
+F0F0
+F0F0
+3030
+3030
+6060
+E0C0
+ENDCHAR
+STARTCHAR quotedblbase
+ENCODING 8222
+SWIDTH 500 0
+DWIDTH 16 0
+BBX 12 10 2 -5
+BITMAP
+F0F0
+F0F0
+F0F0
+F0F0
+F0F0
+3030
+3030
+3030
+E0E0
+C0C0
+ENDCHAR
+STARTCHAR uni201F
+ENCODING 8223
+SWIDTH 500 0
+DWIDTH 16 0
+BBX 12 8 2 17
+BITMAP
+F0F0
+F0F0
+F0F0
+F0F0
+C0C0
+C0C0
+6060
+3070
+ENDCHAR
+STARTCHAR dagger
+ENCODING 8224
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 30 1 -7
+BITMAP
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+FFFF
+FFFF
+FFFF
+FFFF
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR daggerdbl
+ENCODING 8225
+SWIDTH 556 0
+DWIDTH 18 0
+BBX 16 30 1 -7
+BITMAP
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+FFFF
+FFFF
+FFFF
+FFFF
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+FFFF
+FFFF
+FFFF
+FFFF
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+03C0
+ENDCHAR
+STARTCHAR bullet
+ENCODING 8226
+SWIDTH 350 0
+DWIDTH 12 0
+BBX 8 8 2 6
+BITMAP
+3C
+7E
+FF
+FF
+FF
+FF
+7E
+3C
+ENDCHAR
+STARTCHAR ellipsis
+ENCODING 8230
+SWIDTH 1000 0
+DWIDTH 33 0
+BBX 27 5 3 0
+BITMAP
+F81F03E0
+F81F03E0
+F81F03E0
+F81F03E0
+F81F03E0
+ENDCHAR
+STARTCHAR perthousand
+ENCODING 8240
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 32 25 0 0
+BITMAP
+1E00C000
+3F018000
+7F838000
+E1C30000
+E1C70000
+E1C60000
+E1CE0000
+7F8C0000
+3F1C0000
+1E180000
+00300000
+00700000
+00600000
+00E00000
+00C00000
+01C00000
+01878078
+039FE1FE
+031FE1FE
+06387387
+06387387
+0C387387
+1C1FE1FE
+181FE1FE
+18078078
+ENDCHAR
+STARTCHAR guilsinglleft
+ENCODING 8249
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 12 3 3
+BITMAP
+08
+18
+38
+F8
+F0
+E0
+E0
+F0
+F8
+78
+18
+08
+ENDCHAR
+STARTCHAR guilsinglright
+ENCODING 8250
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 12 3 3
+BITMAP
+80
+C0
+F0
+F8
+78
+38
+38
+78
+F8
+E0
+C0
+80
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8260
+SWIDTH 167 0
+DWIDTH 6 0
+BBX 16 24 -6 0
+BITMAP
+0007
+0007
+000E
+001C
+001C
+0038
+0038
+0070
+0070
+00E0
+00C0
+01C0
+0380
+0380
+0700
+0700
+0E00
+0E00
+1C00
+1800
+3800
+7000
+7000
+E000
+ENDCHAR
+STARTCHAR oneinferior
+ENCODING 8321
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 6 15 2 -7
+BITMAP
+1C
+3C
+FC
+FC
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+1C
+ENDCHAR
+STARTCHAR twoinferior
+ENCODING 8322
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 15 0 -7
+BITMAP
+3F00
+7F80
+F3C0
+E1C0
+E1C0
+01C0
+03C0
+0780
+0F00
+3E00
+7800
+7000
+FFC0
+FFC0
+FFC0
+ENDCHAR
+STARTCHAR threeinferior
+ENCODING 8323
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 10 15 0 -7
+BITMAP
+1E00
+7F80
+F3C0
+E1C0
+E1C0
+03C0
+0F80
+0F80
+03C0
+01C0
+E1C0
+E1C0
+F3C0
+7F80
+3E00
+ENDCHAR
+STARTCHAR uni20A5
+ENCODING 8357
+SWIDTH 889 0
+DWIDTH 30 0
+BBX 24 25 2 -3
+BITMAP
+000300
+000300
+000300
+000300
+F1E6F8
+F7FFFE
+FFFFFE
+FFFFFF
+FC7F1F
+F83E0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F03C0F
+F07C0F
+F07C0F
+F07C0F
+F07C0F
+00C000
+00C000
+00C000
+ENDCHAR
+STARTCHAR uni20A6
+ENCODING 8358
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 19 25 2 0
+BITMAP
+F803E0
+FC03E0
+FC03E0
+FE03E0
+FE03E0
+FF03E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+FBE3E0
+F9E3E0
+F9F3E0
+F8F3E0
+FFFFE0
+FFFFE0
+FFFFE0
+FFFFE0
+F81FE0
+F81FE0
+F80FE0
+F80FE0
+F807E0
+F807E0
+F803E0
+ENDCHAR
+STARTCHAR uni20A9
+ENCODING 8361
+SWIDTH 944 0
+DWIDTH 31 0
+BBX 29 25 1 0
+BITMAP
+F81F81F8
+F81F81F8
+781F81F0
+781F81F0
+781F81F0
+7C3FC3E0
+7DFFFFE0
+7DFFFFE0
+3DFFFFE0
+3DFFFFC0
+3E79E3C0
+3E79E7C0
+1E79E7C0
+1E79E780
+1FFFFF80
+1FFFFF80
+0FFFFF00
+0FFFFF00
+0FF0FF00
+0FE07F00
+07E07E00
+07E07E00
+07E07E00
+03C03C00
+03C03C00
+ENDCHAR
+STARTCHAR Euro
+ENCODING 8364
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 24 25 -2 0
+BITMAP
+003FC0
+00FFF0
+01FFF8
+03FFFC
+07F0FE
+07C03E
+FFFE3F
+FFFE1F
+FFFE1F
+FFFE00
+1F0000
+1F0000
+1F0000
+1F0000
+FFFE00
+FFFE00
+FFFE1F
+FFFE1F
+0FC03F
+07C03E
+07F0FE
+03FFFC
+01FFF8
+00FFF0
+003FC0
+ENDCHAR
+STARTCHAR uni20AD
+ENCODING 8365
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 25 2 0
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFFFF0
+FFFFF0
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+ENDCHAR
+STARTCHAR uni2103
+ENCODING 8451
+SWIDTH 1102 0
+DWIDTH 36 0
+BBX 32 25 2 0
+BITMAP
+00003FC0
+3E00FFF0
+7F01FFF8
+6303FFFC
+C187F0FE
+C187C03E
+C18F803F
+C18F801F
+630F801F
+7F1F0000
+3E1F0000
+001F0000
+001F0000
+001F0000
+001F0000
+001F0000
+000F801F
+000F801F
+000FC03F
+0007C03E
+0007F0FE
+0003FFFC
+0001FFF8
+0000FFF0
+00003FC0
+ENDCHAR
+STARTCHAR uni2109
+ENCODING 8457
+SWIDTH 991 0
+DWIDTH 32 0
+BBX 28 25 2 0
+BITMAP
+000FFFF0
+3E0FFFF0
+7F0FFFF0
+630FFFF0
+C18F8000
+C18F8000
+C18F8000
+C18F8000
+630F8000
+7F0F8000
+3E0FFFE0
+000FFFE0
+000FFFE0
+000FFFE0
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+000F8000
+ENDCHAR
+STARTCHAR trademark
+ENCODING 8482
+SWIDTH 1000 0
+DWIDTH 32 0
+BBX 28 14 2 11
+BITMAP
+FFE7C1F0
+FFE7C1F0
+FFE7E3F0
+0E07E3F0
+0E07E3F0
+0E077770
+0E077770
+0E077770
+0E073E70
+0E073E70
+0E073E70
+0E071C70
+0E071C70
+0E070870
+ENDCHAR
+STARTCHAR uni212A
+ENCODING 8490
+SWIDTH 722 0
+DWIDTH 24 0
+BBX 20 25 2 0
+BITMAP
+F807E0
+F807E0
+F80FC0
+F81F80
+F83F00
+F87E00
+F8FC00
+F8F800
+F9F800
+FBF000
+FFE000
+FFE000
+FFF000
+FFF000
+FFF800
+FCFC00
+F87E00
+F87E00
+F83F00
+F81F80
+F80F80
+F80FC0
+F807E0
+F803F0
+F803F0
+ENDCHAR
+STARTCHAR uni212B
+ENCODING 8491
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 31 0 0
+BITMAP
+007800
+00CC00
+008400
+008400
+00CC00
+007800
+000000
+00FC00
+01FE00
+01FE00
+01FE00
+03FF00
+03FF00
+03FF00
+07CF80
+07CF80
+07CF80
+0F8780
+0F87C0
+0F87C0
+1F03C0
+1F03E0
+1FFFE0
+1FFFE0
+3FFFF0
+3FFFF0
+3E01F0
+7C00F8
+7C00F8
+FC00FC
+F8007C
+ENDCHAR
+STARTCHAR uni2132
+ENCODING 8498
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 16 25 2 0
+BITMAP
+001F
+001F
+001F
+001F
+001F
+001F
+001F
+001F
+001F
+001F
+001F
+7FFF
+7FFF
+7FFF
+7FFF
+001F
+001F
+001F
+001F
+001F
+001F
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR universal
+ENCODING 8704
+SWIDTH 722 0
+DWIDTH 23 0
+BBX 22 25 0 0
+BITMAP
+F8007C
+FC00FC
+7C00F8
+7C00F8
+3E01F0
+3FFFF0
+3FFFF0
+1FFFE0
+1FFFE0
+1F03E0
+1F03C0
+0F87C0
+0F87C0
+0F8780
+07CF80
+07CF80
+07CF80
+03FF00
+03FF00
+03FF00
+01FE00
+01FE00
+01FE00
+00FC00
+00FC00
+ENDCHAR
+STARTCHAR existential
+ENCODING 8707
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+7FFFC0
+7FFFC0
+7FFFC0
+7FFFC0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+3FFFC0
+3FFFC0
+3FFFC0
+3FFFC0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+0007C0
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR uni2204
+ENCODING 8708
+SWIDTH 667 0
+DWIDTH 22 0
+BBX 18 25 2 0
+BITMAP
+7FFFC0
+7FFFC0
+7FFFC0
+7FFFC0
+0037C0
+0037C0
+0037C0
+0077C0
+0067C0
+0067C0
+3FFFC0
+3FFFC0
+3FFFC0
+3FFFC0
+00C7C0
+0187C0
+0187C0
+0187C0
+0387C0
+0307C0
+0307C0
+FFFFC0
+FFFFC0
+FFFFC0
+FFFFC0
+ENDCHAR
+STARTCHAR minus
+ENCODING 8722
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 4 1 6
+BITMAP
+FFFF
+FFFF
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR fraction
+ENCODING 8725
+SWIDTH 167 0
+DWIDTH 6 0
+BBX 16 24 -6 0
+BITMAP
+0007
+0007
+000E
+001C
+001C
+0038
+0038
+0070
+0070
+00E0
+00C0
+01C0
+0380
+0380
+0700
+0700
+0E00
+0E00
+1C00
+1800
+3800
+7000
+7000
+E000
+ENDCHAR
+STARTCHAR periodcentered
+ENCODING 8729
+SWIDTH 278 0
+DWIDTH 9 0
+BBX 4 5 2 11
+BITMAP
+60
+F0
+F0
+F0
+60
+ENDCHAR
+STARTCHAR uni2236
+ENCODING 8758
+SWIDTH 333 0
+DWIDTH 11 0
+BBX 5 17 3 0
+BITMAP
+F8
+F8
+F8
+F8
+F8
+00
+00
+00
+00
+00
+00
+00
+F8
+F8
+F8
+F8
+F8
+ENDCHAR
+STARTCHAR uni2259
+ENCODING 8793
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 18 2 2
+BITMAP
+0180
+03C0
+07E0
+0E70
+1C38
+0000
+FFFE
+FFFE
+FFFE
+FFFE
+0000
+0000
+0000
+0000
+FFFE
+FFFE
+FFFE
+FFFE
+ENDCHAR
+STARTCHAR uni225A
+ENCODING 8794
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 18 2 2
+BITMAP
+1C38
+0E70
+07E0
+03C0
+0180
+0000
+FFFE
+FFFE
+FFFE
+FFFE
+0000
+0000
+0000
+0000
+FFFE
+FFFE
+FFFE
+FFFE
+ENDCHAR
+STARTCHAR notequal
+ENCODING 8800
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 25 2 -4
+BITMAP
+0030
+0030
+0030
+0030
+0060
+0060
+0060
+FFFE
+FFFE
+FFFE
+FFFE
+01C0
+0180
+0180
+0180
+FFFE
+FFFE
+FFFE
+FFFE
+0600
+0600
+0600
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR equivalence
+ENCODING 8801
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 8 0 4
+BITMAP
+FFFE
+FFFE
+0000
+FFFE
+FFFE
+0000
+FFFE
+FFFE
+ENDCHAR
+STARTCHAR uni2262
+ENCODING 8802
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 15 25 0 -4
+BITMAP
+0030
+0030
+0030
+0030
+0060
+0060
+0060
+00E0
+00C0
+FFFE
+FFFE
+01C0
+FFFE
+FFFE
+0180
+FFFE
+FFFE
+0300
+0700
+0600
+0600
+0600
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR lessequal
+ENCODING 8804
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 19 1 -3
+BITMAP
+0003
+001F
+007F
+03FF
+0FFE
+7FF8
+FFC0
+FE00
+FE00
+FFC0
+7FF0
+0FFE
+03FF
+007F
+001F
+0003
+0000
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR greaterequal
+ENCODING 8805
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 19 1 -3
+BITMAP
+C000
+F000
+FE00
+FFC0
+7FF0
+1FFE
+03FF
+007F
+007F
+03FF
+1FFE
+7FF0
+FFC0
+FE00
+F000
+C000
+0000
+FFFF
+FFFF
+ENDCHAR
+STARTCHAR uni226E
+ENCODING 8814
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 25 1 -4
+BITMAP
+0030
+0030
+0030
+0030
+0060
+0063
+007F
+00FF
+03FF
+0FFE
+7FF8
+FFC0
+FF80
+FF80
+FFC0
+7FF0
+0FFE
+03FF
+077F
+061F
+0603
+0600
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni226F
+ENCODING 8815
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 25 1 -4
+BITMAP
+0030
+0030
+0030
+0030
+0060
+C060
+F060
+FEE0
+FFC0
+7FF0
+1FFE
+03FF
+01FF
+01FF
+03FF
+1FFE
+7FF0
+FFC0
+FF00
+F600
+C600
+0600
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni2270
+ENCODING 8816
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 25 1 -6
+BITMAP
+0030
+0030
+0030
+0033
+007F
+007F
+03FF
+0FFE
+7FF8
+FFC0
+FEC0
+FFC0
+FFC0
+7FF0
+0FFE
+03FF
+037F
+031F
+0703
+0600
+FFFF
+FFFF
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR uni2271
+ENCODING 8817
+SWIDTH 584 0
+DWIDTH 19 0
+BBX 16 25 1 -6
+BITMAP
+0030
+0030
+0030
+C030
+F060
+FE60
+FFE0
+7FF0
+1FFE
+03FF
+00FF
+01FF
+03FF
+1FFE
+7FF0
+FFC0
+FF00
+F300
+C700
+0600
+FFFF
+FFFF
+0C00
+0C00
+0C00
+ENDCHAR
+STARTCHAR fi
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 0 0
+BITMAP
+0FC780
+1FC780
+1FC780
+1F0780
+1E0000
+1E0000
+1E0780
+FFC780
+FFC780
+FFC780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+ENDCHAR
+STARTCHAR fl
+ENCODING -1
+SWIDTH 611 0
+DWIDTH 20 0
+BBX 17 25 0 0
+BITMAP
+0FC780
+1FC780
+1FC780
+1F0780
+1E0780
+1E0780
+1E0780
+FFC780
+FFC780
+FFC780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+1E0780
+ENDCHAR
+ENDFONT
diff --git a/dists/bada/Res/scummmobile/helvb12-iso-8859-1.fcc b/dists/bada/Res/scummmobile/helvb12-iso-8859-1.fcc
new file mode 100644
index 0000000000..651a25934a
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvb12-iso-8859-1.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvb12-iso-8859-2.fcc b/dists/bada/Res/scummmobile/helvb12-iso-8859-2.fcc
new file mode 100644
index 0000000000..2117b6b9e6
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvb12-iso-8859-2.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/helvb12-iso-8859-5.fcc b/dists/bada/Res/scummmobile/helvb12-iso-8859-5.fcc
new file mode 100644
index 0000000000..8ad8f0eb22
--- /dev/null
+++ b/dists/bada/Res/scummmobile/helvb12-iso-8859-5.fcc
Binary files differ
diff --git a/dists/bada/Res/scummmobile/logo.bmp b/dists/bada/Res/scummmobile/logo.bmp
new file mode 100644
index 0000000000..a3ca0ea618
--- /dev/null
+++ b/dists/bada/Res/scummmobile/logo.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/logo_small.bmp b/dists/bada/Res/scummmobile/logo_small.bmp
new file mode 100644
index 0000000000..79934f2f56
--- /dev/null
+++ b/dists/bada/Res/scummmobile/logo_small.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/radiobutton.bmp b/dists/bada/Res/scummmobile/radiobutton.bmp
new file mode 100644
index 0000000000..d3ba468321
--- /dev/null
+++ b/dists/bada/Res/scummmobile/radiobutton.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/radiobutton_empty.bmp b/dists/bada/Res/scummmobile/radiobutton_empty.bmp
new file mode 100644
index 0000000000..06b9f9bb70
--- /dev/null
+++ b/dists/bada/Res/scummmobile/radiobutton_empty.bmp
Binary files differ
diff --git a/dists/bada/Res/scummmobile/scummmobile_gfx.stx b/dists/bada/Res/scummmobile/scummmobile_gfx.stx
new file mode 100644
index 0000000000..4b9a035536
--- /dev/null
+++ b/dists/bada/Res/scummmobile/scummmobile_gfx.stx
@@ -0,0 +1,671 @@
+<?xml version = "1.0"?>
+<!-- ScummVM - Graphic Adventure Engine
+ -
+ - ScummVM is the legal property of its developers, whose names
+ - are too numerous to list here. Please refer to the COPYRIGHT
+ - file distributed with this source distribution.
+ -
+ - This program is free software; you can redistribute it and/or
+ - modify it under the terms of the GNU General Public License
+ - as published by the Free Software Foundation; either version 2
+ - of the License, or (at your option) any later version.
+ -
+ - This program is distributed in the hope that it will be useful,
+ - but WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ - GNU General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License
+ - along with this program; if not, write to the Free Software
+ - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ -
+ -->
+<render_info>
+ <palette>
+ <!-- Main background colors -->
+ <color name = 'darkorange'
+ rgb = '210, 114, 10'
+ />
+ <color name = 'brightorange'
+ rgb = '239, 196, 24'
+ />
+
+ <!-- Idle button/slider -->
+ <color name = 'darkred'
+ rgb = '169, 42, 12'
+ />
+ <color name = 'brightred'
+ rgb = '203, 126, 107'
+ />
+
+ <!-- Disabled button/slider -->
+ <color name = 'darkeneddarkred'
+ rgb = '120, 28, 0'
+ />
+ <color name = 'darkenedbrightred'
+ rgb = '144, 84, 72'
+ />
+
+ <!-- Highlighted button/slider -->
+ <color name = 'brightpink'
+ rgb = '255, 210, 200'
+ />
+ <color name = 'darkpink'
+ rgb = '200, 70, 50'
+ />
+
+ <!-- Dialog background -->
+ <color name = 'xtrabrightred'
+ rgb = '251, 241, 206'
+ />
+ <color name = 'blandyellow'
+ rgb = '248, 228, 152'
+ />
+
+ <!-- Others -->
+ <color name = 'bgreen'
+ rgb = '100, 162, 8'
+ />
+ <color name = 'black'
+ rgb = '0, 0, 0'
+ />
+ <color name = 'white'
+ rgb = '255, 255, 255'
+ />
+ <color name = 'shadowcolor'
+ rgb = '63, 60, 17'
+ />
+ <color name = 'darkgray'
+ rgb = '176, 168, 144'
+ />
+ <color name = 'lightgray'
+ rgb = '210, 200, 170'
+ />
+ <color name = 'lightgray2'
+ rgb = '231, 223, 189'
+ />
+ <color name = 'paleyellow'
+ rgb = '247, 228, 166'
+ />
+ </palette>
+
+ <bitmaps>
+ <bitmap filename = 'logo.bmp'/>
+ <bitmap filename = 'cursor.bmp'/>
+ <bitmap filename = 'cursor_small.bmp'/>
+ <bitmap filename = 'checkbox.bmp'/>
+ <bitmap filename = 'checkbox_empty.bmp'/>
+ <bitmap filename = 'radiobutton.bmp'/>
+ <bitmap filename = 'radiobutton_empty.bmp'/>
+ <bitmap filename = 'logo_small.bmp'/>
+ <bitmap filename = 'search.bmp'/>
+ </bitmaps>
+
+ <fonts>
+ <font id = 'text_default'
+ file = 'helvB14.bdf'
+ />
+ <font id = 'text_button'
+ file = 'helvB14.bdf'
+ />
+ <font id = 'text_normal'
+ file = 'helvB12.bdf'
+ />
+ <font id = 'tooltip_normal'
+ file = 'fixed5x8.bdf'
+ />
+
+ <text_color id = 'color_normal'
+ color = 'black'
+ />
+
+ <text_color id = 'color_normal_inverted'
+ color = 'black'
+ />
+
+ <text_color id = 'color_normal_hover'
+ color = 'bgreen'
+ />
+
+ <text_color id = 'color_normal_disabled'
+ color = '192, 192, 192'
+ />
+
+ <text_color id = 'color_alternative'
+ color = '128, 128, 128'
+ />
+
+ <text_color id = 'color_alternative_inverted'
+ color = 'white'
+ />
+
+ <text_color id = 'color_alternative_hover'
+ color = 'darkgray'
+ />
+
+ <text_color id = 'color_alternative_disabled'
+ color = '192, 192, 192'
+ />
+
+ <text_color id = 'color_button'
+ color = 'white'
+ />
+
+ <text_color id = 'color_button_hover'
+ color = '255, 214, 84'
+ />
+
+ <text_color id = 'color_button_disabled'
+ color = '192, 192, 192'
+ />
+ </fonts>
+
+ <!-- <defaults fill = 'gradient' fg_color = 'white'/> -->
+
+ <cursor file = 'cursor.bmp' hotspot = '0, 0' scale = '3'/>
+ <cursor resolution = 'y<400' file = 'cursor_small.bmp' hotspot = '0, 0' scale = '3'/>
+
+ <!-- Selection (text or list items) -->
+ <drawdata id = 'text_selection' cache = 'false'>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'darkgray'
+ />
+ </drawdata>
+
+ <drawdata id = 'text_selection_focus' cache = 'false'>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'bgreen'
+ />
+ </drawdata>
+
+ <!-- Main background -->
+ <drawdata id = 'mainmenu_bg' cache = 'false'>
+ <drawstep func = 'fill'
+ fill = 'gradient'
+ gradient_start = 'darkorange'
+ gradient_end = 'brightorange'
+ />
+ </drawdata>
+
+ <!-- Load screen -->
+ <drawdata id = 'special_bg' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ fill = 'gradient'
+ stroke = '0'
+ gradient_start = 'darkorange'
+ gradient_end = 'brightorange'
+ shadow = '3'
+ gradient_factor = '3'
+ />
+ </drawdata>
+
+ <!-- Separator in popup lists -->
+ <drawdata id = 'separator' cache = 'false'>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ height = '1'
+ ypos = 'center'
+ fg_color = 'black'
+ />
+ </drawdata>
+
+ <!-- Background of the scrollbar -->
+ <drawdata id = 'scrollbar_base' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '10'
+ fill = 'background'
+ fg_color = 'darkgray'
+ bg_color = 'paleyellow'
+ />
+ </drawdata>
+
+ <!-- Handle of the scrollbar -->
+ <drawdata id = 'scrollbar_handle_hover' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '10'
+ fill = 'gradient'
+ fg_color = 'blandyellow'
+ gradient_start = 'brightpink'
+ gradient_end = 'darkpink'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_handle_idle' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '10'
+ fill = 'gradient'
+ fg_color = 'blandyellow'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <!-- Buttons at the top and bottom of the scrollbar -->
+ <drawdata id = 'scrollbar_button_idle' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '10'
+ fill = 'none'
+ fg_color = 'darkgray'
+ stroke = '1'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'shadowcolor'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <drawdata id = 'scrollbar_button_hover' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '10'
+ fill = 'gradient'
+ gradient_start = 'brightpink'
+ gradient_end = 'darkpink'
+ stroke = '1'
+ fg_color = 'darkred'
+ bevel = '1'
+ bevel_color = 'brightred'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'shadowcolor'
+ fill = 'foreground'
+ width = 'auto'
+ height = 'auto'
+ xpos = 'center'
+ ypos = 'center'
+ orientation = 'top'
+ />
+ </drawdata>
+
+ <!-- Active tab in the tabs list -->
+ <drawdata id = 'tab_active' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <!-- Custom color to match the tab content's gradient: -->
+ <drawstep func = 'tab'
+ radius = '4'
+ stroke = '0'
+ fill = 'background'
+ bg_color = '248, 232, 168'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Inactive tab in the tabs list -->
+ <drawdata id = 'tab_inactive' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'tab'
+ radius = '4'
+ stroke = '0'
+ fill = 'background'
+ bg_color = '239, 202, 109'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Background of the tabs list -->
+ <drawdata id = 'tab_background' cache = 'false'>
+ <drawstep func = 'tab'
+ radius = '6'
+ stroke = '0'
+ fill = 'foreground'
+ fg_color = '232, 180, 80'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Background of the slider widget -->
+ <drawdata id = 'widget_slider' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '0'
+ radius = '5'
+ fill = 'foreground'
+ fg_color = 'paleyellow'
+ bevel = '1'
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <!-- Full part of the slider widget -->
+ <drawdata id = 'slider_full' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '5'
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ />
+ </drawdata>
+
+ <!-- Hovered full part of the slider widget -->
+ <drawdata id = 'slider_hover' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '5'
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'brightpink'
+ gradient_end = 'darkpink'
+ />
+ </drawdata>
+
+ <!-- Disabled slider widget -->
+ <drawdata id = 'slider_disabled' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ radius = '5'
+ fill = 'gradient'
+ fg_color = '123, 112, 56'
+ gradient_start = 'darkenedbrightred'
+ gradient_end = 'darkeneddarkred'
+ />
+ </drawdata>
+
+ <!-- Idle popup -->
+ <drawdata id = 'popup_idle' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ stroke = '1'
+ fg_color = 'lightgray2'
+ fill = 'background'
+ bg_color = 'xtrabrightred'
+ shadow = '2'
+ />
+ <drawstep func = 'triangle'
+ bg_color = 'shadowcolor'
+ fill = 'background'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+ <!-- Disabled popup -->
+ <drawdata id = 'popup_disabled' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ fill = 'foreground'
+ fg_color = 'darkgray'
+ shadow = '2'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'shadowcolor'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_default'
+ text_color = 'color_normal_disabled'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+ <!-- Hovered popup -->
+ <drawdata id = 'popup_hover' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ stroke = '1'
+ fg_color = 'lightgray'
+ radius = '5'
+ fill = 'gradient'
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ shadow = '0'
+ />
+ <drawstep func = 'triangle'
+ fg_color = 'shadowcolor'
+ fill = 'foreground'
+ width = 'height'
+ height = 'auto'
+ xpos = 'right'
+ ypos = 'center'
+ orientation = 'bottom'
+ />
+ <text font = 'text_default'
+ text_color = 'color_normal_hover'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ </drawdata>
+
+ <!-- Background of the textedit widget -->
+ <drawdata id = 'widget_textedit' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ fill = 'foreground'
+ radius = '5'
+ fg_color = 'paleyellow'
+ shadow = '0'
+ bevel = '1'
+ bevel_color = 'shadowcolor'
+ />
+ </drawdata>
+
+ <!-- Background of the chooser dialogs (file chooser, theme browser, ...) -->
+ <drawdata id = 'plain_bg' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '6'
+ stroke = '0'
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ fill = 'gradient'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Cursor in the text edit widget -->
+ <drawdata id = 'caret' cache = 'false'>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'black'
+ />
+ </drawdata>
+
+ <!-- Tab contents and game picker background -->
+ <drawdata id = 'default_bg' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '6'
+ stroke = '0'
+ fill = 'gradient'
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ gradient_factor = '4'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Tooltip -->
+ <drawdata id = 'tooltip_bg' cache = 'false'>
+ <drawstep func = 'square'
+ fill = 'foreground'
+ fg_color = 'blandyellow'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <!-- Idle button -->
+ <drawdata id = 'button_idle' cache = 'false'>
+ <text font = 'text_button'
+ text_color = 'color_button'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ stroke = '1'
+ fill = 'gradient'
+ shadow = '0'
+ fg_color = 'shadowcolor'
+ gradient_start = 'brightred'
+ gradient_end = 'darkred'
+ bevel = '1'
+ bevel_color = '237, 169, 72'
+ />
+ </drawdata>
+
+ <!-- Hovered button -->
+ <drawdata id = 'button_hover' cache = 'false'>
+ <text font = 'text_button'
+ text_color = 'color_button_hover'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ stroke = '1'
+ fill = 'gradient'
+ shadow = '0'
+ fg_color = 'shadowcolor'
+ gradient_start = 'brightpink'
+ gradient_end = 'darkpink'
+ bevel = '1'
+ bevel_color = 'xtrabrightred'
+ />
+ </drawdata>
+
+ <!-- Disabled button -->
+ <drawdata id = 'button_disabled' cache = 'false'>
+ <text font = 'text_button'
+ text_color = 'color_button_disabled'
+ vertical_align = 'center'
+ horizontal_align = 'center'
+ />
+ <drawstep func = 'roundedsq'
+ radius = '5'
+ stroke = '1'
+ fill = 'gradient'
+ shadow = '0'
+ fg_color = 'shadowcolor'
+ gradient_start = 'darkenedbrightred'
+ gradient_end = 'darkeneddarkred'
+ bevel = '1'
+ bevel_color = 'darkgray'
+ />
+ </drawdata>
+
+ <!-- Disabled checkbox -->
+ <drawdata id = 'checkbox_disabled' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal_disabled'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'checkbox_empty.bmp'
+ />
+ </drawdata>
+
+ <!-- Selected checkbox -->
+ <drawdata id = 'checkbox_selected' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'checkbox.bmp'
+ />
+ </drawdata>
+
+ <!-- Idle checkbox -->
+ <drawdata id = 'checkbox_default' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'top'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'checkbox_empty.bmp'
+ />
+ </drawdata>
+
+ <!-- Idle radiobutton -->
+ <drawdata id = 'radiobutton_default' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'radiobutton_empty.bmp'
+ />
+ </drawdata>
+
+ <!-- Selected radiobutton -->
+ <drawdata id = 'radiobutton_selected' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'radiobutton.bmp'
+ />
+ </drawdata>
+
+ <!-- Disabled radiobutton -->
+ <drawdata id = 'radiobutton_disabled' cache = 'false'>
+ <text font = 'text_default'
+ text_color = 'color_normal_disabled'
+ vertical_align = 'center'
+ horizontal_align = 'left'
+ />
+ <drawstep func = 'bitmap'
+ file = 'radiobutton_empty.bmp'
+ />
+ </drawdata>
+
+ <!-- Background of the list widget (the games list and the list in the choosers) -->
+ <!-- TODO: Have separate options for the games list (with gradient background) and the list in the choosers (without gradient) -->
+ <drawdata id = 'widget_default' cache = 'false'>
+ <drawstep func = 'roundedsq'
+ radius = '6'
+ stroke = '1'
+ fg_color = 'lightgray'
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ gradient_factor = '6'
+ fill = 'gradient'
+ bg_color = 'xtrabrightred'
+ shadow = '3'
+ />
+ </drawdata>
+
+ <drawdata id = 'widget_small' cache = 'false'>
+ <drawstep func = 'square'
+ stroke = '0'
+ gradient_start = 'blandyellow'
+ gradient_end = 'xtrabrightred'
+ gradient_factor = '6'
+ fill = 'gradient'
+ shadow = '3'
+ />
+ </drawdata>
+</render_info>
diff --git a/dists/bada/Res/scummmobile/scummmobile_layout.stx b/dists/bada/Res/scummmobile/scummmobile_layout.stx
new file mode 100644
index 0000000000..c2fdfc612d
--- /dev/null
+++ b/dists/bada/Res/scummmobile/scummmobile_layout.stx
@@ -0,0 +1,861 @@
+<?xml version = "1.0"?>
+<!-- ScummVM - Graphic Adventure Engine
+ -
+ - ScummVM is the legal property of its developers, whose names
+ - are too numerous to list here. Please refer to the COPYRIGHT
+ - file distributed with this source distribution.
+ -
+ - This program is free software; you can redistribute it and/or
+ - modify it under the terms of the GNU General Public License
+ - as published by the Free Software Foundation; either version 2
+ - of the License, or (at your option) any later version.
+ -
+ - This program is distributed in the hope that it will be useful,
+ - but WITHOUT ANY WARRANTY; without even the implied warranty of
+ - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ - GNU General Public License for more details.
+ -
+ - You should have received a copy of the GNU General Public License
+ - along with this program; if not, write to the Free Software
+ - Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ -
+ -->
+<layout_info resolution = 'y>399'>
+ <globals>
+ <def var = 'Line.Height' value = '16' />
+ <def var = 'Font.Height' value = '16' />
+
+ <def var = 'Padding.Bottom' value = '16' />
+ <def var = 'Padding.Left' value = '16' />
+ <def var = 'Padding.Right' value = '16' />
+ <def var = 'Padding.Top' value = '16' />
+
+ <def var = 'About.OuterBorder' value = '80'/>
+
+ <def var = 'ListWidget.hlLeftPadding' value = '0'/>
+ <def var = 'ListWidget.hlRightPadding' value = '0'/>
+
+ <def var = 'ShowLauncherLogo' value = '1'/>
+ <def var = 'ShowGlobalMenuLogo' value = '1'/>
+ <def var = 'ShowSearchPic' value = '1'/>
+
+ <def var = 'SaveLoadChooser.ExtInfo.Visible' value = '1'/>
+
+ <def var = 'KeyMapper.Spacing' value = '10'/>
+ <def var = 'KeyMapper.LabelWidth' value = '100'/>
+ <def var = 'KeyMapper.ButtonWidth' value = '80'/>
+
+ <def var = 'Tooltip.MaxWidth' value = '200'/>
+ <def var = 'Tooltip.XDelta' value = '24'/> <!-- basically cursor size -->
+ <def var = 'Tooltip.YDelta' value = '32'/>
+
+ <widget name = 'OptionsLabel'
+ size = '180, Globals.Line.Height'
+ textalign = 'right'
+ />
+ <widget name = 'SmallLabel'
+ size = '42, Globals.Line.Height'
+ />
+
+ <widget name = 'Button'
+ size = '148, 24'
+ />
+
+ <widget name = 'Slider'
+ size = '128, 18'
+ />
+ <widget name = 'PopUp'
+ size = '-1, 19'
+ />
+ <widget name = 'Checkbox'
+ size = '-1, Globals.Line.Height'
+ />
+ <widget name = 'Radiobutton'
+ size = '-1, Globals.Line.Height'
+ />
+ <widget name = 'ListWidget'
+ padding = '5, 0, 8, 0'
+ />
+ <widget name = 'PopUpWidget'
+ padding = '7, 5, 0, 0'
+ />
+ <widget name = 'EditTextWidget'
+ padding = '5, 5, 0, 0'
+ />
+ <widget name = 'Console'
+ padding = '7, 5, 5, 5'
+ />
+ <widget name = 'Scrollbar'
+ size = '15, 0'
+ />
+ <widget name = 'TabWidget.Tab'
+ size = '82, 27'
+ padding = '0, 0, 8, 0'
+ />
+
+ <widget name = 'TabWidget.Body'
+ padding = '0, 0, 0, 0'
+ />
+
+ <widget name = 'TabWidget.NavButton'
+ size = '15, 18'
+ padding = '0, 3, 4, 0'
+ />
+ </globals>
+
+ <dialog name = 'Launcher' overlays = 'screen'>
+ <layout type = 'vertical' center = 'true' padding = '23, 23, 8, 23'>
+ <widget name = 'Logo'
+ width = '287'
+ height = '80'
+ />
+ <layout type = 'horizontal' spacing = '5' padding = '10, 0, 0, 0'>
+ <widget name = 'SearchPic'
+ width = '16'
+ height = '17'
+ />
+ <widget name = 'Search'
+ width = '150'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'SearchClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ <space />
+ <widget name = 'Version'
+ width = '400'
+ height = 'Globals.Line.Height'
+ textalign = 'center'
+ />
+ <space />
+ <space />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <widget name = 'GameList'/>
+ <layout type = 'vertical' padding = '10, 0, 0, 0'>
+ <widget name = 'StartButton'
+ type = 'Button'
+ />
+ <widget name = 'LoadGameButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'AddGameButton'
+ type = 'Button'
+ />
+ <widget name = 'EditGameButton'
+ type = 'Button'
+ />
+ <widget name = 'RemoveGameButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'OptionsButton'
+ type = 'Button'
+ />
+ <widget name = 'AboutButton'
+ type = 'Button'
+ />
+ <space size = '10' />
+ <widget name = 'QuitButton'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'Browser' overlays = 'Dialog.Launcher.GameList' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8'>
+ <widget name = 'Headline'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Path'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'List'/>
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Up'
+ type = 'Button'
+ />
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions' overlays = 'screen' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 16'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'grModePopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'grModePopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'grRenderPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'grRenderPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <widget name = 'grAspectCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grFullscreenCheckbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'grDisableDitheringCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'auMidiPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'auMidiPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'auOPLPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'auOPLPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'auSampleRatePopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'auSampleRatePopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleSpeechOnly'
+ type = 'Radiobutton'
+ />
+ <widget name = 'subToggleSubOnly'
+ type = 'Radiobutton'
+ />
+ <widget name = 'subToggleSubBoth'
+ type = 'Radiobutton'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'horizontal' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+ <layout type = 'vertical' padding = '24, 0, 24, 0' center = 'true'>
+ <widget name = 'vcMuteCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'auPrefGmPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'auPrefGmPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'mcFontButton'
+ type = 'Button'
+ />
+ <widget name = 'mcFontPath'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'mcFontClearButton'
+ height = 'Globals.Line.Height'
+ width = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'mcMixedCheckbox'
+ type = 'Checkbox'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'mcMidiGainText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'mcMidiGainSlider'
+ type = 'Slider'
+ />
+ <widget name = 'mcMidiGainLabel'
+ width = '42'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_MT32' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'auPrefMt32PopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'auPrefMt32Popup'
+ type = 'PopUp'
+ />
+ </layout>
+ <widget name = 'mcMt32Checkbox'
+ type = 'Checkbox'
+ />
+ <widget name = 'mcGSCheckbox'
+ type = 'Checkbox'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Paths' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'SaveButton'
+ type = 'Button'
+ />
+ <widget name = 'SavePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'ThemePath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'ExtraButton'
+ type = 'Button'
+ />
+ <widget name = 'ExtraPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'PluginsButton'
+ type = 'Button'
+ />
+ <widget name = 'PluginsPath'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalOptions_Misc' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'ThemeButton'
+ type = 'Button'
+ />
+ <widget name = 'CurTheme'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'RendererPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'RendererPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'AutosavePeriodPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'AutosavePeriodPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'GuiLanguagePopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'GuiLanguagePopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <widget name='KeysButton'
+ type='Button'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name='KeysDialog' overlays='Dialog.GlobalOptions' shading='dim'>
+ <layout type='vertical' padding='8,8,8,8' center='true'>
+ <widget name='Action'
+ height='Globals.Line.Height'
+ />
+ <widget name='List'/>
+ <widget name='Mapping'
+ height='Globals.Line.Height'
+ />
+ <space size='Globals.Line.Height'/>
+ <layout type='horizontal'>
+ <widget name='Map'
+ type='Button'
+ />
+ <space/>
+ <widget name='Cancel'
+ type='Button'
+ />
+ <widget name='Ok'
+ type='Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions' overlays = 'screen' shading = 'dim'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '16'>
+ <widget name = 'TabWidget'/>
+ <layout type = 'horizontal' padding = '16, 16, 16, 4'>
+ <space/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Graphics' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Graphics' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Audio' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Audio' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MIDI' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_MT32' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_MT32' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Volume' overlays = 'Dialog.GlobalOptions.TabWidget'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+ <widget name = 'EnableTabCheckbox'
+ type = 'Checkbox'
+ />
+ <import layout = 'Dialog.GlobalOptions_Volume' />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Game' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '4, 4, 4, 4' spacing = '10' center = 'true'>
+ <widget name = 'Id'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Domain'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '4, 4, 4, 4' spacing = '10' center = 'true'>
+ <widget name = 'Name'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Desc'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '4, 4, 4, 4' spacing = '10' center = 'true'>
+ <widget name = 'LangPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'LangPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '4, 4, 4, 4' spacing = '10' center = 'true'>
+ <widget name = 'PlatformPopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'PlatformPopup'
+ type = 'PopUp'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GameOptions_Paths' overlays = 'Dialog.GameOptions.TabWidget' shading = 'dim'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Savepath'
+ type = 'Button'
+ />
+ <widget name = 'SavepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Extrapath'
+ type = 'Button'
+ />
+ <widget name = 'ExtrapathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '16' center = 'true'>
+ <widget name = 'Gamepath'
+ type = 'Button'
+ />
+ <widget name = 'GamepathText'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalMenu' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '16, 16, 16, 16' center = 'true'>
+ <widget name = 'Logo'
+ width = '240'
+ height = '40'
+ />
+ <widget name = 'Version'
+ width = '240'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'Resume'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'Load'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Save'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'Options'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Help'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'About'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <space size = '10'/>
+ <widget name = 'RTL'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ <widget name = 'Quit'
+ width = '190'
+ height = 'Globals.Button.Height'
+ />
+ </layout>
+ </dialog>
+
+ <dialog name = 'GlobalConfig' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '8'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <layout type = 'vertical' padding = '0, 0, 0, 0' spacing = '8' center = 'true'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcMusicText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcMusicSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcMusicLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcSfxText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSfxSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSfxLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'vcSpeechText'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'vcSpeechSlider'
+ type = 'Slider'
+ />
+ <widget name = 'vcSpeechLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ </layout>
+
+ <layout type = 'vertical' padding = '24, 24, 24, 24' center = 'true'>
+ <widget name = 'vcMuteCheckbox'
+ type = 'Checkbox'
+ width = '120' <!-- FIXME: Why this is needed? -->
+ />
+ </layout>
+ </layout>
+ <space size = '8' />
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'subToggleDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subToggleSpeechOnly'
+ type = 'Radiobutton'
+ width = '100'
+ />
+ <widget name = 'subToggleSubOnly'
+ type = 'Radiobutton'
+ width = '100'
+ />
+ <widget name = 'subToggleSubBoth'
+ type = 'Radiobutton'
+ width = '100'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name = 'subSubtitleSpeedDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'subSubtitleSpeedSlider'
+ type = 'Slider'
+ />
+ <widget name = 'subSubtitleSpeedLabel'
+ type = 'SmallLabel'
+ />
+ </layout>
+ <space size = '60'/>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10'>
+ <widget name='Keys'
+ type='Button'
+ />
+ <space size = 'Globals.Button.Width' />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
+ <widget name = 'Title'
+ height = 'Globals.Line.Height'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 0, 16' spacing = '16'>
+ <widget name = 'List' />
+ <widget name = 'Thumbnail'
+ width = '180'
+ height = '200'
+ />
+ </layout>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0'>
+ <space/>
+ <widget name = 'Delete'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ <widget name = 'Choose'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'ScummHelp' overlays = 'screen_center'>
+ <layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
+ <widget name = 'Title'
+ width = '320'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'HelpText'
+ height = '220'
+ />
+ <layout type = 'horizontal' padding = '0, 0, 16, 0'>
+ <widget name = 'Prev'
+ type = 'Button'
+ />
+ <widget name = 'Next'
+ type = 'Button'
+ />
+ <space size = '32'/>
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'MassAdd' overlays = 'screen_center' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 32, 8' center = 'true'>
+ <widget name = 'DirProgressText'
+ width = '480'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'GameProgressText'
+ width = '480'
+ height = 'Globals.Line.Height'
+ />
+ <widget name = 'GameList'
+ width = '480'
+ height = '250'
+ />
+ <layout type = 'horizontal' padding = '8, 8, 8, 8'>
+ <widget name = 'Ok'
+ type = 'Button'
+ />
+ <widget name = 'Cancel'
+ type = 'Button'
+ />
+ </layout>
+ </layout>
+ </dialog>
+
+ <dialog name = 'KeyMapper' overlays = 'screen_center' shading = 'dim'>
+ <layout type = 'vertical' padding = '8, 8, 32, 8' spacing = '10' center = 'true'>
+ <layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+ <widget name = 'PopupDesc'
+ type = 'OptionsLabel'
+ />
+ <widget name = 'Popup'
+ type = 'PopUp'
+ width = '400'
+ height = 'Globals.Line.Height'
+ />
+ </layout>
+ <widget name = 'KeymapArea'
+ width = '600'
+ height = '280'
+ />
+ <widget name = 'Close'
+ type = 'Button'
+ />
+ </layout>
+ </dialog>
+</layout_info>
diff --git a/dists/bada/Res/scummmobile/search.bmp b/dists/bada/Res/scummmobile/search.bmp
new file mode 100644
index 0000000000..fa963f8f16
--- /dev/null
+++ b/dists/bada/Res/scummmobile/search.bmp
Binary files differ
diff --git a/dists/bada/Res/vkeybd_bada/lowercase-symbols800x399.bmp b/dists/bada/Res/vkeybd_bada/lowercase-symbols800x399.bmp
new file mode 100644
index 0000000000..a6ad7c486d
--- /dev/null
+++ b/dists/bada/Res/vkeybd_bada/lowercase-symbols800x399.bmp
Binary files differ
diff --git a/dists/bada/Res/vkeybd_bada/lowercase800x399.bmp b/dists/bada/Res/vkeybd_bada/lowercase800x399.bmp
new file mode 100644
index 0000000000..b63061bff7
--- /dev/null
+++ b/dists/bada/Res/vkeybd_bada/lowercase800x399.bmp
Binary files differ
diff --git a/dists/bada/Res/vkeybd_bada/uppercase-symbols800x399.bmp b/dists/bada/Res/vkeybd_bada/uppercase-symbols800x399.bmp
new file mode 100644
index 0000000000..2d250a0335
--- /dev/null
+++ b/dists/bada/Res/vkeybd_bada/uppercase-symbols800x399.bmp
Binary files differ
diff --git a/dists/bada/Res/vkeybd_bada/uppercase800x399.bmp b/dists/bada/Res/vkeybd_bada/uppercase800x399.bmp
new file mode 100644
index 0000000000..0170321324
--- /dev/null
+++ b/dists/bada/Res/vkeybd_bada/uppercase800x399.bmp
Binary files differ
diff --git a/dists/bada/Res/vkeybd_bada/vkeybd_bada.xml b/dists/bada/Res/vkeybd_bada/vkeybd_bada.xml
new file mode 100644
index 0000000000..77d6bdb8a2
--- /dev/null
+++ b/dists/bada/Res/vkeybd_bada/vkeybd_bada.xml
@@ -0,0 +1,637 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
+<keyboard initial_mode="lowercase" v_align="bottom" h_align="center">
+ <!-- coords key = "start x, start y, end x, end y" -->
+ <!-- Lowercase -->
+ <mode name="lowercase" resolutions="800x399">
+ <layout resolution="800x399" bitmap="lowercase800x399.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="25,24,775,53" target="display_area"/>
+ <area shape="rect" coords="22,64,65,110" target="esc" />
+ <area shape="rect" coords="72,64,118,110" target="f1" />
+ <area shape="rect" coords="124,64,169,110" target="f2" />
+ <area shape="rect" coords="175,64,220,110" target="f3" />
+ <area shape="rect" coords="227,64,272,110" target="f4" />
+ <area shape="rect" coords="278,64,324,110" target="f5" />
+ <area shape="rect" coords="331,64,376,110" target="f6" />
+ <area shape="rect" coords="382,64,428,110" target="f7" />
+ <area shape="rect" coords="434,64,479,110" target="f8" />
+ <area shape="rect" coords="486,64,531,110" target="f9" />
+ <area shape="rect" coords="537,64,582,110" target="f10" />
+ <area shape="rect" coords="588,64,633,110" target="f11" />
+ <area shape="rect" coords="640,64,685,110" target="f12" />
+ <area shape="rect" coords="691,64,777,110" target="delete" />
+ <area shape="rect" coords="22,117,66,162" target="|" />
+ <area shape="rect" coords="71,117,117,162" target="1" />
+ <area shape="rect" coords="123,117,169,162" target="2" />
+ <area shape="rect" coords="174,117,220,162" target="3" />
+ <area shape="rect" coords="227,117,272,162" target="4" />
+ <area shape="rect" coords="278,117,323,162" target="5" />
+ <area shape="rect" coords="331,117,376,162" target="6" />
+ <area shape="rect" coords="382,117,428,162" target="7" />
+ <area shape="rect" coords="434,117,479,162" target="8" />
+ <area shape="rect" coords="486,117,531,162" target="9" />
+ <area shape="rect" coords="537,117,583,162" target="0" />
+ <area shape="rect" coords="588,117,633,162" target="-" />
+ <area shape="rect" coords="639,117,685,162" target="=" />
+ <area shape="rect" coords="691,117,746,162" target="backspace" />
+ <area shape="rect" coords="752,117,777,162" target="del" />
+ <area shape="rect" coords="22,170,86,215" target="tab" />
+ <area shape="rect" coords="92,170,138,215" target="q" />
+ <area shape="rect" coords="143,170,189,215" target="w" />
+ <area shape="rect" coords="196,170,241,215" target="e" />
+ <area shape="rect" coords="247,170,292,215" target="r" />
+ <area shape="rect" coords="300,170,345,215" target="t" />
+ <area shape="rect" coords="352,170,397,215" target="y" />
+ <area shape="rect" coords="403,170,448,215" target="u" />
+ <area shape="rect" coords="454,170,500,215" target="i" />
+ <area shape="rect" coords="507,170,552,215" target="o" />
+ <area shape="rect" coords="558,170,603,215" target="p" />
+ <area shape="rect" coords="610,170,655,215" target="[" />
+ <area shape="rect" coords="662,170,707,215" target="]" />
+ <area shape="rect" coords="713,170,777,215" target="#" />
+ <area shape="rect" coords="22,222,105,267" target="caps" />
+ <area shape="rect" coords="113,222,158,267" target="a" />
+ <area shape="rect" coords="165,222,210,267" target="s" />
+ <area shape="rect" coords="216,222,261,267" target="d" />
+ <area shape="rect" coords="268,222,314,267" target="f" />
+ <area shape="rect" coords="319,222,364,267" target="g" />
+ <area shape="rect" coords="372,222,417,267" target="h" />
+ <area shape="rect" coords="423,222,469,267" target="j" />
+ <area shape="rect" coords="476,222,521,267" target="k" />
+ <area shape="rect" coords="527,222,572,267" target="l" />
+ <area shape="rect" coords="579,222,624,267" target=";" />
+ <area shape="rect" coords="629,222,675,267" target="’" />
+ <area shape="rect" coords="681,222,777,267" target="enter" />
+ <area shape="rect" coords="22,275,125,320" target="shift" />
+ <area shape="rect" coords="146,274,192,320" target="z" />
+ <area shape="rect" coords="198,274,243,320" target="x" />
+ <area shape="rect" coords="250,274,295,320" target="c" />
+ <area shape="rect" coords="301,274,346,320" target="v" />
+ <area shape="rect" coords="353,274,397,320" target="b" />
+ <area shape="rect" coords="405,274,450,320" target="n" />
+ <area shape="rect" coords="456,274,501,320" target="m" />
+ <area shape="rect" coords="508,274,553,320" target="," />
+ <area shape="rect" coords="560,274,604,320" target="." />
+ <area shape="rect" coords="611,274,656,320" target="/" />
+ <area shape="rect" coords="677,275,777,320" target="symbols" />
+ <area shape="rect" coords="21,326,86,372" target="ctrl" />
+ <area shape="rect" coords="96,326,157,372" target="alt" />
+ <area shape="rect" coords="168,326,655,372" target="space" />
+ <area shape="rect" coords="671,326,719,372" target="ok" />
+ <area shape="rect" coords="731,326,778,372" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="uppercase" />
+ <event name="symbols" type="switch_mode" mode="lowercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="’" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase -->
+ <mode name="uppercase" resolutions="800x399">
+ <layout resolution="800x399" bitmap="uppercase800x399.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="25,24,775,53" target="display_area"/>
+ <area shape="rect" coords="22,64,65,110" target="esc" />
+ <area shape="rect" coords="72,64,118,110" target="f1" />
+ <area shape="rect" coords="124,64,169,110" target="f2" />
+ <area shape="rect" coords="175,64,220,110" target="f3" />
+ <area shape="rect" coords="227,64,272,110" target="f4" />
+ <area shape="rect" coords="278,64,324,110" target="f5" />
+ <area shape="rect" coords="331,64,376,110" target="f6" />
+ <area shape="rect" coords="382,64,428,110" target="f7" />
+ <area shape="rect" coords="434,64,479,110" target="f8" />
+ <area shape="rect" coords="486,64,531,110" target="f9" />
+ <area shape="rect" coords="537,64,582,110" target="f10" />
+ <area shape="rect" coords="588,64,633,110" target="f11" />
+ <area shape="rect" coords="640,64,685,110" target="f12" />
+ <area shape="rect" coords="691,64,777,110" target="delete" />
+ <area shape="rect" coords="22,117,66,162" target="|" />
+ <area shape="rect" coords="71,117,117,162" target="1" />
+ <area shape="rect" coords="123,117,169,162" target="2" />
+ <area shape="rect" coords="174,117,220,162" target="3" />
+ <area shape="rect" coords="227,117,272,162" target="4" />
+ <area shape="rect" coords="278,117,323,162" target="5" />
+ <area shape="rect" coords="331,117,376,162" target="6" />
+ <area shape="rect" coords="382,117,428,162" target="7" />
+ <area shape="rect" coords="434,117,479,162" target="8" />
+ <area shape="rect" coords="486,117,531,162" target="9" />
+ <area shape="rect" coords="537,117,583,162" target="0" />
+ <area shape="rect" coords="588,117,633,162" target="-" />
+ <area shape="rect" coords="639,117,685,162" target="=" />
+ <area shape="rect" coords="691,117,746,162" target="backspace" />
+ <area shape="rect" coords="752,117,777,162" target="del" />
+ <area shape="rect" coords="22,170,86,215" target="tab" />
+ <area shape="rect" coords="92,170,138,215" target="Q" />
+ <area shape="rect" coords="143,170,189,215" target="W" />
+ <area shape="rect" coords="196,170,241,215" target="E" />
+ <area shape="rect" coords="247,170,292,215" target="R" />
+ <area shape="rect" coords="300,170,345,215" target="T" />
+ <area shape="rect" coords="352,170,397,215" target="Y" />
+ <area shape="rect" coords="403,170,448,215" target="U" />
+ <area shape="rect" coords="454,170,500,215" target="I" />
+ <area shape="rect" coords="507,170,552,215" target="O" />
+ <area shape="rect" coords="558,170,603,215" target="P" />
+ <area shape="rect" coords="610,170,655,215" target="[" />
+ <area shape="rect" coords="662,170,707,215" target="]" />
+ <area shape="rect" coords="713,170,777,215" target="#" />
+ <area shape="rect" coords="22,222,105,267" target="caps" />
+ <area shape="rect" coords="113,222,158,267" target="A" />
+ <area shape="rect" coords="165,222,210,267" target="S" />
+ <area shape="rect" coords="216,222,261,267" target="D" />
+ <area shape="rect" coords="268,222,314,267" target="F" />
+ <area shape="rect" coords="319,222,364,267" target="G" />
+ <area shape="rect" coords="372,222,417,267" target="H" />
+ <area shape="rect" coords="423,222,469,267" target="J" />
+ <area shape="rect" coords="476,222,521,267" target="K" />
+ <area shape="rect" coords="527,222,572,267" target="L" />
+ <area shape="rect" coords="579,222,624,267" target=";" />
+ <area shape="rect" coords="629,222,675,267" target="’" />
+ <area shape="rect" coords="681,222,777,267" target="enter" />
+ <area shape="rect" coords="22,275,125,320" target="shift" />
+ <area shape="rect" coords="146,274,192,320" target="Z" />
+ <area shape="rect" coords="198,274,243,320" target="X" />
+ <area shape="rect" coords="250,274,295,320" target="C" />
+ <area shape="rect" coords="301,274,346,320" target="V" />
+ <area shape="rect" coords="353,274,397,320" target="B" />
+ <area shape="rect" coords="405,274,450,320" target="N" />
+ <area shape="rect" coords="456,274,501,320" target="M" />
+ <area shape="rect" coords="508,274,553,320" target="," />
+ <area shape="rect" coords="560,274,604,320" target="." />
+ <area shape="rect" coords="611,274,656,320" target="/" />
+ <area shape="rect" coords="677,275,777,320" target="symbols" />
+ <area shape="rect" coords="21,326,86,372" target="ctrl" />
+ <area shape="rect" coords="96,326,157,372" target="alt" />
+ <area shape="rect" coords="168,326,655,372" target="space" />
+ <area shape="rect" coords="671,326,719,372" target="ok" />
+ <area shape="rect" coords="731,326,778,372" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="caps" type="switch_mode" mode="lowercase" />
+ <event name="symbols" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="|" type="key" code="124" ascii="124" modifiers="" />
+ <event name="-" type="key" code="45" ascii="45" modifiers="" />
+ <event name="=" type="key" code="61" ascii="61" modifiers="" />
+ <event name="[" type="key" code="91" ascii="91" modifiers="" />
+ <event name="]" type="key" code="93" ascii="93" modifiers="" />
+ <event name="#" type="key" code="35" ascii="35" modifiers="" />
+ <event name=";" type="key" code="59" ascii="59" modifiers="" />
+ <event name="’" type="key" code="39" ascii="39" modifiers="" />
+ <event name="," type="key" code="44" ascii="44" modifiers="" />
+ <event name="." type="key" code="46" ascii="46" modifiers="" />
+ <event name="/" type="key" code="47" ascii="47" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Lowercase Symbols -->
+ <mode name="lowercasesymbols" resolutions="800x399">
+ <layout resolution="800x399" bitmap="lowercase-symbols800x399.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="25,24,775,53" target="display_area"/>
+ <area shape="rect" coords="22,64,65,110" target="esc" />
+ <area shape="rect" coords="72,64,118,110" target="f1" />
+ <area shape="rect" coords="124,64,169,110" target="f2" />
+ <area shape="rect" coords="175,64,220,110" target="f3" />
+ <area shape="rect" coords="227,64,272,110" target="f4" />
+ <area shape="rect" coords="278,64,324,110" target="f5" />
+ <area shape="rect" coords="331,64,376,110" target="f6" />
+ <area shape="rect" coords="382,64,428,110" target="f7" />
+ <area shape="rect" coords="434,64,479,110" target="f8" />
+ <area shape="rect" coords="486,64,531,110" target="f9" />
+ <area shape="rect" coords="537,64,582,110" target="f10" />
+ <area shape="rect" coords="588,64,633,110" target="f11" />
+ <area shape="rect" coords="640,64,685,110" target="f12" />
+ <area shape="rect" coords="691,64,777,110" target="delete" />
+ <area shape="rect" coords="22,117,66,162" target="¬" />
+ <area shape="rect" coords="71,117,117,162" target="!" />
+ <area shape="rect" coords="123,117,169,162" target="quote" />
+ <area shape="rect" coords="174,117,220,162" target="£" />
+ <area shape="rect" coords="227,117,272,162" target="$" />
+ <area shape="rect" coords="278,117,323,162" target="%" />
+ <area shape="rect" coords="331,117,376,162" target="^" />
+ <area shape="rect" coords="382,117,428,162" target="&amp;" />
+ <area shape="rect" coords="434,117,479,162" target="*" />
+ <area shape="rect" coords="486,117,531,162" target="(" />
+ <area shape="rect" coords="537,117,583,162" target=")" />
+ <area shape="rect" coords="588,117,633,162" target="_" />
+ <area shape="rect" coords="639,117,685,162" target="+" />
+ <area shape="rect" coords="691,117,746,162" target="backspace" />
+ <area shape="rect" coords="752,117,777,162" target="del" />
+ <area shape="rect" coords="22,170,86,215" target="tab" />
+ <area shape="rect" coords="92,170,138,215" target="q" />
+ <area shape="rect" coords="143,170,189,215" target="w" />
+ <area shape="rect" coords="196,170,241,215" target="e" />
+ <area shape="rect" coords="247,170,292,215" target="r" />
+ <area shape="rect" coords="300,170,345,215" target="t" />
+ <area shape="rect" coords="352,170,397,215" target="y" />
+ <area shape="rect" coords="403,170,448,215" target="u" />
+ <area shape="rect" coords="454,170,500,215" target="i" />
+ <area shape="rect" coords="507,170,552,215" target="o" />
+ <area shape="rect" coords="558,170,603,215" target="p" />
+ <area shape="rect" coords="610,170,655,215" target="{" />
+ <area shape="rect" coords="662,170,707,215" target="}" />
+ <area shape="rect" coords="713,170,777,215" target="~" />
+ <area shape="rect" coords="22,222,105,267" target="caps" />
+ <area shape="rect" coords="113,222,158,267" target="a" />
+ <area shape="rect" coords="165,222,210,267" target="s" />
+ <area shape="rect" coords="216,222,261,267" target="d" />
+ <area shape="rect" coords="268,222,314,267" target="f" />
+ <area shape="rect" coords="319,222,364,267" target="g" />
+ <area shape="rect" coords="372,222,417,267" target="h" />
+ <area shape="rect" coords="423,222,469,267" target="j" />
+ <area shape="rect" coords="476,222,521,267" target="k" />
+ <area shape="rect" coords="527,222,572,267" target="l" />
+ <area shape="rect" coords="579,222,624,267" target=":" />
+ <area shape="rect" coords="629,222,675,267" target="@" />
+ <area shape="rect" coords="681,222,777,267" target="enter" />
+ <area shape="rect" coords="22,275,125,320" target="shift" />
+ <area shape="rect" coords="146,274,192,320" target="z" />
+ <area shape="rect" coords="198,274,243,320" target="x" />
+ <area shape="rect" coords="250,274,295,320" target="c" />
+ <area shape="rect" coords="301,274,346,320" target="v" />
+ <area shape="rect" coords="353,274,397,320" target="b" />
+ <area shape="rect" coords="405,274,450,320" target="n" />
+ <area shape="rect" coords="456,274,501,320" target="m" />
+ <area shape="rect" coords="508,274,553,320" target="&lt;" />
+ <area shape="rect" coords="560,274,604,320" target="&gt;" />
+ <area shape="rect" coords="611,274,656,320" target="?" />
+ <area shape="rect" coords="677,275,777,320" target="symbols" />
+ <area shape="rect" coords="21,326,86,372" target="ctrl" />
+ <area shape="rect" coords="96,326,157,372" target="alt" />
+ <area shape="rect" coords="168,326,655,372" target="space" />
+ <area shape="rect" coords="671,326,719,372" target="ok" />
+ <area shape="rect" coords="731,326,778,372" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="modifier" modifiers="shift" />
+ <event name="symbols" type="switch_mode" mode="lowercase" />
+ <event name="caps" type="switch_mode" mode="uppercasesymbols" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="£" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="¬" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="a" type="key" code="97" ascii="97" modifiers="" />
+ <event name="b" type="key" code="98" ascii="98" modifiers="" />
+ <event name="c" type="key" code="99" ascii="99" modifiers="" />
+ <event name="d" type="key" code="100" ascii="100" modifiers="" />
+ <event name="e" type="key" code="101" ascii="101" modifiers="" />
+ <event name="f" type="key" code="102" ascii="102" modifiers="" />
+ <event name="g" type="key" code="103" ascii="103" modifiers="" />
+ <event name="h" type="key" code="104" ascii="104" modifiers="" />
+ <event name="i" type="key" code="105" ascii="105" modifiers="" />
+ <event name="j" type="key" code="106" ascii="106" modifiers="" />
+ <event name="k" type="key" code="107" ascii="107" modifiers="" />
+ <event name="l" type="key" code="108" ascii="108" modifiers="" />
+ <event name="m" type="key" code="109" ascii="109" modifiers="" />
+ <event name="n" type="key" code="110" ascii="110" modifiers="" />
+ <event name="o" type="key" code="111" ascii="111" modifiers="" />
+ <event name="p" type="key" code="112" ascii="112" modifiers="" />
+ <event name="q" type="key" code="113" ascii="113" modifiers="" />
+ <event name="r" type="key" code="114" ascii="114" modifiers="" />
+ <event name="s" type="key" code="115" ascii="115" modifiers="" />
+ <event name="t" type="key" code="116" ascii="116" modifiers="" />
+ <event name="u" type="key" code="117" ascii="117" modifiers="" />
+ <event name="v" type="key" code="118" ascii="118" modifiers="" />
+ <event name="w" type="key" code="119" ascii="119" modifiers="" />
+ <event name="x" type="key" code="120" ascii="120" modifiers="" />
+ <event name="y" type="key" code="121" ascii="121" modifiers="" />
+ <event name="z" type="key" code="122" ascii="122" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+
+ <!-- Uppercase Symbols -->
+ <mode name="uppercasesymbols" resolutions="800x399">
+ <layout resolution="800x399" bitmap="uppercase-symbols800x399.bmp" transparent_color="255,0,255">
+ <map>
+ <area shape="rect" coords="25,24,775,53" target="display_area"/>
+ <area shape="rect" coords="22,64,65,110" target="esc" />
+ <area shape="rect" coords="72,64,118,110" target="f1" />
+ <area shape="rect" coords="124,64,169,110" target="f2" />
+ <area shape="rect" coords="175,64,220,110" target="f3" />
+ <area shape="rect" coords="227,64,272,110" target="f4" />
+ <area shape="rect" coords="278,64,324,110" target="f5" />
+ <area shape="rect" coords="331,64,376,110" target="f6" />
+ <area shape="rect" coords="382,64,428,110" target="f7" />
+ <area shape="rect" coords="434,64,479,110" target="f8" />
+ <area shape="rect" coords="486,64,531,110" target="f9" />
+ <area shape="rect" coords="537,64,582,110" target="f10" />
+ <area shape="rect" coords="588,64,633,110" target="f11" />
+ <area shape="rect" coords="640,64,685,110" target="f12" />
+ <area shape="rect" coords="691,64,777,110" target="delete" />
+ <area shape="rect" coords="22,117,66,162" target="¬" />
+ <area shape="rect" coords="71,117,117,162" target="!" />
+ <area shape="rect" coords="123,117,169,162" target="quote" />
+ <area shape="rect" coords="174,117,220,162" target="£" />
+ <area shape="rect" coords="227,117,272,162" target="$" />
+ <area shape="rect" coords="278,117,323,162" target="%" />
+ <area shape="rect" coords="331,117,376,162" target="^" />
+ <area shape="rect" coords="382,117,428,162" target="&amp;" />
+ <area shape="rect" coords="434,117,479,162" target="*" />
+ <area shape="rect" coords="486,117,531,162" target="(" />
+ <area shape="rect" coords="537,117,583,162" target=")" />
+ <area shape="rect" coords="588,117,633,162" target="_" />
+ <area shape="rect" coords="639,117,685,162" target="+" />
+ <area shape="rect" coords="691,117,746,162" target="backspace" />
+ <area shape="rect" coords="752,117,777,162" target="del" />
+ <area shape="rect" coords="22,170,86,215" target="tab" />
+ <area shape="rect" coords="92,170,138,215" target="Q" />
+ <area shape="rect" coords="143,170,189,215" target="W" />
+ <area shape="rect" coords="196,170,241,215" target="E" />
+ <area shape="rect" coords="247,170,292,215" target="R" />
+ <area shape="rect" coords="300,170,345,215" target="T" />
+ <area shape="rect" coords="352,170,397,215" target="Y" />
+ <area shape="rect" coords="403,170,448,215" target="U" />
+ <area shape="rect" coords="454,170,500,215" target="I" />
+ <area shape="rect" coords="507,170,552,215" target="O" />
+ <area shape="rect" coords="558,170,603,215" target="P" />
+ <area shape="rect" coords="610,170,655,215" target="{" />
+ <area shape="rect" coords="662,170,707,215" target="}" />
+ <area shape="rect" coords="713,170,777,215" target="~" />
+ <area shape="rect" coords="22,222,105,267" target="caps" />
+ <area shape="rect" coords="113,222,158,267" target="A" />
+ <area shape="rect" coords="165,222,210,267" target="S" />
+ <area shape="rect" coords="216,222,261,267" target="D" />
+ <area shape="rect" coords="268,222,314,267" target="F" />
+ <area shape="rect" coords="319,222,364,267" target="G" />
+ <area shape="rect" coords="372,222,417,267" target="H" />
+ <area shape="rect" coords="423,222,469,267" target="J" />
+ <area shape="rect" coords="476,222,521,267" target="K" />
+ <area shape="rect" coords="527,222,572,267" target="L" />
+ <area shape="rect" coords="579,222,624,267" target=":" />
+ <area shape="rect" coords="629,222,675,267" target="@" />
+ <area shape="rect" coords="681,222,777,267" target="enter" />
+ <area shape="rect" coords="22,275,125,320" target="shift" />
+ <area shape="rect" coords="146,274,192,320" target="Z" />
+ <area shape="rect" coords="198,274,243,320" target="X" />
+ <area shape="rect" coords="250,274,295,320" target="C" />
+ <area shape="rect" coords="301,274,346,320" target="V" />
+ <area shape="rect" coords="353,274,397,320" target="B" />
+ <area shape="rect" coords="405,274,450,320" target="N" />
+ <area shape="rect" coords="456,274,501,320" target="M" />
+ <area shape="rect" coords="508,274,553,320" target="&lt;" />
+ <area shape="rect" coords="560,274,604,320" target="&gt;" />
+ <area shape="rect" coords="611,274,656,320" target="?" />
+ <area shape="rect" coords="677,275,777,320" target="symbols" />
+ <area shape="rect" coords="21,326,86,372" target="ctrl" />
+ <area shape="rect" coords="96,326,157,372" target="alt" />
+ <area shape="rect" coords="168,326,655,372" target="space" />
+ <area shape="rect" coords="671,326,719,372" target="ok" />
+ <area shape="rect" coords="731,326,778,372" target="cancel" />
+ </map>
+ </layout>
+ <event name="esc" type="key" code="27" ascii="27" modifiers="" />
+ <event name="f1" type="key" code="282" ascii="315" modifiers="" />
+ <event name="f2" type="key" code="283" ascii="316" modifiers="" />
+ <event name="f3" type="key" code="284" ascii="317" modifiers="" />
+ <event name="f4" type="key" code="285" ascii="318" modifiers="" />
+ <event name="f5" type="key" code="286" ascii="319" modifiers="" />
+ <event name="f6" type="key" code="287" ascii="320" modifiers="" />
+ <event name="f7" type="key" code="288" ascii="321" modifiers="" />
+ <event name="f8" type="key" code="289" ascii="322" modifiers="" />
+ <event name="f9" type="key" code="290" ascii="323" modifiers="" />
+ <event name="f10" type="key" code="291" ascii="324" modifiers="" />
+ <event name="f11" type="key" code="292" ascii="325" modifiers="" />
+ <event name="f12" type="key" code="293" ascii="326" modifiers="" />
+ <event name="del" type="key" code="127" ascii="0" modifiers="" />
+ <event name="ctrl" type="modifier" modifiers="ctrl" />
+ <event name="alt" type="modifier" modifiers="alt" />
+ <event name="shift" type="switch_mode" mode="shiftlowercase" />
+ <event name="caps" type="switch_mode" mode="lowercasesymbols" />
+ <event name="symbols" type="switch_mode" mode="uppercase" />
+ <event name="backspace" type="key" code="8" ascii="8" modifiers="" />
+ <event name="enter" type="key" code="13" ascii="13" modifiers="" />
+ <event name="quote" type="key" code="34" ascii="34" modifiers="" />
+ <event name="£" type="key" code="163" ascii="163" modifiers="" />
+ <event name="$" type="key" code="36" ascii="36" modifiers="" />
+ <event name="%" type="key" code="37" ascii="37" modifiers="" />
+ <event name="^" type="key" code="94" ascii="94" modifiers="" />
+ <event name="&amp;" type="key" code="38" ascii="38" modifiers="" />
+ <event name="*" type="key" code="42" ascii="42" modifiers="" />
+ <event name="(" type="key" code="40" ascii="40" modifiers="" />
+ <event name=")" type="key" code="41" ascii="41" modifiers="" />
+ <event name="_" type="key" code="95" ascii="95" modifiers="" />
+ <event name="+" type="key" code="43" ascii="43" modifiers="" />
+ <event name="¬" type="key" code="172" ascii="172" modifiers="" />
+ <event name="!" type="key" code="33" ascii="33" modifiers="" />
+ <event name="{" type="key" code="123" ascii="123" modifiers="" />
+ <event name="}" type="key" code="125" ascii="125" modifiers="" />
+ <event name="~" type="key" code="126" ascii="126" modifiers="" />
+ <event name=":" type="key" code="58" ascii="58" modifiers="" />
+ <event name="@" type="key" code="64" ascii="64" modifiers="" />
+ <event name="&lt;" type="key" code="60" ascii="60" modifiers="" />
+ <event name="&gt;" type="key" code="62" ascii="62" modifiers="" />
+ <event name="?" type="key" code="63" ascii="63" modifiers="" />
+ <event name="space" type="key" code="32" ascii="32" modifiers="" />
+ <event name="tab" type="key" code="9" ascii="9" modifiers="" />
+ <event name="A" type="key" code="97" ascii="65" modifiers="shift" />
+ <event name="B" type="key" code="98" ascii="66" modifiers="shift" />
+ <event name="C" type="key" code="99" ascii="67" modifiers="shift" />
+ <event name="D" type="key" code="100" ascii="68" modifiers="shift" />
+ <event name="E" type="key" code="101" ascii="69" modifiers="shift" />
+ <event name="F" type="key" code="102" ascii="70" modifiers="shift" />
+ <event name="G" type="key" code="103" ascii="71" modifiers="shift" />
+ <event name="H" type="key" code="104" ascii="72" modifiers="shift" />
+ <event name="I" type="key" code="105" ascii="73" modifiers="shift" />
+ <event name="J" type="key" code="106" ascii="74" modifiers="shift" />
+ <event name="K" type="key" code="107" ascii="75" modifiers="shift" />
+ <event name="L" type="key" code="108" ascii="76" modifiers="shift" />
+ <event name="M" type="key" code="109" ascii="77" modifiers="shift" />
+ <event name="N" type="key" code="110" ascii="78" modifiers="shift" />
+ <event name="O" type="key" code="111" ascii="79" modifiers="shift" />
+ <event name="P" type="key" code="112" ascii="80" modifiers="shift" />
+ <event name="Q" type="key" code="113" ascii="81" modifiers="shift" />
+ <event name="R" type="key" code="114" ascii="82" modifiers="shift" />
+ <event name="S" type="key" code="115" ascii="83" modifiers="shift" />
+ <event name="T" type="key" code="116" ascii="84" modifiers="shift" />
+ <event name="U" type="key" code="117" ascii="85" modifiers="shift" />
+ <event name="V" type="key" code="118" ascii="86" modifiers="shift" />
+ <event name="W" type="key" code="119" ascii="87" modifiers="shift" />
+ <event name="X" type="key" code="120" ascii="88" modifiers="shift" />
+ <event name="Y" type="key" code="121" ascii="89" modifiers="shift" />
+ <event name="Z" type="key" code="122" ascii="90" modifiers="shift" />
+ <event name="0" type="key" code="48" ascii="48" modifiers="" />
+ <event name="1" type="key" code="49" ascii="49" modifiers="" />
+ <event name="2" type="key" code="50" ascii="50" modifiers="" />
+ <event name="3" type="key" code="51" ascii="51" modifiers="" />
+ <event name="4" type="key" code="52" ascii="52" modifiers="" />
+ <event name="5" type="key" code="53" ascii="53" modifiers="" />
+ <event name="6" type="key" code="54" ascii="54" modifiers="" />
+ <event name="7" type="key" code="55" ascii="55" modifiers="" />
+ <event name="8" type="key" code="56" ascii="56" modifiers="" />
+ <event name="9" type="key" code="57" ascii="57" modifiers="" />
+ <event name="ok" type="submit" />
+ <event name="cancel" type="cancel" />
+ <event name="quit" type="submit" />
+ <event name="delete" type="delete" />
+ </mode>
+</keyboard>
diff --git a/dists/engine-data/README b/dists/engine-data/README
index 7ccc52e5c8..ce74d590d9 100644
--- a/dists/engine-data/README
+++ b/dists/engine-data/README
@@ -21,4 +21,4 @@ sky.cpt:
TODO
toon.dat:
-'toon.dat' contains all the strings hardcoded in the original executables. \ No newline at end of file
+'toon.dat' contains all the strings hardcoded in the original executables.
diff --git a/dists/engine-data/kyra.dat b/dists/engine-data/kyra.dat
index 1d79ceddfd..902d55c457 100644
--- a/dists/engine-data/kyra.dat
+++ b/dists/engine-data/kyra.dat
Binary files differ
diff --git a/dists/macosx/Info.plist b/dists/macosx/Info.plist
index 20081ccc80..2e9067516c 100644
--- a/dists/macosx/Info.plist
+++ b/dists/macosx/Info.plist
@@ -28,5 +28,9 @@
<string>NSApplication</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2011 The ScummVM team</string>
+ <key>SUFeedURL</key>
+ <string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+ <key>SUPublicDSAKeyFile</key>
+ <string>dsa_pub.pem</string>
</dict>
</plist>
diff --git a/dists/macosx/Info.plist.in b/dists/macosx/Info.plist.in
index 3ba5a080f0..4a01690d73 100644
--- a/dists/macosx/Info.plist.in
+++ b/dists/macosx/Info.plist.in
@@ -28,5 +28,9 @@
<string>NSApplication</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright 2001-2011 The ScummVM team</string>
+ <key>SUFeedURL</key>
+ <string>http://www.scummvm.org/appcasts/macosx/release.xml</string>
+ <key>SUPublicDSAKeyFile</key>
+ <string>dsa_pub.pem</string>
</dict>
</plist>
diff --git a/dists/macosx/scummvm_osx_appcast.xml b/dists/macosx/scummvm_osx_appcast.xml
new file mode 100755
index 0000000000..455b062b6b
--- /dev/null
+++ b/dists/macosx/scummvm_osx_appcast.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rss version="2.0" xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" xmlns:dc="http://purl.org/dc/elements/1.1/">
+ <channel>
+ <title>ScummVM Changelog</title>
+ <link>http://scummvm.org/scummvm_appcast.xml</link>
+ <description>Most recent changes with links to updates.</description>
+ <language>en</language>
+ <item>
+ <title>Version 1.2.1 (3 bugs fixed; 2 new features)</title>
+ <sparkle:releaseNotesLink>
+ http://sourceforge.net/projects/scummvm/files/scummvm/1.2.1/ReleaseNotes/view
+ </sparkle:releaseNotesLink>
+ <pubDate>Sun, 19 Dec 2010 12:20:11 +0000</pubDate>
+ <enclosure url="http://scummvm.org/ScummVM 1.2.1-Test.zip" sparkle:version="1.2.1" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
+ </item>
+ <item>
+ <title>Version 1.2.0</title>
+ <sparkle:releaseNotesLink>
+ http://sourceforge.net/projects/scummvm/files/scummvm/1.2.0/ReleaseNotes/view
+ </sparkle:releaseNotesLink>
+ <pubDate>Fri, 15 Oct 2010 12:20:11 +0000</pubDate>
+ <enclosure url="http://scummvm.org/ScummVM 1.2.0-Test.zip" sparkle:version="1.2.0" length="1472893" type="application/octet-stream" sparkle:dsaSignature="234818feCa1JyW30nbkBwainOzrN6EQuAh" />
+ </item>
+ </channel>
+</rss>
diff --git a/dists/maemo/scummvm.servicewrapper b/dists/maemo/scummvm.servicewrapper
index 04909d03f9..733f6db6f3 100644
--- a/dists/maemo/scummvm.servicewrapper
+++ b/dists/maemo/scummvm.servicewrapper
@@ -9,4 +9,3 @@ export SCUMMVM_MAEMO_DEVICE=$(awk '/^product/ { print $2;}' /proc/component_vers
[ -x ${0}.bin ] && ${0}.bin "$@"
# optified binary
[ -x /opt/scummvm/bin/scummvm ] && /opt/scummvm/bin/scummvm "$@"
-
diff --git a/dists/motomagx/mgx/readme-motomagx-mgx.txt b/dists/motomagx/mgx/readme-motomagx-mgx.txt
index 16f18bb632..9659e00552 100644
--- a/dists/motomagx/mgx/readme-motomagx-mgx.txt
+++ b/dists/motomagx/mgx/readme-motomagx-mgx.txt
@@ -57,4 +57,3 @@ keymap_global_MENU=ESCAPE
keymap_global_SKLI=ASTERISK
keymap_gui_VIRT=TAB
keymap_gui_REMP=CLEAR
-
diff --git a/dists/motomagx/mgx/scummvm.cfg b/dists/motomagx/mgx/scummvm.cfg
index 91567e8020..8780ba2115 100644
--- a/dists/motomagx/mgx/scummvm.cfg
+++ b/dists/motomagx/mgx/scummvm.cfg
@@ -3,4 +3,4 @@ Exec = scummvm.lin
Icon = icon.png
Author = ScummVM Team
Version = trunk
-Comment = ScummVM \ No newline at end of file
+Comment = ScummVM
diff --git a/dists/motomagx/pep/description.ini b/dists/motomagx/pep/description.ini
index 634214e5ac..8daa626ea7 100644
--- a/dists/motomagx/pep/description.ini
+++ b/dists/motomagx/pep/description.ini
@@ -17,4 +17,3 @@ Icon= scummvm_small_usr.png
[AddAppToMenu]
ParentFolder= root
-
diff --git a/dists/os2/readme.os2 b/dists/os2/readme.os2
index a753323f4a..e0a058a708 100644
--- a/dists/os2/readme.os2
+++ b/dists/os2/readme.os2
@@ -10,4 +10,4 @@ All feedback is appreciated!
Thanks!
Paul Smedley
-5th May, 2010 \ No newline at end of file
+5th May, 2010
diff --git a/dists/redhat/scummvm.spec b/dists/redhat/scummvm.spec
index 777e0afc8a..fc63d11ecd 100644
--- a/dists/redhat/scummvm.spec
+++ b/dists/redhat/scummvm.spec
@@ -68,6 +68,8 @@ install -m644 -D dists/engine-data/queen.tbl %{buildroot}%{_datadir}/scummvm/que
install -m644 -D dists/engine-data/sky.cpt %{buildroot}%{_datadir}/scummvm/sky.cpt
install -m644 -D dists/engine-data/drascula.dat %{buildroot}%{_datadir}/scummvm/drascula.dat
install -m644 -D dists/engine-data/teenagent.dat %{buildroot}%{_datadir}/scummvm/teenagent.dat
+install -m644 -D dists/engine-data/hugo.dat %{buildroot}%{_datadir}/scummvm/hugo.dat
+install -m644 -D dists/engine-data/toon.dat %{buildroot}%{_datadir}/scummvm/toon.dat
desktop-file-install --vendor scummvm --dir=%{buildroot}/%{_datadir}/applications dists/scummvm.desktop
%clean
@@ -105,6 +107,8 @@ fi
%{_datadir}/scummvm/lure.dat
%{_datadir}/scummvm/drascula.dat
%{_datadir}/scummvm/teenagent.dat
+%{_datadir}/scummvm/hugo.dat
+%{_datadir}/scummvm/toon.dat
%{_mandir}/man6/scummvm.6*
#------------------------------------------------------------------------------
@@ -195,4 +199,3 @@ fi
- save & load support
* Mon Oct 8 2001 (0.0.1)
- initial version
-
diff --git a/dists/redhat/scummvm.spec.in b/dists/redhat/scummvm.spec.in
index 13ce600d02..56e165c979 100644
--- a/dists/redhat/scummvm.spec.in
+++ b/dists/redhat/scummvm.spec.in
@@ -68,6 +68,8 @@ install -m644 -D dists/engine-data/queen.tbl %{buildroot}%{_datadir}/scummvm/que
install -m644 -D dists/engine-data/sky.cpt %{buildroot}%{_datadir}/scummvm/sky.cpt
install -m644 -D dists/engine-data/drascula.dat %{buildroot}%{_datadir}/scummvm/drascula.dat
install -m644 -D dists/engine-data/teenagent.dat %{buildroot}%{_datadir}/scummvm/teenagent.dat
+install -m644 -D dists/engine-data/hugo.dat %{buildroot}%{_datadir}/scummvm/hugo.dat
+install -m644 -D dists/engine-data/toon.dat %{buildroot}%{_datadir}/scummvm/toon.dat
desktop-file-install --vendor scummvm --dir=%{buildroot}/%{_datadir}/applications dists/scummvm.desktop
%clean
@@ -105,6 +107,8 @@ fi
%{_datadir}/scummvm/lure.dat
%{_datadir}/scummvm/drascula.dat
%{_datadir}/scummvm/teenagent.dat
+%{_datadir}/scummvm/hugo.dat
+%{_datadir}/scummvm/toon.dat
%{_mandir}/man6/scummvm.6*
#------------------------------------------------------------------------------
@@ -195,4 +199,3 @@ fi
- save & load support
* Mon Oct 8 2001 (0.0.1)
- initial version
-
diff --git a/dists/wii/READMII b/dists/wii/READMII
index 66b00f6871..bd2a6cfa80 100644
--- a/dists/wii/READMII
+++ b/dists/wii/READMII
@@ -106,4 +106,3 @@ THANKS
shagkur and WinterMute, for devkitppc/libogc and the coorperation
svpe, for fixing the libfat feof/thread bugs on the last minute
para, for making wiiuse available in libogc
-
diff --git a/dists/wii/meta.xml b/dists/wii/meta.xml
index 68460c4721..fd554f231e 100644
--- a/dists/wii/meta.xml
+++ b/dists/wii/meta.xml
@@ -10,4 +10,3 @@
Some of the adventures ScummVM supports include Adventure Soft's Simon the Sorcerer 1 and 2; Revolution's Beneath A Steel Sky and Broken Sword I &amp; II; Flight of the Amazon Queen; Wyrmkeep's Inherit the Earth; Coktel Vision's Gobliiins; Westwood Studios' The Legend of Kyrandia and games based on LucasArts' SCUMM (Script Creation Utility for Maniac Mansion) system such as Monkey Island, Day of the Tentacle, Sam and Max and more.</long_description>
<no_ios_reload/>
</app>
-
diff --git a/dists/wii/meta.xml.in b/dists/wii/meta.xml.in
index 970ae7d54b..356b054731 100644
--- a/dists/wii/meta.xml.in
+++ b/dists/wii/meta.xml.in
@@ -10,4 +10,3 @@
Some of the adventures ScummVM supports include Adventure Soft's Simon the Sorcerer 1 and 2; Revolution's Beneath A Steel Sky and Broken Sword I &amp; II; Flight of the Amazon Queen; Wyrmkeep's Inherit the Earth; Coktel Vision's Gobliiins; Westwood Studios' The Legend of Kyrandia and games based on LucasArts' SCUMM (Script Creation Utility for Maniac Mansion) system such as Monkey Island, Day of the Tentacle, Sam and Max and more.</long_description>
<no_ios_reload/>
</app>
-
diff --git a/dists/win32/ScummVM.iss b/dists/win32/ScummVM.iss
index 8edc647e62..17afb23716 100644
--- a/dists/win32/ScummVM.iss
+++ b/dists/win32/ScummVM.iss
@@ -25,25 +25,17 @@ LanguageDetectionMethod=uilanguage
[Languages]
Name: en; MessagesFile: compiler:Default.isl
-Name: eu; MessagesFile: compiler:Languages\Basque.isl
Name: br; MessagesFile: compiler:Languages\BrazilianPortuguese.isl
Name: ca; MessagesFile: compiler:Languages\Catalan.isl
Name: cz; MessagesFile: compiler:Languages\Czech.isl
Name: da; MessagesFile: compiler:Languages\Danish.isl
-Name: nl; MessagesFile: compiler:Languages\Dutch.isl
-Name: fi; MessagesFile: compiler:Languages\Finnish.isl
Name: fr; MessagesFile: compiler:Languages\French.isl
Name: de; MessagesFile: compiler:Languages\German.isl
-Name: he; MessagesFile: compiler:Languages\Hebrew.isl
Name: hu; MessagesFile: compiler:Languages\Hungarian.isl
Name: it; MessagesFile: compiler:Languages\Italian.isl
-Name: ja; MessagesFile: compiler:Languages\Japanese.isl
Name: nb; MessagesFile: compiler:Languages\Norwegian.isl
Name: pl; MessagesFile: compiler:Languages\Polish.isl
-Name: pt; MessagesFile: compiler:Languages\Portuguese.isl
Name: ru; MessagesFile: compiler:Languages\Russian.isl
-Name: sk; MessagesFile: compiler:Languages\Slovak.isl
-Name: sl; MessagesFile: compiler:Languages\Slovenian.isl
Name: es; MessagesFile: compiler:Languages\Spanish.isl
[Icons]
@@ -54,11 +46,15 @@ Name: {group}\Authors; Filename: {app}\AUTHORS.txt; WorkingDir: {app}; Comment:
Name: {group}\Copying; Filename: {app}\COPYING.txt; WorkingDir: {app}; Comment: COPYING; Flags: createonlyiffileexists
Name: {group}\Copying.LGPL; Filename: {app}\COPYING.LGPL.txt; WorkingDir: {app}; Comment: COPYING.LGPL; Flags: createonlyiffileexists
Name: {group}\Copyright; Filename: {app}\COPYRIGHT.txt; WorkingDir: {app}; Comment: COPYRIGHT; Flags: createonlyiffileexists
-Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists
Name: {group}\News; Filename: {app}\NEWS.txt; WorkingDir: {app}; Comment: NEWS; Flags: createonlyiffileexists
+Name: {group}\QuickStart; Filename: {app}\QUICKSTART.txt; WorkingDir: {app}; Comment: QUICKSTART; Flags: createonlyiffileexists; Languages: not (fr or de)
+Name: {group}\QuickStart_fr; Filename: {app}\QuickStart_fr.txt; WorkingDir: {app}; Comment: QuickStart_fr; Flags: createonlyiffileexists; Languages: fr
+Name: {group}\Readme; Filename: {app}\README.txt; WorkingDir: {app}; Comment: README; Flags: createonlyiffileexists; Languages: not de
+Name: {group}\Liesmich; Filename: {app}\Liesmich.txt; WorkingDir: {app}; Comment: Liesmich; Flags: createonlyiffileexists; Languages: de
+Name: {group}\Schnellstart; Filename: {app}\Schnellstart.txt; WorkingDir: {app}; Comment: Schnellstart; Flags: createonlyiffileexists; Languages: de
[Run]
-Filename: {app}\scummvm.exe; Flags: nowait skipifdoesntexist postinstall skipifsilent; Description: Launch ScummVM
+Filename: {app}\ScummVM.exe; Flags: nowait skipifdoesntexist postinstall skipifsilent
[UninstallDelete]
Type: files; Name: {app}\ISTool.url
@@ -69,7 +65,11 @@ Source: COPYING.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYING.LGPL.txt; DestDir: {app}; Flags: ignoreversion
Source: COPYRIGHT.txt; DestDir: {app}; Flags: ignoreversion
Source: NEWS.txt; DestDir: {app}; Flags: ignoreversion
-Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme
+Source: doc/QUICKSTART.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: not (fr or de)
+Source: doc/fr/QuickStart_fr.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: fr
+Source: doc/de/Schnellstart.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
+Source: README.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: not de
+Source: doc/de/Liesmich.txt; DestDir: {app}; Flags: ignoreversion isreadme; Languages: de
Source: README-SDL.txt; DestDir: {app}; Flags: ignoreversion
Source: scummvm.exe; DestDir: {app}; Flags: ignoreversion
Source: SDL.dll; DestDir: {app}
diff --git a/dists/win32/scummvm.gdf.xml b/dists/win32/scummvm.gdf.xml
index 1c50924e15..4a0c067b05 100644
--- a/dists/win32/scummvm.gdf.xml
+++ b/dists/win32/scummvm.gdf.xml
@@ -41,4 +41,4 @@
</GameTasks>
</ExtendedProperties>
</GameDefinition>
-</GameDefinitionFile> \ No newline at end of file
+</GameDefinitionFile>
diff --git a/doc/translations/README-translation_template.txt b/doc/QuickStart
index ec43ebef60..b397979866 100755..100644
--- a/doc/translations/README-translation_template.txt
+++ b/doc/QuickStart
@@ -155,4 +155,3 @@ Finally, please report each issue separately; do not file multiple
issues on the same ticket. (Otherwise, it gets difficult to track the
status of each individual bug). Please keep also in mind that all the
bug reports must be written in English.
-
diff --git a/doc/de/Liesmich b/doc/de/Liesmich
new file mode 100644
index 0000000000..88e10b51bc
--- /dev/null
+++ b/doc/de/Liesmich
@@ -0,0 +1,2316 @@
+ScummVM - Liesmich-Datei
+------------------------------------------------------------------------
+
+Dieses Dokument ist größtenteils eine Übersetzung der englischen README-Datei.
+Das Original-Dokument ist womöglich aktueller. Sollten Sie hier also nicht das
+finden, was Sie benötigen und ein wenig Englisch können, sollten Sie sich die
+englische README-Datei ansehen.
+
+Für weitere Informationen, Kompatibilitätslisten, Einzelheiten zu Spenden, die
+neusten veröffentlichten Versionen, Fortschrittsberichte und mehr besuchen Sie
+bitte die ScummVM-Website unter der Adresse: http://www.scummvm.org/
+
+
+Inhaltsverzeichnis:
+-------------------
+1.0) Einführung
+ * 1.1 Ãœber ScummVM
+ * 1.2 Schnellstart
+2.0) Kontakt
+ * 2.1 Fehler berichten
+3.0) Unterstützte Spiele
+ * 3.1 Kopierschutz
+ * 3.2 Hinweise zu Commodore64-Spielen
+ * 3.3 Hinweise zu Maniac Mansion NES
+ * 3.4 Hinweise zu Macintosh-Spielen
+ * 3.5 Hinweise zu Spielen auf mehren CDs
+ * 3.6 Hinweise zu The Curse of Monkey Island
+ * 3.7 Hinweise zu Baphomets Fluch I und II
+ * 3.8 Hinweise zu Beneath a Steel Sky
+ * 3.9 Hinweise zu Flight of the Amazon Queen
+ * 3.10 Hinweise zu Gobliiins
+ * 3.11 Hinweise zu Inherit the Earth: Quest for the Orb (Macintosh)
+ * 3.12 Hinweise zu Simon the Sorcerer 1 und 2
+ * 3.13 Hinweise zu Floyd - Es gibt noch Helden
+ * 3.14 Hinweise zu The Legend of Kyrandia
+ * 3.15 Hinweise zum vorhersagenden Eingabedialog bei Sierras AGI-Spielen
+ * 3.16 Hinweise zu Mickey's Space Adventure
+ * 3.17 Hinweise zu Winnie the Pooh
+ * 3.18 Hinweise zu Troll's Tale
+ * 3.19 Hinweise zu Draci Historie
+ * 3.20 Bekannte Probleme
+4.0) Unterstützte Plattformen
+5.0) ScummVM verwenden
+ * 5.1 Kommandozeilenoptionen
+ * 5.2 Sprachoptionen
+ * 5.3 Grafikfilter
+ * 5.4 Globales Menü
+ * 5.5 Tastenkürzel
+6.0) Spielstände
+ * 6.1 Automatische Spielstände
+ * 6.2 Spielstände umwandeln
+ * 6.3 Spielstände von Kommandozeile aus anzeigen/laden
+7.0) Musik und Sound
+ * 7.1 AdLib-Emulation
+ * 7.2 FluidSynth-MIDI-Emulation
+ * 7.3 MT-32-Emulation
+ * 7.4 MIDI-Emulation
+ * 7.5 Native MIDI-Unterstützung
+ * 7.6 UNIX-eigene, ALSA- und IRIX' Sequenzer-Unterstützung
+ * 7.7 TiMidity++-MIDI-Server-Unterstützung
+ * 7.8 Komprimierte Audio-Dateien verwenden (MP3, Ogg Vorbis, FLAC)
+ * 7.9 Ausgabefrequenzen
+8.0) Konfigurationsdatei
+9.0) Kompilierung
+
+
+1.0) Einführung:
+---- -----------
+
+1.1) Ãœber ScummVM:
+---- -------------
+ScummVM ist ein Programm, welches es Ihnen ermöglicht, bestimmte klassische
+Grafik-Adventure (unter anderem aus dem Point-and-Click-Bereich) zu spielen,
+vorausgesetzt, Sie sind im Besitz der Dateien des Spiels. Der Trick dabei ist:
+ScummVM ersetzt lediglich die Funktion der ausführbaren Dateien, die mit den
+Spielen kamen, was ermöglicht, diese Spiele auf Systemen zu spielen, für welche
+sie nie erstellt wurden!
+
+Ursprünglich wurde dieses Programm dafür entwickelt, um SCUMM-Spiele von
+LucasArts auszuführen, wie beispielsweise Maniac Mansion, Monkey Island, Day of
+the Tentacle oder Sam & Max. SCUMM steht als Abkürzung für „Script Creation
+Utility for Maniac Mansion“ (deutsch etwa: Skripterstellungsdienstprogramm für
+Maniac Mansion), was das erste Spiel von LucasArts war, für welches LucasArts
+dieses System entworfen hatte. Und viel später verlieh es seinen Namen an
+ScummVM (wobei „VM“ für „Virtuelle Maschine“ steht).
+
+Mit der Zeit wurde Unterstützung für viele Nicht-SCUMM-Spiele hinzugefügt und
+ScummVM unterstützt nun auch viele AGI- und SCI-Spiele von Sierra (wie
+beispielsweise King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 und 2, Simon
+the Sorcerer 1 und 2, Beneath A Steel Sky, Lure of the Temptress, Baphomets
+Fluch I und II, Flight of the Amazon Queen, Gobliiins 1-3, die Adventure-Reihe
+The Legend of Kyrandia, viele der SCUMM-Spiele für Kinder von Humongous
+Entertainment (einschließlich der Spiele von Fritzi Fisch und Töff-Töff) und
+viele mehr. Sie können eine vollständige Liste mit Einzelheiten einsehen, welche
+Auskunft darüber gibt, welche Spiele unterstützt werden und wie gut. Gehen Sie
+hierfür auf die Kompatibilitätsseite. ScummVM wird fortlaufend verbessert, also
+schauen Sie öfter einmal vorbei.
+
+Unter den Systemen, mit denen Sie diese Spiele spielen können, befinden sich
+normale Schreibtisch-Computer (mit den Betriebssystemen Windows, Linux,
+Mac OS X, ...), Spielekonsolen (Dreamcast, Nintendo DS & Wii, PS2, PSP, ...),
+Smartphones (Android, iPhone, PocketPC, Symbian ...) und einige weitere.
+
+Zurzeit befindet sich ScummVM immer noch stark in der Entwicklung. Seien Sie
+sich bewusst, dass wir zwar versuchen, dass viele Spiele mit wenigen erheblichen
+Fehlern durchgespielt werden können, aber es dennoch zu Abstürzen kommen kann
+und wir keine Gewähr übernehmen. Davon abgesehen: Einige Spiele werden seit
+längerer Zeit unterstützt und sollten in jeder neusten stabilen veröffentlichten
+Version ohne größere Probleme laufen. Sie können sich einen Eindruck davon
+verschaffen, wie gut jedes Spiel unter ScummVM läuft, indem Sie auf die
+Kompatibilitätsseite schauen. Wenn Sie sich ein wenig im Internet umsehen,
+können Sie feststellen, dass ScummVM sogar kommerziell genutzt wird, um einige
+der unterstützen Spiele für moderne Plattformen wiederzuveröffentlichen. Dies
+zeigt, dass mehrere Firmen mit der Qualität der Software zufrieden sind und wie
+gut einige der Spiele mit Hilfe des Programms laufen.
+
+Wenn Ihnen ScummVM gefällt, können Sie uns gerne Geld spenden, indem Sie auf die
+PayPal-Schaltfläche auf der ScummVM-Website klicken. Dies hilft uns dabei,
+notwendige Dienstprogramme zu kaufen, um ScummVM einfacher und schneller zu
+entwickeln. Wenn Sie nicht spenden können, dürfen Sie auch gerne einen Patch
+beisteuern.
+
+1.2) Schnellstart:
+---- -------------
+WICHTIG: In dieser kurzen Anleitung wird davon ausgegangen, dass Sie ScummVM auf
+Deutsch benutzen. Standardmäßig wird ScummVM die Sprache Ihres Betriebssystems
+verwenden. Wenn Sie ScummVM lieber auf Englisch verwenden möchten, benutzen Sie
+bitte die Anleitung in der englischen README-Datei.
+
+Für die ungeduldigen unter den Anwendern ist hier in fünf einfachen Schritten
+kurz beschrieben, wie man ScummVM lauffähig macht und das Programm verwendet.
+
+1. Laden Sie ScummVM unter der Adresse http://www.scummvm.org/downloads.php
+herunter und installieren Sie es.
+
+2. Erstellen Sie ein Verzeichnis auf Ihrer Festplatte und kopieren Sie die
+Dateien des Spiels vom Original-Datenträger in dieses Verzeichnis. Wiederholen
+Sie diesen Vorgang für jedes Spiel, das Sie spielen möchten (es ist besser, für
+jedes Spiel ein eigenes Verzeichnis zu verwenden).
+
+3. Starten Sie ScummVM.
+
+Sollte an diesem Punkt ScummVM auf Englisch statt auf Deutsch erscheinen, gehen
+Sie wie folgt vor, um die Spracheinstellung zu ändern:
+-Klicken Sie auf „Options“.
+-Klicken Sie auf den rechten Pfeil in der Reiterleiste und wählen den Reiter
+ „Misc“ aus.
+-Wählen Sie im Feld „GUI Language“ „Deutsch“ aus und klicken auf „OK“.
+-Bestätigen Sie die erscheinende Nachricht, klicken auf „Quit“, um ScummVM zu
+ beenden, und starten dann das Programm erneut.
+
+Nun klicken Sie auf „Spiel hinzufügen“, wählen das Verzeichnis mit den Dateien
+des Spiels aus (versuchen Sie nicht, die Dateien des Spiels selbst auszuwählen!)
+und klicken Sie auf „Auswählen“.
+
+4. Ein Dialog sollte erscheinen, der Ihnen ermöglicht, verschiedene
+Einstellungen vorzunehmen, sollten Sie dies wünschen (es sollte jedoch in
+Ordnung sein, alles voreingestellt zu belassen). Bestätigen Sie diesen Dialog.
+
+5. Wählen Sie das Spiel aus der Liste aus, welches Sie spielen möchten, und
+klicken Sie auf „Starten“.
+
+ScummVM behält die Spiele in der Liste, die Sie hinzufügen. Wenn Sie also
+ScummVM schließen, werden beim nächsten Start alle Spiele, die Sie zuvor
+hinzugefügt haben, in der Liste angezeigt. Sie können somit direkt zu Schritt 5
+übergehen, außer Sie wollen noch mehr Spiele hinzufügen.
+
+Tipp: Wenn Sie mehrere Spiele auf einmal hinzufügen möchten, drücken Sie die
+Umschalt-Taste (Shift), bevor Sie auf „Spiel hinzufügen“ klicken. Diese
+Schaltfläche wird somit ihren Text zu „Durchsuchen“ umändern und wenn Sie dann
+auf diese klicken, werden Sie auch dazu aufgefordert, ein Verzeichnis
+auszuwählen, nur dieses Mal wird ScummVM alle Unterverzeichnisse automatisch
+nach unterstützen Spielen durchsuchen.
+
+
+2.0) Kontakt:
+---- --------
+Der einfachste Weg, um mit dem ScummVM-Team in Verbindung zu treten, ist,
+Fehlerberichte einzusenden (siehe Abschnitt 2.1) oder durch Verwendung des
+Forums unter der Adresse http://forums.scummvm.org .
+Sie können ebenso der Mailing-Liste scummvm-devel beitreten und an diese E-Mails
+versenden oder mit uns im IRC chatten (#scummvm unter irc.freenode.net). Bitte
+fordern Sie uns nicht dazu auf, ein nicht unterstütztes Spiel zu unterstützen.
+Lesen Sie zuerst die Seite FAQ (Häufig gestellte Fragen) auf unserer Website.
+Bitte beachten Sie, dass die offizielle Sprache des Forums, der Mailing-Liste
+und des Chats Englisch ist und keine andere Sprache dort verwendet werden
+sollte.
+
+
+2.1) Fehler berichten:
+---- -----------------
+Um einen Fehler zu berichten, erstellen Sie bitte ein SourceForge-Konto und
+folgen Sie dem Link „Bug Tracker“ auf der ScummVM-Website. Bitte stellen Sie
+sicher, dass sich der Bug wiedererzeugen lässt und immer noch in der neusten
+Version von Git oder des Daily Builds auftritt. Bitte sehen Sie auch auf der
+Kompatibilitätsliste der ScummVM-Website für dieses Spiel nach, um
+sicherzustellen, dass das Problem nicht bereits bekannt ist:
+
+ http://www.scummvm.org/compatibility_stable.php
+
+Bitte berichten Sie keine Fehler zu Spielen, die nicht als durchspielbar im
+Bereich „Supported Games“ oder der Kompatibilitätsliste aufgelistet sind.
+Wir -wissen-, dass diese Spiele Fehler aufweisen.
+
+Bitte liefern Sie folgende Informationen:
+ - ScummVM-Version (BITTE mit neuster Version von Git oder des Daily Builds
+ testen)
+ - Einzelheiten zum Fehler, einschließlich Anweisungen, um den Fehler
+ hervorzurufen
+ - Sprache des Spiels (Deutsch, Englisch ...)
+ - Version des Spiels (Version mit Sprachausgabe [Talkie],
+ Diskettenversion, ...)
+ - Plattform und gegebenenfalls Compiler (Win32, Linux, FreeBSD, ...)
+ - Fügen Sie - wenn möglich - einen Speicherstand hinzu.
+ - Wenn dieser Fehler erst seit kurzem Auftritt, teilen Sie bitte die letzte
+ Version ohne den Fehler mit und die erste Version mit diesem Fehler.
+ Auf diese Weise können wir diesen schneller beseitigen, indem wir die
+ vorgenommen Veränderungen einsehen.
+
+Zum Schluss möchten wir Sie noch bitten, jeden Punkt einzeln zu berichten. Bitte
+senden Sie nicht mehrere Punkte mit demselben Ticket ein, ansonsten wird es
+schwierig, den Status jedes einzelnen Fehlers zu verfolgen. Denken Sie bitte
+auch daran, dass alle Fehlerberichte in Englisch verfasst sein müssen.
+
+
+3.0) Unterstützte Spiele:
+---- --------------------
+Im Moment gelten folgende Spiele als funktionsfähig gemeldet und sollten bis zum
+Ende spielbar sein:
+
+SCUMM-Spiele von LucasArts:
+ Maniac Mansion [maniac]
+ Zak McKracken and the Alien Mindbenders [zak]
+ Indiana Jones and the Last Crusade [indy3]
+ Loom [loom]
+ The Secret of Monkey Island [monkey]
+ Monkey Island 2: LeChuck's Revenge [monkey2]
+ Indiana Jones and the Fate of Atlantis [atlantis]
+ Day of the Tentacle [tentacle]
+ Sam & Max Hit the Road [samnmax]
+ Vollgas [ft]
+ The Dig [dig]
+ The Curse of Monkey Island [comi]
+
+AGI-Spiele von Sierra:
+ The Black Cauldron [bc]
+ Gold Rush! [goldrush]
+ King's Quest I [kq1]
+ King's Quest II [kq2]
+ King's Quest III [kq3]
+ King's Quest IV [kq4]
+ Leisure Suit Larry in the Land of the
+ Lounge Lizards [lsl1]
+ Mixed-Up Mother Goose [mixedup]
+ Manhunter 1: New York [mh1]
+ Manhunter 2: San Francisco [mh2]
+ Police Quest I: In Pursuit of the Death
+ Angel [pq1]
+ Space Quest I: The Sarien Encounter [sq1]
+ Space Quest II: Vohaul's Revenge [sq2]
+ Erstellte Spiele von Fans [agi-fanmade]
+
+AGOS-Spiele von Adventuresoft/Horrorsoft:
+ Elvira - Mistress of the Dark [elvira1]
+ Elvira II - The Jaws of Cerberus [elvira2]
+ Personal Nightmare [pn]
+ Waxworks [waxworks]
+ Simon the Sorcerer 1 [simon1]
+ Simon the Sorcerer 2 [simon2]
+ Simon the Sorcerer's Game Pack
+ - Dämonen in meinem PC [dimp]
+ Simon the Sorcerer's Game Pack
+ - Jumble [jumble]
+ Simon the Sorcerer's Game Pack
+ - NoPatience [puzzle]
+ Simon the Sorcerer's Game Pack
+ - Swampy Adventures [swampy]
+ Floyd - Es gibt noch Helden [feeble]
+
+GOB-Spiele von Coktel Vision:
+ Bargon Attack [bargon]
+ Gobliiins [gob1]
+ Gobliins 2 [gob2]
+ Goblins 3 [gob3]
+ Lost in Time [lostintime]
+ Woodruff and the Schnibble of Azimuth [woodruff]
+ Ween: The Prophecy [ween]
+
+MADE-Spiele von Activision:
+ Leather Goddesses of Phobos 2 [lgop2]
+ Return to Zork [rtz]
+ Rodney's Funscreen [rodney]
+ The Manhole [manhole]
+
+Andere Spiele:
+ Beneath a Steel Sky [sky]
+ Baphomets Fluch [sword1]
+ Baphomets Fluch II:
+ Die Spiegel der Finsternis [sword2]
+ Cruise for a Corpse [cruise]
+ Discworld [dw]
+ Discworld 2: Vermutlich vermisst [dw2]
+ Draci Historie [draci]
+ Drascula: The Vampire Strikes Back [drascula]
+ Flight of the Amazon Queen [queen]
+ Future Wars [fw]
+ Erben der Erde: Die große Suche [ite]
+ Nippon Safes Inc. [nippon]
+ The Legend of Kyrandia [kyra1]
+ The Legend of Kyrandia: The Hand of Fate [kyra2]
+ The Legend of Kyrandia: Malcolm's Revenge [kyra3]
+ Touché: Die Abenteuer des fünften
+ Musketiers [touche]
+
+SCUMM-Spiele von Humongous Entertainment:
+ Backyard Baseball [baseball]
+ Backyard Baseball 2001 [baseball2001]
+ Backyard Football [football]
+ Big Thinkers First Grade [thinker1]
+ Big Thinkers Kindergarten [thinkerk]
+ Blue's 123 Time Activities [Blues123Time]
+ Blue's ABC Time Activities [BluesABCTime]
+ Blue's Art Time Activities [arttime]
+ Blue's Birthday Adventure [BluesBirthday]
+ Blue's Reading Time Activities [readtime]
+ Fatty Bear's Birthday Surprise [fbear]
+ Fatty Bear's Fun Pack [fbpack]
+ Fritzi Fisch und der verschwundene Schatz [freddi]
+ Fritzi Fisch und das Flossengespenst [freddi2]
+ Fritzi Fisch und der Fall der gestohlenen
+ Trompetenschnecke [freddi3]
+ Freddi Fisch und das Geheimnis
+ der Salzwasserschlucht [freddi4]
+ Freddi Fisch und das Rätsel
+ der Korallenbucht [freddicove]
+ Freddi Fish and Luther's Maze Madness [maze]
+ Freddi Fish and Luther's Water Worries [water]
+ Let's Explore the Airport with Buzzy [airport]
+ Let's Explore the Farm with Buzzy [farm]
+ Let's Explore the Jungle with Buzzy [jungle]
+ Pyjama Pit: Keine Angst im Dunkeln [pajama]
+ Pyjama Sam: Donner und Blitz
+ machen mir nix [pajama2]
+ Pyjama Sam 3: Süßigkeiten kriegen Saures [pajama3]
+ Pajama Sam's Lost & Found [lost]
+ Pajama Sam's Sock Works [socks]
+ Putt-Putt Joins the Parade [puttputt]
+ Putt-Putt Goes to the Moon [puttmoon]
+ Töff-Töff rettet den Zoo [puttzoo]
+ Töff-Töff reist durch die Zeit [putttime]
+ Töff-Töff und das große Rennen [puttrace]
+ Töff-Töff geht zum Zirkus [puttcircus]
+ Putt-Putt and Pep's Balloon-O-Rama [balloon]
+ Putt-Putt and Pep's Dog on a Stick [dog]
+ Putt-Putt & Fatty Bear's Activity Pack [activity]
+ Putt-Putt's Fun Pack [funpack]
+ SPY Fox: Das Milchkartell [spyfox]
+ SPY Fox: Operation Robohund [spyfox2]
+ SPY Fox: Alarm im Weltall [spyozon]
+ SPY Fox in Cheese Chase [chase]
+ SPY Fox in Hold the Mustard [mustard]
+
+Spiele von Living Books:
+ Aesop's Fables: The Tortoise and the Hare [tortoise]
+ Arthur's Birthday [arthurbday]
+ Arthur's Teacher Trouble [arthur]
+ Dr. Seuss's ABC [seussabc]
+ Green Eggs and Ham [greeneggs]
+ Harry and the Haunted House [harryhh]
+ Just Grandma and Me [grandma]
+ Little Monster at School [lilmonster]
+ Ruff's Bone [ruff]
+ Sheila Rae, the Brave [sheila]
+ Stellaluna [stellaluna]
+ The Berenstain Bears Get in a Fight [bearfight]
+ The Berenstain Bears in the Dark [beardark]
+ The New Kid on the Block [newkid]
+
+Die folgenden Spiele sollten geladen werden, sind aber noch nicht vollständig
+spielbar. Spielen erfolgt auf eigenes Risiko. Bitte reichen Sie für diese Spiele
+keine Fehlerberichte ein.
+Wenn Sie über den neusten Stand bezüglich der Kompatibilität des Spiels erfahren
+möchten, besuchen Sie unsere Website und schauen Sie in der Kompatibilitätsliste
+nach.
+
+ Backyard Baseball 2003 [baseball2003]
+ Backyard Football 2002 [football2002]
+ Backyard Soccer [soccer]
+ Backyard Soccer MLS [soccermls]
+ Backyard Soccer 2004 [soccer2004]
+ Blue's Treasure Hunt [BluesTreasureHunt]
+ Pajama Sam: Games to Play on Any Day [pjgames]
+
+Die folgenden Spiele basieren auf der SCUMM-Engine, werden aber (noch) nicht von
+ScummVM unterstützt:
+
+ Andere Spiele von Humongous Entertainment
+
+Seien Sie sich bitte bewusst, dass die Engines („Motoren“ der Spiele) Fehler
+enthalten können und manche Funktionen möglicherweise fehlen, was es unmöglich
+macht, das Spiel zu Ende zu spielen. Speichern Sie oft und bitte schicken Sie
+englische Fehlerberichte ein (Anweisungen zum Senden von Fehlerberichten finden
+Sie oben), wenn Sie einen solchen Fehler in einem „unterstützten“ Spiel
+vorfinden.
+
+
+3.1) Kopierschutz:
+---- -------------
+Das ScummVM-Team duldet keine Spielepiraterie. Es gibt jedoch Fälle, in denen
+die Spielefirmen (wie beispielsweise LucasArts) selbst „gecrackte“
+Ausführdateien in ihre Spiele gepackt haben -- in diesen Fällen beinhalten die
+Dateien des Spiels immer noch die Kopierschutzskripte, aber der Interpreter
+umgeht sie (ähnlich wie illegale gecrackte Versionen es tun können, nur dass es
+hier der Spielehersteller getan hat). Es gibt für uns keinerlei Möglichkeit, den
+Unterschied zwischen einer legitimen und einer illegalen Spieldatei zu erkennen,
+also wird ScummVM bei Spielen, von denen wir wissen, dass eine gecrackte Version
+des Orginalinterpreters zu irgendeinem Zeitpunkt verkauft wurde, immer den
+Kopierschutz umgehen müssen.
+
+In einigen Fällen wird ScummVM immer noch den Kopierschutzbildschirm anzeigen.
+Versuchen Sie, irgendeine Antwort einzugeben. Die Chancen stehen gut, dass sie
+akzeptiert wird.
+
+ScummVM wird den Kopierschutz in folgenden Spielen überspringen:
+
+ * Maniac Mansion
+ * Zak McKracken and the Alien Mindbenders
+ * Loom (EGA)
+ * The Secret of Monkey Island (VGA)
+ * Monkey Island 2: LeChuck's Revenge
+ * Beneath a Steel Sky
+ -- umgangen mit freundlicher Genehmigung von Revolution Software.
+ * Erben der Erde: Die große Suche (Diskettenversion)
+ -- umgangen mit freundlicher Genehmigung von Wyrmkeep Entertainment,
+ da er in allen CD-Versionen des Spiels umgangen wurde.
+ * Simon the Sorcerer 1 (Diskettenversion)
+ * Simon the Sorcerer 2 (Diskettenversion)
+ -- umgangen mit freundlicher Genehmigung von Adventure Soft,
+ da er in allen CD-Versionen des Spiels umgangen wurde.
+ * Waxworks
+
+3.2) Hinweise zu Commodore64-Spielen:
+---- --------------------------------
+Sowohl Maniac Mansion als auch Zak McKracken laufen, aber Maniac Mansion ist
+noch nicht spielbar. Benennen Sie einfach die D64-Datenträger um in
+„maniac1.d64“ und „maniac2.d64“ und entsprechend „zak1.d64“ und „zak2.d64“, dann
+sollte ScummVM in der Lage sein, das Spiel automatisch zu erkennen, wenn Sie auf
+das richtige Verzeichnis zeigen.
+
+Alternativ können Sie „extract_mm_c64“ aus dem Tools-Paket verwenden, um die
+Spieldateien zu extrahieren. Dann wird das Spiel jedoch nicht einwandfrei von
+ScummVM automatisch erkannt und Sie müssen sicherstellen, dass Commodore64 als
+Plattform eingestellt ist. Wir empfehlen, auf die viel einfachere Methode
+zurückzugreifen, die im vorherigen Absatz beschrieben ist.
+
+
+3.3) Hinweise zu Maniac Mansion NES:
+---- -------------------------------
+Unterstützte Versionen sind Deutsch (G) [G=German], Englisch GB (E), Französisch
+(F), Italienisch (I), Schwedisch (SW) und Englisch US (U). ScummVM benötigt nur
+den PRG-Bereich und nicht die gesamte ROM-Datei, um das Spiel laufen zu lassen.
+
+Damit das Spiel funktioniert, müssen Sie die ersten 16 Bytes aus der ROM-Datei
+entfernen, die Sie verwenden wollen. Das klappt mit jedem Hexeditor, solange Sie
+mit diesem kopieren und einfügen können. Nachdem Sie die ROM-Datei mit dem
+Hexeditor geöffnet haben, kopieren Sie alles von der zweiten Reihe (17. Byte)
+bis zum Ende. Danach fügen Sie den kopierten Inhalt in eine neue Hexdatei ein.
+Speichern Sie die neue Datei unter dem Namen „Maniac Mansion (XX).prg“, wobei XX
+für die Sprachversion steht, die Sie verwenden wollen (G, E, F, I, SW oder U).
+Die Größe der neuen Datei sollte genau 262144 Bytes betragen.
+
+Wenn Sie das Spiel manuell hinzufügen, stellen Sie sicher, dass die Plattform
+auf NES eingestellt ist.
+
+Die häufigsten Fehler, die verhindern, dass das Spiel läuft:
+
+ * Fehlerhafte Datei
+ * ROM extrahiert mit den Tools der Version 0.7.0
+ * Sie versuchen, in ScummVM die VOLLE ROM-DATEI zu laden und nicht nur den
+ PRG-Bereich.
+
+Es ist auch möglich, die einzelnen LFL-Dateien aus dem PRG-Bereich zu
+extrahieren. Um dies zu tun, verwenden Sie das Dienstprogramm „extract_mm_nes“
+aus dem Tools-Paket.
+
+
+3.4) Hinweise zu Macintosh-Spielen:
+---- ------------------------------
+Alle auf SCUMM basierenden Adventures von Lucasarts, mit Ausnahme von COMI,
+existieren auch als Versionen für den Macintosh. ScummVM kann die meisten
+(alle?) von diesen verwenden, jedoch ist in manchen Fällen zusätzliche Arbeit
+erforderlich. Zuallererst: Wenn Sie keinen Macintosh dafür verwenden, könnte es
+kompliziert werden, auf die CD- oder Diskettendaten zuzugreifen. Der Grund
+hierfür ist, dass der Mac ein spezielles Datenträgerformat nutzt, welches sich
+HFS nennt, und das andere Systeme normalerweise nicht unterstützen. Es gibt
+jedoch zahlreiche kostenlose Tools, die es ermöglichen, einen solchen
+HFS-Datenträger zu lesen. Z. B. „HFVExplorer“ für Windows und „hfsutils“ für
+Linux und andere Betriebssysteme, die Unix ähnlich sind.
+
+Die meisten neueren Spiele für den Macintosh wurden nur mit einer einzigen
+Spieldatei ausgeliefert (beachten Sie, dass in manchen Fällen diese Spieldatei
+unsichtbar gemacht wurde und Sie somit zusätzliche Tools benötigen, um diese zu
+kopieren). ScummVM ist in der Lage, eine solche Spieldatei direkt zu verwenden;
+verweisen Sie ScummVM einfach auf das Verzeichnis, welches diese enthält und es
+sollte klappen (so wie mit jedem anderen unterstützten Spiel).
+
+Wir stellen außerdem ein Tool mit dem Namen „extract_scumm_mac“ im Tools-Paket
+zur Verfügung, um die Daten aus diesen Spieldateien zu extrahieren, aber dies
+ist weder erforderlich, noch wird es empfohlen.
+
+Für weitere Informationen dazu, wie Sie Macintosh-Spieldateien auf Ihre
+Festplatte kopieren können, lesen Sie:
+
+ http://wiki.scummvm.org/index.php/HOWTO-Mac_Games
+
+
+3.5) Hinweise zu Spielen auf mehren CDs:
+---- -----------------------------------
+Allgemein kann ScummVM nicht sehr gut mit Spielen auf mehreren CDs umgehen. Das
+liegt daran, dass ScummVM annimmt, alles von einem Spiel in einem Verzeichnis
+vorzufinden. Selbst wenn ScummVM einige Fälle berücksichtigt und den Anwender
+dazu auffordert, die CD zu wechseln, so installierten die ursprünglichen
+ausführbaren Dateien des Spiels normalerweise eine kleine Anzahl an Dateien auf
+die Festplatte. Sofern diese Dateien nicht auf allen CDs vorgefunden werden
+können, wird ScummVM Schwierigkeiten haben.
+
+Glücklicherweise hat ScummVM keine Probleme damit, die Spiele komplett von der
+Festplatte aus laufen zu lassen, wenn Sie ein Verzeichnis mit der richtigen
+Kombination der Dateien erstellen. Wenn eine Datei auf mehr als einer CD
+vorkommt, ist es normalerweise egal, welche sie in das Verzeichnis
+hineinkopieren.
+
+
+3.6) Hinweise zu The Curse of Monkey Island:
+---- ---------------------------------------
+Für dieses Spiel benötigen Sie die Dateien comi.la0, comi.la1 und comi.la2. Die
+Datei comi.la0 kann auf beiden CDs vorgefunden werden, ist aber auf beiden
+identisch, womit es egal ist, welche der beiden Sie verwenden.
+
+Zusätzlich müssen Sie ein Unterverzeichnis namens „resource“ erstellen, das alle
+Dateien des Unterverzeichnisses „resource“ auf -beiden- CDs beinhaltet. Einige
+dieser Dateien lassen sich auf beiden CDs vorfinden, jedoch sind sie auch in
+diesem Fall identisch.
+
+
+3.7) Hinweise zu Baphomets Fluch I und II:
+---- -------------------------------------
+Die Anweisungen für die Spiele Baphomets Fluch I und II sind für die
+ausverkauften Software-Versionen, bei welchen sich jedes Spiel auf je zwei CDs
+befindet, da diese am leichtesten erhältlich waren, als ScummVM Unterstützung
+für diese Spiele erlangte. Wir hoffen, dass sie allgemein ausreichend
+ausführlich sind, um für andere Ausgaben genauso hilfreich zu sein.
+
+
+3.7.1) Zwischensequenzen von Baphomets Fluch I und II:
+------ -----------------------------------------------
+Die Zwischensequenzen für Baphomets Fluch I und II haben eine kleine Geschichte
+(schauen Sie im nächsten Abschnitt, wenn Sie interessiert sind), aber im Großen
+und Ganzen müssen Sie nur die .SMK-Dateien aus den „SMACKS“- oder „SMACKSHI“-
+Verzeichnissen auf den CDs in dasselbe Verzeichnis wie die anderen Spieldateien
+kopieren. (Baphomets Fluch hat ein „SMACKSLO“-Verzeichnis mit denselben
+Zwischensequenzen, aber diese sind von niedrigerer Qualität.) Sie können sie
+auch in einem Unterverzeichnis namens „video“ ablegen, wenn Ihnen das lieber
+ist.
+
+Einige Neuausgaben der Spiele, wie beispielsweise die PlayStation-Version, haben
+keine Smacker-Videos. Revolution Software hat uns freundlicherweise erlaubt, die
+Zwischensequenzen umgewandelt auf unserer Website als Download zur Verfügung zu
+stellen. Siehe hierfür:
+
+ http://www.scummvm.org/downloads.php
+
+Diese Zwischensequenzen werden im DXA-Format mit FLAC-Audio zur Verfügung
+gestellt. Ihre Qualität ist durch die Verwendung verlustfreier Kompression
+gleich wie im Originalspiel. Um diese Zwischensequenzen abspielen zu können, ist
+eine Version von ScummVM erforderlich, die sowohl mit Unterstützung von FLAC als
+auch zlib kompiliert wurde.
+
+Für Systeme, die zu langsam sind, um die Entschlüsselung von FLAC-Audio zu
+handhaben, wird die Tonspur für diese Zwischensequenzen gesondert auch mit
+Ogg-Vorbis-Audio angeboten. Um diese Zwischensequenzen mit Ogg-Vorbis-Audio
+abspielen zu können, ist eine Version von ScummVM erforderlich, die sowohl mit
+Unterstützung von libVorbis als auch zlib kompiliert wurde.
+
+Für Baphomets Fluch bieten wir auch ein Untertitel-Paket an. Entpacken Sie es
+einfach und folgen Sie den Anweisungen in der liesmich.txt. (Baphomets Fluch II
+hat bereits Untertitel; für diese ist keine zusätzliche Arbeit notwendig.)
+
+
+3.7.2) Zwischensequenzen von Baphomets Fluch I und II im Rückblick:
+------ ------------------------------------------------------------
+Die Originalausgaben von Baphomets Fluch I und II verwendeten das
+Smacker™-Format der RAD Game Tools. Da RAD uns nicht die ältere Ur-Version
+dieses Formats offenlegen wollte und uns aufforderte, es nicht mittels Reverse
+Engineering zu rekonstruieren, musste eine alternative Lösung gefunden werden.
+
+In Baphomets Fluch II war es möglich, die Sprachausgabe ohne das Video
+wiederzugeben. Dies blieb bis ScummVM 1.0.0 eine Ausweichmöglichkeit, war aber
+nie die alleinige Lösung für eine stabile Veröffentlichung.
+
+In ScummVM 0.6.0 verwendeten wir MPEG, das einen zumutbaren Kompromiss zwischen
+Größe und Qualität bot. In ScummVM 0.10.0 wurde dies durch DXA abgelöst (das
+ursprünglich für Adventure Softs „Floyd - Es gibt noch Helden“ hinzugefügt
+wurde). Dies gab uns die Möglichkeit, die Zwischensequenzen mit genau derselben
+Qualität wie im Original anzubieten, zu dem Preis, dass die Dateien größer
+waren.
+
+Schließlich wurde Anfang 2006 das Smacker-Format für das FFmpeg-Projekt mittels
+Reverse Engineering rekonstruiert. Dank der harten Arbeit in diesem Projekt
+unterstützt ScummVM nun die originalen Zwischensequenzen. Zur selben Zeit wurde
+die MPEG-Unterstützung eingestellt. Vom technischen Standpunkt war das eine gute
+Sache, da das Entschlüsseln von MPEG-Filmen mit vielen Schwierigkeiten verbunden
+war und diese ohnehin nicht so gut aussahen wie Smacker- und DXA-Versionen.
+
+
+3.7.3) Baphomets Fluch:
+------ ----------------
+Für dieses Spiel benötigen Sie die Dateien aus dem Verzeichnis clusters von
+beiden CDs. Für die Windows- und Macintosh-Versionen benötigen Sie auch die
+Datei speech.clu aus dem Verzeichnis speech von beiden CDs. Da diese jedoch
+nicht identisch sind, müssen Sie diese in speech1.clu und speech2.clu für CD 1
+und 2 entsprechend umbenennen. Die PlayStation-Version erfordert die Dateien
+speech.tab, speech.dat, speech.lis, und speech.inf.
+
+Zusätzlich benötigen die Windows- und Macintosh-Versionen das Unterverzeichnis
+„music“ mit allen Dateien der „music“-Unterverzeichnisse auf beiden CDs. Einige
+dieser Dateien tauchen auf beiden CDs auf, aber in diesen Fällen sind sie
+entweder identisch oder in einem Fall nahezu so identisch, dass es wenig
+Unterschied macht. Die PlayStation-Version erfordert die Dateien tunes.dat und
+tunes.tab.
+
+
+3.7.4) Baphomets Fluch II:
+------ -------------------
+Für dieses Spiel benötigen Sie die Dateien aus dem Verzeichnis clusters von
+beiden CDs. (Ein paar von ihnen sind streng genommen eigentlich nicht notwendig,
+aber diejenigen, über die Unsicherheit besteht, sind alle ziemlich klein.)
+Sie müssen die Dateien speech.clu und music.clu umbenennen, und zwar in
+speech1.clu, speech2.clu, music1.clu und music2.clu, sodass ScummVM weiß, welche
+dieser Dateien von CD 1 und welche von CD 2 sind. Alle anderen Dateien, die in
+beiden „clusters“-Verzeichnissen auftauchen, sind identisch. Verwenden Sie in
+diesen Fällen die Datei, die Sie möchten.
+
+Zusätzlich brauchen Sie die Datei cd.inf und optional die Datei startup.inf aus
+dem Verzeichnis sword2 von CD 1.
+
+
+3.8) Hinweise zu Beneath a Steel Sky:
+---- --------------------------------
+Beginnend mit ScummVM 0.8.0 benötigen Sie die zusätzliche Datei „SKY.CPT“, um
+Beneath a Steel Sky laufen lassen.
+
+Diese Datei ist auf der Seite „Downloads“ der ScummVM-Website verfügbar. Sie
+können sie entweder im Verzeichnis mit den anderen Spieldateien (SKY.DNR,
+SKY.DSK) ablegen, in einem Extrapfad oder im Verzeichnis, in dem sich Ihre
+ausführbare ScummVM-Datei befindet.
+
+
+3.9) Hinweise zu Flight of the Amazon Queen:
+---- ---------------------------------------
+Um eine Nicht-Freeware-Version von Flight of the Amazon Queen zu verwenden (von
+einer Original-CD), müssen Sie die Datei „queen.tbl“ (erhältlich von der Seite
+„Downloads“ auf unserer Website) entweder im Verzeichnis mit der Spieldatei
+„queen.1“ ablegen, in einem Extrapfad oder im Verzeichnis, in dem sich Ihre
+ausführbare ScummVM-Datei befindet.
+
+Alternativ können Sie das Tool „compress_queen“ aus dem Tools-Paket verwenden,
+um Ihre FOTAQ-Spieldatei neu „zusammenzubauen“, um die Tabellendatei für diese
+spezielle Version miteinzubeziehen und somit die Laufzeit-Abhängigkeit von der
+Datei „queen.tbl“ zu lösen. Dieses Tool kann auch die Sprachausgabe und
+Sound-Effekte mittels MP3, Ogg Vorbis oder FLAC komprimieren.
+
+
+3.10) Hinweise zu Gobliiins:
+----- ----------------------
+Die CD-Versionen der Gobliiins-Serie enthalten einen großen Audio-Titel, den Sie
+extrahieren müssen (siehe Abschnitt über die Verwendung komprimierter
+Audio-Dateien) sowie ins Spielverzeichnis kopieren, wenn Sie Musik im Spiel
+hören möchten, ohne die CD die ganze Zeit im Laufwerk haben zu müssen. Die
+Sprachausgabe ist auch in diesem Titel und ihre Lautstärke wird deshalb ebenso
+über die Musiklautstärke-Regelung geändert.
+
+
+3.11) Hinweise zu Inherit the Earth: Quest for the Orb (Macintosh):
+----- -------------------------------------------------------------
+Um die Neuausgabe des Spiels für Mac OS X von Wyrmkeep laufen zu lassen, müssen
+Sie die Daten von der CD auf die Festplatte kopieren. Wenn Sie an einem PC
+arbeiten, lesen Sie hierfür:
+
+ http://wiki.scummvm.org/index.php/HOWTO-Mac_Games
+
+Obwohl hier in erster Linie über SCUMM-Spiele gesprochen wird, findet das
+Dienstprogramm „HFVExplorer“ Erwähnung, welches Sie benötigen, um die Dateien zu
+extrahieren. Beachten Sie, dass Sie die Sprachausgabedaten aus „Inherit the
+Earth Voices“ im selben Verzeichnis ablegen müssen wie die Spieldaten, die sich
+an folgendem Ort befinden:
+
+ Inherit the Earth.app/Contents/Resources
+
+Bei der alten Ausgabe für Mac OS 9 müssen Sie die Dateien im MacBinary-Format
+kopieren, da sie sowohl Ressourcen- als auch Datenverzweigungen beinhalten
+sollten. Kopieren Sie alle „ITE *“-Dateien.
+
+
+3.12) Hinweise zu Simon the Sorcerer 1 und 2:
+----- ---------------------------------------
+Wenn Sie die Doppel-Version von Simon the Sorcerer 1 oder 2 auf CD haben, finden
+Sie die Windows-Version im Hauptverzeichnis der CD und die DOS-Version im
+DOS-Verzeichnis der CD.
+
+
+3.13) Hinweise zu Floyd - Es gibt noch Helden:
+----- ----------------------------------------
+Wenn Sie die Windows-Version von Floyd - Es gibt noch Helden haben, sind einige
+Dinge zu beachten.
+
+Viele notwendige Dateien für das Spiel sind in einer InstallShield-Datei namens
+data1.cab gespeichert, die ScummVM nicht entpacken kann. Sie müssen das
+Original-Installationsprogramm oder i5comp verwenden, um die Inhalte dieser
+Datei zu entpacken. Das Tool i5comp für die Dekompression kann durch Suchen im
+Internet gefunden werden.
+
+Um die Sprachdateien in ScummVM zu verwenden, müssen sie nach dem Kopiervorgang
+wie folgt umbenannt werden:
+voices.wav von CD1 in voices1.wav
+voices.wav von CD2 in voices2.wav
+voices.wav von CD3 in voices3.wav
+voices.wav von CD4 in voices4.wav
+
+
+3.14) Hinweise zu The Legend of Kyrandia:
+----- -----------------------------------
+Um The Legend of Kyrandia unter ScummVM laufen zu lassen, benötigen Sie die
+Datei „kyra.dat“, welche auf der Seite „Downloads“ der ScummVM-Website gefunden
+werden kann.
+
+
+3.15) Hinweise zum vorhersagenden Eingabedialog bei Sierras AGI-Spielen:
+----- ------------------------------------------------------------------
+Der vorhersagende Eingabedialog ist ein ScummVM-Hilfsmittel, um die englischen
+Spiele der AGI-Engine (die offensichtlich Kommandozeilen-Eingabe erfordern) auf
+Geräten laufen zu lassen, die eingeschränkte Tastatur-Unterstützung haben. Da es
+mühsam ist, mit emulierten Tastaturen zu tippen, können in solchen Fällen
+Befehle schnell und einfach über den vorhersagenden Eingabedialog eingegeben
+werden.
+
+Um die vorhersagende Eingabe in AGI-Spielen zu aktivieren, müssen Sie die Datei
+pred.dic in den Extrapfad von ScummVM oder in das Verzeichnis des Spiels
+kopieren, das Sie spielen möchten. Dieses Wörterbuch wurde erstellt, indem alle
+bekannten AGI-Spiele analysiert wurden, und enthält den maximalen Satz
+gebräuchlicher Wörter.
+
+Wenn das Wörterbuch erkannt wurde, wird der vorhersagende Eingabedialog entweder
+durch Klicken auf den Kommandozeilenbereich angezeigt (dort, wo auch immer eine
+Tastatureingabe erforderlich ist, auch in Dialogfeldern) oder in einigen Ports
+durch Drücken eines bestimmten Tastenkürzels.
+
+Der vorhersagende Eingabedialog funktioniert in drei Modi, zwischen denen mit
+der Schaltfläche (*)Pre/123/Abc gewechselt werden kann. Die primäre
+Eingabemethode ist der vorhersagende Modus (Pre), welcher der Worterkennung bei
+„schnellem Tippen“ auf Mobilfunktelefonen ähnelt. Das Alphabet ist in neun
+Gruppen unterteilt, die naturgemäß den neun Ziffern auf dem Ziffernblock
+zugeteilt sind (0 ist die Leertaste). Um ein Wort einzugeben, drücken Sie einmal
+die Ziffer der Gruppe, die den Buchstaben des Worts enthält, den Sie tippen
+möchten, dann gehen Sie zum nächsten Buchstaben über. Um z. B. den Befehl „look“
+einzugeben, sollten Sie 5665 drücken. Während Sie schrittweise die Ziffernfolge
+des beabsichtigten Wortes eingeben, wird auf das Wörterbuch zugegriffen, um
+bekannte Wörter, die mit Ihrer Eingabe bis zu diesem Punkt übereinstimmen, zu
+finden. Während Sie mehr und mehr Tasten drücken, läuft die Vorhersage auf das
+richtige Wort zu. Das ist der Grund, warum das angezeigte Wort sich zwischen
+einem Tastendruck drastisch verändern kann. Es gibt jedoch Fälle, in denen mehr
+als ein Wort dieselbe Zahlenkombination teilen. Z. B. haben die Worte „quit“ und
+„suit“ dieselbe Nummer, nämlich 7848. In diesen Fällen hilft die Schaltfläche
+(#)next weiter. Durch ihre Betätigung können Sie durch die Liste der Wörter
+schalten, welche denselben Zahlencode haben und schließlich das richtige Wort
+akzeptieren, indem Sie die (0) für Leertaste oder OK drücken.
+
+Die zweite Eingabemethode (123) ist die numerische Eingabe: Jede Taste, die Sie
+drücken, wird als tatsächliche Ziffer eingegeben.
+
+Die dritte Eingabemethode (Abc) ist die Multi-Tipp-Alpha-Eingabemthode. Dieser
+Modus ist dazu gedacht, um freien Text einzugeben, ohne die Hilfe des
+Wörterbuchschemas des vorhersagenden Modus (Pre). Der Text wird Buchstabe für
+Buchstabe eingegeben. Für jeden Buchstaben drücken Sie zuerst die Ziffer der
+Gruppe, die den Buchstaben beinhaltet, den Sie tippen wollen, dann verwenden Sie
+die Schaltfläche (#)next, um durch die Buchstaben zu schalten, bis der richtige
+erscheint, und wiederholen dies mit der nächsten Ziffer. Um z. B. das Wort
+„look“ einzugeben, müssen Sie Folgendes drücken: 5##6##6##5#
+
+Der Dialog kann vollständig mit der Maus verwendet werden, aber ein paar
+Maßnahmen wurden getroffen, um dessen Verwendung bei einigen ScummVM-Ports
+komfortabler zu gestalten, indem naturgemäß dessen Funktionsweise dem
+Ziffernblock zugewiesen wurde. Ebenso können die Schaltflächen mittels der
+Pfeiltasten und der Eingabetaste gesteuert werden.
+
+
+3.16) Hinweise zu Mickey's Space Adventure:
+----- -------------------------------------
+Um Mickey's Space Adventure unter ScummVM laufen zu lassen, benötigen Sie die
+originale EXE-Datei des Spiels (mickey.exe) sowie die Spieldateien.
+
+Für das Spiel gibt es unter ScummVM umfangreiche Mausunterstützung, obwohl es im
+Originalspiel überhaupt keine Mausunterstützung gab. Menüpunkte können mit der
+Maus ausgewählt werden und es ist auch möglich, mittels Maus an andere Orten zu
+wechseln. Wenn die Maus über die Kanten des Bildschirms bewegt wird, ändert sich
+die Farbe des Zeigers in Rot, wenn es möglich ist, in diese Richtung zu gehen.
+Der Spieler kann dann einfach auf die Kanten des Spielbildschirms klicken, um
+den Ort zu wechseln, ähnlich wie in vielen Adventures, was einfacher und viel
+unkomplizierter ist, als sich mit dem Menü umherzubewegen.
+
+
+3.17) Hinweise zu Winnie the Pooh:
+----- ----------------------------
+Es ist möglich, Spielstände vom Original-Interpreter des Spiels in ScummVM zu
+importieren.
+
+Für das Spiel gibt es unter ScummVM umfangreiche Mausunterstützung, obwohl es im
+Originalspiel überhaupt keine Mausunterstützung gab. Menüpunkte können mit der
+Maus ausgewählt werden und es ist auch möglich, mittels Maus an andere Orten zu
+wechseln. Wenn die Maus über die Kanten des Bildschirms bewegt wird, ändert sich
+die Farbe des Zeigers in Rot, wenn es möglich ist, in diese Richtung zu gehen.
+Der Spieler kann dann einfach auf die Kanten des Spielbildschirms klicken, um
+den Ort zu wechseln, ähnlich wie in vielen Adventures, was einfacher und viel
+unkomplizierter ist, als sich mit dem Menü umherzubewegen.
+
+
+3.18) Hinweise zu Troll's Tale:
+----- -------------------------
+Das Originalspiel wurde auf einer PC-Boot-Diskette ausgeliefert, weshalb es
+notwendig ist, die Inhalte dieser Diskette in einer Abbild-Datei auszugeben und
+diese „troll.img“ zu nennen, um das Spiel unter ScummVM spielen zu können.
+
+
+3.19) Hinweise zu Draci Historie:
+----- ---------------------------
+Es gibt vier Sprachvarianten des Spiels: Tschechisch, Deutsch, Englisch und
+Polnisch. Jede von ihnen wird in einem gesonderten Archiv bereitgestellt. Die
+einzige offizielle Version ist die tschechische, während die deutsche, englische
+und polnische immer in Bearbeitung waren und nie offiziell veröffentlicht
+wurden. Obwohl alle Texte vollständig übersetzt sind, ist bekannt, dass einige
+von ihnen Fehler enthalten.
+
+Es existiert optionale tschechische Sprachausgabe für das Spiel. Aus Gründen der
+Bandbreite können Sie diese in einem gesonderten Archiv herunterladen und dann
+im Verzeichnis des Spiels entpacken. Sie können mit allen Sprachvarianten die
+tschechische Sprachausgabe hören, während Sie Untertitel lesen.
+
+Alle Spieldateien und die Komplettlösung können von der folgenden Website
+heruntergeladen werden: http://www.ucw.cz/draci-historie/index-en.html
+
+
+3.20) Bekannte Probleme:
+----- ------------------
+Diese veröffentlichte Version hat die unten folgenden bekannten Probleme. Es ist
+nicht notwendig, diese zu berichten, jedoch sind Patches, um diese zu beheben,
+willkommen. Wenn Sie einen Fehler entdecken, der weder hier noch auf der
+Kompatibilitätsseite der Website aufgeführt ist, sehen Sie bitte im Abschnitt
+„Fehler berichten“ nach, wenn Sie ihn melden möchten.
+
+ Spiele mit Ton von CD:
+ - Bei Spielen, die auf Audio von CD zurückgreifen (FM-TOWNS-Spiele,
+ Loom-CD-Version usw.), ist es möglich, dass Anwender von Microsoft Windows
+ 2000/XP zufällige Abstürze erleben. Das liegt an einem lange bestehenden
+ Windows-Fehler, der dazu führt, dass fehlerhafte Spieldaten von der CD
+ ausgelesen werden. Bitte kopieren Sie die Spieldaten in ein Verzeichnis
+ Ihrer Festplatte, um dies zu vermeiden.
+
+ FM-TOWNS-Versionen:
+ - Die Kanji-Versionen erfordern die Schriftart-ROM-Datei von FM-TOWNS.
+ - ScummVM stürzt bei Kanji-Versionen der folgenden Spielen zufällig ab, wenn
+ die Schriftart-ROM-Datei von FM-TOWNS verwendet wird:
+ The Secret of Monkey Island, Monkey Island 2: LeChuck's Revenge
+ und Indiana Jones and the Fate of Atlantis
+
+ Loom:
+ - Das Abschalten der Untertitel über die Spieleinstellungen funktioniert
+ nicht zuverlässig, da die Loom-Skripte diese wieder einschalten.
+ - MIDI-Unterstützung in der EGA-Version erfordert das Roland-Update von
+ LucasArts.
+ - Die Kanji-Version der PC-Engine erfordert die Systemkarten-ROM-Datei.
+
+ The Secret of Monkey Island:
+ - MIDI-Unterstützung in der EGA-Version erfordert das Roland-Update von
+ LucasArts.
+
+ Beneath a Steel Sky:
+ - Amiga-Versionen werden nicht unterstützt.
+ - Disketten-Demos werden nicht unterstützt.
+ - Kein Fehler: In der CD-Version fehlt in einigen Dialogen Sprachausgabe;
+ das ist normal.
+
+ Elvira - Mistress of the Dark
+ - Keine Musik in der Atari-ST-Version
+
+ Elvira II - The Jaws of Cerberus
+ - Keine Musik in der Atari-ST-Version
+ - Keine Sound-Effekte in der PC-Version
+ - Palettenprobleme in der Atari-ST-Version
+
+ Inherit the Earth: Quest for the Orb
+ - Amiga-Versionen werden nicht unterstützt.
+
+ Simon the Sorcerer 1:
+ - Untertitel sind in den deutschen und englischen CD-Versionen nicht
+ verfügbar, da bei diesen der überwiegende Teil der Untertiteltexte fehlt.
+
+ Simon the Sorcerer 2:
+ - Sprache und Untertitel zusammen führen manchmal dazu, dass die
+ Sprachausgabe vorzeitig abgeschnitten wird. Dies ist eine Beschränkung des
+ Originalspiels.
+ - Nur die Standardsprache (Englisch) der Spieldaten wird bei den Amiga- und
+ Macintosh-Versionen unterstützt.
+
+ Simon the Sorcerer's Game Pack:
+ - Keine Unterstützung für das Anzeigen, Anlegen, Laden oder Speichern von
+ Highscores.
+ - Keine Unterstützung in Swampy Adventures für das Anzeigen von Namen von
+ Gegenständen, wenn man über diese mit der Maus fährt
+
+ Floyd - Es gibt noch Helden:
+ - Untertitel sind oft unvollständig und nur in Englisch, da sie im
+ Originalspiel immer ausgeschaltet waren.
+
+ The Legend of Kyrandia:
+ - Keine Musik oder Sound-Effekte in der Macintosh-Diskettenversion
+ - Die Macintosh-CD-Version verwendet eingebundene DOS-Musik und
+ DOS-Sound-Effekte.
+ - PC-9821-Versionen fehlt Unterstützung für Sound-Effekte.
+
+ Spiele von Humongous Entertainment:
+ - Nur die Originaloberfläche kann zum Laden und Speichern verwendet werden.
+ - Keine Unterstützung für den Mehrspielermodus und das Ausdrucken von
+ Bildern
+
+
+4.0) Unterstützte Plattformen:
+---- -------------------------
+ScummVM wurde portiert, um auf vielen Plattformen und Betriebssystemen lauffähig
+zu sein. Links zu diesen Ports können entweder auf der ScummVM-Website oder
+durch Suchen mit einer Suchmaschine gefunden werden. Vielen Dank an unsere
+Porter für ihre Bemühungen. Wenn Sie eine Portierung für ScummVM haben und diese
+zum Entwicklungsbereich (master Git) beisteuern möchten, können Sie uns gerne
+kontaktieren!
+
+Die unterstützten Plattformen beinhalten (aber beschränken sich nicht auf):
+
+ UNIX (Linux, Solaris, IRIX, *BSD, ...)
+ Windows
+ Windows CE und Windows Mobile (einschließlich Smartphones und PocketPCs)
+ Mac OS X
+ AmigaOS
+ Android
+ BeOS
+ Dreamcast
+ GP2x
+ iPhone (einschließlich iPod Touch und iPad)
+ Maemo (Nokia-Internet-Tablets 770, N800, N810, N900)
+ Nintendo 64
+ Nintendo DS
+ Nintendo GameCube
+ Nintendo Wii
+ OS/2
+ PlayStation 2
+ PlayStation Portable
+ Symbian
+ WebOS
+
+Die Portierung von Dreamcast unterstützt weder The Curse of Monkey Island noch
+The Dig. Der Portierung von Nintendo DS fehlt Unterstützung für Vollgas, The Dig
+und The Curse of Monkey Island.
+Für weitere plattformabhängige Beschränkungen verweisen wir auf unser Wiki:
+ http://wiki.scummvm.org/index.php/Platforms
+
+In der Portierung von Macintosh wird die rechte Maustaste über den Cmd-Klick
+emuliert (d. h. Sie klicken die Maustaste, während Sie die
+Command-/Apple-/Propeller-Taste gedrückt halten).
+
+Es gibt inoffizielle Portierungen für eine Vielzahl von Plattformen,
+einschließlich PlayStation 3, Xbox und Xbox 360. Bitte beachten Sie, dass diese
+nicht von uns hergestellt werden, weshalb wir diese weder befürworten noch
+unterstützen können. Benutzung erfolgt auf eigene Gefahr!
+
+
+5.0) ScummVM verwenden:
+---- ------------------
+Bitte beachten Sie, dass ScummVM standardmäßig Spielstände in dem Verzeichnis
+speichert, in welchem es ausgeführt wird, also sollten Sie davon absehen, es von
+mehr als einem Ort aus zu verwenden. Weitere Informationen, einschließlich
+darüber, wie man einen Pfad für Spielstände bestimmt, um diesen Sachverhalt zu
+vermeiden, befinden sich im Abschnitt 6.0.
+
+ScummVM kann direkt durch Aufruf der ausführbaren Datei gestartet werden. In
+diesem Fall wird das eingebaute Startmenü aktiviert. Hier können Sie Spiele
+hinzufügen, (klicken Sie auf „Spiel hinzufügen“) oder Spiele starten, die
+bereits konfiguriert wurden. Es können auch mehrere Spiele auf einmal
+hinzugefügt werden. Indem Sie die Umschalttaste (Shift) gedrückt halten und auf
+„Spiel hinzufügen“ klicken (beachten Sie, dass sich die Beschreibung in
+„Durchsuchen“ ändert), können Sie ein Verzeichnis bestimmen, wodurch ScummVM
+versuchen wird, in allen Unterverzeichnissen dieses Verzeichnisses Spiele zu
+erkennen.
+
+ScummVM kann mittels Argumenten in der Kommandozeile auch direkt in ein Spiel
+gestartet werden -- siehe nächster Abschnitt.
+
+
+5.1) Kommandozeilenoptionen:
+---- -----------------------
+
+ Verwendung: scummvm [OPTIONEN]... [SPIEL]
+
+ [SPIEL] Kurzer Name des zu ladenden Spiels. Z. B. „monkey“
+ für Monkey Island. Dies kann entweder eine
+ vorbestimmte Kennung eines Spiels sein oder ein
+ benutzerkonfiguriertes Ziel.
+
+ -v, --version Zeigt ScummVM-Versionsinformation und beendet.
+ -h, --help Zeigt kurzen Hilfetext und beendet.
+ -z, --list-games Zeigt Liste unterstützter Spiele und beendet.
+ -t, --list-targets Zeigt Liste konfigurierter Ziele und beendet.
+ --list-saves=ZIEL Zeigt Liste von Spielständen für das festgelegte
+ Spiel (ZIEL)
+ --console Aktiviert das Konsolenfenster
+ (standardmäßig aktiviert) (nur Windows)
+
+ -c, --config=KONFIGURATIONSDATEI
+ Verwendet alternative Konfigurationsdatei.
+ -p, --path=PFAD Pfad zum installierten Spiel
+ -x, --save-slot[=ZAHL] Zu ladender Speicherplatz
+ (Standard: automatischer Spielstand)
+ -f, --fullscreen Erzwingt Vollbildmodus.
+ -F, --no-fullscreen Erzwingt Fenstermodus.
+ -g, --gfx-mode=MODUS Wählt Grafikwandler (siehe auch Abschnitt 5.3).
+ --gui-theme=THEMA Wählt Oberflächenthema (default, modern, classic).
+ --themepath=PFAD Pfad zu gespeicherten Oberflächenthemen
+ --list-themes Zeigt Liste aller verwendbaren Oberflächenthemen.
+ -e, --music-driver=MODUS
+ Wählt Musiktreiber (siehe auch Abschnitt 7.0).
+ -q, --language=SPRACHE Wählt Spielsprache (siehe auch Abschnitt 5.2).
+ -m, --music-volume=ZAHL Wählt Musiklautstärke, 0-255 (Standard: 192).
+ -s, --sfx-volume=ZAHL Wählt Effektlautstärke, 0-255 (Standard: 192).
+ -r, --speech-volume=ZAHL
+ Wählt Sprachlautstärke, 0-255 (Standard: 192).
+ --midi-gain=ZAHL Wählt MIDI-Lautstärke, 0-1000 (Standard: 100)
+ (wird nur von einigen MIDI-Treibern unterstützt).
+ -n, --subtitles Aktiviert Untertitel (in Spielen mit Sprachausgabe).
+ -b, --boot-param=ZAHL Ruft Boot-Skript (Boot-Parameter) mit dieser Nummer
+ auf.
+ -d, --debuglevel=ZAHL Legt Debug-Ausführlichkeit fest.
+ --debugflags=FLAGGEN Aktiviert für Engine spezifische Debug-Flaggen
+ (getrennt durch Kommas).
+ -u, --dump-scripts Aktiviert die Skriptausgabe, wenn ein Verzeichnis
+ namens 'dumps' im aktuellen Verzeichnis existiert.
+
+ --cdrom=ZAHL CD-Laufwerk, von dem CD-Titel wiedergegeben werden
+ sollen (Standard: 0 = erstes Laufwerk)
+ --joystick[=ZAHL] Aktiviert Joystick (Standard: 0 = erster Joystick).
+ --platform=WORT Bestimmt Spielplattform (erlaubte Werte: 2gs, 3do,
+ acorn, amiga, atari, c64, fmtowns, mac, nes, pc,
+ pce, segacd, windows).
+ --savepath=PFAD Pfad zu gespeicherten Spielständen
+ --extrapath=PFAD Extrapfad zu zusätzlichen Spieldaten
+ --soundfont=DATEI Wählt SoundFont für MIDI-Wiedergabe (wird nur
+ von einigen MIDI-Treibern unterstützt).
+ --multi-midi Aktiviert Kombinierung von AdLib und MIDI.
+ --native-mt32 Echte Roland-MT-32-Emulation
+ (GM-Emulation deaktiviert)
+ --enable-gs Aktiviert Roland-GS-Modus für MIDI-Wiedergabe.
+ --output-rate=FREQUENZ Wählt Ausgabefrequenz in Hz (z. B. 22050).
+ --opl-driver=TREIBER Wählt AdLib-(OPL-)Emulator (db, mame).
+ --aspect-ratio Aktiviert Seitenverhältniskorrektur.
+ --render-mode=MODUS Aktiviert zusätzlichen Render-Modus (cga, ega,
+ hercGreen, hercAmber, amiga).
+
+ --alt-intro Verwendet alternativen Vorspann in CD-Versionen von
+ Beneath a Steel Sky und Flight of the Amazon Queen.
+ --copy-protection Aktiviert Kopierschutz in Spielen, für welche ihn
+ ScummVM standardmäßig deaktiviert.
+ --talkspeed=ZAHL Wählt Textverzögerung bei SCUMM-Spielen oder
+ Texttempo bei anderen Spielen (Standard: 60).
+ --demo-mode Startet Maniac Mansion im Demo-Modus
+ (klassische Version).
+ --tempo=ZAHL Wählt Musiktempo (in Prozent, 50-200) für
+ SCUMM-Spiele (Standard: 100).
+
+
+Die Bedeutung der meisten langen Optionen (d. h. diejenigen Optionen, die mit
+einem Doppelstrich beginnen) kann durch Anhängen der Vorsilbe „no-“ umgekehrt
+werden. Z. B. wird --no-aspect-ratio die Seitenverhältniskorrektur ausschalten.
+Das ist nützlich, falls man eine Einstellung in der Konfigurationsdatei
+übergehen möchte.
+
+Ein kurzer Spielname („Spielziel“), den Sie am Ende der Kommandozeile sehen,
+legt fest, welches Spiel gestartet wird. Dieser bezieht sich entweder auf ein
+willkürlich vom Anwender definiertes Ziel (aus der Konfigurationsdatei) oder auf
+eine vorbestimmte Spielkennung. Eine kurze Liste von Letzterem ist in
+Abschnitt 3.0 zu finden.
+
+Beispiele:
+ * Win32:
+ Startet Monkey Island im Vollbildmodus von Festplatte:
+ C:\Spiele\LucasArts\scummvm.exe -f -pC:\Spiele\LucasArts\monkey\ monkey
+ Startet Vollgas von CD, im Vollbildmodus und mit aktivierten Untertiteln:
+ C:\Spiele\LucasArts\scummvm.exe -f -n -pD:\resource\ ft
+
+* Unix:
+ Startet Monkey Island im Vollbildmodus von Festplatte:
+ /Pfad/zu/scummvm -f -p/Spiele/LucasArts/monkey/ monkey
+ Startet Vollgas von CD, im Vollbildmodus und mit aktivierten Untertiteln:
+ /Pfad/zu/scummvm -f -n -p/cdrom/resource/ ft
+
+
+5.2) Sprachoptionen:
+---- ---------------
+ScummVM beinhaltet Sprachoptionen für Maniac Mansion, Zak McKracken,
+The Dig, The Curse of Monkey Island, Beneath a Steel Sky und Baphomets Fluch.
+
+Beachten Sie, dass mit Ausnahme von Beneath a Steel Sky, Baphomets Fluch,
+mehrsprachigen Versionen der Goblins-Spiele und Nippon Safes Inc. die Verwendung
+dieser Option nicht die Sprache des Spiels ändert (die normalerweise fest
+programmiert ist), sondern nur dazu verwendet wird, um die passende Schriftart
+zu wählen (z. B. für eine deutsche Version eines Spiels, in der Umlaute
+enthalten sind).
+
+Eine Ausnahme bilden The Dig und The Curse of Monkey Island -- nicht-englische
+Versionen dieser Spiele können auf Englisch eingestellt werden. Dies hat
+allerdings nur Auswirkungen auf die Untertitel; die Sprachausgabe bleibt
+dieselbe.
+
+Maniac Mansion und Zak McKracken
+ en - Englisch (Standard)
+ de - Deutsch
+ fr - Französisch
+ it - Italienisch
+ es - Spanisch
+
+The Dig
+ jp - Japanisch
+ zh - Chinesisch
+ kr - Koreanisch
+
+The Curse of Monkey Island
+ en - Englisch (Standard)
+ de - Deutsch
+ fr - Französisch
+ it - Italienisch
+ pt - Portugiesisch
+ es - Spanisch
+ jp - Japanisch
+ zh - Chinesisch
+ kr - Koreanisch
+
+Beneath a Steel Sky
+ gb - Englisch (Großbritannien) (Standard)
+ en - Englisch (USA)
+ de - Deutsch
+ fr - Französisch
+ it - Italienisch
+ pt - Portugiesisch
+ es - Spanisch
+ se - Schwedisch
+
+Baphomets Fluch
+ en - Englisch (Standard)
+ de - Deutsch
+ fr - Französisch
+ it - Italienisch
+ es - Spanisch
+ pt - Portugiesisch
+ cz - Tschechisch
+
+
+5.3) Grafikfilter:
+---- -------------
+ScummVM bietet mehrere Kantenglättungsfilter, um zu versuchen, die bildliche
+Qualität zu verbessern. Dies sind die gleichen Filter, die in vielen anderen
+Emulatoren verwendet werden, wie beispielsweise MAME. Diese Filter nehmen die
+Originalgrafik und skalieren sie um einen bestimmten festen Faktor
+(normalerweise zwei- oder dreifach), bevor sie Ihnen diese anzeigen. Wenn somit
+z. B. ein Spiel ursprünglich in der Auflösung 320x200 läuft (typisch für die
+meisten SCUMM-Spiele), wird ein Filter mit zweifacher Skalierung die Grafiken
+mit der Auflösung 640x400 ausgeben. Gleichermaßen werden Sie durch die
+Verwendung eines 3x-Filters die Auflösung 960x600 erhalten.
+
+Die einzelnen Grafikoptionen im Ãœberblick:
+ 1x - Kein Filter, keine Skalierung. Am schnellsten.
+ 2x - Kein Filter, Faktor 2 (Standard für Spiele, die nicht in der
+ Auflösung 640x480 laufen).
+ 3x - Kein Filter, Faktor 3.
+ 2xsai - 2xSAI-Filter, Faktor 2.
+ super2xsai - Verbesserter 2xSAI-Filter, Faktor 2.
+ supereagle - Weniger verschwommen als 2xSAI, aber langsamer. Faktor 2.
+ advmame2x - Basiert nicht auf Verwischen wie 2xSAI, schnell. Faktor 2.
+ advmame3x - Basiert nicht auf Verwischen wie 2xSAI, schnell. Faktor 3.
+ hq2x - Sehr hochwertiger, qualitativer Filter, aber langsam. Faktor 2.
+ hq3x - Sehr hochwertiger, qualitativer Filter, aber langsam. Faktor 3.
+ tv2x - Zeilensprungfilter, emuliert Fernsehgerät. Faktor 2.
+ dotmatrix - Punktraster-Effekt. Faktor 2.
+
+Um einen Grafikfilter auszuwählen, stellen Sie diesen im Startmenü ein oder
+übergeben Sie dessen Namen über die Option „-g“ an scummvm, z. B. mit der
+Eingabe:
+
+ scummvm -gadvmame2x monkey2
+
+Hinweis 1: Nicht alle Systeme unterstützen alle (oder überhaupt welche) der oben
+aufgeführten Filter; einige unterstützen womöglich zusätzliche. Die Filter, die
+oben aufgeführt sind, werden standardmäßig vom SDL-System unterstützt.
+
+Hinweis 2: Filter können sehr langsam sein, wenn ScummVM mit einer
+Debug-Konfiguration ohne Optimierungen kompiliert wurde. Auch hat es immer
+Geschwindigkeitsauswirkungen, wenn eine Form der Kantenglättungs- oder linearen
+Filterung verwendet wird.
+
+Hinweis 3: Die FM-TOWNS-Version von Zak McKracken verwendet ursprünglich die
+Auflösung 320x240, daher werden skalierende Grafikfilter das Bild auf 640x480
+oder 960x720 skalieren. Gleichermaßen werden Spiele, die ursprünglich die
+Auflösung 640x480 verwendet haben (wie beispielsweise The Curse of Monkey Island
+oder Baphomets Fluch), auf 1280x960 und 1920x1440 skaliert.
+
+
+5.4) Globales Menü:
+---- --------------
+Das globale Menü ist ein allgemeines Menü, das in allen Spiel-Engines verfügbar
+ist und mit Strg+F5 aufgerufen werden kann. In diesem Menü befinden sich
+folgende Schaltflächen: „Fortsetzen“, „Optionen“, „Über“, „Zur Spieleliste
+zurück“ und „Beenden“. Wenn Sie „Optionen“ auswählen, wird ein Dialog angezeigt,
+in welchem einfache Audio-Einstellungen, wie beispielsweise Lautstärkepegel,
+festgelegt werden können. Wenn Sie „Zurück zur Spieleliste“ wählen, wird das
+momentane Spiel beendet und das Programm kehrt zur Spieleliste zurück, von der
+aus ein anderes Spiel gestartet werden kann.
+
+Hinweis: Das Zurückkehren zur Spieleliste wird nicht von allen Engines
+unterstützt, weshalb die Schaltfläche im globalen Menü deaktiviert wird, wenn
+diese Funktion nicht verfügbar ist.
+
+Die Engines, die momentan das Zurückkehren zur Spieleliste unterstützen, sind:
+
+ AGI
+ AGOS
+ CINE
+ DRACI
+ GOB
+ GROOVIE
+ KYRA
+ LURE
+ PARALLACTION
+ QUEEN
+ SAGA
+ SCUMM
+ SKY
+ SWORD1
+ SWORD2
+ TOUCHE
+ TUCKER
+
+
+5.5) Tastenkürzel:
+---- -------------
+ScummVM unterstützt zahlreiche Tastenkürzel in Spielen. Sie unterscheiden sich
+zwischen SCUMM-Spielen und anderen Spielen.
+
+ Allgemein:
+ Strg+F5 - Zeigt globales Menü.
+ Cmd+q - Beenden (Mac OS X)
+ Strg+q - Beenden (andere UNIX-Systeme einschließlich Linux)
+ Strg+z ODER Alt+x - Beenden (andere Plattformen)
+ Strg+u - Allen Ton abschalten - EIN/AUS
+ Strg+m - Mausbegrenzung in Fenster EIN/AUS
+ Strg+Alt 1-8 - Wechselt zwischen Grafikfiltern.
+ Strg+Alt + oder - - Skalierungsfaktor höher/niedriger
+ Strg+Alt+a - Seitenverhältniskorrektur EIN/AUS
+ Die meisten Spiele verwenden die Auflösung
+ 320x200 Pixel, was auf modernen Monitoren
+ zusammengequetscht aussehen kann. Die
+ Seitenverhältniskorrektur streckt das Bild
+ stattdessen auf 320x240 Pixel oder um ein
+ Vielfaches davon.
+ Alt+Enter - Wechselt zwischen Vollbild- und Fenstermodus.
+ Alt+s - Macht Bildschirmfoto (nur für SDL-System).
+
+ SCUMM:
+ Strg 0-9 und Alt 0-9 - Lädt und speichert entsprechenden Speicherstand.
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ Strg+g - SEHR schneller Modus EIN/AUS
+ Strg+t - Wechselt zwischen
+ „Speech only“ (nur Sprachausgabe),
+ „Speech and Subtitles“ (Sprachausgabe und
+ Untertitel) und „Subtitles only“ (nur Untertitel).
+ Tilde (~) - Zeigt/verbirgt Debugging-Konsole.
+ [ und ] - Musiklautstärke, leiser/lauter
+ - und + - Texttempo, langsamer/schneller
+ F5 - Ruft Menü zum Speichern und Laden auf.
+ Alt+F5 - Ruft das Original-Menü zum Speichern und Laden auf,
+ sofern eines im Spiel enthalten ist. Sie können mit
+ diesem Spiele speichern und laden, jedoch ist es
+ für diesen Zweck nicht vorgesehen und kann in
+ einigen Spielen ScummVM zum Absturz führen.
+ i - Zeigt IQ-Punkte an (Indiana Jones and the Last
+ Crusade sowie Indiana Jones and the Fate of
+ Atlantis).
+ Leertaste - Spielpause
+ Punkt (.) - Ãœberspringt aktuelle Textzeile in machen Spielen.
+ Enter - Simuliert Klick mit linker Maustaste.
+ Tabulator - Simuliert Klick mit rechter Maustaste.
+
+ Beneath a Steel Sky:
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ Strg+g - SEHR schneller Modus EIN/AUS
+ F5 - Ruft Menü zum Speichern und Laden auf.
+ Escape - Ãœberspringt den Vorspann des Spiels.
+ Punkt (.) - Ãœberspringt aktuelle Textzeile.
+
+ Baphomets Fluch:
+ F5 oder Escape - Ruft Menü zum Speichern und Laden auf.
+
+ Baphomets Fluch II:
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ p - Spielpause
+
+ Draci Historie:
+ F5 - Zeigt globales Menü.
+ Linksklick - Laufen, untersuchen
+ Rechtsklick - Verwenden, reden
+ Maus nach oben, i - Inventar
+ Maus nach unten, m - Karte
+ Escape - Vorspann überspringen, Karte/Inventar schließen
+ beliebiger Klick - Ãœberspringt aktuellen Satz.
+ q - Schnelles Laufen EIN/AUS
+
+ Flight of the Amazon Queen:
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ F1 - Tagebuch benutzen (speichern/laden)
+ F11 - Schnelles Speichern
+ F12 - Schnelles Laden
+ Escape - Ãœberspringt Zwischensequenzen.
+ Leertaste - Ãœberspringt aktuelle Textzeile.
+
+ Future Wars
+ F1 - Untersuchen
+ F2 - Nehmen
+ F3 - Inventar
+ F4 - Verwenden
+ F5 - Aktivieren
+ F6 - Sprechen
+ F9 - „Aktivieren“-Menü
+ F10 - „Verwenden“-Menü
+ Escape - Befehlsmenü aufrufen
+
+ Nippon Safes
+ Strg+d - Startet den Debugger.
+ l - Spiel laden
+ s - Spiel speichern
+
+
+ Simon the Sorcerer 1 und 2:
+ Strg 0-9 und Alt 0-9 - Lädt und speichert entsprechenden Speicherstand.
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ F1-F3 - Texttempo, schneller - langsamer
+ F10 - Zeigt alle Figuren und Objekte, die näher
+ betrachtet werden können.
+ Escape - Ãœberspringt Zwischensequenzen.
+ - und + - Musiklautstärke, leiser/lauter
+ m - Musik EIN/AUS
+ s - Sound-Effekte EIN/AUS
+ b - Hintergrundgeräusche EIN/AUS
+ [nur in Simon the Sorcerer 2 möglich]
+ Pause - Spielpause
+ t - Wechselt zwischen Sprachausgabe allein und
+ Sprachausgabe und Untertiteln zusammen
+ [Simon the Sorcerer 1 CD (außer Deutsch und
+ Englisch) und Simon the Sorcerer 2 CD
+ (alle Sprachen)].
+ v - Wechselt zwischen Untertiteln allein und
+ Sprachausgabe und Untertiteln zusammen
+ [nur Simon the Sorcerer 2 CD].
+
+ Simon the Sorcerer's Game Pack
+ Strg-d - Startet den Debugger.
+ Strg-f - Schneller Modus EIN/AUS
+ F12 - Hohes Tempo in Swampy Adventures EIN/AUS
+ - und + - Musiklautstärke, leiser/lauter
+ m - Musik EIN/AUS
+ s - Sound-Effekte EIN/AUS
+ Pause - Spielpause
+
+ Floyd - Es gibt noch Helden
+ Strg+d - Startet den Debugger.
+ Strg+f - Schneller Modus EIN/AUS
+ F7 - Wechselt Figuren.
+ F9 - Objektnamen-Anzeige EIN/AUS
+ s - Sound-Effekte EIN/AUS
+ Pause - Spielpause
+ t - Wechselt zwischen Sprachausgabe allein und
+ Sprachausgabe und Untertiteln zusammen.
+ v - Wechselt zwischen Untertiteln allein und
+ Sprachausgabe und Untertiteln zusammen.
+
+ The Legend of Kyrandia:
+ Strg 0-9 und Alt 0-9 - Lädt und speichert entsprechenden Speicherstand.
+ Strg-d - Startet den Debugger.
+
+ TeenAgent
+ F5 - Zeigt globales Menü.
+
+ Touché: Die Abenteuer des fünften Musketiers:
+ Strg-f - Schneller Modus EIN/AUS
+ F5 - Zeigt Optionen.
+ F9 - Schnelles Gehen EIN
+ F10 - Schnelles Gehen AUS
+ Escape - Beenden
+ Leertaste - Ãœberspringt aktuelle Textzeile.
+ t - Wechselt zwischen „Nur Sprachausgabe“,
+ „Sprachausgabe und Text“ und „Nur Text“.
+
+Beachten Sie, dass von der Verwendung von Strg+f oder Strg+g abgeraten wird:
+Spiele können abstürzen, wenn sie schneller als mit ihrer normalen
+Geschwindigkeit laufen, da Skripte aus dem Takt kommen.
+
+Hinweis für WinCE-Anwender: Wegen der beschränkten Tastatureingabe-Möglichkeiten
+bei den meisten Geräten wird ein kleiner Teil dieser Tastenkürzel über die
+Neutastenzuweisung und/oder Konsolenaktionen unterstützt. Näheres ist in der
+Datei README-WinCE.txt nachzulesen.
+
+
+6.0) Spielstände:
+---- ------------
+Spielstände werden bei einigen Plattformen standardmäßig im aktuellen
+Verzeichnis gespeichert und bei anderen in voreingestellten Verzeichnissen.
+Sehen Sie sich das Beispiel weiter unten in dieser Liesmich-Datei an.
+
+Die folgenden Plattformen haben ein anderes Standardverzeichnis:
+ Mac OS X: $HOME/Documents/ScummVM Savegames/
+ Andere UNIX-Systeme: $HOME/.scummvm/
+
+
+6.1) Automatische Spielstände:
+---- -------------------------
+Bei einigen Spielen (nämlich „Beneath a Steel Sky“, „Flight of the Amazon
+Queen“, allen AGI-Spielen und allen SCUMM-Spielen) wird ScummVM standardmäßig
+automatisch alle fünf Minuten den momentanen Spielstand speichern (über die
+Konfigurationseinstellung „autosave_period“ [Zeitspanne für automatisches
+Speichern] kann dies geändert werden). Bei AGI- und SCUMM-Spielen werden diese
+automatischen Spielstände auf Platz 0 abgelegt. Bei der SCUMM-Engine kann dieser
+Speicherstand über die Tastenkombination Strg+0 oder über das F5-Menü geladen
+werden.
+
+
+6.2) Spielstände umwandeln:
+---- ----------------------
+Die Verwendung von Spielständen aus den Originalversionen wird nicht von allen
+Spiel-Engines unterstützt. Nur bei den folgenden Spielen können Spielstände aus
+den Originalversionen verwendet werden.
+
+ Elvira 1
+ - Fügen Sie 8 Bytes (Name für Spielstand) am Anfang der Spielstanddatei
+ hinzu.
+ - Benennen Sie die Spielstanddatei in „elvira1.xxx“ um.
+
+ Elvira 2
+ - Fügen Sie 8 Bytes (Name für Spielstand) am Anfang der Spielstanddatei
+ hinzu.
+ - Benennen Sie die Spielstanddatei in „elvira2-pc.xxx“ (DOS-Versionen) oder
+ „elvira2.xxx“ (andere Versionen) um.
+
+ Waxworks
+ - Fügen Sie 8 Bytes (Name für Spielstand) am Anfang der Spielstanddatei
+ hinzu.
+ - Benennen Sie die Spielstanddatei in „waxworks-pc.xxx“ (DOS-Versionen) oder
+ „waxworks.xxx“ (andere Versionen) um.
+
+ Simon the Sorcerer 1
+ - Benennen Sie die Spielstanddatei in „simon1.xxx“ um.
+
+ Simon the Sorcerer 2
+ - Benennen Sie die Spielstanddatei in „simon2.xxx“ um.
+
+ Floyd - Es gibt noch Helden
+ - Benennen Sie die Spielstanddatei in „feeble.xxx“ um.
+
+Hierbei steht „xxx“ für den genauen Speicherplatz (z. B. 001), auf welchem sich
+der Spielstand unter ScummVM befinden soll.
+
+
+6.3) Spielstände von Kommandozeile aus anzeigen/laden:
+---- -------------------------------------------------
+
+--list-saves:
+
+ Dieser Schalter kann verwendet werden, um eine Liste der momentanen
+ Spielstände des festgelegten Zielspiels und der entsprechenden Speicherplätze
+ anzuzeigen.
+
+ Verwendung: --list-saves=[ZIEL], wobei [ZIEL] das Zielspiel ist
+
+ Die Engines, die momentan --list-saves unterstützen, sind:
+
+ AGI
+ AGOS
+ CINE
+ DRACI
+ GROOVIE
+ KYRA
+ LURE
+ PARALLACTION
+ QUEEN
+ SAGA
+ SCUMM
+ SKY
+ SWORD1
+ SWORD2
+ TINSEL
+ TOUCHE
+ TUCKER
+
+--save-slot/-x:
+
+ Dieser Schalter kann verwendet werden, um einen Spielstand direkt von der
+ Kommandozeile aus zu laden.
+
+ Verwendung: --save-slot[SPEICHERPLATZ] oder -x[SPEICHERPLATZ], wobei
+ [SPEICHERPLATZ] die Nummer des Speicherplatzes ist
+
+ Die Engines, die momentan --save-slot/-x unterstützen, sind:
+
+ AGI
+ CINE
+ DRACI
+ GROOVIE
+ KYRA
+ LURE
+ PARALLACTION
+ QUEEN
+ SAGA
+ SCUMM
+ SKY
+ SWORD1
+ SWORD2
+ TINSEL
+ TOUCHE
+
+
+7.0) Musik und Sound:
+---- ----------------
+Bei den meisten Betriebssystemen und Spielen wird ScummVM standardmäßig MT-32-
+oder AdLib-Emulation für die Musikwiedergabe verwenden. MIDI ist nicht bei allen
+Betriebssystemen verfügbar oder muss womöglich manuell konfiguriert werden. Wenn
+Sie MIDI verwenden möchten, haben Sie mehrere unterschiedliche
+Ausgabemöglichkeiten, was von Ihrem Betriebssystem und dessen Konfiguration
+abhängt.
+
+ null - Keine Ausgabe. Spielt keinerlei Musik ab.
+
+ adlib - Interne AdLib-Emulation
+ fluidsynth - FluidSynth-MIDI-Emulation
+ mt32 - Interne MT-32-Emulation
+ pcjr - Interne PCjr-Emulation (nur in SCUMM-Spielen verwendbar)
+ pcspk - Interne PC-Lautsprecher-Emulation
+ towns - Interne FM-TOWNS-YM2612-Emulation
+ (nur in SCUMM-FM-TOWNS-Spielen verwendbar)
+
+ alsa - Ausgabe mittels ALSA-Sequenzer-Gerät. Siehe unten.
+ core - CoreAudio-Sound, für Mac-OS-X-Anwender.
+ coremidi - CoreMIDI-Sound, für Mac-OS-X-Anwender. Verwenden Sie diese
+ Option nur, wenn Sie einen Hardware-MIDI-Synthesizer haben.
+ seq - Verwendet /dev/sequencer für MIDI-Ausgabe, *nix-Anwender.
+ Siehe unten.
+ timidity - Verbindet zu TiMidity++-MIDI-Server. Siehe unten.
+ windows - Windows MIDI. Verwendet eingebauten Sequenzer, für
+ Windows-Anwender.
+
+Um einen Sound-Treiber auszuwählen, stellen Sie diesen im Startmenü ein oder
+übergeben Sie dessen Namen über die Option „-e“ an scummvm, z. B. mit der
+Eingabe:
+
+ scummvm -eadlib monkey2
+
+
+7.1) Sound-Wiedergabe mittels AdLib-Emulation:
+---- -----------------------------------------
+Standardmäßig wird eine AdLib-Soundkarte emuliert und ScummVM wird die Musik als
+abgetastete Wellen ausgeben. Das ist die Standard-Methode für die einige Spiele
+und bietet die beste Kompatibilität zwischen Maschinen und Spielen.
+
+
+7.2) Sound-Wiedergabe mittels FluidSynth-MIDI-Emulation:
+---- ---------------------------------------------------
+Wenn ScummVM mit Unterstützung von libfluidsynth kompiliert wurde, wird das
+Programm in der Lage sein, MIDI-Musik durch den FluidSynth-Treiber
+wiederzugeben. Hierfür müssen Sie jedoch eine zu verwendende SoundFont-Datenbank
+festlegen.
+
+Da die standardmäßige Ausgabelautstärke von FluidSynth ziemlich leise sein kann,
+wird ScummVM standardmäßig das Signal verstärken. Dies kann mit der
+Kommandozeilenoption --midi-gain weiter geregelt werden oder mittels der
+Einstellung „midi_gain“ in der Konfigurationsdatei.
+
+Die Einstellung kann jeden Wert zwischen 0 und 1000 annehmen, wobei der
+Standard-Wert 100 ist (dies entspricht der FluidSynth-Verstärkung von 0,0 bis
+10,0, die vermutlich in Dezibel bemessen wird).
+
+HINWEIS: Die Prozessorvoraussetzungen für FluidSynth können in einigen Fällen
+ziemlich hoch sein. Ein schneller Hauptprozessor (CPU) wird empfohlen.
+
+
+7.3) Sound-Wiedergabe mittels MT-32-Emulation:
+---- -----------------------------------------
+Einige Spiele, die MIDI-Musikdaten beinhalten, haben auch verbesserte Versionen
+der Musikstücke für das MT-32-Soundmodul. ScummVM kann nun dieses Gerät
+emulieren, jedoch müssen Sie originale MT-32-ROM-Dateien verwenden, damit es
+funktioniert:
+
+MT32_PCM.ROM - IC21 (512 KB)
+MT32_CONTROL.ROM - IC26 (32 KB) und IC27 (32 KB), Byte-weise verschachtelt
+
+Legen Sie diese ROM-Dateien entweder im Spielverzeichnis ab, im Extrapfad oder
+im Verzeichnis, in dem sich Ihre ausführbare ScummVM-Datei befindet.
+
+Bei diesem Treiber müssen Sie nicht --native-mt32 mittels Kommandozeile
+festlegen, da er automatisch aktiviert wird.
+
+HINWEIS: Die Prozessorvoraussetzungen für diesen Emulator sind ziemlich hoch;
+ein schneller Hauptprozessor (CPU) wird dringend empfohlen.
+
+
+7.4) Sound-Wiedergabe mittels MIDI-Emulation:
+---- ----------------------------------------
+Einige Spiele (wie beispielsweise Sam & Max) beinhalten nur MIDI-Musikdaten.
+Einst hat dies verhindert, Musik in diesen Spielen auf Plattformen
+wiederzugeben, auf welchen MIDI nicht unterstützt wird oder auf Soundkarten, die
+keine MIDI-Treiber bereitstellen (z. B. können viele Soundkarten MIDI unter
+Linux nicht abspielen). ScummVM kann nun den MIDI-Modus emulieren mittels
+abgetasteter Wellen und AdLib, FluidSynth-MIDI-Emulation oder MT-32-Emulation
+entsprechend über die Option -eadlib, -efluidsynth oder -emt32. Wenn Sie jedoch
+in der Lage sind, natives MIDI zu verwenden, empfehlen wir zur Erzielung von
+bestmöglichem Klang, eine der unten stehenden MIDI-Methoden zu verwenden.
+
+
+7.5) Sound-Wiedergabe mittels nativem MIDI:
+---- --------------------------------------
+Verwenden Sie die geeignete Kommandozeilenoption -e<Modus> aus der oberen
+Aufzählung, um Ihr bevorzugtes MIDI-Gerät auszuwählen. Wenn Sie beispielsweise
+den Windows-MIDI-Treiber benutzen möchten, verwenden Sie die Option -ewindows.
+
+
+7.5.1) Verwendung von MIDI-Optionen zur Anpassung der nativen MIDI-Ausgabe:
+------ --------------------------------------------------------------------
+ScummVM unterstützt eine Vielzahl von MIDI-Methoden, was von den Fähigkeiten des
+MIDI-Geräts abhängt.
+
+Wenn --native-mt32 festgelegt ist, wird ScummVM Ihr Gerät als echtes MT-32-Modul
+behandeln. Da die Instrumentenzuweisung und exklusiven Systembefehle von MT-32
+sich von denen der General-MIDI-Geräte unterscheiden, sollten Sie diese Option
+nur aktivieren, wenn Sie tatsächlich Roland MT-32, LAPC-I, CM-64, CM-32L, CM-500
+oder ein GS-Gerät mit MT-32-Zuweisung verwenden.
+
+Wenn --enable-gs festgelegt ist, wird ScummVM Ihr GS-kompatibles Gerät mit
+Voreinstellungen belegen, die den Hall von MT-32 nachahmen, (das Fehlen von)
+Chorus, die Empfindlichkeit der gleitenden Tonhöhenverschiebung usw. Wenn dies
+in Verbindung mit --native-mt32 festgelegt ist, wird ScummVM die
+MT-32-kompatible Zuweisung und das Schlagzeug auf Ihrem GS-Gerät auswählen.
+Diese Einstellung funktioniert besser als standardmäßige GM- oder GS-Emulation
+in Spielen, die keine spezifische Instrumentenzuweisung haben (Loom und
+Monkey1). Sie sollten nur beide Einstellungen festlegen, wenn Sie ein GS-Gerät
+verwenden, das eine MT-32-Zuweisung hat, wie beispielsweise SC-55, SC-88,
+SC-88 Pro, SC-8820, SC-8850, usw. Bitte beachten Sie, dass --enable-gs sowohl
+für DOTT als auch Sam & Max nicht verfügbar ist, da diese Spiele nativ General
+MIDI verwenden.
+
+Wenn keine der oberen Einstellungen aktiviert ist, wird ScummVM Ihr Gerät im
+General-MIDI-Modus initialisieren und GM-Emulation in Spielen mit
+MT-32-Soundtrack verwenden.
+
+Einige Spiele beinhalten Sound-Effekte, die exklusiv für den AdLib-Soundtrack
+vorgesehen sind. Für diese Spiele sollten Sie --multi-midi festlegen, um
+MIDI-Musik mit AdLib-Sound-Effekten zu kombinieren.
+
+
+7.6) Sound-Wiedergabe mittels MIDI-Sequenzer: [NUR IN UNIX]
+---- ----------------------------------------
+Wenn Ihr Soundkartentreiber einen Sequenzer unterstützt, können Sie mit der
+Umgebungsvariable „SCUMMVM_MIDI“ auf Ihr Sequenzergerät zeigen -- z. B auf
+/dev/sequencer
+
+Wenn Sie bei dieser Einstellung das Problem haben, dass Sie keinen Ton hören,
+müssen Sie womöglich die Umgebungsvariable „SCUMMVM_MIDIPORT“ mit dem Wert 1
+oder 2 belegen. Dies wählt den Port auf dem zu verwendenden ausgewählten
+Sequenzer aus. Starten Sie dann scummvm mit dem Parameter -eseq. Das sollte bei
+verschiedenen Soundkarten funktionieren und bietet womöglich bessere Leistung
+und Qualität als AdLib-Emulation. Bei Systemen, bei welchen die
+Sequenzer-Unterstützung jedoch nicht funktioniert, können Sie immer auf die
+AdLib-Emulation zurückgreifen.
+
+
+7.6.1) Sound-Wiedergabe mittels ALSA-Sequenzer: [NUR IN UNIX]
+------ ----------------------------------------
+Wenn Sie den ALSA-Treiber mit Sequenzer-Unterstützung installiert haben, können
+Sie bei der Umgebungsvariable „SCUMMVM_PORT“ oder der Variable „alsa_port“ in
+der Konfigurationsdatei den Sequenzer-Port festlegen. Wenn der Port in keiner
+der beiden Variablen festgelegt ist, werden standardmäßig die Ports „65:0“ und
+„17:0“ probiert.
+
+Hier ist eine kurze Anleitung, um den ALSA-Sequenzer mit Ihrer Soundkarte zu
+verwenden. In allen Fällen können Sie eine Liste aller Sequenzer-Ports, die Sie
+haben, mit dem Befehl „aconnect -o -l“ erhalten. Hierdurch sollte etwas
+Ähnliches wie folgt ausgegeben werden:
+
+client 14: 'Midi Through' [type=kernel]
+ 0 'Midi Through Port-0'
+client 16: 'SBLive! Value [CT4832]' [type=kernel]
+ 0 'EMU10K1 MPU-401 (UART)'
+client 17: 'Emu10k1 WaveTable' [type=kernel]
+ 0 'Emu10k1 Port 0 '
+ 1 'Emu10k1 Port 1 '
+ 2 'Emu10k1 Port 2 '
+ 3 'Emu10k1 Port 3 '
+client 128: 'TiMidity' [type=user]
+ 0 'TiMidity port 0 '
+ 1 'TiMidity port 1 '
+ 2 'TiMidity port 2 '
+ 3 'TiMidity port 3 '
+
+Das Wichtigste hieraus ist, dass es vier WaveTable-MIDI-Ausgänge gibt, die sich
+bei 17:0, 17:1, 17:2 und 17:3 befinden, sowie vier TiMidity-Ports, die sich bei
+128:0, 128:1, 128:2 und 128:3 befinden.
+
+Wenn Sie einen FM-Chip auf Ihrer Soundkarte haben, wie beispielsweise die
+Sound Blaster 16, dann müssen Sie die SoundsFonts über das Programm sbiload
+laden. Beispiel:
+
+ sbiload -p 17:0 /etc/std.o3 /etc/drums.o3
+
+Wenn Sie eine WaveTable-fähige Soundkarte haben, müssen Sie eine SBK- oder
+SF2-SoundFont-Datenbank über das Programm asfxload laden. Beispiel:
+
+ sfxload /Pfad/zu/8mbgmsfx.sf2
+
+Wenn Sie keine MIDI-fähige Soundkarte haben, gibt es zwei Alternativen:
+FluidSynth und TiMidity. Wir empfehlen FluidSynth, da TiMidity auf vielen
+Systemen bei der Musik „nachhinkt“. Das ist in Spielen mit iMUSE sehr auffällig,
+die schnelle und dynamische Musikübergänge verwenden. Wenn Sie „TiMidity“ unter
+„root“ laufen lassen, ermöglicht dies die Einstellung von Echtzeitpriorität, was
+das Nachziehen der Musik reduzieren kann.
+
+Wie folgt weisen Sie TiMidity an, ein ALSA-Sequenzer zu werden:
+
+ timidity -iAqqq -B2,8 -Os1S -s 44100 &
+
+(Wenn Sie mit diesen Parametern eine unleserliche Ausgabemeldung erhalten,
+können Sie -B2,8 weglassen oder den Wert ändern.)
+
+Wie folgt weisen Sie FluidSynth an, ein ALSA-Sequenzer zu werden (mittels
+SoundFonts):
+
+ fluidsynth -m alsa_seq /Pfad/zu/8mbgmsfx.sf2
+
+Wenn einmal TiMidity oder FluidSynth laufen, verwenden Sie den Befehl
+„aconnect -o -l“, der bereits in diesem Abschnitt beschrieben wurde.
+
+
+7.6.2) Sound-Wiedergabe mittels IRIX-dmedia-Sequenzer: [NUR IN UNIX]
+------ -----------------------------------------------
+Wenn Sie IRIX und den Treiber dmedia mit Sequenzer-Unterstützung verwenden,
+können Sie bei der Umgebungsvariable „SCUMMVM_MIDIPORT“ oder der Variable
+„dmedia_port“ in der Konfigurationsdatei den Sequenzer-Port festlegen.
+Standardmäßig wird der erste Port verwendet.
+
+Um eine Liste der konfigurierten MIDIs auf Ihrem System zu erhalten, rufen Sie
+„startmidi“ ohne Parameter auf. Beispiel-Ausgabemeldung:
+
+ 2 MIDI interfaces configured:
+ Serial Port 2
+ Software Synth
+
+In diesem Beispiel können Sie in ScummVM konfigurieren, dass der
+„Software Synth“ anstatt des standardmäßigen „Serial Port 2“ verwendet wird,
+indem Sie die Zeile
+
+ dmedia_port=Software Synth
+
+in Ihrer Konfigurationsdatei im Abschnitt [scummvm] einfügen oder bei den
+Umgebungsvariablen „SCUMMVM_PORT=Software Synth“ festlegen.
+
+
+7.7) TiMidity++-MIDI-Server verwenden:
+---- ---------------------------------
+Wenn Ihrem Betriebssystem jeglicher MIDI-Sequenzer fehlt, aber Sie trotzdem eine
+bessere MIDI-Qualität haben wollen, als die standardmäßige AdLib-Emulation
+bieten kann, können Sie es mit dem TiMidity++-MIDI-Server versuchen. Schauen Sie
+auf der Website http://timidity.sourceforge.net/ bezüglich Download- und
+Installationsanweisungen nach.
+
+Zuerst benötigen Sie einen Dämonen (ein im Hintergrund laufendes
+Dienstprogramm):
+
+ timidity -ir 7777
+
+Nun können Sie ScummVM starten und TiMidity für Musikausgabe auswählen.
+Standardmäßig wird das Programm mit dem localhost:7777 verbunden, aber Sie
+können Host und Port über die Umgebungsvariable „TIMIDITY_HOST“ ändern. Sie
+können auch eine „Gerätenummer“ über die Umgebungsvariable „SCUMMVM_MIDIPORT“
+festlegen.
+
+
+7.8) Komprimierte Audio-Dateien verwenden
+---- ------------------------------------
+
+7.8.0) MP3-Dateien für Audio von CD verwenden:
+------ ---------------------------------------
+Verwenden Sie LAME oder einen anderen MP3-Kodierer, um die CD-Audio-Titel in
+Dateien zu extrahieren. Benennen Sie die Dateien in track1.mp3, track2.mp3 usw.
+um. Sie müssen die Dateien zuerst von der CD als WAV-Datei extrahieren und dann
+in eine MP3-Datei mit konstanter Bitrate umwandeln. Das kann durch folgenden
+LAME-Befehl in der Kommandozeile geschehen:
+
+ lame -t -q 0 -b 96 track1.wav track1.mp3
+
+
+7.8.1) Ogg-Vorbis-Dateien für Audio von CD verwenden:
+------ ----------------------------------------------
+Verwenden Sie oggenc oder einen anderen Vorbis-Kodierer, um die CD-Audio-Titel
+in Dateien umzuwandeln. Benennen Sie die Dateien in track1.ogg, track2.ogg usw.
+um. ScummVM muss mit Unterstützung für Ogg Vorbis kompiliert sein, um diese
+Option nutzen zu können. Sie müssen die Dateien zuerst von der CD als WAV-Datei
+extrahieren und dann in eine Vorbis-Datei umwandeln. Das kann mit folgendem
+Befehl in oggenc in der Kommandozeile geschehen, wobei der Wert nach q die
+gewünschte Qualität zwischen 0 und 10 festlegt:
+
+ oggenc -q 5 track1.wav
+
+
+7.8.2) FLAC-Dateien für Audio von CD verwenden:
+------ ----------------------------------------
+Verwenden Sie flac oder einen anderen FLAC-Kodierer, um die CD-Audio-Titel in
+Dateien umzuwandeln. Benennen Sie die Dateien in track1.flac, track2.flac usw.
+um. Wenn Ihr Dateisystem nur drei Buchstaben für die Dateiendung erlaubt,
+benennen Sie die Dateien in track1.fla, track2.fla usw. um. ScummVM muss mit
+Unterstützung für FLAC kompiliert sein, um diese Option nutzen zu können. Sie
+müssen die Dateien zuerst von der CD als WAV-Datei extrahieren und dann in eine
+FLAC-Datei umwandeln. Das kann mit folgendem FLAC-Befehl in der Kommandozeile
+geschehen:
+
+ flac --best track1.wav
+
+Denken Sie daran, dass die Qualität immer dieselbe ist und die abweichenden
+Kodieroptionen nur Auswirkungen auf die Kodierzeit und letztendliche Dateigröße
+haben.
+
+
+7.8.3) MONSTER.SOU mittels MP3 komprimieren:
+------ -------------------------------------
+Sie benötigen LAME und unser Dienstprogramm „compress_scumm_sou“ aus dem
+ScummVM-Tools-Paket, um diese Aufgabe zu verrichten, und ScummVM muss mit
+MAD-Unterstützung kompiliert sein.
+
+ compress_scumm_sou monster.sou
+
+Am Ende werden Sie die viel kleinere Datei monster.so3 haben. Kopieren Sie diese
+Datei ins Verzeichnis des Spiels. Sie können unbesorgt die Datei monster.sou
+hieraus entfernen.
+
+
+7.8.4) MONSTER.SOU mittels Ogg Vorbis komprimieren:
+------ --------------------------------------------
+Ähnlich wie oben muss ScummVM mit Ogg-Unterstützung kompiliert sein. Rufen Sie
+auf:
+
+ compress_scumm_sou --vorbis monster.sou
+
+Dadurch sollte die kleinere Datei monster.sog erzeugt werden, welche Sie ins
+Verzeichnis des Spiels kopieren sollten. Die Umwandlung in Ogg kann beträchtlich
+länger dauern als bei MP3, also sollten Sie ein gutes Buch zur Hand haben.
+
+
+7.8.5) MONSTER.SOU mittels FLAC komprimieren:
+------ --------------------------------------
+Ähnlich wie oben muss ScummVM mit FLAC-Unterstützung kompiliert sein. Rufen Sie
+auf:
+
+ compress_scumm_sou --flac monster.sou
+
+Dadurch sollte die kleinere Datei monster.sof erzeugt werden, welche Sie ins
+Verzeichnis des Spiels kopieren sollten. Denken Sie daran, dass die Qualität
+immer dieselbe ist und die abweichenden Kodieroptionen nur Auswirkungen auf die
+Kodierzeit und letztendliche Dateigröße haben. Die Veränderung der Blockgröße
+(-b <Wert>) hat den größten Einfluss auf die letztendliche Dateigröße --
+1152 scheint ein guter Wert für diese Art von Sound-Dateien zu sein. Lesen Sie
+auf jeden Fall die Dokumentation des Kodierers, bevor Sie einen anderen Wert
+verwenden.
+
+
+7.8.6) Musik/Sound/Sprachausgabe in AGOS-Spielen komprimieren:
+------ -------------------------------------------------------
+Verwenden Sie unser Dienstprogramm „compress_agos“ aus dem ScummVM-Tools-Paket,
+um diese Aufgabe zu verrichten. Sie können zwischen mehreren Zielformaten
+auswählen, aber beachten Sie, dass Sie diese nur verwenden können, wenn ScummVM
+mit entsprechender Dekodierer-Unterstützung kompiliert wurde.
+
+ compress_agos effects (Für Acorn-CD-Version von Simon 1)
+ compress_agos simon (Für Acorn-CD-Version von Simon 1)
+ compress_agos effects.voc (Für DOS-CD-Version von Simon 1)
+ compress_agos simon.voc (Für DOS-CD-Version von Simon 1)
+ compress_agos simon.wav (Für Windows-CD-Version von Simon 1)
+ compress_agos simon2.voc (Für DOS-CD-Version von Simon 2)
+ compress_agos simon2.wav (Für Windows-CD-Version von Simon 2)
+ compress_agos mac (Für Macintosh-Version von Simon 2)
+
+ compress_agos voices1.wav (Für Windows-2CD/4CD-Version von Floyd)
+ compress_agos voices2.wav (Für Windows-2CD/4CD-Version von Floyd)
+ compress_agos voices3.wav (Für Windows-4CD-Version von Floyd)
+ compress_agos voices4.wav (Für Windows-4CD-Version von Floyd)
+
+ compress_agos Music (Für Windows-Version von Game Pack)
+
+Für Ogg Vorbis fügen Sie den Parameter --vorbis den Optionen hinzu. Beispiel:
+
+ compress_agos --vorbis
+
+Für FLAC fügen Sie den Parameter --flac und optionale Unterparameter hinzu.
+Beispiel:
+
+ compress_agos --flac
+
+Am Ende werden Sie die viel kleinere Datei *.mp3, *.ogg oder *.fla haben.
+Kopieren Sie diese Datei ins Verzeichnis des Spiels. Sie können unbesorgt die
+alte Datei hieraus entfernen.
+
+
+7.8.7) Sprachausgabe/Musik in Baphomets Fluch komprimieren:
+------ ----------------------------------------------------
+Das Tool „compress_sword1“ aus dem ScummVM-Tools-Paket kann Musik und
+Sprachausgabe des Spiels sowohl in MP3, Ogg Vorbis als auch FLAC kodieren. Die
+einfachste Möglichkeit, die Dateien umzuwandeln, ist, die ausführbare Datei des
+Tools in das Verzeichnis des Spiels zu kopieren (zusammen mit dem LAME-Kodierer)
+und sie von dort aus aufzurufen. Auf diese Weise wird automatisch alles in MP3
+umgewandelt. Hinterher können Sie manuell die Dateien SPEECH?.CLU und die
+WAVE-Musik-Dateien entfernen.
+
+Wenn Sie „compress_sword1 --vorbis“ aufrufen, werden die Dateien in Ogg Vorbis
+anstatt MP3 umgewandelt.
+
+Wenn Sie „compress_sword1 --flac“ aufrufen, werden die Dateien in FLAC anstatt
+MP3 umgewandelt.
+
+Rufen Sie „compress_sword1 --help“ auf, um eine komplette Liste der Optionen
+angezeigt zu bekommen.
+
+
+7.8.8) Sprachausgabe/Musik in Baphomets Fluch II komprimieren:
+------ -------------------------------------------------------
+Verwenden Sie unser Dienstprogramm „compress_sword2“ aus dem
+ScummVM-Tools-Paket, um diese Aufgabe zu verrichten. Sie können zwischen
+mehreren Zielformaten auswählen, aber beachten Sie, dass Sie diese nur verwenden
+können, wenn ScummVM mit entsprechender Dekodierer-Unterstützung kompiliert
+wurde.
+
+ compress_sword2 speech1.clu
+ compress_sword2 music1.clu
+
+Für Ogg Vorbis fügen Sie den Parameter --vorbis den Optionen hinzu. Beispiel:
+
+ compress_sword2 --vorbis
+
+Am Ende werden Sie die viel kleinere Datei *.cl3 oder *.clg haben. Kopieren Sie
+diese Datei ins Verzeichnis des Spiels. Sie können unbesorgt die alte Datei
+hieraus entfernen.
+
+Es ist möglich, die FLAC-Komprimierung zu verwenden, indem Sie den Parameter
+--flac den Optionen hinzufügen. Jedoch wird die letztendliche Datei sogar größer
+sein als die Originaldatei.
+
+Bitte beachten Sie, dass compress_sword2 nur mit den vier
+Sprachausgabe-/Musikdateien aus Baphomets Fluch II funktioniert. Das Programm
+funktioniert mit keiner der anderen *.clu-Dateien noch mit den
+Sprachausgabe-Dateien aus Baphomets Fluch I.
+
+
+7.9) Ausgabefrequenzen:
+---- ------------------
+Die Ausgabefrequenz teilt ScummVM mit, wie viele Sound-Abtastungen je Kanal pro
+Sekunde abgespielt werden sollen. Es gibt viel, was über dieses Thema gesagt
+werden könnte, aber das Meiste wäre hier unerheblich. Die Kurzfassung ist, dass
+für die meisten Spiele 22050 Hz genügen, aber in einigen Fällen 44100 Hz
+vorzuziehen sind. Auf äußerst alten, langsamen Systemen möchten Sie womöglich
+11025 Hz verwenden, aber es ist unwahrscheinlich, dass Sie sich darum Sorgen
+machen müssen.
+
+Zur Erklärung: Die meisten Sounds, die ScummVM wiedergeben muss, wurden entweder
+mit der Frequenz 22050 Hz oder 11025 Hz abgetastet. Durch die Verwendung einer
+höheren Abtastfrequenz wird die Qualität der Sounds nicht magisch verbessert.
+Deswegen genügen 22050 Hz.
+
+Einige Spiele verwenden Audio von CD. Wenn Sie komprimierte Dateien hierfür
+verwenden, haben diese wahrscheinlich die Abtastfrequenz 44100 Hz, womit dies
+für solche Spiele die bessere Wahl für die Abtastfrequenz ist.
+
+Bei Verwendung von AdLib, FM Towns, des PC-Lautsprecher oder des
+PCjr-Musiktreibers ist ScummVM für die Erzeugung der Abtastungen zuständig.
+Normalerweise sind 22050 Hz hierfür eine Menge, aber in Beneath a Steel Sky gibt
+es mindestens ein AdLib-Musikstück, das mit 44100 Hz viel besser klingt.
+
+Die Verwendung von Frequenzen dazwischen wird nicht empfohlen. Einerseits könnte
+Ihre Soundkarte diese nicht unterstützen. In der Theorie sollte ScummVM in
+diesem Fall auf eine sinnvollere Frequenz zurückgreifen, aber verlassen Sie sich
+nicht darauf. Ein noch wichtigerer Grund ist, dass ScummVM alle Sounds zu ihrer
+Ausgabefrequenz umwandeln muss. Das funktioniert viel einfacher, wenn die
+Ausgabefrequenz ein Vielfaches der Originalfrequenz ist.
+
+
+8.0) Konfigurationsdatei:
+---- --------------------
+Standardmäßig wird die Konfigurationsdatei hier gespeichert und geladen:
+
+ Windows Vista:
+ \Users\Benutzername\AppData\Roaming\ScummVM\scummvm.ini
+
+ Windows 2000/XP:
+ \Dokumente und Einstellungen\Benutzername\Anwendungsdaten\
+ ScummVM\scummvm.ini
+
+ Windows NT4:
+ <Windows-Verzeichnis>\Profiles\Benutzername\
+ Application Data\ScummVM\scummvm.ini
+
+ Windows 95/98/ME:
+ <Windows-Verzeichnis>\scummvm.ini
+
+ Wenn eine ältere Version von ScummVM unter Windows installiert wurde, wird
+ der frühere Standard-Ort „<Windows-Verzeichnis>\scummvm.ini“ beibehalten.
+
+ Unix:
+ ~/.scummvmrc
+
+ Mac OS X:
+ ~/Library/Preferences/ScummVM Preferences
+ (Hierbei bezieht sich ~ auf das Benutzerverzeichnis.)
+
+ Sonstige:
+ scummvm.ini im aktuellen Verzeichnis
+
+Eine beispielhafte Konfigurationsdatei sieht wie folgt aus:
+
+ [scummvm]
+ gfx_mode=supereagle
+ fullscreen=true
+ savepath=C:\Spielstaende\
+
+ [sky]
+ path=C:\Spiele\SteelSky\
+
+ [sky-Deutsch]
+ gameid=sky
+ language=de
+ path=C:\Spiele\SteelSky\
+ description=Beneath a Steel Sky mit deutschen Untertiteln
+
+ [dott-Deutsch]
+ gameid=tentacle
+ path=C:\Deutsch\tentacle\
+ description=Deutsche Version von DOTT
+
+ [tentacle]
+ path=C:\tentacle\
+ subtitles=true
+ music_volume=40
+ sfx_volume=255
+
+ [loomcd]
+ cdrom=1
+ path=C:\loom\
+ talkspeed=5
+ savepath=C:\loom\Spielstaende\
+
+ [monkey2]
+ path=C:\amiga_mi2\
+ music_driver=windows
+
+Erklärung zu nachfolgender Liste: In der nachfolgenden Liste mit
+Schlüsselwörtern werden rechts das Schlüsselwort, in der Mitte der Typ der
+erwarteten Zuweisung und rechts die Erklärung angezeigt. Der Typ „Bool“ bedeutet
+Wahrheitswert. Er kann entweder „true“ (wahr) oder „false“ (falsch) sein.
+
+Die folgenden Schlüsselwörter werden erkannt:
+
+ path Text Verzeichnis mit Spieldaten
+ autosave_period Zahl Sekunden zwischen automatischem Speichern
+ (Standard: 300)
+ save_slot Zahl Nummer des Spielstands, der zu Spielbeginn
+ geladen werden soll
+ savepath Text Verzeichnis für Spielstände des Spiels
+ versioninfo Text Die Version von ScummVM, welche diese
+ Konfigurationsdatei erstellt hat
+
+ gameid Text Die echte Spielkennung. Hilfreich, wenn Sie
+ mehrere Versionen des gleichen Spiels haben und
+ verschiedene Einträge für diese wollen.
+ Siehe Beispiel.
+ description Text Die Spielbeschreibung wie sie in der Spieleliste
+ erscheinen wird
+
+ language Text Legt Sprache fest (de, en, us, fr, it, pt, es,
+ jp, zh, kr, se, gb, hb, cz, ru).
+ speech_mute Bool Falls „true“, wird Sprachausgabe unterdrückt.
+ subtitles Bool Belegung mit „true“ aktiviert Untertitel.
+ talkspeed Zahl Textverzögerung in SCUMM-Spielen oder Texttempo
+ in anderen Spielen
+
+ fullscreen Bool Vollbildmodus
+ aspect_ratio Bool Seitenverhältniskorrektur
+ disable_dithering Bool Entfernung von Fehlerdiffusionsartefakten in
+ EGA-Spielen
+ gfx_mode Text Grafikmodus (normal, 2x, 3x, 2xsai,
+ super2xsai, supereagle, advmame2x, advmame3x,
+ hq2x, hq3x, tv2x, dotmatrix)
+
+ confirm_exit Bool Fragt Anwender vor Beenden nach Bestätigung
+ (nur SDL-System).
+ console Bool Konsolenfenster (Standard: aktiv) (nur Windows)
+ cdrom Zahl Nummer von CD-ROM-Laufwerk für das Auslesen von
+ Audio. Falls negaitv, wird erst gar nicht
+ versucht, auf CD-ROM-Laufwerk zuzugreifen.
+ joystick_num Zahl Nummer von Joystick für Verwendung als
+ Eingabegerät
+ music_driver Text Zu verwendender Musiktreiber
+ opl_driver Text Verwendung von AdLib-(OPL-)Emulator
+ output_rate Zahl Zu verwendende Ausgabefrequenz in Hz. Sinnvolle
+ Werte sind 11025, 22050 und 44100.
+ alsa_port Text Zu verwendender Port für Ausgabe mittels
+ ALSA-Musiktreiber
+ music_volume Zahl Musiklautstärke-Einstellung (0-255)
+ multi_midi Bool Falls „true“, werden AdLib und natives MIDI
+ kombiniert.
+ soundfont Text Zu verwendende SoundFont-Datenbank für
+ MIDI-Wiedergabe (wird nur von einigen
+ MIDI-Treibern unterstützt)
+ native_mt32 Bool Falls „true“, wird GM-Emulation deaktiviert und
+ angenommen, dass ein echtes Roland-MT-32-Modul
+ verfügbar ist.
+ enable_gs Bool Falls „true“, werden GS-spezifische Funktionen
+ aktiviert, um GM-Emulation zu verbessern. Falls
+ native_mt32 auch „true“ ist, wird das GS-Gerät
+ eine MT-32-Zuweisung auswählen, um die korrekten
+ Instrumente wiederzugeben.
+ sfx_volume Zahl Effektlautstärke-Einstellung (0-255)
+ tempo Zahl Musiktempo (50-200) (Standard: 100)
+ speech_volume Zahl Sprachlautstärke-Einstellung (0-255)
+ midi_gain Zahl MIDI-Lautstärke (0-1000) (Standard: 100)
+ (wird nur von einigen MIDI-Treibern unterstützt)
+
+ copy_protection Bool Kopierschutz in bestimmten Spielen, für welche
+ ScummVM ihn standardmäßig ausschaltet
+ demo_mode Bool Startet Demo in Maniac Mansion.
+ alt_intro Bool Verwendet alternativen Vorspann bei CD-Versionen
+ von Beneath a Steel Sky und Flight of the Amazon
+ Queen.
+
+ boot_param Zahl Ruft Boot-Skript mit dieser Nummer auf.
+
+Baphomets Fluch II verfügt zusätzlich über folgende nicht standardmäßige
+Schlüsselwörter:
+
+ gfx_details Zahl Grafikqualitätseinstellung (0-3)
+ music_mute Bool Falls „true“, wird Musik unterdrückt.
+ object_labels Bool Falls „true“, werden Objektnamen angezeigt.
+ reverse_stereo Bool Falls „true“, werden Stereokanäle umgekehrt.
+ sfx_mute Bool Falls „true“, werden Geräusche unterdrückt.
+
+Flight of the Amazon Queen verfügt zusätzlich über folgende nicht standardmäßige
+Schlüsselwörter:
+
+ music_mute Bool Falls „true“, wird Musik unterdrückt.
+ sfx_mute Bool Falls „true“, werden Geräusche unterdrückt.
+
+Die Windows-Version von King's Quest VI verfügt zusätzlich über folgendes nicht
+standardmäßiges Schlüsselwort:
+
+ windows_cursors Bool Falls „true“, werden die originalen
+ unskalierten, schwarz-weißen Windows-Zeiger
+ anstatt der von DOS verwendet. Wenn „false“,
+ werden die DOS-Zeiger in der Windows-Version
+ verwendet - hochskaliert, um zum Rest der
+ hochskalierten Grafiken zu passen.
+
+Simon the Sorcerer 1 und 2 verfügen zusätzlich über folgende nicht
+standardmäßige Schlüsselwörter:
+
+ music_mute Bool Falls „true“, wird Musik unterdrückt.
+ sfx_mute Bool Falls „true“, werden Geräusche unterdrückt.
+
+The Legend of Kyrandia verfügt zusätzlich über folgendes nicht standardmäßiges
+Schlüsselwort:
+
+ walkspeed Zahl Bewegungsgeschwindigkeit (0-4)
+
+
+9.0) Kompilierung:
+---- -------------
+Für eine aktuelle Übersicht dazu, wie man ScummVM für unterschiedliche
+Plattformen kompiliert, schauen Sie bitte in unserem Wiki nach, insbesondere auf
+dieser Seite:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM
+
+Wenn Sie für Windows, Linux oder Mac OS X kompilieren, benötigen Sie SDL-1.2.2
+oder höher (ältere Versionen funktionieren möglicherweise, haben aber keinen
+Support) und einen unterstützten Kompilierer. Mehrere Kompilierer,
+einschließlich GCC, mingw und neue Versionen von Microsoft Visual C++ werden
+unterstützt. Wenn Sie mit MP3 komprimierte CD-Titel oder .SOU-Dateien verwenden
+möchten, müssen Sie die MAD-Bibliothek installieren; ebenso benötigen Sie die
+geeigneten Bibliotheken für Sound-Dateien, die mit Ogg Vorbis und FLAC
+komprimiert wurden. Für komprimierte Speicherstände ist zlib erforderlich.
+
+Von einigen Teilen in ScummVM, insbesondere Grafikwandlern, gibt es stark
+optimierte Versionen, die in Assembler geschrieben sind. Wenn Sie diese
+verwenden möchten, müssen Sie den Assembler nasm installieren
+(siehe http://nasm.sf.net). Beachten Sie, dass wir momentan nur für x86 MMX
+optimierte Versionen haben und diese auf keinem anderen Prozessor kompiliert
+werden.
+
+Bei Win9x/NT/XP können Sie USE_WINDBG definieren und WinDbg anhängen, um
+Debug-Nachrichten zu durchsuchen
+(siehe http://www.sysinternals.com/ntw2k/freeware/debugview.shtml).
+
+ GCC und MinGW32:
+ * Geben Sie „./configure“ ein.
+ * Geben Sie „make“ ein (oder „gmake“ bzw. „gnumake“, abhängig davon, auf
+ welchem GNU der Befehl „make“ auf Ihrem System aufgerufen wird) und mit
+ etwas Glück wird ScummVM für Sie kompiliert.
+ * Weitere Information finden Sie hier:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/GCC
+ entsprechend
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/MinGW
+
+ Microsoft Visual C++ 8/9/10:
+ * Lesen Sie nach, wie man die Projektmappendatei in „dists\msvc8“ bzw.
+ entsprechend in „dists\msvc9“ oder „dists\msvc10“ erstellt.
+ * Öffnen Sie die erstellte Projektmappendatei.
+ * Geben Sie die Pfade zu den benötigten Bibliotheksdateien
+ und Includedateien unter
+ „Extras|Optionen|Projekte und Projektmappen|VC++-Verzeichnisse“ ein.
+ * Jetzt sollte das Programm erfolgreich kompiliert werden können.
+ * Weitere Information finden Sie hier:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/VS2005
+
+ Windows Mobile:
+ * Bitte lesen Sie:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/Windows_CE
+
+ Debian GNU/Linux:
+ * Installieren Sie die Pakete „build-essential“, „fakeroot“, „debhelper“,
+ und „libsdl1.2-dev“ auf Ihrem Betriebssystem.
+ * Installieren Sie beliebig viele der folgenden Pakete (optional):
+ „libvorbis-dev“ (für Ogg-Vorbis-Unterstützung), „libasound2-dev“ (für
+ ALSA-Sequenzer-Unterstützung), „libmad0-dev“ (für MAD-MP3-Unterstützung),
+ „zlib1g-dev“ (für Unterstützung von komprimierten Spielständen)
+ * Rufen Sie „make deb“ auf.
+ * Rufen Sie zum Schluss „dpkg -i ../scummvm-cvs*deb“ auf und
+ Sie sind fertig.
+
+ Mac OS X:
+ * Stellen Sie sicher, dass Sie die „Developer“-Tools installiert haben.
+ * Das „Developer“-Paket von SDL für OS X, das auf der SDL-Website
+ zur Verfügung steht, ist _nicht_ geeignet. Sie benötigen stattdessen eine
+ SDL-Zusammenstellung im UNIX-Stil. Eine Möglichkeit, diese zu erhalten,
+ ist, SDL über Fink zu installieren (http://fink.sf.net). Alternativ können
+ Sie SDL mittels Quellcode manuell kompilieren, indem Sie dessen
+ UNIX-Zusammenstellungssystem verwenden (configure && make).
+ * Geben Sie „./configure“ im ScummVM-Verzeichnis ein.
+ * Sie können nun „make“ eingeben, um eine von der Kommandozeile aus
+ aufrufbare Binärdatei zu erstellen.
+ * Um eine Version zu erhalten, die Sie vom Finder aus aufrufen können, geben
+ Sie „make bundle“ ein, wodurch ScummVM.app erstellt wird (das funktioniert
+ nur dann auf Anhieb, wenn Sie SDL in das Verzeichnis /sw installiert haben
+ [wie es bei der Verwendung von Fink getan wird].
+ Wenn Sie SDL auf andere Weise installiert haben, müssen Sie
+ die Datei ports.mk von ScummVM bearbeiten.
+ * Weitere Information finden Sie hier:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/MacOS_X_Crosscompiling
+
+ AmigaOS 4 (Cross-Kompilation mit Cygwin):
+ * Stellen Sie sicher, dass Sie SDL installiert haben. Sie benötigen
+ womöglich auch libogg, libvorbis, libvorbisfile, zlib und libmad.
+ * Geben Sie „./configure --host=ppc-amigaos“ ein.
+ * Wenn Sie einen Fehler wegen sdl-config erhalten, verwenden Sie den
+ Parameter „--with-sdl-prefix“, um den Pfad zu bestimmen.
+ * Überprüfen Sie die Datei „config.mk“ und wenn alles in Ordnung
+ zu sein scheint:
+ * Rufen Sie „make“ auf.
+ * Cross-Kompilation mit Linux ist womöglich genau so einfach.
+
+ iPhone:
+ * Bitte lesen Sie:
+ http://wiki.scummvm.org/index.php/Compiling_ScummVM/iPhone
+
+ Maemo:
+ * Besorgen Sie sich die Scratchbox-Umgebung mit Maemo 2.2 rootstrap
+ (2.2 ist für 770 und höher).
+ * Installieren Sie libmad, Tremor und FLAC mittels Quellcode.
+ * Patchen Sie den ScummVM-Quellcode (einige Dinge sind momentan zu unsauber,
+ um direkt in Git eingebunden zu sein):
+ patch -p1 < backends/platform/maemo/scummvm-[currentversion]-maemo.patch
+ * Aktualisieren Sie debian/changelog.
+ * Rufen Sie „fakeroot dpkg-buildpackage -b -d“ auf.
+
+------------------------------------------------------------------------
+Viel Glück und viel Spaß beim Spielen!
+Das ScummVM-Team.
+http://www.scummvm.org/
+------------------------------------------------------------------------
+
+
+(Deutscher Text basiert auf README mit SHA1 ID:
+d31bf017a9e717759f2410a8d355cf43b3418c4c)
diff --git a/doc/de/Schnellstart b/doc/de/Schnellstart
new file mode 100644
index 0000000000..ee33295214
--- /dev/null
+++ b/doc/de/Schnellstart
@@ -0,0 +1,176 @@
+Dieses Dokument ist eine auszugsweise Ãœbersetzung der englischen README-Datei.
+Das Original-Dokument enthält viel mehr Informationen. Sollten Sie hier also
+nicht das finden, was Sie benötigen und ein wenig Englisch können, sollten Sie
+sich die englische README-Datei ansehen.
+
+Für weitere Informationen, Kompatibilitätslisten, Einzelheiten zu Spenden, die
+neusten veröffentlichten Versionen, Fortschrittsberichte und mehr besuchen Sie
+bitte die ScummVM-Website unter der Adresse: http://www.scummvm.org/
+
+
+Inhaltsverzeichnis:
+------------------
+1.0) Einführung
+ * 1.1 Ãœber ScummVM
+ * 1.2 Schnellstart
+2.0) Kontakt
+ * 2.1 Fehler berichten
+
+
+1.0) Einführung:
+---- -------------
+
+1.1) Ãœber ScummVM:
+---- -------------
+ScummVM ist ein Programm, welches es Ihnen ermöglicht, bestimmte klassische
+Grafik-Adventure (unter anderem aus dem Point-and-Click-Bereich) zu spielen,
+vorausgesetzt, Sie sind im Besitz der Dateien des Spiels. Der Trick dabei ist:
+ScummVM ersetzt lediglich die Funktion der ausführbaren Dateien, die mit den
+Spielen kamen, was ermöglicht, diese Spiele auf Systemen zu spielen, für welche
+sie nie erstellt wurden!
+
+Ursprünglich wurde dieses Programm dafür entwickelt, um SCUMM-Spiele von
+LucasArts auszuführen, wie beispielsweise Maniac Mansion, Monkey Island, Day of
+the Tentacle oder Sam & Max. SCUMM steht als Abkürzung für „Script Creation
+Utility for Maniac Mansion“ (deutsch etwa: Skripterstellungsdienstprogramm für
+Maniac Mansion), was das erste Spiel von LucasArts war, für welches LucasArts
+dieses System entworfen hatte. Und viel später verlieh es seinen Namen an
+ScummVM (wobei „VM“ für „Virtuelle Maschine“ steht).
+
+Mit der Zeit wurde Unterstützung für viele Nicht-SCUMM-Spiele hinzugefügt und
+ScummVM unterstützt nun auch viele AGI- und SCI-Spiele von Sierra (wie
+beispielsweise King's Quest 1-6, Space Quest 1-5, ...), Discworld 1 und 2, Simon
+the Sorcerer 1 und 2, Beneath A Steel Sky, Lure of the Temptress, Baphomets
+Fluch I und II, Flight of the Amazon Queen, Gobliiins 1-3, die Adventure-Reihe
+The Legend of Kyrandia, viele der SCUMM-Spiele für Kinder von Humongous
+Entertainment (einschließlich der Spiele von Fritzi Fisch und Töff-Töff) und
+viele mehr. Sie können eine vollständige Liste mit Einzelheiten einsehen, welche
+Auskunft darüber gibt, welche Spiele unterstützt werden und wie gut. Gehen Sie
+hierfür auf die Kompatibilitätsseite. ScummVM wird fortlaufend verbessert, also
+schauen Sie öfter einmal vorbei.
+
+Unter den Systemen, mit denen Sie diese Spiele spielen können, befinden sich
+normale Schreibtisch-Computer (mit den Betriebssystemen Windows, Linux,
+Mac OS X, ...), Spielekonsolen (Dreamcast, Nintendo DS & Wii, PS2, PSP, ...),
+Smartphones (Android, iPhone, PocketPC, Symbian ...) und einige weitere.
+
+Zurzeit befindet sich ScummVM immer noch stark in der Entwicklung. Seien Sie
+sich bewusst, dass wir zwar versuchen, dass viele Spiele mit wenigen erheblichen
+Fehlern durchgespielt werden können, aber es dennoch zu Abstürzen kommen kann
+und wir keine Gewähr übernehmen. Davon abgesehen: Einige Spiele werden seit
+längerer Zeit unterstützt und sollten in jeder neusten stabilen veröffentlichten
+Version ohne größere Probleme laufen. Sie können sich einen Eindruck davon
+verschaffen, wie gut jedes Spiel unter ScummVM läuft, indem Sie auf die
+Kompatibilitätsseite schauen. Wenn Sie sich ein wenig im Internet umsehen,
+können Sie feststellen, dass ScummVM sogar kommerziell genutzt wird, um einige
+der unterstützen Spiele für moderne Plattformen wiederzuveröffentlichen. Dies
+zeigt, dass mehrere Firmen mit der Qualität der Software zufrieden sind und wie
+gut einige der Spiele mit Hilfe des Programms laufen.
+
+Wenn Ihnen ScummVM gefällt, können Sie uns gerne Geld spenden, indem Sie auf die
+PayPal-Schaltfläche auf der ScummVM-Website klicken. Dies hilft uns dabei,
+notwendige Dienstprogramme zu kaufen, um ScummVM einfacher und schneller zu
+entwickeln. Wenn Sie nicht spenden können, dürfen Sie auch gerne einen Patch
+beisteuern.
+
+1.2) Schnellstart:
+---- -------------
+WICHTIG: In dieser kurzen Anleitung wird davon ausgegangen, dass Sie ScummVM auf
+Deutsch benutzen. Standardmäßig wird ScummVM die Sprache Ihres Betriebssystems
+verwenden. Wenn Sie ScummVM lieber auf Englisch verwenden möchten, benutzen Sie
+bitte die Anleitung in der englischen README-Datei.
+
+Für die ungeduldigen unter den Anwendern ist hier in fünf einfachen Schritten
+kurz beschrieben, wie man ScummVM lauffähig macht und das Programm verwendet.
+
+1. Laden Sie ScummVM unter der Adresse http://www.scummvm.org/downloads.php
+herunter und installieren Sie es.
+
+2. Erstellen Sie ein Verzeichnis auf Ihrer Festplatte und kopieren Sie die
+Dateien des Spiels vom Original-Datenträger in dieses Verzeichnis. Wiederholen
+Sie diesen Vorgang für jedes Spiel, das Sie spielen möchten (es ist besser, für
+jedes Spiel ein eigenes Verzeichnis zu verwenden).
+
+3. Starten Sie ScummVM.
+
+Sollte an diesem Punkt ScummVM auf Englisch statt auf Deutsch erscheinen, gehen
+Sie wie folgt vor, um die Spracheinstellung zu ändern:
+-Klicken Sie auf „Options“.
+-Klicken Sie auf den rechten Pfeil in der Reiterleiste und wählen den Reiter
+ „Misc“ aus.
+-Wählen Sie im Feld „GUI Language“ „Deutsch“ aus und klicken auf „OK“.
+-Bestätigen Sie die erscheinende Nachricht, klicken auf „Quit“, um ScummVM zu
+ beenden, und starten dann das Programm erneut.
+
+Nun klicken Sie auf „Spiel hinzufügen“, wählen das Verzeichnis mit den Dateien
+des Spiels aus (versuchen Sie nicht, die Dateien des Spiels selbst auszuwählen!)
+und klicken Sie auf „Auswählen“.
+
+4. Ein Dialog sollte erscheinen, der Ihnen ermöglicht, verschiedene
+Einstellungen vorzunehmen, sollten Sie dies wünschen (es sollte jedoch in
+Ordnung sein, alles voreingestellt zu belassen). Bestätigen Sie diesen Dialog.
+
+5. Wählen Sie das Spiel aus der Liste aus, welches Sie spielen möchten, und
+klicken Sie auf „Starten“.
+
+ScummVM behält die Spiele in der Liste, die Sie hinzufügen. Wenn Sie also
+ScummVM schließen, werden beim nächsten Start alle Spiele, die Sie zuvor
+hinzugefügt haben, in der Liste angezeigt. Sie können somit direkt zu Schritt 5
+übergehen, außer Sie wollen noch mehr Spiele hinzufügen.
+
+Tipp: Wenn Sie mehrere Spiele auf einmal hinzufügen möchten, drücken Sie die
+Umschalt-Taste (Shift), bevor Sie auf „Spiel hinzufügen“ klicken. Diese
+Schaltfläche wird somit ihren Text zu „Durchsuchen“ umändern und wenn Sie dann
+auf diese klicken, werden Sie auch dazu aufgefordert, ein Verzeichnis
+auszuwählen, nur dieses Mal wird ScummVM alle Unterverzeichnisse automatisch
+nach unterstützen Spielen durchsuchen.
+
+
+2.0) Kontakt:
+---- --------
+Der einfachste Weg, um mit dem ScummVM-Team in Verbindung zu treten, ist,
+Fehlerberichte einzusenden (siehe Abschnitt 2.1) oder durch Verwendung des
+Forums unter der Adresse http://forums.scummvm.org .
+Sie können ebenso der Mailing-Liste scummvm-devel beitreten und an diese E-Mails
+versenden oder mit uns im IRC chatten (#scummvm unter irc.freenode.net). Bitte
+fordern Sie uns nicht dazu auf, ein nicht unterstütztes Spiel zu unterstützen.
+Lesen Sie zuerst die Seite FAQ (Häufig gestellte Fragen) auf unserer Website.
+Bitte beachten Sie, dass die offizielle Sprache des Forums, der Mailing-Liste
+und des Chats Englisch ist und keine andere Sprache dort verwendet werden
+sollte.
+
+
+2.1) Fehler berichten:
+---- -----------------
+Um einen Fehler zu berichten, erstellen Sie bitte ein SourceForge-Konto und
+folgen Sie dem Link „Bug Tracker“ auf der ScummVM-Website. Bitte stellen Sie
+sicher, dass sich der Bug wiedererzeugen lässt und immer noch in der neusten
+Version von SVN oder des Daily Builds auftritt. Bitte sehen Sie auch auf der
+Kompatibilitätsliste der ScummVM-Website für dieses Spiel nach, um
+sicherzustellen, dass das Problem nicht bereits bekannt ist:
+
+ http://www.scummvm.org/compatibility_stable.php
+
+Bitte berichten Sie keine Fehler zu Spielen, die nicht als durchspielbar im
+Bereich „Supported Games“ oder der Kompatibilitätsliste aufgelistet sind.
+Wir -wissen-, dass diese Spiele Fehler aufweisen.
+
+Bitte liefern Sie folgende Informationen:
+ - ScummVM-Version (BITTE mit neuster Version von SVN oder des Daily Builds
+ testen)
+ - Einzelheiten zum Fehler, einschließlich Anweisungen, um den Fehler
+ hervorzurufen
+ - Sprache des Spiels (Deutsch, Englisch ...)
+ - Version des Spiels (Version mit Sprachausgabe [Talkie],
+ Diskettenversion, ...)
+ - Plattform und gegebenenfalls Compiler (Win32, Linux, FreeBSD, ...)
+ - Fügen Sie - wenn möglich - einen Speicherstand hinzu.
+ - Wenn dieser Fehler erst seit kurzem Auftritt, teilen Sie bitte die letzte
+ Version ohne den Fehler mit und die erste Version mit diesem Fehler.
+ Auf diese Weise können wir diesen schneller beseitigen, indem wir die
+ vorgenommen Veränderungen einsehen.
+
+Zum Schluss möchten wir Sie noch bitten, jeden Punkt einzeln zu berichten. Bitte
+senden Sie nicht mehrere Punkte mit demselben Ticket ein, ansonsten wird es
+schwierig, den Status jedes einzelnen Fehlers zu verfolgen. Denken Sie bitte
+auch daran, dass alle Fehlerberichte in Englisch verfasst sein müssen.
diff --git a/doc/translations/fr/Lisezmoi.txt b/doc/fr/QuickStart_fr
index 186f0cd24d..af29dd71ac 100755..100644
--- a/doc/translations/fr/Lisezmoi.txt
+++ b/doc/fr/QuickStart_fr
@@ -169,4 +169,3 @@ Enfin, veuillez signaler chaque problème séparément, sinon, il devient
difficile de suivre l'état de chaque problème individuel. S'il vous
plaît gardez à l'esprit également que tous les rapports de bogue doivent
être rédigés en anglais.
-
diff --git a/doc/he/bink-md5s.txt b/doc/he/bink-md5s.txt
deleted file mode 100644
index 5cfcc1c4af..0000000000
--- a/doc/he/bink-md5s.txt
+++ /dev/null
@@ -1,28 +0,0 @@
-(soccer2004 russian cd) // uses bink but just for external three files
-sev
-F:\HEdev\scummsys\SPUTM\Src\SrcPWin\*.cpp
-2808c81e388743998b3c7331501cc4dd Soccer2004.(a)
-7e358891079c9f366184211d14707a70 Soccer2004.(b)
-c4ffae9fac495475d6bc3343ccc8faf9 Soccer2004.HE0
-b6eae47432b9545d33d4d867cef0b4ae Soccer2004.he3
-c83971b2f2020bf68724df52c9ae70a8 soccer2004.he2
-212776c1a2dc3d44a393afc4611afbc3 soccer2004.he4
-8f70113f7c01f7bfe9f83f02749d449d soccer2004.he9
-5fba7c0899429399f944a0353307863c DATA/helogo.da2
-56ed9865373c4fe63e8986989ef75999 DATA/infogrames.da2
-678dc9831679dd3f09933d0e568f6d3c DATA/intro.da2
-
-(soccer2004 cd) // uses bink but just for external three files
-sev
-F:\HEdev\scummsys\SPUTM\Src\SrcPWin\*.cpp
-e10cb34c774852175134fe166a602012 Soccer2004.(a)
-8acec50e5cd48830121a3b22a8bfaa46 Soccer2004.(b)
-c4ffae9fac495475d6bc3343ccc8faf9 Soccer2004.HE0
-b6eae47432b9545d33d4d867cef0b4ae Soccer2004.he3
-c83971b2f2020bf68724df52c9ae70a8 soccer2004.he2
-212776c1a2dc3d44a393afc4611afbc3 soccer2004.he4
-8f70113f7c01f7bfe9f83f02749d449d soccer2004.he9
-5fba7c0899429399f944a0353307863c DATA/helogo.da2
-56ed9865373c4fe63e8986989ef75999 DATA/infogrames.da2
-678dc9831679dd3f09933d0e568f6d3c DATA/intro.da2
-
diff --git a/doc/he/md5s.txt b/doc/he/md5s.txt
deleted file mode 100644
index 5007298b26..0000000000
--- a/doc/he/md5s.txt
+++ /dev/null
@@ -1,2861 +0,0 @@
-$Id$
-
-TODO khalek
-* hfs data on puttputt
-* hfs data on spyfox
-* extract & md5sum from farm cd hfs
- - Fatty Bear Demo.sea
- - Putt-Putt Moon Demo.sea
- - Putt-Putt's Demo.sea
-* misc other bits
-
-TODO sev
-* hfs data on all CDs
-
-(baseball cd hfs)
-Joachim
-5494820d943b126282b31a7d00645400 BaseBall
-cf8d13446ec6cb6222287a925fd47c1d BaseBall (0)
-a37e1eb72b969d1461075b7f3d9dd323 BaseBall (1)
-c37abed5add924975fad0df9417a8885 BaseBall (2)
-cb029eb006c1758aa992e28af7e036db BaseBall (4)
-91b6158bc7ec68da700f90e0fabab4b8 BaseBall (9)
-d41d8cd98f00b204e9800998ecf8427e BaseBall (r)
-
-(baseball cd)
-sev, Joachim
-D:\Scummsys.90\sputm.90\*.c
-
-c0c0934580cde95879bef0b6a5a49c29 BASEBALL.D32
-58843bf6425883bbe143b96d11d56582 BASEBALL.EXE
-cf8d13446ec6cb6222287a925fd47c1d BASEBALL.HE0
-a37e1eb72b969d1461075b7f3d9dd323 BASEBALL.HE1
-c37abed5add924975fad0df9417a8885 BASEBALL.HE2
-cb029eb006c1758aa992e28af7e036db BASEBALL.HE4
-91b6158bc7ec68da700f90e0fabab4b8 BASEBALL.HE9
-7989c98adce2b84cd710818c950616ac BASEBALL.W32
-57a68828de21e1afa208d0a5ea2fdf92 BASEBALL.X32
-
-
-(baseball2001 cd hfs)
-kirben
-???
-
-(baseball2001 cd)
-kirben
-???
-
-(bb2demo cd hfs)
-khalek, sev
-???
-
-(humongous ftp)
-2000-05-01 16:09 bb2demo.W32
-khalek, sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-0b38fda342fdaa5e206b2a82c8ab6b9b bb2demo.(a)
-a194f15f51ee62badab74b9e7da97693 bb2demo.HE0
-04862d3b91c49585400f1021bdb9faa1 bb2demo.he2
-0b3a9ff634f2fabb695358aa591154b3 bb2demo.he4
-17255b19a57a1ba0c35802b1b01792f7 BB2demo.HE9
-04770d822d0e78cf13bbf1870de3528b bb2demo.W32
-
-(baseball2003 cd hfs)
-sev
-???
-
-(baseball2003 cd)
-sev
-c:\Build\SRC\SPUTM\Src\SrcPWin\*.cpp
-e0ea75ae94e527652ebd56b26140998c baseball2003.(a)
-324f57a63fd20746195810b61a82b711 baseball2003.(b)
-ba5635a315af707462b7681189287832 Baseball2003.exe
-efe0a04a703e765ebebe92b6c8aa6b86 baseball2003.HE0
-c47186351316e17552532e6c31bf951a baseball2003.he2
-63d581c9548045ee8bc90633f4d123da baseball2003.he3
-fe816c17a87ed5420f1440c85e34f72e baseball2003.he4
-7f06715731111bfe639cde435ec3b650 baseball2003.he9
-b2e1d0e25ed9dbe0ea47ef1a5204ac4a DATA/infogrames.da2
-755a5cf5515610e30370a0afb7d1bc7b DATA/intro.da2
-
-(football cd hfs)
-Joachim
-b1376bcd9c9addb7ffec43455f41f9db Football
-7fc6cdb46b4c9d384c52327f4bca6416 FootBall (0)
-6c33bde70c28c2eac78de8b9f3add1b4 FootBall (2)
-8d02e9002b8033c00bbaf3d71bb695cc FootBall (4)
-435ae8ebf6998b1ea395a5989457985f FootBall (a)
-7df3c5eb3575aef947729213d6c3a877 FootBall (b)
-7c44b542163266658a6110fd03973e6c Football (i)
-d41d8cd98f00b204e9800998ecf8427e FootBall (r)
-c9ca805103de1888a331a98f98bab22a football (u)
-
-(football cd)
-sev, Joachim
-C:\Dev\Project\SPUTM\Src\*.cpp
-
-435ae8ebf6998b1ea395a5989457985f FOOTBALL.(A)
-7df3c5eb3575aef947729213d6c3a877 FOOTBALL.(B)
-ccca9a823d117afb1a882fd707586bf0 FOOTBALL.D32
-b9e149d859b6b4ab1906ea670c4c7449 football.esk
-af00c36fe744362cb60349f61db78e16 Football.exe
-7fc6cdb46b4c9d384c52327f4bca6416 FOOTBALL.HE0
-6c33bde70c28c2eac78de8b9f3add1b4 FOOTBALL.HE2
-8d02e9002b8033c00bbaf3d71bb695cc football.he4
-a7e708342776af913fb70c842310379f football.mmz
-e03725ba7069e7a94c28168b70dc99c4 FOOTBALL.R32
-07656b959c7febb6359c8de5fd6b6f76 FOOTBALL.U32
-1671f9302d4eca3bfcccc7d68d75d42a FOOTBALL.W32
-
-
-(pajama3 hfs)
-Joachim
-51c909630d8ca434c6e1dfe070a15792 Football Demo
-425205754fa749f4f0b0dd9d09fa45fd FootBall Demo (0)
-bf65bf5fbfd26a63f7bd32437a960667 FootBall Demo (2)
-9e53fbcf1061636d3d192c786c4e3b7b FootBall Demo (4)
-b79809888128b1d31080664487c8fc5e FootBall Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Football Demo (i)
-d41d8cd98f00b204e9800998ecf8427e FootBall Demo (r)
-c9ca805103de1888a331a98f98bab22a Football Demo (u)
-
-(pajama3 cd)
-Joachim
-b79809888128b1d31080664487c8fc5e footdemo.(a)
-ccca9a823d117afb1a882fd707586bf0 footdemo.d32
-afd8621bd60d686ebc97ef259a6f0fe0 footdemo.exe
-425205754fa749f4f0b0dd9d09fa45fd footdemo.HE0
-bf65bf5fbfd26a63f7bd32437a960667 footdemo.he2
-9e53fbcf1061636d3d192c786c4e3b7b footdemo.he4
-07656b959c7febb6359c8de5fd6b6f76 FOOTDEMO.U32
-
-(puttsfunshop hfs/samsfunshop hfs/freddisfunshop hfs/freddicove hfs)
-Joachim
-51c909630d8ca434c6e1dfe070a15792 Football Demo
-5bd335265a61caa3d78956ad9f88ba23 FootBall Demo (0)
-bf65bf5fbfd26a63f7bd32437a960667 FootBall Demo (2)
-9e53fbcf1061636d3d192c786c4e3b7b FootBall Demo (4)
-bb6ec9a3a2a016b239367c2b26d9ee3b FootBall Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Football Demo (i)
-d41d8cd98f00b204e9800998ecf8427e FootBall Demo (r)
-c9ca805103de1888a331a98f98bab22a Football Demo (u)
-
-(putsfunshop cd/pajama3 cd/spyozon cd/freddicove cd/freddisfunshop cd/samsfunshop cd/pajama win cd)
-sev, Joachim (Comment by Joachim: this version is not on the pajama3 cd for me, see above)
-C:\Dev\Project\SPUTM\Src\*.cpp
-bb6ec9a3a2a016b239367c2b26d9ee3b FOOTDEMO.(A)
-ccca9a823d117afb1a882fd707586bf0 footdemo.d32
-afd8621bd60d686ebc97ef259a6f0fe0 footdemo.exe
-5bd335265a61caa3d78956ad9f88ba23 FOOTDEMO.HE0
-bf65bf5fbfd26a63f7bd32437a960667 footdemo.he2
-9e53fbcf1061636d3d192c786c4e3b7b footdemo.he4
-07656b959c7febb6359c8de5fd6b6f76 FOOTDEMO.U32
-
-(football demo hfs)
-khalek
-???
-
-(football demo)
-khalek
-???
-
-(football2002 cd hfs) // uses Bink as external files. 137 files
-Joachim
-4bfe515242f8ee4cc01b9fc4cf52b29a Football 2002
-d0549508a06bbb9f99ed19c9e97891f3 Football 2002 (0)
-7c6f5da8f9d223942ff387c3b3b1262a Football 2002 (2)
-eded7062b612284a62df6be9e37e8d9e Football 2002 (3)
-5f22d1edf87e08f151c93726684d47a5 Football 2002 (4)
-b81d20adb6371ed620fedcc0156c6fb7 Football 2002 (a)
-1e45c754359ca021d50cc6776f3240a6 Football 2002 (b)
-4017d76fa35c60e64011d333443dfa9c Football 2002 (i)
-932e34469fd78234fff755a22960114d football 2002 (u)
-
-(football2002 cd) // uses Bink as external files. 137 files
-c:\SRC_RELEASE\SPUTM\Src\SrcPWin\*.cpp
-Joachim
-b81d20adb6371ed620fedcc0156c6fb7 Football2002.(a)
-1e45c754359ca021d50cc6776f3240a6 Football2002.(b)
-7894dd82c874b535dc8acadef0950be4 Football2002.exe
-d0549508a06bbb9f99ed19c9e97891f3 Football2002.HE0
-7c6f5da8f9d223942ff387c3b3b1262a Football2002.HE2
-eded7062b612284a62df6be9e37e8d9e Football2002.HE3
-5f22d1edf87e08f151c93726684d47a5 Football2002.HE4
-
-(football2002 cd hfs)
-???
-
-(football2002 cd) // uses Bink as external files. 137 files
-2001-09-11 14:22 football2002.exe
-khalek (Comment by Joachim: I completed the deatils with details from above, I hope this is right)
-C:\SRC_RELEASE\SPUTM\Src\SrcPWin\*.cpp
-b81d20adb6371ed620fedcc0156c6fb7 Football2002.(a)
-20aca400df5f580e4d3c019c3386d361 Football2002.(b)
-2234bbc4d12a09fadf8540343eb1c00e football2002.exe
-2e85f7aa054930c692a5b1bed1dfc295 Football2002.HE0
-7c6f5da8f9d223942ff387c3b3b1262a Football2002.HE2
-eded7062b612284a62df6be9e37e8d9e Football2002.HE3
-5f22d1edf87e08f151c93726684d47a5 Football2002.HE4
-
-(soccer cd hfs)
-Joachim
-462a01a55236b1dc5aa3ea543bbfc904 Soccer
-701246819d1a70573f41bf33fc19214f Soccer (0)
-6b8840d83784dbceb44f9d8694fce9d4 Soccer (2)
-b50ac4df3a13b7ccc73e68dae5851d36 Soccer (4)
-6a89ce2925a36a1d9e0d9e9f7060c533 Soccer (9)
-a70431a271fd64eb958bab0a75b9db5b Soccer (A)
-d41d8cd98f00b204e9800998ecf8427e Soccer (r)
-8605a367b4d66e756ccc00c8b6a22e0b Soccer (u)
-
-(soccer cd)
-sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-a70431a271fd64eb958bab0a75b9db5b SOCCER.(A)
-ccca9a823d117afb1a882fd707586bf0 soccer.d32
-431076c63ffa5b0caf66dbe03c1eef30 SOCCER.EXE
-701246819d1a70573f41bf33fc19214f SOCCER.HE0
-6b8840d83784dbceb44f9d8694fce9d4 SOCCER.HE2
-b50ac4df3a13b7ccc73e68dae5851d36 SOCCER.HE4
-6a89ce2925a36a1d9e0d9e9f7060c533 SOCCER.HE9
-ed64133f8cdfca57fb3cd09057def978 SOCCER.U32
-db16386ae24902866ec908c31f58dd6c Soccer.w32
-
-
-(soccerMLS cd hfs)
-???
-
-(soccerMLS cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-bda62f35e0ce1f910d63f0713b3426cb SoccerMLS.(a)
-9705d481fd818835e68bb3ac3ddaf787 SoccerMLS.exe
-bfdf584b01503f0762baded581f6a0a2 SoccerMLS.he0
-b44275bf54bfa7e01548eec5b7101ed9 SoccerMLS.he2
-a8fa25dc67dee77f009fe5fb59b1961a SoccerMLS.he4
-6a89ce2925a36a1d9e0d9e9f7060c533 SoccerMLS.he9
-
-(soccer2004 cd) // uses bink but just for external three files
-sev
-F:\HEdev\scummsys\SPUTM\Src\SrcPWin\*.cpp
-e10cb34c774852175134fe166a602012 Soccer2004.(a)
-8acec50e5cd48830121a3b22a8bfaa46 Soccer2004.(b)
-c4ffae9fac495475d6bc3343ccc8faf9 Soccer2004.HE0
-b6eae47432b9545d33d4d867cef0b4ae Soccer2004.he3
-c83971b2f2020bf68724df52c9ae70a8 soccer2004.he2
-212776c1a2dc3d44a393afc4611afbc3 soccer2004.he4
-8f70113f7c01f7bfe9f83f02749d449d soccer2004.he9
-5fba7c0899429399f944a0353307863c DATA/helogo.da2
-56ed9865373c4fe63e8986989ef75999 DATA/infogrames.da2
-678dc9831679dd3f09933d0e568f6d3c DATA/intro.da2
-
-(soccer2004 cd russian) // uses bink but just for external three files
-sev
-F:\HEdev\scummsys\SPUTM\Src\SrcPWin\*.cpp
-2808c81e388743998b3c7331501cc4dd Soccer2004.(a)
-7e358891079c9f366184211d14707a70 Soccer2004.(b)
-c4ffae9fac495475d6bc3343ccc8faf9 Soccer2004.HE0
-b6eae47432b9545d33d4d867cef0b4ae Soccer2004.he3
-c83971b2f2020bf68724df52c9ae70a8 soccer2004.he2
-212776c1a2dc3d44a393afc4611afbc3 soccer2004.he4
-8f70113f7c01f7bfe9f83f02749d449d soccer2004.he9
-5fba7c0899429399f944a0353307863c DATA/helogo.da2
-56ed9865373c4fe63e8986989ef75999 DATA/infogrames.da2
-678dc9831679dd3f09933d0e568f6d3c DATA/intro.da2
-
-(thinkerk cd hfs)
-Joachim
-0c8f2ebce5116dc8a4fd7cd971cab19b ThinkerK
-92fc0073a4cf259ff36070ecb8628ba8 ThinkerK (0)
-2b06d67c5332c84d389fa681961920da ThinkerK (1)
-61b858cb5e97fc2960e74b18297be540 ThinkerK (2)
-06a5613cf59c7fdb5d5b888142d6d8b4 ThinkerK (4)
-d41d8cd98f00b204e9800998ecf8427e ThinkerK (r)
-
-(thinkerk cd)
-kirben, Joachim
-c0c0934580cde95879bef0b6a5a49c29 THINKERK.D32
-37b4a8ce5bc28bc958c2c2548a453d31 THINKERK.EXE
-92fc0073a4cf259ff36070ecb8628ba8 THINKERK.HE0
-2b06d67c5332c84d389fa681961920da THINKERK.HE1
-61b858cb5e97fc2960e74b18297be540 THINKERK.HE2
-06a5613cf59c7fdb5d5b888142d6d8b4 THINKERK.HE4
-b10981a0805c37cda1420f29745d6537 THINKERK.W32
-
-(freddi cd hfs)
-khalek
-1997-12-09 19:59 Kinddemo
-9c445edf28ee4a2a7b3ff36ea1f75c05 Kinddemo
-695fe0b3963333b7e15b37514db3c745 Kinddemo (0)
-d3af0fb2011b158a28c43480fb59c588 Kinddemo (1)
-e5da782a19575d12ff98feb74f7602e3 Kinddemo (2)
-ba7a9148040e2421c4129b1d32c40627 Kinddemo (4)
-d41d8cd98f00b204e9800998ecf8427e Kinddemo (r)
-
-(ftp/pajama2 cd/puttrace cd/freddi3 cd/soccer cd)
-1997-09-03 18:32 kinddemo.w32
-khalek, sev, Joachim
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 KINDDEMO.D32
-37b4a8ce5bc28bc958c2c2548a453d31 KINDDEMO.EXE
-695fe0b3963333b7e15b37514db3c745 KINDDEMO.HE0
-d3af0fb2011b158a28c43480fb59c588 KINDDEMO.HE1
-e5da782a19575d12ff98feb74f7602e3 KINDDEMO.HE2
-ba7a9148040e2421c4129b1d32c40627 KINDDEMO.HE4
-b10981a0805c37cda1420f29745d6537 KINDDEMO.W32
-
-(thinker1 cd hfs)
-Joachim
-cd7d15788407e42cb2d25e91bcb5649f Thinker1
-5c21fc49aee8f46e58fef21579e614a1 Thinker1 (0)
-d208e601cbeda1082aae9959bc80d736 Thinker1 (1)
-2e3a3f3cf83a6125a9bc0637dcd3daec Thinker1 (2)
-70d4c5fcba615fca984a3cb4bc42fb6a Thinker1 (4)
-d41d8cd98f00b204e9800998ecf8427e Thinker1 (r)
-
-(thinker1 cd)
-Joachim
-c0c0934580cde95879bef0b6a5a49c29 THINKER1.D32
-ac403714308c2a6200bbffd4cd49c77c THINKER1.EXE
-5c21fc49aee8f46e58fef21579e614a1 THINKER1.HE0
-d208e601cbeda1082aae9959bc80d736 THINKER1.HE1
-2e3a3f3cf83a6125a9bc0637dcd3daec THINKER1.HE2
-70d4c5fcba615fca984a3cb4bc42fb6a THINKER1.HE4
-dafbd5699d72d4b985f1f6c46ae9a556 THINKER1.W32
-
-(1grademo hfs)
-???
-
-1997-09-03 14:21 1grademo.w32
-khalek
-D:\Scummsys.90\sputm.90\*.c
-0f5935bd5e88ba6f09e558d64459746d 1grademo.he0
-e41b3ba697f00251fdefd7d64a8cf125 1grademo.he1
-007961d43ada4cca6f15b2dcedcb695e 1grademo.he2
-ae77dc6ff68d6fdfb23e5f792f91ab2d 1grademo.he4
-5d4a7c36dee1a11ed50d260f8413c27a 1grademo.w32
-
-(puttsfunshop cd hfs/puttcircus cd hfs/freddisfunshop cd hfs/samsfunshop cd hfs)
-Joachim
-fcd508025e1963a619b2aec191907f22 BluesABCTimeDemo
-7ddeaf52c8b9a50551ce0aa2ac811d07 BluesABCTimeDemo (0)
-e4a7e95b00feb1a3e13b542c164c7ff3 BluesABCTimeDemo (2)
-de94e921f02e3b4c6e061aab0f4cc339 BluesABCTimeDemo (4)
-06fee308ab288ece9b2ab18f9c7b9f41 BluesABCTimeDemo (a)
-d41d8cd98f00b204e9800998ecf8427e BluesABCTimeDemo (r)
-
-
-(puttsfunshop cd/pajama3 cd/puttcircus cd/freddisfunshop cd/samsfunshop cd)
-1998-07-26 13:36 BLUESABCTIMEDEMO.W32
-khalek, sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-06fee308ab288ece9b2ab18f9c7b9f41 BluesABCTimeDemo.(a)
-ccca9a823d117afb1a882fd707586bf0 BluesABCTimeDemo.d32
-f67221ca7890906f29ab38aedafb0802 BluesABCTimeDemo.exe
-7ddeaf52c8b9a50551ce0aa2ac811d07 BluesABCTimeDemo.HE0
-e4a7e95b00feb1a3e13b542c164c7ff3 BluesABCTimeDemo.he2
-de94e921f02e3b4c6e061aab0f4cc339 BluesABCTimeDemo.he4
-
-(puttrace cd hfs/freddi4 cd hfs/puttzoo cd hfs/pajama3 cd hfs)
-Joachim
-fcd508025e1963a619b2aec191907f22 BluesABCTimeDemo
-810a9da887aefa597b0cf3c77d262897 BluesABCTimeDemo (0)
-5800ab15c53341fa4b4470cd20c2affa BluesABCTimeDemo (2)
-de94e921f02e3b4c6e061aab0f4cc339 BluesABCTimeDemo (4)
-860eb5a38ce8edef04f614bb50489aab BluesABCTimeDemo (a)
-d41d8cd98f00b204e9800998ecf8427e BluesABCTimeDemo (r)
-
-(puttrace cd/freddi4 cd/puttzoo cd)
-sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-860eb5a38ce8edef04f614bb50489aab BluesABCTimeDemo.(a)
-ccca9a823d117afb1a882fd707586bf0 BluesABCTimeDemo.d32
-f67221ca7890906f29ab38aedafb0802 BluesABCTimeDemo.exe
-810a9da887aefa597b0cf3c77d262897 BluesABCTimeDemo.HE0
-5800ab15c53341fa4b4470cd20c2affa BluesABCTimeDemo.he2
-de94e921f02e3b4c6e061aab0f4cc339 BluesABCTimeDemo.he4
-
-(freddi5 cd hfs) // uses smacker videos
-Joachim
-181b98beb756fe07650608b0357fa934 Blues-ArtTime Demo
-d00ffc8c32d17e575fd985d435d2eb88 Blues-ArtTime Demo (0)
-58c91c3f750b227b136e96b410b0e7cc Blues-ArtTime Demo (2)
-47f0573a8a629c6e7f8b9236112fe10e Blues-ArtTime Demo (4)
-548fcedaa9cee84443a5a9acfff4cb04 Blues-ArtTime Demo (a)
-5272e8074130bdcc431d6ce325e3f0ab Blues-ArtTime Demo (i)
-2f1a08df8aa13924959905fc5dc34a9b Data/intr_at_in_01.dat
-f7841f8a37394805fc0699999898bcca Data/intr_at_in_02.dat
-6a2f8c39d2ce07d422bae9f9bf416839 Data/intr_at_in_20_b.dat
-
-(freddi5 cd) // uses smacker videos
-sev, Joachim
-C:\Dev\Project\SPUTM\Src\SrcPWin\*.cpp
-548fcedaa9cee84443a5a9acfff4cb04 artdemo.(a)
-e856bf226130de0d84bcaaa7ecfb5a3a artdemo.D32
-840be04790ddb035725978e70f7c78f8 ARTDEMO.EXE
-d00ffc8c32d17e575fd985d435d2eb88 artdemo.HE0
-58c91c3f750b227b136e96b410b0e7cc artdemo.he2
-47f0573a8a629c6e7f8b9236112fe10e artdemo.he4
-7e98a8e45cbac83e65d98f3c133ae34d artdemo.w32
-2f1a08df8aa13924959905fc5dc34a9b Data/intr_at_in_01.dat
-f7841f8a37394805fc0699999898bcca Data/intr_at_in_02.dat
-6a2f8c39d2ce07d422bae9f9bf416839 Data/intr_at_in_20_b.dat
-
-(puttsfunshop cd hfs/freddisfunshop cd hfs/samsfunshop cd hfs/pajama3 cd hfs/puttcircus cd hfs) // uses smacker videos
-Joachim
-30ea41602894a180aac747198388bc5e BluesBirthdayDemo
-dbf4d59d70b826733f379f998354d350 BluesBirthdayDemo (0)
-60cc055b47b53cb53eaa89e1f974c888 BluesBirthdayDemo (2)
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo (4)
-44e5c3d256fe45c334ac772fa2dd23e2 BluesBirthdayDemo (+)
-6ddf8b026cfb9410b560f91f353dc0f4 BluesBirthdayDemo (a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo (b)
-b46f3aa845f11020d8420d624c120120 BluesBirthdayDemo (i)
-d41d8cd98f00b204e9800998ecf8427e BluesBirthdayDemo (r)
-
-(puttsfunshop cd/freddisfunshop cd/samsfunshop cd/pajama3 cd/puttcircus cd) // uses smacker videos
-sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-6ddf8b026cfb9410b560f91f353dc0f4 BluesBirthdayDemo.(a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo.(b)
-e07a222d121f7e8b04266bf4d7809cb4 BluesBirthdayDemo.a32
-ccca9a823d117afb1a882fd707586bf0 BluesBirthdayDemo.d32
-6d283612076435baad21d5cc5f40fba3 BluesBirthdayDemo.exe
-dbf4d59d70b826733f379f998354d350 BluesBirthdayDemo.HE0
-60cc055b47b53cb53eaa89e1f974c888 BluesBirthdayDemo.he2
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo.he4
-
-(puttrace cd hfs) // uses smacker videos
-Joachim
-30ea41602894a180aac747198388bc5e BluesBirthdayDemo
-2d4acbdcfd8e374c9da8c2e7303a5cd0 BluesBirthdayDemo (0)
-dc5e63ecf2672d4a3a0458fe32902a4e BluesBirthdayDemo (2)
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo (4)
-44e5c3d256fe45c334ac772fa2dd23e2 BluesBirthdayDemo (+)
-18ee74255c93da057c92effbd39ebd9a BluesBirthdayDemo (a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo (b)
-b46f3aa845f11020d8420d624c120120 BluesBirthdayDemo (i)
-d41d8cd98f00b204e9800998ecf8427e BluesBirthdayDemo (r)
-
-(puttrace cd) // uses smacker videos
-sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-18ee74255c93da057c92effbd39ebd9a BluesBirthdayDemo.(a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo.(b)
-e07a222d121f7e8b04266bf4d7809cb4 BluesBirthdayDemo.a32
-ccca9a823d117afb1a882fd707586bf0 BluesBirthdayDemo.d32
-e478bdc989beeeaec7e2528a11c88729 BluesBirthdayDemo.exe
-2d4acbdcfd8e374c9da8c2e7303a5cd0 BluesBirthdayDemo.HE0
-dc5e63ecf2672d4a3a0458fe32902a4e BluesBirthdayDemo.he2
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo.he4
-
-
-(freddi5 cd hfs) // uses smacker videos
-Joachim
-853c41736ce7e4c5d6b3431dd550ea3f Blues-ReadingTime Demo
-95818b178d473c989ac753574e8892aa Blues-ReadingTime Demo (0)
-7c64b87e454e642e36a83c79341007b0 Blues-ReadingTime Demo (2)
-4f307cf26e46f765298cc8f92f02db49 Blues-ReadingTime Demo (4)
-f536221cc5d8da02009278523eda6bd5 Blues-ReadingTime Demo (a)
-5272e8074130bdcc431d6ce325e3f0ab Blues-ReadingTime Demo (i)
-45a973a322b177ee4b36bea81981462d Data/INT_RT_IN_01.DAT
-9e0c144bf1b7f0cc8ba3edae6135e313 Data/INT_RT_IN_03.DAT
-8d150f9d9e12e485da50c4560135b4ef Data/INT_RT_IN_04.DAT
-8cde496829546daaaa28084c49f3f4f7 Data/INT_RT_IN_05.DAT
-c784fa970208b5bd49fff568ca0036ec Data/INT_RT_IN_06.DAT
-
-(freddi5 cd) // uses smacker videos
-sev, Joachim
-C:\Dev\Project\SPUTM\Src\SrcPWin\*.cpp
-f536221cc5d8da02009278523eda6bd5 readdemo.(a)
-e856bf226130de0d84bcaaa7ecfb5a3a readDemo.D32
-2be2b18bf04dcd9d9dc6b16e88b8f811 READDEMO.EXE
-95818b178d473c989ac753574e8892aa readdemo.HE0
-7c64b87e454e642e36a83c79341007b0 readDemo.he2
-4f307cf26e46f765298cc8f92f02db49 readdemo.he4
-eac7453b1dca87447974ef54137470f9 readDemo.w32
-45a973a322b177ee4b36bea81981462d Data/INT_RT_IN_01.DAT
-9e0c144bf1b7f0cc8ba3edae6135e313 Data/INT_RT_IN_03.DAT
-8d150f9d9e12e485da50c4560135b4ef Data/INT_RT_IN_04.DAT
-8cde496829546daaaa28084c49f3f4f7 Data/INT_RT_IN_05.DAT
-c784fa970208b5bd49fff568ca0036ec Data/INT_RT_IN_06.DAT
-
-(fbear cd 3do)
-???
-
-(he classics cd)
-khalek, sev
-6.1.1 (Jun 23 1993 15:31:14)
-9f5ada54fef54f1602bb1b642d0fe412 FBEAR.EXE
-3824e60cdf639d22f6df92a03dc4b131 FBEAR.HE0
-c75f511786a4e0c474660d074c9a421a FBEAR.HE1
-d05d89374e5e459067603cd075dd3134 FBEAR.SNG
-c542564fc561aca36626259455738126 FBEAR.TLK
-
-(fbear cd)
-Joachim
-9f5ada54fef54f1602bb1b642d0fe412 FBEAR.EXE
-3824e60cdf639d22f6df92a03dc4b131 FBEAR.HE0
-c75f511786a4e0c474660d074c9a421a FBEAR.HE1
-d05d89374e5e459067603cd075dd3134 FBEAR.SNG
-0f19cfc74cbeb0a255b289772acad687 FBEAR.TLK
-
-(fbear cd hebrew)
-???
-
-(he classics cd hfs)
-khalek
-3df6ead57930488bc61e6e41901d0e97 Fatty Bear 0
-93cdebdbf8f1ec8c3f05dff0c8fedc82 Fatty Bear 1
-fc3885128832fcb876ccd79124ba36fe Fatty Bear 2
-d05d89374e5e459067603cd075dd3134 Fatty Bear Songs
-
-(fbear cd hfs)
-Joachim
-d41d8cd98f00b204e9800998ecf8427e Fatty Bear
-3df6ead57930488bc61e6e41901d0e97 Fatty Bear 0
-93cdebdbf8f1ec8c3f05dff0c8fedc82 Fatty Bear 1
-110890cbcbbdacdd3a02159cbde20889 Fatty Bear 2
-d05d89374e5e459067603cd075dd3134 Fatty Bear Songs
-
-(he classics cd)
-khalek, sev
-7.0.0 (Feb 7 1995 13:27:40)
-179879b6e35c1ead0d93aab26db0951b FBEAR.HE0
-7f733155adcb049e887fef942e81602a FBEAR.HE1
-fc3885128832fcb876ccd79124ba36fe FBEAR.HE2
-58dfc09f344a9dec565bb914920800d3 FBEAR.HE3
-a6b0d9c55f747f906142ed60c7d780e8 FBEAR.HE4
-d05d89374e5e459067603cd075dd3134 FBEAR.SNG
-564d213162f0375b62a8fc5a3a9ef94d FBEAR.W32
-
-(fbear cd)
-Joachim
-333714828ec2e0bd97a189882bf4e49e FBEAR.EXE
-179879b6e35c1ead0d93aab26db0951b FBEAR.HE0
-7f733155adcb049e887fef942e81602a FBEAR.HE1
-110890cbcbbdacdd3a02159cbde20889 FBEAR.HE2
-58dfc09f344a9dec565bb914920800d3 FBEAR.HE3
-a6b0d9c55f747f906142ed60c7d780e8 FBEAR.HE4
-d05d89374e5e459067603cd075dd3134 FBEAR.SNG
-564d213162f0375b62a8fc5a3a9ef94d FBEAR.W32
-
-6.1.1 (Apr 6 1993 20:48:56)
-khalek
-59c820951585b7dfb0307992bbb275c7 fbdemo.exe
-47e75b1bdcb44c78cb94883d1731ccf8 fbdemo.he0
-7c61c90ec5ceb812698d40b29f356559 fbdemo.he1
-f054dd0158bafd59570794397727c882 fbdemo.tlk
-
-(puttmoon cd hfs/airport cd hfs/jungle cd hfs)
-Joachim
-d41d8cd98f00b204e9800998ecf8427e Fatty Bear Demo
-6df20c50c1ab19799de9be7ae7716881 Fatty Bear Demo 0
-d9e4a20226b6120d2a3d8d3a9a643a86 Fatty Bear Demo 1
-0d95ea172d9c94f4c90b9f542a824ced Fatty Bear Demo 2
-
-(puttputt cd/he classics cd/fbear cd/puttmoon cd)
-khalek, sev, Joachim
-7.0.0 (Feb 7 1995 13:27:40)
-9b44bf1f45abc809cf81fde9ff80e5a7 FBDEMO.EXE
-22c9eb04455440131ffc157aeb8d40a8 FBDEMO.HE0
-5293d81516126086766540ab12a9c499 FBDEMO.HE1
-f054dd0158bafd59570794397727c882 FBDEMO.HE2
-58dfc09f344a9dec565bb914920800d3 FBDEMO.HE3
-76954add1f2c5bd9d967746ab4137d3a FBDEMO.HE4
-564d213162f0375b62a8fc5a3a9ef94d FBDEMO.W32
-
-(freddi cd hfs)
-khalek
-1998-02-18 16:06 Freddi Fish
-560da18bc11f6cf7b068a96dd928ae7e Freddi Fish
-df047cc4792150f601290357566d36a6 Freddi Fish (0)
-d30fb13dd3baa94a4cabe4cc1a6228d1 Freddi Fish (1)
-f2f1e70bd9388c98c0ef38b1ef286ae2 Freddi Fish (2)
-cb0fb189e08144bbc713b8df739ba9fc Freddi Fish (4)
-d41d8cd98f00b204e9800998ecf8427e Freddi Fish (r)
-
-(freddi cd)
-khalek, Joachim
-1998-01-21 02:13 freddi.w32
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 FREDDI.D32
-2e0253f624f34b56cf888e557d931a3b FREDDI.EXE
-df047cc4792150f601290357566d36a6 FREDDI.HE0
-d30fb13dd3baa94a4cabe4cc1a6228d1 FREDDI.HE1
-f2f1e70bd9388c98c0ef38b1ef286ae2 FREDDI.HE2
-cb0fb189e08144bbc713b8df739ba9fc FREDDI.HE4
-0d6f0f65403bd23afb78c143587d11a8 FREDDI.W32
-
-(freddi cd russian)
-sev
-7.0.0 (Jun 23 1995 09:58:48)
-d4cccb5af88f3e77f370896e9ba8c5f9 FREDDI.HE0
-1705aa5c12a2959f1b69abc1fd145f01 FREDDI.HE1
-199c5c38798ddacce5cfbfe7b31267cf FREDDI.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDI.HE3
-a176fababbf7944a1d4b5d6521b20f4d FREDDI.HE4
-2085ef0c1d1cc64db1ec52901b4856b9 FREDDI.HE5
-8be6d657bcbda8b4926448e530528d6a FREDDI.W32
-
-(freddi cd dutch)
-adutchguy
-???
-
-(freddi cd german)
-oncer, Joachim
-fc00ad009697e2c9a50dd222f8f40c73 FREDDI.EXE
-cf8ef3a1fb483c5c4b1c584d1167b2c4 FREDDI.HE0
-e3b21adcc7ad12e0b8a0a8fa9bdd30a9 FREDDI.HE1
-1d10f0e80dc84a3dd8331c55f4146ed5 FREDDI.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDI.HE3
-8e27aebf6d89f8576a08b58e216a6a90 FREDDI.HE4
-842badd1332ab8d6c8fd4e8277e0471c FREDDI.W32
-
-(freddi cd nb)
-Karl Ove Hufthammer
-???
-
-(freddi cd russian updated)
-sev
-D:\Scummsys.90\sputm.90\*.c
-746e88c172a5b7a1ae89ac0ee3ee681a Freddi.HE0
-02b964d6d7a3fcace1bc89ae2a2c9db7 FREDDI.HE1
-14a1058745c609eefa08f1591cc5d4df FREDDI.HE2
-2b219196f0cc74d626a3216932d3ea54 Freddi.he4
-58d117ae89707c7360f403186641e87f FREDDI.W32
-
-(freddi cd swedish)
-Sven Arvidsson
-???
-
-(farm cd hfs/airportcd hfs/jungle cd hfs/thinker1 cd hfs/thinkerk cd hfs/socks cd hfs/baseball cd hfs)
-khalek, Joachim
-1995-09-14 17:35 Freddi Demo
-42f4a55732734e3c54c0b198f2615970 Freddi Demo
-c8aac5e3e701874e2fa4117896f9e1b1 Freddi Demo (0)
-b4805ccd0841854d6b2f596f0efb5551 Freddi Demo (1)
-faca7509c38beabb37b2347b8b6bb1ea Freddi Demo (2)
-a8c3ced34ecb16ad1b0eed5b464ad61e Freddi Demo (4)
-
-(he classics cd hfs/pajama cd hfs/puttzoo cd hfs)
-khalek (comment: is this double entry really necessary?)
-1996-11-17 13:28 Freddi Demo
-42f4a55732734e3c54c0b198f2615970 Freddi Demo
-c8aac5e3e701874e2fa4117896f9e1b1 Freddi Demo (0)
-b4805ccd0841854d6b2f596f0efb5551 Freddi Demo (1)
-faca7509c38beabb37b2347b8b6bb1ea Freddi Demo (2)
-a8c3ced34ecb16ad1b0eed5b464ad61e Freddi Demo (4)
-
-(puttputt cd/puttmoon cd/fbear cd)
-khalek, sev, Joachim
-7.0.0 (Oct 20 1994 10:00:19)
-10f764e586228d090d66bdf43cc5a1ef FREDDEMO.EXE
-084ed0fa98a6d1e9368d67fe9cfbd417 FREDDEMO.HE0
-273e622b5fdf60859b549fee08384a33 FREDDEMO.HE1
-faca7509c38beabb37b2347b8b6bb1ea FREDDEMO.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDEMO.HE3
-a8c3ced34ecb16ad1b0eed5b464ad61e FREDDEMO.HE4
-0ebc6a8cc24babc41dbfbfb07ee6456f FREDDEMO.W32
-
-(farm cd/airport cd/jungle cd/airport hfs/jungle hfs)
-khalek, Joachim
-7.0.0 (Jun 22 1995 14:06:25)
-e269b675a252296640430feab730e8b7 FREDDEMO.EXE
-0855496dde35356b1a9691e22ba84cdc FREDDEMO.HE0
-5374aef0d7c547a95dc779f4ea51e20f FREDDEMO.HE1
-faca7509c38beabb37b2347b8b6bb1ea FREDDEMO.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDEMO.HE3
-a8c3ced34ecb16ad1b0eed5b464ad61e FREDDEMO.HE4
-3d43af3f3ecc18744dda721d951e2a2f FREDDEMO.W32
-
-(spyfox cd/pajama cd/puttzoo cd/he classics cd/freddi2 cd/baseball cd/socks cd/thinker1 cd/thinkerk cd)
-khalek, sev, Joachim (comment: all files uppercase on CD)
-7.0.0 (Jul 5 1995 14:46:05)
-e269b675a252296640430feab730e8b7 FREDDEMO.EXE
-566165a7338fa11029e7c14d94fa70d0 FREDDEMO.HE0
-649724a605cb66fef3fac73297ef4259 FREDDEMO.HE1
-faca7509c38beabb37b2347b8b6bb1ea FREDDEMO.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDEMO.HE3
-a8c3ced34ecb16ad1b0eed5b464ad61e FREDDEMO.HE4
-25003798cd5f4b51bc1f4d02c6a2e218 FREDDEMO.W32
-
-(humongous ftp)
-7.0.0 (Jul 5 1995 14:46:05)
-khalek, sev
-566165a7338fa11029e7c14d94fa70d0 freddemo.he0
-649724a605cb66fef3fac73297ef4259 freddemo.he1
-faca7509c38beabb37b2347b8b6bb1ea freddemo.he2
-6daf76c1fe724ce6bf2e4c5175f39352 freddemo.he3
-a8c3ced34ecb16ad1b0eed5b464ad61e freddemo.he4
-a5459bfe36183cf1f4ced00fe325aa90 freddemo.w32
-
-(freddi2 cd german/freddi2 cd hfs german)
-Joachim
-fc00ad009697e2c9a50dd222f8f40c73 FREDDEMO.EXE
-cf4ef315214c7d8cdab6302cdb7e50db FREDDEMO.HE0
-c4671ee12bcb89be376a8432ac23ce77 FREDDEMO.HE1
-468e8c93b4831ff6e84ac69140f8b603 FREDDEMO.HE2
-6daf76c1fe724ce6bf2e4c5175f39352 FREDDEMO.HE3
-a8c3ced34ecb16ad1b0eed5b464ad61e FREDDEMO.HE4
-842badd1332ab8d6c8fd4e8277e0471c FREDDEMO.W32
-
-(freddi2 cd hfs)
-Kirben
-???
-
-(freddi2 hfs)
-Kirben
-???
-
-(freddi2 cd hfs)
-kirben, Joachim
-91a8077251d21b9a060792f50df91cbc Freddi Fish 2
-51305e929e330e24a75a0351c8f9975e Freddi Fish 2 (0)
-2f0f418ca29e298343a76e4a76ce5d96 Freddi Fish 2 (2)
-c87140d52e550ee923f18789517e61ab Freddi Fish 2 (4)
-722286b727e75a3e44f9333d6b604427 Freddi Fish 2 (a)
-d5920b5082d570d03500fe165bb75c0a Freddi Fish 2 (i)
-d41d8cd98f00b204e9800998ecf8427e Freddi Fish 2 (r)
-
-(freddi2 cd)
-kirben, Joachim
-722286b727e75a3e44f9333d6b604427 Freddi2.(a)
-ccca9a823d117afb1a882fd707586bf0 Freddi2.d32
-c45467455384a11c608530d371d6669e FREDDI2.EXE
-51305e929e330e24a75a0351c8f9975e Freddi2.HE0
-2f0f418ca29e298343a76e4a76ce5d96 Freddi2.he2
-c87140d52e550ee923f18789517e61ab Freddi2.he4
-15e826c4702e0c44018a6b6a31de76ef FREDDI2.w32
-
-(freddi2 cd hfs german)
-Joachim
-5d6f8f48c758f7ce07ace9141bd177d4 Fritzi Fisch 2
-fce4b8010704b103acfeea9413788f32 Fritzi Fisch 2 (0)
-d857b6f3ee3a2347faf589a823be6d6c Fritzi Fisch 2 (1)
-3e25355859e2fc97c88ebebfd63c5c14 Fritzi Fisch 2 (2)
-2b7114ad0e35ca65ec8de54b7acd352d Fritzi Fisch 2 (4)
-
-(freddi2 cd german)
-Joachim
-4c695f3d8015af4277fd284981e0d2c4 FREDDI2.D32
-9d4373de9fd1c25671de1500dbe358a2 FREDDI2.EXE
-fce4b8010704b103acfeea9413788f32 FREDDI2.HE0
-d857b6f3ee3a2347faf589a823be6d6c FREDDI2.HE1
-3e25355859e2fc97c88ebebfd63c5c14 FREDDI2.HE2
-2b7114ad0e35ca65ec8de54b7acd352d FREDDI2.HE4
-e24b9e887a04f66db3edcd5fc81767fd FREDDI2.W32
-
-(freddi2 cd)
-sev
-D:\Scummsrc.80\Sputm\*.c
-5057fb0e99e5aa29df1836329232f101 FREDDI2.HE0
-a586db95af3146aa7793c5e2d0ed9e83 FREDDI2.HE1
-9ff9a777a343e605278127c0bbdde58f FREDDI2.HE2
-d22f1b3bd41cb4901f89164043953bc8 FREDDI2.HE4
-d06066ae0ba8ffb338d6a00f556ae3ac FREDDI2.W32
-
-(freddi2 cd russian)
-sev
-D:\Scummsrc.80\Sputm\*.c
-5057fb0e99e5aa29df1836329232f101 FREDDI2.HE0
-1b6d479d15a7eb4a55c5e90711511b00 FREDDI2.HE1
-53f72ce417e28af51e3b8a60cd6ca5ef FREDDI2.HE2
-52494431dd3f658a8dc1d4348e677e48 FREDDI2.HE4
-a1a7f76f9de6b74031f4d6c9b8cbb130 FREDDI2.W32
-
-(freddi2 cd dutch)
-joostp
-???
-
-(freddi2 cd)
-vampir_raziel
-???
-
-(freddi2 cd russian updated)
-sev
-c:\Build\SRC\SPUTM\Src\SrcPWin\*.cpp
-c40f2b3cf5b82d34afc222779b3f0a7c FreddiCHSH.(a)
-b92b53d360319b1e0fa93d353503fbfd FreddiCHSH.exe
-e41de1c2a15abbcdbf9977e2d7e8a340 FreddiCHSH.he0
-83619bbe6b084ebf1ae53b5a56442719 FreddiCHSH.he2
-c366efa1e6b3d4406b5f3123c2247d8f FreddiCHSH.he4
-
-(freddi cd hfs/he classics hfs/pajama cd hfs/puttzoo cd hfs)
-khalek
-1997-10-28 17:16 Freddi Fish 2 Demo
-d7e1af5d819c98b2f0ec8150f54ad51f Freddi Fish 2 Demo
-fc8d197a22146e74766e9cb0cfcaf1da Freddi Fish 2 Demo (0)
-203cf83989f6410ec19edb9bd1455512 Freddi Fish 2 Demo (1)
-f96261232a8a7ae6bc7478d8c1c5a49c Freddi Fish 2 Demo (2)
-a97bf54bcae67fabb8d6e4a1e506efef Freddi Fish 2 Demo (4)
-
-(spyfox cd/pajama cd/puttzoo cd/he classics cd/pajama2 cd/freddi3 cd/baseball cd)
-khalek, sev, Joachim
-1996-10-17 03:54 ff2-demo.w32
-D:\Scummsrc.80\Sputm\*.c
-9d4373de9fd1c25671de1500dbe358a2 FF2-DEMO.EXE
-fc8d197a22146e74766e9cb0cfcaf1da FF2-DEMO.HE0
-203cf83989f6410ec19edb9bd1455512 FF2-DEMO.HE1
-f96261232a8a7ae6bc7478d8c1c5a49c FF2-DEMO.HE2
-a97bf54bcae67fabb8d6e4a1e506efef FF2-DEMO.HE4
-21935da87e116e29f558145b0c491770 FF2-DEMO.W32
-
-(freddi2 demo hfs)
-???
-
-(ftp)
-2002-06-05 15:23 ffhsdemo.exe
-khalek
-c:\Build\SRC\SPUTM\Src\*.cpp
-874613bc4b14dba444b43e31d843e622 ffhsdemo.exe
-d0a925e6d57938021ce5b1260731ec7d FFHSDemo.(a)
-d37c55388294b66e53e7ced3af88fa68 ffhsdemo.he0
-d0a925e6d57938021ce5b1260731ec7d ffhsdemo.he1
-7480dfa29b4df0002d23c72bb4932dde ffhsdemo.he2
-a97bf54bcae67fabb8d6e4a1e506efef ffhsdemo.he4
-
-(freddi3 cd hfs)
-Joachim
-560da18bc11f6cf7b068a96dd928ae7e Freddi Fish 3
-8368f552b1e3eba559f8d559bcc4cadb Freddi Fish 3 (0)
-89bba1d711672a8b52ac4a47ffcf442c Freddi Fish 3 (1)
-6e95640d43a66bdec5a9b9cd42921881 Freddi Fish 3 (2)
-47fed8094093a2d4d9f8d4f61d51e088 Freddi Fish 3 (4)
-d41d8cd98f00b204e9800998ecf8427e Freddi Fish 3 (r)
-
-(freddi3 cd)
-sev, Joachim
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 FREDDI3.D32
-56e44f51bd02de77cb75737e45396987 FREDDI3.EXE
-8368f552b1e3eba559f8d559bcc4cadb FREDDI3.HE0
-89bba1d711672a8b52ac4a47ffcf442c FREDDI3.HE1
-6e95640d43a66bdec5a9b9cd42921881 FREDDI3.HE2
-47fed8094093a2d4d9f8d4f61d51e088 FREDDI3.HE4
-88d57485970d3e801364812c82dec001 FREDDI3.W32
-
-(freddi3 cd russian)
-sev
-D:\Scummsys.90\sputm.90\*.c
-8368f552b1e3eba559f8d559bcc4cadb FREDDI3.HE0
-28afc2494f8f5d45726409743c2763cc FREDDI3.HE1
-2be336eb6b1853c3493da984340dc80a FREDDI3.HE2
-211d598c446697f8203857d012d83d67 FREDDI3.HE4
-1f33f143fd76de496215eaa654a60f04 FREDDI3.W32
-
-(freddi3 cd hfs german)
-Joachim
-e228f3d94242920355d8ffc1f478ddb9 FreddiFGT
-83cedbe26aa8b58988e984e3d34cac8e FreddiFGT (0)
-a850841f6486fd5c8f1731f3092abfd0 FreddiFGT (2)
-3aab38ffaee61ada59211fa417231292 FreddiFGT (4)
-1c17cedc8593e0caebbae3ca61a8a78d FreddiFGT (a)
-01368f1a5c87746b09f50363696f5883 FreddiFGT (i)
-
-(freddi3 cd german)
-Joachim
-1c17cedc8593e0caebbae3ca61a8a78d FreddiFGT.(a)
-0fb226dcdd09aaa48dd77925c467d1cd FreddiFGT.D32
-045e9fab1078af432741aff53e6e438b FreddiFGT.exe
-83cedbe26aa8b58988e984e3d34cac8e FreddiFGT.HE0
-a850841f6486fd5c8f1731f3092abfd0 FreddiFGT.HE2
-3aab38ffaee61ada59211fa417231292 FreddiFGT.HE4
-d8fcf115eb08f1fbed13a61a23e37851 FreddiFGT.w32
-
-(freddi3 cd dutch)
-adutchguy
-???
-
-(freddi3 cd russian alt)
-sev
-D:\Scummsys.90\sputm.90\*.c
-898ce8eb1234a955ef75e87141902bb3 FREDDI3.HE0
-78f35e7aab370a3b4e828d317ecd7f27 FREDDI3.HE1
-ba7fe7de583c9b7a1e9173afc5d75b42 FREDDI3.HE2
-ef0df7bdc61977f783dbe1e37f6a15fe FREDDI3.HE4
-88d57485970d3e801364812c82dec001 FREDDI3.W32
-
-(freddi3 cd russian updated)
-sev
-d:\dev\SPUTM\Src\*.cpp
-b2b8622d2a1d954fedf526043fc185eb FreddiSCS.(a)
-75bff95816b84672b877d22a911ab811 FreddiSCS.he0
-39b5ea82513c799a6dba899b950c2977 FreddiSCS.he2
-fff20670a77450240918f8315fcfb33d FreddiSCS.HE4
-199a34d9dd51e79e2a5022c778321af8 freddiSCS.w32
-
-(freddi cd hfs/freddi3 cd hfs/pajama2 cd hfs)
-khalek, Joachim
-1997-12-04 18:25 F3-Mdemo
-e711a6fb0b7330782c6b5ae0e1283084 F3-Mdemo
-cb1559e8405d17a5a278a6b5ad9338d1 F3-Mdemo (0)
-a2fde75fcbd2376f057f4a40f9893cbe F3-Mdemo (1)
-30e3f97a2290f0683ccedf8b08a6ba55 F3-Mdemo (2)
-b90004518ba5bb4dc473170f5c975568 F3-Mdemo (4)
-d41d8cd98f00b204e9800998ecf8427e F3-Mdemo (r)
-
-(pajama2 cd/freddi3 cd/freddi cd)
-sev, Joachim
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 F3-MDEMO.D32
-56e44f51bd02de77cb75737e45396987 F3-MDEMO.EXE
-cb1559e8405d17a5a278a6b5ad9338d1 F3-MDEMO.HE0
-a2fde75fcbd2376f057f4a40f9893cbe F3-MDEMO.HE1
-30e3f97a2290f0683ccedf8b08a6ba55 F3-MDEMO.HE2
-b90004518ba5bb4dc473170f5c975568 F3-MDEMO.HE4
-66ed086cf061ca023e5924147fc585be F3-MDEMO.W32
-
-(humongous ftp)
-1997-10-28 12:42 f3-mdemo.w32
-khalek, sev, Joachim
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 F3-MDEMO.D32
-56e44f51bd02de77cb75737e45396987 F3-MDEMO.EXE
-cb1559e8405d17a5a278a6b5ad9338d1 F3-MDEMO.HE0
-a2fde75fcbd2376f057f4a40f9893cbe F3-MDEMO.HE1
-30e3f97a2290f0683ccedf8b08a6ba55 F3-MDEMO.HE2
-b90004518ba5bb4dc473170f5c975568 F3-MDEMO.HE4
-3ff95314abdeebe0b2d11f4417efa449 f3-mdemo.w32
-
-(puttrace cd/soccer cd)
-Joachim
-c0c0934580cde95879bef0b6a5a49c29 F3-MDEMO.D32
-3ff95314abdeebe0b2d11f4417efa449 F3-MDEMO.EXE
-cb1559e8405d17a5a278a6b5ad9338d1 F3-MDEMO.HE0
-a2fde75fcbd2376f057f4a40f9893cbe F3-MDEMO.HE1
-30e3f97a2290f0683ccedf8b08a6ba55 F3-MDEMO.HE2
-b90004518ba5bb4dc473170f5c975568 F3-MDEMO.HE4
-
-(freddi3 demo hfs french)
-kirben
-???
-
-(freddi3 demo french)
-kirben
-???
-
-(freddi3 demo dutch)
-adutchguy
-???
-
-(freddi4 cd hfs)
-Joachim
-382e75cc3252683c18ccb4b8a964b8bf Freddi 4
-4f580a021eee026f3b4589e17d130d78 Freddi 4 (0)
-944d9c81ce26f8820bbd2a6d2c2d987c Freddi 4 (2)
-d1c47dfa05160c783da89e6dc9894d3e Freddi 4 (4)
-d3cb0cbdd52b7684d321a3630bdf8abc Freddi 4 (a)
-d41d8cd98f00b204e9800998ecf8427e Freddi 4 (r)
-
-(freddi4 cd)
-Joachim
-d3cb0cbdd52b7684d321a3630bdf8abc FREDDI4.(A)
-ccca9a823d117afb1a882fd707586bf0 FREDDI4.D32
-dbde280a3b554db62f8f7920775cbed5 FREDDI4.EXE
-4f580a021eee026f3b4589e17d130d78 FREDDI4.HE0
-944d9c81ce26f8820bbd2a6d2c2d987c FREDDI4.HE2
-d1c47dfa05160c783da89e6dc9894d3e FREDDI4.HE4
-24b409ff575c52d385cdc6b7e91b5b79 FREDDI4.W32
-
-(freddi4 cd russian)
-sev
-D:\scummsys.98\sputm.98\*.c
-0fb24aa2d37a8a6cbf90066c2f792596 freddi4.(a)
-4f580a021eee026f3b4589e17d130d78 freddi4.he0
-02d4dba3fedc64e24c1baa9523035701 freddi4.he2
-a2e2010e75a1fd164ef6fc58eae7238d freddi4.he4
-24b409ff575c52d385cdc6b7e91b5b79 freddi4.w32
-
-(freddi4 cd dutch)
-adutchguy
-???
-
-(freddi4 cd german)
-Joachim
-25da2483b1d36a35c371393e907f57bf FreddiGS.(a)
-0fb226dcdd09aaa48dd77925c467d1cd FreddiGS.D32
-e9e4997d16bc12ec0d7048571c84023b FREDDIGS.EXE
-b5298a5c15ffbe8b381d51ea4e26d35c FreddiGS.HE0
-ee9720cc979cbad31193895c91e530f6 FreddiGS.HE2
-766c4f81601fe5fd69f6975c1dc51b98 FreddiGS.HE4
-25cb2425ded9b2e7557e8eb4dd7bb8d6 FreddiGS.w32
-
-
-(freddi4 cd russian updated}
-sev
-C:\HESystems\SPUTM\Src\*.cpp
-658d27fdb9219f5c62468314cf0007ff FreddiHRBG.(a)
-78bd5f036ea35a878b74e4f47941f784 FreddiHRBG.he0
-1d4023e93ffde7dae77426d293dab95b FreddiHRBG.he2
-ae8defe36ebe7d46f7b1796f3e95b139 FreddiHRBG.he4
-74b50dcbd98cd9bb3560be9a918c37db FreddiHRBG.w32
-
-(freddi4 russian alt)
-sev
-D:\scummsys.98\sputm.98\*.c
-41c340501caa1bf90cb0107679bf3e03 FREDDI4.(A)
-07b810e37be7489263f7bc7627d4765d FREDDI4.HE0
-b90be0993b688bfcdd361c55fd263ccc FREDDI4.HE2
-d1c47dfa05160c783da89e6dc9894d3e FREDDI4.HE4
-8da938ee682f5f83aa2d51789e9602f4 FREDDI4.W32
-
-(humongous ftp/pajama3 cd hfs/spyfox2 cd hfs/football cd hfs)
-Joachim
-8a61ffd683a01c2cddd9bb37e2fff119 Freddi 4 Demo
-7c2e76087027eeee9c8f8985f93a1cc5 Freddi 4 Demo (0)
-23632be3c8c4e77c3917148c5f8e56ef Freddi 4 Demo (2)
-0453fdf42a9aa750ed198bca1d9f8e91 Freddi 4 Demo (4)
-53b0e5c820bd264684df59231dbdc031 Freddi 4 Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Freddi 4 Demo (r)
-
-(humongous ftp)
-1999-02-08 19:21 F4-demo.w32
-khalek, sev, Joachim
-D:\scummsys.98\sputm.98\*.c
-53b0e5c820bd264684df59231dbdc031 f4-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 F4-demo.d32
-dbde280a3b554db62f8f7920775cbed5 F4-demo.exe
-7c2e76087027eeee9c8f8985f93a1cc5 f4-demo.HE0
-23632be3c8c4e77c3917148c5f8e56ef f4-demo.he2
-0453fdf42a9aa750ed198bca1d9f8e91 f4-demo.he4
-24b409ff575c52d385cdc6b7e91b5b79 F4-demo.w32
-
-(pajama3 cd/spyfox2 cd/football cd)
-Joachim
-53b0e5c820bd264684df59231dbdc031 f4-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 F4-demo.d32
-24b409ff575c52d385cdc6b7e91b5b79 F4-demo.exe
-7c2e76087027eeee9c8f8985f93a1cc5 f4-demo.HE0
-23632be3c8c4e77c3917148c5f8e56ef f4-demo.he2
-0453fdf42a9aa750ed198bca1d9f8e91 f4-demo.he4
-
-(puttsfunshop cd hfs/puttcircus cd hfs/putttime cd hfs/spyozon cd hfs/freddicove cd hfs)
-Joachim
-7b08032b5e6ad870170e0d82d5786909 Freddi 4 Demo
-ebd324dcf06a4c49e1ba5c231eee1060 Freddi 4 Demo (0)
-23632be3c8c4e77c3917148c5f8e56ef Freddi 4 Demo (2)
-0453fdf42a9aa750ed198bca1d9f8e91 Freddi 4 Demo (4)
-0a5e8a6eb824c9e006dea982adf72d1e Freddi 4 Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Freddi 4 Demo (i)
-
-
-(puttsfunshop cd/puttcircus cd/putttime cd/spyozon cd/freddicove cd/soccerMLS cd)
-sev, Joachim
-C:\Documents and Settings\stevej\My Documents\HECode\SPUTM\Src\*.cpp
-0a5e8a6eb824c9e006dea982adf72d1e f4-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 f4-demo.D32
-20f57c3bf3f9fae1f88df9434bfd78e0 f4-demo.exe
-ebd324dcf06a4c49e1ba5c231eee1060 f4-demo.HE0
-23632be3c8c4e77c3917148c5f8e56ef f4-demo.he2
-0453fdf42a9aa750ed198bca1d9f8e91 f4-demo.he4
-
-(freddi4 demo hfs)
-???
-
-(dog cd)
-sev
-D:\scummsys.98\sputm.98\*.c
-bd6a0ac7c15562250349dd5b64709e92 F4-DEMO.(A)
-ccca9a823d117afb1a882fd707586bf0 F4-demo.d32
-24b409ff575c52d385cdc6b7e91b5b79 F4-demo.exe
-c25755b08a8d0d47695e05f1e2111bfc F4-DEMO.HE0
-23632be3c8c4e77c3917148c5f8e56ef F4-DEMO.HE2
-0453fdf42a9aa750ed198bca1d9f8e91 F4-DEMO.HE4
-
-(freddi4 demo hfs german)
-Joachim
-c089c75f6bc0f4a60c621a957043d279 Ff4demo
-688328c5bdc4c8ec4145688dfa077bf2 Ff4demo (0)
-3ad28b05239e4480644bea99d3804622 Ff4demo (2)
-0453fdf42a9aa750ed198bca1d9f8e91 Ff4demo (4)
-0eef3e0fca1f1ab0204982234be943a0 Ff4demo (a)
-d41d8cd98f00b204e9800998ecf8427e Ff4demo (i)
-
-(freddi4 demo german)
-Joachim
-0eef3e0fca1f1ab0204982234be943a0 Ff4demo.(a)
-2188b22aa1534b5248a8aa7dfa9c7861 Ff4demo.d32
-e179e35382bdc90601e01612c7a52ce8 FF4DEMO.EXE
-688328c5bdc4c8ec4145688dfa077bf2 Ff4demo.HE0
-3ad28b05239e4480644bea99d3804622 Ff4demo.HE2
-0453fdf42a9aa750ed198bca1d9f8e91 Ff4demo.he4
-
-(freddi4 demo dutch)
-joostp
-???
-
-(freddi4 demo dutch)
-adutchguy
-???
-
-(PuttTime CD UK release)
-eriktorbjorn
-d:\dev\SPUTM\Src\*.cpp
-a2bb4dbf44dbf26587c2c213064853a8 FF4DEMO.(A)
-cb52cbabfa8e91b76a0c6d76ded339c6 ff4demo.exe
-e03ed1474ec14de78359970e0457a820 FF4DEMO.HE0
-15c9746d2d612d2693ec7e509c4e9fb5 FF4DEMO.HE2
-9470cd17e5e301f33876477f14992f29 ff4demo.he4
-
-(Kellogg cereals pack)
-bc20db254834452db602728f90e9a6d4 FreddiMini.(a)
-d1286487c342ac81b28f3e1b90a2b7f3 FreddiMini.D32
-03d3b18ee3fd68114e2a687c871e38d5 FreddiMini.HE0
-cb52cbabfa8e91b76a0c6d76ded339c6 FreddiMini.exe
-38189191a5824dd54377f0dbd4779046 FreddiMini.he2
-9470cd17e5e301f33876477f14992f29 FreddiMini.he4
-
-
-(freddicove hfs cd)
-Joachim
-b8ae37c647509afe5a406cab82e8f789 FreddiCove
-590e6546aacd0d374b7f3a4f53013ab1 FreddiCove (0)
-52b33175cf8abfbadcafbd4702275e0d FreddiCove (2)
-a9f9f4a7ad25a3efda4626d4b6c80ffb FreddiCove (3)
-dfbd9adb0d406184383dd069a64c8757 FreddiCove (4)
-04ad937605bffa28fdf47693e61620cc FreddiCove (a)
-63082e55aefcec01986fdfda9c57e55a FreddiCove (i)
-
-(freddicove cd)
-Joachim
-C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-04ad937605bffa28fdf47693e61620cc freddicove.(a)
-b4c292854d70ff6cf89e20030630c5e0 freddicove.EXE
-590e6546aacd0d374b7f3a4f53013ab1 freddicove.HE0
-52b33175cf8abfbadcafbd4702275e0d freddicove.he2
-a9f9f4a7ad25a3efda4626d4b6c80ffb FreddiCove.he3
-dfbd9adb0d406184383dd069a64c8757 freddicove.he4
-213f75f25b1c92c1b401203440e2720e freddicove.w32
-
-(freddicove cd)
-sev
-C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-04ad937605bffa28fdf47693e61620cc FREDDICOVE.(A)
-b4c292854d70ff6cf89e20030630c5e0 FREDDICOVE.EXE
-590e6546aacd0d374b7f3a4f53013ab1 FREDDICOVE.HE0
-52b33175cf8abfbadcafbd4702275e0d FREDDICOVE.HE2
-a9f9f4a7ad25a3efda4626d4b6c80ffb FREDDICOVE.HE3
-dfbd9adb0d406184383dd069a64c8757 FREDDICOVE.HE4
-
-(freddicove cd russian)
-sev
-C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-04ad937605bffa28fdf47693e61620cc FREDDICOVE.(A)
-b4c292854d70ff6cf89e20030630c5e0 FREDDICOVE.EXE
-590e6546aacd0d374b7f3a4f53013ab1 FREDDICOVE.HE0
-62c6daba6da11b26e259e49c092cb08f FREDDICOVE.HE2
-a9f9f4a7ad25a3efda4626d4b6c80ffb FREDDICOVE.HE3
-dfbd9adb0d406184383dd069a64c8757 FREDDICOVE.HE4
-
-(freddicove cd dutch)
-adutchguy
-???
-
-(freddicove cd russian alt)
-sev
-C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-2cac27c79aebf9db05ed516783d950a6 freddicove.(a)
-21abe302e1b1e2b66d6f5c12e241ebfd freddicove.HE0
-52b33175cf8abfbadcafbd4702275e0d freddicove.he2
-a9f9f4a7ad25a3efda4626d4b6c80ffb FreddiCove.he3
-dfbd9adb0d406184383dd069a64c8757 freddicove.he4
-ca263c140b091bff2b31b1570e47aebe freddicove.w32
-
-(freddicove cd russian updated)
-sev
-C:\HE_dev\SPUTM\Src\*.cpp
-50211d918df60b69d78c03962a5b09ed FreddiCCC.(a)
-b3d5a75a35d165c5750ab84fdc6fd638 FreddiCCC.EXE
-4ce2d5b355964bbcb5e5ce73236ef868 FreddiCCC.HE0
-2890b42997816aae1bcaa618e77444bf FreddiCCC.he2
-2f238b51cfad1b8b5c179468a19aa29b FreddiCCC.he3
-29ef3472e3675c4a0e6ea440e0df4ffd FreddiCCC.he4
-
-(freddicove demo dutch)
-kirben, sev
-???
-
-(freddicove demo hfs)
-???
-
-(pajama4 cd)
-sev
-c:\SRC_RELEASE\SPUTM\Src\SrcPWin\*.cpp
-f1b5cd6bceb50f8296d7a8db6efb69ec FFCoveDemo.(a)
-e856bf226130de0d84bcaaa7ecfb5a3a FFCoveDemo.d32
-554762d1e011ade6cc29ab8024124017 FFCoveDemo.exe
-45082a5c9f42ba14dacfe1fdeeba819d FFCoveDemo.HE0
-0c8f5b94bee7ddcbe5d41abce1daf9e3 ffCoveDemo.he2
-af9375aa14e4d967801938ee355e1486 ffCoveDemo.he4
-912c159f4a0232ceaff2b6759b18fd2f ffCoveDemo.w32
-
-(super duper arcade 1 cd hfs)
-Joachim
-20b697227835007b68aaf078d19e239d Water Worries
-4ba37f835be11a59d969f90f272f575b Water Worries (0)
-e577863ba03c4c1001052e6c809bf66a Water Worries (1)
-9d4a6d9c383ab9b1d0a486a5bb6bfb34 Water Worries (2)
-3d5f7153500339e05815cfa9c3e9369e Water Worries (4)
-2856fa0e0e74484f9c55dc58b2e9203c Water Worries (7)
-
-(super duper arcade 1 cd)
-Joachim
-7a266bd72dc8ae9a4d1c209e49502c00 Water.a32
-9a8e77ece8ed9cfcadd214ad0efabcee water.exe
-4ba37f835be11a59d969f90f272f575b WATER.HE0
-e577863ba03c4c1001052e6c809bf66a WATER.HE1
-9d4a6d9c383ab9b1d0a486a5bb6bfb34 water.He2
-3d5f7153500339e05815cfa9c3e9369e water.he4
-2856fa0e0e74484f9c55dc58b2e9203c WATER.HE7
-
-
-(water cd hfs)
-Joachim
-2856fa0e0e74484f9c55dc58b2e9203c Water (7)
-91a8077251d21b9a060792f50df91cbc Water Worries
-f1b0e0d587b85052de5534a3847e68fe Water Worries (0)
-162e516eaea7f6635e0d09923ed819d2 Water Worries (2)
-3d5f7153500339e05815cfa9c3e9369e Water Worries (4)
-bc97954ab2fd772d67ed91d21cd67cfd Water Worries (A)
-e39e1837ed467d2e26fb57d9f14624ed Water Worries (i)
-d41d8cd98f00b204e9800998ecf8427e Water Worries (r)
-
-(water cd)
-Joachim
-bc97954ab2fd772d67ed91d21cd67cfd Water.(a)
-ccca9a823d117afb1a882fd707586bf0 Water.d32
-20902148fe2cdaaf73ad7fdf3663c01d Water.exe
-f1b0e0d587b85052de5534a3847e68fe Water.he0
-162e516eaea7f6635e0d09923ed819d2 Water.he2
-3d5f7153500339e05815cfa9c3e9369e Water.he4
-2856fa0e0e74484f9c55dc58b2e9203c Water.he7
-2eacfb93a578132a2194937dc4be7c85 WATER.w32
-
-
-(water cd russian)
-sev
-D:\scummsys\sputm80\*.c
-214d0ece69f444cc2ced3fd7bc0738dc Water.a32
-2012f854d83d9cc6f73b2b544cd8bbf8 WATER.HE0
-967f8921b88bebc81dc08cef276cdb3f WATER.HE1
-243bedd4215ec0640df55a35394b6778 water.He2
-3d5f7153500339e05815cfa9c3e9369e WATER.HE4
-2856fa0e0e74484f9c55dc58b2e9203c WATER.HE7
-
-(water cd russian updated)
-sev
-D:\scummsys\sputm80\*.c
-c2e40b953f90ed35926a958cc8cb6a52 WATER.HE2
-3d5f7153500339e05815cfa9c3e9369e WATER.HE4
-2856fa0e0e74484f9c55dc58b2e9203c WATER.HE7
-0be4193477036d3b1c57b5aaa0f4a709 WATER.W32
-6271130f440066830eca9056c1d7926f water.he0
-96a30e55cb95fc0611e4353637d6e5a7 water.he1
-
-(maze cd hfs)
-Kirben
-???
-
-(maze cd)
-Kirben
-???
-
-(super duper arcade 2 cd hfs)
-Kirben, Joachim
-20d2fe8f124bd4224c52f4a545995895 Maze Madness
-4f04b321a95d4315ce6d65f8e1dd0368 Maze Madness (0)
-4efc960a9e16764ad3cdaa64ee79f4f7 Maze Madness (1)
-86e4d05f086ab253e41eea36f9953b7b Maze Madness (2)
-818620a54fe0232fa17d6df1c3e547aa Maze Madness (4)
-40175d873ed23efa26dd49e3e108e943 Maze Madness (8)
-
-
-(super duper arcade 2 cd)
-Kirben, Joachim
-6b201406803dfce87682febb6d99c155 maze.a32
-0c80dbb40c4edb8c9c93f7cebc34f4ab MAZE.EXE
-4f04b321a95d4315ce6d65f8e1dd0368 maze.HE0
-4efc960a9e16764ad3cdaa64ee79f4f7 maze.HE1
-86e4d05f086ab253e41eea36f9953b7b maze.he2
-818620a54fe0232fa17d6df1c3e547aa maze.he4
-40175d873ed23efa26dd49e3e108e943 maze.he8
-
-(freddisfunshop cd hfs)
-Joachim
-430d3ede85344fe8ca75f8b446be8a53 Freddi's FunShop
-16542a7342a918bfe4ba512007d36c47 Freddi's FunShop (0)
-ac8faff875fd9e47328c0ad6dacc1326 Freddi's FunShop (2)
-db2ef7f3fdce0c5aa8932138636ab63b Freddi's FunShop (4)
-895b6746ab176b3ba3e70afa3ce6588b Freddi's FunShop (a)
-7a7b1e2d7b17c616c300ea736276f8e4 Freddi's FunShop (b)
-de6b13747c34a629162dd257cc4f0866 Freddi's FunShop (i)
-2d4bcfe0a03f44876182664b303f2bf7 Freddi's FunShop (u)
-
-(freddisfunshop cd)
-Joachim
-895b6746ab176b3ba3e70afa3ce6588b FreddisFunShop.(a)
-7a7b1e2d7b17c616c300ea736276f8e4 FreddisFunShop.(b)
-ccca9a823d117afb1a882fd707586bf0 FreddisFunShop.d32
-4bb50266471b1955d423d40fc716ecbf FreddisFunShop.exe
-16542a7342a918bfe4ba512007d36c47 FreddisFunShop.HE0
-ac8faff875fd9e47328c0ad6dacc1326 FreddisFunShop.he2
-db2ef7f3fdce0c5aa8932138636ab63b FreddisFunShop.he4
-d82da74cd5b040fdbee2330c85006810 FreddisFunShop.map
-39c468587c4bdad304be49e8d4041a22 FreddisFunShop.u32
-1f102a306b108951c86d0ea9f849935c FreddisFunShop.w32
-a38b59ccd74792e348b57e6f07ce2ccc FreddisFunShop.x32
-
-(puttputt cd/puttmoon cd/fbear cd)
-khalek, sev, Joachim
-7.0.0 (Feb 8 1995 16:33:26)
-d4d3dd3b039a5c0ecfae502064b5b2de CATALOG.EXE
-11e6e244078ff09b0f3832e35420e0a7 CATALOG.HE0
-0cb65eb736529221b9269b15a7fd1914 CATALOG.HE1
-c0e6ea1d47493cca09fc674c3d097836 CATALOG.HE2
-c0e6ea1d47493cca09fc674c3d097836 CATALOG.HE3
-1978944e3e597362d3f4f13606ab2264 CATALOG.W32
-
-(farm cd/airport cd/jungle cd/airport hfs/jungle hfs)
-khalek, sev, Joachim
-7.0.0 (Jun 22 1995 14:01:50)
-698d32c4dd2cca76918710665a8c3e6c CATALOG2.EXE
-037385a953789190298494d92b89b3d0 CATALOG2.HE0
-d43e75c3e71f3668727f436b4c777334 CATALOG2.HE1
-c0e6ea1d47493cca09fc674c3d097836 CATALOG2.HE2
-c0e6ea1d47493cca09fc674c3d097836 CATALOG2.HE3
-d33843ac942167d564ae5682e2b381c3 CATALOG2.W32
-
-(airport cd hfs)
-Joachim
-df6c3ad8f24c73b153e1d1fe1f011f5b The AirPort
-d6334a5a9b61afe18c368540fdf522ca The AirPort (0)
-e51ba2794c8fbe267b3cc9cf5f511ea9 The AirPort (1)
-0d20f6a921a35ed907a875e26e050b9c The AirPort (2)
-45348231d5da1aaa87e65ca170956eee The AirPort (4)
-cb6ef7b42f7804834a731826567d4212 The AirPort (7)
-765492059d83bc0ae8c30a4feef50a6a The AirPort (9)
-
-(trips collection cd/airport cd/airport cd hfs)
-sev, Joachim
-7.0.0 (Jul 1 1995 21:55:39)
-d031299fa80f81b7348ed57665aea617 AIRPORT.EXE
-07433205acdca3bc553d0e731588b35f AIRPORT.HE0
-1a40631092357a0a2fb63ed881a83730 AIRPORT.HE1
-0d20f6a921a35ed907a875e26e050b9c AIRPORT.HE2
-c0e6ea1d47493cca09fc674c3d097836 AIRPORT.HE3
-45348231d5da1aaa87e65ca170956eee AIRPORT.HE4
-cb6ef7b42f7804834a731826567d4212 AIRPORT.HE7
-765492059d83bc0ae8c30a4feef50a6a AIRPORT.HE9
-3c45181f2f31b7d67932295d0f2bafcb AIRPORT.W32
-
-(farm cd hfs/freddi cd hfs/he classics hfs/chase hfs/baseball hfs/pajama2 hfs/freddi3 hfs/socks hfs/thinker1 hfs/thinkerk hfs/jungle hfs)
-khalek, Joachim (comment: checked all MD5s, there is only 1 Mac-Demo-Version for sure)
-1995-09-14 17:20 Airport Demo
-af4f7ee28b83c0ba471459a779a34043 Airport Demo
-7ea2da67ebabea4ac20cee9f4f9d2934 Airport Demo (0)
-608f6b919b663642be7104c14440434f Airport Demo (1)
-858db51aa87dd51df99c00c0bab31d65 Airport Demo (2)
-42161ad979949daf67924b5227b94f2d Airport Demo (4)
-765492059d83bc0ae8c30a4feef50a6a Airport Demo (9)
-
-(puttputt cd/fbear cd/puttmoon cd/)
-khalek, sev, Joachim
-7.0.0 (Feb 8 1995 16:33:47)
-009e6924ae0913e7728e9a7f70f5a9db AIRDEMO.EXE
-86c9902b7bec1a17926d4dae85beaa45 AIRDEMO.HE0
-e5ce3f8cddd5d54aaf2b040c831dcc96 AIRDEMO.HE1
-858db51aa87dd51df99c00c0bab31d65 AIRDEMO.HE2
-c0e6ea1d47493cca09fc674c3d097836 AIRDEMO.HE3
-42161ad979949daf67924b5227b94f2d AIRDEMO.HE4
-765492059d83bc0ae8c30a4feef50a6a AIRDEMO.HE9
-a16fc5d8c29efffb65f84f3a42b154f1 AIRDEMO.W32
-
-(spyfox cd/pajama cd/puttzoo cd/he classics cd/freddi2 cd/baseball cd/thinker1 cd/thinkerk cd/socks cd/)
-khalek, sev, Joachim
-7.0.0 (Jul 5 1995 14:46:05)
-371f3abc95359eff033e6ef47c27190b AIRDEMO.EXE
-e144f5f49d9241d2a9dee2576b3d09cb AIRDEMO.HE0
-855ecd2da58317064d2e01263d6ca493 AIRDEMO.HE1
-858db51aa87dd51df99c00c0bab31d65 AIRDEMO.HE2
-c0e6ea1d47493cca09fc674c3d097836 AIRDEMO.HE3
-42161ad979949daf67924b5227b94f2d AIRDEMO.HE4
-765492059d83bc0ae8c30a4feef50a6a AIRDEMO.HE9
-a5459bfe36183cf1f4ced00fe325aa90 AIRDEMO.W32
-
-(farm cd/airport cd/airport hfs/jungle cd/jungle hfs/)
-khalek, sev, Joachim
-7.0.0 (Jun 22 1995 14:06:25)
-371f3abc95359eff033e6ef47c27190b AIRDEMO.EXE
-8ffd618a776a4c0d8922bb28b09f8ce8 AIRDEMO.HE0
-64fb30a7c26d119216cdadaff1b4e1bd AIRDEMO.HE1
-858db51aa87dd51df99c00c0bab31d65 AIRDEMO.HE2
-c0e6ea1d47493cca09fc674c3d097836 AIRDEMO.HE3
-42161ad979949daf67924b5227b94f2d AIRDEMO.HE4
-765492059d83bc0ae8c30a4feef50a6a AIRDEMO.HE9
-3d43af3f3ecc18744dda721d951e2a2f AIRDEMO.W32
-
-(freddi cd/pajama2 cd/freddi3 cd/chase cd)
-khalek, sev, Joachim
-7.0.0 (Jul 5 1995 14:46:05)
-371f3abc95359eff033e6ef47c27190b AIRDEMO.EXE
-8ffd618a776a4c0d8922bb28b09f8ce8 AIRDEMO.HE0
-64fb30a7c26d119216cdadaff1b4e1bd AIRDEMO.HE1
-858db51aa87dd51df99c00c0bab31d65 AIRDEMO.HE2
-c0e6ea1d47493cca09fc674c3d097836 AIRDEMO.HE3
-42161ad979949daf67924b5227b94f2d AIRDEMO.HE4
-765492059d83bc0ae8c30a4feef50a6a AIRDEMO.HE9
-a5459bfe36183cf1f4ced00fe325aa90 AIRDEMO.W32
-
-(farm cd hfs)
-khalek
-1995-09-16 14:11 The Farm
-f4f88abc0635e80a4fc8c605ce9d0db3 The Farm
-fbbbb38a81fc9d6a61d509278390a290 The Farm (0)
-3941f75ccb280e7c73890833f2a09514 The Farm (1)
-e778f5f5bbc457966f6ac90ec8f3d9ee The Farm (2)
-449029f90e778a4504de146ca9d0963b The Farm (4)
-3d29c1d665dcb4e4b036dfc7752b990b The Farm (9)
-
-(farm cd/trips collection cd)
-khalek, sev
-7.0.0 (Jun 11 1996 19:12:56)
-a85856675429fe88051744f755b72f93 farm.he0
-3e1111db20b879a482814b4a06122672 farm.he1
-e778f5f5bbc457966f6ac90ec8f3d9ee farm.he2
-c0e6ea1d47493cca09fc674c3d097836 farm.he3
-449029f90e778a4504de146ca9d0963b farm.he4
-3d29c1d665dcb4e4b036dfc7752b990b farm.he9
-fa49452f871e506a6930cc8697db6181 farm.w32
-
-(airport hfs)
-Joachim
-19a57595f7d2367286058a41241e574a Farm Demo
-39fd6db10d0222d817025c4d3346e3b4 Farm Demo (0)
-ba3cb50770848a91216565b91edf8579 Farm Demo (1)
-706d44b32f7c74e98ff4fe88d625826d Farm Demo (2)
-ad6a4dea7b696a28b99d40ea1d685788 Farm Demo (4)
-
-(farm demo dutch)
-adutchguy
-???
-
-(farm cd/pajama cd/airport cd/jungle cd/airport hfs/jungle hfs)
-khalek, sev, Joachim
-7.0.0 (Jun 22 1995 14:05:27)
-2e698fdcf17be7de5c70e9a66d6e8fc0 FARMDEMO.EXE
-8d479e36f35e80257dfc102cf4b8a912 FARMDEMO.HE0
-4d4cb9fdb5a0f3b651bbf0f80735cbe2 FARMDEMO.HE1
-706d44b32f7c74e98ff4fe88d625826d FARMDEMO.HE2
-c0e6ea1d47493cca09fc674c3d097836 FARMDEMO.HE3
-ad6a4dea7b696a28b99d40ea1d685788 FARMDEMO.HE4
-daca65342b60a86a8ba5fbbd5d8b71d4 FARMDEMO.W32
-
-(puttputt cd/puttmoon cd/fbear cd)
-khalek, sev, Joachim
-7.0.0 (Oct 13 1994 19:15:16)
-1b6b66d63a7e80edde33a9b2f57011ba FARMDEMO.EXE
-bf8b52fdd9a69c67f34e8e9fec72661c FARMDEMO.HE0
-6f5d57f1fdc449424792d840a9c85acc FARMDEMO.HE1
-706d44b32f7c74e98ff4fe88d625826d FARMDEMO.HE2
-1c26d0c926e9c31d1b77c0611a643dc9 FARMDEMO.HE3
-cdadbf8daf9c8f811dac28d348ff8825 FARMDEMO.W32
-
-(jungle hfs)
-Joachim
-0e896300a0af8bd43f82d57a9da6a525 The Jungle
-659942b9a6b519f123a13cca3c333a13 The Jungle (0)
-0212155e5de27230b4ce5e36fb910945 The Jungle (1)
-9a5bf899124f45288749d81a0918907a The Jungle (2)
-222ad352670c1d94366a8511af846f49 The Jungle (4)
-f80c48c622ba21d46fc518630f324cf7 The Jungle (9)
-
-
-(trips collection cd/jungle cd)
-sev, joachim
-7.0.0 (Oct 5 1995 08:20:42)
-11994b691574b2ecea7043a80a908647 JUNGLE.EXE
-8801fb4a1200b347f7a38523339526dd JUNGLE.HE0
-1b39261e8d7e7384cf47fe9a6fa808d8 JUNGLE.HE1
-9a5bf899124f45288749d81a0918907a JUNGLE.HE2
-c0e6ea1d47493cca09fc674c3d097836 JUNGLE.HE3
-222ad352670c1d94366a8511af846f49 JUNGLE.HE4
-f80c48c622ba21d46fc518630f324cf7 JUNGLE.HE9
-d8561c70fe52082eace566fe038995f7 JUNGLE.W32
-
-(pajama cd hfs)
-Kirben
-???
-
-(pajama cd)
-Kirben
-???
-
-(pajama cd hfs)
-khalek
-1996-09-12 20:55 Pajama Sam
-57fab7dc46bb7d9450970d95cf14e8fc Pajama Sam
-672dec94b82f7f0877ebb5b5cf7f4bc1 Pajama Sam (0)
-2e83592ae635f53d1cc94c3d98da6335 Pajama Sam (1)
-048a2cb8baad19ca90a4510783ab032b Pajama Sam (2)
-147be86929b5969224c72edac30896fd Pajama Sam (4)
-2546d42491fa61ac8e2d20d68d264fce Pajama Sam (7)
-
-(pajama cd)
-khalek, sev
-1996-09-14 00:28 pajama.w32
-D:\Scummsrc.80\Sputm\*.c
-672dec94b82f7f0877ebb5b5cf7f4bc1 pajama.he0
-2e83592ae635f53d1cc94c3d98da6335 pajama.he1
-048a2cb8baad19ca90a4510783ab032b pajama.he2
-4417ea03a6d1b0b7522526f41d1097f6 pajama.he3
-147be86929b5969224c72edac30896fd pajama.he4
-2546d42491fa61ac8e2d20d68d264fce pajama.he7
-8e0e6d39728cc6a87b32f5e71f602b20 pajama.w32
-
-(pajama cd dutch)
-joostp
-???
-
-(pajama cd)
-Joachim
-1e5baa49222b0f6a6cb671bf6cb208d8 Pajama.(a)
-ccca9a823d117afb1a882fd707586bf0 pajama.d32
-8f18bc14ff62d55d20cb3a9dc2ac1451 Pajama.exe
-898eaa21f79cf8d4f08db856244689ff Pajama.HE0
-4dc07befa5e311abd787a2580c91a12d Pajama.he2
-f81b518a579d83c8d4d1911a365ea982 Pajama.he3
-147be86929b5969224c72edac30896fd Pajama.he4
-2546d42491fa61ac8e2d20d68d264fce Pajama.he7
-2c0273605aecaf223287da677679e42a pajama.w32
-
-(freddi cd hfs/he classics hfs/puttzoo cd hfs)
-khalek
-1997-10-28 17:16 Pajama Sam Demo
-3b032e02ccbc5d65c7397cfb32f65f1d Pajama Sam Demo
-f237bf8a5ef9af78b2a6a4f3901da341 Pajama Sam Demo (0)
-5c12305ff68ed053daba74a700a56ad2 Pajama Sam Demo (1)
-4ccd03ca710a9053c42292cae09a6471 Pajama Sam Demo (2)
-6e0fdfcf13e37b659b7155cf5969965f Pajama Sam Demo (4)
-
-(spyfox cd/puttzoo cd/he classics cd/pajama2 cd/freddi cd/freddi2 cd/freddi3 cd/baseball cd)
-khalek, sev, Joachim
-1996-10-31 22:34 pjs-demo.w32
-D:\Scummsrc.80\Sputm\*.c
-11875252dea74302ea77f8adeaf9c2e9 PJS-DEMO.EXE
-f237bf8a5ef9af78b2a6a4f3901da341 PJS-DEMO.HE0
-5c12305ff68ed053daba74a700a56ad2 PJS-DEMO.HE1
-4ccd03ca710a9053c42292cae09a6471 PJS-DEMO.HE2
-6e0fdfcf13e37b659b7155cf5969965f PJS-DEMO.HE4
-0c7e0d0ef005f289e9ca06bbbf5e8839 PJS-DEMO.W32
-
-(pajama demo hfs)
-khalek
-???
-
-(ftp)
-2002-05-20 15:11 PjSamDemo.exe
-khalek, sev
-c:\Build\SRC\SPUTM\Src\SrcPWin\*.cpp
-1f5564cba5d070703c85fe8eda1f6236 PjSamDemo.(a)
-2c380ca1224d0c83a9de178546028cb5 PjSamDemo.exe
-d7ab7cd6105546016e6a0d46fb36b964 PjSamDemo.he0
-5207295bb0b0e0b3f71b7593dd7c3a81 PjSamDemo.he2
-6e0fdfcf13e37b659b7155cf5969965f PjSamDemo.he4
-
-(pajama demo hfs french)
-Kirben
-???
-
-(pajama demo french)
-Kirben
-???
-
-(pajama demo dutch)
-adutchguy
-???
-
-(pajama2 cd hfs)
-Joachim
-b921d8279b5a3aa567c669b83d89e489 Pajama Sam 2
-d4e79c3d8645b8266cd78c325bc35154 Pajama Sam 2 (0)
-cf1e7394ae00c0c65fa5af486e752e5c Pajama Sam 2 (1)
-53f95adc8f6727d26e3248fb1bad8180 Pajama Sam 2 (2)
-297787a960f2b591bb98add9b0689e9f Pajama Sam 2 (4)
-d41d8cd98f00b204e9800998ecf8427e Pajama Sam 2 (r)
-
-(pajama2 cd)
-sev, Joachim
-D:\scummsys.95\sputm.95\*.cpp
-ccca9a823d117afb1a882fd707586bf0 PAJAMA2.D32
-1830278a7bef7d5800ba02f816dbe373 PAJAMA2.EXE
-d4e79c3d8645b8266cd78c325bc35154 PAJAMA2.HE0
-cf1e7394ae00c0c65fa5af486e752e5c PAJAMA2.HE1
-53f95adc8f6727d26e3248fb1bad8180 PAJAMA2.HE2
-297787a960f2b591bb98add9b0689e9f PAJAMA2.HE4
-44a282944b6392ad883a48fc03f37146 PAJAMA2.W32
-58dfc09f344a9dec565bb914920800d3 PAJAMA2.X32
-
-(pajama2 cd hfs german)
-Joachim
-7ba80800b1302376b3a3d4d26d42aa50 PyjamaDBMN
-c6907d44f1166941d982864cd42cdc89 PyjamaDBMN (0)
-b4ecb33716598531823dc2a971a762f1 PyjamaDBMN (2)
-297787a960f2b591bb98add9b0689e9f PyjamaDBMN (4)
-55f4e9402bec2bded383843123f37c5c PyjamaDBMN (a)
-01368f1a5c87746b09f50363696f5883 PyjamaDBMN (i)
-
-(pajama2 cd german)
-Joachim
-55f4e9402bec2bded383843123f37c5c PyjamaDBMN.(a)
-b27cc88bc13451e9334fbf1d5f3c9c52 PyjamaDBMN.D32
-cecafac67b1f299b6f1c326bc58ba50f PyjamaDBMN.EXE
-c6907d44f1166941d982864cd42cdc89 PyjamaDBMN.HE0
-b4ecb33716598531823dc2a971a762f1 PyjamaDBMN.HE2
-297787a960f2b591bb98add9b0689e9f PyjamaDBMN.HE4
-b27bf7501668c7244baf779a947b585c PyjamaDBMN.w32
-
-(pajama2 cd russian updated)
-sev
-d:\dev\SPUTM\Src\*.cpp
-486b48e4ae421cdbecfcc1431c7e801f PajamaTAL.(a)
-738be524db140dc1c7fd6ddfab647c0b PajamaTAL.exe
-32709cbeeb3044b34129950860a83f14 PajamaTAL.he0
-f71fe00306d8246bd5f7ee99703aaaff PajamaTAL.he2
-297787a960f2b591bb98add9b0689e9f PajamaTAL.he4
-
-(pajama2 demo dutch hfs)
-Kirben
-???
-
-(pajama2 demo dutch)
-Kirben
-???
-
-(freddi2 cd hfs/freddi4 cd hfs/pajama3 cd hfs/puttrace cd hfs/putttime cd hfs/puttzoo cd hfs/spyfox cd hfs/superarcade1 cd hfs/superarcade2 cd hfs/water cd hfs/football cd hfs/soccer cd hfs)
-sev, Joachim
-01bae6f21e5c42b6a776efd57f363eb1 PJ2Demo
-36a6750e03fb505fc19fc2bf3e4dbe91 PJ2Demo (0)
-6b1f2b0359d146fda362f1b81892fc76 PJ2Demo (1)
-0c8b86610f358f9a6b45cdd45cb70a58 PJ2Demo (2)
-0f28e36711b55cc139921ddaaff6b341 PJ2Demo (4)
-d41d8cd98f00b204e9800998ecf8427e PJ2Demo (r)
-
-(freddi2 cd/freddi4 cd/pajama3 cd/puttrace cd/putttime cd/puttzoo cd/spyfox cd/superarcade1 cd/superarcade2 cd/water cd/football cd/soccer cd )
-Joachim
-ccca9a823d117afb1a882fd707586bf0 PJ2DEMO.D32
-44a282944b6392ad883a48fc03f37146 PJ2DEMO.EXE
-36a6750e03fb505fc19fc2bf3e4dbe91 PJ2DEMO.HE0
-6b1f2b0359d146fda362f1b81892fc76 PJ2DEMO.HE1
-0c8b86610f358f9a6b45cdd45cb70a58 PJ2DEMO.HE2
-0f28e36711b55cc139921ddaaff6b341 PJ2DEMO.HE4
-58dfc09f344a9dec565bb914920800d3 PJ2DEMO.X32
-
-
-(ftp/puttrace cd/dog cd/spyfox2 cd/putttime cd/football cd/soccer cd)
-1998-05-09 20:27 PJ2DEMO.W32
-khalek
-D:\scummsys.95\sputm.95\*.c
-36a6750e03fb505fc19fc2bf3e4dbe91 PJ2DEMO.HE0
-6b1f2b0359d146fda362f1b81892fc76 PJ2DEMO.HE1
-0c8b86610f358f9a6b45cdd45cb70a58 PJ2DEMO.HE2
-0f28e36711b55cc139921ddaaff6b341 PJ2DEMO.HE4
-44a282944b6392ad883a48fc03f37146 PJ2DEMO.W32
-
-(pajama3 cd hfs)
-Joachim
-0b642feb91da52a174e192a082fcc70f Pajama Sam 3
-f7711f9264d4d43c2a1518ec7c10a607 Pajama Sam 3 (0)
-978c86a8313b66d3b254c3b43e034460 Pajama Sam 3 (2)
-87938c64ef72195231d58fec4f5add88 Pajama Sam 3 (4)
-f7b0ad01b6a78bcd3854edd0ee9694df Pajama Sam 3 (a)
-5a40804b409c888525b04361a907dd39 Pajama Sam 3 (i)
-
-(pajama3 cd)
-sev, Joachim
-C:\Dev\Project\SPUTM\Src\*.cpp
-f7b0ad01b6a78bcd3854edd0ee9694df PAJAMA3.(A)
-ccca9a823d117afb1a882fd707586bf0 Pajama3.d32
-aaf2001f4d7120fccac9123278cb0db2 Pajama3.exe
-f7711f9264d4d43c2a1518ec7c10a607 PAJAMA3.HE0
-978c86a8313b66d3b254c3b43e034460 PAJAMA3.HE2
-87938c64ef72195231d58fec4f5add88 PAJAMA3.HE4
-7c4127882d847866cafd474b914da595 Pajama3.w32
-
-(pajama3 cd hfs german)
-Joachim
-d47b3fa7fbb331d83b4cdcf6effc88d6 PyjamaSkS
-2e8a1f76ea33bc5e04347646feee173d PyjamaSKS (0)
-2d9d0e25c050cc1d30d78d5d2c475178 PyjamaSKS (2)
-435437659b3c647c5a223e143e219846 PyjamaSKS (4)
-3694b1ef70da192f3c19cd24638ec79b PyjamaSKS (a)
-d41d8cd98f00b204e9800998ecf8427e PyjamaSkS (i)
-
-
-(pajama3 cd german)
-Joachim
-3694b1ef70da192f3c19cd24638ec79b PyjamaSKS.(a)
-c8538fa7fbb9c1b09bc4b833e04ce0dd PyjamaSKS.d32
-24efc2c233d1dfcf32e75c877e7640c0 PyjamaSKS.exe
-2e8a1f76ea33bc5e04347646feee173d PyjamaSKS.HE0
-2d9d0e25c050cc1d30d78d5d2c475178 PyjamaSKS.he2
-435437659b3c647c5a223e143e219846 PyjamaSKS.he4
-88084b7b68f19dc5ded4dc5a5a8c3c76 PyjamaSKS.w32
-
-(pajama3 cd russian)
-sev
-C:\HESystems\SPUTM\Src\SrcPWin\*.cpp
-20176076d708bf14407bcc9bdcd7a418 UKPajamaEAT.he0
-6c0b2725387fe0b0bc7bfe043714492b UKPajamaEAT.(a)
-eea6df70b4930c0d9e2ea69a1a193fc5 UKpajamaEAT.he2
-a7f5e841f72a72c0dec10d7d9fd74a51 UKpajamaEAT.HE4
-
-(pajama3 demo hfs dutch)
-joostp
-???
-
-(pajama3 demo dutch)
-joostp
-???
-
-(puttcircus cd hfs/spyozon cd hfsfreddicove cd hfs)
-Joachim
-e221e2a53e9726ecb9bc422ed7650d42 Pajama Sam 3-Demo
-a9f2f04b1ecaab9495b59befffe9bf88 Pajama Sam 3-Demo (0)
-057190fd8706c51c6e6657a8eb8f6898 Pajama Sam 3-Demo (2)
-d5b1d81d25d3d4850184fdb0ab627bea Pajama Sam 3-Demo (4)
-e305c20b5d26d7084f035be22617d8a8 Pajama Sam 3-Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Pajama Sam 3-Demo (i)
-
-(puttcircus cd/spyozon cd/freddicove cd/soccerMLS cd)
-sev, Joachim
-e305c20b5d26d7084f035be22617d8a8 pj3-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 pj3-demo.D32
-7c4127882d847866cafd474b914da595 pj3-demo.exe
-a9f2f04b1ecaab9495b59befffe9bf88 pj3-demo.HE0
-057190fd8706c51c6e6657a8eb8f6898 pj3-demo.he2
-d5b1d81d25d3d4850184fdb0ab627bea pj3-demo.he4
-
-(freddi3 cd hfs german/pajama2 cd hfs german/putttime cd hfs german/spyfox cd hfs german)
-Joachim
-37c439a53e3b0426f8e1a57e56e1f9eb PJ3Demo
-0c45eb4baff0c12c3d9dfa889c8070ab PJ3Demo (0)
-5989dc5d4fecf651db4d5f497ee36d0d PJ3Demo (2)
-44cef52dfec87a2dcccda97f3ac6b2cd PJ3Demo (4)
-e04352df925c102041c6e954bc86d71c PJ3Demo (a)
-d41d8cd98f00b204e9800998ecf8427e PJ3Demo (i)
-
-(freddi3 cd german/pajama2 cd german/putttime cd german/spyfox cd german)
-Joachim
-e04352df925c102041c6e954bc86d71c Gpj3demo.(a)
-2188b22aa1534b5248a8aa7dfa9c7861 GPJ3Demo.d32
-45d9f75902265d1ecbfbf5ff37a7bc70 GPJ3Demo.exe
-0c45eb4baff0c12c3d9dfa889c8070ab Gpj3demo.HE0
-5989dc5d4fecf651db4d5f497ee36d0d GPJ3Demo.HE2
-44cef52dfec87a2dcccda97f3ac6b2cd GPJ3Demo.HE4
-
-(puttsfunshop cd hfs/freddisfunshop cd hfs/samsfunshop cd hfs)
-Joachim
-e221e2a53e9726ecb9bc422ed7650d42 Pajama Sam 3-Demo
-a654fb60c3b67d6317a7894ffd9f25c5 Pajama Sam 3-Demo (0)
-057190fd8706c51c6e6657a8eb8f6898 Pajama Sam 3-Demo (2)
-d5b1d81d25d3d4850184fdb0ab627bea Pajama Sam 3-Demo (4)
-795bb07d00d8628631e767d2c23fba56 Pajama Sam 3-Demo (a)
-d41d8cd98f00b204e9800998ecf8427e Pajama Sam 3-Demo (i)
-
-(puttsfunshop cd/freddisfunshop cd/samsfunshop cd)
-sev, Joachim
-C:\Dev\Project\SPUTM\Src\*.cpp
-795bb07d00d8628631e767d2c23fba56 pj3-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 pj3-demo.D32
-7c4127882d847866cafd474b914da595 pj3-demo.exe
-a654fb60c3b67d6317a7894ffd9f25c5 pj3-demo.HE0
-057190fd8706c51c6e6657a8eb8f6898 pj3-demo.he2
-d5b1d81d25d3d4850184fdb0ab627bea pj3-demo.he4
-
-2002-10-19 11:37 pj3-demo.w32
-khalek
-C:\Dev\Project\SPUTM\Src\*.cpp
-a2fe82b76e0e3db5d8e2f44ec9772548 pj3-demo.(a)
-cf90b4db5486ef798db78fe6fbf897e5 pj3-demo.he0
-e923a8f282ad6900b24beb562894661f pj3-demo.he2
-d5b1d81d25d3d4850184fdb0ab627bea pj3-demo.he4
-7c4127882d847866cafd474b914da595 pj3-demo.w32
-
-(PuttPutt CD UK release)
-eriktorbjorn
-d:\dev\SPUTM\Src\*.cpp
-5b0f71b2503688d8783f4cc37c302666 PJ3DEMO.(A)
-2702b7fad34607adea8e8a7b6adb1202 pj3demo.exe
-3e48298920fab9b7aec5a971e1bd1fab PJ3DEMO.HE0
-22df1316d6594bc5c70442874079c46d Pj3Demo.he2
-0794110b085ee91c2aa4a5fc844ff2f4 Pj3Demo.he4
-
-(pjgames cd hfs)
-Kirben
-???
-
-(pjgames cd)
-Kirben
-???
-
-(lost cd hfs)
-Kirben
-???
-
-(lost cd)
-Kirben
-???
-
-(superarcade2 cd hfs)
-Kirben, Joachim
-deb9d0989a2ffa00f77c06360b4e4794 Lost and Found
-ed361270102e355afe5236954216aba2 Lost and Found (0)
-2f1636bf18a437092f7e3de9614c7c49 Lost and Found (2)
-e0499c7a9aad75122c902934aaa98b62 Lost and Found (a)
-d41d8cd98f00b204e9800998ecf8427e Lost and Found (r)
-
-
-(superarcade2 cd)
-Kirben, Joachim
-e0499c7a9aad75122c902934aaa98b62 lost.(a)
-4a4564b8bdd8b3c004f2f84bf5e7fc85 lost.a32
-ccca9a823d117afb1a882fd707586bf0 lost.d32
-9d01495e4f8b34e4aefb1e29adcdd37f LOST.EXE
-ed361270102e355afe5236954216aba2 lost.HE0
-2f1636bf18a437092f7e3de9614c7c49 lost.he2
-
-(lost demo)
-1999-07-08 08:46 SMALLER.EXE
-khalek
-D:\(vss)scummsys.99\SPUTM\Src\SrcPWin\*.cpp
-070702d4a191580455acee3d38d5ca9e smaller.(a)
-7d2b945c2afb05a370da690c36b22bdd SMALLER.EXE
-a2bb6aa0537402c1b3c2ea899ccef64b SMALLER.HE0
-7fe73db8981467a6d0abdd92105f8618 data/world-1/levels/level-10.ot1
-b988a3d95f638bb342135d9bd04e0137 data/world-1/levels/level-10.ot2
-ce60d91581be1cde2d0619a85647b1a9 data/world-1/levels/level-11.ot1
-8cd6dea0b18593c8d1aaa12daff10cc7 data/world-1/levels/level-11.ot2
-7bfa53f7aa0b06372472b7fa475254cb data/world-1/levels/level-12.ot1
-ad2e8c62013a1aee64e3af638d7fac3a data/world-1/levels/level-12.ot2
-0dda1de323c63baa645863259937cfaa data/world-1/levels/level-13.ot1
-0832514ef1b2206b119054e838003241 data/world-1/levels/level-13.ot2
-08b28bfae2169083bdaf2635faf75213 data/world-1/levels/level-14.ot1
-510121696a26e6410766d3d414a4a1ed data/world-1/levels/level-14.ot2
-459027319d6db400bbb60acd37dd31a0 data/world-1/levels/level-15.ot1
-7c73fcd8abcb837bbcb72457eb71da44 data/world-1/levels/level-15.ot2
-ec75f20929d3ab9ad7b68b650e55b713 data/world-1/levels/level-16.ot1
-f90cd5c12b9dc3777b3371460bb6da1f data/world-1/levels/level-16.ot2
-085feba2672c7dc41570726e098d0d02 data/world-1/levels/level-17.ot1
-4a85080de411c54dcfd42b9929e1c0c3 data/world-1/levels/level-17.ot2
-37dacba43a2407c31d8a69dd302991a7 data/world-1/levels/level-18.ot1
-0dbc99bedd086e11dcf78794e1a21d50 data/world-1/levels/level-18.ot2
-67d9d144436e57215212bf65c6665395 data/world-1/levels/level-19.ot1
-679c0c4cdb9781ca9fe73d1f4314fc50 data/world-1/levels/level-19.ot2
-c60abc377414f72a16341901c4895b41 data/world-1/levels/level-1.ot1
-b69f642322a618c2c122e40f9533dd86 data/world-1/levels/level-1.ot2
-93de8918e2d6d35d04f21f067203b8f7 data/world-1/levels/level-20.ot1
-f5da057f3408613b5b8ed0bcd876833f data/world-1/levels/level-20.ot2
-8b175a1cb5722fccd2c649ff15e85e39 data/world-1/levels/level-2.ot1
-f958fbf2de135bcfdffd9e8d0cbfcaa4 data/world-1/levels/level-2.ot2
-453569e6100e194b2e40e52ea13a1747 data/world-1/levels/level-3.ot1
-388bb8ae5805a87ec6a9af5ffef67b65 data/world-1/levels/level-3.ot2
-a6719d4797937bc1501015d8ba02faf3 data/world-1/levels/level-4.ot1
-69946a0c1fded7a1cd1fd7e5da5bc716 data/world-1/levels/level-4.ot2
-170121ca31f889039771cf76a01fd60b data/world-1/levels/level-5.ot1
-9cd61c833f3342b881c280dd7c746db8 data/world-1/levels/level-5.ot2
-cfe953b525b530f144ba322f8969e9b8 data/world-1/levels/level-6.ot1
-650563fd608cc5f6418a20bdb3e3f6eb data/world-1/levels/level-6.ot2
-dd1d60970ff90ffe00f6a201b125ddd1 data/world-1/levels/level-7.ot1
-e5598a32e874f7451581c2fcc8118e8a data/world-1/levels/level-7.ot2
-8d9b7d1e209aa6103b5440d098e005ee data/world-1/levels/level-8.ot1
-f69c2ce78a6f2a70bf43f0cf665ac075 data/world-1/levels/level-8.ot2
-049b95a44520347dabf1d14b1cd9b9f4 data/world-1/levels/level-9.ot1
-b6087413d0aac4078203a1ef5fd88cb8 data/world-1/levels/level-9.ot2
-
-(samsfunshop cd hfs)
-Joachim
-b4673b59ed60b26fda077c43993102ab Sam's FunShop
-68155a6bf082221525f431c2cbdac8ab Sam's FunShop (0)
-2e44235ef224b25ce766eab34ecc0ab5 Sam's FunShop (2)
-c13b823a4f12d20a22f01acdc89102dc Sam's FunShop (4)
-35202bb9a0fa8fa23bbc3c9b606ad6b6 Sam's FunShop (a)
-eebac1d5bf74832aae8031c47c699197 Sam's FunShop (b)
-78d5350b0d208be368e1169c6f53728b Sam's FunShop (i)
-2d4bcfe0a03f44876182664b303f2bf7 Sam's FunShop (u)
-
-(samsfunshop cd)
-Joachim
-35202bb9a0fa8fa23bbc3c9b606ad6b6 SamsFunShop.(a)
-eebac1d5bf74832aae8031c47c699197 SamsFunShop.(b)
-ccca9a823d117afb1a882fd707586bf0 SamsFunShop.d32
-486422eba1f7ca37c6314ad13e00a041 SamsFunShop.exe
-68155a6bf082221525f431c2cbdac8ab SamsFunShop.HE0
-2e44235ef224b25ce766eab34ecc0ab5 SamsFunShop.he2
-c13b823a4f12d20a22f01acdc89102dc SAMSFUNSHOP.HE4
-e03725ba7069e7a94c28168b70dc99c4 SamsFunShop.r32
-39c468587c4bdad304be49e8d4041a22 SamsFunShop.u32
-591674119a23295aede9ced62642498a SamsFunShop.w32
-a38b59ccd74792e348b57e6f07ce2ccc SamsFunShop.x32
-
-(sock cd hfs/superarcade1 cd hfs)
-Joachim
-8351724df7b6141c57596a70f71261d1 SockWorks
-5e8fb66971a60e523e5afbc4c129c0e8 SockWorks (0)
-a8ae3fedb8ff53e798d22e495929812f SockWorks (1)
-70c23a4651349e957ac8996275fe66f3 SockWorks (2)
-14a5574aeae3187bbb71ce7f4a1b803b SockWorks (4)
-c137e6e5d636c13df8ccb108523640cc SockWorks (7)
-
-(sock cd)
-Joachim
-6e076d748dd4726d1d7a230cfdb13dec SOCKS.D32
-be18099a608458fb63bc996a86195a73 SOCKS.DLL
-d82c48a90176dafb1f344f13a0cefb60 SOCKS.EXE
-5e8fb66971a60e523e5afbc4c129c0e8 SOCKS.HE0
-a8ae3fedb8ff53e798d22e495929812f SOCKS.HE1
-70c23a4651349e957ac8996275fe66f3 SOCKS.HE2
-14a5574aeae3187bbb71ce7f4a1b803b SOCKS.HE4
-c137e6e5d636c13df8ccb108523640cc SOCKS.HE7
-619755f82f852d94f252add9bbc73a61 SOCKS.W32
-
-(superarcade1 cd)
-Joachim
-619755f82f852d94f252add9bbc73a61 Socks.a32
-6e076d748dd4726d1d7a230cfdb13dec socks.d32
-be18099a608458fb63bc996a86195a73 SOCKS.DLL
-aa2b672c687c4cda492e3d9ceb7486eb socks.exe
-5e8fb66971a60e523e5afbc4c129c0e8 SOCKS.HE0
-a8ae3fedb8ff53e798d22e495929812f SOCKS.HE1
-70c23a4651349e957ac8996275fe66f3 SOCKS.HE2
-14a5574aeae3187bbb71ce7f4a1b803b SOCKS.HE4
-c137e6e5d636c13df8ccb108523640cc SOCKS.HE7
-
-(socks cd russian)
-sev
-D:\scummsys.80\sputm80\*.c
-19263586f749a560c1adf8b3393a9593 SOCKS.HE0
-d4bc7dd56e22720c96ecf96bd68fbecd SOCKS.HE1
-5b1e928ecb604dba17e41fb739218a49 SOCKS.HE2
-14a5574aeae3187bbb71ce7f4a1b803b SOCKS.HE4
-c137e6e5d636c13df8ccb108523640cc SOCKS.HE7
-65b08876afc8c55b8dbb2022fb1b6a95 Socks.a32
-
-
-<----END OF WORK TODAY---->
-
-(puttrace cd hfs)
-Joachim
-???
-
-(puttrace cd)
-sev
-D:\scummsys.98\sputm.98\*.c
-ef68d6670cce33d4300468d0b76b3894 puttrace.(a)
-e56b14495c0075850c900ca0999f90f4 puttrace.(b)
-7ded875e14d324f610a4fde12de2d407 PUTTRACE.A32
-981e1e1891f2be7e25a01f50ae55a5af PUTTRACE.HE0
-1bb81a151d72f56b81b43b55b1de63e4 PUTTRACE.HE2
-3f368bd19438204b34db7d7ff8e5395d PUTTRACE.HE4
-
-(puttrace cd russian)
-sev
-C:\HESystems\SPUTM\Src\*.cpp
-cde08c76ce62dcb6081a3fb7dfd2bc89 UKPuttRace.(a)
-e348fe80ca1a40a30bd57ff9d08812c0 UKPuttRace.(b)
-62050da376483d8edcbd98cd26b6cb57 UKPuttRace.he0
-fdd32528084cd48078bb073ead02d2a9 UKPuttRace.he2
-4dfdf4303fa6769535eba7fed539002e UKPuttRace.he4
-91c0bc455b81e7e556646db1dacd461f UKPuttRace.w32
-
-(puttrace cd russian alt) ALL IN MD5
-sev
-D:\scummsys.98\sputm.98\*.c
-fe0cbe12588be2c8e509603821566a87 Puttrace.(a)
-e56b14495c0075850c900ca0999f90f4 Puttrace.(b)
-86821f1e71e2a2d679da7827485fdab1 PUTTRACE.A32
-981e1e1891f2be7e25a01f50ae55a5af PUTTRACE.HE0
-544b59d0b904a745033e1850c07a8b5f Puttrace.he2
-5d930459fd1827eaa9df846a20757932 Puttrace.he4
-
-(puttrace cd hfs german)
-Joachim
-???
-
-(puttrace cd german)
-Joachim
-???
-
-(puttrace demo hfs dutch)
-Kirben
-???
-
-(puttrace demo dutch)
-Kirben
-???
-
-(puttrace demo hfs dutch)
-joostp
-???
-
-(puttrace demo dutch)
-joostp
-???
-
-(puttrace demo hfs)
-sev
-???
-
-(pajama3 cd/putt dog cd/spyfox2 cd/puttcircus cd/putttime cd/football cd)
-sev
-D:\scummsys.98\sputm.98\*.c
-36590dcf019a0fa78de77354cf4db342 RACEDEMO.(A)
-7ded875e14d324f610a4fde12de2d407 RACEDEMO.A32
-8e1d77b06c92662ef5128b087f84f229 racedemo.exe
-0ac41e2e3d2174e5a042a6b565328dba RACEDEMO.HE0
-07e92dfae14eb6ef3afc6d40ba98fcd2 RACEDEMO.HE2
-e80168dc9bfca4577b4e2bbdd70db60b RACEDEMO.HE4
-
-2002-05-07 02:53 RACEDEMO.W32
-khalek
-D:\scummsys.98\sputm.98\*.c
-36590dcf019a0fa78de77354cf4db342 RACEDEMO.(A)
-0ac41e2e3d2174e5a042a6b565328dba RACEDEMO.HE0
-07e92dfae14eb6ef3afc6d40ba98fcd2 RACEDEMO.HE2
-e80168dc9bfca4577b4e2bbdd70db60b RACEDEMO.HE4
-a030210d465ed001953df89e3df1e558 RACEDEMO.W32
-
-(puttrace demo hfs german)
-Joachim
-???
-
-(puttrace demo german)
-Joachim
-???
-
-(PuttPutt CD UK release)
-eriktorbjorn
-d:\dev\SPUTM\Src\*.cpp
-cb6041f10fbaaa5e491aa8d14fc26dc0 RACEDEMO.(A)
-3616b3bf5877b2fb50ce33c705f15413 racedemo.exe
-7c8100e360e8ef05f88069d4cfa0afd1 RACEDEMO.HE0
-095795832ad8a4323bbfa6c137b691bb RACEDEMO.HE4
-177f4e5579e0279700c2b6b7f4f4ba71 RaceDemo.he2
-
-(puttmoon 3do)
-sev
-???
-
-(he classics cd)
-khalek, sev
-6.1.1 (Nov 4 1993 11:12:57)
-19113cc2ecc1dc24c70c46ae015abd78 PUTTMOON.BRS
-c6adfe1876ac936ff19546f0cd1e2b5b PUTTMOON.EXE
-780e4a0ae2ff17dc296f4a79543b44f8 PUTTMOON.HE0
-f02f36270d684e0c245d0fd0519b5e7b PUTTMOON.HE1
-bfecc91f0bf7b86acd7f82a3dfb53ca5 PUTTMOON.TLK
-
-(puttmoon cd russian)
-sev
-6.1.1 (Nov 4 1993 11:12:57)
-c6adfe1876ac936ff19546f0cd1e2b5b PUTTMOON.EXE
-780e4a0ae2ff17dc296f4a79543b44f8 PUTTMOON.HE0
-6a9457c786a8dcf8d2da8a2ec0123343 PUTTMOON.HE1
-c57a7faf7416d9da11919d0957332574 PUTTMOON.SG0
-3d6deb9406a3357764d11623ed6e48ee PUTTMOON.SG1
-1927fb2e7954326152630cb0f56158f8 PUTTMOON.TLK
-
-(puttmoon cd russian alt)
-sev
-6.1.1 (Nov 4 1993 11:12:57)
-c6adfe1876ac936ff19546f0cd1e2b5b PUTTMOON.EXE
-780e4a0ae2ff17dc296f4a79543b44f8 PUTTMOON.HE0
-2de9f712c62fab29507298c9f69591ec PUTTMOON.HE1
-c57a7faf7416d9da11919d0957332574 PUTTMOON.SG0
-3d6deb9406a3357764d11623ed6e48ee PUTTMOON.SG1
-3a35a45c5634203c72b9f2083e0d5717 PUTTMOON.TLK
-
-(puttmoon cd hebrew)
-sev
-???
-
-(he classics cd hfs)
-khalek
-9dc02577bf50d4cfaf3de3fbac06fbe2 Putt-Putt Moon 0
-e4e07a2763824a7646e11b6d9ad795c8 Putt-Putt Moon 1
-bfecc91f0bf7b86acd7f82a3dfb53ca5 Putt-Putt Moon 2
-19113cc2ecc1dc24c70c46ae015abd78 PUTTMOON.BRS
-
-(he classics cd)
-khalek, sev
-7.0.0 (Feb 7 1995 13:27:20)
-19113cc2ecc1dc24c70c46ae015abd78 PUTTMOON.BRS
-9c92eeaf517a31b7221ec2546ab669fd PUTTMOON.HE0
-cfe6d4059c4c5edb9f9f2351efb32a7b PUTTMOON.HE1
-965c113b3978682530e121ba8af7419b PUTTMOON.HE2
-58dfc09f344a9dec565bb914920800d3 PUTTMOON.HE3
-05d387396aabba20e7e3b8778bc0cf09 PUTTMOON.HE4
-56c8455570af6106931818e19344b46a PUTTMOON.W32
-
-6.1.1 (Sep 29 1993 17:18:45)
-khalek
-ef2d93dd02bcdabc7a1a59101e31f8be MOONDEMO.EXE
-aa6a91b7f6f119d1b7b1f2a4c9e24d59 MOONDEMO.HE0
-086b6835bbb924109a31e50f0b5c9e9a MOONDEMO.HE1
-0d06e43d5b5460375575a74d15d6bf07 MOONDEMO.TLK
-
-(puttmoon demo hfs)
-khalek
-???
-
-(puttputt cd/he classics cd)
-khalek, sev
-7.0.0 (Feb 7 1995 13:27:20)
-9c143c5905055d5df7a0f014ab379aee moondemo.he0
-ec82bd61eff3218216fb145004d2b005 moondemo.he1
-0d06e43d5b5460375575a74d15d6bf07 moondemo.he2
-7cf09a515cb499890e3faeab3a2aa491 moondemo.he3
-c182763838b5d06581cc9fb1c1bb1cfd moondemo.he4
-56c8455570af6106931818e19344b46a moondemo.w32
-
-(puttcircus cd hfs)
-sev
-???
-
-(puttcircus cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-2efc1faef85c78dbfe91d46fcc26a3ec puttcircus.(a)
-ab0693e9324cfcf498fdcbb12acf8bb4 puttcircus.HE0
-320a3bca28c8c30ad7aeff74f24ced2e puttcircus.he2
-9c01311b009b0b1b65735beb51eb526a puttcircus.HE4
-d0552089e0c2bbf75969643e8dc30ef1 PUTTCIRCUS.w32
-
-(puttcircus cd hfs russian)
-sev
-???
-
-(puttcircus cd russian)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-0deaf09aff8db115b7da47272955f206 puttcircus.(a)
-7bad72e332a59f9fcc1d437f4edad32a puttcircus.he0
-9ef7154db4ba00b89b5424ffd5cfce26 puttcircus.he2
-e902d67046bfb7cb09c9148b4462f297 puttcircus.he4
-f22635a81cf4abb712704990b7d9d597 PUTTCIRCUS.w32
-
-(puttcircus demo hfs)
-sev
-???
-
-(puttsfunshop cd/freddicove cd/soccerMLS cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-d78d1eff392096c83687231fe2e78c6b circdemo.(a)
-ccca9a823d117afb1a882fd707586bf0 circdemo.D32
-79c9cf9572d32b2c587226f32b1ab946 circdemo.exe
-a7cacad9c40c4dc9e1812abf6c8af9d5 circdemo.HE0
-14b7f2b5180be87991338ea1017421be circdemo.he2
-860b38ff47ba90e910025ac8c6e9a823 circdemo.he4
-
-(puttputt 3do cd)
-khalek
-c817613033ceb12eb4c31ea6c336808f BREEZY.DMU
-fa14bc146cc6086ab44c906a320699c9 CALLIOPE.DMU
-67f93260bf6519d9a47fe987f46d286b CARWASH.DMU
-60fe949efb311eb660c1516fcc20edd2 CONGA.DMU
-667d5c394b63381f309d8c85085748d8 GASTASHN.DMU
-ed39e74166eb60b6d93ab5a26790dcac GROCER2.DMU
-a06560553d188e1dc5886c7633ee602a HAPPY.DMU
-01fd3afbc1b0f8b6e01a18232181cc39 HONEYBEE.DMU
-6bedd1f644ff35d55f2dd4e818f662ed MARSEILL.DMU
-ba59b9918a11a3f366719bb6dbb02426 MICE.DMU
-3031ecf1f94e9712ec9e2d192af5adaa MISCHIEF.DMU
-5b45f41c5e02ea737f64b8fb306346fa MONKEYS.DMU
-6beb885fb7fae9a4dc0a7b66b8e31e27 PAINTING.DMU
-725518498492603428a4b481a74f0ecd PARADE.DMU
-9d166dc6e1e55f78bfac5ede2e9c2daa PAUSE.CEL
-1748c190e7df232fabe70130f6636c9f PERFORM.CEL
-cbcf447cb91de76b6d034d41601bd148 PLAYFUL.DMU
-d8051a79de027921c27d08a67fb5fc09 POPWEASL.DMU
-8296845e881ba14f6c3e76e51220896c PUPPY.DMU
-7e151c17adf624f1966c8fc5827c95e9 PUTTPUTT.HE0
-3c985277e56fda01c1ef3d6da6817fd2 PUTTPUTT.HE1
-46f5aae1faea566f0e21b34572563e40 PUTTPUTT.TLK
-e4978c237ab8b7eb7820048a90a3161e PUTTSONG.DMU
-79e68c29627a5ba3514b87edacb57232 SHORTOCK.DMU
-87ffadb9e4d62e60fa2f8b16b672677a STARTUP.CEL
-d9b9d645a4f7949f127b32eb152e343b SUNNYDAY.DMU
-66d7b0f5c5b9bf0cf57a96b7fa457569 TICKTOCK.DMU
-b274a80fde5aaf92123972a4f3aabaa9 TOYSHOP.DMU
-cefbc7824935e5377bf25b3e461effdd WADDLE.DMU
-8f4c6d28938fb3a532d6038ebaadf234 WAITING.DMU
-a7914691959037a5a4f25fc5a6a138d2 WALTZ.DMU
-3caac70fd907c450ad8f4cd2d75ab576 WANDRING.DMU
-cf7150acba9df96c16a9e20d2345941d WHISTLIN.DMU
-
-(puttputt patch)
-khalek
-6.1.1 (Nov 20 1993 12:42:10)
-868b739deaf9319825137e5e55d4aee1 PUTTPUTT.EXE
-
-(puttputt cd/he classics cd)
-khalek, sev
-6.1.1 (Jan 18 1994 09:32:55)
-7564ee82886b8c75b3b1bd895c98fcb4 puttputt.exe
-9708cf716ed8bcc9ff3fcfc69413b746 puttputt.he0
-d109f3215ca2d5cd38c2efd83da5a51c puttputt.he1
-5f5a783f29c3da080d3bddbef0e2f01d puttputt.tlk
-
-(puttputt cd hebrew)
-sev
-???
-
-(puttputt cd russian)
-sev
-6.1.1 (Nov 19 1992 17:56:19)
-0b3222aaa7efcf283eb621e0cefd26cc PUTTPUTT.HE0
-64b5aee54f2b1453100b2040e1d778ef PUTTPUTT.HE1
-a4e799011c8320dffef43db7869b839a PUTTPUTT.TLK
-
-(puttputt cd russian alt)
-sev
-6.1.1 (Nov 19 1992 17:56:19)
-68ca57feaa198976c87f4a69f1e9a958 PUTTPUTT.EXE
-0b3222aaa7efcf283eb621e0cefd26cc PUTTPUTT.HE0
-64b5aee54f2b1453100b2040e1d778ef PUTTPUTT.HE1
-32453797af20693a00ccbe4dfa6db54f PUTTPUTT.TLK
-
-(he classics cd hfs)
-khalek
-684732efb5799c0f78804c99d8de9aba Putt-Putt Parade 0
-dc086db2e995aff8b2336147ccbd75d6 Putt-Putt Parade 1
-5f5a783f29c3da080d3bddbef0e2f01d Putt-Putt Parade 2
-
-(puttputt cd/he classics cd)
-khalek, sev
-7.0.0 (Feb 7 1995 13:26:59)
-6a30a07f353a75cdc602db27d73e1b42 puttputt.he0
-ce76be89bcace9527f457cab9d8231a6 puttputt.he1
-328b11537db07809864d8b2f536d07ae puttputt.he2
-58dfc09f344a9dec565bb914920800d3 puttputt.he3
-6cb903fb3d4d726fe0229affb1d22525 puttputt.he4
-71e615a8493f357e4de824a1e4632a80 puttputt.w32
-
-6.1.1 (Mar 9 1993 21:19:14)
-khalek
-57cbe80e524afa5330a77d04316d2bf6 puttdemo.exe
-31aa57f460a3d12429f0552a46a90b39 puttdemo.he0
-282a5503b45ddc15c7fb83c8e911b091 puttdemo.he1
-a49e0880f7c0638fbf7adf88894da3df puttdemo.tlk
-
-(puttputt demo hfs)
-khalek
-???
-
-(puttputt cd/he classics cd)
-khalek, sev
-7.0.0 (Feb 7 1995 13:26:59)
-37ff1b308999c4cca7319edfcc1280a0 puttdemo.he0
-9be0197fa0dac01ca3d72cf060826045 puttdemo.he1
-a49e0880f7c0638fbf7adf88894da3df puttdemo.he2
-58dfc09f344a9dec565bb914920800d3 puttdemo.he3
-cd26452706d7e66a3f4ba13975fe5c68 puttdemo.he4
-71e615a8493f357e4de824a1e4632a80 puttdemo.w32
-
-(puttzoo cd hfs)
-cyx
-???
-
-(puttzoo cd)
-cyx
-???
-
-(puttzoo cd hfs)
-khalek
-1995-09-14 17:11 Putt-Putt Saves the Zoo
-2f328b89b4404eaefb9bd18045dddd06 Putt-Putt Saves the Zoo
-58fdf4c7ad13540a734e18f8584cad89 Putt-Putt Saves the Zoo (0)
-8cffc74555fed521cc2008ed6a119118 Putt-Putt Saves the Zoo (1)
-225991e6f8d3d6ac5e519413392c34f3 Putt-Putt Saves the Zoo (2)
-d3235443d88751acd3412c1b0c6cec35 Putt-Putt Saves the Zoo (4)
-
-(puttzoo cd dutch)
-joostp
-???
-
-########## There is 9.8 version of puttzoo, Kirben has it
-(puttzoo cd)
-khalek
-7.0.0 (Jul 13 1995 18:45:07)
-1005456bfe351c1b679e1ff2dc2849e9 puttzoo.he0
-1399aaabdfc340203ac63aff57abf8a0 puttzoo.he1
-225991e6f8d3d6ac5e519413392c34f3 puttzoo.he2
-4417ea03a6d1b0b7522526f41d1097f6 puttzoo.he3
-d3235443d88751acd3412c1b0c6cec35 puttzoo.he4
-f6cc3beae345e71055efb143a342983c puttzoo.w32
-
-(puttzoo russian) (Comment: ALL LANGUAGES)
-sev
-7.0.0 (Jul 13 1995 18:45:07)
-1005456bfe351c1b679e1ff2dc2849e9 PUTTZOO.HE0
-1399aaabdfc340203ac63aff57abf8a0 PUTTZOO.HE1
-d03846ce20bab80288af295bb66870a3 PUTTZOO.HE2
-4417ea03a6d1b0b7522526f41d1097f6 PUTTZOO.HE3
-d3235443d88751acd3412c1b0c6cec35 PUTTZOO.HE4
-91903ca0f67564d78d229afa479b0b02 PUTTZOO.W32
-
-(he classics hfs/pajama cd hfs/farm cd hfs)
-khalek
-1996-11-17 13:28 Puttzoo Demo
-34727db5bde5a2f78a1ec84f75d0810c Puttzoo Demo
-3486ede0f904789267d4bcc5537a46d4 Puttzoo Demo (0)
-e0cde64b0c37a188c97a0bc93225cce9 Puttzoo Demo (1)
-a0cd041eb6c1a289a23549ef8740ff17 Puttzoo Demo (2)
-86dc7e6f520dbabe79b324ae64456686 Puttzoo Demo (4)
-
-(puttzoo demo hfs)
-Joachim
-???
-
-(ftp)
-sev
-7.0.0 (Jul 5 1995 14:45:19)
-f3d55aea441e260e9e9c7d2a187097e0 zoodemo.he0
-92722a557c952ff5178eb32964a12061 zoodemo.he1
-a0cd041eb6c1a289a23549ef8740ff17 zoodemo.he2
-47539950e6e6f656db4c1cc963bf9a8f zoodemo.he3
-86dc7e6f520dbabe79b324ae64456686 zoodemo.he4
-d30c3ce43992a116be1a28a4edccf597 zoodemo.w32
-
-(spyfox cd/pajama cd/he classics cd/freddi2 cd/baseball cd)
-khalek
-7.0.0 (Jun 4 1995 15:47:12)
-de4efb910210736813c9a1185384bace zoodemo.he0
-8ad56037c37b1c84efc2fa00bf4c59d5 zoodemo.he1
-c9b8363220ea094d2da8cc24635d8d48 zoodemo.he2
-47539950e6e6f656db4c1cc963bf9a8f zoodemo.he3
-86dc7e6f520dbabe79b324ae64456686 zoodemo.he4
-f3324cfe3dec0288fd38197cf88962af zoodemo.w32
-
-(farm cd/pajama cd)
-khalek, sev
-7.0.0 (Jun 22 1995 14:03:05)
-de4efb910210736813c9a1185384bace zoodemo.he0
-8ad56037c37b1c84efc2fa00bf4c59d5 zoodemo.he1
-c9b8363220ea094d2da8cc24635d8d48 zoodemo.he2
-47539950e6e6f656db4c1cc963bf9a8f zoodemo.he3
-86dc7e6f520dbabe79b324ae64456686 zoodemo.he4
-37e4b9463ead881fd53bf401aa62d0bf zoodemo.w32
-
-(puttzoo demo hfs german)
-Joachim
-???
-
-(putttime cd hfs)
-Kirben
-???
-
-(putttime cd)
-Kirben
-???
-
-(putttime cd hfs)
-sev
-???
-
-(putttime cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-833cb49dd6767dc7722d671a4067ab5a PuttTime.(a)
-2108d83dcf09f8adb4bc524669c8cf51 PuttTime.he0
-802147789449535e375c7c4f2e666b96 PuttTime.he2
-15d5f719ebc6bcd4fe674587a8fa8596 PuttTime.he4
-a30dd1cd2b58b2c5c6eb1aa970f5a3c2 PuttTime.w32
-
-(putttime cd hfs german)
-Joachim
-???
-
-(putttime cd german)
-Joachim
-???
-
-(putttime cd dutch)
-adutchguy
-???
-
-(putttime cd)
-iziku
-???
-
-(putttime cd UK Release)
-eriktorbjorn
-d:\dev\SPUTM\Src\*.cpp
-6ea0c0e68384e588ece7e3e110c62b09 puttputtTTT.(a)
-d4aac997e2f4e15341f0bfbf905419bd puttputtTTT.HE0
-79e5273f8626f6b1448788bc0a279049 PuttPuttTTT.HE2
-7a0d96204f8874e4eda4918f63ca7b4e PuttPuttTTT.HE4
-a75403b5e853d7cc65cde2ec358ca5ba puttputtTTT.w32
-
-(putttime cd german)
-oncer
-???
-
-(putttime cd russian)
-sev
-d:\dev\SPUTM\Src\SAVELOAD.cpp
-4a7452aabc69cdaf897ccc099ff0bafa puttputtTTT.(a)
-defb8cb9ec4b0f91acfb6b61c6129ad9 puttputtTTT.he0
-5247f60e3913296860a74eef4bdfad2a PuttPuttTTT.he2
-a4816cbb60fa01f16295ab46868e7c41 PuttPuttTTT.he4
-947ce44f2336f8467ceadb184dbaa3e9 puttputtTTT.w32
-
-(freddi cd hfs)
-khalek
-1997-12-09 19:59 TimeDemo
-f2ece54cc9ca9621217c71cfd1ea594e TimeDemo
-4e5867848ee61bc30d157e2c94eee9b4 TimeDemo (0)
-5c58da43055710e93cfedd45bb14b03c TimeDemo (1)
-42df84a2b73a3d2ee461b89474ee2f57 TimeDemo (2)
-72339e5cf3f2902ad78e58c05bfcf7bb TimeDemo (4)
-d41d8cd98f00b204e9800998ecf8427e TimeDemo (r)
-
-(pajama2 cd/puttrace cd/soccer cd)
-sev
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 timedemo.d32
-4e5867848ee61bc30d157e2c94eee9b4 timedemo.he0
-5c58da43055710e93cfedd45bb14b03c timedemo.he1
-42df84a2b73a3d2ee461b89474ee2f57 timedemo.he2
-72339e5cf3f2902ad78e58c05bfcf7bb timedemo.he4
-4c33312418b27bfe8ad307a6e14604e9 timedemo.w32
-
-(ftp/freddi3 cd)
-sev
-D:\Scummsys.90\sputm.90\*.c
-c0c0934580cde95879bef0b6a5a49c29 TIMEDEMO.D32
-4e5867848ee61bc30d157e2c94eee9b4 TIMEDEMO.HE0
-5c58da43055710e93cfedd45bb14b03c TIMEDEMO.HE1
-42df84a2b73a3d2ee461b89474ee2f57 TIMEDEMO.HE2
-72339e5cf3f2902ad78e58c05bfcf7bb TIMEDEMO.HE4
-a43540b44806b8311c7fd04c12cbf46a TIMEDEMO.W32
-
-(putttime demo hfs)
-sev
-???
-
-(web)
-2002-06-10 20:14 TimeDemo.exe
-khalek, sev
-c:\Build\SRC\SPUTM\Src\SrcPWin\*.cpp
-a64bde414f464ef8522fa0ffeea36d9c TimeDemo.exe
-0ab19be9e2a3f6938226638b2a3744fe TimeDemo.HE0
-1691e37409d7f0593c1aa1449f882058 TimeDemo.(a)
-63adb23ead513d5fcf657ed555e525ee TimeDemo.he2
-72339e5cf3f2902ad78e58c05bfcf7bb TimeDemo.he4
-
-(putttime demo hfs french)
-Kirben
-???
-
-(putttime demo french)
-Kirben
-???
-
-(putttime demo dutch)
-adutchguy
-???
-
-(Kellogg cereals pack)
-a6d982141c88f167cf4ec5dc684e2684 PuttMini.(a)
-d1286487c342ac81b28f3e1b90a2b7f3 PuttMini.D32
-0a6d7b81b850ed4a77811c60c9b5c555 PuttMini.HE0
-a75403b5e853d7cc65cde2ec358ca5ba PuttMini.exe
-ddcb5d9f71edc07982db401776c2d79e PuttMini.he2
-72339e5cf3f2902ad78e58c05bfcf7bb PuttMini.he4
-
-(balloon cd hfs)
-Kirben
-???
-
-(balloon cd)
-Kirben
-???
-
-(balloon cd hfs)
-Kirben
-???
-
-(balloon cd)
-Kirben
-???
-
-(balloon cd)
-iziku
-???
-
-(russian balloon)
-sev
-D:\Scummsrc.80\Sputm\*.c
-ad2d6ffbae12d46a2d50ccbbd2a15a83 Balloon.a32
-145bd3373574feb668cc2eea2ec6cf86 BALLOON.HE0
-86282ac950041a1a9723d2c86098939a BALLOON.HE1
-1dabd9eea9fa31c751ac52cfc2048c9c BALLOON.HE2
-4417ea03a6d1b0b7522526f41d1097f6 BALLOON.HE3
-6770978a98ae08e208c188d6c844ab69 BALLOON.HE4
-c2eb18b88529dc5cf79f868c73925f14 BALLOON.HE8
-cbe95e475b634087dc92d23596ad995f BALLOON.HE9
-
-(dog cd hfs)
-Kirben
-???
-
-(dog cd)
-Kirben
-???
-
-(dog cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-ed126ee70102f94b8c725b3b90576f1e DOG.w32
-d4b8ee426b1afd3e53bc0cf020418cf6 dog.HE0
-43821dcacadd3340396dc9bdcf9fe455 dog.(a)
-8cbaaef96c0def188a98794f7e8826d6 dog.he2
-fc47c58d925148b1c1cce784d1f9fec1 dog.he4
-880f0f5e1acc4eb19c889c4d7c7492ef dog.he7
-50438756f002a90fbe7d6a4be184dccb dog.he8
-ccca9a823d117afb1a882fd707586bf0 dog.d32
-
-(activity cd)
-???
-
-(funpack cd 3do)
-sev
-???
-
-(funpack cd)
-iziku
-???
-
-(funpack patch)
-khalek
-6.1.1 (Nov 20 1993 12:20:32)
-091d066c93e751504e4b18c6748b97e0 FUNPACK.EXE
-
-(funpack cd)
-6.1.1 (Feb 15 1993 20:31:55)
-khalek
-f90f40b9702cfd3e2f6c9af76c743e41 funpack.exe
-46b53fd430adcfbed791b48a0d4b079f funpack.he0
-af6283c82fb6a867f91f28039b716036 funpack.he1
-7d6dec34833328722665c1e5a64e735f funpack.tlk
-
-(funpack cd hebrew)
-???
-
-(puttsfunshop cd hfs)
-sev
-???
-
-(puttsfunshop cd)
-sev
-C:\Dev\Project\SPUTM\Src\SrcPWin\*.cpp
-b525ccb6634db6c7f2762864f627f17a PuttsFunShop.(a)
-4504676bd50cb7b0e28b1b2026dce1b3 PuttsFunShop.(b)
-ccca9a823d117afb1a882fd707586bf0 PuttsFunShop.d32
-5262a27afcaee04e5c4900220bd463e7 PuttsFunShop.HE0
-5543c6d936bbec16be896902a473d2a4 PuttsFunShop.he2
-e93a12735e1a95559c755d7193676085 PUTTSFUNSHOP.HE4
-970f3883eefc562bc3949d1b1f88673e PuttsFunShop.map
-39c468587c4bdad304be49e8d4041a22 PuttsFunShop.u32
-7ea658395895f10ba7dfc4a7d147f615 PuttsFunShop.w32
-a38b59ccd74792e348b57e6f07ce2ccc PuttsFunShop.x32
-
-(spyfox cd hfs)
-Kirben
-???
-
-(spyfox cd)
-Kirben
-???
-
-(spyfox cd hfs)
-Joachim
-???
-
-(spyfox cd)
-Joachim
-???
-
-(spyfox cd hfs german)
-Joachim
-???
-
-(spyfox cd german updated)
-Joachim
-???
-
-(spyfox cd german)
-nachbarnebenan
-a28135a7ade38cc0208b04507c46efd1 spyfox.he0
-96da98152ccc2f0d9002c834f34d5cd0 spyfox.he1
-75bd69c4fc660695691844a68110a337 spyfox.he2
-f8029f33e2bc3da6fe38f6bda58c1f31 spyfox.he4
-
-(spyfox cd dutch)
-joostp
-???
-
-(spyfox cd) (COMMENT: ALL LANG)
-khalek
-1997-08-10 03:41 spyfox.w32
-D:\Scummsys.90\sputm.90\*.c
-6bf70eee5de3d24d2403e0dd3d267e8a spyfox.he0
-e01f959bdd49d5b0c8660fd8a14d4799 spyfox.he1
-0a7f78543f30138effbe593d9d09e720 spyfox.he2
-9fbab8bb60448f30ce7508dbf277ab05 spyfox.he4
-b7aa3c76d463137a8a09c68d9a1045d1 spyfox.w32
-
-(spyfox cd russian)
-sev
-D:\Scummsys.90\sputm.90\*.c
-6bf70eee5de3d24d2403e0dd3d267e8a SPYFOX.HE0
-f1b79e1dcb5f57b8d91aac8487a284d7 SPYFOX.HE1
-506a333aad3af2ca8abf5b862ceeb365 SPYFOX.HE2
-9fbab8bb60448f30ce7508dbf277ab05 SPYFOX.HE4
-1355eb775fa71d6df9d506fb906a51db SPYFOX.HLP
-b7aa3c76d463137a8a09c68d9a1045d1 SPYFOX.W32
-
-(spyfox cd russian updated)
-sev
-d:\dev\SPUTM\Src\*.cpp
-51ac439f04951d0910bc423e2825dab8 SPYFoxDC.(a)
-72ac6bc980d5101c2142189d746bd62f SPYFoxDC.he0
-10b638ee633558d528d7be0376175065 SPYFoxDC.he2
-f8029f33e2bc3da6fe38f6bda58c1f31 SPYFoxDC.he4
-b185cdec4ea6bc218afe08325af787a4 spyfoxdc.w32
-
-(farm cd hfs)
-khalek
-1997-12-09 19:59 FoxDemo
-09507650b60e891e9c1ed5e0a7aa0152 FoxDemo
-53e94115b55dd51d4b8ff0871aa1df1e FoxDemo (0)
-81fef80fadf4cd3ad0e04ac619f6eaed FoxDemo (1)
-1229ed0135d97aac8b50224a74ee4f34 FoxDemo (2)
-6f7993e15da433b58ea63e59e3666cea FoxDemo (4)
-d41d8cd98f00b204e9800998ecf8427e FoxDemo (r)
-
-(ftp/pajama2 demo/freddi3 cd)
-sev
-53e94115b55dd51d4b8ff0871aa1df1e foxdemo.he0
-81fef80fadf4cd3ad0e04ac619f6eaed foxdemo.he1
-1229ed0135d97aac8b50224a74ee4f34 foxdemo.he2
-6f7993e15da433b58ea63e59e3666cea foxdemo.he4
-b7aa3c76d463137a8a09c68d9a1045d1 foxdemo.w32
-
-(spyfox demo hfs)
-khalek
-???
-
-(ftp/putt dog cd/spyfox2 cd/putttime cd/football cd)
-1999-05-17 12:21 spydemo.w32
-khalek
-D:\Scummsys.90\sputm.90\*.c
-fbdd947d21e8f5bac6d6f7a316af1c5a spydemo.he0
-820bceab2a1ab02254c33e6e3fc81628 spydemo.he1
-bc8ed64e6a101f6646b80aa294fa5bdc spydemo.he2
-88867a804055334db8485d7da5d2c51f spydemo.he4
-b7aa3c76d463137a8a09c68d9a1045d1 spydemo.w32
-
-(spyfox demo hfs)
-khalek
-???
-
-2002-05-21 13:29 Spydemo.exe
-khalek
-c:\Build\SRC\SPUTM\Src\SrcPWin\*.cpp
-f5207b882c9015a4e4a9599460be6294 Spydemo.(a)
-4d34bf8f8ec20f2e653b19aa283da352 Spydemo.exe
-9d4ab3e0e1d1ebc6ba8a6a4c470ed184 Spydemo.HE0
-b34d614a23a7dac2be1407bbb51c6b24 Spydemo.he2
-88867a804055334db8485d7da5d2c51f Spydemo.he4
-
-(spyfox demo hfs french)
-Kirben
-???
-
-(spyfox demo french)
-Kirben
-???
-
-(spyfox demo dutch)
-Kirben
-???
-
-(spyfox2 cd hfs)
-sev
-???
-
-(spyfox2 cd)
-sev
-D:\(vss)scummsys.99\SPUTM\Src\*.cpp
-5f7ece9a7aefc709f11b6f4216c8764e spyfox2.(a)
-f79e60c17cca601e411f1f75e8ee9b5a SPYFOX2.HE0
-c8f3ab5d05e09360dc88c00243db0c2a SPYFOX2.HE2
-d601630d0dcf6b3084ecd42b6c8c5a33 SPYFOX2.HE4
-0b381fa8531972edca34f9b631638148 spyfox2.he9
-26ef6933e4a560f40bbb3dc0525a783c spy2arc.hst
-77179b054447bb7080aff0ec343588c6 Spyfox2.w32
-
-(spyfox2 cd russian) (COMMENT: ALL LANGUAGES)
-sev
-d68c11a69a955b66ee1a6b8f5a2ee9e0 spyfox2.(a)
-f79e60c17cca601e411f1f75e8ee9b5a SPYFOX2.HE0
-0a718eae78a467f5e664a34b601471e3 SPYFOX2.HE2
-d601630d0dcf6b3084ecd42b6c8c5a33 SPYFOX2.HE4
-0b381fa8531972edca34f9b631638148 spyfox2.he9
-010b18d51f6bf84c69333d03a4cc3c9b SPYFOX2.HLP
-77179b054447bb7080aff0ec343588c6 Spyfox2.w32
-
-(spyfox2 cd hfs russian updated)
-sev
-???
-
-(spyfox2 cd russian updated)
-sev
-C:\HESystems\SPUTM\Src\*.cpp
-4ecc3a54d961a23b80239e191309bb2a spyfoxsr.(a)
-cea91e3dd47f2518ea418e41611aa77f spyfoxsr.he0
-2e73380e32fb1960de5e9871042c6b2e spyfoxsr.he2
-42e883fdae113021eaa30bca3a7bfd2c spyfoxsr.he4
-0b381fa8531972edca34f9b631638148 spyfoxsr.he9
-dda8932e4ddd10c538086df4eaa965d2 SPYFOXSR.w32
-
-(spyfox2 cd dutch)
-adutchguy
-???
-
-(spyfox2 demo hfs dutch)
-joostp
-???
-
-(spyfox2 demo dutch)
-joostp
-???
-
-(putsfunshop cd/pajama3 cd/puttcircus cd/spyozon cd/soccerMLS cd)
-sev
-C:\Dev\Project\SPUTM\Src\*.cpp
-2ee6a9c1c8352d4aca638aeab38a194e sf2-demo.(a)
-f378c570abf42d4875d26674a35acd83 SF2-DEMO.EXE
-7222f260253f325c21fcfa68b5bfab67 sf2-demo.HE0
-8634f4ad2f224842364a86ddc57bb072 sf2-demo.he2
-c23f18777b5ad558826493f69749c4c6 SF2-DEMO.HE4
-
-(humongous ftp)
-sev
-D:\(vss)scummsys.99\SPUTM\Src\*.cpp
-2ee6a9c1c8352d4aca638aeab38a194e sf2-demo.(a)
-ccca9a823d117afb1a882fd707586bf0 sf2-demo.d32
-77179b054447bb7080aff0ec343588c6 sf2-demo.exe
-7222f260253f325c21fcfa68b5bfab67 sf2-demo.he0
-8634f4ad2f224842364a86ddc57bb072 sf2-demo.he2
-c23f18777b5ad558826493f69749c4c6 sf2-demo.he4
-
-(spyfox2 demo hfs german)
-Joachim
-???
-
-(spyfox2 demo german)
-Joachim
-???
-
-(PuttPutt CD UK release)
-eriktorbjorn
-d:\dev\SPUTM\Src\*.cpp
-e79b9525fd1e38c140424f48c609e642 SF2DEMO.(A)
-6dbe2db93323010de257bcb55d99c3fa sf2demo.exe
-19bf6938a94698296bcb0c99c31c91a7 SF2DEMO.HE0
-2577b0029ecfcb9e764e20a9b2a4be6a Sf2Demo.he2
-c23f18777b5ad558826493f69749c4c6 Sf2Demo.he4
-
-(spyozon cd hfs)
-sev
-???
-
-(spyozon cd)
-sev
-C:\Spyfox3Sputm\Src\*.cpp
-845312206b245156183ffa0ee79fcede SPYOZON.(A)
-600abd3e9f47e63e670188b7e4e86ac7 SPYOZON.HE0
-eec7f697ba008211d12be2108f9e6b56 SPYOZON.HE2
-2f238b51cfad1b8b5c179468a19aa29b SPYOZON.HE3
-6654406759193503d618405b075322e4 SPYOZON.HE4
-a76f985eb0fe5b9600dd8563cd5ac7d8 spyozon.w32
-
-(spyozon cd hfs russian updated)
-sev
-???
-
-(spyozon cd russian updated)
-sev
-C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-eb03a8bd9e7654d5d06635d934f2059b SPYFoxOzu.(a)
-194af4195ddb1f3a6017fbd6b27a92aa spyfoxozu.exe
-96a3069a3c63caa7329588ce1fef41ee SPYFoxOzu.he0
-efab08f94696fc1a7404ba366c6629d3 SPYFoxOZU.he2
-2f238b51cfad1b8b5c179468a19aa29b SPYFoxOZU.he3
-64531d4b40f2b932c8434b5c2c0f3547 SPYFoxOzu.he4
-
-(spyozon cd)
-???
-
-(spyozon demo hfs)
-???
-
-(freddicove cd/pajama4 cd)
-sev
-d:\dev\SPUTM\Src\SrcPWin\*.cpp
-0b3dac19ac1107f3fcfa9b38c47b2dfb SF3-DEMO.(A)
-ad443efafb53aa0c05749b7d523019cf SF3-DEMO.EXE
-ebd0b2c8a387f18887282afe6cad894a SF3-DEMO.HE0
-46dd1febbcad9683be77f23b666cdbbe SF3-DEMO.HE2
-145feca064ba53c0002c56a199bdc719 SF3-DEMO.HE3
-24f341ed410a69e052f90f9b3cb5ecf4 SF3-DEMO.HE4
-
-(chase cd hfs)
-Kirben
-???
-
-(chase hfs)
-Kirben
-???
-
-(chase cd hfs)
-Kirben
-???
-
-(chase hfs)
-Kirben
-???
-
-(chase cd russian)
-sev
-D:\scummsys.95\sputm.95\*.c
-dab6994bacb768b75a7085c01a473c94 Chase.a32
-9cdd327c1034c046cb595d251c44da2f CHASE.HE0
-d61f7c0fa645c0cead10e93b5223197c CHASE.HE1
-79fbaace4a08b14772aeea0250e95330 CHASE.HE2
-fe9666d561a54a101c92086d2ef77448 CHASE.HE4
-5201bee3111b5335fac48ecf30b27830 CHASE.HE8
-6d12e727e12365a23270269ca4c7e538 CHASE.HE9
-
-(mustard cd hfs)
-Kirben
-???
-
-(mustard cd)
-Kirben
-???
-
diff --git a/doc/he/smacker-md5s.txt b/doc/he/smacker-md5s.txt
deleted file mode 100644
index 39233c402b..0000000000
--- a/doc/he/smacker-md5s.txt
+++ /dev/null
@@ -1,46 +0,0 @@
-(puttsfunshop cd/pj3 cd/puttcircus cd)
-sev
-D:\scummsys.98\sputm.98\*.c
-e07a222d121f7e8b04266bf4d7809cb4 BluesBirthdayDemo.a32
-dbf4d59d70b826733f379f998354d350 BluesBirthdayDemo.HE0
-6ddf8b026cfb9410b560f91f353dc0f4 BluesBirthdayDemo.(a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo.(b)
-60cc055b47b53cb53eaa89e1f974c888 BluesBirthdayDemo.he2
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo.he4
-
-(puttrace cd)
-sev
-D:\scummsys.98\sputm.98\*.c
-e07a222d121f7e8b04266bf4d7809cb4 BluesBirthdayDemo.a32
-2d4acbdcfd8e374c9da8c2e7303a5cd0 BluesBirthdayDemo.HE0
-18ee74255c93da057c92effbd39ebd9a BluesBirthdayDemo.(a)
-409a570e46466aef89c3cd3a30992543 BluesBirthdayDemo.(b)
-dc5e63ecf2672d4a3a0458fe32902a4e BluesBirthdayDemo.he2
-0794110b085ee91c2aa4a5fc844ff2f4 BluesBirthdayDemo.he4
-ccca9a823d117afb1a882fd707586bf0 BluesBirthdayDemo.d32
-
-(freddi5 cd)
-sev
-C:\Dev\Project\SPUTM\Src\SrcPWin\*.cpp
-548fcedaa9cee84443a5a9acfff4cb04 ARTDEMO.(A)
-d00ffc8c32d17e575fd985d435d2eb88 ARTDEMO.HE0
-58c91c3f750b227b136e96b410b0e7cc ARTDEMO.HE2
-47f0573a8a629c6e7f8b9236112fe10e ARTDEMO.HE4
-7e98a8e45cbac83e65d98f3c133ae34d ARTDEMO.W32
-2f1a08df8aa13924959905fc5dc34a9b DATA/INTR_AT_IN_01.DAT
-f7841f8a37394805fc0699999898bcca DATA/INTR_AT_IN_02.DAT
-6a2f8c39d2ce07d422bae9f9bf416839 DATA/INTR_AT_IN_20_B.DAT
-
-(freddi5 cd)
-sev
-C:\Dev\Project\SPUTM\Src\SrcPWin\*.cpp
-f536221cc5d8da02009278523eda6bd5 READDEMO.(A)
-95818b178d473c989ac753574e8892aa READDEMO.HE0
-7c64b87e454e642e36a83c79341007b0 READDEMO.HE2
-4f307cf26e46f765298cc8f92f02db49 READDEMO.HE4
-eac7453b1dca87447974ef54137470f9 READDEMO.W32
-45a973a322b177ee4b36bea81981462d DATA/INT_RT_IN_01.DAT
-9e0c144bf1b7f0cc8ba3edae6135e313 DATA/INT_RT_IN_03.DAT
-8d150f9d9e12e485da50c4560135b4ef DATA/INT_RT_IN_04.DAT
-8cde496829546daaaa28084c49f3f4f7 DATA/INT_RT_IN_05.DAT
-c784fa970208b5bd49fff568ca0036ec DATA/INT_RT_IN_06.DAT
diff --git a/doc/he/u32.txt b/doc/he/u32.txt
deleted file mode 100644
index e4735cac71..0000000000
--- a/doc/he/u32.txt
+++ /dev/null
@@ -1,39 +0,0 @@
-500demo, puttrace, racedemo [55808]
-39F6C16743D2AA4E0D92C2E6C4993311 500DEMO.U32
-39F6C16743D2AA4E0D92C2E6C4993311 PUTTRACE.U32
-39F6C16743D2AA4E0D92C2E6C4993311 RACEDEMO.U32
-
-basketball [282690]
-6e8c11a5294981e58032e9f2c8fcdb74 BASKETBALL.U32
-
-baseball2001, bb2demo [180224]
-23843A93F55BF0B4D7D22E80E0EEFD0A bb2demo.u32
-
-chase (he100) [118784]
-CC119A63F923076C300DC52575CB47C5 uberedit.u32
-
-football, footdemo [155648]
-07656b959c7febb6359c8de5fd6b6f76 FOOTBALL.U32
-
-football2002 [90156]
-2d027f461187ebadad44801c366b892c Football2002.u32
-
-moonbase 1.0 [458827]
-4c18f01f3020678d2ce9d5312057cb9d Moonbase.u32
-
-moondemo [458827]
-0C645CDF171CC79DAB28BF8962D6904B moondemo.u32
-
-FreddisFunShop, PuttsFunShop, SamsFunShop [40960]
-39C468587C4BDAD304BE49E8D4041A22 PuttsFunShop.u32
-39C468587C4BDAD304BE49E8D4041A22 SamsFunShop.u32
-39C468587C4BDAD304BE49E8D4041A22 FreddisFunShop.u32
-
-soccer [123904]
-ed64133f8cdfca57fb3cd09057def978 SOCCER.U32
-
-soccer2004 [90186]
-C7B6AB1B4408C4F6EB66ADD731A0DF1A SOCCER2004.U32
-
-soccerMLS [135168]
-86cb9583ca987446d12a4f36dd8d631b SoccerMLS.u32
diff --git a/doc/he/versions.html b/doc/he/versions.html
deleted file mode 100644
index 3ab604c128..0000000000
--- a/doc/he/versions.html
+++ /dev/null
@@ -1,754 +0,0 @@
-<html>
-<!-- $Id$ -->
-<p>
-Games below are believed to be SCUMM based games... most haven't been proven however.
-Every title Humongous Entertainment released before Backyard Hockey (early 2002) should be SCUMM based.
-Mac versions not listed in the interest of space, they seem to be the same as pc ones after you rename
-certain files anyway. Besides anyone who has a mac version has a PC version as the games are on hybrid
-HFS/ISO9660 CDs.
-
-<table border=1>
-
-<tr>
-<td>Game
-<td>Year
-<td>Plat
-<td>SPU Ver
-<td>Source dir
-
-
-<tr>
-<td>Putt-Putt Joins the Parade
-<td>1992
-<td>dos
-<td>6.1.1&nbsp;(Jan&nbsp;18&nbsp;1994&nbsp;09:32:55)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Joins the Parade (patch)
-<td>1992
-<td>dos
-<td>6.1.1 (Nov 20 1993 12:42:10)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Joins the Parade
-<td>1992
-<td>win
-<td>7.0.0 (Feb 7 1995 13:26:59)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Joins the Parade
-<td>1992
-<td>3do
-<td>6.5.1 (3DO)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Joins the Parade (demo)
-<td>1993
-<td>dos
-<td>6.1.1 (Mar 9 1993 21:19:14)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Joins the Parade (demo)
-<td>1993
-<td>win
-<td>7.0.0 (Feb 7 1995 13:26:59)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Goes to the Moon
-<td>1993
-<td>dos
-<td>6.1.1 (Nov 4 1993 11:12:57)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Goes to the Moon
-<td>1993
-<td>win
-<td>7.0.0 (Feb 7 1995 13:27:20)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Goes to the Moon
-<td>1993
-<td>3do
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Goes to the Moon (demo)
-<td>1993
-<td>dos
-<td>6.1.1 (Sep 29 1993 17:18:45)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Goes to the Moon (demo)
-<td>1993
-<td>win
-<td>7.0.0 (Feb 7 1995 13:27:20)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt's Fun Pack
-<td>1993
-<td>dos
-<td>6.1.1 (Feb 15 1993 20:31:55)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt's Fun Pack (patch)
-<td>1993
-<td>dos
-<td>6.1.1 (Nov 20 1993 12:20:32)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt's Fun Pack
-<td>1993
-<td>3do
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Saves the Zoo
-<td>1995
-<td>win
-<td>7.0.0 (Jul 13 1995 18:45:07)
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Putt-Putt Saves the Zoo (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jun 4 1995 15:47:12)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Saves the Zoo (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jun 22 1995 14:03:05)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Saves the Zoo (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jul 5 1995 14:45:19)
-<td>&nbsp;
-
-<tr>
-<td>Putt-Putt Travels Through Time
-<td>1997
-<td>win
-<td>&nbsp;
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td>Putt-Putt Travels Through Time (demo)
-<td>1997
-<td>win
-<td>7.?.?
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Putt-Putt Travels Through Time (demo)
-<td>1997
-<td>win
-<td>7.?.?
-<td>c:\Build\SRC\SPUTM\Src\*.cpp
-
-<tr>
-<td>Putt-Putt Enters the Race
-<td>1998
-<td>win
-<td>7.?.?
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Putt-Putt Enters the Race (demo)
-<td>1998
-<td>win
-<td>7.?.?
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Putt-Putt Joins the Circus
-<td>&nbsp;
-<td>&nbsp;
-<td>&nbsp;
-<td>C:\Documents and Settings\stevej.BOT\My Documents\HECode\Libs\Wtoolkit\Rawbitm.cpp
-
-<tr>
-<td>Putt-Putt One-Stop Fun Shop
-<td>2000
-<td>win
-<td>7.?.?
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td>Putt-Putt and Pep's Balloon-O-Rama? (arcade)?
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>D:\Scummsrc.80\Sputm\*.c
-
-<tr>
-<td>Putt-Putt and Pep's Dog on a Stick? (arcade)
-<td>1999
-<td>win
-<td>7.?.?
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Pajama Sam 1: No Need To Hide When Its Dark
-<td>1996
-<td>win
-<td>7.?.?
-<td>D:\Scummsrc.80\Sputm\*.c
-
-<tr>
-<td>Pajama Sam 1: No Need To Hide When Its Dark (demo)
-<td>1996
-<td>win
-<td>&nbsp;
-<td>D:\Scummsrc.80\Sputm\*.c
-
-<tr>
-<td>Pajama Sam 1: No Need to Hide When Its Dark (demo)
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>c:\Build\SRC\SPUTM\Src\*.cpp
-
-<tr>
-<td>Pajama Sam 2: Thunder and Lightning
-<td>1998
-<td>win
-<td>7.?.?
-<td>D:\scummsys.95\sputm.95\*.c
-
-<tr>
-<td>Pajama Sam 2: Thunder and Lightning (demo)
-<td>1998
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.95\sputm.95\*.c
-
-<tr>
-<td>Pajama Sam 3: You Are What You Eat From Your
-<td>2000
-<td>win
-<td>7.?.?
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td>Pajama Sam 3: You Are What You Eat From (demo)
-<td>2000
-<td>win
-<td>7.?.?
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td>Pajama Sam One-Stop Fun Shop
-<td>2000
-<td>win
-<td>&nbsp;
-<td>C:\Documents and Settings\stevej\My Documents\HECode\SPUTM\Src\SrcPWin\*.cpp
-
-<tr>
-<td>Pajama Sam's Sock Works (arcade)
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.80\sputm80\*.c
-
-<tr>
-<td>Pajama Sam's Lost & Found (arcade)
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Pajama Sam's Lost & Found (demo)
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\(vss)scummsys.99\SPUTM\Src\SrcPWin\*.cpp
-
-<tr>
-<td colspan=5>&nbsp;
-
-<tr>
-<td>Freddi Fish 1: The Case of the Missing Kelp
-<td>1995
-<td>?
-<td>7.0.0 (Jun 23 1995 09:58:48)
-<td>&nbsp;
-
-<tr>
-<td>Freddi Fish 1: The Case of the Missing Kelp
-<td>1998
-<td>?
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Freddi Fish 1: The Case of the Missing Kelp (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Oct 20 1994 10:00:19)
-<td>&nbsp;
-
-<tr>
-<td>Freddi Fish 1: The Case of the Missing Kelp (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jun 22 1995 14:06:25)
-<td>&nbsp;
-
-<tr>
-<td>Freddi Fish 1: The Case of the Missing Kelp (demo)
-<td>1995
-<td>?
-<td>7.0.0 (Jul 5 1995 14:46:05)
-<td>&nbsp;
-
-<tr>
-<td>Freddi Fish 2: The Case of the Haunted Schoolhouse
-<td>1998
-<td>win
-<td>&nbsp;
-<td>D:\Scummsrc.80\Sputm\*.c
-
-<tr>
-<td>Freddi Fish 2: The Case of the Haunted (demo)
-<td>1996
-<td>win
-<td>7.?.?
-<td>D:\Scummsrc.80\Sputm\*.c
-
-<tr>
-<td>Freddi Fish 2: The Case of the Haunted (demo)
-<td>1998
-<td>win
-<td>7.?.?
-<td>c:\Build\SRC\SPUTM\Src\*.cpp
-
-<tr>
-<td>Freddi Fish 3: The Case of the Stolen Conch
-<td>1998
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Freddi Fish 3: The Case of the Stolen (demo)
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Freddi Fish 4: The Case of the Hogfish Rustlers
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Freddi Fish 4: The Case of the Hogfish (demo)
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Freddi Fish 5: The Case of the Creature of Coral
-<td>2001
-<td>win
-<td>&nbsp;
-<td>C:\Spyfox3Sputm\Src\*.cpp
-
-<tr>
-<td>Freddi Fish One Stop Fun Shop
-<td>2000
-<td>win
-<td>&nbsp;
-<td>C:\Documents and Settings\stevej\My Documents\HECode\SPUTM\Src\*.cpp<br>
-
-<tr>
-<td>Freddi Fish and Luther's Maze Madness
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys\sputm80\*.c
-
-<tr>
-<td>Freddi Fish and Luther's Water Worries
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys\sputm80\*.c
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Spy Fox 1: Dry Cereal
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Spy Fox 1: Dry Cereal (demo)
-<td>&nbsp;
-<td>&nbsp;
-<td>7.?.?
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Spy Fox 1: Dry Cereal (demo)
-<td>&nbsp;
-<td>&nbsp;
-<td>7.?.?
-<td>c:\Build\SRC\SPUTM\Src\*.cpp
-
-<tr>
-<td>Spy Fox 2: Some Assembly Required
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\(vss)scummsys.99\SPUTM\Src\*.cpp
-
-<tr>
-<td>Spy Fox 2: Some Assembly Required (Demo)
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>D:\(vss)scummsys.99\SPUTM\Src\*.cpp
-
-<tr>
-<td>Spy Fox 3: Operation Ozone
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>C:\Spyfox3Sputm\Src\SrcPWin\*.cpp
-
-<tr>
-<td>Spy Fox In Cheese Chase
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.95\sputm.95\*.c
-
-<tr>
-<td>Spy Fox in Hold the Mustard
-<td>1999
-<td>win
-<td>&nbsp;
-<td>D:\(vss)scummsys.99\SPUTM\Src\*.cpp
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Fatty's Birthday Surprise
-<td>1993
-<td>dos
-<td>6.1.1 (Jun 23 1993 15:31:14)
-<td>&nbsp;
-
-<tr>
-<td>Fatty's Birthday Surprise
-<td>1993
-<td>win
-<td>7.0.0 (Feb 7 1995 13:27:40)
-<td>&nbsp;
-
-<tr>
-<td>Fatty's Birthday Surprise
-<td>1993
-<td>3do
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Fatty's Birthday Surprise (demo)
-<td>1993
-<td>dos
-<td>6.1.1 (Apr 6 1993 20:48:56)
-<td>&nbsp;
-
-<tr>
-<td>Fatty's Birthday Surprise (demo)
-<td>1993
-<td>win
-<td>7.0.0 (Feb 7 1995 13:27:40)
-<td>&nbsp;
-
-<tr>
-<td>Fatty Bear's Fun Pack
-<td>1993
-<td>dos
-<td>6.1.1 (Nov 11 1993 09:17:08)
-<td>&nbsp;
-
-<tr>
-<td>Fatty Bear's Fun Pack
-<td>1993
-<td>3do
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Blue's ABC Time Activities
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's ABC Time Activities (demo)
-<td>&nbsp;
-<td>win
-<td>7.?.?
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Blue's 123 Time Activities
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Art Time Activities
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Birthday Adventure
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Learning Time
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Play Time
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Reading Time Activities
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Blue's Treasure Hunt
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Let's Explore the Airport with Buzzy
-<td>&nbsp;
-<td>win
-<td>7.0.0 (Jul 1 1995 21:55:39)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Airport with Buzzy (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Feb 8 1995 16:33:47)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Airport with Buzzy (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jun 22 1995 14:06:25)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Airport with Buzzy (demo)
-<td>1995
-<td>win
-<td>7.0.0 (Jul 5 1995 14:46:05)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Jungle with Buzzy
-<td>&nbsp;
-<td>win
-<td>7.0.0 (Jul 1 1995 21:55:39)<br>7.0.0 (Oct 5 1995 08:20:42)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Farm with Buzzy
-<td>1996
-<td>win
-<td>7.0.0 (Jun 11 1996 19:12:56)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Farm with Buzzy (demo)
-<td>1994
-<td>win
-<td>7.0.0 (Oct 13 1994 19:15:16)
-<td>&nbsp;
-
-<tr>
-<td>Let's Explore the Farm with Buzzy (demo) (farm cd)
-<td>1995
-<td>win
-<td>7.0.0 (Jun 22 1995 14:05:27)
-<td>&nbsp;
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Big Thinkers First Grade
-<td>&nbsp;
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Big Thinkers First Grade (demo)
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Big Thinkers Kindergarten
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Big Thinkers Kindergarten (demo)
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Humongous demo launcher "catalog"
-<td>1995
-<td>win
-<td>7.0.0 (Feb 8 1995 16:33:26)
-<td>&nbsp;
-
-<tr>
-<td>Humongous demo launcher "catalog2"
-<td>1995
-<td>win
-<td>7.0.0 (Jun 22 1995 14:01:50)
-<td>&nbsp;
-
-<tr>
-<td colspan=5>&nbsp;
-
-
-<tr>
-<td>Backyard Basketball
-<td>2001
-<td>win
-<td>&nbsp;
-<td>c:\Build\SRC\SPUTM\Src\*.cpp
-
-<tr>
-<td>Backyard Soccer
-<td>1998
-<td>win
-<td>&nbsp;
-<td>D:\scummsys.98\sputm.98\*.c
-
-<tr>
-<td>Backyard Soccer 2004
-<td>2003
-<td>win
-<td>&nbsp;
-<td>F:\HEdev\scummsys\SPUTM\Src\*.cpp
-
-<tr>
-<td>Backyard Football
-<td>1999
-<td>win
-<td>&nbsp;
-<td>&nbsp;
-
-<tr>
-<td>Backyard Football 2002
-<td>?
-<td>win
-<td>&nbsp;
-<td>C:\SRC_RELEASE\SPUTM\Src\*.cpp
-
-<tr>
-<td>Backyard Baseball
-<td>1997
-<td>win
-<td>&nbsp;
-<td>D:\Scummsys.90\sputm.90\*.c
-
-<tr>
-<td>Backyard Baseball 2001
-<td>2000
-<td>win
-<td>&nbsp;
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-
-<tr>
-<td>Backyard Baseball 2001 (demo)
-<td>2000
-<td>win
-<td>&nbsp;
-<td>C:\Dev\Project\SPUTM\Src\*.cpp
-</table>
-</html>
diff --git a/doc/translations/de/Liesmich.txt b/doc/translations/de/Liesmich.txt
deleted file mode 100755
index a1d7d6eb5f..0000000000
--- a/doc/translations/de/Liesmich.txt
+++ /dev/null
@@ -1,178 +0,0 @@
-Dieses Dokument ist eine auszugsweise Ãœbersetzung der englischen
-REAMDE-Datei. Das Original-Dokument enthält viel mehr Informationen.
-Sollten Sie hier also nicht das finden, was Sie benötigen und ein wenig
-Englisch können, sollten Sie sich die englische README-Datei ansehen.
-
-Für weitere Informationen, Kompatiblitätslisten, Einzelheiten zu Spenden,
-die neusten veröffentlichten Versionen, Fortschrittberichte und mehr
-besuchen Sie bitte die ScummVM-Website unter der Adresse:
-http://www.scummvm.org/
-
-Inhaltsverzeichnis:
-------------------
-1.0) Einführung
- * 1.1 Ãœber ScummVM
- * 1.2 Schnellstart
-2.0) Kontakt
- * 2.1 Fehler berichten
-
-1.0) Einführung:
----- -------------
-
-1.1) Ãœber ScummVM:
----- --------------
-ScummVM ist ein Programm, welches es Ihnen ermöglicht, bestimmte klassische
-Grafik-Adventure (unter anderem aus dem Point-and-Click-Bereich) zu spielen,
-vorausgesetzt, Sie sind im Besitz der Dateien des Spiels. Das Schlaue daran
-ist: ScummVM ersetzt lediglich die Funktion der ausführbaren Dateien,
-die mit den Spielen kamen, was ermöglicht, diese Spiele auf Systemen zu spielen,
-für welche sie nie erstellt wurden!
-
-Ursprünglich wurde dieses Programm dafür entwickelt, um SCUMM-Spiele von
-LucasArts auszuführen, wie beispielsweise Maniac Mansion, Monkey Island,
-Day of the Tentacle oder Sam and Max. SCUMM steht als Abkürzung für
-„Script Creation Utility for Maniac Mansion“ (deutsch etwa:
-Skripterstellungsdienstprogramm für Maniac Mansion), was das erste
-Spiel von LucasArts war, für welches LucasArts dieses System entworfen hatte.
-Und viel später verlieh es seinen Namen an ScummVM (wobei „VM“ für
-„Virtuelle Maschine“ steht).
-
-Mit der Zeit wurde Unterstützung für viele Nicht-SCUMM-Spiele hinzugefügt.
-Einige Adventures, die ScummVM unterstützt, sind unter anderem Simon the
-Sorcerer 1 und 2 von Adventure Soft, Beneath A Steel Sky und
-Baphomets Fluch 1 und 2 von Revolution, Flight of the Amazon Queen,
-Erben der Erde (Wyrmkeep), Gobliiins von Coktel Vision sowie
-The Legend of Kyrandia von Westwood Studios.
-Sie können eine genaue Liste mit Einzelheiten einsehen, welche Auskunft
-darüber gibt, welche Spiele unterstützt werden und wie gut. Gehen Sie
-hierfür auf die Kompatiblitätsseite. ScummVM wird kontinuierlich
-verbessert, also schauen Sie oft vorbei.
-
-Unter den Systemen, mit denen Sie diese Spiele spielen können, befinden
-sich Windows, Linux, Mac OS X, Dreamcast, PocketPC, PalmOS, iPhone,
-AmigaOS, BeOS, OS/2, PSP, PS2, SymbianOS/EPOC und viele mehr.
-
-Zurzeit befindet sich ScummVM immer noch stark in der Entwicklung.
-Seien Sie sich bewusst, dass wir zwar versuchen, dass viele Spiele
-mit wenigen erheblichen Fehlern durchgespielt werden können, aber es
-dennoch zu Abstürzen kommen kann und wir keine Gewähr übernehmen.
-Davon abgesehen: Einige Spiele werden seit längerer Zeit unterstützt
-und sollten in jeder stabilen veröffentlichten Version gut laufen.
-Sie können sich einen Eindruck davon verschaffen, wie gut jedes Spiel
-unter ScummVM läuft, indem Sie auf die Kompatiblitätsseite schauen.
-
-Wenn Sie sich ein wenig umsehen, können Sie herausfinden, dass
-ScummVM sogar kommerziell genutzt wird, um einige der unterstützen Spiele
-auf modernen Plattformen wiederzuveröffentlichen. Dies zeigt, dass
-verschiedene Firmen mit der Qualität der Software zufrieden sind und wie gut
-einige der Spiele mit ihrer Hilfe laufen.
-
-Wenn Ihnen ScummVM gefällt, können Sie uns gerne etwas Geld spenden,
-um uns finanziell zu unterstützen. Dies hilft uns dabei, notwendige
-Dienstprogramme zu kaufen, um ScummVM einfacher und schneller zu entwickeln.
-Wenn Sie nicht spenden können, dürfen Sie auch gerne einen Patch beisteuern.
-
-1.2) Schnellstart:
----- ------------
-WICHTIG: In der unteren kurzen Anleitung wird davon ausgegangen, dass Sie
-ScummVM auf Deutsch benutzen. Standardmäßig wird ScummVM die Sprache
-Ihres Betriebssystems verwenden. Falls ScummVM auf Englisch statt auf
-Deutsch erscheint, sollten Sie folgende Schritte ausführen, wenn Sie bei
-Schritt 3 angelangt sind und ScummVM gestartet haben:
--Klicken Sie auf "Options".
--Klicken Sie auf den rechten Pfeil in der Reiterleiste und wählen den
- Reiter "Misc" aus.
--Wählen Sie im Feld "GUI Language" "Deutsch" aus und klicken auf "OK".
--Bestätigen Sie die erscheinende Nachricht, klicken auf "Quit", um
- ScummVM zu beenden und starten dann das Programm erneut.
-
-Wenn Sie ScummVM lieber in Englisch verwenden möchten, benutzen Sie bitte
-die Anleitung in der englischen README-Datei.
-
-
-Für die ungelduldigen unter den Benutzern ist hier in fünf einfachen
-Schritten kurz beschrieben, wie man ScummVM lauffähig macht und das
-Programm verwendet.
-
-1. Laden Sie ScummVM unter der Adresse
-<http://www.scummvm.org/downloads.php> herunter und installieren Sie es.
-
-2. Erstellen Sie ein Verzeichnis auf Ihrer Festplatte und kopieren Sie
-die Dateien des Spiels vom Original-Datenträger in dieses Verzeichnis.
-Wiederholen Sie diesen Vorgang für jedes Spiel, das Sie spielen möchten.
-
-3. Starten Sie ScummVM, wählen Sie "Spiel hinzufügen" aus, wählen Sie das
-Verzeichnis mit den Dateien des Spiels aus (versuchen Sie nicht, die
-Dateien des Spiels selbst auszuwählen!) und klicken Sie auf "Auswählen".
-
-4. Ein Dialog sollte erscheinen, der Ihnen ermöglicht, verschiedene
-Einstellungen vorzunehmn, sollten Sie dies wünschen (es sollte jedoch in
-Ordnung sein, alles voreingestellt zu belassen). Bestätigen Sie diesen
-Dialog.
-
-5. Wählen Sie das Spiel aus der Liste aus, welches Sie spielen möchten
-und klicken Sie auf "Starten".
-
-In Zukunft sollte es nun möglich sein, direkt zu Schritt 5 überzugehen,
-außer Sie wollen noch mehr Spiele hinzufügen.
-
-Tipp: Wenn Sie mehrere Spiele auf einmal hinzufügen möchten, drücken Sie
-die Umschalt-Taste (Shift), bevor Sie auf "Spiel hinzufügen" klicken.
-Diese Schaltfläche wird somit ihren Text zu "Durchsuchen" umändern und
-wenn Sie dann auf diese klicken, werden Sie auch dazu aufgefordert, ein
-Verzeichnis auszuwählen, nur dieses Mal wird ScummVM alle
-Unterverzeichnisse automatisch nach unterstützen Spielen durchsuchen.
-
-
-2.0) Kontakt:
----- --------
-Der einfachste Weg, um mit dem ScummVM-Team in Verbindung zu treten, ist,
-Fehlerberichte einzusenden (siehe Abschnitt 2.1) oder durch Verwendung
-des Forums unter der Adresse http://forums.scummvm.org .
-Sie können ebenso der Mailing-Liste scummvm-devel betreiten und an diese
-E-Mails versenden oder mit uns im IRC chatten (#scummvm unter
-irc.freenode.net). Bitte fordern Sie uns nicht dazu auf, ein nicht
-unterstütztes Spiel zu unterstützen. Lesen Sie zuerst die Seite FAQ
-(Häufig gestellte Fragen) auf unserer Website.
-Bitte beachten Sie Kenntnis, dass die offizielle Sprache des Forums,
-der Mailing-Liste und des Chats Englisch ist und keine andere Sprache
-dort verwendet werden sollte.
-
-
-2.1) Fehler berichten:
----- ---------------
-Um einen Fehler zu berichten, erstellen Sie bitte ein SourceForge-Konto
-und folgen Sie dem Link "Bug Tracker" auf der ScummVM-Website. Bitte
-stellen Sie sicher, dass sich der Bug wiedererzeugen lässt und immer noch
-in der neusten Version von SVN oder des Daily builds auftritt. Bitte
-sehen Sie auch auf der Problemliste unten und der Kompatiblitätsliste auf
-der ScummVM-Website für dieses Spiel nach, um sicherzustellen, dass das
-Problem nicht bereits bekannt ist:
-
- http://www.scummvm.org/compatibility_stable.php
-
-Bitte berichten Sie keine Fehler zu Spielen, die nicht als durchspielbar
-im Bereich "Supported Games" oder der Kompatiblitätsliste aufgelistet
-sind. Wir -wissen-, dass diese Spiele Fehler aufweisen.
-
-Bitte liefern Sie folgende Informationen:
- - ScummVM-Version (BITTE mit neuster Version von SVN oder
- des Daily builds testen)
- - Einzelheiten zum Fehler, einschließlich Anweisungen, um den Fehler
- hervorzurufen
- - Sprache des Spiels (Englisch, Deutsch, ...)
- - Version des Spiels (Version mit Sprachausgabe [Talkie],
- Disketten-Version, ...)
- - Plattform und gegebenenfalls Compiler (Win32, Linux, FreeBSD, ...)
- - Fügen Sie einen Speicherstand hinzu, wenn es möglich ist.
- - Wenn dieser Fehler erst seit kurzem Auftritt, teilen Sie bitte die
- letzte Version ohne den Fehler mit und die erste Version mit diesem
- Fehler. Auf diese Weise können wir diesen schneller beseitigen,
- indem wir die vorgenommen Veränderungen einsehen.
-
-Zum Schluss möchten wir Sie noch bitten, jeden Punkt einzeln zu
-berichten; bitte senden Sie nicht mehrere Punkte mit dem selben Ticket
-ein, ansonsten wird es schwierig, den Status jedes einzelnen Fehlers
-zu verfolgen. Denken Sie bitte auch daran, dass alle Fehlerberichte in
-Englisch verfasst sein müssen.
-
diff --git a/engines/advancedDetector.h b/engines/advancedDetector.h
index cbdfdf39d8..c5bfdbd26b 100644
--- a/engines/advancedDetector.h
+++ b/engines/advancedDetector.h
@@ -161,7 +161,7 @@ protected:
* is primarily based on computing and matching MD5 checksums of files.
* Since doing that for large files can be slow, it can be restricted
* to a subset of all files.
- * Typically this will be set to something between 5 and 50 kilobyte,
+ * Typically this will be set to something between 5 and 50 kilobytes,
* but arbitrary non-zero values are possible. The default is 5000.
*/
uint _md5Bytes;
diff --git a/engines/agi/agi.cpp b/engines/agi/agi.cpp
index 0eefbab04d..4bebf97e95 100644
--- a/engines/agi/agi.cpp
+++ b/engines/agi/agi.cpp
@@ -504,6 +504,7 @@ AgiBase::AgiBase(OSystem *syst, const AGIGameDescription *gameDesc) : Engine(sys
_noSaveLoadAllowed = false;
_rnd = new Common::RandomSource("agi");
+ _sound = 0;
initFeatures();
initVersion();
@@ -511,6 +512,11 @@ AgiBase::AgiBase(OSystem *syst, const AGIGameDescription *gameDesc) : Engine(sys
AgiBase::~AgiBase() {
delete _rnd;
+
+ if (_sound) {
+ _sound->deinitSound();
+ delete _sound;
+ }
}
AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBase(syst, gameDesc) {
@@ -536,6 +542,8 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas
memset(&_debug, 0, sizeof(struct AgiDebug));
memset(&_mouse, 0, sizeof(struct Mouse));
+ _game._vm = this;
+
_game.clockEnabled = false;
_game.state = STATE_INIT;
@@ -571,7 +579,7 @@ AgiEngine::AgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) : AgiBas
_game.controllerOccured[i] = false;
setupOpcodes();
- _curLogic = NULL;
+ _game._curLogic = NULL;
_timerHack = 0;
}
@@ -680,8 +688,6 @@ AgiEngine::~AgiEngine() {
agiDeinit();
delete _loader;
- _sound->deinitSound();
- delete _sound;
_gfx->deinitVideo();
delete _sprites;
delete _picture;
diff --git a/engines/agi/agi.h b/engines/agi/agi.h
index 0155caf11d..080373d27b 100644
--- a/engines/agi/agi.h
+++ b/engines/agi/agi.h
@@ -88,6 +88,7 @@ typedef signed int Err;
#define _EMPTY 0xfffff
#define EGO_OWNED 0xff
+#define EGO_OWNED_V1 0xf9
#define CRYPT_KEY_SIERRA "Avis Durgan"
#define CRYPT_KEY_AGDS "Alex Simkin"
@@ -131,10 +132,16 @@ enum AgiGameID {
enum AgiGameType {
GType_PreAGI = 0,
- GType_V2 = 1,
- GType_V3 = 2
+ GType_V1 = 1,
+ GType_V2 = 2,
+ GType_V3 = 3
};
+ enum BooterDisks {
+ BooterDisk1 = 0,
+ BooterDisk2 = 1
+ };
+
//
// GF_OLDAMIGAV20 means that the interpreter is an old Amiga AGI interpreter that
// uses value 20 for the computer type (v20 i.e. vComputer) rather than the usual value 5.
@@ -537,6 +544,8 @@ enum {
* by the interpreter.
*/
struct AgiGame {
+ AgiEngine *_vm;
+
State state; /**< state of the interpreter */
// TODO: Check whether adjMouseX and adjMouseY must be saved and loaded when using savegames.
@@ -621,6 +630,11 @@ struct AgiGame {
AgiView views[MAX_DIRS]; /**< AGI view resources */
AgiSound *sounds[MAX_DIRS]; /**< Pointers to AGI sound resources */
+ AgiLogic *_curLogic;
+
+ // words
+ Common::Array<AgiWord*> words[26];
+
// view table
VtEntry viewTable[MAX_VIEWTABLE];
@@ -629,6 +643,13 @@ struct AgiGame {
int simpleSave; /**< select simple savegames */
Common::Rect mouseFence; /**< rectangle set by fence.mouse command */
+
+ // IF condition handling
+ int testResult;
+
+
+ int max_logics;
+ int logic_list[256];
};
class AgiLoader {
@@ -646,6 +667,28 @@ public:
virtual int loadWords(const char *) = 0;
};
+class AgiLoader_v1 : public AgiLoader {
+private:
+ AgiEngine *_vm;
+ Common::String _filenameDisk0;
+ Common::String _filenameDisk1;
+
+ int loadDir_DDP(AgiDir *agid, int offset, int max);
+ int loadDir_BC(AgiDir *agid, int offset, int max);
+ uint8 *loadVolRes(AgiDir *agid);
+
+public:
+ AgiLoader_v1(AgiEngine *vm);
+
+ virtual int init();
+ virtual int deinit();
+ virtual int detectGame();
+ virtual int loadResource(int, int);
+ virtual int unloadResource(int, int);
+ virtual int loadObjects(const char *);
+ virtual int loadWords(const char *);
+};
+
class AgiLoader_v2 : public AgiLoader {
private:
AgiEngine *_vm;
@@ -690,6 +733,7 @@ public:
virtual int loadWords(const char *);
};
+
class GfxMgr;
class SpritesMgr;
class Menu;
@@ -745,6 +789,8 @@ public:
AgiGame _game;
Common::RandomSource *_rnd;
+ SoundMgr *_sound;
+
Mouse _mouse;
bool _noSaveLoadAllowed;
@@ -789,10 +835,14 @@ public:
void initVersion();
void setVersion(uint16 version);
+ const char *getDiskName(uint16 id);
+
bool canLoadGameStateCurrently();
bool canSaveGameStateCurrently();
};
+typedef void (*AgiCommand)(AgiGame *state, uint8 *p);
+
class AgiEngine : public AgiBase {
protected:
// Engine APIs
@@ -851,7 +901,6 @@ public:
char _lastSentence[40];
SpritesMgr *_sprites;
- SoundMgr *_sound;
PictureMgr *_picture;
AgiLoader *_loader; // loader
@@ -915,16 +964,21 @@ public:
void checkQuickLoad();
// Objects
+public:
int showObjects();
- int decodeObjects(uint8 *mem, uint32 flen);
int loadObjects(const char *fname);
- int allocObjects(int);
+ int loadObjects(Common::File &fp);
void unloadObjects();
const char *objectName(unsigned int);
int objectGetLocation(unsigned int);
void objectSetLocation(unsigned int, int);
+private:
+ int decodeObjects(uint8 *mem, uint32 flen);
+ int readObjects(Common::File &fp, int flen);
+ int allocObjects(int);
// Logic
+public:
int decodeLogic(int);
void unloadLogic(int);
int runLogic(int);
@@ -932,8 +986,10 @@ public:
int testIfCode(int);
void executeAgiCommand(uint8, uint8 *);
-private:
+public:
// Some submethods of testIfCode
+ void skipInstruction(byte op);
+ void skipInstructionsUntil(byte v);
uint8 testObjRight(uint8, uint8, uint8, uint8, uint8);
uint8 testObjCenter(uint8, uint8, uint8, uint8, uint8);
uint8 testObjInBox(uint8, uint8, uint8, uint8, uint8);
@@ -966,8 +1022,10 @@ public:
bool isEgoView(const VtEntry *v);
// Words
+public:
int showWords();
int loadWords(const char *);
+ int loadWords_v1(Common::File &f);
void unloadWords();
int findWord(const char *word, int *flen);
void dictionaryWords(char *);
@@ -1045,196 +1103,13 @@ public:
char _predictiveResult[40];
private:
- typedef void (AgiEngine::*AgiCommand)(uint8 *);
-
AgiCommand _agiCommands[183];
- AgiLogic *_curLogic;
- int _timerHack; // Workaround for timer loop in MH1 logic 153
+ AgiCommand _agiCondCommands[256];
void setupOpcodes();
- void cmd_increment(uint8 *p);
- void cmd_decrement(uint8 *p);
- void cmd_assignn(uint8 *p);
- void cmd_assignv(uint8 *p);
- void cmd_addn(uint8 *p);
- void cmd_addv(uint8 *p);
- void cmd_subn(uint8 *p);
- void cmd_subv(uint8 *p); // 0x08
- void cmd_lindirectv(uint8 *p);
- void cmd_rindirect(uint8 *p);
- void cmd_lindirectn(uint8 *p);
- void cmd_set(uint8 *p);
- void cmd_reset(uint8 *p);
- void cmd_toggle(uint8 *p);
- void cmd_set_v(uint8 *p);
- void cmd_reset_v(uint8 *p); // 0x10
- void cmd_toggle_v(uint8 *p);
- void cmd_new_room(uint8 *p);
- void cmd_new_room_f(uint8 *p);
- void cmd_load_logic(uint8 *p);
- void cmd_load_logic_f(uint8 *p);
- void cmd_call(uint8 *p);
- void cmd_call_f(uint8 *p);
- void cmd_load_pic(uint8 *p); // 0x18
- void cmd_draw_pic(uint8 *p);
- void cmd_show_pic(uint8 *p);
- void cmd_discard_pic(uint8 *p);
- void cmd_overlay_pic(uint8 *p);
- void cmd_show_pri_screen(uint8 *p);
- void cmd_load_view(uint8 *p);
- void cmd_load_view_f(uint8 *p);
- void cmd_discard_view(uint8 *p); // 0x20
- void cmd_animate_obj(uint8 *p);
- void cmd_unanimate_all(uint8 *p);
- void cmd_draw(uint8 *p);
- void cmd_erase(uint8 *p);
- void cmd_position(uint8 *p);
- void cmd_position_f(uint8 *p);
- void cmd_get_posn(uint8 *p);
- void cmd_reposition(uint8 *p); // 0x28
- void cmd_set_view(uint8 *p);
- void cmd_set_view_f(uint8 *p);
- void cmd_set_loop(uint8 *p);
- void cmd_set_loop_f(uint8 *p);
- void cmd_fix_loop(uint8 *p);
- void cmd_release_loop(uint8 *p);
- void cmd_set_cel(uint8 *p);
- void cmd_set_cel_f(uint8 *p); // 0x30
- void cmd_last_cel(uint8 *p);
- void cmd_current_cel(uint8 *p);
- void cmd_current_loop(uint8 *p);
- void cmd_current_view(uint8 *p);
- void cmd_number_of_loops(uint8 *p);
- void cmd_set_priority(uint8 *p);
- void cmd_set_priority_f(uint8 *p);
- void cmd_release_priority(uint8 *p); // 0x38
- void cmd_get_priority(uint8 *p);
- void cmd_stop_update(uint8 *p);
- void cmd_start_update(uint8 *p);
- void cmd_force_update(uint8 *p);
- void cmd_ignore_horizon(uint8 *p);
- void cmd_observe_horizon(uint8 *p);
- void cmd_set_horizon(uint8 *p);
- void cmd_object_on_water(uint8 *p); // 0x40
- void cmd_object_on_land(uint8 *p);
- void cmd_object_on_anything(uint8 *p);
- void cmd_ignore_objs(uint8 *p);
- void cmd_observe_objs(uint8 *p);
- void cmd_distance(uint8 *p);
- void cmd_stop_cycling(uint8 *p);
- void cmd_start_cycling(uint8 *p);
- void cmd_normal_cycle(uint8 *p); // 0x48
- void cmd_end_of_loop(uint8 *p);
- void cmd_reverse_cycle(uint8 *p);
- void cmd_reverse_loop(uint8 *p);
- void cmd_cycle_time(uint8 *p);
- void cmd_stop_motion(uint8 *p);
- void cmd_start_motion(uint8 *p);
- void cmd_step_size(uint8 *p);
- void cmd_step_time(uint8 *p); // 0x50
- void cmd_move_obj(uint8 *p);
- void cmd_move_obj_f(uint8 *p);
- void cmd_follow_ego(uint8 *p);
- void cmd_wander(uint8 *p);
- void cmd_normal_motion(uint8 *p);
- void cmd_set_dir(uint8 *p);
- void cmd_get_dir(uint8 *p);
- void cmd_ignore_blocks(uint8 *p); // 0x58
- void cmd_observe_blocks(uint8 *p);
- void cmd_block(uint8 *p);
- void cmd_unblock(uint8 *p);
- void cmd_get(uint8 *p);
- void cmd_get_f(uint8 *p);
- void cmd_drop(uint8 *p);
- void cmd_put(uint8 *p);
- void cmd_put_f(uint8 *p); // 0x60
- void cmd_get_room_f(uint8 *p);
- void cmd_load_sound(uint8 *p);
- void cmd_sound(uint8 *p);
- void cmd_stop_sound(uint8 *p);
- void cmd_print(uint8 *p);
- void cmd_print_f(uint8 *p);
- void cmd_display(uint8 *p);
- void cmd_display_f(uint8 *p); // 0x68
- void cmd_clear_lines(uint8 *p);
- void cmd_text_screen(uint8 *p);
- void cmd_graphics(uint8 *p);
- void cmd_set_cursor_char(uint8 *p);
- void cmd_set_text_attribute(uint8 *p);
- void cmd_shake_screen(uint8 *p);
- void cmd_configure_screen(uint8 *p);
- void cmd_status_line_on(uint8 *p); // 0x70
- void cmd_status_line_off(uint8 *p);
- void cmd_set_string(uint8 *p);
- void cmd_get_string(uint8 *p);
- void cmd_word_to_string(uint8 *p);
- void cmd_parse(uint8 *p);
- void cmd_get_num(uint8 *p);
- void cmd_prevent_input(uint8 *p);
- void cmd_accept_input(uint8 *p); // 0x78
- void cmd_set_key(uint8 *p);
- void cmd_add_to_pic(uint8 *p);
- void cmd_add_to_pic_f(uint8 *p);
- void cmd_status(uint8 *p);
- void cmd_save_game(uint8 *p);
- void cmd_load_game(uint8 *p);
- void cmd_init_disk(uint8 *p);
- void cmd_restart_game(uint8 *p); // 0x80
- void cmd_show_obj(uint8 *p);
- void cmd_random(uint8 *p);
- void cmd_program_control(uint8 *p);
- void cmd_player_control(uint8 *p);
- void cmd_obj_status_f(uint8 *p);
- void cmd_quit(uint8 *p);
- void cmd_show_mem(uint8 *p);
- void cmd_pause(uint8 *p); // 0x88
- void cmd_echo_line(uint8 *p);
- void cmd_cancel_line(uint8 *p);
- void cmd_init_joy(uint8 *p);
- void cmd_toggle_monitor(uint8 *p);
- void cmd_version(uint8 *p);
- void cmd_script_size(uint8 *p);
- void cmd_set_game_id(uint8 *p);
- void cmd_log(uint8 *p); // 0x90
- void cmd_set_scan_start(uint8 *p);
- void cmd_reset_scan_start(uint8 *p);
- void cmd_reposition_to(uint8 *p);
- void cmd_reposition_to_f(uint8 *p);
- void cmd_trace_on(uint8 *p);
- void cmd_trace_info(uint8 *p);
- void cmd_print_at(uint8 *p);
- void cmd_print_at_v(uint8 *p); // 0x98
- //void cmd_discard_view(uint8 *p); // Opcode repeated from 0x20 ?
- void cmd_clear_text_rect(uint8 *p);
- void cmd_set_upper_left(uint8 *p);
- void cmd_set_menu(uint8 *p);
- void cmd_set_menu_item(uint8 *p);
- void cmd_submit_menu(uint8 *p);
- void cmd_enable_item(uint8 *p);
- void cmd_disable_item(uint8 *p); // 0xa0
- void cmd_menu_input(uint8 *p);
- void cmd_show_obj_v(uint8 *p);
- void cmd_open_dialogue(uint8 *p);
- void cmd_close_dialogue(uint8 *p);
- void cmd_mul_n(uint8 *p);
- void cmd_mul_v(uint8 *p);
- void cmd_div_n(uint8 *p);
- void cmd_div_v(uint8 *p); // 0xa8
- void cmd_close_window(uint8 *p);
- void cmd_set_simple(uint8 *p);
- void cmd_push_script(uint8 *p);
- void cmd_pop_script(uint8 *p);
- void cmd_hold_key(uint8 *p);
- void cmd_set_pri_base(uint8 *p);
- void cmd_discard_sound(uint8 *p);
- void cmd_hide_mouse(uint8 *p); // 0xb0
- void cmd_allow_menu(uint8 *p);
- void cmd_show_mouse(uint8 *p);
- void cmd_fence_mouse(uint8 *p);
- void cmd_mouse_posn(uint8 *p);
- void cmd_release_key(uint8 *p);
- void cmd_adj_ego_move_to_x_y(uint8 *p);
+public:
+ int _timerHack; // Workaround for timer loop in MH1 logic 153
};
} // End of namespace Agi
diff --git a/engines/agi/checks.cpp b/engines/agi/checks.cpp
index 20276657ff..c3b31f6ba9 100644
--- a/engines/agi/checks.cpp
+++ b/engines/agi/checks.cpp
@@ -31,7 +31,7 @@ int AgiEngine::checkPosition(VtEntry *v) {
v->xPos + v->xSize > _WIDTH ||
v->yPos - v->ySize + 1 < 0 ||
v->yPos >= _HEIGHT ||
- ((~v->flags & IGNORE_HORIZON) && v->yPos <= _game.horizon)) {
+ ((~v->flags & fIgnoreHorizon) && v->yPos <= _game.horizon)) {
debugC(4, kDebugLevelSprites, "check position failed: x=%d, y=%d, h=%d, w=%d",
v->xPos, v->yPos, v->xSize, v->ySize);
return 0;
@@ -52,14 +52,14 @@ int AgiEngine::checkPosition(VtEntry *v) {
int AgiEngine::checkCollision(VtEntry *v) {
VtEntry *u;
- if (v->flags & IGNORE_OBJECTS)
+ if (v->flags & fIgnoreObjects)
return 0;
for (u = _game.viewTable; u < &_game.viewTable[MAX_VIEWTABLE]; u++) {
- if ((u->flags & (ANIMATED | DRAWN)) != (ANIMATED | DRAWN))
+ if ((u->flags & (fAnimated | fDrawn)) != (fAnimated | fDrawn))
continue;
- if (u->flags & IGNORE_OBJECTS)
+ if (u->flags & fIgnoreObjects)
continue;
// Same object, check next
@@ -92,7 +92,7 @@ int AgiEngine::checkPriority(VtEntry *v) {
int i, trigger, water, pass, pri;
uint8 *p0;
- if (~v->flags & FIXED_PRIORITY) {
+ if (~v->flags & fFixedPriority) {
// Priority bands
v->priority = _game.priTable[v->yPos];
}
@@ -129,7 +129,7 @@ int AgiEngine::checkPriority(VtEntry *v) {
water = 0;
if (pri == 1) { // conditional blue
- if (v->flags & IGNORE_BLOCKS)
+ if (v->flags & fIgnoreBlocks)
continue;
debugC(4, kDebugLevelSprites, "Blocks observed!");
@@ -145,9 +145,9 @@ int AgiEngine::checkPriority(VtEntry *v) {
}
if (pass) {
- if (!water && v->flags & ON_WATER)
+ if (!water && v->flags & fOnWater)
pass = 0;
- if (water && v->flags & ON_LAND)
+ if (water && v->flags & fOnLand)
pass = 0;
}
@@ -180,7 +180,7 @@ void AgiEngine::updatePosition() {
_game.vars[vBorderTouchObj] = 0;
for (v = _game.viewTable; v < &_game.viewTable[MAX_VIEWTABLE]; v++) {
- if ((v->flags & (ANIMATED | UPDATE | DRAWN)) != (ANIMATED | UPDATE | DRAWN)) {
+ if ((v->flags & (fAnimated | fUpdate | fDrawn)) != (fAnimated | fUpdate | fDrawn)) {
continue;
}
@@ -195,7 +195,7 @@ void AgiEngine::updatePosition() {
y = oldY = v->yPos;
// If object has moved, update its position
- if (~v->flags & UPDATE_POS) {
+ if (~v->flags & fUpdatePos) {
int dx[9] = { 0, 0, 1, 1, 1, 0, -1, -1, -1 };
int dy[9] = { 0, -1, -1, 0, 1, 1, 1, 0, -1 };
x += v->stepSize * dx[v->direction];
@@ -212,7 +212,7 @@ void AgiEngine::updatePosition() {
} else if (x <= 0 && getVersion() == 0x3086) { // KQ4
x = 0; // See Sarien bug #590462
border = 4;
- } else if (v->entry == 0 && x == 0 && v->flags & ADJ_EGO_XY) {
+ } else if (v->entry == 0 && x == 0 && v->flags & fAdjEgoXY) {
// Extra test to walk west clicking the mouse
x = 0;
border = 4;
@@ -228,7 +228,7 @@ void AgiEngine::updatePosition() {
} else if (y > _HEIGHT - 1) {
y = _HEIGHT - 1;
border = 3;
- } else if ((~v->flags & IGNORE_HORIZON) && y <= _game.horizon) {
+ } else if ((~v->flags & fIgnoreHorizon) && y <= _game.horizon) {
debugC(4, kDebugLevelSprites, "y = %d, horizon = %d", y, _game.horizon);
y = _game.horizon + 1;
border = 1;
@@ -251,12 +251,12 @@ void AgiEngine::updatePosition() {
_game.vars[vBorderCode] = v->entry;
_game.vars[vBorderTouchObj] = border;
}
- if (v->motion == MOTION_MOVE_OBJ) {
+ if (v->motion == kMotionMoveObj) {
inDestination(v);
}
}
- v->flags &= ~UPDATE_POS;
+ v->flags &= ~fUpdatePos;
}
}
@@ -276,7 +276,7 @@ void AgiEngine::fixPosition(int n) {
debugC(4, kDebugLevelSprites, "adjusting view table entry #%d (%d,%d)", n, v->xPos, v->yPos);
// test horizon
- if ((~v->flags & IGNORE_HORIZON) && v->yPos <= _game.horizon)
+ if ((~v->flags & fIgnoreHorizon) && v->yPos <= _game.horizon)
v->yPos = _game.horizon + 1;
dir = 0;
diff --git a/engines/agi/console.cpp b/engines/agi/console.cpp
index d49bd57ea2..dd06736290 100644
--- a/engines/agi/console.cpp
+++ b/engines/agi/console.cpp
@@ -96,8 +96,8 @@ bool Console::Cmd_RunOpcode(int argc, const char **argv) {
for (int i = 0; logicNamesCmd[i].name; i++) {
if (!strcmp(argv[1], logicNamesCmd[i].name)) {
uint8 p[16];
- if ((argc - 2) != logicNamesCmd[i].numArgs) {
- DebugPrintf("AGI command wants %d arguments\n", logicNamesCmd[i].numArgs);
+ if ((argc - 2) != logicNamesCmd[i].argumentsLength()) {
+ DebugPrintf("AGI command wants %d arguments\n", logicNamesCmd[i].argumentsLength());
return 0;
}
p[0] = argv[2] ? (char)strtoul(argv[2], NULL, 0) : 0;
@@ -260,7 +260,7 @@ bool Console::Cmd_BT(int argc, const char **argv) {
for (it = _vm->_game.execStack.begin(); it != _vm->_game.execStack.end(); ++it) {
code = _vm->_game.logics[it->script].data;
op = code[it->curIP];
- num = logicNamesCmd[op].numArgs;
+ num = logicNamesCmd[op].argumentsLength();
memmove(p, &code[it->curIP], num);
memset(p + num, 0, CMD_BSIZE - num);
@@ -275,25 +275,21 @@ bool Console::Cmd_BT(int argc, const char **argv) {
return true;
}
-PreAGI_Console::PreAGI_Console(PreAgiEngine *vm) {
- _vm = vm;
-}
-
-Mickey_Console::Mickey_Console(PreAgiEngine *vm, Mickey *mickey) : PreAGI_Console(vm) {
+MickeyConsole::MickeyConsole(MickeyEngine *mickey) : GUI::Debugger() {
_mickey = mickey;
- DCmd_Register("curRoom", WRAP_METHOD(Mickey_Console, Cmd_CurRoom));
- DCmd_Register("gotoRoom", WRAP_METHOD(Mickey_Console, Cmd_GotoRoom));
- DCmd_Register("drawPic", WRAP_METHOD(Mickey_Console, Cmd_DrawPic));
- DCmd_Register("drawObj", WRAP_METHOD(Mickey_Console, Cmd_DrawObj));
+ DCmd_Register("curRoom", WRAP_METHOD(MickeyConsole, Cmd_CurRoom));
+ DCmd_Register("gotoRoom", WRAP_METHOD(MickeyConsole, Cmd_GotoRoom));
+ DCmd_Register("drawPic", WRAP_METHOD(MickeyConsole, Cmd_DrawPic));
+ DCmd_Register("drawObj", WRAP_METHOD(MickeyConsole, Cmd_DrawObj));
}
-bool Mickey_Console::Cmd_CurRoom(int argc, const char **argv) {
+bool MickeyConsole::Cmd_CurRoom(int argc, const char **argv) {
_mickey->debugCurRoom();
return true;
}
-bool Mickey_Console::Cmd_GotoRoom(int argc, const char **argv) {
+bool MickeyConsole::Cmd_GotoRoom(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Room number>\n", argv[0]);
else
@@ -301,7 +297,7 @@ bool Mickey_Console::Cmd_GotoRoom(int argc, const char **argv) {
return true;
}
-bool Mickey_Console::Cmd_DrawPic(int argc, const char **argv) {
+bool MickeyConsole::Cmd_DrawPic(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Picture number>\n", argv[0]);
else
@@ -309,7 +305,7 @@ bool Mickey_Console::Cmd_DrawPic(int argc, const char **argv) {
return true;
}
-bool Mickey_Console::Cmd_DrawObj(int argc, const char **argv) {
+bool MickeyConsole::Cmd_DrawObj(int argc, const char **argv) {
if (argc != 2)
DebugPrintf("Usage: %s <Object number>\n", argv[0]);
else
@@ -317,13 +313,13 @@ bool Mickey_Console::Cmd_DrawObj(int argc, const char **argv) {
return true;
}
-Winnie_Console::Winnie_Console(PreAgiEngine *vm, Winnie *winnie) : PreAGI_Console(vm) {
+WinnieConsole::WinnieConsole(WinnieEngine *winnie) : GUI::Debugger() {
_winnie = winnie;
- DCmd_Register("curRoom", WRAP_METHOD(Winnie_Console, Cmd_CurRoom));
+ DCmd_Register("curRoom", WRAP_METHOD(WinnieConsole, Cmd_CurRoom));
}
-bool Winnie_Console::Cmd_CurRoom(int argc, const char **argv) {
+bool WinnieConsole::Cmd_CurRoom(int argc, const char **argv) {
_winnie->debugCurRoom();
return true;
diff --git a/engines/agi/console.h b/engines/agi/console.h
index 308b0f1d1f..5f69460907 100644
--- a/engines/agi/console.h
+++ b/engines/agi/console.h
@@ -27,8 +27,8 @@ namespace Agi {
class AgiEngine;
class PreAgiEngine;
-class Winnie;
-class Mickey;
+class MickeyEngine;
+class WinnieEngine;
struct AgiDebug {
int enabled;
@@ -67,23 +67,13 @@ private:
AgiEngine *_vm;
};
-class PreAGI_Console : public GUI::Debugger {
+class MickeyConsole : public GUI::Debugger {
public:
- PreAGI_Console(PreAgiEngine *vm);
- virtual ~PreAGI_Console() {}
+ MickeyConsole(MickeyEngine *mickey);
+ virtual ~MickeyConsole() {}
private:
- PreAgiEngine *_vm;
-};
-
-
-class Mickey_Console : public PreAGI_Console {
-public:
- Mickey_Console(PreAgiEngine *vm, Mickey *mickey);
- virtual ~Mickey_Console() {}
-
-private:
- Mickey *_mickey;
+ MickeyEngine *_mickey;
bool Cmd_CurRoom(int argc, const char **argv);
bool Cmd_GotoRoom(int argc, const char **argv);
@@ -91,17 +81,17 @@ private:
bool Cmd_DrawObj(int argc, const char **argv);
};
-class Winnie_Console : public PreAGI_Console {
+class WinnieConsole : public GUI::Debugger {
public:
- Winnie_Console(PreAgiEngine *vm, Winnie *winnie);
- virtual ~Winnie_Console() {}
+ WinnieConsole(WinnieEngine *winnie);
+ virtual ~WinnieConsole() {}
private:
- Winnie *_winnie;
+ WinnieEngine *_winnie;
bool Cmd_CurRoom(int argc, const char **argv);
};
-} // End of namespace Agi
+} // End of namespace Agi
#endif /* AGI_CONSOLE_H */
diff --git a/engines/agi/cycle.cpp b/engines/agi/cycle.cpp
index d86fb36709..e6f122f9f6 100644
--- a/engines/agi/cycle.cpp
+++ b/engines/agi/cycle.cpp
@@ -47,8 +47,8 @@ void AgiEngine::newRoom(int n) {
i = 0;
for (v = _game.viewTable; v < &_game.viewTable[MAX_VIEWTABLE]; v++) {
v->entry = i++;
- v->flags &= ~(ANIMATED | DRAWN);
- v->flags |= UPDATE;
+ v->flags &= ~(fAnimated | fDrawn);
+ v->flags |= fUpdate;
v->stepTime = 1;
v->stepTimeCount = 1;
v->cycleTime = 1;
@@ -220,7 +220,7 @@ int AgiEngine::mainCycle() {
}
// Click-to-walk mouse interface
- if (_game.playerControl && v->flags & ADJ_EGO_XY) {
+ if (_game.playerControl && v->flags & fAdjEgoXY) {
int toX = v->parm1;
int toY = v->parm2;
diff --git a/engines/agi/detection.cpp b/engines/agi/detection.cpp
index a0736d0cc3..5141ab761f 100644
--- a/engines/agi/detection.cpp
+++ b/engines/agi/detection.cpp
@@ -28,6 +28,7 @@
#include "engines/advancedDetector.h"
#include "common/config-manager.h"
#include "common/file.h"
+#include "common/md5.h"
#include "common/savefile.h"
#include "common/textconsole.h"
#include "graphics/thumbnail.h"
@@ -35,6 +36,9 @@
#include "agi/agi.h"
#include "agi/preagi.h"
+#include "agi/preagi_mickey.h"
+#include "agi/preagi_troll.h"
+#include "agi/preagi_winnie.h"
#include "agi/wagparser.h"
@@ -93,6 +97,14 @@ void AgiBase::initVersion() {
_gameVersion = _gameDescription->version;
}
+const char *AgiBase::getDiskName(uint16 id) {
+ for (int i = 0; _gameDescription->desc.filesDescriptions[i].fileName != NULL; i++)
+ if (_gameDescription->desc.filesDescriptions[i].fileType == id)
+ return _gameDescription->desc.filesDescriptions[i].fileName;
+
+ return "";
+}
+
}
static const PlainGameDescriptor agiGames[] = {
@@ -182,8 +194,19 @@ bool AgiMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameD
switch (gd->gameType) {
case Agi::GType_PreAGI:
- *engine = new Agi::PreAgiEngine(syst, gd);
+ switch (gd->gameID) {
+ case GID_MICKEY:
+ *engine = new Agi::MickeyEngine(syst, gd);
+ break;
+ case GID_TROLL:
+ *engine = new Agi::TrollEngine(syst, gd);
+ break;
+ case GID_WINNIE:
+ *engine = new Agi::WinnieEngine(syst, gd);
+ break;
+ }
break;
+ case Agi::GType_V1:
case Agi::GType_V2:
case Agi::GType_V3:
*engine = new Agi::AgiEngine(syst, gd);
@@ -258,12 +281,7 @@ SaveStateDescriptor AgiMetaEngine::querySaveMetaInfos(const char *target, int sl
char saveVersion = in->readByte();
if (saveVersion >= 4) {
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*in, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*in);
desc.setThumbnail(thumbnail);
@@ -482,7 +500,9 @@ int AgiEngine::agiDetectGame() {
assert(_gameDescription != NULL);
- if (getVersion() <= 0x2999) {
+ if (getVersion() <= 0x2001) {
+ _loader = new AgiLoader_v1(this);
+ } else if (getVersion() <= 0x2999) {
_loader = new AgiLoader_v2(this);
} else {
_loader = new AgiLoader_v3(this);
diff --git a/engines/agi/detection_tables.h b/engines/agi/detection_tables.h
index cd3edf50c6..28e94075a6 100644
--- a/engines/agi/detection_tables.h
+++ b/engines/agi/detection_tables.h
@@ -37,7 +37,7 @@ using Common::GUIO_NONE;
gid, \
interp, \
features, \
- ver, \
+ ver \
}
#define GAME_LVFPNF(id,name,fname,md5,size,lang,ver,features,gid,platform,interp) { \
@@ -53,9 +53,10 @@ using Common::GUIO_NONE;
gid, \
interp, \
features, \
- ver, \
+ 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)
@@ -118,6 +119,69 @@ static const AGIGameDescription gameDescriptions[] = {
// AGI Demo for Kings Quest III and Space Quest I
GAME("agidemo", "Demo Kings Quest III and Space Quest I", "502e6bf96827b6c4d3e67c9cdccd1033", 0x2272, GID_AGIDEMO),
+ {
+ // Black Cauldron (PC 3.5" booter) 1.1J [AGI 1.12]
+ {
+ "bc",
+ "Booter 1.1J",
+ {
+ { "bc-d1.img", BooterDisk1, "1d29a82b41c9c7491e2b68d16864bd11", 368640},
+ { "bc-d2.img", BooterDisk2, "5568f7a52e787305656246f95e2aa375", 368640},
+ { NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ GUIO_NONE
+ },
+ GID_BC,
+ GType_V1,
+ 0,
+ 0x1120
+ },
+
+ {
+ // Black Cauldron (PC 3.5" booter) 1.1K [AGI 1.12]
+ {
+ "bc",
+ "Booter 1.1K",
+ {
+ { "bc-d1.img", BooterDisk1, "98a51d3a372baa9df288b6c0f0232567", 368640},
+ { "bc-d2.img", BooterDisk2, "5568f7a52e787305656246f95e2aa375", 368640},
+ { NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ GUIO_NONE
+ },
+ GID_BC,
+ GType_V1,
+ 0,
+ 0x1120
+ },
+
+ {
+ // Black Cauldron (PC 3.5" booter) 1.1M [AGI 1.12]
+ {
+ "bc",
+ "Booter 1.1M",
+ {
+ { "bc-d1.img", BooterDisk1, "edc0e5befbe5e44bb109cdf9137ee12d", 368640},
+ { "bc-d2.img", BooterDisk2, "5568f7a52e787305656246f95e2aa375", 368640},
+ { NULL, 0, NULL, 0}
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ GUIO_NONE
+ },
+ GID_BC,
+ GType_V1,
+ 0,
+ 0x1120
+ },
+
// Black Cauldron (Amiga) 2.00 6/14/87
GAME_P("bc", "2.00 1987-06-14", "7b01694af21213b4727bb94476f64eb5", 0x2440, GID_BC, Common::kPlatformAmiga),
@@ -143,9 +207,9 @@ static const AGIGameDescription gameDescriptions[] = {
// Black Cauldron (CoCo3 360k) [AGI 2.072]
GAME_PS("bc", "updated", "c4e1937f74e8100cd0152b904434d8b4", 357, 0x2440, GID_BC, Common::kPlatformCoCo3),
-// TODO
-// These aren't supposed to work now as they require unsupported agi engine 2.01
-#if 0
+ // Donald Duck's Playground (PC Booter) 1.0Q
+ BOOTER2("ddp", "Booter 1.0Q", "ddp.img", "f323f10abf8140ffb2668b09af2e7b87", 368640, 0x2001, GID_DDP),
+
// Donald Duck's Playground (Amiga) 1.0C
// Menus not tested
GAME_P("ddp", "1.0C 1987-04-27", "550971d196f65190a5c760d2479406ef", 0x2272, GID_DDP, Common::kPlatformAmiga),
@@ -157,7 +221,6 @@ 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),
-#endif
// 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),
@@ -196,7 +259,7 @@ static const AGIGameDescription gameDescriptions[] = {
GID_GOLDRUSH,
GType_V3,
GF_MACGOLDRUSH,
- 0x3149,
+ 0x3149
},
@@ -514,7 +577,7 @@ static const AGIGameDescription gameDescriptions[] = {
GID_SQ2,
GType_V2,
0,
- 0x2936,
+ 0x2936
},
@@ -659,7 +722,7 @@ static const AGIGameDescription gameDescriptions[] = {
GID_FANMADE,
GType_V2,
GF_AGDS,
- 0x2440,
+ 0x2440
},
{
@@ -676,7 +739,7 @@ static const AGIGameDescription gameDescriptions[] = {
GID_GETOUTTASQ,
GType_V2,
0,
- 0x2440,
+ 0x2440
},
FANMADE_F("Half-Death - Terror At White-Mesa", "b62c05d0ace878261392073f57ae788c", GF_AGIMOUSE),
@@ -831,7 +894,7 @@ static const AGIGameDescription gameDescriptions[] = {
GID_FANMADE,
GType_V3,
GF_FANMADE,
- 0x3149,
+ 0x3149
},
FANMADE_SVP("V - The Graphical Adventure", "1646eaade74f137a9041eb427a389969", 768, 0x2440, Common::kPlatformCoCo3),
@@ -859,7 +922,7 @@ static AGIGameDescription g_fallbackDesc = {
GID_FANMADE,
GType_V2,
GF_FANMADE,
- 0x2917,
+ 0x2917
};
} // End of namespace Agi
diff --git a/engines/agi/id.cpp b/engines/agi/id.cpp
index 00f8407529..dd370d4189 100644
--- a/engines/agi/id.cpp
+++ b/engines/agi/id.cpp
@@ -48,14 +48,17 @@ int AgiEngine::setupV2Game(int ver) {
// 'quit' takes 0 args for 2.089
if (ver == 0x2089)
- logicNamesCmd[0x86].numArgs = 0;
+// logicNamesCmd[0x86].numArgs = 0;
+ logicNamesCmd[0x86].args = "";
// 'print.at' and 'print.at.v' take 3 args before 2.272
// This is documented in the specs as only < 2.440, but it seems
// that KQ3 (2.272) needs a 'print.at' taking 4 args.
if (ver < 0x2272) {
- logicNamesCmd[0x97].numArgs = 3;
- logicNamesCmd[0x98].numArgs = 3;
+// logicNamesCmd[0x97].numArgs = 3;
+// logicNamesCmd[0x98].numArgs = 3;
+ logicNamesCmd[0x97].args = "vvv";
+ logicNamesCmd[0x98].args = "vvv";
}
return ec;
@@ -73,8 +76,10 @@ int AgiEngine::setupV3Game(int ver) {
// 'unknown173' also takes 1 arg for 3.002.068, not 0 args.
// Is this actually used anywhere? -- dsymonds
if (ver == 0x3086) {
- logicNamesCmd[0xb0].numArgs = 1;
- logicNamesCmd[0xad].numArgs = 1;
+// logicNamesCmd[0xb0].numArgs = 1;
+// logicNamesCmd[0xad].numArgs = 1;
+ logicNamesCmd[0xb0].args = "n";
+ logicNamesCmd[0xad].args = "n";
}
// FIXME: Apply this fix to other games also that use 2 arguments for command 182.
@@ -83,7 +88,8 @@ int AgiEngine::setupV3Game(int ver) {
// has been set to use AGI 3.149 in ScummVM so that's why this initialization is
// here and not in setupV2Game.
if (getGameID() == GID_GOLDRUSH && getPlatform() == Common::kPlatformAmiga)
- logicNamesCmd[182].numArgs = 2;
+// logicNamesCmd[182].numArgs = 2;
+ logicNamesCmd[182].args = "vv";
return ec;
}
diff --git a/engines/agi/keyboard.cpp b/engines/agi/keyboard.cpp
index f5810a6e8c..d899a6e202 100644
--- a/engines/agi/keyboard.cpp
+++ b/engines/agi/keyboard.cpp
@@ -180,7 +180,7 @@ int AgiEngine::handleController(int key) {
if (!(getFeatures() & GF_AGIMOUSE)) {
// Handle mouse button events
if (key == BUTTON_LEFT) {
- v->flags |= ADJ_EGO_XY;
+ v->flags |= fAdjEgoXY;
v->parm1 = WIN_TO_PIC_X(_mouse.x);
v->parm2 = WIN_TO_PIC_Y(_mouse.y);
return true;
@@ -188,7 +188,7 @@ int AgiEngine::handleController(int key) {
}
if (d || key == KEY_STATIONARY) {
- v->flags &= ~ADJ_EGO_XY;
+ v->flags &= ~fAdjEgoXY;
v->direction = v->direction == d ? 0 : d;
return true;
}
diff --git a/engines/agi/loader_v1.cpp b/engines/agi/loader_v1.cpp
new file mode 100644
index 0000000000..c6a3e66705
--- /dev/null
+++ b/engines/agi/loader_v1.cpp
@@ -0,0 +1,329 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "agi/agi.h"
+#include "common/md5.h"
+
+#define IMAGE_SIZE 368640 // = 40 * 2 * 9 * 512 = tracks * sides * sectors * sector size
+#define SECTOR_OFFSET(s) ((s) * 512)
+
+#define DDP_BASE_SECTOR 0x1C2
+#define DDP_LOGDIR_SEC SECTOR_OFFSET(171) + 5
+#define DDP_LOGDIR_MAX 43
+#define DDP_PICDIR_SEC SECTOR_OFFSET(180) + 5
+#define DDP_PICDIR_MAX 30
+#define DDP_VIEWDIR_SEC SECTOR_OFFSET(189) + 5
+#define DDP_VIEWDIR_MAX 171
+#define DDP_SNDDIR_SEC SECTOR_OFFSET(198) + 5
+#define DDP_SNDDIR_MAX 64
+
+#define BC_LOGDIR_SEC SECTOR_OFFSET(90) + 5
+#define BC_LOGDIR_MAX 118
+#define BC_VIEWDIR_SEC SECTOR_OFFSET(96) + 5
+#define BC_VIEWDIR_MAX 180
+#define BC_PICDIR_SEC SECTOR_OFFSET(93) + 8
+#define BC_PICDIR_MAX 117
+#define BC_SNDDIR_SEC SECTOR_OFFSET(99) + 5
+#define BC_SNDDIR_MAX 29
+#define BC_WORDS SECTOR_OFFSET(0x26D) + 5
+#define BC_OBJECTS SECTOR_OFFSET(0x1E6) + 3
+
+namespace Agi {
+
+
+AgiLoader_v1::AgiLoader_v1(AgiEngine *vm) {
+ _vm = vm;
+}
+
+int AgiLoader_v1::detectGame() {
+ // Find filenames for the disk images
+ _filenameDisk0 = _vm->getDiskName(BooterDisk1);
+ _filenameDisk1 = _vm->getDiskName(BooterDisk2);
+
+ return _vm->setupV2Game(_vm->getVersion());
+}
+
+int AgiLoader_v1::loadDir_DDP(AgiDir *agid, int offset, int max) {
+ Common::File fp;
+
+ if (!fp.open(_filenameDisk0))
+ return errBadFileOpen;
+
+ // Cleanup
+ for (int i = 0; i < MAX_DIRS; i++) {
+ agid[i].volume = 0xFF;
+ agid[i].offset = _EMPTY;
+ }
+
+ fp.seek(offset, SEEK_SET);
+ for (int i = 0; i <= max; i++) {
+ int b0 = fp.readByte();
+ int b1 = fp.readByte();
+ int b2 = fp.readByte();
+
+ if (b0 == 0xFF && b1 == 0xFF && b2 == 0xFF) {
+ agid[i].volume = 0xFF;
+ agid[i].offset = _EMPTY;
+ } else {
+ int sec = (DDP_BASE_SECTOR + (((b0 & 0xF) << 8) | b1)) >> 1;
+ int off = ((b1 & 0x1) << 8) | b2;
+ agid[i].volume = 0;
+ agid[i].offset = SECTOR_OFFSET(sec) + off;
+ }
+ }
+
+ fp.close();
+
+ return errOK;
+}
+
+int AgiLoader_v1::loadDir_BC(AgiDir *agid, int offset, int max) {
+ Common::File fp;
+
+ if (!fp.open(_filenameDisk0))
+ return errBadFileOpen;
+
+ // Cleanup
+ for (int i = 0; i < MAX_DIRS; i++) {
+ agid[i].volume = 0xFF;
+ agid[i].offset = _EMPTY;
+ }
+
+ fp.seek(offset, SEEK_SET);
+ for (int i = 0; i <= max; i++) {
+ int b0 = fp.readByte();
+ int b1 = fp.readByte();
+ int b2 = fp.readByte();
+
+ if (b0 == 0xFF && b1 == 0xFF && b2 == 0xFF) {
+ agid[i].volume = 0xFF;
+ agid[i].offset = _EMPTY;
+ } else {
+ int sec = (b0 & 0x3F) * 18 + ((b1 >> 1) & 0x1) * 9 + ((b1 >> 2) & 0x1F) - 1;
+ int off = ((b1 & 0x1) << 8) | b2;
+ int vol = (b0 & 0xC0) >> 6;
+ agid[i].volume = 0;
+ agid[i].offset = (vol == 2) * IMAGE_SIZE + SECTOR_OFFSET(sec) + off;
+ }
+ }
+
+ fp.close();
+
+ return errOK;
+}
+
+int AgiLoader_v1::init() {
+ int ec = errOK;
+
+ switch (_vm->getGameID()) {
+ case GID_DDP:
+ ec = loadDir_DDP(_vm->_game.dirLogic, DDP_LOGDIR_SEC, DDP_LOGDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_DDP(_vm->_game.dirPic, DDP_PICDIR_SEC, DDP_PICDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_DDP(_vm->_game.dirView, DDP_VIEWDIR_SEC, DDP_VIEWDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_DDP(_vm->_game.dirSound, DDP_SNDDIR_SEC, DDP_SNDDIR_MAX);
+ break;
+
+ case GID_BC:
+ ec = loadDir_BC(_vm->_game.dirLogic, BC_LOGDIR_SEC, BC_LOGDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_BC(_vm->_game.dirPic, BC_PICDIR_SEC, BC_PICDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_BC(_vm->_game.dirView, BC_VIEWDIR_SEC, BC_VIEWDIR_MAX);
+ if (ec == errOK)
+ ec = loadDir_BC(_vm->_game.dirSound, BC_SNDDIR_SEC, BC_SNDDIR_MAX);
+ break;
+ }
+
+ return ec;
+}
+
+int AgiLoader_v1::deinit() {
+ int ec = errOK;
+ return ec;
+}
+
+uint8 *AgiLoader_v1::loadVolRes(struct AgiDir *agid) {
+ uint8 *data = NULL;
+ Common::File fp;
+ int offset = agid->offset;
+
+ if (offset == _EMPTY)
+ return NULL;
+
+ if (offset > IMAGE_SIZE) {
+ fp.open(_filenameDisk1);
+ offset -= IMAGE_SIZE;
+ } else {
+ fp.open(_filenameDisk0);
+ }
+
+ fp.seek(offset, SEEK_SET);
+
+ int signature = fp.readUint16BE();
+ if (signature != 0x1234) {
+ warning("AgiLoader_v1::loadVolRes: bad signature %04x", signature);
+ return NULL;
+ }
+
+ fp.readByte();
+ agid->len = fp.readUint16LE();
+ data = (uint8 *)calloc(1, agid->len + 32);
+ fp.read(data, agid->len);
+
+ fp.close();
+
+ return data;
+}
+
+int AgiLoader_v1::loadResource(int t, int n) {
+ int ec = errOK;
+ uint8 *data = NULL;
+
+ debugC(3, kDebugLevelResources, "(t = %d, n = %d)", t, n);
+ if (n > MAX_DIRS)
+ return errBadResource;
+
+ switch (t) {
+ case rLOGIC:
+ if (~_vm->_game.dirLogic[n].flags & RES_LOADED) {
+ debugC(3, kDebugLevelResources, "loading logic resource %d", n);
+ unloadResource(rLOGIC, n);
+
+ // load raw resource into data
+ data = loadVolRes(&_vm->_game.dirLogic[n]);
+
+ _vm->_game.logics[n].data = data;
+ ec = data ? _vm->decodeLogic(n) : errBadResource;
+
+ _vm->_game.logics[n].sIP = 2;
+ }
+
+ // if logic was cached, we get here
+ // reset code pointers incase it was cached
+
+ _vm->_game.logics[n].cIP = _vm->_game.logics[n].sIP;
+ break;
+ case rPICTURE:
+ // if picture is currently NOT loaded *OR* cacheing is off,
+ // unload the resource (caching == off) and reload it
+
+ debugC(3, kDebugLevelResources, "loading picture resource %d", n);
+ if (_vm->_game.dirPic[n].flags & RES_LOADED)
+ break;
+
+ // if loaded but not cached, unload it
+ // if cached but not loaded, etc
+ unloadResource(rPICTURE, n);
+ data = loadVolRes(&_vm->_game.dirPic[n]);
+
+ if (data != NULL) {
+ _vm->_game.pictures[n].rdata = data;
+ _vm->_game.dirPic[n].flags |= RES_LOADED;
+ } else {
+ ec = errBadResource;
+ }
+ break;
+ case rSOUND:
+ debugC(3, kDebugLevelResources, "loading sound resource %d", n);
+ if (_vm->_game.dirSound[n].flags & RES_LOADED)
+ break;
+
+ 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.dirSound[n].flags |= RES_LOADED;
+ } else {
+ ec = errBadResource;
+ }
+ break;
+ case rVIEW:
+ // Load a VIEW resource into memory...
+ // Since VIEWS alter the view table ALL the time
+ // can we cache the view? or must we reload it all
+ // the time?
+ if (_vm->_game.dirView[n].flags & RES_LOADED)
+ break;
+
+ debugC(3, kDebugLevelResources, "loading view resource %d", n);
+ unloadResource(rVIEW, n);
+ data = loadVolRes(&_vm->_game.dirView[n]);
+ if (data) {
+ _vm->_game.views[n].rdata = data;
+ _vm->_game.dirView[n].flags |= RES_LOADED;
+ ec = _vm->decodeView(n);
+ } else {
+ ec = errBadResource;
+ }
+ break;
+ default:
+ ec = errBadResource;
+ break;
+ }
+
+ return ec;
+}
+
+int AgiLoader_v1::unloadResource(int t, int n) {
+ switch (t) {
+ case rLOGIC:
+ _vm->unloadLogic(n);
+ break;
+ case rPICTURE:
+ _vm->_picture->unloadPicture(n);
+ break;
+ case rVIEW:
+ _vm->unloadView(n);
+ break;
+ case rSOUND:
+ _vm->_sound->unloadSound(n);
+ break;
+ }
+
+ return errOK;
+}
+
+int AgiLoader_v1::loadObjects(const char *fname) {
+ if (_vm->getGameID() == GID_BC) {
+ Common::File f;
+ f.open(_filenameDisk0);
+ f.seek(BC_OBJECTS, SEEK_SET);
+ return _vm->loadObjects(f);
+ }
+ return errOK;
+}
+
+int AgiLoader_v1::loadWords(const char *fname) {
+ if (_vm->getGameID() == GID_BC) {
+ Common::File f;
+ f.open(_filenameDisk0);
+ f.seek(BC_WORDS, SEEK_SET);
+ return _vm->loadWords_v1(f);
+ }
+ return errOK;
+}
+
+}
diff --git a/engines/agi/module.mk b/engines/agi/module.mk
index 2339d1019f..68d86f7b2e 100644
--- a/engines/agi/module.mk
+++ b/engines/agi/module.mk
@@ -11,6 +11,7 @@ MODULE_OBJS := \
id.o \
inv.o \
keyboard.o \
+ loader_v1.o \
loader_v2.o \
loader_v3.o \
logic.o \
@@ -18,12 +19,12 @@ MODULE_OBJS := \
menu.o \
motion.o \
objects.o \
+ opcodes.o \
op_cmd.o \
op_dbg.o \
op_test.o \
picture.o \
preagi.o \
- preagi_common.o \
preagi_mickey.o \
preagi_troll.o \
preagi_winnie.o \
diff --git a/engines/agi/motion.cpp b/engines/agi/motion.cpp
index 261a7f3e61..e4de232267 100644
--- a/engines/agi/motion.cpp
+++ b/engines/agi/motion.cpp
@@ -52,9 +52,9 @@ void AgiEngine::changePos(VtEntry *v) {
y += v->stepSize * dy[v->direction];
if (checkBlock(x, y) == b) {
- v->flags &= ~MOTION;
+ v->flags &= ~fMotion;
} else {
- v->flags |= MOTION;
+ v->flags |= fMotion;
v->direction = 0;
if (isEgoView(v))
_game.vars[vEgoDir] = 0;
@@ -63,7 +63,7 @@ void AgiEngine::changePos(VtEntry *v) {
void AgiEngine::motionWander(VtEntry *v) {
if (v->parm1--) {
- if (~v->flags & DIDNT_MOVE)
+ if (~v->flags & fDidntMove)
return;
}
@@ -94,14 +94,14 @@ void AgiEngine::motionFollowEgo(VtEntry *v) {
// Already at ego coordinates
if (dir == 0) {
v->direction = 0;
- v->motion = MOTION_NORMAL;
+ v->motion = kMotionNormal;
setflag(v->parm2, true);
return;
}
if (v->parm3 == 0xff) {
v->parm3 = 0;
- } else if (v->flags & DIDNT_MOVE) {
+ } else if (v->flags & fDidntMove) {
int d;
while ((v->direction = _rnd->getRandomNumber(8)) == 0) {
@@ -152,18 +152,20 @@ void AgiEngine::motionMoveObj(VtEntry *v) {
void AgiEngine::checkMotion(VtEntry *v) {
switch (v->motion) {
- case MOTION_WANDER:
+ case kMotionNormal:
+ break;
+ case kMotionWander:
motionWander(v);
break;
- case MOTION_FOLLOW_EGO:
+ case kMotionFollowEgo:
motionFollowEgo(v);
break;
- case MOTION_MOVE_OBJ:
+ case kMotionMoveObj:
motionMoveObj(v);
break;
}
- if ((_game.block.active && (~v->flags & IGNORE_BLOCKS)) && v->direction)
+ if ((_game.block.active && (~v->flags & fIgnoreBlocks)) && v->direction)
changePos(v);
}
@@ -178,7 +180,7 @@ void AgiEngine::checkAllMotions() {
VtEntry *v;
for (v = _game.viewTable; v < &_game.viewTable[MAX_VIEWTABLE]; v++) {
- if ((v->flags & (ANIMATED | UPDATE | DRAWN)) == (ANIMATED | UPDATE | DRAWN)
+ if ((v->flags & (fAnimated | fUpdate | fDrawn)) == (fAnimated | fUpdate | fDrawn)
&& v->stepTimeCount == 1) {
checkMotion(v);
}
@@ -192,11 +194,11 @@ void AgiEngine::checkAllMotions() {
* @param v Pointer to view table entry
*/
void AgiEngine::inDestination(VtEntry *v) {
- if (v->motion == MOTION_MOVE_OBJ) {
+ if (v->motion == kMotionMoveObj) {
v->stepSize = v->parm3;
setflag(v->parm4, true);
}
- v->motion = MOTION_NORMAL;
+ v->motion = kMotionNormal;
if (isEgoView(v))
_game.playerControl = true;
}
@@ -204,7 +206,7 @@ void AgiEngine::inDestination(VtEntry *v) {
/**
* Wrapper for static function motion_moveobj().
* This function is used by cmd_move_object() in the first motion cycle
- * after setting the motion mode to MOTION_MOVE_OBJ.
+ * after setting the motion mode to kMotionMoveObj.
* @param v Pointer to view table entry
*/
void AgiEngine::moveObj(VtEntry *v) {
diff --git a/engines/agi/objects.cpp b/engines/agi/objects.cpp
index e04c9742f3..efc8645287 100644
--- a/engines/agi/objects.cpp
+++ b/engines/agi/objects.cpp
@@ -34,7 +34,7 @@ int AgiEngine::allocObjects(int n) {
}
int AgiEngine::decodeObjects(uint8 *mem, uint32 flen) {
- unsigned int i, so, padsize;
+ unsigned int i, so, padsize, spos;
padsize = _game.gameFlags & ID_AMIGA ? 4 : 3;
@@ -64,11 +64,12 @@ int AgiEngine::decodeObjects(uint8 *mem, uint32 flen) {
return errNotEnoughMemory;
// build the object list
- for (i = 0, so = padsize; i < _game.numObjects; i++, so += padsize) {
+ spos = getVersion() >= 0x2000 ? padsize : 0;
+ for (i = 0, so = spos; i < _game.numObjects; i++, so += padsize) {
int offset;
(_objects + i)->location = *(mem + so + 2);
- offset = READ_LE_UINT16(mem + so) + padsize;
+ offset = READ_LE_UINT16(mem + so) + spos;
if ((uint) offset < flen) {
(_objects + i)->name = (char *)strdup((const char *)mem + offset);
@@ -84,20 +85,33 @@ int AgiEngine::decodeObjects(uint8 *mem, uint32 flen) {
int AgiEngine::loadObjects(const char *fname) {
Common::File fp;
- uint32 flen;
- uint8 *mem;
-
- _objects = NULL;
- _game.numObjects = 0;
debugC(5, kDebugLevelResources, "(Loading objects '%s')", fname);
if (!fp.open(fname))
return errBadFileOpen;
- fp.seek(0, SEEK_END);
- flen = fp.pos();
- fp.seek(0, SEEK_SET);
+ return readObjects(fp, fp.size());
+}
+
+/**
+ * Loads an object file that is in the common VOL resource format. Expects
+ * the file pointer to point to the last field in header, ie. file length.
+ * This is used at least by the V1 booter games.
+ */
+int AgiEngine::loadObjects(Common::File &fp) {
+ int flen = fp.readUint16LE();
+ return readObjects(fp, flen);
+}
+
+/**
+ * Read and decode objects, and store them in the internal structure.
+ *
+ * @param fp File pointer
+ * @param flen File length
+ */
+int AgiEngine::readObjects(Common::File &fp, int flen) {
+ uint8 *mem;
if ((mem = (uint8 *)calloc(1, flen + 32)) == NULL) {
fp.close();
diff --git a/engines/agi/op_cmd.cpp b/engines/agi/op_cmd.cpp
index bde62fe2d9..17addc0c05 100644
--- a/engines/agi/op_cmd.cpp
+++ b/engines/agi/op_cmd.cpp
@@ -41,23 +41,36 @@ namespace Agi {
#define p5 (p[5])
#define p6 (p[6])
-#define ip _curLogic->cIP
-#define vt _game.viewTable[p0]
-#define vt_v _game.viewTable[_game.vars[p0]]
-
-#define _v _game.vars
-
-void AgiEngine::cmd_increment(uint8 *p) {
- if (_v[p0] != 0xff)
- ++_v[p0];
+#define code state->_curLogic->data
+#define ip state->_curLogic->cIP
+#define vt state->viewTable[p0]
+#define vt_v state->viewTable[state->vars[p0]]
+
+#define _v state->vars
+
+#define getGameID() state->_vm->getGameID()
+#define getFeatures() state->_vm->getFeatures()
+#define getVersion() state->_vm->getVersion()
+#define getLanguage() state->_vm->getLanguage()
+#define setflag(a,b) state->_vm->setflag(a,b)
+#define getflag(a) state->_vm->getflag(a)
+
+void cmdIncrement(AgiGame *state, uint8 *p) {
+ if (getVersion() < 0x2000) {
+ if (_v[p0] < 0xf0)
+ ++_v[p0];
+ } else {
+ if (_v[p0] != 0xff)
+ ++_v[p0];
+ }
}
-void AgiEngine::cmd_decrement(uint8 *p) {
+void cmdDecrement(AgiGame *state, uint8 *p) {
if (_v[p0] != 0)
--_v[p0];
}
-void AgiEngine::cmd_assignn(uint8 *p) {
+void cmdAssignN(AgiGame *state, uint8 *p) {
_v[p0] = p1;
// WORKAROUND for a bug in fan _game "Get outta SQ"
@@ -71,84 +84,100 @@ void AgiEngine::cmd_assignn(uint8 *p) {
_v[p0] = 8;
}
-void AgiEngine::cmd_addn(uint8 *p) {
+void cmdAddN(AgiGame *state, uint8 *p) {
_v[p0] += p1;
}
-void AgiEngine::cmd_subn(uint8 *p) {
+void cmdSubN(AgiGame *state, uint8 *p) {
_v[p0] -= p1;
}
-void AgiEngine::cmd_assignv(uint8 *p) {
+void cmdAssignV(AgiGame *state, uint8 *p) {
_v[p0] = _v[p1];
}
-void AgiEngine::cmd_addv(uint8 *p) {
+void cmdAddV(AgiGame *state, uint8 *p) {
_v[p0] += _v[p1];
}
-void AgiEngine::cmd_subv(uint8 *p) {
+void cmdSubV(AgiGame *state, uint8 *p) {
_v[p0] -= _v[p1];
}
-void AgiEngine::cmd_mul_n(uint8 *p) {
+void cmdMulN(AgiGame *state, uint8 *p) {
_v[p0] *= p1;
}
-void AgiEngine::cmd_mul_v(uint8 *p) {
+void cmdMulV(AgiGame *state, uint8 *p) {
_v[p0] *= _v[p1];
}
-void AgiEngine::cmd_div_n(uint8 *p) {
+void cmdDivN(AgiGame *state, uint8 *p) {
_v[p0] /= p1;
}
-void AgiEngine::cmd_div_v(uint8 *p) {
+void cmdDivV(AgiGame *state, uint8 *p) {
_v[p0] /= _v[p1];
}
-void AgiEngine::cmd_random(uint8 *p) {
- _v[p2] = _rnd->getRandomNumber(p1 - p0) + p0;
+void cmdRandomV1(AgiGame *state, uint8 *p) {
+ _v[p0] = state->_vm->_rnd->getRandomNumber(250);
+}
+
+void cmdRandom(AgiGame *state, uint8 *p) {
+ _v[p2] = state->_vm->_rnd->getRandomNumber(p1 - p0) + p0;
}
-void AgiEngine::cmd_lindirectn(uint8 *p) {
+void cmdLindirectN(AgiGame *state, uint8 *p) {
_v[_v[p0]] = p1;
}
-void AgiEngine::cmd_lindirectv(uint8 *p) {
+void cmdLindirectV(AgiGame *state, uint8 *p) {
_v[_v[p0]] = _v[p1];
}
-void AgiEngine::cmd_rindirect(uint8 *p) {
+void cmdRindirect(AgiGame *state, uint8 *p) {
_v[p0] = _v[_v[p1]];
}
-void AgiEngine::cmd_set(uint8 *p) {
+void cmdSet(AgiGame *state, uint8 *p) {
setflag(*p, true);
}
-void AgiEngine::cmd_reset(uint8 *p) {
+void cmdReset(AgiGame *state, uint8 *p) {
setflag(*p, false);
}
-void AgiEngine::cmd_toggle(uint8 *p) {
+void cmdToggle(AgiGame *state, uint8 *p) {
setflag(*p, !getflag(*p));
}
-void AgiEngine::cmd_set_v(uint8 *p) {
- setflag(_v[p0], true);
+void cmdSetV(AgiGame *state, uint8 *p) {
+ if (getVersion() < 0x2000) {
+ _v[p0] = 1;
+ } else {
+ setflag(_v[p0], true);
+ }
}
-void AgiEngine::cmd_reset_v(uint8 *p) {
- setflag(_v[p0], false);
+void cmdResetV(AgiGame *state, uint8 *p) {
+ if (getVersion() < 0x2000) {
+ _v[p0] = 0;
+ } else {
+ setflag(_v[p0], false);
+ }
}
-void AgiEngine::cmd_toggle_v(uint8 *p) {
- setflag(_v[p0], !getflag(_v[p0]));
+void cmdToggleV(AgiGame *state, uint8 *p) {
+ if (getVersion() < 0x2000) {
+ _v[p0] ^= 1;
+ } else {
+ setflag(_v[p0], !getflag(_v[p0]));
+ }
}
-void AgiEngine::cmd_new_room(uint8 *p) {
- newRoom(p0);
+void cmdNewRoom(AgiGame *state, uint8 *p) {
+ state->_vm->newRoom(p0);
// WORKAROUND: Works around intro skipping bug (#1737343) in Gold Rush.
// Intro was skipped because the enter-keypress finalizing the entering
@@ -160,83 +189,83 @@ void AgiEngine::cmd_new_room(uint8 *p) {
// loaded so that no keys from the copy protection scene can be left
// over to cause the intro to skip to the _game's start.
if (getGameID() == GID_GOLDRUSH && p0 == 73)
- _game.keypress = 0;
+ state->keypress = 0;
}
-void AgiEngine::cmd_new_room_f(uint8 *p) {
- newRoom(_v[p0]);
+void cmdNewRoomF(AgiGame *state, uint8 *p) {
+ state->_vm->newRoom(_v[p0]);
}
-void AgiEngine::cmd_load_view(uint8 *p) {
- agiLoadResource(rVIEW, p0);
+void cmdLoadView(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rVIEW, p0);
}
-void AgiEngine::cmd_load_logic(uint8 *p) {
- agiLoadResource(rLOGIC, p0);
+void cmdLoadLogic(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rLOGIC, p0);
}
-void AgiEngine::cmd_load_sound(uint8 *p) {
- agiLoadResource(rSOUND, p0);
+void cmdLoadSound(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rSOUND, p0);
}
-void AgiEngine::cmd_load_view_f(uint8 *p) {
- agiLoadResource(rVIEW, _v[p0]);
+void cmdLoadViewF(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rVIEW, _v[p0]);
}
-void AgiEngine::cmd_load_logic_f(uint8 *p) {
- agiLoadResource(rLOGIC, _v[p0]);
+void cmdLoadLogicF(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rLOGIC, _v[p0]);
}
-void AgiEngine::cmd_discard_view(uint8 *p) {
- agiUnloadResource(rVIEW, p0);
+void cmdDiscardView(AgiGame *state, uint8 *p) {
+ state->_vm->agiUnloadResource(rVIEW, p0);
}
-void AgiEngine::cmd_object_on_anything(uint8 *p) {
- vt.flags &= ~(ON_WATER | ON_LAND);
+void cmdObjectOnAnything(AgiGame *state, uint8 *p) {
+ vt.flags &= ~(fOnWater | fOnLand);
}
-void AgiEngine::cmd_object_on_land(uint8 *p) {
- vt.flags |= ON_LAND;
+void cmdObjectOnLand(AgiGame *state, uint8 *p) {
+ vt.flags |= fOnLand;
}
-void AgiEngine::cmd_object_on_water(uint8 *p) {
- vt.flags |= ON_WATER;
+void cmdObjectOnWater(AgiGame *state, uint8 *p) {
+ vt.flags |= fOnWater;
}
-void AgiEngine::cmd_observe_horizon(uint8 *p) {
- vt.flags &= ~IGNORE_HORIZON;
+void cmdObserveHorizon(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fIgnoreHorizon;
}
-void AgiEngine::cmd_ignore_horizon(uint8 *p) {
- vt.flags |= IGNORE_HORIZON;
+void cmdIgnoreHorizon(AgiGame *state, uint8 *p) {
+ vt.flags |= fIgnoreHorizon;
}
-void AgiEngine::cmd_observe_objs(uint8 *p) {
- vt.flags &= ~IGNORE_OBJECTS;
+void cmdObserveObjs(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fIgnoreObjects;
}
-void AgiEngine::cmd_ignore_objs(uint8 *p) {
- vt.flags |= IGNORE_OBJECTS;
+void cmdIgnoreObjs(AgiGame *state, uint8 *p) {
+ vt.flags |= fIgnoreObjects;
}
-void AgiEngine::cmd_observe_blocks(uint8 *p) {
- vt.flags &= ~IGNORE_BLOCKS;
+void cmdObserveBlocks(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fIgnoreBlocks;
}
-void AgiEngine::cmd_ignore_blocks(uint8 *p) {
- vt.flags |= IGNORE_BLOCKS;
+void cmdIgnoreBlocks(AgiGame *state, uint8 *p) {
+ vt.flags |= fIgnoreBlocks;
}
-void AgiEngine::cmd_set_horizon(uint8 *p) {
- _game.horizon = p0;
+void cmdSetHorizon(AgiGame *state, uint8 *p) {
+ state->horizon = p0;
}
-void AgiEngine::cmd_get_priority(uint8 *p) {
+void cmdGetPriority(AgiGame *state, uint8 *p) {
_v[p1] = vt.priority;
}
-void AgiEngine::cmd_set_priority(uint8 *p) {
- vt.flags |= FIXED_PRIORITY;
+void cmdSetPriority(AgiGame *state, uint8 *p) {
+ vt.flags |= fFixedPriority;
vt.priority = p1;
// WORKAROUND: this fixes bug #1712585 in KQ4 (dwarf sprite priority)
@@ -253,250 +282,257 @@ void AgiEngine::cmd_set_priority(uint8 *p) {
// Therefore, this workaround only affects that specific part of this scene
// Ego is set to object 19 by script 54
if (getGameID() == GID_KQ4 && vt.currentView == 152) {
- _game.viewTable[19].flags |= FIXED_PRIORITY;
- _game.viewTable[19].priority = 7;
+ state->viewTable[19].flags |= fFixedPriority;
+ state->viewTable[19].priority = 7;
}
}
-void AgiEngine::cmd_set_priority_f(uint8 *p) {
- vt.flags |= FIXED_PRIORITY;
+void cmdSetPriorityF(AgiGame *state, uint8 *p) {
+ vt.flags |= fFixedPriority;
vt.priority = _v[p1];
}
-void AgiEngine::cmd_release_priority(uint8 *p) {
- vt.flags &= ~FIXED_PRIORITY;
+void cmdReleasePriority(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fFixedPriority;
}
-void AgiEngine::cmd_set_upper_left(uint8 *p) { // do nothing (AGI 2.917)
+void cmdSetUpperLeft(AgiGame *state, uint8 *p) { // do nothing (AGI 2.917)
}
-void AgiEngine::cmd_start_update(uint8 *p) {
- startUpdate(&vt);
+void cmdStartUpdate(AgiGame *state, uint8 *p) {
+ state->_vm->startUpdate(&vt);
}
-void AgiEngine::cmd_stop_update(uint8 *p) {
- stopUpdate(&vt);
+void cmdStopUpdate(AgiGame *state, uint8 *p) {
+ state->_vm->stopUpdate(&vt);
}
-void AgiEngine::cmd_current_view(uint8 *p) {
+void cmdCurrentView(AgiGame *state, uint8 *p) {
_v[p1] = vt.currentView;
}
-void AgiEngine::cmd_current_cel(uint8 *p) {
+void cmdCurrentCel(AgiGame *state, uint8 *p) {
_v[p1] = vt.currentCel;
debugC(4, kDebugLevelScripts, "v%d=%d", p1, _v[p1]);
}
-void AgiEngine::cmd_current_loop(uint8 *p) {
+void cmdCurrentLoop(AgiGame *state, uint8 *p) {
_v[p1] = vt.currentLoop;
}
-void AgiEngine::cmd_last_cel(uint8 *p) {
+void cmdLastCel(AgiGame *state, uint8 *p) {
_v[p1] = vt.loopData->numCels - 1;
}
-void AgiEngine::cmd_set_cel(uint8 *p) {
- setCel(&vt, p1);
- vt.flags &= ~DONTUPDATE;
+void cmdSetCel(AgiGame *state, uint8 *p) {
+ state->_vm->setCel(&vt, p1);
+
+ if (getVersion() >= 0x2000) {
+ vt.flags &= ~fDontupdate;
+ }
}
-void AgiEngine::cmd_set_cel_f(uint8 *p) {
- setCel(&vt, _v[p1]);
- vt.flags &= ~DONTUPDATE;
+void cmdSetCelF(AgiGame *state, uint8 *p) {
+ state->_vm->setCel(&vt, _v[p1]);
+ vt.flags &= ~fDontupdate;
}
-void AgiEngine::cmd_set_view(uint8 *p) {
- setView(&vt, p1);
+void cmdSetView(AgiGame *state, uint8 *p) {
+ state->_vm->setView(&vt, p1);
}
-void AgiEngine::cmd_set_view_f(uint8 *p) {
- setView(&vt, _v[p1]);
+void cmdSetViewF(AgiGame *state, uint8 *p) {
+ state->_vm->setView(&vt, _v[p1]);
}
-void AgiEngine::cmd_set_loop(uint8 *p) {
- setLoop(&vt, p1);
+void cmdSetLoop(AgiGame *state, uint8 *p) {
+ state->_vm->setLoop(&vt, p1);
}
-void AgiEngine::cmd_set_loop_f(uint8 *p) {
- setLoop(&vt, _v[p1]);
+void cmdSetLoopF(AgiGame *state, uint8 *p) {
+ state->_vm->setLoop(&vt, _v[p1]);
}
-void AgiEngine::cmd_number_of_loops(uint8 *p) {
+void cmdNumberOfLoops(AgiGame *state, uint8 *p) {
_v[p1] = vt.numLoops;
}
-void AgiEngine::cmd_fix_loop(uint8 *p) {
- vt.flags |= FIX_LOOP;
+void cmdFixLoop(AgiGame *state, uint8 *p) {
+ vt.flags |= fFixLoop;
}
-void AgiEngine::cmd_release_loop(uint8 *p) {
- vt.flags &= ~FIX_LOOP;
+void cmdReleaseLoop(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fFixLoop;
}
-void AgiEngine::cmd_step_size(uint8 *p) {
+void cmdStepSize(AgiGame *state, uint8 *p) {
vt.stepSize = _v[p1];
}
-void AgiEngine::cmd_step_time(uint8 *p) {
+void cmdStepTime(AgiGame *state, uint8 *p) {
vt.stepTime = vt.stepTimeCount = _v[p1];
}
-void AgiEngine::cmd_cycle_time(uint8 *p) {
+void cmdCycleTime(AgiGame *state, uint8 *p) {
vt.cycleTime = vt.cycleTimeCount = _v[p1];
}
-void AgiEngine::cmd_stop_cycling(uint8 *p) {
- vt.flags &= ~CYCLING;
+void cmdStopCycling(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fCycling;
}
-void AgiEngine::cmd_start_cycling(uint8 *p) {
- vt.flags |= CYCLING;
+void cmdStartCycling(AgiGame *state, uint8 *p) {
+ vt.flags |= fCycling;
}
-void AgiEngine::cmd_normal_cycle(uint8 *p) {
- vt.cycle = CYCLE_NORMAL;
- vt.flags |= CYCLING;
+void cmdNormalCycle(AgiGame *state, uint8 *p) {
+ vt.cycle = kCycleNormal;
+ vt.flags |= fCycling;
}
-void AgiEngine::cmd_reverse_cycle(uint8 *p) {
- vt.cycle = CYCLE_REVERSE;
- vt.flags |= CYCLING;
+void cmdReverseCycle(AgiGame *state, uint8 *p) {
+ vt.cycle = kCycleReverse;
+ vt.flags |= fCycling;
}
-void AgiEngine::cmd_set_dir(uint8 *p) {
+void cmdSetDir(AgiGame *state, uint8 *p) {
vt.direction = _v[p1];
}
-void AgiEngine::cmd_get_dir(uint8 *p) {
+void cmdGetDir(AgiGame *state, uint8 *p) {
_v[p1] = vt.direction;
}
-void AgiEngine::cmd_get_room_f(uint8 *p) {
- _v[p1] = objectGetLocation(_v[p0]);
+void cmdGetRoomF(AgiGame *state, uint8 *p) {
+ _v[p1] = state->_vm->objectGetLocation(_v[p0]);
+}
+
+void cmdPut(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(p0, _v[p1]);
}
-void AgiEngine::cmd_put(uint8 *p) {
- objectSetLocation(p0, _v[p1]);
+void cmdPutF(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(_v[p0], _v[p1]);
}
-void AgiEngine::cmd_put_f(uint8 *p) {
- objectSetLocation(_v[p0], _v[p1]);
+void cmdDrop(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(p0, 0);
}
-void AgiEngine::cmd_drop(uint8 *p) {
- objectSetLocation(p0, 0);
+void cmdGet(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(p0, EGO_OWNED);
}
-void AgiEngine::cmd_get(uint8 *p) {
- objectSetLocation(p0, EGO_OWNED);
+void cmdGetV1(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(p0, EGO_OWNED_V1);
}
-void AgiEngine::cmd_get_f(uint8 *p) {
- objectSetLocation(_v[p0], EGO_OWNED);
+void cmdGetF(AgiGame *state, uint8 *p) {
+ state->_vm->objectSetLocation(_v[p0], EGO_OWNED);
}
-void AgiEngine::cmd_word_to_string(uint8 *p) {
- strcpy(_game.strings[p0], _game.egoWords[p1].word);
+void cmdWordToString(AgiGame *state, uint8 *p) {
+ strcpy(state->strings[p0], state->egoWords[p1].word);
}
-void AgiEngine::cmd_open_dialogue(uint8 *p) {
- _game.hasWindow = true;
+void cmdOpenDialogue(AgiGame *state, uint8 *p) {
+ state->hasWindow = true;
}
-void AgiEngine::cmd_close_dialogue(uint8 *p) {
- _game.hasWindow = false;
+void cmdCloseDialogue(AgiGame *state, uint8 *p) {
+ state->hasWindow = false;
}
-void AgiEngine::cmd_close_window(uint8 *p) {
- closeWindow();
+void cmdCloseWindow(AgiGame *state, uint8 *p) {
+ state->_vm->closeWindow();
}
-void AgiEngine::cmd_status_line_on(uint8 *p) {
- _game.statusLine = true;
- writeStatus();
+void cmdStatusLineOn(AgiGame *state, uint8 *p) {
+ state->statusLine = true;
+ state->_vm->writeStatus();
}
-void AgiEngine::cmd_status_line_off(uint8 *p) {
- _game.statusLine = false;
- writeStatus();
+void cmdStatusLineOff(AgiGame *state, uint8 *p) {
+ state->statusLine = false;
+ state->_vm->writeStatus();
}
-void AgiEngine::cmd_show_obj(uint8 *p) {
- _sprites->showObj(p0);
+void cmdShowObj(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->showObj(p0);
}
-void AgiEngine::cmd_show_obj_v(uint8 *p) {
- _sprites->showObj(_v[p0]);
+void cmdShowObjV(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->showObj(_v[p0]);
}
-void AgiEngine::cmd_sound(uint8 *p) {
- _sound->startSound(p0, p1);
+void cmdSound(AgiGame *state, uint8 *p) {
+ state->_vm->_sound->startSound(p0, p1);
}
-void AgiEngine::cmd_stop_sound(uint8 *p) {
- _sound->stopSound();
+void cmdStopSound(AgiGame *state, uint8 *p) {
+ state->_vm->_sound->stopSound();
}
-void AgiEngine::cmd_menu_input(uint8 *p) {
- newInputMode(INPUT_MENU);
+void cmdMenuInput(AgiGame *state, uint8 *p) {
+ state->_vm->newInputMode(INPUT_MENU);
}
-void AgiEngine::cmd_enable_item(uint8 *p) {
- _menu->setItem(p0, true);
+void cmdEnableItem(AgiGame *state, uint8 *p) {
+ state->_vm->_menu->setItem(p0, true);
}
-void AgiEngine::cmd_disable_item(uint8 *p) {
- _menu->setItem(p0, false);
+void cmdDisableItem(AgiGame *state, uint8 *p) {
+ state->_vm->_menu->setItem(p0, false);
}
-void AgiEngine::cmd_submit_menu(uint8 *p) {
- _menu->submit();
+void cmdSubmitMenu(AgiGame *state, uint8 *p) {
+ state->_vm->_menu->submit();
}
-void AgiEngine::cmd_set_scan_start(uint8 *p) {
- _curLogic->sIP = _curLogic->cIP;
+void cmdSetScanStart(AgiGame *state, uint8 *p) {
+ state->_curLogic->sIP = state->_curLogic->cIP;
}
-void AgiEngine::cmd_reset_scan_start(uint8 *p) {
- _curLogic->sIP = 2;
+void cmdResetScanStart(AgiGame *state, uint8 *p) {
+ state->_curLogic->sIP = 2;
}
-void AgiEngine::cmd_save_game(uint8 *p) {
- _game.simpleSave ? saveGameSimple() : saveGameDialog();
+void cmdSaveGame(AgiGame *state, uint8 *p) {
+ state->simpleSave ? state->_vm->saveGameSimple() : state->_vm->saveGameDialog();
}
-void AgiEngine::cmd_load_game(uint8 *p) {
+void cmdLoadGame(AgiGame *state, uint8 *p) {
assert(1);
- _game.simpleSave ? loadGameSimple() : loadGameDialog();
+ state->simpleSave ? state->_vm->loadGameSimple() : state->_vm->loadGameDialog();
}
-void AgiEngine::cmd_init_disk(uint8 *p) { // do nothing
+void cmdInitDisk(AgiGame *state, uint8 *p) { // do nothing
}
-void AgiEngine::cmd_log(uint8 *p) { // do nothing
+void cmdLog(AgiGame *state, uint8 *p) { // do nothing
}
-void AgiEngine::cmd_trace_on(uint8 *p) { // do nothing
+void cmdTraceOn(AgiGame *state, uint8 *p) { // do nothing
}
-void AgiEngine::cmd_trace_info(uint8 *p) { // do nothing
+void cmdTraceInfo(AgiGame *state, uint8 *p) { // do nothing
}
-void AgiEngine::cmd_show_mem(uint8 *p) {
- messageBox("Enough memory");
+void cmdShowMem(AgiGame *state, uint8 *p) {
+ state->_vm->messageBox("Enough memory");
}
-void AgiEngine::cmd_init_joy(uint8 *p) { // do nothing
+void cmdInitJoy(AgiGame *state, uint8 *p) { // do nothing
}
-void AgiEngine::cmd_script_size(uint8 *p) {
+void cmdScriptSize(AgiGame *state, uint8 *p) {
debug(0, "script.size(%d)", p0);
}
-void AgiEngine::cmd_cancel_line(uint8 *p) {
- _game.inputBuffer[0] = 0;
- _game.cursorPos = 0;
- writePrompt();
+void cmdCancelLine(AgiGame *state, uint8 *p) {
+ state->inputBuffer[0] = 0;
+ state->cursorPos = 0;
+ state->_vm->writePrompt();
}
// This implementation is based on observations of Amiga's Gold Rush.
@@ -509,23 +545,23 @@ void AgiEngine::cmd_cancel_line(uint8 *p) {
// 4051 (When ego is stationary),
// 471 (When walking on the first screen's bridge),
// 71 (When walking around, using the mouse or the keyboard).
-void AgiEngine::cmd_obj_status_f(uint8 *p) {
+void cmdObjStatusF(AgiGame *state, uint8 *p) {
const char *cycleDesc; // Object's cycle description line
const char *motionDesc; // Object's motion description line
char msg[256]; // The whole object status message
// Generate cycle description line
switch (vt_v.cycle) {
- case CYCLE_NORMAL:
+ case kCycleNormal:
cycleDesc = "normal cycle";
break;
- case CYCLE_END_OF_LOOP:
+ case kCycleEndOfLoop:
cycleDesc = "end of loop";
break;
- case CYCLE_REV_LOOP:
+ case kCycleRevLoop:
cycleDesc = "reverse loop";
break;
- case CYCLE_REVERSE:
+ case kCycleReverse:
cycleDesc = "reverse cycle";
break;
default:
@@ -535,16 +571,16 @@ void AgiEngine::cmd_obj_status_f(uint8 *p) {
// Generate motion description line
switch (vt_v.motion) {
- case MOTION_NORMAL:
+ case kMotionNormal:
motionDesc = "normal motion";
break;
- case MOTION_WANDER:
+ case kMotionWander:
motionDesc = "wandering";
break;
- case MOTION_FOLLOW_EGO:
+ case kMotionFollowEgo:
motionDesc = "following ego";
break;
- case MOTION_MOVE_OBJ:
+ case kMotionMoveObj:
// Amiga's Gold Rush! most probably uses "move to (x, y)"
// here with real values for x and y. The same output
// is used when moving the ego around using the mouse.
@@ -570,7 +606,7 @@ void AgiEngine::cmd_obj_status_f(uint8 *p) {
vt_v.stepSize,
cycleDesc,
motionDesc);
- messageBox(msg);
+ state->_vm->messageBox(msg);
}
// unknown commands:
@@ -581,49 +617,49 @@ void AgiEngine::cmd_obj_status_f(uint8 *p) {
// unk_174: Change priority table (used in KQ4) -- j5
// unk_177: Disable menus completely -- j5
// unk_181: Deactivate keypressed control (default control of ego)
-void AgiEngine::cmd_set_simple(uint8 *p) {
+void cmdSetSimple(AgiGame *state, uint8 *p) {
if (!(getFeatures() & (GF_AGI256 | GF_AGI256_2))) {
- _game.simpleSave = true;
+ state->simpleSave = true;
} else { // AGI256 and AGI256-2 use this unknown170 command to load 256 color pictures.
- // Load the picture. Similar to void AgiEngine::cmd_load_pic(uint8 *p).
- _sprites->eraseBoth();
- agiLoadResource(rPICTURE, _v[p0]);
+ // Load the picture. Similar to void cmdLoad_pic(AgiGame *state, uint8 *p).
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->agiLoadResource(rPICTURE, _v[p0]);
- // Draw the picture. Similar to void AgiEngine::cmd_draw_pic(uint8 *p).
- _picture->decodePicture(_v[p0], false, true);
- _sprites->blitBoth();
- _game.pictureShown = 0;
+ // Draw the picture. Similar to void cmdDraw_pic(AgiGame *state, uint8 *p).
+ state->_vm->_picture->decodePicture(_v[p0], false, true);
+ state->_vm->_sprites->blitBoth();
+ state->pictureShown = 0;
- // Show the picture. Similar to void AgiEngine::cmd_show_pic(uint8 *p).
+ // Show the picture. Similar to void cmdShow_pic(AgiGame *state, uint8 *p).
setflag(fOutputMode, false);
- closeWindow();
- _picture->showPic();
- _game.pictureShown = 1;
+ state->_vm->closeWindow();
+ state->_vm->_picture->showPic();
+ state->pictureShown = 1;
// Simulate slowww computer. Many effects rely on this
- pause(kPausePicture);
+ state->_vm->pause(kPausePicture);
}
}
-void AgiEngine::cmd_pop_script(uint8 *p) {
+void cmdPopScript(AgiGame *state, uint8 *p) {
if (getVersion() >= 0x2915) {
debug(0, "pop.script");
}
}
-void AgiEngine::cmd_hold_key(uint8 *p) {
+void cmdHoldKey(AgiGame *state, uint8 *p) {
if (getVersion() >= 0x3098) {
- _egoHoldKey = true;
+ state->_vm->_egoHoldKey = true;
}
}
-void AgiEngine::cmd_discard_sound(uint8 *p) {
+void cmdDiscardSound(AgiGame *state, uint8 *p) {
if (getVersion() >= 0x2936) {
debug(0, "discard.sound");
}
}
-void AgiEngine::cmd_hide_mouse(uint8 *p) {
+void cmdHideMouse(AgiGame *state, uint8 *p) {
// WORKAROUND: Turns off current movement that's being caused with the mouse.
// This fixes problems with too many popup boxes appearing in the Amiga
// Gold Rush's copy protection failure scene (i.e. the hanging scene, logic.192).
@@ -631,37 +667,37 @@ void AgiEngine::cmd_hide_mouse(uint8 *p) {
// to walk somewhere else than to the right using the mouse.
// FIXME: Write a proper implementation using disassembly and
// apply it to other games as well if applicable.
- _game.viewTable[0].flags &= ~ADJ_EGO_XY;
+ state->viewTable[0].flags &= ~fAdjEgoXY;
g_system->showMouse(false);
}
-void AgiEngine::cmd_allow_menu(uint8 *p) {
+void cmdAllowMenu(AgiGame *state, uint8 *p) {
if (getVersion() >= 0x3098) {
setflag(fMenusWork, ((p0 != 0) ? true : false));
}
}
-void AgiEngine::cmd_show_mouse(uint8 *p) {
+void cmdShowMouse(AgiGame *state, uint8 *p) {
g_system->showMouse(true);
}
-void AgiEngine::cmd_fence_mouse(uint8 *p) {
- _game.mouseFence.moveTo(p0, p1);
- _game.mouseFence.setWidth(p2 - p0);
- _game.mouseFence.setHeight(p3 - p1);
+void cmdFenceMouse(AgiGame *state, uint8 *p) {
+ state->mouseFence.moveTo(p0, p1);
+ state->mouseFence.setWidth(p2 - p0);
+ state->mouseFence.setHeight(p3 - p1);
}
-void AgiEngine::cmd_release_key(uint8 *p) {
+void cmdReleaseKey(AgiGame *state, uint8 *p) {
if (getVersion() >= 0x3098) {
- _egoHoldKey = false;
+ state->_vm->_egoHoldKey = false;
}
}
-void AgiEngine::cmd_adj_ego_move_to_x_y(uint8 *p) {
+void cmdAdjEgoMoveToXY(AgiGame *state, uint8 *p) {
int8 x, y;
- switch (logicNamesCmd[182].numArgs) {
+ switch (logicNamesCmd[182].argumentsLength()) {
// The 2 arguments version is used at least in Amiga Gold Rush!
// (v2.05 1989-03-09, Amiga AGI 2.316) in logics 130 and 150
// (Using arguments (0, 0), (0, 7), (0, 8), (9, 9) and (-9, 9)).
@@ -680,57 +716,67 @@ void AgiEngine::cmd_adj_ego_move_to_x_y(uint8 *p) {
// onto the ladder so this is more like it (Although that may be caused
// by something else because this command doesn't do any flag manipulations
// in the Amiga version - checked it with disassembly).
- if (x != _game.adjMouseX || y != _game.adjMouseY)
- _game.viewTable[EGO_VIEW_TABLE].flags &= ~ADJ_EGO_XY;
+ if (x != state->adjMouseX || y != state->adjMouseY)
+ state->viewTable[EGO_VIEW_TABLE].flags &= ~fAdjEgoXY;
- _game.adjMouseX = x;
- _game.adjMouseY = y;
+ state->adjMouseX = x;
+ state->adjMouseY = y;
debugC(4, kDebugLevelScripts, "adj.ego.move.to.x.y(%d, %d)", x, y);
break;
// TODO: Check where (if anywhere) the 0 arguments version is used
case 0:
default:
- _game.viewTable[0].flags |= ADJ_EGO_XY;
+ state->viewTable[0].flags |= fAdjEgoXY;
break;
}
}
-void AgiEngine::cmd_parse(uint8 *p) {
+void cmdParse(AgiGame *state, uint8 *p) {
_v[vWordNotFound] = 0;
setflag(fEnteredCli, false);
setflag(fSaidAcceptedInput, false);
- dictionaryWords(agiSprintf(_game.strings[p0]));
+ state->_vm->dictionaryWords(state->_vm->agiSprintf(state->strings[p0]));
}
-void AgiEngine::cmd_call(uint8 *p) {
+void cmdCall(AgiGame *state, uint8 *p) {
int oldCIP;
int oldLognum;
// CM: we don't save sIP because set.scan.start can be
// used in a called script (fixes xmas demo)
- oldCIP = _curLogic->cIP;
- oldLognum = _game.lognum;
+ oldCIP = state->_curLogic->cIP;
+ oldLognum = state->lognum;
- runLogic(p0);
+ state->_vm->runLogic(p0);
- _game.lognum = oldLognum;
- _curLogic = &_game.logics[_game.lognum];
- _curLogic->cIP = oldCIP;
+ state->lognum = oldLognum;
+ state->_curLogic = &state->logics[state->lognum];
+ state->_curLogic->cIP = oldCIP;
}
-void AgiEngine::cmd_call_f(uint8 *p) {
- cmd_call(&_v[p0]);
+void cmdCallF(AgiGame *state, uint8 *p) {
+ cmdCall(state, &_v[p0]);
+}
+
+void cmdDrawPicV1(AgiGame *state, uint8 *p) {
+ debugC(6, kDebugLevelScripts, "=== draw pic V1 %d ===", _v[p0]);
+ state->_vm->_picture->decodePicture(_v[p0], true);
+
+ state->_vm->clearPrompt();
+
+ // Simulate slowww computer. Many effects rely on this
+ state->_vm->pause(kPausePicture);
}
-void AgiEngine::cmd_draw_pic(uint8 *p) {
+void cmdDrawPic(AgiGame *state, uint8 *p) {
debugC(6, kDebugLevelScripts, "=== draw pic %d ===", _v[p0]);
- _sprites->eraseBoth();
- _picture->decodePicture(_v[p0], true);
- _sprites->blitBoth();
- _sprites->commitBoth();
- _game.pictureShown = 0;
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->_picture->decodePicture(_v[p0], true);
+ state->_vm->_sprites->blitBoth();
+ state->_vm->_sprites->commitBoth();
+ state->pictureShown = 0;
debugC(6, kDebugLevelScripts, "--- end of draw pic %d ---", _v[p0]);
// WORKAROUND for a script bug which exists in SQ1, logic scripts
@@ -749,79 +795,93 @@ void AgiEngine::cmd_draw_pic(uint8 *p) {
setflag(103, false);
// Simulate slowww computer. Many effects rely on this
- pause(kPausePicture);
+ state->_vm->pause(kPausePicture);
}
-void AgiEngine::cmd_show_pic(uint8 *p) {
+void cmdShowPic(AgiGame *state, uint8 *p) {
debugC(6, kDebugLevelScripts, "=== show pic ===");
setflag(fOutputMode, false);
- closeWindow();
- _picture->showPic();
- _game.pictureShown = 1;
+ state->_vm->closeWindow();
+ state->_vm->_picture->showPic();
+ state->pictureShown = 1;
debugC(6, kDebugLevelScripts, "--- end of show pic ---");
}
-void AgiEngine::cmd_load_pic(uint8 *p) {
- _sprites->eraseBoth();
- agiLoadResource(rPICTURE, _v[p0]);
- _sprites->blitBoth();
- _sprites->commitBoth();
+void cmdLoadPic(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->agiLoadResource(rPICTURE, _v[p0]);
+ state->_vm->_sprites->blitBoth();
+ state->_vm->_sprites->commitBoth();
}
-void AgiEngine::cmd_discard_pic(uint8 *p) {
+void cmdLoadPicV1(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rPICTURE, _v[p0]);
+}
+
+void cmdDiscardPic(AgiGame *state, uint8 *p) {
debugC(6, kDebugLevelScripts, "--- discard pic ---");
// do nothing
}
-void AgiEngine::cmd_overlay_pic(uint8 *p) {
+void cmdOverlayPic(AgiGame *state, uint8 *p) {
debugC(6, kDebugLevelScripts, "--- overlay pic ---");
- _sprites->eraseBoth();
- _picture->decodePicture(_v[p0], false);
- _sprites->blitBoth();
- _game.pictureShown = 0;
- _sprites->commitBoth();
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->_picture->decodePicture(_v[p0], false);
+ state->_vm->_sprites->blitBoth();
+ state->pictureShown = 0;
+ state->_vm->_sprites->commitBoth();
// Simulate slowww computer. Many effects rely on this
- pause(kPausePicture);
+ state->_vm->pause(kPausePicture);
}
-void AgiEngine::cmd_show_pri_screen(uint8 *p) {
- _debug.priority = 1;
- _sprites->eraseBoth();
- _picture->showPic();
- _sprites->blitBoth();
+void cmdShowPriScreen(AgiGame *state, uint8 *p) {
+ state->_vm->_debug.priority = 1;
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->_picture->showPic();
+ state->_vm->_sprites->blitBoth();
- waitKey();
+ state->_vm->waitKey();
- _debug.priority = 0;
- _sprites->eraseBoth();
- _picture->showPic();
- _sprites->blitBoth();
+ state->_vm->_debug.priority = 0;
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->_picture->showPic();
+ state->_vm->_sprites->blitBoth();
}
-void AgiEngine::cmd_animate_obj(uint8 *p) {
- if (vt.flags & ANIMATED)
- return;
+void cmdAnimateObj(AgiGame *state, uint8 *p) {
+ if (getVersion() < 0x2000) {
+ if (vt.flags & fDidntMove)
+ return;
+ } else {
+ if (vt.flags & fAnimated)
+ return;
+ }
debugC(4, kDebugLevelScripts, "animate vt entry #%d", p0);
- vt.flags = ANIMATED | UPDATE | CYCLING;
- vt.motion = MOTION_NORMAL;
- vt.cycle = CYCLE_NORMAL;
+ vt.flags = fAnimated | fUpdate | fCycling;
+
+ if (getVersion() < 0x2000) {
+ vt.flags |= fDidntMove;
+ }
+
+ vt.motion = kMotionNormal;
+ vt.cycle = kCycleNormal;
vt.direction = 0;
}
-void AgiEngine::cmd_unanimate_all(uint8 *p) {
+void cmdUnanimateAll(AgiGame *state, uint8 *p) {
int i;
for (i = 0; i < MAX_VIEWTABLE; i++)
- _game.viewTable[i].flags &= ~(ANIMATED | DRAWN);
+ state->viewTable[i].flags &= ~(fAnimated | fDrawn);
}
-void AgiEngine::cmd_draw(uint8 *p) {
- if (vt.flags & DRAWN)
+void cmdDraw(AgiGame *state, uint8 *p) {
+ if (vt.flags & fDrawn)
return;
if (vt.ySize <= 0 || vt.xSize <= 0)
@@ -829,18 +889,18 @@ void AgiEngine::cmd_draw(uint8 *p) {
debugC(4, kDebugLevelScripts, "draw entry %d", vt.entry);
- vt.flags |= UPDATE;
+ vt.flags |= fUpdate;
if (getVersion() >= 0x3000) {
- setLoop(&vt, vt.currentLoop);
- setCel(&vt, vt.currentCel);
+ state->_vm->setLoop(&vt, vt.currentLoop);
+ state->_vm->setCel(&vt, vt.currentCel);
}
- fixPosition(p0);
+ state->_vm->fixPosition(p0);
vt.xPos2 = vt.xPos;
vt.yPos2 = vt.yPos;
vt.celData2 = vt.celData;
- _sprites->eraseUpdSprites();
- vt.flags |= DRAWN;
+ state->_vm->_sprites->eraseUpdSprites();
+ vt.flags |= fDrawn;
// WORKAROUND: This fixes a bug with AGI Fanmade _game Space Trek.
// The original workaround checked if AGI version was <= 2.440, which could
@@ -854,30 +914,30 @@ void AgiEngine::cmd_draw(uint8 *p) {
// games are affected. If yes, then it'd be best to set this for Space
// Trek only
if (getFeatures() & GF_FANMADE) // See Sarien bug #546562
- vt.flags |= ANIMATED;
+ vt.flags |= fAnimated;
- _sprites->blitUpdSprites();
- vt.flags &= ~DONTUPDATE;
+ state->_vm->_sprites->blitUpdSprites();
+ vt.flags &= ~fDontupdate;
- _sprites->commitBlock(vt.xPos, vt.yPos - vt.ySize + 1, vt.xPos + vt.xSize - 1, vt.yPos, true);
+ state->_vm->_sprites->commitBlock(vt.xPos, vt.yPos - vt.ySize + 1, vt.xPos + vt.xSize - 1, vt.yPos, true);
debugC(4, kDebugLevelScripts, "vt entry #%d flags = %02x", p0, vt.flags);
}
-void AgiEngine::cmd_erase(uint8 *p) {
- if (~vt.flags & DRAWN)
+void cmdErase(AgiGame *state, uint8 *p) {
+ if (~vt.flags & fDrawn)
return;
- _sprites->eraseUpdSprites();
+ state->_vm->_sprites->eraseUpdSprites();
- if (vt.flags & UPDATE) {
- vt.flags &= ~DRAWN;
+ if (vt.flags & fUpdate) {
+ vt.flags &= ~fDrawn;
} else {
- _sprites->eraseNonupdSprites();
- vt.flags &= ~DRAWN;
- _sprites->blitNonupdSprites();
+ state->_vm->_sprites->eraseNonupdSprites();
+ vt.flags &= ~fDrawn;
+ state->_vm->_sprites->blitNonupdSprites();
}
- _sprites->blitUpdSprites();
+ state->_vm->_sprites->blitUpdSprites();
int x1, y1, x2, y2;
@@ -886,10 +946,10 @@ void AgiEngine::cmd_erase(uint8 *p) {
y1 = MIN((int)MIN(vt.yPos, vt.yPos2), MIN(vt.yPos - vt.celData->height, vt.yPos2 - vt.celData2->height));
y2 = MAX((int)MAX(vt.yPos, vt.yPos2), MAX(vt.yPos - vt.celData->height, vt.yPos2 - vt.celData2->height));
- _sprites->commitBlock(x1, y1, x2, y2, true);
+ state->_vm->_sprites->commitBlock(x1, y1, x2, y2, true);
}
-void AgiEngine::cmd_position(uint8 *p) {
+void cmdPosition(AgiGame *state, uint8 *p) {
vt.xPos = vt.xPos2 = p1;
vt.yPos = vt.yPos2 = p2;
@@ -907,10 +967,15 @@ void AgiEngine::cmd_position(uint8 *p) {
// strictly need the identical workaround in the position.v-command but it does make
// for a nice symmetry.
if (getFeatures() & GF_CLIPCOORDS)
- clipViewCoordinates(&vt);
+ state->_vm->clipViewCoordinates(&vt);
}
-void AgiEngine::cmd_position_f(uint8 *p) {
+void cmdPositionV1(AgiGame *state, uint8 *p) {
+ vt.xPos = p1;
+ vt.yPos = p2;
+}
+
+void cmdPositionF(AgiGame *state, uint8 *p) {
vt.xPos = vt.xPos2 = _v[p1];
vt.yPos = vt.yPos2 = _v[p2];
@@ -918,19 +983,24 @@ void AgiEngine::cmd_position_f(uint8 *p) {
// with an accompanying identical workaround in position-command (i.e. command 0x25).
// See that workaround's comment for more in-depth information.
if (getFeatures() & GF_CLIPCOORDS)
- clipViewCoordinates(&vt);
+ state->_vm->clipViewCoordinates(&vt);
+}
+
+void cmdPositionFV1(AgiGame *state, uint8 *p) {
+ vt.xPos = _v[p1];
+ vt.yPos = _v[p2];
}
-void AgiEngine::cmd_get_posn(uint8 *p) {
- _game.vars[p1] = (unsigned char)vt.xPos;
- _game.vars[p2] = (unsigned char)vt.yPos;
+void cmdGetPosn(AgiGame *state, uint8 *p) {
+ state->vars[p1] = (unsigned char)vt.xPos;
+ state->vars[p2] = (unsigned char)vt.yPos;
}
-void AgiEngine::cmd_reposition(uint8 *p) {
+void cmdReposition(AgiGame *state, uint8 *p) {
int dx = (int8) _v[p1], dy = (int8) _v[p2];
debugC(4, kDebugLevelScripts, "dx=%d, dy=%d", dx, dy);
- vt.flags |= UPDATE_POS;
+ vt.flags |= fUpdatePos;
if (dx < 0 && vt.xPos < -dx)
vt.xPos = 0;
@@ -942,109 +1012,154 @@ void AgiEngine::cmd_reposition(uint8 *p) {
else
vt.yPos += dy;
- fixPosition(p0);
+ state->_vm->fixPosition(p0);
}
-void AgiEngine::cmd_reposition_to(uint8 *p) {
+void cmdRepositionV1(AgiGame *state, uint8 *p) {
+ vt.xPos2 = vt.xPos;
+ vt.yPos2 = vt.yPos;
+ vt.flags |= fUpdatePos;
+
+ vt.xPos = (vt.xPos + p1) & 0xff;
+ vt.yPos = (vt.yPos + p2) & 0xff;
+}
+
+void cmdRepositionTo(AgiGame *state, uint8 *p) {
vt.xPos = p1;
vt.yPos = p2;
- vt.flags |= UPDATE_POS;
- fixPosition(p0);
+ vt.flags |= fUpdatePos;
+ state->_vm->fixPosition(p0);
}
-void AgiEngine::cmd_reposition_to_f(uint8 *p) {
+void cmdRepositionToF(AgiGame *state, uint8 *p) {
vt.xPos = _v[p1];
vt.yPos = _v[p2];
- vt.flags |= UPDATE_POS;
- fixPosition(p0);
+ vt.flags |= fUpdatePos;
+ state->_vm->fixPosition(p0);
+}
+
+void cmdAddToPic(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->addToPic(p0, p1, p2, p3, p4, p5, p6);
}
-void AgiEngine::cmd_add_to_pic(uint8 *p) {
- _sprites->addToPic(p0, p1, p2, p3, p4, p5, p6);
+void cmdAddToPicV1(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->addToPic(p0, p1, p2, p3, p4, p5, -1);
}
-void AgiEngine::cmd_add_to_pic_f(uint8 *p) {
- _sprites->addToPic(_v[p0], _v[p1], _v[p2], _v[p3], _v[p4], _v[p5], _v[p6]);
+void cmdAddToPicF(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->addToPic(_v[p0], _v[p1], _v[p2], _v[p3], _v[p4], _v[p5], _v[p6]);
}
-void AgiEngine::cmd_force_update(uint8 *p) {
- _sprites->eraseBoth();
- _sprites->blitBoth();
- _sprites->commitBoth();
+void cmdForceUpdate(AgiGame *state, uint8 *p) {
+ state->_vm->_sprites->eraseBoth();
+ state->_vm->_sprites->blitBoth();
+ state->_vm->_sprites->commitBoth();
}
-void AgiEngine::cmd_reverse_loop(uint8 *p) {
+void cmdReverseLoop(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1);
- vt.cycle = CYCLE_REV_LOOP;
- vt.flags |= (DONTUPDATE | UPDATE | CYCLING);
+ vt.cycle = kCycleRevLoop;
+ vt.flags |= (fDontupdate | fUpdate | fCycling);
vt.parm1 = p1;
setflag(p1, false);
}
-void AgiEngine::cmd_end_of_loop(uint8 *p) {
+void cmdReverseLoopV1(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1);
- vt.cycle = CYCLE_END_OF_LOOP;
- vt.flags |= (DONTUPDATE | UPDATE | CYCLING);
+ vt.cycle = kCycleRevLoop;
+ state->_vm->setCel(&vt, 0);
+ vt.flags |= (fDontupdate | fUpdate | fCycling);
+ vt.parm1 = p1;
+ vt.parm3 = 0;
+}
+
+void cmdEndOfLoop(AgiGame *state, uint8 *p) {
+ debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1);
+ vt.cycle = kCycleEndOfLoop;
+ vt.flags |= (fDontupdate | fUpdate | fCycling);
vt.parm1 = p1;
setflag(p1, false);
}
-void AgiEngine::cmd_block(uint8 *p) {
+void cmdEndOfLoopV1(AgiGame *state, uint8 *p) {
+ debugC(4, kDebugLevelScripts, "o%d, f%d", p0, p1);
+ vt.cycle = kCycleEndOfLoop;
+ state->_vm->setCel(&vt, 0);
+ vt.flags |= (fDontupdate | fUpdate | fCycling);
+ vt.parm1 = p1;
+ vt.parm3 = 0;
+}
+
+void cmdBlock(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "x1=%d, y1=%d, x2=%d, y2=%d", p0, p1, p2, p3);
- _game.block.active = true;
- _game.block.x1 = p0;
- _game.block.y1 = p1;
- _game.block.x2 = p2;
- _game.block.y2 = p3;
+ state->block.active = true;
+ state->block.x1 = p0;
+ state->block.y1 = p1;
+ state->block.x2 = p2;
+ state->block.y2 = p3;
}
-void AgiEngine::cmd_unblock(uint8 *p) {
- _game.block.active = false;
+void cmdUnblock(AgiGame *state, uint8 *p) {
+ state->block.active = false;
}
-void AgiEngine::cmd_normal_motion(uint8 *p) {
- vt.motion = MOTION_NORMAL;
+void cmdNormalMotion(AgiGame *state, uint8 *p) {
+ vt.motion = kMotionNormal;
}
-void AgiEngine::cmd_stop_motion(uint8 *p) {
+void cmdStopMotion(AgiGame *state, uint8 *p) {
vt.direction = 0;
- vt.motion = MOTION_NORMAL;
+ vt.motion = kMotionNormal;
if (p0 == 0) { // ego only
_v[vEgoDir] = 0;
- _game.playerControl = false;
+ state->playerControl = false;
}
}
-void AgiEngine::cmd_start_motion(uint8 *p) {
- vt.motion = MOTION_NORMAL;
+void cmdStopMotionV1(AgiGame *state, uint8 *p) {
+ vt.flags &= ~fAnimated;
+}
+
+void cmdStartMotion(AgiGame *state, uint8 *p) {
+ vt.motion = kMotionNormal;
if (p0 == 0) { // ego only
_v[vEgoDir] = 0;
- _game.playerControl = true;
+ state->playerControl = true;
}
}
-void AgiEngine::cmd_player_control(uint8 *p) {
- _game.playerControl = true;
- _game.viewTable[0].motion = MOTION_NORMAL;
+void cmdStartMotionV1(AgiGame *state, uint8 *p) {
+ vt.flags |= fAnimated;
}
-void AgiEngine::cmd_program_control(uint8 *p) {
- _game.playerControl = false;
+void cmdPlayerControl(AgiGame *state, uint8 *p) {
+ state->playerControl = true;
+ state->viewTable[0].motion = kMotionNormal;
}
-void AgiEngine::cmd_follow_ego(uint8 *p) {
- vt.motion = MOTION_FOLLOW_EGO;
+void cmdProgramControl(AgiGame *state, uint8 *p) {
+ state->playerControl = false;
+}
+
+void cmdFollowEgo(AgiGame *state, uint8 *p) {
+ vt.motion = kMotionFollowEgo;
vt.parm1 = p1 > vt.stepSize ? p1 : vt.stepSize;
vt.parm2 = p2;
vt.parm3 = 0xff;
- setflag(p2, false);
- vt.flags |= UPDATE;
+
+ if (getVersion() < 0x2000) {
+ _v[p2] = 0;
+ vt.flags |= fUpdate | fAnimated;
+ } else {
+ setflag(p2, false);
+ vt.flags |= fUpdate;
+ }
}
-void AgiEngine::cmd_move_obj(uint8 *p) {
+void cmdMoveObj(AgiGame *state, uint8 *p) {
// _D (_D_WARN "o=%d, x=%d, y=%d, s=%d, f=%d", p0, p1, p2, p3, p4);
- vt.motion = MOTION_MOVE_OBJ;
+ vt.motion = kMotionMoveObj;
vt.parm1 = p1;
vt.parm2 = p2;
vt.parm3 = vt.stepSize;
@@ -1053,19 +1168,24 @@ void AgiEngine::cmd_move_obj(uint8 *p) {
if (p3 != 0)
vt.stepSize = p3;
- setflag(p4, false);
- vt.flags |= UPDATE;
+ if (getVersion() < 0x2000) {
+ _v[p4] = 0;
+ vt.flags |= fUpdate | fAnimated;
+ } else {
+ setflag(p4, false);
+ vt.flags |= fUpdate;
+ }
if (p0 == 0)
- _game.playerControl = false;
+ state->playerControl = false;
// AGI 2.272 (ddp, xmas) doesn't call move_obj!
if (getVersion() > 0x2272)
- moveObj(&vt);
+ state->_vm->moveObj(&vt);
}
-void AgiEngine::cmd_move_obj_f(uint8 *p) {
- vt.motion = MOTION_MOVE_OBJ;
+void cmdMoveObjF(AgiGame *state, uint8 *p) {
+ vt.motion = kMotionMoveObj;
vt.parm1 = _v[p1];
vt.parm2 = _v[p2];
vt.parm3 = vt.stepSize;
@@ -1075,66 +1195,70 @@ void AgiEngine::cmd_move_obj_f(uint8 *p) {
vt.stepSize = _v[p3];
setflag(p4, false);
- vt.flags |= UPDATE;
+ vt.flags |= fUpdate;
if (p0 == 0)
- _game.playerControl = false;
+ state->playerControl = false;
// AGI 2.272 (ddp, xmas) doesn't call move_obj!
if (getVersion() > 0x2272)
- moveObj(&vt);
+ state->_vm->moveObj(&vt);
}
-void AgiEngine::cmd_wander(uint8 *p) {
+void cmdWander(AgiGame *state, uint8 *p) {
if (p0 == 0)
- _game.playerControl = false;
+ state->playerControl = false;
- vt.motion = MOTION_WANDER;
- vt.flags |= UPDATE;
+ vt.motion = kMotionWander;
+ if (getVersion() < 0x2000) {
+ vt.flags |= fUpdate | fAnimated;
+ } else {
+ vt.flags |= fUpdate;
+ }
}
-void AgiEngine::cmd_set_game_id(uint8 *p) {
- if (_curLogic->texts && (p0 - 1) <= _curLogic->numTexts)
- strncpy(_game.id, _curLogic->texts[p0 - 1], 8);
+void cmdSetGameID(AgiGame *state, uint8 *p) {
+ if (state->_curLogic->texts && (p0 - 1) <= state->_curLogic->numTexts)
+ strncpy(state->id, state->_curLogic->texts[p0 - 1], 8);
else
- _game.id[0] = 0;
+ state->id[0] = 0;
- debug(0, "Game ID: \"%s\"", _game.id);
+ debug(0, "Game ID: \"%s\"", state->id);
}
-void AgiEngine::cmd_pause(uint8 *p) {
- int tmp = _game.clockEnabled;
+void cmdPause(AgiGame *state, uint8 *p) {
+ int tmp = state->clockEnabled;
const char *b[] = { "Continue", NULL };
const char *b_ru[] = { "\x8f\xe0\xae\xa4\xae\xab\xa6\xa8\xe2\xec", NULL };
- _game.clockEnabled = false;
+ state->clockEnabled = false;
switch (getLanguage()) {
case Common::RU_RUS:
- selectionBox(" \x88\xa3\xe0\xa0 \xae\xe1\xe2\xa0\xad\xae\xa2\xab\xa5\xad\xa0. \n\n\n", b_ru);
+ state->_vm->selectionBox(" \x88\xa3\xe0\xa0 \xae\xe1\xe2\xa0\xad\xae\xa2\xab\xa5\xad\xa0. \n\n\n", b_ru);
break;
default:
- selectionBox(" Game is paused. \n\n\n", b);
+ state->_vm->selectionBox(" Game is paused. \n\n\n", b);
break;
}
- _game.clockEnabled = tmp;
+ state->clockEnabled = tmp;
}
-void AgiEngine::cmd_set_menu(uint8 *p) {
- debugC(4, kDebugLevelScripts, "text %02x of %02x", p0, _curLogic->numTexts);
+void cmdSetMenu(AgiGame *state, uint8 *p) {
+ debugC(4, kDebugLevelScripts, "text %02x of %02x", p0, state->_curLogic->numTexts);
- if (_curLogic->texts != NULL && p0 <= _curLogic->numTexts)
- _menu->add(_curLogic->texts[p0 - 1]);
+ if (state->_curLogic->texts != NULL && p0 <= state->_curLogic->numTexts)
+ state->_vm->_menu->add(state->_curLogic->texts[p0 - 1]);
}
-void AgiEngine::cmd_set_menu_item(uint8 *p) {
- debugC(4, kDebugLevelScripts, "text %02x of %02x", p0, _curLogic->numTexts);
+void cmdSetMenuItem(AgiGame *state, uint8 *p) {
+ debugC(4, kDebugLevelScripts, "text %02x of %02x", p0, state->_curLogic->numTexts);
- if (_curLogic->texts != NULL && p0 <= _curLogic->numTexts)
- _menu->addItem(_curLogic->texts[p0 - 1], p1);
+ if (state->_curLogic->texts != NULL && p0 <= state->_curLogic->numTexts)
+ state->_vm->_menu->addItem(state->_curLogic->texts[p0 - 1], p1);
}
-void AgiEngine::cmd_version(uint8 *p) {
+void cmdVersion(AgiGame *state, uint8 *p) {
char verMsg[64];
char ver2Msg[] =
"\n"
@@ -1171,89 +1295,94 @@ void AgiEngine::cmd_version(uint8 *p) {
strncpy(q + 1 + gap, verMsg, strlen(verMsg));
sprintf(msg, q, maj, min);
- messageBox(msg);
+ state->_vm->messageBox(msg);
}
-void AgiEngine::cmd_configure_screen(uint8 *p) {
- _game.lineMinPrint = p0;
- _game.lineUserInput = p1;
- _game.lineStatus = p2;
+void cmdConfigureScreen(AgiGame *state, uint8 *p) {
+ state->lineMinPrint = p0;
+ state->lineUserInput = p1;
+ state->lineStatus = p2;
}
-void AgiEngine::cmd_text_screen(uint8 *p) {
+void cmdTextScreen(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "switching to text mode");
- _game.gfxMode = false;
+ state->gfxMode = false;
// Simulates the "bright background bit" of the PC video
// controller.
- if (_game.colorBg)
- _game.colorBg |= 0x08;
+ if (state->colorBg)
+ state->colorBg |= 0x08;
- _gfx->clearScreen(_game.colorBg);
+ state->_vm->_gfx->clearScreen(state->colorBg);
}
-void AgiEngine::cmd_graphics(uint8 *p) {
+void cmdGraphics(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "switching to graphics mode");
- if (!_game.gfxMode) {
- _game.gfxMode = true;
- _gfx->clearScreen(0);
- _picture->showPic();
- writeStatus();
- writePrompt();
+ if (!state->gfxMode) {
+ state->gfxMode = true;
+ state->_vm->_gfx->clearScreen(0);
+ state->_vm->_picture->showPic();
+ state->_vm->writeStatus();
+ state->_vm->writePrompt();
}
}
-void AgiEngine::cmd_set_text_attribute(uint8 *p) {
- _game.colorFg = p0;
- _game.colorBg = p1;
+void cmdSetTextAttribute(AgiGame *state, uint8 *p) {
+ state->colorFg = p0;
+ state->colorBg = p1;
- if (_game.gfxMode) {
- if (_game.colorBg != 0) {
- _game.colorFg = 0;
- _game.colorBg = 15;
+ if (state->gfxMode) {
+ if (state->colorBg != 0) {
+ state->colorFg = 0;
+ state->colorBg = 15;
}
}
}
-void AgiEngine::cmd_status(uint8 *p) {
- inventory();
+void cmdStatus(AgiGame *state, uint8 *p) {
+ state->_vm->inventory();
}
-void AgiEngine::cmd_quit(uint8 *p) {
+void cmdQuit(AgiGame *state, uint8 *p) {
const char *buttons[] = { "Quit", "Continue", NULL };
- _sound->stopSound();
+ state->_vm->_sound->stopSound();
if (p0) {
- quitGame();
+ state->_vm->quitGame();
} else {
- if (selectionBox(" Quit the game, or continue? \n\n\n", buttons) == 0) {
- quitGame();
+ if (state->_vm->selectionBox(" Quit the game, or continue? \n\n\n", buttons) == 0) {
+ state->_vm->quitGame();
}
}
}
-void AgiEngine::cmd_restart_game(uint8 *p) {
+void cmdQuitV1(AgiGame *state, uint8 *p) {
+ state->_vm->_sound->stopSound();
+ state->_vm->quitGame();
+}
+
+void cmdRestartGame(AgiGame *state, uint8 *p) {
const char *buttons[] = { "Restart", "Continue", NULL };
int sel;
- _sound->stopSound();
+ state->_vm->_sound->stopSound();
sel = getflag(fAutoRestart) ? 0 :
- selectionBox(" Restart _game, or continue? \n\n\n", buttons);
+ state->_vm->selectionBox(" Restart _game, or continue? \n\n\n", buttons);
if (sel == 0) {
- _restartGame = true;
+ state->_vm->_restartGame = true;
setflag(fRestartGame, true);
- _menu->enableAll();
+ state->_vm->_menu->enableAll();
}
}
-void AgiEngine::cmd_distance(uint8 *p) {
+void cmdDistance(AgiGame *state, uint8 *p) {
int16 x1, y1, x2, y2, d;
- VtEntry *v0 = &_game.viewTable[p0];
- VtEntry *v1 = &_game.viewTable[p1];
+ VtEntry *v0 = &state->viewTable[p0];
+ VtEntry *v1 = &state->viewTable[p1];
- if (v0->flags & DRAWN && v1->flags & DRAWN) {
+ if (v0->flags & fDrawn && v1->flags & fDrawn) {
x1 = v0->xPos + v0->xSize / 2;
y1 = v0->yPos;
x2 = v1->xPos + v1->xSize / 2;
@@ -1299,24 +1428,24 @@ void AgiEngine::cmd_distance(uint8 *p) {
_v[p2] = (unsigned char)d;
}
-void AgiEngine::cmd_accept_input(uint8 *p) {
+void cmdAcceptInput(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts | kDebugLevelInput, "input normal");
- newInputMode(INPUT_NORMAL);
- _game.inputEnabled = true;
- writePrompt();
+ state->_vm->newInputMode(INPUT_NORMAL);
+ state->inputEnabled = true;
+ state->_vm->writePrompt();
}
-void AgiEngine::cmd_prevent_input(uint8 *p) {
+void cmdPreventInput(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts | kDebugLevelInput, "no input");
- newInputMode(INPUT_NONE);
- _game.inputEnabled = false;
+ state->_vm->newInputMode(INPUT_NONE);
+ state->inputEnabled = false;
- clearPrompt();
+ state->_vm->clearPrompt();
}
-void AgiEngine::cmd_get_string(uint8 *p) {
+void cmdGetString(AgiGame *state, uint8 *p) {
int tex, row, col;
debugC(4, kDebugLevelScripts, "%d %d %d %d %d", p0, p1, p2, p3, p4);
@@ -1332,63 +1461,63 @@ void AgiEngine::cmd_get_string(uint8 *p) {
if (col > 39)
col = 39;
- newInputMode(INPUT_GETSTRING);
+ state->_vm->newInputMode(INPUT_GETSTRING);
- if (_curLogic->texts != NULL && _curLogic->numTexts >= tex) {
- int len = strlen(_curLogic->texts[tex]);
+ if (state->_curLogic->texts != NULL && state->_curLogic->numTexts >= tex) {
+ int len = strlen(state->_curLogic->texts[tex]);
- printText(_curLogic->texts[tex], 0, col, row, len, _game.colorFg, _game.colorBg);
- getString(col + len - 1, row, p4, p0);
+ state->_vm->printText(state->_curLogic->texts[tex], 0, col, row, len, state->colorFg, state->colorBg);
+ state->_vm->getString(col + len - 1, row, p4, p0);
// SGEO: display input char
- _gfx->printCharacter((col + len), row, _game.cursorChar, _game.colorFg, _game.colorBg);
+ state->_vm->_gfx->printCharacter((col + len), row, state->cursorChar, state->colorFg, state->colorBg);
}
do {
- mainCycle();
- } while (_game.inputMode == INPUT_GETSTRING && !(shouldQuit() || _restartGame));
+ state->_vm->mainCycle();
+ } while (state->inputMode == INPUT_GETSTRING && !(state->_vm->shouldQuit() || state->_vm->_restartGame));
}
-void AgiEngine::cmd_get_num(uint8 *p) {
+void cmdGetNum(AgiGame *state, uint8 *p) {
debugC(4, kDebugLevelScripts, "%d %d", p0, p1);
- newInputMode(INPUT_GETSTRING);
+ state->_vm->newInputMode(INPUT_GETSTRING);
- if (_curLogic->texts != NULL && _curLogic->numTexts >= (p0 - 1)) {
- int len = strlen(_curLogic->texts[p0 - 1]);
+ if (state->_curLogic->texts != NULL && state->_curLogic->numTexts >= (p0 - 1)) {
+ int len = strlen(state->_curLogic->texts[p0 - 1]);
- printText(_curLogic->texts[p0 - 1], 0, 0, 22, len, _game.colorFg, _game.colorBg);
- getString(len - 1, 22, 3, MAX_STRINGS);
+ state->_vm->printText(state->_curLogic->texts[p0 - 1], 0, 0, 22, len, state->colorFg, state->colorBg);
+ state->_vm->getString(len - 1, 22, 3, MAX_STRINGS);
// CM: display input char
- _gfx->printCharacter((p3 + len), 22, _game.cursorChar, _game.colorFg, _game.colorBg);
+ state->_vm->_gfx->printCharacter((p3 + len), 22, state->cursorChar, state->colorFg, state->colorBg);
}
do {
- mainCycle();
- } while (_game.inputMode == INPUT_GETSTRING && !(shouldQuit() || _restartGame));
+ state->_vm->mainCycle();
+ } while (state->inputMode == INPUT_GETSTRING && !(state->_vm->shouldQuit() || state->_vm->_restartGame));
- _v[p1] = atoi(_game.strings[MAX_STRINGS]);
+ _v[p1] = atoi(state->strings[MAX_STRINGS]);
- debugC(4, kDebugLevelScripts, "[%s] -> %d", _game.strings[MAX_STRINGS], _v[p1]);
+ debugC(4, kDebugLevelScripts, "[%s] -> %d", state->strings[MAX_STRINGS], _v[p1]);
- clearLines(22, 22, _game.colorBg);
- flushLines(22, 22);
+ state->_vm->clearLines(22, 22, state->colorBg);
+ state->_vm->flushLines(22, 22);
}
-void AgiEngine::cmd_set_cursor_char(uint8 *p) {
- if (_curLogic->texts != NULL && (p0 - 1) <= _curLogic->numTexts) {
- _game.cursorChar = *_curLogic->texts[p0 - 1];
+void cmdSetCursorChar(AgiGame *state, uint8 *p) {
+ if (state->_curLogic->texts != NULL && (p0 - 1) <= state->_curLogic->numTexts) {
+ state->cursorChar = *state->_curLogic->texts[p0 - 1];
} else {
// default
- _game.cursorChar = '_';
+ state->cursorChar = '_';
}
}
-void AgiEngine::cmd_set_key(uint8 *p) {
+void cmdSetKey(AgiGame *state, uint8 *p) {
int key;
- if (_game.lastController >= MAX_CONTROLLERS) {
+ if (state->lastController >= MAX_CONTROLLERS) {
warning("Number of set.keys exceeded %d", MAX_CONTROLLERS);
return;
}
@@ -1397,35 +1526,37 @@ void AgiEngine::cmd_set_key(uint8 *p) {
key = 256 * p1 + p0;
- _game.controllers[_game.lastController].keycode = key;
- _game.controllers[_game.lastController].controller = p2;
- _game.lastController++;
+ state->controllers[state->lastController].keycode = key;
+ state->controllers[state->lastController].controller = p2;
+ state->lastController++;
- _game.controllerOccured[p2] = false;
+ state->controllerOccured[p2] = false;
}
-void AgiEngine::cmd_set_string(uint8 *p) {
+void cmdSetString(AgiGame *state, uint8 *p) {
// CM: to avoid crash in Groza (str = 150)
if (p0 > MAX_STRINGS)
return;
- strcpy(_game.strings[p0], _curLogic->texts[p1 - 1]);
+ strcpy(state->strings[p0], state->_curLogic->texts[p1 - 1]);
}
-void AgiEngine::cmd_display(uint8 *p) {
+void cmdDisplay(AgiGame *state, uint8 *p) {
+ // V1 has 4 args
+ int t = (getVersion() >= 0x2000 ? p2 : p3);
int len = 40;
- char *s = wordWrapString(_curLogic->texts[p2 - 1], &len);
+ char *s = state->_vm->wordWrapString(state->_curLogic->texts[t - 1], &len);
- printText(s, p1, 0, p0, 40, _game.colorFg, _game.colorBg);
+ state->_vm->printText(s, p1, 0, p0, 40, state->colorFg, state->colorBg);
free(s);
}
-void AgiEngine::cmd_display_f(uint8 *p) {
- printText(_curLogic->texts[_v[p2] - 1], _v[p1], 0, _v[p0], 40, _game.colorFg, _game.colorBg);
+void cmdDisplayF(AgiGame *state, uint8 *p) {
+ state->_vm->printText(state->_curLogic->texts[_v[p2] - 1], _v[p1], 0, _v[p0], 40, state->colorFg, state->colorBg);
}
-void AgiEngine::cmd_clear_text_rect(uint8 *p) {
+void cmdClearTextRect(AgiGame *state, uint8 *p) {
int c, x1, y1, x2, y2;
if ((c = p4) != 0)
@@ -1446,21 +1577,21 @@ void AgiEngine::cmd_clear_text_rect(uint8 *p) {
if (y2 > GFX_HEIGHT)
y2 = GFX_HEIGHT - 1;
- _gfx->drawRectangle(x1, y1, x2, y2, c);
- _gfx->flushBlock(x1, y1, x2, y2);
+ state->_vm->_gfx->drawRectangle(x1, y1, x2, y2, c);
+ state->_vm->_gfx->flushBlock(x1, y1, x2, y2);
}
-void AgiEngine::cmd_toggle_monitor(uint8 *p) {
+void cmdToggleMonitor(AgiGame *state, uint8 *p) {
debug(0, "toggle.monitor");
}
-void AgiEngine::cmd_echo_line(uint8 *p) {
- strcpy((char *)_game.inputBuffer, (const char *)_game.echoBuffer);
- _game.cursorPos = strlen((char *)_game.inputBuffer);
- _game.hasPrompt = 0;
+void cmdEchoLine(AgiGame *state, uint8 *p) {
+ strcpy((char *)state->inputBuffer, (const char *)state->echoBuffer);
+ state->cursorPos = strlen((char *)state->inputBuffer);
+ state->hasPrompt = 0;
}
-void AgiEngine::cmd_clear_lines(uint8 *p) {
+void cmdClearLines(AgiGame *state, uint8 *p) {
uint8 l;
// Residence 44 calls clear.lines(24,0,0), see Sarien bug #558423
@@ -1470,42 +1601,42 @@ void AgiEngine::cmd_clear_lines(uint8 *p) {
// #1935838 and #1935842
l = (l <= 24) ? l : 24;
- clearLines(p0, l, p2);
- flushLines(p0, l);
+ state->_vm->clearLines(p0, l, p2);
+ state->_vm->flushLines(p0, l);
}
-void AgiEngine::cmd_print(uint8 *p) {
+void cmdPrint(AgiGame *state, uint8 *p) {
int n = p0 < 1 ? 1 : p0;
- print(_curLogic->texts[n - 1], 0, 0, 0);
+ state->_vm->print(state->_curLogic->texts[n - 1], 0, 0, 0);
}
-void AgiEngine::cmd_print_f(uint8 *p) {
+void cmdPrintF(AgiGame *state, uint8 *p) {
int n = _v[p0] < 1 ? 1 : _v[p0];
- print(_curLogic->texts[n - 1], 0, 0, 0);
+ state->_vm->print(state->_curLogic->texts[n - 1], 0, 0, 0);
}
-void AgiEngine::cmd_print_at(uint8 *p) {
+void cmdPrintAt(AgiGame *state, uint8 *p) {
int n = p0 < 1 ? 1 : p0;
debugC(4, kDebugLevelScripts, "%d %d %d %d", p0, p1, p2, p3);
- print(_curLogic->texts[n - 1], p1, p2, p3);
+ state->_vm->print(state->_curLogic->texts[n - 1], p1, p2, p3);
}
-void AgiEngine::cmd_print_at_v(uint8 *p) {
+void cmdPrintAtV(AgiGame *state, uint8 *p) {
int n = _v[p0] < 1 ? 1 : _v[p0];
- print(_curLogic->texts[n - 1], p1, p2, p3);
+ state->_vm->print(state->_curLogic->texts[n - 1], p1, p2, p3);
}
-void AgiEngine::cmd_push_script(uint8 *p) {
+void cmdPushScript(AgiGame *state, uint8 *p) {
// We run AGIMOUSE always as a side effect
if (getFeatures() & GF_AGIMOUSE || true) {
- _game.vars[27] = _mouse.button;
- _game.vars[28] = _mouse.x / 2;
- _game.vars[29] = _mouse.y;
+ state->vars[27] = state->_vm->_mouse.button;
+ state->vars[28] = state->_vm->_mouse.x / 2;
+ state->vars[29] = state->_vm->_mouse.y;
} else {
if (getVersion() >= 0x2915) {
debug(0, "push.script");
@@ -1513,35 +1644,35 @@ void AgiEngine::cmd_push_script(uint8 *p) {
}
}
-void AgiEngine::cmd_set_pri_base(uint8 *p) {
+void cmdSetPriBase(AgiGame *state, uint8 *p) {
int i, x, pri;
debug(0, "Priority base set to %d", p0);
- // _game.alt_pri = true;
+ // state->alt_pri = true;
x = (_HEIGHT - p0) * _HEIGHT / 10;
for (i = 0; i < _HEIGHT; i++) {
pri = (i - p0) < 0 ? 4 : (i - p0) * _HEIGHT / x + 5;
if (pri > 15)
pri = 15;
- _game.priTable[i] = pri;
+ state->priTable[i] = pri;
}
}
-void AgiEngine::cmd_mouse_posn(uint8 *p) {
- _v[p0] = WIN_TO_PIC_X(_mouse.x);
- _v[p1] = WIN_TO_PIC_Y(_mouse.y);
+void cmdMousePosn(AgiGame *state, uint8 *p) {
+ _v[p0] = WIN_TO_PIC_X(state->_vm->_mouse.x);
+ _v[p1] = WIN_TO_PIC_Y(state->_vm->_mouse.y);
}
-void AgiEngine::cmd_shake_screen(uint8 *p) {
+void cmdShakeScreen(AgiGame *state, uint8 *p) {
int i;
// AGIPAL uses shake.screen values between 100 and 109 to set the palette
// (Checked the original AGIPAL-hack's shake.screen-routine's disassembly).
if (p0 >= 100 && p0 < 110) {
if (getFeatures() & GF_AGIPAL) {
- _gfx->setAGIPal(p0);
+ state->_vm->_gfx->setAGIPal(p0);
return;
} else {
warning("It looks like GF_AGIPAL flag is missing");
@@ -1550,212 +1681,60 @@ void AgiEngine::cmd_shake_screen(uint8 *p) {
// Disables input while shaking to prevent bug
// #1678230: AGI: Entering text while screen is shaking
- bool originalValue = _game.inputEnabled;
- _game.inputEnabled = false;
+ bool originalValue = state->inputEnabled;
+ state->inputEnabled = false;
- _gfx->shakeStart();
+ state->_vm->_gfx->shakeStart();
- _sprites->commitBoth(); // Fixes SQ1 demo
+ state->_vm->_sprites->commitBoth(); // Fixes SQ1 demo
for (i = 4 * p0; i; i--) {
- _gfx->shakeScreen(i & 1);
- _gfx->flushBlock(0, 0, GFX_WIDTH - 1, GFX_HEIGHT - 1);
- mainCycle();
+ state->_vm->_gfx->shakeScreen(i & 1);
+ state->_vm->_gfx->flushBlock(0, 0, GFX_WIDTH - 1, GFX_HEIGHT - 1);
+ state->_vm->mainCycle();
}
- _gfx->shakeEnd();
+ state->_vm->_gfx->shakeEnd();
// Sets input back to what it was
- _game.inputEnabled = originalValue;
-}
-
-void AgiEngine::setupOpcodes() {
- AgiCommand tmp[] = {
- NULL, // 0x00
- &AgiEngine::cmd_increment,
- &AgiEngine::cmd_decrement,
- &AgiEngine::cmd_assignn,
- &AgiEngine::cmd_assignv,
- &AgiEngine::cmd_addn,
- &AgiEngine::cmd_addv,
- &AgiEngine::cmd_subn,
- &AgiEngine::cmd_subv, // 0x08
- &AgiEngine::cmd_lindirectv,
- &AgiEngine::cmd_rindirect,
- &AgiEngine::cmd_lindirectn,
- &AgiEngine::cmd_set,
- &AgiEngine::cmd_reset,
- &AgiEngine::cmd_toggle,
- &AgiEngine::cmd_set_v,
- &AgiEngine::cmd_reset_v, // 0x10
- &AgiEngine::cmd_toggle_v,
- &AgiEngine::cmd_new_room,
- &AgiEngine::cmd_new_room_f,
- &AgiEngine::cmd_load_logic,
- &AgiEngine::cmd_load_logic_f,
- &AgiEngine::cmd_call,
- &AgiEngine::cmd_call_f,
- &AgiEngine::cmd_load_pic, // 0x18
- &AgiEngine::cmd_draw_pic,
- &AgiEngine::cmd_show_pic,
- &AgiEngine::cmd_discard_pic,
- &AgiEngine::cmd_overlay_pic,
- &AgiEngine::cmd_show_pri_screen,
- &AgiEngine::cmd_load_view,
- &AgiEngine::cmd_load_view_f,
- &AgiEngine::cmd_discard_view, // 0x20
- &AgiEngine::cmd_animate_obj,
- &AgiEngine::cmd_unanimate_all,
- &AgiEngine::cmd_draw,
- &AgiEngine::cmd_erase,
- &AgiEngine::cmd_position,
- &AgiEngine::cmd_position_f,
- &AgiEngine::cmd_get_posn,
- &AgiEngine::cmd_reposition, // 0x28
- &AgiEngine::cmd_set_view,
- &AgiEngine::cmd_set_view_f,
- &AgiEngine::cmd_set_loop,
- &AgiEngine::cmd_set_loop_f,
- &AgiEngine::cmd_fix_loop,
- &AgiEngine::cmd_release_loop,
- &AgiEngine::cmd_set_cel,
- &AgiEngine::cmd_set_cel_f, // 0x30
- &AgiEngine::cmd_last_cel,
- &AgiEngine::cmd_current_cel,
- &AgiEngine::cmd_current_loop,
- &AgiEngine::cmd_current_view,
- &AgiEngine::cmd_number_of_loops,
- &AgiEngine::cmd_set_priority,
- &AgiEngine::cmd_set_priority_f,
- &AgiEngine::cmd_release_priority, // 0x38
- &AgiEngine::cmd_get_priority,
- &AgiEngine::cmd_stop_update,
- &AgiEngine::cmd_start_update,
- &AgiEngine::cmd_force_update,
- &AgiEngine::cmd_ignore_horizon,
- &AgiEngine::cmd_observe_horizon,
- &AgiEngine::cmd_set_horizon,
- &AgiEngine::cmd_object_on_water, // 0x40
- &AgiEngine::cmd_object_on_land,
- &AgiEngine::cmd_object_on_anything,
- &AgiEngine::cmd_ignore_objs,
- &AgiEngine::cmd_observe_objs,
- &AgiEngine::cmd_distance,
- &AgiEngine::cmd_stop_cycling,
- &AgiEngine::cmd_start_cycling,
- &AgiEngine::cmd_normal_cycle, // 0x48
- &AgiEngine::cmd_end_of_loop,
- &AgiEngine::cmd_reverse_cycle,
- &AgiEngine::cmd_reverse_loop,
- &AgiEngine::cmd_cycle_time,
- &AgiEngine::cmd_stop_motion,
- &AgiEngine::cmd_start_motion,
- &AgiEngine::cmd_step_size,
- &AgiEngine::cmd_step_time, // 0x50
- &AgiEngine::cmd_move_obj,
- &AgiEngine::cmd_move_obj_f,
- &AgiEngine::cmd_follow_ego,
- &AgiEngine::cmd_wander,
- &AgiEngine::cmd_normal_motion,
- &AgiEngine::cmd_set_dir,
- &AgiEngine::cmd_get_dir,
- &AgiEngine::cmd_ignore_blocks, // 0x58
- &AgiEngine::cmd_observe_blocks,
- &AgiEngine::cmd_block,
- &AgiEngine::cmd_unblock,
- &AgiEngine::cmd_get,
- &AgiEngine::cmd_get_f,
- &AgiEngine::cmd_drop,
- &AgiEngine::cmd_put,
- &AgiEngine::cmd_put_f, // 0x60
- &AgiEngine::cmd_get_room_f,
- &AgiEngine::cmd_load_sound,
- &AgiEngine::cmd_sound,
- &AgiEngine::cmd_stop_sound,
- &AgiEngine::cmd_print,
- &AgiEngine::cmd_print_f,
- &AgiEngine::cmd_display,
- &AgiEngine::cmd_display_f, // 0x68
- &AgiEngine::cmd_clear_lines,
- &AgiEngine::cmd_text_screen,
- &AgiEngine::cmd_graphics,
- &AgiEngine::cmd_set_cursor_char,
- &AgiEngine::cmd_set_text_attribute,
- &AgiEngine::cmd_shake_screen,
- &AgiEngine::cmd_configure_screen,
- &AgiEngine::cmd_status_line_on, // 0x70
- &AgiEngine::cmd_status_line_off,
- &AgiEngine::cmd_set_string,
- &AgiEngine::cmd_get_string,
- &AgiEngine::cmd_word_to_string,
- &AgiEngine::cmd_parse,
- &AgiEngine::cmd_get_num,
- &AgiEngine::cmd_prevent_input,
- &AgiEngine::cmd_accept_input, // 0x78
- &AgiEngine::cmd_set_key,
- &AgiEngine::cmd_add_to_pic,
- &AgiEngine::cmd_add_to_pic_f,
- &AgiEngine::cmd_status,
- &AgiEngine::cmd_save_game,
- &AgiEngine::cmd_load_game,
- &AgiEngine::cmd_init_disk,
- &AgiEngine::cmd_restart_game, // 0x80
- &AgiEngine::cmd_show_obj,
- &AgiEngine::cmd_random,
- &AgiEngine::cmd_program_control,
- &AgiEngine::cmd_player_control,
- &AgiEngine::cmd_obj_status_f,
- &AgiEngine::cmd_quit,
- &AgiEngine::cmd_show_mem,
- &AgiEngine::cmd_pause, // 0x88
- &AgiEngine::cmd_echo_line,
- &AgiEngine::cmd_cancel_line,
- &AgiEngine::cmd_init_joy,
- &AgiEngine::cmd_toggle_monitor,
- &AgiEngine::cmd_version,
- &AgiEngine::cmd_script_size,
- &AgiEngine::cmd_set_game_id,
- &AgiEngine::cmd_log, // 0x90
- &AgiEngine::cmd_set_scan_start,
- &AgiEngine::cmd_reset_scan_start,
- &AgiEngine::cmd_reposition_to,
- &AgiEngine::cmd_reposition_to_f,
- &AgiEngine::cmd_trace_on,
- &AgiEngine::cmd_trace_info,
- &AgiEngine::cmd_print_at,
- &AgiEngine::cmd_print_at_v, // 0x98
- &AgiEngine::cmd_discard_view, // Opcode repeated from 0x20 ?
- &AgiEngine::cmd_clear_text_rect,
- &AgiEngine::cmd_set_upper_left,
- &AgiEngine::cmd_set_menu,
- &AgiEngine::cmd_set_menu_item,
- &AgiEngine::cmd_submit_menu,
- &AgiEngine::cmd_enable_item,
- &AgiEngine::cmd_disable_item, // 0xa0
- &AgiEngine::cmd_menu_input,
- &AgiEngine::cmd_show_obj_v,
- &AgiEngine::cmd_open_dialogue,
- &AgiEngine::cmd_close_dialogue,
- &AgiEngine::cmd_mul_n,
- &AgiEngine::cmd_mul_v,
- &AgiEngine::cmd_div_n,
- &AgiEngine::cmd_div_v, // 0xa8
- &AgiEngine::cmd_close_window,
- &AgiEngine::cmd_set_simple,
- &AgiEngine::cmd_push_script,
- &AgiEngine::cmd_pop_script,
- &AgiEngine::cmd_hold_key,
- &AgiEngine::cmd_set_pri_base,
- &AgiEngine::cmd_discard_sound,
- &AgiEngine::cmd_hide_mouse, // 0xb0
- &AgiEngine::cmd_allow_menu,
- &AgiEngine::cmd_show_mouse,
- &AgiEngine::cmd_fence_mouse,
- &AgiEngine::cmd_mouse_posn,
- &AgiEngine::cmd_release_key,
- &AgiEngine::cmd_adj_ego_move_to_x_y
- };
- assert(ARRAYSIZE(_agiCommands) == ARRAYSIZE(tmp));
- for (int i = 0; i < ARRAYSIZE(tmp); ++i)
- _agiCommands[i] = tmp[i];
+ state->inputEnabled = originalValue;
+}
+
+void cmdSetSpeed(AgiGame *state, uint8 *p) {
+ // V1 command
+ (void)state;
+ (void)p;
+ // speed = _v[p0];
+}
+
+void cmdSetItemView(AgiGame *state, uint8 *p) {
+ // V1 command
+ (void)state;
+ (void)p;
+}
+
+void cmdCallV1(AgiGame *state, uint8 *p) {
+ state->_vm->agiLoadResource(rLOGIC, p0);
+ state->logic_list[++state->max_logics];
+ _v[13] = 1;
+}
+
+void cmdNewRoomV1(AgiGame *state, uint8 *p) {
+ warning("cmdNewRoomV1()");
+ state->_vm->agiLoadResource(rLOGIC, p0);
+ state->max_logics = 1;
+ state->logic_list[1] = p0;
+ _v[13] = 1;
+}
+
+void cmdNewRoomVV1(AgiGame *state, uint8 *p) {
+ warning("cmdNewRoomVV1()");
+ state->_vm->agiLoadResource(rLOGIC, _v[p0]);
+ state->max_logics = 1;
+ state->logic_list[1] = _v[p0];
+ _v[13] = 1;
+}
+
+void cmdUnknown(AgiGame *state, uint8 *p) {
+ warning("Skipping unknown opcode %2X", *(code + ip - 1));
}
/**
@@ -1763,11 +1742,15 @@ void AgiEngine::setupOpcodes() {
* @param n Number of the logic resource to execute
*/
int AgiEngine::runLogic(int n) {
+ AgiGame *state = &_game;
uint8 op = 0;
uint8 p[CMD_BSIZE] = { 0 };
- uint8 *code = NULL;
int num = 0;
ScriptPos sp;
+ //int logic_index = 0;
+
+ state->logic_list[0] = 0;
+ state->max_logics = 0;
debugC(2, kDebugLevelScripts, "=================");
debugC(2, kDebugLevelScripts, "runLogic(%d)", n);
@@ -1783,10 +1766,9 @@ int AgiEngine::runLogic(int n) {
}
_game.lognum = n;
- _curLogic = &_game.logics[_game.lognum];
+ _game._curLogic = &_game.logics[_game.lognum];
- code = _curLogic->data;
- _curLogic->cIP = _curLogic->sIP;
+ _game._curLogic->cIP = _game._curLogic->sIP;
_timerHack = 0;
while (ip < _game.logics[n].size && !(shouldQuit() || _restartGame)) {
@@ -1833,19 +1815,39 @@ int AgiEngine::runLogic(int n) {
debugC(2, kDebugLevelScripts, "%sreturn() // Logic %d", st, n);
debugC(2, kDebugLevelScripts, "=================");
+// if (getVersion() < 0x2000) {
+// if (logic_index < state->max_logics) {
+// n = state->logic_list[++logic_index];
+// state->_curLogic = &state->logics[n];
+// state->lognum = n;
+// ip = 2;
+// warning("running logic %d\n", n);
+// break;
+// }
+// _v[13]=0;
+// }
+
_game.execStack.pop_back();
return 1;
default:
- num = logicNamesCmd[op].numArgs;
+ num = logicNamesCmd[op].argumentsLength();
memmove(p, code + ip, num);
memset(p + num, 0, CMD_BSIZE - num);
debugC(2, kDebugLevelScripts, "%s%s(%d %d %d)", st, logicNamesCmd[op].name, p[0], p[1], p[2]);
- (this->*_agiCommands[op])(p);
+ _agiCommands[op](&_game, p);
ip += num;
}
+// if ((op == 0x0B || op == 0x3F || op == 0x40) && logic_index < state->max_logics) {
+// n = state->logic_list[++logic_index];
+// state->_curLogic = &state->logics[n];
+// state->lognum = n;
+// ip = 2;
+// warning("running logic %d\n", n);
+// }
+
if (_game.exitAllLogics)
break;
}
@@ -1858,7 +1860,7 @@ int AgiEngine::runLogic(int n) {
void AgiEngine::executeAgiCommand(uint8 op, uint8 *p) {
debugC(2, kDebugLevelScripts, "%s(%d %d %d)", logicNamesCmd[op].name, p[0], p[1], p[2]);
- (this->*_agiCommands[op])(p);
+ _agiCommands[op](&_game, p);
}
} // End of namespace Agi
diff --git a/engines/agi/op_dbg.cpp b/engines/agi/op_dbg.cpp
index be73dbefae..87e235cf17 100644
--- a/engines/agi/op_dbg.cpp
+++ b/engines/agi/op_dbg.cpp
@@ -28,248 +28,17 @@ namespace Agi {
#define ip (_game.logics[lognum].cIP)
#define code (_game.logics[lognum].data)
-#ifdef _L
-#undef _L
-#endif
-
-#define _L(a,b,c) { a, b, c }
-
-struct AgiLogicnames logicNamesTest[] = {
- _L("", 0, 0x00),
- _L("equaln", 2, 0x80),
- _L("equalv", 2, 0xC0),
- _L("lessn", 2, 0x80),
- _L("lessv", 2, 0xC0),
- _L("greatern", 2, 0x80),
- _L("greaterv", 2, 0xC0),
- _L("isset", 1, 0x00),
- _L("issetv", 1, 0x80),
- _L("has", 1, 0x00),
- _L("obj.in.room", 2, 0x40),
- _L("posn", 5, 0x00),
- _L("controller", 1, 0x00),
- _L("have.key", 0, 0x00),
-
- // Not 0 args. Has variable number.
- _L("said", 0, 0x00),
-
- _L("compare.strings", 2, 0x00),
- _L("obj.in.box", 5, 0x00),
- _L("center.posn", 5, 0x00),
- _L("right.posn", 5, 0x00),
-
- // Haven't seen an official name for this command so tried to name it descriptively.
- _L("in.motion.using.mouse", 0, 0x00)
-};
-
-struct AgiLogicnames logicNamesIf[] = {
- _L("OR", 0, 0x00),
- _L("NOT", 0, 0x00),
- _L("ELSE", 0, 0x00),
- _L("IF", 0, 0x00)
-};
-
-struct AgiLogicnames logicNamesCmd[] = {
- _L("return", 0, 0x00), // 00
- _L("increment", 1, 0x80), // 01
- _L("decrement", 1, 0x80), // 02
- _L("assignn", 2, 0x80), // 03
- _L("assignv", 2, 0xC0), // 04
- _L("addn", 2, 0x80), // 05
- _L("addv", 2, 0xC0), // 06
- _L("subn", 2, 0x80), // 07
- _L("subv", 2, 0xC0), // 08
- _L("lindirectv", 2, 0xC0), // 09
- _L("rindirect", 2, 0xC0), // 0A
- _L("lindirectn", 2, 0x80), // 0B
- _L("set", 1, 0x00), // 0C
- _L("reset", 1, 0x00), // 0D
- _L("toggle", 1, 0x00), // 0E
- _L("set.v", 1, 0x80), // 0F
- _L("reset.v", 1, 0x80), // 10
- _L("toggle.v", 1, 0x80), // 11
- _L("new.room", 1, 0x00), // 12
- _L("new.room.v", 1, 0x80), // 13
- _L("load.logics", 1, 0x00), // 14
- _L("load.logics.v", 1, 0x80), // 15
- _L("call", 1, 0x00), // 16
- _L("call.v", 1, 0x80), // 17
- _L("load.pic", 1, 0x80), // 18
- _L("draw.pic", 1, 0x80), // 19
- _L("show.pic", 0, 0x00), // 1A
- _L("discard.pic", 1, 0x80), // 1B
- _L("overlay.pic", 1, 0x80), // 1C
- _L("show.pri.screen", 0, 0x00), // 1D
- _L("load.view", 1, 0x00), // 1E
- _L("load.view.v", 1, 0x80), // 1F
- _L("discard.view", 1, 0x00), // 20
- _L("animate.obj", 1, 0x00), // 21
- _L("unanimate.all", 0, 0x00), // 22
- _L("draw", 1, 0x00), // 23
- _L("erase", 1, 0x00), // 24
- _L("position", 3, 0x00), // 25
- _L("position.v", 3, 0x60), // 26
- _L("get.posn", 3, 0x60), // 27
- _L("reposition", 3, 0x60), // 28
- _L("set.view", 2, 0x00), // 29
- _L("set.view.v", 2, 0x40), // 2A
- _L("set.loop", 2, 0x00), // 2B
- _L("set.loop.v", 2, 0x40), // 2C
- _L("fix.loop", 1, 0x00), // 2D
- _L("release.loop", 1, 0x00), // 2E
- _L("set.cel", 2, 0x00), // 2F
- _L("set.cel.v", 2, 0x40), // 30
- _L("last.cel", 2, 0x40), // 31
- _L("current.cel", 2, 0x40), // 32
- _L("current.loop", 2, 0x40), // 33
- _L("current.view", 2, 0x40), // 34
- _L("number.of.loops", 2, 0x40), // 35
- _L("set.priority", 2, 0x00), // 36
- _L("set.priority.v", 2, 0x40), // 37
- _L("release.priority", 1, 0x00), // 38
- _L("get.priority", 2, 0x40), // 39
- _L("stop.update", 1, 0x00), // 3A
- _L("start.update", 1, 0x00), // 3B
- _L("force.update", 1, 0x00), // 3C
- _L("ignore.horizon", 1, 0x00), // 3D
- _L("observe.horizon", 1, 0x00), // 3E
- _L("set.horizon", 1, 0x00), // 3F
- _L("object.on.water", 1, 0x00), // 40
- _L("object.on.land", 1, 0x00), // 41
- _L("object.on.anything", 1, 0x00), // 42
- _L("ignore.objs", 1, 0x00), // 43
- _L("observe.objs", 1, 0x00), // 44
- _L("distance", 3, 0x20), // 45
- _L("stop.cycling", 1, 0x00), // 46
- _L("start.cycling", 1, 0x00), // 47
- _L("normal.cycle", 1, 0x00), // 48
- _L("end.of.loop", 2, 0x00), // 49
- _L("reverse.cycle", 1, 0x00), // 4A
- _L("reverse.loop", 2, 0x00), // 4B
- _L("cycle.time", 2, 0x40), // 4C
- _L("stop.motion", 1, 0x00), // 4D
- _L("start.motion", 1, 0x00), // 4E
- _L("step.size", 2, 0x40), // 4F
- _L("step.time", 2, 0x40), // 50
- _L("move.obj", 5, 0x00), // 51
- _L("move.obj.v", 5, 0x70), // 52
- _L("follow.ego", 3, 0x00), // 53
- _L("wander", 1, 0x00), // 54
- _L("normal.motion", 1, 0x00), // 55
- _L("set.dir", 2, 0x40), // 56
- _L("get.dir", 2, 0x40), // 57
- _L("ignore.blocks", 1, 0x00), // 58
- _L("observe.blocks", 1, 0x00), // 59
- _L("block", 4, 0x00), // 5A
- _L("unblock", 0, 0x00), // 5B
- _L("get", 1, 0x00), // 5C
- _L("get.v", 1, 0x80), // 5D
- _L("drop", 1, 0x00), // 5E
- _L("put", 2, 0x00), // 5F
- _L("put.v", 2, 0x40), // 60
- _L("get.room.v", 2, 0xC0), // 61
- _L("load.sound", 1, 0x00), // 62
- _L("sound", 2, 0x00), // 63
- _L("stop.sound", 0, 0x00), // 64
- _L("print", 1, 0x00), // 65
- _L("print.v", 1, 0x80), // 66
- _L("display", 3, 0x00), // 67
- _L("display.v", 3, 0xE0), // 68
- _L("clear.lines", 3, 0x00), // 69
- _L("text.screen", 0, 0x00), // 6A
- _L("graphics", 0, 0x00), // 6B
- _L("set.cursor.char", 1, 0x00), // 6C
- _L("set.text.attribute", 2, 0x00), // 6D
- _L("shake.screen", 1, 0x00), // 6E
- _L("configure.screen", 3, 0x00), // 6F
- _L("status.line.on", 0, 0x00), // 70
- _L("status.line.off", 0, 0x00), // 71
- _L("set.string", 2, 0x00), // 72
- _L("get.string", 5, 0x00), // 73
- _L("word.to.string", 2, 0x00), // 74
- _L("parse", 1, 0x00), // 75
- _L("get.num", 2, 0x40), // 76
- _L("prevent.input", 0, 0x00), // 77
- _L("accept.input", 0, 0x00), // 78
- _L("set.key", 3, 0x00), // 79
- _L("add.to.pic", 7, 0x00), // 7A
- _L("add.to.pic.v", 7, 0xFE), // 7B
- _L("status", 0, 0x00), // 7C
- _L("save.game", 0, 0x00), // 7D
- _L("restore.game", 0, 0x00), // 7E
- _L("init.disk", 0, 0x00), // 7F
- _L("restart.game", 0, 0x00), // 80
- _L("show.obj", 1, 0x00), // 81
- _L("random", 3, 0x20), // 82
- _L("program.control", 0, 0x00), // 83
- _L("player.control", 0, 0x00), // 84
- _L("obj.status.v", 1, 0x80), // 85
- // 0 args for AGI version 2.089
- _L("quit", 1, 0x00), // 86
-
- _L("show.mem", 0, 0x00), // 87
- _L("pause", 0, 0x00), // 88
- _L("echo.line", 0, 0x00), // 89
- _L("cancel.line", 0, 0x00), // 8A
- _L("init.joy", 0, 0x00), // 8B
- _L("toggle.monitor", 0, 0x00), // 8C
- _L("version", 0, 0x00), // 8D
- _L("script.size", 1, 0x00), // 8E
- _L("set.game.id", 1, 0x00), // 8F
- _L("log", 1, 0x00), // 90
- _L("set.scan.start", 0, 0x00), // 91
- _L("reset.scan.start", 0, 0x00), // 92
- _L("reposition.to", 3, 0x00), // 93
- _L("reposition.to.v", 3, 0x60), // 94
- _L("trace.on", 0, 0x00), // 95
- _L("trace.info", 3, 0x00), // 96
-
- // 3 args for AGI versions before 2.440
- _L("print.at", 4, 0x00), // 97
- _L("print.at.v", 4, 0x80), // 98
-
- _L("discard.view.v", 1, 0x80), // 99
- _L("clear.text.rect", 5, 0x00), // 9A
- _L("set.upper.left", 2, 0x00), // 9B
- _L("set.menu", 1, 0x00), // 9C
- _L("set.menu.item", 2, 0x00), // 9D
- _L("submit.menu", 0, 0x00), // 9E
- _L("enable.item", 1, 0x00), // 9F
- _L("disable.item", 1, 0x00), // A0
- _L("menu.input", 0, 0x00), // A1
- _L("show.obj.v", 1, 0x01), // A2
- _L("open.dialogue", 0, 0x00), // A3
- _L("close.dialogue", 0, 0x00), // A4
- _L("mul.n", 2, 0x80), // A5
- _L("mul.v", 2, 0xC0), // A6
- _L("div.n", 2, 0x80), // A7
- _L("div.v", 2, 0xC0), // A8
- _L("close.window", 0, 0x00), // A9
-
- _L("set.simple", 1, 0x00), // AA
- _L("push.script", 0, 0x00), // AB
- _L("pop.script", 0, 0x00), // AC
- _L("hold.key", 0, 0x00), // AD
- _L("set.pri.base", 1, 0x00), // AE
- _L("discard.sound", 1, 0x00), // AF
-
- // 1 arg for AGI version 3.002.086
- _L("hide.mouse", 0, 0x00), // B0
-
- _L("allow.menu", 1, 0x00), // B1
- _L("show.mouse", 0, 0x00), // B2
- _L("fence.mouse", 4, 0x00), // B3
- _L("mouse.posn", 2, 0x00), // B4
- _L("release.key", 0, 0x00), // B5
-
- // 2 args for at least the Amiga Gold Rush! (v2.05 1989-03-09) using Amiga AGI 2.316.
- _L("adj.ego.move.to.xy", 0, 0x00), // B6
- _L(NULL, 0, 0x00)
+AgiInstruction logicNamesIf[] = {
+ { "OR", "", NULL },
+ { "NOT", "", NULL },
+ { "ELSE", "", NULL },
+ { "IF", "", NULL }
};
void AgiEngine::debugConsole(int lognum, int mode, const char *str) {
- AgiLogicnames *x;
- uint8 a, c, z;
+ AgiInstruction *x;
+ uint8 a, z;
+ const char *c;
if (str) {
debug(0, " %s", str);
@@ -302,8 +71,8 @@ void AgiEngine::debugConsole(int lognum, int mode, const char *str) {
break;
default:
x = mode == lCOMMAND_MODE ? logicNamesCmd : logicNamesTest;
- a = (unsigned char)(x + *(code + ip))->numArgs;
- c = (unsigned char)(x + *(code + ip))->argMask;
+ a = x[*(code + ip)].argumentsLength();
+ c = x[*(code + ip)].args;
if (_debug.opcodes) {
debugN(0, "%02X %02X %02X %02X %02X %02X %02X %02X %02X\n"
@@ -321,12 +90,12 @@ void AgiEngine::debugConsole(int lognum, int mode, const char *str) {
debugN(0, "%s ", (x + *(code + ip))->name);
for (z = 1; a > 0;) {
- if (~c & 0x80) {
+ if (*c == 'n') {
debugN(0, "%d", *(code + (ip + z)));
} else {
debugN(0, "v%d[%d]", *(code + (ip + z)), getvar(*(code + (ip + z))));
}
- c <<= 1;
+ c++;
z++;
if (--a > 0)
debugN(0, ",");
diff --git a/engines/agi/op_test.cpp b/engines/agi/op_test.cpp
index 0660a614b6..a44c68e0fc 100644
--- a/engines/agi/op_test.cpp
+++ b/engines/agi/op_test.cpp
@@ -23,18 +23,180 @@
#include "agi/agi.h"
#include "agi/opcodes.h"
+#include "common/endian.h"
namespace Agi {
-#define ip (_game.logics[lognum].cIP)
-#define code (_game.logics[lognum].data)
+#define ip (state->_curLogic->cIP)
+#define code (state->_curLogic->data)
+
+#define getvar(a) state->_vm->getvar(a)
+#define getflag(a) state->_vm->getflag(a)
#define testEqual(v1, v2) (getvar(v1) == (v2))
#define testLess(v1, v2) (getvar(v1) < (v2))
#define testGreater(v1, v2) (getvar(v1) > (v2))
#define testIsSet(flag) (getflag(flag))
-#define testHas(obj) (objectGetLocation(obj) == EGO_OWNED)
-#define testObjInRoom(obj, v) (objectGetLocation(obj) == getvar(v))
+#define testHas(obj) (state->_vm->objectGetLocation(obj) == EGO_OWNED)
+#define testHasV1(obj) (state->_vm->objectGetLocation(obj) == EGO_OWNED_V1)
+#define testObjInRoom(obj, v) (state->_vm->objectGetLocation(obj) == getvar(v))
+
+void condEqual(AgiGame *state, uint8 *p) {
+ if (p[0] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testEqual(p[0], p[1]);
+}
+
+void condEqualV(AgiGame *state, uint8 *p) {
+ if (p[0] == 11 || p[1] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testEqual(p[0], getvar(p[1]));
+}
+
+void condLess(AgiGame *state, uint8 *p) {
+ if (p[0] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testLess(p[0], p[1]);
+}
+
+void condLessV(AgiGame *state, uint8 *p) {
+ if (p[0] == 11 || p[1] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testLess(p[0], getvar(p[1]));
+}
+
+void condGreater(AgiGame *state, uint8 *p) {
+ if (p[0] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testGreater(p[0], p[1]);
+}
+
+void condGreaterV(AgiGame *state, uint8 *p) {
+ if (p[0] == 11 || p[1] == 11)
+ state->_vm->_timerHack++;
+ state->testResult = testGreater(p[0], getvar(p[1]));
+}
+
+void condIsSet(AgiGame *state, uint8 *p) {
+ state->testResult = testIsSet(p[0]);
+}
+
+void condIsSetV(AgiGame *state, uint8 *p) {
+ state->testResult = testIsSet(getvar(p[1]));
+}
+
+void condIsSetV1(AgiGame *state, uint8 *p) {
+ state->testResult = getvar(p[0]) > 0;
+}
+
+void condHas(AgiGame *state, uint8 *p) {
+ state->testResult = testHas(p[0]);
+}
+
+void condHasV1(AgiGame *state, uint8 *p) {
+ state->testResult = testHasV1(p[0]);
+}
+
+void condObjInRoom(AgiGame *state, uint8 *p) {
+ state->testResult = testObjInRoom(p[0], p[1]);
+}
+
+void condPosn(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testPosn(p[0], p[1], p[2], p[3], p[4]);
+}
+
+void condController(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testController(p[0]);
+}
+
+void condHaveKey(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testKeypressed();
+}
+
+void condSaid(AgiGame *state, uint8 *p) {
+ int ec = state->_vm->testSaid(p[0], p + 1);
+ state->testResult = ec;
+}
+
+void condSaid1(AgiGame *state, uint8 *p) {
+ state->testResult = false;
+
+ if (!getflag(fEnteredCli))
+ return;
+
+ int id0 = READ_LE_UINT16(p);
+
+ if ((id0 == 1 || id0 == state->egoWords[0].id))
+ state->testResult = true;
+}
+
+void condSaid2(AgiGame *state, uint8 *p) {
+ state->testResult = false;
+
+ if (!getflag(fEnteredCli))
+ return;
+
+ int id0 = READ_LE_UINT16(p);
+ int id1 = READ_LE_UINT16(p + 2);
+
+ if ((id0 == 1 || id0 == state->egoWords[0].id) &&
+ (id1 == 1 || id1 == state->egoWords[1].id))
+ state->testResult = true;
+}
+
+void condSaid3(AgiGame *state, uint8 *p) {
+ state->testResult = false;
+
+ if (!getflag(fEnteredCli))
+ return;
+
+ int id0 = READ_LE_UINT16(p);
+ int id1 = READ_LE_UINT16(p + 2);
+ int id2 = READ_LE_UINT16(p + 4);
+
+ if ((id0 == 1 || id0 == state->egoWords[0].id) &&
+ (id1 == 1 || id1 == state->egoWords[1].id) &&
+ (id2 == 1 || id2 == state->egoWords[2].id))
+ state->testResult = true;
+}
+
+void condBit(AgiGame *state, uint8 *p) {
+ state->testResult = (getvar(p[1]) >> p[0]) & 1;
+}
+
+void condCompareStrings(AgiGame *state, uint8 *p) {
+ debugC(7, kDebugLevelScripts, "comparing [%s], [%s]", state->strings[p[0]], state->strings[p[1]]);
+ state->testResult = state->_vm->testCompareStrings(p[0], p[1]);
+}
+
+void condObjInBox(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testObjInBox(p[0], p[1], p[2], p[3], p[4]);
+}
+
+void condCenterPosn(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testObjCenter(p[0], p[1], p[2], p[3], p[4]);
+}
+
+void condRightPosn(AgiGame *state, uint8 *p) {
+ state->testResult = state->_vm->testObjRight(p[0], p[1], p[2], p[3], p[4]);
+}
+
+void condUnknown13(AgiGame *state, uint8 *p) {
+ // My current theory is that this command checks whether the ego is currently moving
+ // and that that movement has been caused using the mouse and not using the keyboard.
+ // I base this theory on the game's behavior on an Amiga emulator, not on disassembly.
+ // This command is used at least in the Amiga version of Gold Rush! v2.05 1989-03-09
+ // (AGI 2.316) in logics 1, 3, 5, 6, 137 and 192 (Logic.192 revealed this command's nature).
+ // TODO: Check this command's implementation using disassembly just to be sure.
+ int ec = state->viewTable[0].flags & fAdjEgoXY;
+ debugC(7, kDebugLevelScripts, "op_test: in.motion.using.mouse = %s (Amiga-specific testcase 19)", ec ? "true" : "false");
+ state->testResult = ec;
+}
+
+void condUnknown(AgiGame *state, uint8 *p) {
+ warning("Skipping unknown test command %2X", *(code + ip - 1));
+ state->testResult = false;
+}
uint8 AgiEngine::testCompareStrings(uint8 s1, uint8 s2) {
char ms1[MAX_STRINGLEN];
@@ -147,6 +309,7 @@ uint8 AgiEngine::testObjRight(uint8 n, uint8 x1, uint8 y1, uint8 x2, uint8 y2) {
// When player has entered something, it is parsed elsewhere
uint8 AgiEngine::testSaid(uint8 nwords, uint8 *cc) {
+ AgiGame *state = &_game;
int c, n = _game.numEgoWords;
int z = 0;
@@ -202,210 +365,110 @@ uint8 AgiEngine::testSaid(uint8 nwords, uint8 *cc) {
}
int AgiEngine::testIfCode(int lognum) {
- int ec = true;
- int retval = true;
- uint8 op = 0;
- uint8 notTest = false;
- uint8 orTest = false;
- uint16 lastIp = ip;
- uint8 p[16] = { 0 };
- bool end_test = false;
-
- while (retval && !(shouldQuit() || _restartGame) && !end_test) {
+ AgiGame *state = &_game;
+ uint8 op;
+ uint8 p[16];
+
+ int notMode = false;
+ int orMode = false;
+ int endTest = false;
+ int result = true;
+
+ while (!(shouldQuit() || _restartGame) && !endTest) {
if (_debug.enabled && (_debug.logic0 || lognum))
debugConsole(lognum, lTEST_MODE, NULL);
- lastIp = ip;
op = *(code + ip++);
memmove(p, (code + ip), 16);
switch (op) {
- case 0xFF: // END IF, TEST true
- end_test = true;
- break;
- case 0xFD:
- notTest = !notTest;
- continue;
- case 0xFC: // OR
- // if or_test is ON and we hit 0xFC, end of OR, then
- // or is STILL false so break.
- if (orTest) {
- ec = false;
- retval = false;
- end_test = true;
+ case 0xFC:
+ if (orMode) {
+ // We have reached the end of an OR expression without
+ // a single test command evaluating as true. Thus the OR
+ // expression evalutes as false which means the whole
+ // expression evaluates as false. So skip until the
+ // ending 0xFF and return.
+ skipInstructionsUntil(0xFF);
+ result = false;
+ endTest = true;
+ } else {
+ orMode = true;
}
-
- orTest = true;
continue;
-
+ case 0xFD:
+ notMode = true;
+ continue;
case 0x00:
- // return true?
- end_test = true;
- break;
- case 0x01:
- ec = testEqual(p[0], p[1]);
- if (p[0] == 11)
- _timerHack++;
- break;
- case 0x02:
- ec = testEqual(p[0], getvar(p[1]));
- if (p[0] == 11 || p[1] == 11)
- _timerHack++;
- break;
- case 0x03:
- ec = testLess(p[0], p[1]);
- if (p[0] == 11)
- _timerHack++;
- break;
- case 0x04:
- ec = testLess(p[0], getvar(p[1]));
- if (p[0] == 11 || p[1] == 11)
- _timerHack++;
- break;
- case 0x05:
- ec = testGreater(p[0], p[1]);
- if (p[0] == 11)
- _timerHack++;
- break;
- case 0x06:
- ec = testGreater(p[0], getvar(p[1]));
- if (p[0] == 11 || p[1] == 11)
- _timerHack++;
- break;
- case 0x07:
- ec = testIsSet(p[0]);
- break;
- case 0x08:
- ec = testIsSet(getvar(p[0]));
- break;
- case 0x09:
- ec = testHas(p[0]);
- break;
- case 0x0A:
- ec = testObjInRoom(p[0], p[1]);
- break;
- case 0x0B:
- ec = testPosn(p[0], p[1], p[2], p[3], p[4]);
- break;
- case 0x0C:
- ec = testController(p[0]);
- break;
- case 0x0D:
- ec = testKeypressed();
- break;
- case 0x0E:
- ec = testSaid(p[0], (uint8 *) code + (ip + 1));
- ip = lastIp;
- ip++; // skip opcode
- ip += p[0] * 2; // skip num_words * 2
- ip++; // skip num_words opcode
- break;
- case 0x0F:
- debugC(7, kDebugLevelScripts, "comparing [%s], [%s]", _game.strings[p[0]], _game.strings[p[1]]);
- ec = testCompareStrings(p[0], p[1]);
- break;
- case 0x10:
- ec = testObjInBox(p[0], p[1], p[2], p[3], p[4]);
- break;
- case 0x11:
- ec = testObjCenter(p[0], p[1], p[2], p[3], p[4]);
- break;
- case 0x12:
- ec = testObjRight(p[0], p[1], p[2], p[3], p[4]);
- break;
- case 0x13: // Unknown test command 19
- // My current theory is that this command checks whether the ego is currently moving
- // and that that movement has been caused using the mouse and not using the keyboard.
- // I base this theory on the game's behavior on an Amiga emulator, not on disassembly.
- // This command is used at least in the Amiga version of Gold Rush! v2.05 1989-03-09
- // (AGI 2.316) in logics 1, 3, 5, 6, 137 and 192 (Logic.192 revealed this command's nature).
- // TODO: Check this command's implementation using disassembly just to be sure.
- ec = _game.viewTable[0].flags & ADJ_EGO_XY;
- debugC(7, kDebugLevelScripts, "op_test: in.motion.using.mouse = %s (Amiga-specific testcase 19)", ec ? "true" : "false");
- break;
+ case 0xFF:
+ endTest = true;
+ continue;
+
default:
- ec = false;
- end_test = true;
- }
-
- if (!end_test) {
- if (op <= 0x12)
- ip += logicNamesTest[op].numArgs;
-
- // exchange ec value
- if (notTest)
- ec = !ec;
-
- // not is only enabled for 1 test command
- notTest = false;
-
- if (orTest && ec) {
- // a true inside an OR statement passes
- // ENTIRE statement scan for end of OR
-
- // CM: test for opcode < 0xfc changed from 'op' to
- // '*(code+ip)', to avoid problem with the 0xfd (NOT)
- // opcode byte. Changed a bad ip += ... ip++ construct.
- // This should fix the crash with Larry's logic.0 code:
- //
- // if ((isset(4) ||
- // !isset(2) ||
- // v30 == 2 ||
- // v30 == 1)) {
- // goto Label1;
- // }
- //
- // The bytecode is:
- // ff fc 07 04 fd 07 02 01 1e 02 01 1e 01 fc ff
-
- // find end of OR
- while (*(code + ip) != 0xFC) {
- if (*(code + ip) == 0x0E) { // said
- ip++;
-
- // cover count + ^words
- ip += 1 + ((*(code + ip)) * 2);
- continue;
- }
-
- if (*(code + ip) < 0xFC)
- ip += logicNamesTest[*(code + ip)].numArgs;
- ip++;
+ // Evaluate the command and skip the rest of the instruction
+ _agiCondCommands[op](state, p);
+ skipInstruction(op);
+
+ // NOT mode is enabled only for one instruction
+ if (notMode)
+ state->testResult = !state->testResult;
+ notMode = false;
+
+ if (orMode) {
+ if (state->testResult) {
+ // We are in OR mode and the last test command evaluated
+ // as true, thus the whole OR expression evaluates as
+ // true. So skip the rest of the OR expression and
+ // continue normally.
+ skipInstructionsUntil(0xFC);
+ orMode = false;
+ continue;
}
- ip++;
-
- orTest = false;
- retval = true;
} else {
- retval = orTest ? retval || ec : retval && ec;
+ result &= state->testResult;
+ if (!result) {
+ // Since we are in AND mode and the last test command
+ // evaluated as false, the whole expression also evaluates
+ // as false. So skip until the ending 0xFF and return.
+ skipInstructionsUntil(0xFF);
+ endTest = true;
+ continue;
+ }
}
+ break;
}
}
- // if false, scan for end of IP?
- if (retval)
+ // Skip the following IF block if the condition evaluates as false
+ if (result)
ip += 2;
- else {
- ip = lastIp;
- while (*(code + ip) != 0xff) {
- if (*(code + ip) == 0x0e) {
- ip++;
- ip += (*(code + ip)) * 2 + 1;
- } else if (*(code + ip) < 0xfc) {
- ip += logicNamesTest[*(code + ip)].numArgs;
- ip++;
- } else {
- ip++;
- }
- }
- ip++; // skip over 0xFF
+ else
ip += READ_LE_UINT16(code + ip) + 2;
- }
if (_debug.enabled && (_debug.logic0 || lognum))
- debugConsole(lognum, 0xFF, retval ? "=true" : "=false");
+ debugConsole(lognum, 0xFF, result ? "=true" : "=false");
+
+ return result;
+}
- return retval;
+void AgiEngine::skipInstruction(byte op) {
+ AgiGame *state = &_game;
+ if (op >= 0xFC)
+ return;
+ if (op == 0x0E && state->_vm->getVersion() >= 0x2000) // said
+ ip += *(code + ip) * 2 + 1;
+ else
+ ip += logicNamesTest[op].argumentsLength();
+}
+
+void AgiEngine::skipInstructionsUntil(byte v) {
+ AgiGame *state = &_game;
+ while (1) {
+ byte op = *(code + ip++);
+ if (op == v)
+ return;
+ skipInstruction(op);
+ }
}
} // End of namespace Agi
diff --git a/engines/agi/opcodes.cpp b/engines/agi/opcodes.cpp
new file mode 100644
index 0000000000..c2cecefc52
--- /dev/null
+++ b/engines/agi/opcodes.cpp
@@ -0,0 +1,381 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "agi/agi.h"
+#include "agi/opcodes.h"
+
+namespace Agi {
+
+AgiInstruction *logicNamesTest;
+AgiInstruction *logicNamesCmd;
+
+AgiInstruction insV1Test[] = {
+ { "", "", &condUnknown }, // 00
+ { "equaln", "vn", &condEqual }, // 01
+ { "equalv", "vv", &condEqualV }, // 02
+ { "lessn", "vn", &condLess }, // 03
+ { "lessv", "vv", &condLessV }, // 04
+ { "greatern", "vn", &condGreater }, // 05
+ { "greaterv", "vv", &condGreaterV }, // 06
+ { "isset", "v", &condIsSetV1 }, // 07
+ { "has", "n", &condHasV1 }, // 08
+ { "said", "nnnn", &condSaid2 }, // 09
+ { "posn", "nnnnn", &condPosn }, // 0A
+ { "controller", "n", &condController }, // 0B
+ { "obj.in.room", "nv", &condObjInRoom }, // 0C
+ { "said", "nnnnnn", &condSaid3 }, // 0D
+ { "have.key", "", &condHaveKey }, // 0E
+ { "said", "nn", &condSaid1 }, // 0F
+ { "bit", "nv", &condBit }, // 10
+};
+
+AgiInstruction insV1[] = {
+ { "return", "", NULL }, // 00
+ { "increment", "v", &cmdIncrement }, // 01
+ { "decrement", "v", &cmdDecrement }, // 02
+ { "assignn", "vn", &cmdAssignN }, // 03
+ { "assignv", "vv", &cmdAssignV }, // 04
+ { "addn", "vn", &cmdAddN }, // 05
+ { "addv", "vv", &cmdAddV }, // 06
+ { "subn", "vn", &cmdSubN }, // 07
+ { "subv", "vv", &cmdSubV }, // 08
+ { "load.view", "n", &cmdLoadView }, // 09
+ { "animate.obj", "n", &cmdAnimateObj }, // 0A
+ { "new.room", "n", &cmdNewRoomV1 }, // 0B
+ { "draw.pic", "v", &cmdDrawPicV1 }, // 0C
+ { "print", "s", &cmdPrint }, // 0D TODO
+ { "status", "", &cmdStatus }, // 0E TODO
+ { "save.game", "", &cmdSaveGame }, // 0F TODO
+ { "restore.game", "", &cmdLoadGame }, // 10 TODO
+ { "init.disk", "", &cmdInitDisk }, // 11 TODO
+ { "restart.game", "", &cmdRestartGame }, // 12 TODO
+ { "random", "v", &cmdRandomV1 }, // 13
+ { "get", "n", &cmdGetV1 }, // 14
+ { "drop", "n", &cmdDrop }, // 15
+ { "draw", "n", &cmdDraw }, // 16 TODO
+ { "erase", "n", &cmdErase }, // 17 TODO
+ { "position", "nnn", &cmdPositionV1 }, // 18
+ { "position.v", "nvv", &cmdPositionFV1 }, // 19
+ { "get.posn", "nvv", &cmdGetPosn }, // 1A
+ { "set.cel", "nn", &cmdSetCel }, // 1B
+ { "set.loop", "nn", &cmdSetLoop }, // 1C
+ { "end.of.loop", "nn", &cmdEndOfLoopV1 }, // 1D
+ { "reverse.loop", "nn", &cmdReverseLoopV1 }, // 1E
+ { "move.obj", "nnnnn", &cmdMoveObj }, // 1F
+ { "set.view", "nn", &cmdSetView }, // 20
+ { "follow.ego", "nnn", &cmdFollowEgo }, // 21
+ { "block", "", &cmdBlock }, // 22
+ { "unblock", "", &cmdUnblock }, // 23
+ { "ignore.blocks", "n", &cmdIgnoreBlocks }, // 24
+ { "observe.blocks", "n", &cmdObserveBlocks }, // 25
+ { "wander", "n", &cmdWander }, // 26
+ { "reposition", "nvv", &cmdRepositionV1 }, // 27
+ { "stop.motion", "n", &cmdStopMotionV1 }, // 28
+ { "start.motion", "n", &cmdStartMotionV1 }, // 29
+ { "stop.cycling", "n", &cmdStopCycling }, // 2A
+ { "start.cycling", "n", &cmdStartCycling }, // 2B
+ { "stop.update", "n", &cmdStopUpdate }, // 2C
+ { "start.update", "n", &cmdStartUpdate }, // 2D
+ { "program.control", "", &cmdProgramControl }, // 2E
+ { "player.control", "", &cmdPlayerControl }, // 2F
+ { "set.priority", "nn", &cmdSetPriority }, // 30
+ { "release.priority", "n", &cmdReleasePriority }, // 31
+ { "add.to.pic", "nnnnnn", &cmdAddToPicV1 }, // 32
+ { "set.horizon", "n", &cmdSetHorizon }, // 33
+ { "ignore.horizon", "n", &cmdIgnoreHorizon }, // 34
+ { "observe.horizon", "n", &cmdObserveHorizon }, // 35
+ { "load.logics", "n", &cmdLoadLogic }, // 36 TODO
+ { "object.on.water", "n", &cmdObjectOnWater }, // 37
+ { "load.pic", "v", &cmdLoadPicV1 }, // 38
+ { "load.sound", "n", &cmdLoadSound }, // 39
+ { "sound", "nn", &cmdSound }, // 3A
+ { "stop.sound", "", &cmdStopSound }, // 3B
+ { "set.v", "v", &cmdSetV }, // 3C
+ { "reset.v", "v", &cmdResetV }, // 3D
+ { "toggle.v", "v", &cmdToggleV }, // 3E
+ { "new.room.v", "v", &cmdNewRoomVV1 }, // 3F TODO
+ { "call", "n", &cmdCallV1 }, // 40 TODO
+ { "quit", "", &cmdQuitV1 }, // 41
+ { "set.speed", "v", &cmdSetSpeed }, // 42
+ { "move.obj.v", "nvvvv", &cmdMoveObjF }, // 43
+ { "...", "nn", &cmdUnknown }, // 44
+ { "get.v", "v", &cmdUnknown }, // 45
+ { "assign.v", "vv", &cmdUnknown }, // 46
+ { "...", "n", &cmdUnknown }, // 47 # printvar.v
+ { "get.priority", "nv", &cmdGetPriority }, // 48
+ { "ignore.objs", "n", &cmdIgnoreObjs }, // 49
+ { "observe.objs", "n", &cmdObserveObjs }, // 4A
+ { "distance", "nnv", &cmdDistance }, // 4B
+ { "object.on.land", "n", &cmdObjectOnLand }, // 4C
+ { "...", "nv", &cmdUnknown }, // 4D # set.priority.f
+ { "...", "", &cmdUnknown }, // 4E # show.obj
+ { "load.logics", "n", &cmdLoadLogic }, // 4F # load.global.logics
+ { "display", "nnns", &cmdDisplay }, // 50 TODO: 4 vs 3 args
+ { "prevent.input???", "", &cmdUnknown }, // 51
+ { "...", "", &cmdUnknown }, // 52 # nop
+ { "...", "n", &cmdUnknown }, // 53 # text.screen
+ { "...", "", &cmdUnknown }, // 54 ???
+ { "stop.motion", "", &cmdStopMotion }, // 55 or force.update??
+ { "discard.view", "n", &cmdDiscardView }, // 56
+ { "discard.pic", "v", &cmdDiscardPic }, // 57
+ { "set.item.view", "nn", &cmdSetItemView }, // 58
+ { "...", "", &cmdUnknown }, // 59 # reverse.cycle
+ { "last.cel", "nv", &cmdLastCel }, // 5A
+ { "set.cel.v", "nv", &cmdSetCelF }, // 5B
+ { "...", "", &cmdUnknown }, // 5C # normal.cycle
+ { "load.view", "n", &cmdLoadView }, // 5D
+ { "...", "", &cmdUnknown }, // 5E
+ { "...", "", &cmdUnknown }, // 5F
+ { "setbit", "nv", &cmdUnknown }, // 60
+ { "...", "nv", &cmdUnknown }, // 61 # clearbit
+};
+
+AgiInstruction insV2Test[] = {
+ { "", "", &condUnknown }, // 00
+ { "equaln", "vn", &condEqual }, // 01
+ { "equalv", "vv", &condEqualV }, // 02
+ { "lessn", "vn", &condLess }, // 03
+ { "lessv", "vv", &condLessV }, // 04
+ { "greatern", "vn", &condGreater }, // 05
+ { "greaterv", "vv", &condGreaterV }, // 06
+ { "isset", "n", &condIsSet }, // 07
+ { "issetv", "v", &condIsSetV }, // 08
+ { "has", "n", &condHas }, // 09
+ { "obj.in.room", "nv", &condObjInRoom}, // 0A
+ { "posn", "nnnnn", &condPosn }, // 0B
+ { "controller", "n", &condController }, // 0C
+ { "have.key", "", &condHaveKey}, // 0D
+ { "said", "", &condSaid }, // 0E
+ { "compare.strings", "ss", &condCompareStrings }, // 0F
+ { "obj.in.box", "nnnnn", &condObjInBox }, // 10
+ { "center.posn", "nnnnn", &condCenterPosn }, // 11
+ { "right.posn", "nnnnn", &condRightPosn }, // 12
+ { "in.motion.using.mouse", "", &condUnknown13 } // 13
+};
+
+AgiInstruction insV2[] = {
+ { "return", "", NULL },
+ { "increment", "v", &cmdIncrement },
+ { "decrement", "v", &cmdDecrement },
+ { "assignn", "vn", &cmdAssignN },
+ { "assignv", "vv", &cmdAssignV },
+ { "addn", "vn", &cmdAddN },
+ { "addv", "vv", &cmdAddV },
+ { "subn", "vn", &cmdSubN },
+ { "subv", "vv", &cmdSubV },
+ { "lindirectv", "vv", &cmdLindirectV },
+ { "lindirect", "vv", &cmdRindirect },
+ { "lindirectn", "vn", &cmdLindirectN },
+ { "set", "n", &cmdSet },
+ { "reset", "n", &cmdReset },
+ { "toggle", "n", &cmdToggle },
+ { "set.v", "v", &cmdSetV },
+ { "reset.v", "v", &cmdResetV },
+ { "toggle.v", "v", &cmdToggleV },
+ { "new.room", "n", &cmdNewRoom },
+ { "new.room.v", "v", &cmdNewRoomF },
+ { "load.logics", "n", &cmdLoadLogic },
+ { "load.logics.v", "v", &cmdLoadLogicF },
+ { "call", "n", &cmdCall },
+ { "call.v", "v", &cmdCallF },
+ { "load.pic", "v", &cmdLoadPic },
+ { "draw.pic", "v", &cmdDrawPic },
+ { "show.pic", "", &cmdShowPic },
+ { "discard.pic", "v", &cmdDiscardPic },
+ { "overlay.pic", "v", &cmdOverlayPic },
+ { "show.pri.screen", "", &cmdShowPriScreen },
+ { "load.view", "n", &cmdLoadView },
+ { "load.view.v", "v", &cmdLoadViewF },
+ { "discard.view", "n", &cmdDiscardView },
+ { "animate.obj", "n", &cmdAnimateObj },
+ { "unanimate.all", "", &cmdUnanimateAll },
+ { "draw", "n", &cmdDraw },
+ { "erase", "n", &cmdErase },
+ { "position", "nnn", &cmdPosition },
+ { "position.v", "nvv", &cmdPositionF },
+ { "get.posn", "nvv", &cmdGetPosn },
+ { "reposition", "nvv", &cmdReposition },
+ { "set.view", "nn", &cmdSetView },
+ { "set.view.v", "nv", &cmdSetViewF },
+ { "set.loop", "nn", &cmdSetLoop },
+ { "set.loop.v", "nv", &cmdSetLoopF },
+ { "fix.loop", "n", &cmdFixLoop },
+ { "release.loop", "n", &cmdReleaseLoop },
+ { "set.cel", "nn", &cmdSetCel },
+ { "set.cel.v", "nv", &cmdSetCelF },
+ { "last.cel", "nv", &cmdLastCel },
+ { "current.cel", "nv", &cmdCurrentCel },
+ { "current.loop", "nv", &cmdCurrentLoop },
+ { "current.view", "nv", &cmdCurrentView },
+ { "number.of.loops", "nv", &cmdNumberOfLoops },
+ { "set.priority", "nn", &cmdSetPriority },
+ { "set.priority.v", "nv", &cmdSetPriorityF },
+ { "release.priority", "n", &cmdReleasePriority },
+ { "get.priority", "nn", &cmdGetPriority },
+ { "stop.update", "n", &cmdStopUpdate },
+ { "start.update", "n", &cmdStartUpdate },
+ { "force.update", "n", &cmdForceUpdate },
+ { "ignore.horizon", "n", &cmdIgnoreHorizon },
+ { "observe.horizon", "n", &cmdObserveHorizon },
+ { "set.horizon", "n", &cmdSetHorizon },
+ { "object.on.water", "n", &cmdObjectOnWater },
+ { "object.on.land", "n", &cmdObjectOnLand },
+ { "object.on.anything", "n", &cmdObjectOnAnything },
+ { "ignore.objs", "n", &cmdIgnoreObjs },
+ { "observe.objs", "n", &cmdObserveObjs },
+ { "distance", "nnv", &cmdDistance },
+ { "stop.cycling", "n", &cmdStopCycling },
+ { "start.cycling", "n", &cmdStartCycling },
+ { "normal.cycle", "n", &cmdNormalCycle },
+ { "end.of.loop", "nn", &cmdEndOfLoop },
+ { "reverse.cycle", "n", &cmdReverseCycle },
+ { "reverse.loop", "nn", &cmdReverseLoop },
+ { "cycle.time", "nv", &cmdCycleTime },
+ { "stop.motion", "n", &cmdStopMotion },
+ { "start.motion", "n", &cmdStartMotion },
+ { "step.size", "nv", &cmdStepSize },
+ { "step.time", "nv", &cmdStepTime },
+ { "move.obj", "nnnnn", &cmdMoveObj },
+ { "move.obj.v", "nvvvv", &cmdMoveObjF },
+ { "follow.ego", "nnn", &cmdFollowEgo },
+ { "wander", "n", &cmdWander },
+ { "normal.motion", "n", &cmdNormalMotion },
+ { "set.dir", "nv", &cmdSetDir },
+ { "get.dir", "nv", &cmdGetDir },
+ { "ignore.blocks", "n", &cmdIgnoreBlocks },
+ { "observe.blocks", "n", &cmdObserveBlocks },
+ { "block", "nnnn", &cmdBlock },
+ { "unblock", "", &cmdUnblock },
+ { "get", "n", &cmdGet },
+ { "get.v", "v", &cmdGetF },
+ { "drop", "n", &cmdDrop },
+ { "put", "nn", &cmdPut },
+ { "put.v", "vv", &cmdPutF },
+ { "get.room.v", "vv", &cmdGetRoomF },
+ { "load.sound", "n", &cmdLoadSound },
+ { "sound", "nn", &cmdSound },
+ { "stop.sound", "", &cmdStopSound },
+ { "print", "s", &cmdPrint },
+ { "print.v", "v", &cmdPrintF },
+ { "display", "nns", &cmdDisplay },
+ { "display.v", "vvv", &cmdDisplayF },
+ { "clear.lines", "nns", &cmdClearLines },
+ { "text.screen", "", &cmdTextScreen },
+ { "graphics", "", &cmdGraphics },
+ { "set.cursor.char", "s", &cmdSetCursorChar },
+ { "set.text.attribute", "nn", &cmdSetTextAttribute },
+ { "shake.screen", "n", &cmdShakeScreen },
+ { "configure.screen", "nnn", &cmdConfigureScreen },
+ { "status.line.on", "", &cmdStatusLineOn },
+ { "status.line.off", "", &cmdStatusLineOff },
+ { "set.string", "ns", &cmdSetString },
+ { "get.string", "ns", &cmdGetString },
+ { "word.to.string", "nn", &cmdWordToString },
+ { "parse", "n", &cmdParse },
+ { "get.num", "nv", &cmdGetNum },
+ { "prevent.input", "", &cmdPreventInput },
+ { "accept.input", "", &cmdAcceptInput },
+ { "set.key", "nnn", &cmdSetKey },
+ { "add.to.pic", "nnnnnnn", &cmdAddToPic },
+ { "add.to.pic.v", "vvvvvvv", &cmdAddToPicF },
+ { "status", "", &cmdStatus },
+ { "save.game", "", &cmdSaveGame },
+ { "restore.game", "", &cmdLoadGame },
+ { "init.disk", "", &cmdInitDisk },
+ { "restart.game", "", &cmdRestartGame },
+ { "show.obj", "n", &cmdShowObj },
+ { "random", "nnv", &cmdRandom },
+ { "program.control", "", &cmdProgramControl },
+ { "player.control", "", &cmdPlayerControl },
+ { "obj.status.v", "v", &cmdObjStatusF },
+ { "quit", "n", &cmdQuit },
+ { "show.mem", "", &cmdShowMem },
+ { "pause", "", &cmdPause },
+ { "echo.line", "", &cmdEchoLine },
+ { "cancel.line", "", &cmdCancelLine },
+ { "init.joy", "", &cmdInitJoy },
+ { "toggle.monitor", "", &cmdToggleMonitor },
+ { "version", "", &cmdVersion },
+ { "script.size", "n", &cmdScriptSize },
+ { "set.game.id", "s", &cmdSetGameID },
+ { "log", "s", &cmdLog },
+ { "set.scan.start", "", &cmdSetScanStart },
+ { "reset.scan.start", "", &cmdResetScanStart },
+ { "reposition.to", "nnn", &cmdRepositionTo },
+ { "reposition.to.v", "nvv", &cmdRepositionToF },
+ { "trace.on", "", &cmdTraceOn },
+ { "trace.info", "nnn", &cmdTraceInfo },
+ { "print.at", "snnn", &cmdPrintAt },
+ { "print.at.v", "vnnn", &cmdPrintAtV },
+ { "discard.view.v", "v", &cmdDiscardView},
+ { "clear.text.rect", "nnnnn", &cmdClearTextRect },
+ { "set.upper.left", "nn", &cmdSetUpperLeft },
+ { "set.menu", "s", &cmdSetMenu },
+ { "set.menu.member", "sn", &cmdSetMenuItem },
+ { "submit.menu", "", &cmdSubmitMenu },
+ { "enable.member", "n", &cmdEnableItem },
+ { "disable.member", "n", &cmdDisableItem },
+ { "menu.input", "", &cmdMenuInput },
+ { "show.obj.v", "v", &cmdShowObjV },
+ { "open.dialogue", "", &cmdOpenDialogue },
+ { "close.dialogue", "", &cmdCloseDialogue },
+ { "mul.n", "vn", &cmdMulN },
+ { "mul.v", "vv", &cmdMulV },
+ { "div.n", "vn", &cmdDivN },
+ { "div.v", "vv", &cmdDivV },
+ { "close.window", "", &cmdCloseWindow },
+ { "set.simple", "n", &cmdSetSimple },
+ { "push.script", "", &cmdPushScript },
+ { "pop.script", "", &cmdPopScript },
+ { "hold.key", "", &cmdHoldKey },
+ { "set.pri.base", "n", &cmdSetPriBase },
+ { "discard.sound", "n", &cmdDiscardSound },
+ { "hide.mouse", "", &cmdHideMouse },
+ { "allow.menu", "n", &cmdAllowMenu },
+ { "show.mouse", "", &cmdShowMouse },
+ { "fence.mouse", "nnnn", &cmdFenceMouse },
+ { "mouse.posn", "vv", &cmdMousePosn },
+ { "release.key", "", &cmdReleaseKey },
+ { "adj.ego.move.to.xy", "", &cmdAdjEgoMoveToXY }
+};
+
+void AgiEngine::setupOpcodes() {
+ if (getVersion() >= 0x2000) {
+ for (int i = 0; i <= ARRAYSIZE(insV2Test); ++i)
+ _agiCondCommands[i] = insV2Test[i].func;
+ for (int i = 0; i < ARRAYSIZE(insV2); ++i)
+ _agiCommands[i] = insV2[i].func;
+
+ logicNamesTest = insV2Test;
+ logicNamesCmd = insV2;
+ } else {
+ for (int i = 0; i <= ARRAYSIZE(insV1Test); ++i)
+ _agiCondCommands[i] = insV1Test[i].func;
+ for (int i = 0; i < ARRAYSIZE(insV1); ++i)
+ _agiCommands[i] = insV1[i].func;
+
+ logicNamesTest = insV1Test;
+ logicNamesCmd = insV1;
+ }
+}
+
+}
diff --git a/engines/agi/opcodes.h b/engines/agi/opcodes.h
index b0d2051f0b..7f0f287550 100644
--- a/engines/agi/opcodes.h
+++ b/engines/agi/opcodes.h
@@ -23,17 +23,251 @@
#ifndef AGI_OPCODES_H
#define AGI_OPCODES_H
+#include <string.h>
+
namespace Agi {
-struct AgiLogicnames {
+struct AgiInstruction {
const char *name;
- uint16 numArgs;
- uint16 argMask;
+ const char *args;
+ AgiCommand func;
+
+ int argumentsLength() { return strlen(args); }
};
-extern AgiLogicnames logicNamesTest[];
-extern AgiLogicnames logicNamesCmd[];
-extern AgiLogicnames logicNamesIf[];
+extern AgiInstruction *logicNamesTest;
+extern AgiInstruction *logicNamesCmd;
+
+void cmdIncrement(AgiGame *state, uint8 *p);
+void cmdDecrement(AgiGame *state, uint8 *p);
+void cmdAssignN(AgiGame *state, uint8 *p);
+void cmdAssignV(AgiGame *state, uint8 *p);
+void cmdAddN(AgiGame *state, uint8 *p);
+void cmdAddV(AgiGame *state, uint8 *p);
+void cmdSubN(AgiGame *state, uint8 *p);
+void cmdSubV(AgiGame *state, uint8 *p); // 0x08
+void cmdLindirectV(AgiGame *state, uint8 *p);
+void cmdRindirect(AgiGame *state, uint8 *p);
+void cmdLindirectN(AgiGame *state, uint8 *p);
+void cmdSet(AgiGame *state, uint8 *p);
+void cmdReset(AgiGame *state, uint8 *p);
+void cmdToggle(AgiGame *state, uint8 *p);
+void cmdSetV(AgiGame *state, uint8 *p);
+void cmdResetV(AgiGame *state, uint8 *p); // 0x10
+void cmdToggleV(AgiGame *state, uint8 *p);
+void cmdNewRoom(AgiGame *state, uint8 *p);
+void cmdNewRoomF(AgiGame *state, uint8 *p);
+void cmdLoadLogic(AgiGame *state, uint8 *p);
+void cmdLoadLogicF(AgiGame *state, uint8 *p);
+void cmdCall(AgiGame *state, uint8 *p);
+void cmdCallF(AgiGame *state, uint8 *p);
+void cmdLoadPic(AgiGame *state, uint8 *p); // 0x18
+void cmdLoadPicV1(AgiGame *state, uint8 *p);
+void cmdDrawPic(AgiGame *state, uint8 *p);
+void cmdDrawPicV1(AgiGame *state, uint8 *p);
+void cmdShowPic(AgiGame *state, uint8 *p);
+void cmdDiscardPic(AgiGame *state, uint8 *p);
+void cmdOverlayPic(AgiGame *state, uint8 *p);
+void cmdShowPriScreen(AgiGame *state, uint8 *p);
+void cmdLoadView(AgiGame *state, uint8 *p);
+void cmdLoadViewF(AgiGame *state, uint8 *p);
+void cmdDiscardView(AgiGame *state, uint8 *p); // 0x20
+void cmdAnimateObj(AgiGame *state, uint8 *p);
+void cmdUnanimateAll(AgiGame *state, uint8 *p);
+void cmdDraw(AgiGame *state, uint8 *p);
+void cmdErase(AgiGame *state, uint8 *p);
+void cmdPosition(AgiGame *state, uint8 *p);
+void cmdPositionV1(AgiGame *state, uint8 *p);
+void cmdPositionF(AgiGame *state, uint8 *p);
+void cmdPositionFV1(AgiGame *state, uint8 *p);
+void cmdGetPosn(AgiGame *state, uint8 *p);
+void cmdReposition(AgiGame *state, uint8 *p); // 0x28
+void cmdRepositionV1(AgiGame *state, uint8 *p); // 0x28
+void cmdSetView(AgiGame *state, uint8 *p);
+void cmdSetViewF(AgiGame *state, uint8 *p);
+void cmdSetLoop(AgiGame *state, uint8 *p);
+void cmdSetLoopF(AgiGame *state, uint8 *p);
+void cmdFixLoop(AgiGame *state, uint8 *p);
+void cmdReleaseLoop(AgiGame *state, uint8 *p);
+void cmdSetCel(AgiGame *state, uint8 *p);
+void cmdSetCelF(AgiGame *state, uint8 *p); // 0x30
+void cmdLastCel(AgiGame *state, uint8 *p);
+void cmdCurrentCel(AgiGame *state, uint8 *p);
+void cmdCurrentLoop(AgiGame *state, uint8 *p);
+void cmdCurrentView(AgiGame *state, uint8 *p);
+void cmdNumberOfLoops(AgiGame *state, uint8 *p);
+void cmdSetPriority(AgiGame *state, uint8 *p);
+void cmdSetPriorityF(AgiGame *state, uint8 *p);
+void cmdReleasePriority(AgiGame *state, uint8 *p); // 0x38
+void cmdGetPriority(AgiGame *state, uint8 *p);
+void cmdStopUpdate(AgiGame *state, uint8 *p);
+void cmdStartUpdate(AgiGame *state, uint8 *p);
+void cmdForceUpdate(AgiGame *state, uint8 *p);
+void cmdIgnoreHorizon(AgiGame *state, uint8 *p);
+void cmdObserveHorizon(AgiGame *state, uint8 *p);
+void cmdSetHorizon(AgiGame *state, uint8 *p);
+void cmdObjectOnWater(AgiGame *state, uint8 *p); // 0x40
+void cmdObjectOnLand(AgiGame *state, uint8 *p);
+void cmdObjectOnAnything(AgiGame *state, uint8 *p);
+void cmdIgnoreObjs(AgiGame *state, uint8 *p);
+void cmdObserveObjs(AgiGame *state, uint8 *p);
+void cmdDistance(AgiGame *state, uint8 *p);
+void cmdStopCycling(AgiGame *state, uint8 *p);
+void cmdStartCycling(AgiGame *state, uint8 *p);
+void cmdNormalCycle(AgiGame *state, uint8 *p); // 0x48
+void cmdEndOfLoop(AgiGame *state, uint8 *p);
+void cmdEndOfLoopV1(AgiGame *state, uint8 *p);
+void cmdReverseCycle(AgiGame *state, uint8 *p);
+void cmdReverseLoop(AgiGame *state, uint8 *p);
+void cmdReverseLoopV1(AgiGame *state, uint8 *p);
+void cmdCycleTime(AgiGame *state, uint8 *p);
+void cmdStopMotion(AgiGame *state, uint8 *p);
+void cmdStopMotionV1(AgiGame *state, uint8 *p);
+void cmdStartMotion(AgiGame *state, uint8 *p);
+void cmdStartMotionV1(AgiGame *state, uint8 *p);
+void cmdStepSize(AgiGame *state, uint8 *p);
+void cmdStepTime(AgiGame *state, uint8 *p); // 0x50
+void cmdMoveObj(AgiGame *state, uint8 *p);
+void cmdMoveObjF(AgiGame *state, uint8 *p);
+void cmdFollowEgo(AgiGame *state, uint8 *p);
+void cmdWander(AgiGame *state, uint8 *p);
+void cmdNormalMotion(AgiGame *state, uint8 *p);
+void cmdSetDir(AgiGame *state, uint8 *p);
+void cmdGetDir(AgiGame *state, uint8 *p);
+void cmdIgnoreBlocks(AgiGame *state, uint8 *p); // 0x58
+void cmdObserveBlocks(AgiGame *state, uint8 *p);
+void cmdBlock(AgiGame *state, uint8 *p);
+void cmdUnblock(AgiGame *state, uint8 *p);
+void cmdGet(AgiGame *state, uint8 *p);
+void cmdGetV1(AgiGame *state, uint8 *p);
+void cmdGetF(AgiGame *state, uint8 *p);
+void cmdDrop(AgiGame *state, uint8 *p);
+void cmdPut(AgiGame *state, uint8 *p);
+void cmdPutF(AgiGame *state, uint8 *p); // 0x60
+void cmdGetRoomF(AgiGame *state, uint8 *p);
+void cmdLoadSound(AgiGame *state, uint8 *p);
+void cmdSound(AgiGame *state, uint8 *p);
+void cmdStopSound(AgiGame *state, uint8 *p);
+void cmdPrint(AgiGame *state, uint8 *p);
+void cmdPrintF(AgiGame *state, uint8 *p);
+void cmdDisplay(AgiGame *state, uint8 *p);
+void cmdDisplayF(AgiGame *state, uint8 *p); // 0x68
+void cmdClearLines(AgiGame *state, uint8 *p);
+void cmdTextScreen(AgiGame *state, uint8 *p);
+void cmdGraphics(AgiGame *state, uint8 *p);
+void cmdSetCursorChar(AgiGame *state, uint8 *p);
+void cmdSetTextAttribute(AgiGame *state, uint8 *p);
+void cmdShakeScreen(AgiGame *state, uint8 *p);
+void cmdConfigureScreen(AgiGame *state, uint8 *p);
+void cmdStatusLineOn(AgiGame *state, uint8 *p); // 0x70
+void cmdStatusLineOff(AgiGame *state, uint8 *p);
+void cmdSetString(AgiGame *state, uint8 *p);
+void cmdGetString(AgiGame *state, uint8 *p);
+void cmdWordToString(AgiGame *state, uint8 *p);
+void cmdParse(AgiGame *state, uint8 *p);
+void cmdGetNum(AgiGame *state, uint8 *p);
+void cmdPreventInput(AgiGame *state, uint8 *p);
+void cmdAcceptInput(AgiGame *state, uint8 *p); // 0x78
+void cmdSetKey(AgiGame *state, uint8 *p);
+void cmdAddToPic(AgiGame *state, uint8 *p);
+void cmdAddToPicV1(AgiGame *state, uint8 *p);
+void cmdAddToPicF(AgiGame *state, uint8 *p);
+void cmdStatus(AgiGame *state, uint8 *p);
+void cmdSaveGame(AgiGame *state, uint8 *p);
+void cmdLoadGame(AgiGame *state, uint8 *p);
+void cmdInitDisk(AgiGame *state, uint8 *p);
+void cmdRestartGame(AgiGame *state, uint8 *p); // 0x80
+void cmdShowObj(AgiGame *state, uint8 *p);
+void cmdRandom(AgiGame *state, uint8 *p);
+void cmdRandomV1(AgiGame *state, uint8 *p);
+void cmdProgramControl(AgiGame *state, uint8 *p);
+void cmdPlayerControl(AgiGame *state, uint8 *p);
+void cmdObjStatusF(AgiGame *state, uint8 *p);
+void cmdQuit(AgiGame *state, uint8 *p);
+void cmdQuitV1(AgiGame *state, uint8 *p);
+void cmdShowMem(AgiGame *state, uint8 *p);
+void cmdPause(AgiGame *state, uint8 *p); // 0x88
+void cmdEchoLine(AgiGame *state, uint8 *p);
+void cmdCancelLine(AgiGame *state, uint8 *p);
+void cmdInitJoy(AgiGame *state, uint8 *p);
+void cmdToggleMonitor(AgiGame *state, uint8 *p);
+void cmdVersion(AgiGame *state, uint8 *p);
+void cmdScriptSize(AgiGame *state, uint8 *p);
+void cmdSetGameID(AgiGame *state, uint8 *p);
+void cmdLog(AgiGame *state, uint8 *p); // 0x90
+void cmdSetScanStart(AgiGame *state, uint8 *p);
+void cmdResetScanStart(AgiGame *state, uint8 *p);
+void cmdRepositionTo(AgiGame *state, uint8 *p);
+void cmdRepositionToF(AgiGame *state, uint8 *p);
+void cmdTraceOn(AgiGame *state, uint8 *p);
+void cmdTraceInfo(AgiGame *state, uint8 *p);
+void cmdPrintAt(AgiGame *state, uint8 *p);
+void cmdPrintAtV(AgiGame *state, uint8 *p); // 0x98
+//void cmdDiscardView(AgiGame *state, uint8 *p); // Opcode repeated from 0x20 ?
+void cmdClearTextRect(AgiGame *state, uint8 *p);
+void cmdSetUpperLeft(AgiGame *state, uint8 *p);
+void cmdSetMenu(AgiGame *state, uint8 *p);
+void cmdSetMenuItem(AgiGame *state, uint8 *p);
+void cmdSubmitMenu(AgiGame *state, uint8 *p);
+void cmdEnableItem(AgiGame *state, uint8 *p);
+void cmdDisableItem(AgiGame *state, uint8 *p); // 0xa0
+void cmdMenuInput(AgiGame *state, uint8 *p);
+void cmdShowObjV(AgiGame *state, uint8 *p);
+void cmdOpenDialogue(AgiGame *state, uint8 *p);
+void cmdCloseDialogue(AgiGame *state, uint8 *p);
+void cmdMulN(AgiGame *state, uint8 *p);
+void cmdMulV(AgiGame *state, uint8 *p);
+void cmdDivN(AgiGame *state, uint8 *p);
+void cmdDivV(AgiGame *state, uint8 *p); // 0xa8
+void cmdCloseWindow(AgiGame *state, uint8 *p);
+void cmdSetSimple(AgiGame *state, uint8 *p);
+void cmdPushScript(AgiGame *state, uint8 *p);
+void cmdPopScript(AgiGame *state, uint8 *p);
+void cmdHoldKey(AgiGame *state, uint8 *p);
+void cmdSetPriBase(AgiGame *state, uint8 *p);
+void cmdDiscardSound(AgiGame *state, uint8 *p);
+void cmdHideMouse(AgiGame *state, uint8 *p); // 0xb0
+void cmdAllowMenu(AgiGame *state, uint8 *p);
+void cmdShowMouse(AgiGame *state, uint8 *p);
+void cmdFenceMouse(AgiGame *state, uint8 *p);
+void cmdMousePosn(AgiGame *state, uint8 *p);
+void cmdReleaseKey(AgiGame *state, uint8 *p);
+void cmdAdjEgoMoveToXY(AgiGame *state, uint8 *p);
+
+void cmdSetSpeed(AgiGame *state, uint8 *p);
+void cmdSetItemView(AgiGame *state, uint8 *p);
+void cmdCallV1(AgiGame *state, uint8 *p);
+void cmdNewRoomV1(AgiGame *state, uint8 *p);
+void cmdNewRoomVV1(AgiGame *state, uint8 *p);
+void cmdUnknown(AgiGame *state, uint8 *p);
+
+void condEqual(AgiGame *state, uint8 *p);
+void condEqualV(AgiGame *state, uint8 *p);
+void condLess(AgiGame *state, uint8 *p);
+void condLessV(AgiGame *state, uint8 *p);
+void condGreater(AgiGame *state, uint8 *p);
+void condGreaterV(AgiGame *state, uint8 *p);
+void condIsSet(AgiGame *state, uint8 *p);
+void condIsSetV(AgiGame *state, uint8 *p);
+void condHas(AgiGame *state, uint8 *p);
+void condHasV1(AgiGame *state, uint8 *p);
+void condObjInRoom(AgiGame *state, uint8 *p);
+void condPosn(AgiGame *state, uint8 *p);
+void condController(AgiGame *state, uint8 *p);
+void condHaveKey(AgiGame *state, uint8 *p);
+void condSaid(AgiGame *state, uint8 *p);
+void condCompareStrings(AgiGame *state, uint8 *p);
+void condObjInBox(AgiGame *state, uint8 *p);
+void condCenterPosn(AgiGame *state, uint8 *p);
+void condRightPosn(AgiGame *state, uint8 *p);
+void condUnknown13(AgiGame *state, uint8 *p);
+void condUnknown(AgiGame *state, uint8 *p);
+
+void condIsSetV1(AgiGame *state, uint8 *p);
+void condSaid1(AgiGame *state, uint8 *p);
+void condSaid2(AgiGame *state, uint8 *p);
+void condSaid3(AgiGame *state, uint8 *p);
+void condBit(AgiGame *state, uint8 *p);
} // End of namespace Agi
diff --git a/engines/agi/preagi.cpp b/engines/agi/preagi.cpp
index c1a6cd33fe..34180b543f 100644
--- a/engines/agi/preagi.cpp
+++ b/engines/agi/preagi.cpp
@@ -22,18 +22,13 @@
#include "common/config-manager.h"
#include "common/debug-channels.h"
+#include "common/events.h"
#include "common/random.h"
#include "common/textconsole.h"
-#include "audio/mididrv.h"
-
#include "agi/preagi.h"
#include "agi/graphics.h"
-
-// preagi engines
-#include "agi/preagi_mickey.h"
-#include "agi/preagi_troll.h"
-#include "agi/preagi_winnie.h"
+#include "agi/keyboard.h"
namespace Agi {
@@ -59,19 +54,6 @@ PreAgiEngine::PreAgiEngine(OSystem *syst, const AGIGameDescription *gameDesc) :
}
void PreAgiEngine::initialize() {
- // TODO: Some sound emulation modes do not fit our current music
- // drivers, and I'm not sure what they are. For now, they might
- // as well be called "PC Speaker" and "Not PC Speaker".
-
- switch (MidiDriver::getMusicType(MidiDriver::detectDevice(MDT_PCSPK))) {
- case MT_PCSPK:
- _soundemu = SOUND_EMU_PC;
- break;
- default:
- _soundemu = SOUND_EMU_NONE;
- break;
- }
-
if (ConfMan.hasKey("render_mode")) {
_renderMode = Common::parseRenderMode(ConfMan.get("render_mode").c_str());
} else if (ConfMan.hasKey("platform")) {
@@ -89,9 +71,7 @@ void PreAgiEngine::initialize() {
}
_gfx = new GfxMgr(this);
- //_sound = new SoundMgr(this, _mixer);
_picture = new PictureMgr(this, _gfx);
- //_sprites = new SpritesMgr(this, _gfx);
_gfx->initMachine();
@@ -111,7 +91,6 @@ void PreAgiEngine::initialize() {
_game.lineMinPrint = 0; // hardcoded
_gfx->initVideo();
- //_sound->initSound();
_speakerStream = new Audio::PCSpeaker(_mixer->getOutputRate());
_mixer->playStream(Audio::Mixer::kSFXSoundType, &_speakerHandle,
@@ -126,8 +105,6 @@ void PreAgiEngine::initialize() {
memset(&_game.dirPic[i], 0, sizeof(struct AgiDir));
memset(&_game.dirSound[i], 0, sizeof(struct AgiDir));
}
-
- debugC(2, kDebugLevelMain, "Init sound");
}
PreAgiEngine::~PreAgiEngine() {
@@ -135,50 +112,181 @@ PreAgiEngine::~PreAgiEngine() {
delete _speakerStream;
}
+int PreAgiEngine::rnd(int hi) {
+ return (_rnd->getRandomNumber(hi - 1) + 1);
+}
+
+// Screen functions
+void PreAgiEngine::clearScreen(int attr, bool overrideDefault) {
+ if (overrideDefault)
+ _defaultColor = attr;
-Common::Error PreAgiEngine::go() {
- setflag(fSoundOn, true); // enable sound
+ _gfx->clearScreen((attr & 0xF0) / 0x10);
+}
-//
-// FIXME (Fingolfin asks): Why are Mickey, Winnie and Troll standalone classes
-// instead of being subclasses of PreAgiEngine ?
-//
+void PreAgiEngine::clearGfxScreen(int attr) {
+ _gfx->drawRectangle(0, 0, GFX_WIDTH - 1, IDI_MAX_ROW_PIC * 8 -1, (attr & 0xF0) / 0x10);
+}
- // run preagi engine main loop
- switch (getGameID()) {
- case GID_MICKEY:
- {
- Mickey *mickey = new Mickey(this);
- mickey->init();
- mickey->run();
- delete mickey;
- }
- break;
- case GID_WINNIE:
- {
- Winnie *winnie = new Winnie(this);
- winnie->init();
- winnie->run();
- delete winnie;
+// String functions
+
+void PreAgiEngine::drawStr(int row, int col, int attr, const char *buffer) {
+ int code;
+
+ if (attr == kColorDefault)
+ attr = _defaultColor;
+
+ for (int iChar = 0; iChar < (int)strlen(buffer); iChar++) {
+ code = buffer[iChar];
+
+ switch (code) {
+ case '\n':
+ case 0x8D:
+ if (++row == 200 / 8) return;
+ col = 0;
+ break;
+
+ case '|':
+ // swap attribute nibbles
+ break;
+
+ default:
+ _gfx->putTextCharacter(1, col * 8 , row * 8, static_cast<char>(code), attr & 0x0f, (attr & 0xf0) / 0x10, false, getGameID() == GID_MICKEY ? mickey_fontdata : ibm_fontdata);
+
+ if (++col == 320 / 8) {
+ col = 0;
+ if (++row == 200 / 8) return;
+ }
}
- break;
- case GID_TROLL:
- {
- Troll *troll = new Troll(this);
- troll->init();
- troll->run();
- delete troll;
+ }
+}
+
+void PreAgiEngine::drawStrMiddle(int row, int attr, const char *buffer) {
+ int col = (25 / 2) - (strlen(buffer) / 2); // 25 = 320 / 8 (maximum column)
+ drawStr(row, col, attr, buffer);
+}
+
+void PreAgiEngine::clearTextArea() {
+ int start = IDI_MAX_ROW_PIC;
+
+ if (getGameID() == GID_TROLL)
+ start = 21;
+
+ for (int row = start; row < 200 / 8; row++) {
+ clearRow(row);
+ }
+}
+
+void PreAgiEngine::clearRow(int row) {
+ drawStr(row, 0, IDA_DEFAULT, " "); // 40 spaces
+}
+
+void PreAgiEngine::printStr(const char* szMsg) {
+ clearTextArea();
+ drawStr(21, 0, IDA_DEFAULT, szMsg);
+ _gfx->doUpdate();
+ _system->updateScreen();
+}
+
+void PreAgiEngine::XOR80(char *buffer) {
+ for (size_t i = 0; i < strlen(buffer); i++)
+ if (buffer[i] & 0x80)
+ buffer[i] ^= 0x80;
+}
+
+void PreAgiEngine::printStrXOR(char *szMsg) {
+ XOR80(szMsg);
+ printStr(szMsg);
+}
+
+// Input functions
+
+int PreAgiEngine::getSelection(SelectionTypes type) {
+ Common::Event event;
+ GUI::Debugger *console = getDebugger();
+
+ while (!shouldQuit()) {
+ while (_eventMan->pollEvent(event)) {
+ switch (event.type) {
+ case Common::EVENT_RTL:
+ case Common::EVENT_QUIT:
+ return 0;
+ case Common::EVENT_RBUTTONUP:
+ return 0;
+ case Common::EVENT_LBUTTONUP:
+ if (type == kSelYesNo || type == kSelAnyKey)
+ return 1;
+ case Common::EVENT_KEYDOWN:
+ if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && console) {
+ console->attach();
+ console->onFrame();
+ //FIXME: If not cleared, clicking again will start the console
+ event.kbd.keycode = Common::KEYCODE_INVALID;
+ event.kbd.flags = 0;
+ continue;
+ }
+ switch (event.kbd.keycode) {
+ case Common::KEYCODE_y:
+ if (type == kSelYesNo)
+ return 1;
+ case Common::KEYCODE_n:
+ if (type == kSelYesNo)
+ return 0;
+ case Common::KEYCODE_ESCAPE:
+ if (type == kSelNumber || type == kSelAnyKey)
+ return 0;
+ case Common::KEYCODE_1:
+ case Common::KEYCODE_2:
+ case Common::KEYCODE_3:
+ case Common::KEYCODE_4:
+ case Common::KEYCODE_5:
+ case Common::KEYCODE_6:
+ case Common::KEYCODE_7:
+ case Common::KEYCODE_8:
+ case Common::KEYCODE_9:
+ if (type == kSelNumber)
+ return event.kbd.keycode - Common::KEYCODE_1 + 1;
+ case Common::KEYCODE_SPACE:
+ if (type == kSelSpace)
+ return 1;
+ case Common::KEYCODE_BACKSPACE:
+ if (type == kSelBackspace)
+ return 0;
+ default:
+ if (event.kbd.flags & Common::KBD_CTRL)
+ break;
+ if (type == kSelYesNo) {
+ return 2;
+ } else if (type == kSelNumber) {
+ return 10;
+ } else if (type == kSelAnyKey || type == kSelBackspace) {
+ return 1;
+ }
+ }
+ break;
+ default:
+ break;
+ }
}
- break;
- default:
- error("Unknown preagi engine");
- break;
+ _system->updateScreen();
+ _system->delayMillis(10);
}
- return Common::kNoError;
+ return 0;
}
-int PreAgiEngine::rnd(int hi) {
- return (_rnd->getRandomNumber(hi - 1) + 1);
+void PreAgiEngine::playNote(int16 frequency, int32 length) {
+ _speakerStream->play(Audio::PCSpeaker::kWaveFormSquare, frequency, length);
+ waitForTimer(length);
+}
+
+void PreAgiEngine::waitForTimer(int msec_delay) {
+ uint32 start_time = _system->getMillis();
+
+ while (_system->getMillis() < start_time + msec_delay) {
+ _gfx->doUpdate();
+ _system->updateScreen();
+ _system->delayMillis(10);
+ }
}
} // End of namespace Agi
diff --git a/engines/agi/preagi.h b/engines/agi/preagi.h
index 1a178497ad..14ff483d9f 100644
--- a/engines/agi/preagi.h
+++ b/engines/agi/preagi.h
@@ -24,20 +24,36 @@
#define AGI_PREAGI_H
#include "agi/agi.h"
-#include "agi/preagi_common.h"
#include "audio/softsynth/pcspk.h"
namespace Agi {
+// default attributes
+#define IDA_DEFAULT 0x0F
+#define IDA_DEFAULT_REV 0xF0
+
+#define IDI_SND_OSCILLATOR_FREQUENCY 1193180
+#define IDI_SND_TIMER_RESOLUTION 0.0182
+
+#define kColorDefault 0x1337
+
+#define IDI_MAX_ROW_PIC 20
+
+enum SelectionTypes {
+ kSelYesNo,
+ kSelNumber,
+ kSelSpace,
+ kSelAnyKey,
+ kSelBackspace
+};
+
class PreAgiEngine : public AgiBase {
int _gameId;
protected:
- Common::Error go();
void initialize();
-public:
void pollTimer() {}
int getKeypress() { return 0; }
bool isKeypress() { return false; }
@@ -49,10 +65,7 @@ public:
return _gameId;
}
- //SoundMgr *_sound;
PictureMgr *_picture;
- PreAGI_Console *_console;
- GUI::Debugger *getDebugger() { return _console; }
void clearImageStack() {}
void recordImageStackCall(uint8 type, int16 p1, int16 p2, int16 p3,
diff --git a/engines/agi/preagi_common.cpp b/engines/agi/preagi_common.cpp
deleted file mode 100644
index d437dc08f2..0000000000
--- a/engines/agi/preagi_common.cpp
+++ /dev/null
@@ -1,205 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "agi/preagi.h"
-#include "agi/graphics.h"
-#include "agi/keyboard.h"
-
-#include "agi/preagi_common.h"
-
-#include "common/events.h"
-
-namespace Agi {
-
-// Screen functions
-void PreAgiEngine::clearScreen(int attr, bool overrideDefault) {
- if (overrideDefault)
- _defaultColor = attr;
-
- _gfx->clearScreen((attr & 0xF0) / 0x10);
-}
-
-void PreAgiEngine::clearGfxScreen(int attr) {
- _gfx->drawRectangle(0, 0, GFX_WIDTH - 1, IDI_MAX_ROW_PIC * 8 -1, (attr & 0xF0) / 0x10);
-}
-
-// String functions
-
-void PreAgiEngine::drawStr(int row, int col, int attr, const char *buffer) {
- int code;
-
- if (attr == kColorDefault)
- attr = _defaultColor;
-
- for (int iChar = 0; iChar < (int)strlen(buffer); iChar++) {
- code = buffer[iChar];
-
- switch (code) {
- case '\n':
- case 0x8D:
- if (++row == 200 / 8) return;
- col = 0;
- break;
-
- case '|':
- // swap attribute nibbles
- break;
-
- default:
- _gfx->putTextCharacter(1, col * 8 , row * 8, static_cast<char>(code), attr & 0x0f, (attr & 0xf0) / 0x10, false, getGameID() == GID_MICKEY ? mickey_fontdata : ibm_fontdata);
-
- if (++col == 320 / 8) {
- col = 0;
- if (++row == 200 / 8) return;
- }
- }
- }
-}
-
-void PreAgiEngine::drawStrMiddle(int row, int attr, const char *buffer) {
- int col = (25 / 2) - (strlen(buffer) / 2); // 25 = 320 / 8 (maximum column)
- drawStr(row, col, attr, buffer);
-}
-
-void PreAgiEngine::clearTextArea() {
- int start = IDI_MAX_ROW_PIC;
-
- if (getGameID() == GID_TROLL)
- start = 21;
-
- for (int row = start; row < 200 / 8; row++) {
- clearRow(row);
- }
-}
-
-void PreAgiEngine::clearRow(int row) {
- drawStr(row, 0, IDA_DEFAULT, " "); // 40 spaces
-}
-
-void PreAgiEngine::printStr(const char* szMsg) {
- clearTextArea();
- drawStr(21, 0, IDA_DEFAULT, szMsg);
- _gfx->doUpdate();
- _system->updateScreen();
-}
-
-void PreAgiEngine::XOR80(char *buffer) {
- for (size_t i = 0; i < strlen(buffer); i++)
- if (buffer[i] & 0x80)
- buffer[i] ^= 0x80;
-}
-
-void PreAgiEngine::printStrXOR(char *szMsg) {
- XOR80(szMsg);
- printStr(szMsg);
-}
-
-// Input functions
-
-int PreAgiEngine::getSelection(SelectionTypes type) {
- Common::Event event;
-
- while (!shouldQuit()) {
- while (_eventMan->pollEvent(event)) {
- switch (event.type) {
- case Common::EVENT_RTL:
- case Common::EVENT_QUIT:
- return 0;
- case Common::EVENT_RBUTTONUP:
- return 0;
- case Common::EVENT_LBUTTONUP:
- if (type == kSelYesNo || type == kSelAnyKey)
- return 1;
- case Common::EVENT_KEYDOWN:
- if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _console) {
- _console->attach();
- _console->onFrame();
- //FIXME: If not cleared, clicking again will start the console
- event.kbd.keycode = Common::KEYCODE_INVALID;
- event.kbd.flags = 0;
- continue;
- }
- switch (event.kbd.keycode) {
- case Common::KEYCODE_y:
- if (type == kSelYesNo)
- return 1;
- case Common::KEYCODE_n:
- if (type == kSelYesNo)
- return 0;
- case Common::KEYCODE_ESCAPE:
- if (type == kSelNumber || type == kSelAnyKey)
- return 0;
- case Common::KEYCODE_1:
- case Common::KEYCODE_2:
- case Common::KEYCODE_3:
- case Common::KEYCODE_4:
- case Common::KEYCODE_5:
- case Common::KEYCODE_6:
- case Common::KEYCODE_7:
- case Common::KEYCODE_8:
- case Common::KEYCODE_9:
- if (type == kSelNumber)
- return event.kbd.keycode - Common::KEYCODE_1 + 1;
- case Common::KEYCODE_SPACE:
- if (type == kSelSpace)
- return 1;
- case Common::KEYCODE_BACKSPACE:
- if (type == kSelBackspace)
- return 0;
- default:
- if (event.kbd.flags & Common::KBD_CTRL)
- break;
- if (type == kSelYesNo) {
- return 2;
- } else if (type == kSelNumber) {
- return 10;
- } else if (type == kSelAnyKey || type == kSelBackspace) {
- return 1;
- }
- }
- break;
- default:
- break;
- }
- }
- _system->updateScreen();
- _system->delayMillis(10);
- }
- return 0;
-}
-
-void PreAgiEngine::playNote(int16 frequency, int32 length) {
- _speakerStream->play(Audio::PCSpeaker::kWaveFormSquare, frequency, length);
- waitForTimer(length);
-}
-
-void PreAgiEngine::waitForTimer(int msec_delay) {
- uint32 start_time = _system->getMillis();
-
- while (_system->getMillis() < start_time + msec_delay) {
- _gfx->doUpdate();
- _system->updateScreen();
- _system->delayMillis(10);
- }
-}
-
-}
diff --git a/engines/agi/preagi_mickey.cpp b/engines/agi/preagi_mickey.cpp
index 21eb780916..6d1eb445a2 100644
--- a/engines/agi/preagi_mickey.cpp
+++ b/engines/agi/preagi_mickey.cpp
@@ -32,7 +32,7 @@
namespace Agi {
-int Mickey::getDat(int iRoom) {
+int MickeyEngine::getDat(int iRoom) {
if (((iRoom > 0) && (iRoom < 24)) || iRoom == 154 || iRoom == 155) return IDI_MSA_PLANET_EARTH;
if ((iRoom >= 30) && (iRoom <= 39)) return IDI_MSA_PLANET_VENUS;
if ((iRoom >= 40) && (iRoom <= 69)) return IDI_MSA_PLANET_NEPTUNE;
@@ -45,7 +45,7 @@ int Mickey::getDat(int iRoom) {
return IDI_MSA_PLANET_SPACESHIP;
}
-void Mickey::readExe(int ofs, uint8 *buffer, long buflen) {
+void MickeyEngine::readExe(int ofs, uint8 *buffer, long buflen) {
Common::File infile;
if (!infile.open("mickey.exe"))
return;
@@ -54,11 +54,11 @@ void Mickey::readExe(int ofs, uint8 *buffer, long buflen) {
infile.close();
}
-void Mickey::getDatFileName(int iRoom, char *szFile) {
+void MickeyEngine::getDatFileName(int iRoom, char *szFile) {
sprintf(szFile, IDS_MSA_PATH_DAT, IDS_MSA_NAME_DAT[getDat(iRoom)]);
}
-void Mickey::readDatHdr(char *szFile, MSA_DAT_HEADER *hdr) {
+void MickeyEngine::readDatHdr(char *szFile, MSA_DAT_HEADER *hdr) {
Common::File infile;
if (!infile.open(szFile))
@@ -83,7 +83,7 @@ void Mickey::readDatHdr(char *szFile, MSA_DAT_HEADER *hdr) {
infile.close();
}
-void Mickey::readOfsData(int offset, int iItem, uint8 *buffer, long buflen) {
+void MickeyEngine::readOfsData(int offset, int iItem, uint8 *buffer, long buflen) {
uint16 ofs[256];
readExe(offset, buffer, buflen);
@@ -97,11 +97,11 @@ void Mickey::readOfsData(int offset, int iItem, uint8 *buffer, long buflen) {
// User Interface
-bool Mickey::chooseY_N(int ofsPrompt, bool fErrorMsg) {
+bool MickeyEngine::chooseY_N(int ofsPrompt, bool fErrorMsg) {
printExeStr(ofsPrompt);
- while (!_vm->shouldQuit()) {
- switch (_vm->getSelection(kSelYesNo)) {
+ while (!shouldQuit()) {
+ switch (getSelection(kSelYesNo)) {
case 0: return false;
case 1: return true;
default:
@@ -117,15 +117,15 @@ bool Mickey::chooseY_N(int ofsPrompt, bool fErrorMsg) {
return false;
}
-int Mickey::choose1to9(int ofsPrompt) {
+int MickeyEngine::choose1to9(int ofsPrompt) {
int answer = 0;
printExeStr(ofsPrompt);
- while (!_vm->shouldQuit()) {
- answer = _vm->getSelection(kSelNumber);
+ while (!shouldQuit()) {
+ answer = getSelection(kSelNumber);
if (answer == 10) {
printExeStr(IDO_MSA_PRESS_1_TO_9);
- if (_vm->getSelection(kSelAnyKey) == 0)
+ if (getSelection(kSelAnyKey) == 0)
return 0;
printExeStr(ofsPrompt);
} else return answer;
@@ -134,38 +134,38 @@ int Mickey::choose1to9(int ofsPrompt) {
return 0;
}
-void Mickey::printStr(char *buffer) {
+void MickeyEngine::printStr(char *buffer) {
int pc = 1;
int nRows, iCol, iRow;
nRows = *buffer + IDI_MSA_ROW_MENU_0;
- _vm->clearTextArea();
+ clearTextArea();
for (iRow = IDI_MSA_ROW_MENU_0; iRow < nRows; iRow++) {
iCol = *(buffer + pc++);
- _vm->drawStr(iRow, iCol, IDA_DEFAULT, buffer + pc);
+ drawStr(iRow, iCol, IDA_DEFAULT, buffer + pc);
pc += strlen(buffer + pc) + 1;
}
// Show the string on screen
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->doUpdate();
+ _system->updateScreen();
}
-void Mickey::printLine(const char *buffer) {
- _vm->clearTextArea();
+void MickeyEngine::printLine(const char *buffer) {
+ clearTextArea();
- _vm->drawStr(22, 18 - strlen(buffer) / 2, IDA_DEFAULT, buffer);
+ drawStr(22, 18 - strlen(buffer) / 2, IDA_DEFAULT, buffer);
// Show the string on screen
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->doUpdate();
+ _system->updateScreen();
waitAnyKey(true);
}
-void Mickey::printExeStr(int ofs) {
+void MickeyEngine::printExeStr(int ofs) {
uint8 buffer[256] = {0};
if (!ofs)
@@ -175,7 +175,7 @@ void Mickey::printExeStr(int ofs) {
printStr((char *)buffer);
}
-void Mickey::printExeMsg(int ofs) {
+void MickeyEngine::printExeMsg(int ofs) {
if (!ofs)
return;
@@ -183,9 +183,9 @@ void Mickey::printExeMsg(int ofs) {
waitAnyKey(true);
}
-void Mickey::printDatString(int iStr) {
+void MickeyEngine::printDatString(int iStr) {
char buffer[256];
- int iDat = getDat(_game.iRoom);
+ int iDat = getDat(_gameStateMickey.iRoom);
MSA_DAT_HEADER hdr;
char szFile[256] = {0};
@@ -205,7 +205,7 @@ void Mickey::printDatString(int iStr) {
printStr(buffer);
}
-void Mickey::printDesc(int iRoom) {
+void MickeyEngine::printDesc(int iRoom) {
MSA_DAT_HEADER hdr;
char szFile[256] = {0};
@@ -228,20 +228,20 @@ void Mickey::printDesc(int iRoom) {
free(buffer);
}
-bool Mickey::checkMenu() {
+bool MickeyEngine::checkMenu() {
MSA_MENU menu;
int iSel0, iSel1;
MSA_DAT_HEADER hdr;
char szFile[256] = {0};
Common::File infile;
- getDatFileName(_game.iRoom, szFile);
+ getDatFileName(_gameStateMickey.iRoom, szFile);
readDatHdr(szFile, &hdr);
if (!infile.open(szFile))
return false;
char *buffer = new char[sizeof(MSA_MENU)];
- infile.seek(hdr.ofsRoom[_game.iRoom - 1] + IDI_MSA_OFS_DAT, SEEK_SET);
+ infile.seek(hdr.ofsRoom[_gameStateMickey.iRoom - 1] + IDI_MSA_OFS_DAT, SEEK_SET);
infile.read((uint8 *)buffer, sizeof(MSA_MENU));
infile.close();
@@ -255,7 +255,7 @@ bool Mickey::checkMenu() {
return parse(menu.cmd[iSel0].data[iSel1], menu.arg[iSel0].data[iSel1]);
}
-void Mickey::drawMenu(MSA_MENU menu, int sel0, int sel1) {
+void MickeyEngine::drawMenu(MSA_MENU menu, int sel0, int sel1) {
int iWord;
int iRow;
int sel;
@@ -263,7 +263,7 @@ void Mickey::drawMenu(MSA_MENU menu, int sel0, int sel1) {
// draw menu
- _vm->clearTextArea();
+ clearTextArea();
for (iRow = 0; iRow < 2; iRow++) {
for (iWord = 0; iWord < menu.row[iRow].count; iWord++) {
@@ -277,17 +277,17 @@ void Mickey::drawMenu(MSA_MENU menu, int sel0, int sel1) {
else
attr = IDA_DEFAULT;
- _vm->drawStr(IDI_MSA_ROW_MENU_0 + iRow, menu.row[iRow].entry[iWord].x0,
+ drawStr(IDI_MSA_ROW_MENU_0 + iRow, menu.row[iRow].entry[iWord].x0,
attr, (char *)menu.row[iRow].entry[iWord].szText);
}
}
// Menu created, show it on screen
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->doUpdate();
+ _system->updateScreen();
}
-void Mickey::getMouseMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow, int x, int y) {
+void MickeyEngine::getMouseMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow, int x, int y) {
int iWord;
int *sel = 0;
@@ -314,7 +314,7 @@ void Mickey::getMouseMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow, i
}
}
-bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
+bool MickeyEngine::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
Common::Event event;
int *sel = 0;
int nWords;
@@ -357,8 +357,8 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
drawMenu(menu, *sel0, *sel1);
- while (!_vm->shouldQuit()) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (!shouldQuit()) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -376,18 +376,18 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
// Change cursor
if (northIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
(event.mouse.y >= 0 && event.mouse.y <= 10)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (southIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
(event.mouse.y >= IDI_MSA_PIC_HEIGHT - 10 && event.mouse.y <= IDI_MSA_PIC_HEIGHT)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (westIndex >= 0 && (event.mouse.y >= 0 && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
(event.mouse.x >= 20 && event.mouse.x <= 30)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (eastIndex >= 0 && (event.mouse.y >= 0 && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
(event.mouse.x >= IDI_MSA_PIC_WIDTH * 2 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else {
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
}
}
break;
@@ -400,7 +400,7 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
drawMenu(menu, *sel0, *sel1);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
_clickToMove = true;
} else if (southIndex >= 0 && (event.mouse.x >= 20 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2) &&
(event.mouse.y >= IDI_MSA_PIC_HEIGHT - 10 && event.mouse.y <= IDI_MSA_PIC_HEIGHT)) {
@@ -409,7 +409,7 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
drawMenu(menu, *sel0, *sel1);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
_clickToMove = true;
} else if (westIndex >= 0 && (event.mouse.y >= 0 && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
(event.mouse.x >= 20 && event.mouse.x <= 30)) {
@@ -418,7 +418,7 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
drawMenu(menu, *sel0, *sel1);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
_clickToMove = true;
} else if (eastIndex >= 0 && (event.mouse.y >= 0 && event.mouse.y <= IDI_MSA_PIC_HEIGHT) &&
(event.mouse.x >= IDI_MSA_PIC_WIDTH * 2 && event.mouse.x <= (IDI_MSA_PIC_WIDTH + 10) * 2)) {
@@ -427,10 +427,10 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
drawMenu(menu, *sel0, *sel1);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
_clickToMove = true;
} else {
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
}
return true;
case Common::EVENT_RBUTTONUP:
@@ -458,20 +458,20 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
}
break;
case Common::EVENT_KEYDOWN:
- if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _vm->_console) {
- _vm->_console->attach();
- _vm->_console->onFrame();
+ if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _console) {
+ _console->attach();
+ _console->onFrame();
continue;
}
switch (event.kbd.keycode) {
case Common::KEYCODE_2:
// Hidden message
- if (_game.iRoom == IDI_MSA_PIC_MERCURY_CAVE_0) {
+ if (_gameStateMickey.iRoom == IDI_MSA_PIC_MERCURY_CAVE_0) {
for (int i = 0; i < 5; i++) {
printExeMsg(IDO_MSA_HIDDEN_MSG[i]);
}
- _vm->clearTextArea();
+ clearTextArea();
waitAnyKey();
}
break;
@@ -489,7 +489,7 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
return false;
case Common::KEYCODE_s:
- _vm->flipflag(fSoundOn);
+ flipflag(fSoundOn);
break;
case Common::KEYCODE_c:
inventory();
@@ -552,7 +552,7 @@ bool Mickey::getMenuSelRow(MSA_MENU menu, int *sel0, int *sel1, int iRow) {
return false;
}
-void Mickey::getMenuSel(char *buffer, int *sel0, int *sel1) {
+void MickeyEngine::getMenuSel(char *buffer, int *sel0, int *sel1) {
MSA_MENU menu;
memcpy(&menu, buffer, sizeof(MSA_MENU));
@@ -563,8 +563,8 @@ void Mickey::getMenuSel(char *buffer, int *sel0, int *sel1) {
// Show the mouse cursor for the menu
CursorMan.showMouse(true);
- while (!_vm->shouldQuit()) {
- while (!_vm->shouldQuit()) {
+ while (!shouldQuit()) {
+ while (!shouldQuit()) {
if (getMenuSelRow(menu, sel0, sel1, 0)) {
if (_clickToMove)
break;
@@ -586,7 +586,7 @@ void Mickey::getMenuSel(char *buffer, int *sel0, int *sel1) {
CursorMan.showMouse(false);
}
-void Mickey::centerMenu(MSA_MENU *menu) {
+void MickeyEngine::centerMenu(MSA_MENU *menu) {
int iWord;
int iRow;
int w, x;
@@ -606,19 +606,19 @@ void Mickey::centerMenu(MSA_MENU *menu) {
}
}
-void Mickey::patchMenu(MSA_MENU *menu) {
+void MickeyEngine::patchMenu(MSA_MENU *menu) {
uint8 buffer[512];
uint8 menubuf[sizeof(MSA_MENU)];
int nPatches;
int pBuf = 0;
// change planet name in ship airlock menu
- if (_game.iRoom == IDI_MSA_PIC_SHIP_AIRLOCK) {
- strcpy((char *)menu->row[1].entry[2].szText, IDS_MSA_NAME_PLANET[_game.iPlanet]);
+ if (_gameStateMickey.iRoom == IDI_MSA_PIC_SHIP_AIRLOCK) {
+ strcpy((char *)menu->row[1].entry[2].szText, IDS_MSA_NAME_PLANET[_gameStateMickey.iPlanet]);
}
// exit if fix unnecessary
- if (!_game.iRmMenu[_game.iRoom]) {
+ if (!_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
centerMenu(menu);
return;
}
@@ -629,7 +629,7 @@ void Mickey::patchMenu(MSA_MENU *menu) {
// read patches
readOfsData(
IDOFS_MSA_MENU_PATCHES,
- _game.nRmMenu[_game.iRoom] + _game.iRmMenu[_game.iRoom] - 1,
+ _gameStateMickey.nRmMenu[_gameStateMickey.iRoom] + _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] - 1,
buffer, sizeof(buffer)
);
@@ -652,24 +652,24 @@ void Mickey::patchMenu(MSA_MENU *menu) {
centerMenu(menu);
}
-void Mickey::printDatMessage(int iStr) {
+void MickeyEngine::printDatMessage(int iStr) {
printDatString(iStr);
waitAnyKey(true);
}
// Sound
-void Mickey::playNote(MSA_SND_NOTE note) {
+void MickeyEngine::playNote(MSA_SND_NOTE note) {
if (!note.counter) {
// Pause
- _vm->_system->delayMillis((uint) (note.length / IDI_SND_TIMER_RESOLUTION));
+ _system->delayMillis((uint) (note.length / IDI_SND_TIMER_RESOLUTION));
} else {
- _vm->playNote(IDI_SND_OSCILLATOR_FREQUENCY / note.counter, (int32) (note.length / IDI_SND_TIMER_RESOLUTION));
+ PreAgiEngine::playNote(IDI_SND_OSCILLATOR_FREQUENCY / note.counter, (int32) (note.length / IDI_SND_TIMER_RESOLUTION));
}
}
-void Mickey::playSound(ENUM_MSA_SOUND iSound) {
- if (!_vm->getflag(fSoundOn))
+void MickeyEngine::playSound(ENUM_MSA_SOUND iSound) {
+ if (!getflag(fSoundOn))
return;
Common::Event event;
@@ -680,7 +680,7 @@ void Mickey::playSound(ENUM_MSA_SOUND iSound) {
switch (iSound) {
case IDI_MSA_SND_XL30:
for (int iNote = 0; iNote < 6; iNote++) {
- note.counter = _vm->rnd(59600) + 59;
+ note.counter = rnd(59600) + 59;
note.length = 4;
playNote(note);
}
@@ -698,7 +698,7 @@ void Mickey::playSound(ENUM_MSA_SOUND iSound) {
pBuf += 3;
if (iSound == IDI_MSA_SND_THEME) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -722,7 +722,7 @@ void Mickey::playSound(ENUM_MSA_SOUND iSound) {
// Graphics
-void Mickey::drawObj(ENUM_MSA_OBJECT iObj, int x0, int y0) {
+void MickeyEngine::drawObj(ENUM_MSA_OBJECT iObj, int x0, int y0) {
char szFile[255] = {0};
sprintf(szFile, IDS_MSA_PATH_OBJ, IDS_MSA_NAME_OBJ[iObj]);
@@ -736,15 +736,15 @@ void Mickey::drawObj(ENUM_MSA_OBJECT iObj, int x0, int y0) {
file.close();
if (iObj == IDI_MSA_OBJECT_CRYSTAL)
- _vm->_picture->setPictureFlags(kPicFStep);
+ _picture->setPictureFlags(kPicFStep);
- _vm->_picture->setOffset(x0, y0);
- _vm->_picture->decodePicture(buffer, size, false, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
- _vm->_picture->setOffset(0, 0);
- _vm->_picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
+ _picture->setOffset(x0, y0);
+ _picture->decodePicture(buffer, size, false, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
+ _picture->setOffset(0, 0);
+ _picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
}
-void Mickey::drawPic(int iPic) {
+void MickeyEngine::drawPic(int iPic) {
char szFile[255] = {0};
sprintf(szFile, IDS_MSA_PATH_PIC, iPic);
@@ -758,16 +758,16 @@ void Mickey::drawPic(int iPic) {
file.close();
// Note that decodePicture clears the screen
- _vm->_picture->decodePicture(buffer, size, true, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
- _vm->_picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
+ _picture->decodePicture(buffer, size, true, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
+ _picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
}
-void Mickey::drawRoomAnimation() {
+void MickeyEngine::drawRoomAnimation() {
uint8 objLight[] = {
0xF0, 1, 0xF9, 2, 43, 45, 0xFF
};
- switch (_game.iRoom) {
+ switch (_gameStateMickey.iRoom) {
case IDI_MSA_PIC_EARTH_SHIP:
case IDI_MSA_PIC_VENUS_SHIP:
case IDI_MSA_PIC_NEPTUNE_SHIP:
@@ -790,26 +790,26 @@ void Mickey::drawRoomAnimation() {
uint8 iColor = 0;
- _vm->_picture->setPattern(2, 0);
+ _picture->setPattern(2, 0);
for (int i = 0; i < 12; i++) {
- iColor = _game.nFrame + i;
+ iColor = _gameStateMickey.nFrame + i;
if (iColor > 15)
iColor -= 15;
objLight[1] = iColor;
objLight[4] += 7;
- _vm->_picture->setPictureData(objLight);
- _vm->_picture->setPictureFlags(kPicFCircle);
- _vm->_picture->drawPicture();
+ _picture->setPictureData(objLight);
+ _picture->setPictureFlags(kPicFCircle);
+ _picture->drawPicture();
}
- _vm->_picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
+ _picture->showPic(10, 0, IDI_MSA_PIC_WIDTH, IDI_MSA_PIC_HEIGHT);
- _game.nFrame--;
- if (_game.nFrame < 0)
- _game.nFrame = 15;
+ _gameStateMickey.nFrame--;
+ if (_gameStateMickey.nFrame < 0)
+ _gameStateMickey.nFrame = 15;
playSound(IDI_MSA_SND_PRESS_BLUE);
}
@@ -818,12 +818,12 @@ void Mickey::drawRoomAnimation() {
case IDI_MSA_PIC_SHIP_CONTROLS:
// draw XL30 screen
- if (_game.fAnimXL30) {
- if (_game.nFrame > 5)
- _game.nFrame = 0;
+ if (_gameStateMickey.fAnimXL30) {
+ if (_gameStateMickey.nFrame > 5)
+ _gameStateMickey.nFrame = 0;
- drawObj((ENUM_MSA_OBJECT)(IDI_MSA_OBJECT_XL31 + _game.nFrame), 0, 4);
- _game.nFrame++;
+ drawObj((ENUM_MSA_OBJECT)(IDI_MSA_OBJECT_XL31 + _gameStateMickey.nFrame), 0, 4);
+ _gameStateMickey.nFrame++;
};
break;
@@ -831,17 +831,17 @@ void Mickey::drawRoomAnimation() {
default:
// draw crystal
- if (_game.iRoom == IDI_MSA_XTAL_ROOM_XY[_game.iPlanet][0]) {
- if (!_game.fHasXtal) {
- switch (_game.iPlanet) {
+ if (_gameStateMickey.iRoom == IDI_MSA_XTAL_ROOM_XY[_gameStateMickey.iPlanet][0]) {
+ if (!_gameStateMickey.fHasXtal) {
+ switch (_gameStateMickey.iPlanet) {
case IDI_MSA_PLANET_VENUS:
- if (_game.iRmMenu[_game.iRoom] != 2)
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom] != 2)
break;
default:
drawObj(
IDI_MSA_OBJECT_CRYSTAL,
- IDI_MSA_XTAL_ROOM_XY[_game.iPlanet][1],
- IDI_MSA_XTAL_ROOM_XY[_game.iPlanet][2]
+ IDI_MSA_XTAL_ROOM_XY[_gameStateMickey.iPlanet][1],
+ IDI_MSA_XTAL_ROOM_XY[_gameStateMickey.iPlanet][2]
);
break;
}
@@ -852,36 +852,36 @@ void Mickey::drawRoomAnimation() {
}
}
-void Mickey::drawRoom() {
+void MickeyEngine::drawRoom() {
uint8 buffer[256];
int pBuf = 0;
int nObjs;
// Draw room picture
- if (_game.iRoom == IDI_MSA_PIC_TITLE) {
+ if (_gameStateMickey.iRoom == IDI_MSA_PIC_TITLE) {
drawPic(IDI_MSA_PIC_TITLE);
} else {
- drawPic(_game.iRmPic[_game.iRoom]);
+ drawPic(_gameStateMickey.iRmPic[_gameStateMickey.iRoom]);
- if (_game.iRoom == IDI_MSA_PIC_SHIP_CONTROLS) {
+ if (_gameStateMickey.iRoom == IDI_MSA_PIC_SHIP_CONTROLS) {
// Draw ship control room window
- if (_game.fFlying) {
+ if (_gameStateMickey.fFlying) {
drawObj(IDI_MSA_OBJECT_W_SPACE, 0, 0);
} else {
- drawObj((ENUM_MSA_OBJECT)(IDI_MSA_OBJECT_W_EARTH + _game.iPlanet), 0, 1);
+ drawObj((ENUM_MSA_OBJECT)(IDI_MSA_OBJECT_W_EARTH + _gameStateMickey.iPlanet), 0, 1);
}
}
}
// Draw room objects
- if (_game.iRoom >= IDI_MSA_MAX_PIC_ROOM) {
+ if (_gameStateMickey.iRoom >= IDI_MSA_MAX_PIC_ROOM) {
drawRoomAnimation();
return;
}
- if (_game.iRmObj[_game.iRoom] != IDI_MSA_OBJECT_NONE) {
+ if (_gameStateMickey.iRmObj[_gameStateMickey.iRoom] != IDI_MSA_OBJECT_NONE) {
readOfsData(IDO_MSA_ROOM_OBJECT_XY_OFFSETS,
- _game.iRmObj[_game.iRoom], buffer, sizeof(buffer));
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom], buffer, sizeof(buffer));
nObjs = buffer[pBuf++];
@@ -914,7 +914,7 @@ const uint8 colorBCG[16][2] = {
{ 0xFF, 0xFF } // F (white, white)
};
-void Mickey::drawLogo() {
+void MickeyEngine::drawLogo() {
// TODO: clean this up and make it work properly, the logo is drawn way off to the right
#if 0
char szFile[256] = {0};
@@ -937,7 +937,7 @@ void Mickey::drawLogo() {
// draw logo bitmap
memcpy(bitmap, buffer, sizeof(bitmap));
- _vm->_picture->setDimensions(w, h);
+ _picture->setDimensions(w, h);
// Show BCG picture
for (int y = 0; y < h; y++) {
@@ -947,40 +947,40 @@ void Mickey::drawLogo() {
color3 = colorBCG[ bitmap[y][x] & 0x0f][0]; // foreground
color4 = colorBCG[ bitmap[y][x] & 0x0f][1]; // foreground
- _vm->_picture->putPixel(x * 4 - xoffset, y, color);
- _vm->_picture->putPixel(x * 4 + 1 - xoffset, y, color2);
- _vm->_picture->putPixel(x * 4 + 2 - xoffset, y, color3);
- _vm->_picture->putPixel(x * 4 + 3 - xoffset, y, color4);
- _vm->_picture->putPixel(x * 4 - xoffset, y + 1, color);
- _vm->_picture->putPixel(x * 4 + 1 - xoffset, y + 1, color2);
- _vm->_picture->putPixel(x * 4 + 2 - xoffset, y + 1, color3);
- _vm->_picture->putPixel(x * 4 + 3 - xoffset, y + 1, color4);
+ _picture->putPixel(x * 4 - xoffset, y, color);
+ _picture->putPixel(x * 4 + 1 - xoffset, y, color2);
+ _picture->putPixel(x * 4 + 2 - xoffset, y, color3);
+ _picture->putPixel(x * 4 + 3 - xoffset, y, color4);
+ _picture->putPixel(x * 4 - xoffset, y + 1, color);
+ _picture->putPixel(x * 4 + 1 - xoffset, y + 1, color2);
+ _picture->putPixel(x * 4 + 2 - xoffset, y + 1, color3);
+ _picture->putPixel(x * 4 + 3 - xoffset, y + 1, color4);
}
}
- _vm->_picture->showPic(10, 10, w, h);
+ _picture->showPic(10, 10, w, h);
delete[] buffer;
#endif
}
-void Mickey::animate() {
- _vm->_system->delayMillis(IDI_MSA_ANIM_DELAY);
+void MickeyEngine::animate() {
+ _system->delayMillis(IDI_MSA_ANIM_DELAY);
drawRoomAnimation();
}
-void Mickey::printRoomDesc() {
+void MickeyEngine::printRoomDesc() {
// print room description
- printDesc(_game.iRoom);
+ printDesc(_gameStateMickey.iRoom);
waitAnyKey(true);
// print extended room description
- if (_game.oRmTxt[_game.iRoom]) {
- printExeMsg(_game.oRmTxt[_game.iRoom] + IDI_MSA_OFS_EXE);
+ if (_gameStateMickey.oRmTxt[_gameStateMickey.iRoom]) {
+ printExeMsg(_gameStateMickey.oRmTxt[_gameStateMickey.iRoom] + IDI_MSA_OFS_EXE);
}
}
-bool Mickey::loadGame() {
+bool MickeyEngine::loadGame() {
Common::InSaveFile *infile;
char szFile[256] = {0};
bool diskerror = true;
@@ -994,15 +994,15 @@ bool Mickey::loadGame() {
return false;
// load game
- sprintf(szFile, "%s.s%02d", _vm->getTargetName().c_str(), sel);
- if (!(infile = _vm->getSaveFileMan()->openForLoading(szFile))) {
+ sprintf(szFile, "%s.s%02d", getTargetName().c_str(), sel);
+ if (!(infile = getSaveFileMan()->openForLoading(szFile))) {
printLine("PLEASE CHECK THE DISK DRIVE");
- if (_vm->getSelection(kSelAnyKey) == 0)
+ if (getSelection(kSelAnyKey) == 0)
return false;
} else {
if (infile->readUint32BE() != MKTAG('M','I','C','K')) {
- warning("Mickey::loadGame wrong save game format");
+ warning("MickeyEngine::loadGame wrong save game format");
return false;
}
@@ -1015,61 +1015,61 @@ bool Mickey::loadGame() {
if (saveVersion != MSA_SAVEGAME_VERSION)
warning("Old save game version (%d, current version is %d). Will try and read anyway, but don't be surprised if bad things happen", saveVersion, MSA_SAVEGAME_VERSION);
- _game.iRoom = infile->readByte();
- _game.iPlanet = infile->readByte();
- _game.iDisk = infile->readByte();
+ _gameStateMickey.iRoom = infile->readByte();
+ _gameStateMickey.iPlanet = infile->readByte();
+ _gameStateMickey.iDisk = infile->readByte();
- _game.nAir = infile->readByte();
- _game.nButtons = infile->readByte();
- _game.nRocks = infile->readByte();
+ _gameStateMickey.nAir = infile->readByte();
+ _gameStateMickey.nButtons = infile->readByte();
+ _gameStateMickey.nRocks = infile->readByte();
- _game.nXtals = infile->readByte();
+ _gameStateMickey.nXtals = infile->readByte();
for (i = 0; i < IDI_MSA_MAX_DAT; i++)
- _game.iPlanetXtal[i] = infile->readByte();
+ _gameStateMickey.iPlanetXtal[i] = infile->readByte();
for (i = 0; i < IDI_MSA_MAX_PLANET; i++)
- _game.iClue[i] = infile->readUint16LE();
+ _gameStateMickey.iClue[i] = infile->readUint16LE();
- infile->read(_game.szAddr, IDI_MSA_MAX_BUTTON + 1);
+ infile->read(_gameStateMickey.szAddr, IDI_MSA_MAX_BUTTON + 1);
- _game.fHasXtal = infile->readByte() == 1;
- _game.fIntro = infile->readByte() == 1;
- _game.fSuit = infile->readByte() == 1;
- _game.fShipDoorOpen = infile->readByte() == 1;
- _game.fFlying = infile->readByte() == 1;
- _game.fStoryShown = infile->readByte() == 1;
- _game.fPlanetsInitialized = infile->readByte() == 1;
- _game.fTempleDoorOpen = infile->readByte() == 1;
- _game.fAnimXL30 = infile->readByte() == 1;
+ _gameStateMickey.fHasXtal = infile->readByte() == 1;
+ _gameStateMickey.fIntro = infile->readByte() == 1;
+ _gameStateMickey.fSuit = infile->readByte() == 1;
+ _gameStateMickey.fShipDoorOpen = infile->readByte() == 1;
+ _gameStateMickey.fFlying = infile->readByte() == 1;
+ _gameStateMickey.fStoryShown = infile->readByte() == 1;
+ _gameStateMickey.fPlanetsInitialized = infile->readByte() == 1;
+ _gameStateMickey.fTempleDoorOpen = infile->readByte() == 1;
+ _gameStateMickey.fAnimXL30 = infile->readByte() == 1;
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- _game.fItem[i] = infile->readByte() == 1;
+ _gameStateMickey.fItem[i] = infile->readByte() == 1;
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- _game.fItemUsed[i] = infile->readByte() == 1;
+ _gameStateMickey.fItemUsed[i] = infile->readByte() == 1;
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- _game.iItem[i] = infile->readSByte();
+ _gameStateMickey.iItem[i] = infile->readSByte();
- _game.nItems = infile->readByte();
+ _gameStateMickey.nItems = infile->readByte();
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.iRmObj[i] = infile->readSByte();
+ _gameStateMickey.iRmObj[i] = infile->readSByte();
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.iRmPic[i] = infile->readByte();
+ _gameStateMickey.iRmPic[i] = infile->readByte();
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.oRmTxt[i] = infile->readUint16LE();
+ _gameStateMickey.oRmTxt[i] = infile->readUint16LE();
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.iRmMenu[i] = infile->readByte();
+ _gameStateMickey.iRmMenu[i] = infile->readByte();
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.nRmMenu[i] = infile->readByte();
+ _gameStateMickey.nRmMenu[i] = infile->readByte();
- _game.nFrame = infile->readSByte();
+ _gameStateMickey.nFrame = infile->readSByte();
diskerror = false;
delete infile;
@@ -1080,7 +1080,7 @@ bool Mickey::loadGame() {
return true;
}
-void Mickey::saveGame() {
+void MickeyEngine::saveGame() {
Common::OutSaveFile* outfile;
char szFile[256] = {0};
bool diskerror = true;
@@ -1094,7 +1094,7 @@ void Mickey::saveGame() {
else
printExeStr(IDO_MSA_SAVE_GAME[2]);
- if (_vm->getSelection(kSelAnyKey) == 0)
+ if (getSelection(kSelAnyKey) == 0)
return;
while (diskerror) {
@@ -1107,75 +1107,75 @@ void Mickey::saveGame() {
else
printExeStr(IDO_MSA_SAVE_GAME[4]);
- if (_vm->getSelection(kSelAnyKey) == 0)
+ if (getSelection(kSelAnyKey) == 0)
return;
// save game
- sprintf(szFile, "%s.s%02d", _vm->getTargetName().c_str(), sel);
- if (!(outfile = _vm->getSaveFileMan()->openForSaving(szFile))) {
+ sprintf(szFile, "%s.s%02d", getTargetName().c_str(), sel);
+ if (!(outfile = getSaveFileMan()->openForSaving(szFile))) {
printLine("PLEASE CHECK THE DISK DRIVE");
- if (_vm->getSelection(kSelAnyKey) == 0)
+ if (getSelection(kSelAnyKey) == 0)
return;
} else {
outfile->writeUint32BE(MKTAG('M','I','C','K')); // header
outfile->writeByte(MSA_SAVEGAME_VERSION);
- outfile->writeByte(_game.iRoom);
- outfile->writeByte(_game.iPlanet);
- outfile->writeByte(_game.iDisk);
+ outfile->writeByte(_gameStateMickey.iRoom);
+ outfile->writeByte(_gameStateMickey.iPlanet);
+ outfile->writeByte(_gameStateMickey.iDisk);
- outfile->writeByte(_game.nAir);
- outfile->writeByte(_game.nButtons);
- outfile->writeByte(_game.nRocks);
+ outfile->writeByte(_gameStateMickey.nAir);
+ outfile->writeByte(_gameStateMickey.nButtons);
+ outfile->writeByte(_gameStateMickey.nRocks);
- outfile->writeByte(_game.nXtals);
+ outfile->writeByte(_gameStateMickey.nXtals);
for (i = 0; i < IDI_MSA_MAX_DAT; i++)
- outfile->writeByte(_game.iPlanetXtal[i]);
+ outfile->writeByte(_gameStateMickey.iPlanetXtal[i]);
for (i = 0; i < IDI_MSA_MAX_PLANET; i++)
- outfile->writeUint16LE(_game.iClue[i]);
+ outfile->writeUint16LE(_gameStateMickey.iClue[i]);
- outfile->write(_game.szAddr, IDI_MSA_MAX_BUTTON + 1);
+ outfile->write(_gameStateMickey.szAddr, IDI_MSA_MAX_BUTTON + 1);
- outfile->writeByte(_game.fHasXtal ? 1 : 0);
- outfile->writeByte(_game.fIntro ? 1 : 0);
- outfile->writeByte(_game.fSuit ? 1 : 0);
- outfile->writeByte(_game.fShipDoorOpen ? 1 : 0);
- outfile->writeByte(_game.fFlying ? 1 : 0);
- outfile->writeByte(_game.fStoryShown ? 1 : 0);
- outfile->writeByte(_game.fPlanetsInitialized ? 1 : 0);
- outfile->writeByte(_game.fTempleDoorOpen ? 1 : 0);
- outfile->writeByte(_game.fAnimXL30 ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fHasXtal ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fIntro ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fSuit ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fShipDoorOpen ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fFlying ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fStoryShown ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fPlanetsInitialized ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fTempleDoorOpen ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fAnimXL30 ? 1 : 0);
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- outfile->writeByte(_game.fItem[i] ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fItem[i] ? 1 : 0);
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- outfile->writeByte(_game.fItemUsed[i] ? 1 : 0);
+ outfile->writeByte(_gameStateMickey.fItemUsed[i] ? 1 : 0);
for (i = 0; i < IDI_MSA_MAX_ITEM; i++)
- outfile->writeSByte(_game.iItem[i]);
+ outfile->writeSByte(_gameStateMickey.iItem[i]);
- outfile->writeByte(_game.nItems);
+ outfile->writeByte(_gameStateMickey.nItems);
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- outfile->writeSByte(_game.iRmObj[i]);
+ outfile->writeSByte(_gameStateMickey.iRmObj[i]);
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- outfile->writeByte(_game.iRmPic[i]);
+ outfile->writeByte(_gameStateMickey.iRmPic[i]);
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- outfile->writeUint16LE(_game.oRmTxt[i]);
+ outfile->writeUint16LE(_gameStateMickey.oRmTxt[i]);
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- outfile->writeByte(_game.iRmMenu[i]);
+ outfile->writeByte(_gameStateMickey.iRmMenu[i]);
for (i = 0; i < IDI_MSA_MAX_ROOM; i++)
- outfile->writeByte(_game.nRmMenu[i]);
+ outfile->writeByte(_gameStateMickey.nRmMenu[i]);
- outfile->writeSByte(_game.nFrame);
+ outfile->writeSByte(_gameStateMickey.nFrame);
outfile->finalize();
@@ -1190,14 +1190,14 @@ void Mickey::saveGame() {
printExeMsg(IDO_MSA_SAVE_GAME[6]);
}
-void Mickey::showPlanetInfo() {
+void MickeyEngine::showPlanetInfo() {
for (int i = 0; i < 4; i++) {
- printExeStr(IDO_MSA_PLANET_INFO[_game.iPlanet][i]);
+ printExeStr(IDO_MSA_PLANET_INFO[_gameStateMickey.iPlanet][i]);
waitAnyKey();
}
}
-void Mickey::printStory() {
+void MickeyEngine::printStory() {
char buffer[IDI_MSA_LEN_STORY] = {0};
char szLine[41] = {0};
int iRow;
@@ -1205,37 +1205,37 @@ void Mickey::printStory() {
readExe(IDO_MSA_GAME_STORY, (uint8 *)buffer, sizeof(buffer));
- _vm->clearScreen(IDA_DEFAULT);
+ clearScreen(IDA_DEFAULT);
for (iRow = 0; iRow < 25; iRow++) {
strcpy(szLine, buffer + pBuf);
- _vm->drawStr(iRow, 0, IDA_DEFAULT, szLine);
+ drawStr(iRow, 0, IDA_DEFAULT, szLine);
pBuf += strlen(szLine) + 1;
}
waitAnyKey();
- _vm->clearScreen(IDA_DEFAULT);
+ clearScreen(IDA_DEFAULT);
for (iRow = 0; iRow < 21; iRow++) {
strcpy(szLine, buffer + pBuf);
- _vm->drawStr(iRow, 0, IDA_DEFAULT, szLine);
+ drawStr(iRow, 0, IDA_DEFAULT, szLine);
pBuf += strlen(szLine) + 1;
}
waitAnyKey();
//Set back to black
- _vm->_gfx->clearScreen(0);
- _vm->_gfx->doUpdate();
+ _gfx->clearScreen(0);
+ _gfx->doUpdate();
drawRoom();
- _game.fStoryShown = true;
+ _gameStateMickey.fStoryShown = true;
}
-int Mickey::getPlanet() {
- if (!_game.nButtons)
+int MickeyEngine::getPlanet() {
+ if (!_gameStateMickey.nButtons)
return -1;
for (int iPlanet = 0; iPlanet < IDI_MSA_MAX_DAT - 1; iPlanet++) {
- if (!strcmp(IDS_MSA_ADDR_PLANET[iPlanet], _game.szAddr)) {
+ if (!strcmp(IDS_MSA_ADDR_PLANET[iPlanet], _gameStateMickey.szAddr)) {
return iPlanet;
}
}
@@ -1243,49 +1243,49 @@ int Mickey::getPlanet() {
return -1;
}
-void Mickey::pressOB(int iButton) {
+void MickeyEngine::pressOB(int iButton) {
char szButtons[12] = {0};
// check if too many buttons pressed
- if (_game.nButtons == IDI_MSA_MAX_BUTTON) {
- _game.nButtons = 0;
- memset(_game.szAddr, 0, sizeof(_game.szAddr));
+ if (_gameStateMickey.nButtons == IDI_MSA_MAX_BUTTON) {
+ _gameStateMickey.nButtons = 0;
+ memset(_gameStateMickey.szAddr, 0, sizeof(_gameStateMickey.szAddr));
printExeMsg(IDO_MSA_TOO_MANY_BUTTONS_PRESSED);
return;
}
// add button press to address
- _game.nButtons++;
- _game.szAddr[_game.nButtons - 1] = (char)iButton;
+ _gameStateMickey.nButtons++;
+ _gameStateMickey.szAddr[_gameStateMickey.nButtons - 1] = (char)iButton;
// format buttons string
for (int i = 0; i < IDI_MSA_MAX_BUTTON; i++) {
- szButtons[i * 2] = _game.szAddr[i];
- if (_game.szAddr[i + 1]) szButtons[(i * 2) + 1] = ',';
+ szButtons[i * 2] = _gameStateMickey.szAddr[i];
+ if (_gameStateMickey.szAddr[i + 1]) szButtons[(i * 2) + 1] = ',';
}
// print pressed buttons
printLine("MICKEY HAS PRESSED: ");
- _vm->drawStr(20, 22, IDA_DEFAULT, szButtons);
+ drawStr(20, 22, IDA_DEFAULT, szButtons);
waitAnyKey();
}
-void Mickey::insertDisk(int iDisk) {
- _vm->clearTextArea();
- _vm->drawStr(IDI_MSA_ROW_INSERT_DISK, IDI_MSA_COL_INSERT_DISK, IDA_DEFAULT, (const char *)IDS_MSA_INSERT_DISK[iDisk]);
+void MickeyEngine::insertDisk(int iDisk) {
+ clearTextArea();
+ drawStr(IDI_MSA_ROW_INSERT_DISK, IDI_MSA_COL_INSERT_DISK, IDA_DEFAULT, (const char *)IDS_MSA_INSERT_DISK[iDisk]);
waitAnyKey();
}
-void Mickey::gameOver() {
+void MickeyEngine::gameOver() {
// We shouldn't run the game over segment if we're quitting.
- if (_vm->shouldQuit())
+ if (shouldQuit())
return;
drawPic(IDI_MSA_PIC_EARTH_SHIP_LEAVING);
printExeMsg(IDO_MSA_GAME_OVER[3]);
playSound(IDI_MSA_SND_GAME_OVER);
- if (_game.fItemUsed[IDI_MSA_ITEM_LETTER]) {
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_LETTER]) {
drawPic(IDI_MSA_PIC_EARTH_MINNIE);
printExeMsg(IDO_MSA_GAME_OVER[4]);
printExeMsg(IDO_MSA_GAME_OVER[5]);
@@ -1297,74 +1297,74 @@ void Mickey::gameOver() {
waitAnyKey();
}
-void Mickey::flipSwitch() {
- if (_game.fHasXtal || _game.nXtals) {
- if (!_game.fStoryShown)
+void MickeyEngine::flipSwitch() {
+ if (_gameStateMickey.fHasXtal || _gameStateMickey.nXtals) {
+ if (!_gameStateMickey.fStoryShown)
printStory();
// Initialize planet data
- if (!_game.fPlanetsInitialized) {
+ if (!_gameStateMickey.fPlanetsInitialized) {
int iHint = 0;
int iPlanet = 0;
- memset(_game.iPlanetXtal, 0, sizeof(_game.iPlanetXtal));
- memset(_game.iClue, 0, sizeof(_game.iClue));
+ memset(_gameStateMickey.iPlanetXtal, 0, sizeof(_gameStateMickey.iPlanetXtal));
+ memset(_gameStateMickey.iClue, 0, sizeof(_gameStateMickey.iClue));
- _game.iPlanetXtal[0] = IDI_MSA_PLANET_EARTH;
- _game.iPlanetXtal[8] = IDI_MSA_PLANET_URANUS;
+ _gameStateMickey.iPlanetXtal[0] = IDI_MSA_PLANET_EARTH;
+ _gameStateMickey.iPlanetXtal[8] = IDI_MSA_PLANET_URANUS;
for (int i = 1; i < IDI_MSA_MAX_PLANET; i++) {
if (i < 8) {
do {
// Earth (planet 0) and Uranus (planet 8) are excluded
- iPlanet = _vm->rnd(IDI_MSA_MAX_PLANET - 2);
+ iPlanet = rnd(IDI_MSA_MAX_PLANET - 2);
} while (planetIsAlreadyAssigned(iPlanet));
} else {
iPlanet = IDI_MSA_PLANET_URANUS; // Uranus is always last
}
- _game.iPlanetXtal[i] = iPlanet;
- iHint = _vm->rnd(5) - 1; // clues are 0-4
- _game.iClue[i] = IDO_MSA_NEXT_PIECE[iPlanet][iHint];
+ _gameStateMickey.iPlanetXtal[i] = iPlanet;
+ iHint = rnd(5) - 1; // clues are 0-4
+ _gameStateMickey.iClue[i] = IDO_MSA_NEXT_PIECE[iPlanet][iHint];
}
- _game.fPlanetsInitialized = true;
+ _gameStateMickey.fPlanetsInitialized = true;
}
// activate screen animation
- _game.fAnimXL30 = true;
+ _gameStateMickey.fAnimXL30 = true;
- _vm->clearTextArea();
+ clearTextArea();
playSound(IDI_MSA_SND_XL30);
printExeMsg(IDO_MSA_XL30_SPEAKING);
- if (_game.fHasXtal) {
- _game.fHasXtal = false;
+ if (_gameStateMickey.fHasXtal) {
+ _gameStateMickey.fHasXtal = false;
printExeMsg(IDO_MSA_CRYSTAL_PIECE_FOUND);
}
- if (_game.nXtals == IDI_MSA_MAX_PLANET) {
+ if (_gameStateMickey.nXtals == IDI_MSA_MAX_PLANET) {
printExeMsg(IDO_MSA_GAME_OVER[0]);
printExeMsg(IDO_MSA_GAME_OVER[1]);
printExeMsg(IDO_MSA_GAME_OVER[2]);
#if 0
// DEBUG
- strcpy(_game.szAddr, (char *)IDS_MSA_ADDR_PLANET[IDI_MSA_PLANET_EARTH]);
- _game.nButtons = strlen(_game.szAddr);
+ strcpy(_gameStateMickey.szAddr, (char *)IDS_MSA_ADDR_PLANET[IDI_MSA_PLANET_EARTH]);
+ _gameStateMickey.nButtons = strlen(_gameStateMickey.szAddr);
#endif
} else {
- printExeStr(_game.iClue[_game.nXtals]);
+ printExeStr(_gameStateMickey.iClue[_gameStateMickey.nXtals]);
#if 0
// DEBUG
- _vm->drawStr(24, 12, IDA_DEFAULT, (char *)IDS_MSA_NAME_PLANET_2[_game.iPlanetXtal[_game.nXtals]]);
- _vm->drawStr(24, 22, IDA_DEFAULT, (char *)IDS_MSA_ADDR_PLANET[_game.iPlanetXtal[_game.nXtals]]);
- strcpy(_game.szAddr, (char *)IDS_MSA_ADDR_PLANET[_game.iPlanetXtal[_game.nXtals]]);
- _game.nButtons = strlen(_game.szAddr);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen(); // TODO: this should go in the game's main loop
+ drawStr(24, 12, IDA_DEFAULT, (char *)IDS_MSA_NAME_PLANET_2[_gameStateMickey.iPlanetXtal[_gameStateMickey.nXtals]]);
+ drawStr(24, 22, IDA_DEFAULT, (char *)IDS_MSA_ADDR_PLANET[_gameStateMickey.iPlanetXtal[_gameStateMickey.nXtals]]);
+ strcpy(_gameStateMickey.szAddr, (char *)IDS_MSA_ADDR_PLANET[_gameStateMickey.iPlanetXtal[_gameStateMickey.nXtals]]);
+ _gameStateMickey.nButtons = strlen(_gameStateMickey.szAddr);
+ _gfx->doUpdate();
+ _system->updateScreen(); // TODO: this should go in the game's main loop
#endif
waitAnyKey(true);
@@ -1374,73 +1374,73 @@ void Mickey::flipSwitch() {
}
}
-void Mickey::inventory() {
+void MickeyEngine::inventory() {
int iRow = IDI_MSA_ROW_INV_ITEMS;
char szCrystals[12] = {0};
- sprintf(szCrystals, IDS_MSA_CRYSTALS, IDS_MSA_CRYSTAL_NO[_game.nXtals]);
+ sprintf(szCrystals, IDS_MSA_CRYSTALS, IDS_MSA_CRYSTAL_NO[_gameStateMickey.nXtals]);
CursorMan.showMouse(false);
- _vm->clearScreen(IDA_DEFAULT);
- _vm->drawStr(IDI_MSA_ROW_INV_TITLE, IDI_MSA_COL_INV_TITLE, IDA_DEFAULT, IDS_MSA_INVENTORY);
- _vm->drawStr(IDI_MSA_ROW_INV_CRYSTALS, IDI_MSA_COL_INV_ITEMS, IDA_DEFAULT, szCrystals);
+ clearScreen(IDA_DEFAULT);
+ drawStr(IDI_MSA_ROW_INV_TITLE, IDI_MSA_COL_INV_TITLE, IDA_DEFAULT, IDS_MSA_INVENTORY);
+ drawStr(IDI_MSA_ROW_INV_CRYSTALS, IDI_MSA_COL_INV_ITEMS, IDA_DEFAULT, szCrystals);
for (int iItem = 0; iItem < IDI_MSA_MAX_ITEM; iItem++) {
- if (_game.fItem[_game.iItem[iItem]] && (_game.iItem[iItem] != IDI_MSA_OBJECT_NONE)) {
- _vm->drawStr(iRow++, IDI_MSA_COL_INV_ITEMS, IDA_DEFAULT, (const char *)IDS_MSA_NAME_ITEM[_game.iItem[iItem]]);
+ if (_gameStateMickey.fItem[_gameStateMickey.iItem[iItem]] && (_gameStateMickey.iItem[iItem] != IDI_MSA_OBJECT_NONE)) {
+ drawStr(iRow++, IDI_MSA_COL_INV_ITEMS, IDA_DEFAULT, (const char *)IDS_MSA_NAME_ITEM[_gameStateMickey.iItem[iItem]]);
}
}
waitAnyKey();
- _vm->clearScreen(IDA_DEFAULT);
+ clearScreen(IDA_DEFAULT);
CursorMan.showMouse(true);
}
-void Mickey::intro() {
+void MickeyEngine::intro() {
// Draw Sierra logo
//drawLogo(); // Original does not even show this, so we skip it too
//waitAnyKey(); // Not in the original, but needed so that the logo is visible
// draw title picture
- _game.iRoom = IDI_MSA_PIC_TITLE;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_TITLE;
drawRoom();
// show copyright and play theme
printExeMsg(IDO_MSA_COPYRIGHT);
// Quit if necessary
- if (_vm->shouldQuit())
+ if (shouldQuit())
return;
playSound(IDI_MSA_SND_THEME);
// load game
- _game.fIntro = true;
+ _gameStateMickey.fIntro = true;
if (chooseY_N(IDO_MSA_LOAD_GAME[0], true)) {
if (loadGame()) {
- _game.iPlanet = IDI_MSA_PLANET_EARTH;
- _game.fIntro = false;
- _game.iRoom = IDI_MSA_PIC_SHIP_CORRIDOR;
+ _gameStateMickey.iPlanet = IDI_MSA_PLANET_EARTH;
+ _gameStateMickey.fIntro = false;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SHIP_CORRIDOR;
return;
}
}
// Quit if necessary
- if (_vm->shouldQuit())
+ if (shouldQuit())
return;
// play spaceship landing scene
- _game.iPlanet = IDI_MSA_PLANET_EARTH;
- _game.iRoom = IDI_MSA_PIC_EARTH_ROAD_4;
+ _gameStateMickey.iPlanet = IDI_MSA_PLANET_EARTH;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_EARTH_ROAD_4;
drawRoom();
printRoomDesc();
// Quit if necessary
- if (_vm->shouldQuit())
+ if (shouldQuit())
return;
playSound(IDI_MSA_SND_SHIP_LAND);
@@ -1450,48 +1450,48 @@ void Mickey::intro() {
playSound(IDI_MSA_SND_PRESS_BLUE);
//Set screen to white
- _vm->_gfx->clearScreen(15);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->clearScreen(15);
+ _gfx->doUpdate();
+ _system->updateScreen();
- _vm->_system->delayMillis(IDI_MSA_ANIM_DELAY);
+ _system->delayMillis(IDI_MSA_ANIM_DELAY);
//Set back to black
- _vm->_gfx->clearScreen(0);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->clearScreen(0);
+ _gfx->doUpdate();
+ _system->updateScreen();
drawRoom();
- printDesc(_game.iRoom);
+ printDesc(_gameStateMickey.iRoom);
}
printExeMsg(IDO_MSA_INTRO);
}
-void Mickey::getItem(ENUM_MSA_ITEM iItem) {
- _game.fItem[iItem] = true;
- _game.iItem[_game.nItems++] = iItem;
- _game.oRmTxt[_game.iRoom] = 0;
+void MickeyEngine::getItem(ENUM_MSA_ITEM iItem) {
+ _gameStateMickey.fItem[iItem] = true;
+ _gameStateMickey.iItem[_gameStateMickey.nItems++] = iItem;
+ _gameStateMickey.oRmTxt[_gameStateMickey.iRoom] = 0;
playSound(IDI_MSA_SND_TAKE);
drawRoom();
}
-void Mickey::getXtal(int iStr) {
- _game.oRmTxt[_game.iRoom] = 0;
- _game.fHasXtal = true;
- _game.nXtals++;
+void MickeyEngine::getXtal(int iStr) {
+ _gameStateMickey.oRmTxt[_gameStateMickey.iRoom] = 0;
+ _gameStateMickey.fHasXtal = true;
+ _gameStateMickey.nXtals++;
playSound(IDI_MSA_SND_CRYSTAL);
drawRoom();
printDatMessage(iStr);
}
-bool Mickey::parse(int cmd, int arg) {
+bool MickeyEngine::parse(int cmd, int arg) {
switch (cmd) {
// BASIC
case IDI_MSA_ACTION_GOTO_ROOM:
- _game.iRoom = arg;
+ _gameStateMickey.iRoom = arg;
return true;
case IDI_MSA_ACTION_SHOW_INT_STR:
printLine(IDS_MSA_ERRORS[arg]);
@@ -1515,291 +1515,291 @@ bool Mickey::parse(int cmd, int arg) {
// EARTH
case IDI_MSA_ACTION_GET_ROPE:
- if (_game.iRmMenu[_game.iRoom] == 2) {
- _game.iRmObj[_game.iRoom] = IDI_MSA_OBJECT_NONE;
- _game.iRmMenu[_game.iRoom] = 3;
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom] == 2) {
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = IDI_MSA_OBJECT_NONE;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 3;
getItem(IDI_MSA_ITEM_ROPE);
printLine("MICKEY TAKES THE ROPE");
} else {
- _game.iRmMenu[_game.iRoom] = 1;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
printDatMessage(11);
}
break;
case IDI_MSA_ACTION_UNTIE_ROPE:
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_EARTH_TIRE_SWING_1;
- _game.iRmObj[_game.iRoom] = 0;
- _game.iRmMenu[_game.iRoom] = 2;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_EARTH_TIRE_SWING_1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 0;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 2;
drawRoom();
printDatMessage(12);
break;
case IDI_MSA_ACTION_GET_BONE:
- _game.iRmObj[_game.iRoom] = IDI_MSA_OBJECT_NONE;
- _game.iRmMenu[_game.iRoom] = 1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = IDI_MSA_OBJECT_NONE;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
getItem(IDI_MSA_ITEM_BONE);
printDatMessage(arg);
break;
case IDI_MSA_ACTION_GET_XTAL_EARTH:
- _game.iRmMenu[_game.iRoom] = 1;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
getXtal(arg);
break;
case IDI_MSA_ACTION_LOOK_DESK:
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmObj[_game.iRoom] = 2;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 2;
drawRoom();
printDatMessage(arg);
break;
case IDI_MSA_ACTION_WRITE_LETTER:
- _game.iRmMenu[_game.iRoom] = 3;
- _game.iRmMenu[IDI_MSA_PIC_EARTH_MAILBOX] = 1;
- _game.iRmObj[_game.iRoom] = IDI_MSA_OBJECT_NONE;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 3;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_EARTH_MAILBOX] = 1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = IDI_MSA_OBJECT_NONE;
getItem(IDI_MSA_ITEM_LETTER);
printDatMessage(arg);
break;
case IDI_MSA_ACTION_MAIL_LETTER:
- _game.fItemUsed[IDI_MSA_ITEM_LETTER] = true;
- _game.fItem[IDI_MSA_ITEM_LETTER] = false;
- _game.iRmMenu[_game.iRoom] = 0;
+ _gameStateMickey.fItemUsed[IDI_MSA_ITEM_LETTER] = true;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_LETTER] = false;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
printDatMessage(arg);
break;
case IDI_MSA_ACTION_OPEN_MAILBOX:
- if (_game.fItemUsed[IDI_MSA_ITEM_LETTER]) {
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_LETTER]) {
printDatMessage(110);
} else {
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_OPEN_CUPBOARD:
- if (_game.iRmMenu[_game.iRoom]) {
- if (_game.iRmObj[_game.iRoom] == IDI_MSA_OBJECT_NONE) {
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
+ if (_gameStateMickey.iRmObj[_gameStateMickey.iRoom] == IDI_MSA_OBJECT_NONE) {
printDatMessage(78);
} else {
printDatMessage(arg);
}
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_EARTH_KITCHEN_1;
- _game.iRmObj[_game.iRoom] = 3;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_EARTH_KITCHEN_1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 3;
drawRoom();
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_FLASHLIGHT:
if (!mickeyHasItem(IDI_MSA_ITEM_FLASHLIGHT)) {
- _game.iRmObj[_game.iRoom] = IDI_MSA_OBJECT_NONE;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = IDI_MSA_OBJECT_NONE;
getItem(IDI_MSA_ITEM_FLASHLIGHT);
drawRoom();
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_OPEN_CABINET:
- if (_game.iRmMenu[_game.iRoom]) {
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
printDatMessage(109);
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_EARTH_GARAGE_1;
- _game.iRmObj[_game.iRoom] = 15;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_EARTH_GARAGE_1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 15;
drawRoom();
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_CROWBAR:
if (!mickeyHasItem(IDI_MSA_ITEM_CROWBAR)) {
- _game.iRmObj[_game.iRoom]--;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom]--;
getItem(IDI_MSA_ITEM_CROWBAR);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_WRENCH:
if (!mickeyHasItem(IDI_MSA_ITEM_WRENCH)) {
- _game.iRmObj[_game.iRoom] -= 2;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] -= 2;
getItem(IDI_MSA_ITEM_WRENCH);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_OPEN_CLOSET:
- if (_game.iRmMenu[_game.iRoom]) {
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
printDatMessage(99);
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_EARTH_BEDROOM_1;
- _game.iRmObj[_game.iRoom] = 7;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_EARTH_BEDROOM_1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 7;
drawRoom();
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_MATTRESS:
if (!mickeyHasItem(IDI_MSA_ITEM_MATTRESS)) {
- _game.iRmObj[_game.iRoom]--;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom]--;
getItem(IDI_MSA_ITEM_MATTRESS);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SCARF:
if (!mickeyHasItem(IDI_MSA_ITEM_SCARF)) {
- _game.iRmObj[_game.iRoom] -= 2;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] -= 2;
getItem(IDI_MSA_ITEM_SCARF);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SUNGLASSES:
if (!mickeyHasItem(IDI_MSA_ITEM_SUNGLASSES)) {
- _game.iRmObj[_game.iRoom]--;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom]--;
getItem(IDI_MSA_ITEM_SUNGLASSES);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_SCALE:
if (!mickeyHasItem(IDI_MSA_ITEM_SCALE)) {
- _game.iRmMenu[IDI_MSA_PIC_VENUS_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_NEPTUNE_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_MERCURY_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_SATURN_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_PLUTO_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_JUPITER_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_MARS_WEIGH] = 1;
- _game.iRmMenu[IDI_MSA_PIC_URANUS_WEIGH] = 1;
- _game.iRmObj[_game.iRoom] -= 2;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_VENUS_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_NEPTUNE_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_MERCURY_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_SATURN_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_PLUTO_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_JUPITER_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_MARS_WEIGH] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_URANUS_WEIGH] = 1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] -= 2;
getItem(IDI_MSA_ITEM_SCALE);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GOTO_SPACESHIP:
- _game.iRoom = IDI_MSA_PIC_SHIP_AIRLOCK;
- if (_game.iPlanet != IDI_MSA_PLANET_EARTH)
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SHIP_AIRLOCK;
+ if (_gameStateMickey.iPlanet != IDI_MSA_PLANET_EARTH)
insertDisk(0);
return true;
// VENUS
case IDI_MSA_ACTION_DOWN_CHASM:
- if (_game.fItem[IDI_MSA_ITEM_ROPE]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_ROPE]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
break;
case IDI_MSA_ACTION_DOWN_ROPE:
- if (_game.fItemUsed[IDI_MSA_ITEM_ROPE]) {
- _game.iRoom = IDI_MSA_PIC_VENUS_PROBE;
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_ROPE]) {
+ _gameStateMickey.iRoom = IDI_MSA_PIC_VENUS_PROBE;
return true;
} else {
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_USE_ROPE:
- if (_game.fItemUsed[IDI_MSA_ITEM_ROPE]) {
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_ROPE]) {
printDatMessage(22);
} else {
- _game.fItemUsed[IDI_MSA_ITEM_ROPE] = true;
- _game.fItem[IDI_MSA_ITEM_ROPE] = false;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_VENUS_CHASM_1;
+ _gameStateMickey.fItemUsed[IDI_MSA_ITEM_ROPE] = true;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_ROPE] = false;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_VENUS_CHASM_1;
drawRoom();
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_OPEN_HATCH:
- if (_game.fItemUsed[IDI_MSA_ITEM_WRENCH]) {
- if ((_game.iRmMenu[_game.iRoom] == 3) || (_game.iRmPic[_game.iRoom] == IDI_MSA_PIC_VENUS_PROBE_1))
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_WRENCH]) {
+ if ((_gameStateMickey.iRmMenu[_gameStateMickey.iRoom] == 3) || (_gameStateMickey.iRmPic[_gameStateMickey.iRoom] == IDI_MSA_PIC_VENUS_PROBE_1))
printDatMessage(39);
else {
- _game.iRmMenu[_game.iRoom] = 2;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_VENUS_PROBE_1;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 2;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_VENUS_PROBE_1;
drawRoom();
printDatMessage(24);
}
} else {
- if (_game.fItem[IDI_MSA_ITEM_WRENCH]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_WRENCH]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_USE_WRENCH:
- _game.fItemUsed[IDI_MSA_ITEM_WRENCH] = true;
+ _gameStateMickey.fItemUsed[IDI_MSA_ITEM_WRENCH] = true;
printDatString(arg);
- if (_game.iRmPic[_game.iRoom] == IDI_MSA_PIC_VENUS_PROBE_1) {
- _vm->clearRow(22);
+ if (_gameStateMickey.iRmPic[_gameStateMickey.iRoom] == IDI_MSA_PIC_VENUS_PROBE_1) {
+ clearRow(22);
}
waitAnyKey();
break;
case IDI_MSA_ACTION_GET_XTAL_VENUS:
- _game.iRmMenu[_game.iRoom] = 3;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 3;
getXtal(arg);
break;
// TRITON (NEPTUNE)
case IDI_MSA_ACTION_LOOK_CASTLE:
- if (!_game.iRmMenu[_game.iRoom]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (!_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
break;
case IDI_MSA_ACTION_ENTER_OPENING:
- if (_game.fItemUsed[IDI_MSA_ITEM_CROWBAR]) {
- _game.iRoom = IDI_MSA_PIC_NEPTUNE_CASTLE_4;
+ if (_gameStateMickey.fItemUsed[IDI_MSA_ITEM_CROWBAR]) {
+ _gameStateMickey.iRoom = IDI_MSA_PIC_NEPTUNE_CASTLE_4;
return true;
} else {
- if (_game.fItem[IDI_MSA_ITEM_CROWBAR]) {
- _game.iRmMenu[_game.iRoom] = 2;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_CROWBAR]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 2;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_USE_CROWBAR:
- _game.fItemUsed[IDI_MSA_ITEM_CROWBAR] = true;
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_NEPTUNE_ENTRANCE_1;
+ _gameStateMickey.fItemUsed[IDI_MSA_ITEM_CROWBAR] = true;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_NEPTUNE_ENTRANCE_1;
drawRoom();
printDatMessage(arg);
break;
case IDI_MSA_ACTION_GET_XTAL_NEPTUNE:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(71);
} else {
- if (_game.fItem[IDI_MSA_ITEM_SCARF]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_SCARF]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_TALK_LEADER:
- _game.iRoom = IDI_MSA_PIC_NEPTUNE_ENTRYWAY;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_NEPTUNE_ENTRYWAY;
printDatMessage(arg);
return true;
case IDI_MSA_ACTION_GIVE_SCARF:
- _game.iRmObj[_game.iRoom] = 18;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 18;
getXtal(arg);
- _game.fItem[IDI_MSA_ITEM_SCARF] = false;
- _game.iRmMenu[_game.iRoom] = 0;
- _game.iRmMenu[IDI_MSA_PIC_EARTH_BEDROOM] = 2;
- _game.iRoom = IDI_MSA_PIC_NEPTUNE_ENTRYWAY;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_SCARF] = false;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_EARTH_BEDROOM] = 2;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_NEPTUNE_ENTRYWAY;
return true;
// MERCURY
case IDI_MSA_ACTION_GET_XTAL_MERCURY:
- if (_game.fHasXtal) {
- _game.iRmMenu[_game.iRoom] = 2;
+ if (_gameStateMickey.fHasXtal) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 2;
printDatMessage(32);
} else {
- if (_game.fItem[IDI_MSA_ITEM_SUNGLASSES]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_SUNGLASSES]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GIVE_SUNGLASSES:
- _game.iRmObj[_game.iRoom] = 17;
- _game.iRmMenu[_game.iRoom] = 2;
- _game.fItem[IDI_MSA_ITEM_SUNGLASSES] = false;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 17;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 2;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_SUNGLASSES] = false;
getXtal(arg);
@@ -1808,30 +1808,30 @@ bool Mickey::parse(int cmd, int arg) {
// TITAN (SATURN)
case IDI_MSA_ACTION_CROSS_LAKE:
- if (_game.fItem[IDI_MSA_ITEM_MATTRESS]) {
- _game.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_0] = 1;
- _game.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_1] = 1;
- _game.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_2] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_MATTRESS]) {
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_0] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_1] = 1;
+ _gameStateMickey.iRmMenu[IDI_MSA_PIC_SATURN_LAKE_2] = 1;
}
printDatMessage(arg);
break;
case IDI_MSA_ACTION_USE_MATTRESS:
- _game.iRoom = IDI_MSA_PIC_SATURN_ISLAND;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SATURN_ISLAND;
printDatMessage(arg);
return true;
case IDI_MSA_ACTION_GET_XTAL_SATURN:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(29);
} else {
getXtal(arg);
}
break;
case IDI_MSA_ACTION_LEAVE_ISLAND:
- _game.iRoom = IDI_MSA_PIC_SATURN_LAKE_1;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SATURN_LAKE_1;
printDatMessage(arg);
@@ -1840,19 +1840,19 @@ bool Mickey::parse(int cmd, int arg) {
// PLUTO
case IDI_MSA_ACTION_GET_XTAL_PLUTO:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(19);
} else {
- if (_game.fItem[IDI_MSA_ITEM_BONE]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_BONE]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GIVE_BONE:
- _game.fItem[IDI_MSA_ITEM_BONE] = false;
- _game.iRmMenu[_game.iRoom] = 0;
- _game.iRmObj[_game.iRoom] = 16;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_BONE] = false;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = 16;
getXtal(arg);
@@ -1862,29 +1862,29 @@ bool Mickey::parse(int cmd, int arg) {
case IDI_MSA_ACTION_GET_ROCK_0:
case IDI_MSA_ACTION_GET_ROCK_1:
- if (_game.fItem[IDI_MSA_ITEM_ROCK]) {
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_ROCK]) {
printDatMessage(38);
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmObj[_game.iRoom] = IDI_MSA_OBJECT_NONE;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom] = IDI_MSA_OBJECT_NONE;
getItem(IDI_MSA_ITEM_ROCK);
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_GET_XTAL_JUPITER:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(15);
} else {
- switch (_game.nRocks) {
+ switch (_gameStateMickey.nRocks) {
case 0:
- if (_game.fItem[IDI_MSA_ITEM_ROCK]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_ROCK]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
break;
case 1:
- if (_game.fItem[IDI_MSA_ITEM_ROCK]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_ROCK]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(34);
break;
@@ -1895,47 +1895,47 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_THROW_ROCK:
- _game.fItem[IDI_MSA_ITEM_ROCK] = false;
- _game.nItems--;
- _game.iRmObj[_game.iRoom]++;
- _game.iRmMenu[_game.iRoom] = 0;
+ _gameStateMickey.fItem[IDI_MSA_ITEM_ROCK] = false;
+ _gameStateMickey.nItems--;
+ _gameStateMickey.iRmObj[_gameStateMickey.iRoom]++;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
drawRoom();
- if (_game.nRocks) {
+ if (_gameStateMickey.nRocks) {
printDatMessage(37);
} else {
printDatMessage(arg);
}
- _game.nRocks++;
+ _gameStateMickey.nRocks++;
break;
// MARS
case IDI_MSA_ACTION_GO_TUBE:
- if (_game.fItem[IDI_MSA_ITEM_FLASHLIGHT]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_FLASHLIGHT]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
break;
case IDI_MSA_ACTION_USE_FLASHLIGHT:
- _game.iRoom = IDI_MSA_PIC_MARS_TUBE_1;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_MARS_TUBE_1;
printDatMessage(15);
return true;
case IDI_MSA_ACTION_PLUTO_DIG:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(21);
} else {
getXtal(arg);
}
break;
case IDI_MSA_ACTION_GET_XTAL_MARS:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(23);
} else {
printDatMessage(arg);
@@ -1945,29 +1945,29 @@ bool Mickey::parse(int cmd, int arg) {
// OBERON (URANUS)
case IDI_MSA_ACTION_ENTER_TEMPLE:
- _game.iRoom = IDI_MSA_PIC_URANUS_TEMPLE;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_URANUS_TEMPLE;
return true;
case IDI_MSA_ACTION_USE_CRYSTAL:
- if (_game.iRmMenu[_game.iRoom]) {
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
printDatMessage(25);
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE_1;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE_1;
drawRoom();
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE;
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_OPEN_DOOR:
- if (_game.fTempleDoorOpen) {
+ if (_gameStateMickey.fTempleDoorOpen) {
printDatMessage(36);
} else {
- _game.fTempleDoorOpen = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE_2;
+ _gameStateMickey.fTempleDoorOpen = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_URANUS_TEMPLE_2;
drawRoom();
@@ -1975,8 +1975,8 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_ENTER_DOOR:
- if (_game.fTempleDoorOpen) {
- _game.iRoom = IDI_MSA_PIC_URANUS_STEPS;
+ if (_gameStateMickey.fTempleDoorOpen) {
+ _gameStateMickey.iRoom = IDI_MSA_PIC_URANUS_STEPS;
return true;
} else {
@@ -1984,17 +1984,17 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_GET_XTAL_URANUS:
- if (_game.fHasXtal) {
+ if (_gameStateMickey.fHasXtal) {
printDatMessage(34);
} else {
- if (_game.fItem[IDI_MSA_ITEM_CROWBAR]) {
- _game.iRmMenu[_game.iRoom] = 1;
+ if (_gameStateMickey.fItem[IDI_MSA_ITEM_CROWBAR]) {
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
}
printDatMessage(arg);
}
break;
case IDI_MSA_ACTION_USE_CROWBAR_1:
- _game.iRmMenu[_game.iRoom] = 0;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
getXtal(arg);
@@ -2003,11 +2003,11 @@ bool Mickey::parse(int cmd, int arg) {
// SPACESHIP
case IDI_MSA_ACTION_GO_NORTH:
- if (_game.fShipDoorOpen) {
- if (_game.fSuit) {
+ if (_gameStateMickey.fShipDoorOpen) {
+ if (_gameStateMickey.fSuit) {
printDatMessage(45);
} else {
- _game.iRoom = IDI_MSA_PIC_SHIP_CORRIDOR;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SHIP_CORRIDOR;
return true;
}
} else {
@@ -2015,19 +2015,19 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_GO_PLANET:
- if (!_game.fShipDoorOpen) {
- if ((_game.nXtals == IDI_MSA_MAX_PLANET) && (_game.iPlanet == IDI_MSA_PLANET_EARTH))
+ if (!_gameStateMickey.fShipDoorOpen) {
+ if ((_gameStateMickey.nXtals == IDI_MSA_MAX_PLANET) && (_gameStateMickey.iPlanet == IDI_MSA_PLANET_EARTH))
gameOver();
- if ((_game.iPlanet == _game.iPlanetXtal[_game.nXtals]) || (_game.iPlanet == IDI_MSA_PLANET_EARTH)) {
- _game.fHasXtal = false;
- _game.iRoom = IDI_MSA_HOME_PLANET[_game.iPlanet];
+ if ((_gameStateMickey.iPlanet == _gameStateMickey.iPlanetXtal[_gameStateMickey.nXtals]) || (_gameStateMickey.iPlanet == IDI_MSA_PLANET_EARTH)) {
+ _gameStateMickey.fHasXtal = false;
+ _gameStateMickey.iRoom = IDI_MSA_HOME_PLANET[_gameStateMickey.iPlanet];
- if (_game.iPlanet != IDI_MSA_PLANET_EARTH)
+ if (_gameStateMickey.iPlanet != IDI_MSA_PLANET_EARTH)
insertDisk(1);
return true;
} else {
- _game.iRoom = IDI_MSA_SHIP_PLANET[_game.iPlanet];
+ _gameStateMickey.iRoom = IDI_MSA_SHIP_PLANET[_gameStateMickey.iPlanet];
return true;
}
@@ -2036,20 +2036,20 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_PRESS_BUTTON:
- if (_game.fShipDoorOpen) { // inner door open
- if (_game.iPlanet && !_game.fSuit) {
+ if (_gameStateMickey.fShipDoorOpen) { // inner door open
+ if (_gameStateMickey.iPlanet && !_gameStateMickey.fSuit) {
printDatMessage(arg);
} else {
- _game.fShipDoorOpen = false;
- _game.iRmPic[_game.iRoom]--;
+ _gameStateMickey.fShipDoorOpen = false;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom]--;
drawRoom();
printDatMessage(2);
}
} else {
- _game.fShipDoorOpen = true;
- _game.iRmPic[_game.iRoom]++;
+ _gameStateMickey.fShipDoorOpen = true;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom]++;
drawRoom();
@@ -2057,11 +2057,11 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_WEAR_SPACESUIT:
- if (_game.fSuit) {
- if (_game.fShipDoorOpen) {
- _game.fSuit = false;
- _game.iRmMenu[_game.iRoom] = 0;
- _game.iRmPic[_game.iRoom] -= 2;
+ if (_gameStateMickey.fSuit) {
+ if (_gameStateMickey.fShipDoorOpen) {
+ _gameStateMickey.fSuit = false;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 0;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] -= 2;
drawRoom();
@@ -2070,10 +2070,10 @@ bool Mickey::parse(int cmd, int arg) {
printDatMessage(3);
}
} else {
- if (_game.iPlanet) {
- _game.fSuit = true;
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] += 2;
+ if (_gameStateMickey.iPlanet) {
+ _gameStateMickey.fSuit = true;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] += 2;
drawRoom();
@@ -2085,14 +2085,14 @@ bool Mickey::parse(int cmd, int arg) {
break;
case IDI_MSA_ACTION_READ_GAUGE:
printDatString(arg);
- _vm->drawStr(21, 15, IDA_DEFAULT, (const char *)IDS_MSA_TEMP_C[_game.iPlanet]);
- _vm->drawStr(21, 23, IDA_DEFAULT, (const char *)IDS_MSA_TEMP_F[_game.iPlanet]);
+ drawStr(21, 15, IDA_DEFAULT, (const char *)IDS_MSA_TEMP_C[_gameStateMickey.iPlanet]);
+ drawStr(21, 23, IDA_DEFAULT, (const char *)IDS_MSA_TEMP_F[_gameStateMickey.iPlanet]);
waitAnyKey();
break;
case IDI_MSA_ACTION_PRESS_ORANGE:
- if (_game.fFlying) {
+ if (_gameStateMickey.fFlying) {
printDatMessage(4);
} else {
playSound(IDI_MSA_SND_PRESS_ORANGE);
@@ -2101,7 +2101,7 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_PRESS_BLUE:
- if (_game.fFlying) {
+ if (_gameStateMickey.fFlying) {
printDatMessage(4);
} else {
playSound(IDI_MSA_SND_PRESS_BLUE);
@@ -2113,18 +2113,18 @@ bool Mickey::parse(int cmd, int arg) {
flipSwitch();
break;
case IDI_MSA_ACTION_PUSH_THROTTLE:
- if (_game.fFlying) {
- _game.fFlying = false;
- _game.nButtons = 0;
+ if (_gameStateMickey.fFlying) {
+ _gameStateMickey.fFlying = false;
+ _gameStateMickey.nButtons = 0;
- memset(_game.szAddr, 0, sizeof(_game.szAddr));
+ memset(_gameStateMickey.szAddr, 0, sizeof(_gameStateMickey.szAddr));
drawRoom();
printDatString(22);
- _vm->drawStr(IDI_MSA_ROW_PLANET, IDI_MSA_COL_PLANET, IDA_DEFAULT,
- (const char *)IDS_MSA_PLANETS[_game.iPlanet]);
+ drawStr(IDI_MSA_ROW_PLANET, IDI_MSA_COL_PLANET, IDA_DEFAULT,
+ (const char *)IDS_MSA_PLANETS[_gameStateMickey.iPlanet]);
waitAnyKey(true);
@@ -2134,39 +2134,39 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_PULL_THROTTLE:
- if (_game.fFlying) {
+ if (_gameStateMickey.fFlying) {
printDatMessage(18);
} else {
if (getPlanet() != -1) {
- _game.fFlying = true;
- _game.iPlanet = getPlanet();
+ _gameStateMickey.fFlying = true;
+ _gameStateMickey.iPlanet = getPlanet();
drawRoom();
printDatMessage(16);
} else {
- _game.nButtons = 0;
+ _gameStateMickey.nButtons = 0;
- memset(_game.szAddr, 0, sizeof(_game.szAddr));
+ memset(_gameStateMickey.szAddr, 0, sizeof(_gameStateMickey.szAddr));
printDatMessage(17);
}
}
break;
case IDI_MSA_ACTION_LEAVE_ROOM:
- if (_game.fFlying) {
+ if (_gameStateMickey.fFlying) {
printDatMessage(24);
} else {
- _game.iRoom = arg;
+ _gameStateMickey.iRoom = arg;
return true;
}
break;
case IDI_MSA_ACTION_OPEN_CABINET_1:
- if (_game.iRmMenu[_game.iRoom]) {
+ if (_gameStateMickey.iRmMenu[_gameStateMickey.iRoom]) {
printLine("THE CABINET IS ALREADY OPEN");
} else {
- _game.iRmMenu[_game.iRoom] = 1;
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_SHIP_KITCHEN_1;
+ _gameStateMickey.iRmMenu[_gameStateMickey.iRoom] = 1;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_SHIP_KITCHEN_1;
drawRoom();
@@ -2174,7 +2174,7 @@ bool Mickey::parse(int cmd, int arg) {
}
break;
case IDI_MSA_ACTION_READ_MAP:
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_STAR_MAP;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_STAR_MAP;
drawRoom();
@@ -2182,16 +2182,16 @@ bool Mickey::parse(int cmd, int arg) {
printDatMessage(47);
printDatMessage(48);
- _game.iRmPic[_game.iRoom] = IDI_MSA_PIC_SHIP_BEDROOM;
+ _gameStateMickey.iRmPic[_gameStateMickey.iRoom] = IDI_MSA_PIC_SHIP_BEDROOM;
drawRoom();
break;
case IDI_MSA_ACTION_GO_WEST:
- _game.nButtons = 0;
+ _gameStateMickey.nButtons = 0;
- memset(_game.szAddr, 0, sizeof(_game.szAddr));
+ memset(_gameStateMickey.szAddr, 0, sizeof(_gameStateMickey.szAddr));
- _game.iRoom = arg;
+ _gameStateMickey.iRoom = arg;
return true;
}
@@ -2201,14 +2201,14 @@ bool Mickey::parse(int cmd, int arg) {
// Keyboard
-void Mickey::waitAnyKey(bool anim) {
+void MickeyEngine::waitAnyKey(bool anim) {
Common::Event event;
if (!anim)
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
- while (!_vm->shouldQuit()) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (!shouldQuit()) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -2223,134 +2223,138 @@ void Mickey::waitAnyKey(bool anim) {
if (anim) {
animate();
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
}
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(10);
+ _system->updateScreen();
+ _system->delayMillis(10);
}
}
// Console-related functions
-void Mickey::debugCurRoom() {
- _vm->_console->DebugPrintf("Current Room = %d\n", _game.iRoom);
+void MickeyEngine::debugCurRoom() {
+ _console->DebugPrintf("Current Room = %d\n", _gameStateMickey.iRoom);
- if (_game.iRmObj[_game.iRoom] != IDI_MSA_OBJECT_NONE) {
- _vm->_console->DebugPrintf("Object %d is in the room\n", _game.iRmObj[_game.iRoom]);
+ if (_gameStateMickey.iRmObj[_gameStateMickey.iRoom] != IDI_MSA_OBJECT_NONE) {
+ _console->DebugPrintf("Object %d is in the room\n", _gameStateMickey.iRmObj[_gameStateMickey.iRoom]);
}
}
-void Mickey::debugGotoRoom(int room) {
- _game.iRoom = room;
+void MickeyEngine::debugGotoRoom(int room) {
+ _gameStateMickey.iRoom = room;
drawRoom();
}
-Mickey::Mickey(PreAgiEngine *vm) : _vm(vm) {
- _vm->_console = new Mickey_Console(_vm, this);
+MickeyEngine::MickeyEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {
+ _console = new MickeyConsole(this);
}
-Mickey::~Mickey() {
+MickeyEngine::~MickeyEngine() {
+ delete _console;
}
-void Mickey::init() {
+void MickeyEngine::init() {
uint8 buffer[512];
// clear game struct
- memset(&_game, 0, sizeof(_game));
- memset(&_game.iItem, IDI_MSA_OBJECT_NONE, sizeof(_game.iItem));
+ memset(&_gameStateMickey, 0, sizeof(_gameStateMickey));
+ memset(&_gameStateMickey.iItem, IDI_MSA_OBJECT_NONE, sizeof(_gameStateMickey.iItem));
// read room extended desc flags
//readExe(IDO_MSA_ROOM_TEXT, buffer, sizeof(buffer));
- //memcpy(_game.fRmTxt, buffer, sizeof(_game.fRmTxt));
+ //memcpy(_gameStateMickey.fRmTxt, buffer, sizeof(_gameStateMickey.fRmTxt));
// read room extended desc offsets
readExe(IDO_MSA_ROOM_TEXT_OFFSETS, buffer, sizeof(buffer));
- memcpy(_game.oRmTxt, buffer, sizeof(_game.oRmTxt));
+ memcpy(_gameStateMickey.oRmTxt, buffer, sizeof(_gameStateMickey.oRmTxt));
for (int i = 0; i < IDI_MSA_MAX_ROOM; i++)
- _game.oRmTxt[i] = buffer[i*2] + 256 * buffer[i*2+1];
+ _gameStateMickey.oRmTxt[i] = buffer[i*2] + 256 * buffer[i*2+1];
// read room object indices
//readExe(IDO_MSA_ROOM_OBJECT, buffer, sizeof(buffer));
- //memcpy(_game.iRmObj, buffer, sizeof(_game.iRmObj));
+ //memcpy(_gameStateMickey.iRmObj, buffer, sizeof(_gameStateMickey.iRmObj));
// read room picture indices
//readExe(IDO_MSA_ROOM_PICTURE, buffer, sizeof(buffer));
- //memcpy(_game.iRmPic, buffer, sizeof(_game.iRmPic));
+ //memcpy(_gameStateMickey.iRmPic, buffer, sizeof(_gameStateMickey.iRmPic));
// read room menu patch indices
readExe(IDO_MSA_ROOM_MENU_FIX, buffer, sizeof(buffer));
- memcpy(_game.nRmMenu, buffer, sizeof(_game.nRmMenu));
+ memcpy(_gameStateMickey.nRmMenu, buffer, sizeof(_gameStateMickey.nRmMenu));
// set room picture and room object indices
for (int i = 0; i < IDI_MSA_MAX_ROOM; i++) {
- _game.iRmPic[i] = i;
- _game.iRmObj[i] = -1;
+ _gameStateMickey.iRmPic[i] = i;
+ _gameStateMickey.iRmObj[i] = -1;
}
- _game.iRmPic[IDI_MSA_PIC_SHIP_AIRLOCK] = IDI_MSA_PIC_SHIP_AIRLOCK_0;
- _game.iRmObj[IDI_MSA_PIC_EARTH_BATHROOM] = 11;
- _game.iRmObj[IDI_MSA_PIC_JUPITER_LAVA] = 21;
- _game.iRmObj[IDI_MSA_PIC_JUPITER_ROCK_0] = 20;
- _game.iRmObj[IDI_MSA_PIC_JUPITER_ROCK_1] = 19;
- _game.iRmObj[IDI_MSA_PIC_EARTH_IN_DOGHOUSE] = 1;
+ _gameStateMickey.iRmPic[IDI_MSA_PIC_SHIP_AIRLOCK] = IDI_MSA_PIC_SHIP_AIRLOCK_0;
+ _gameStateMickey.iRmObj[IDI_MSA_PIC_EARTH_BATHROOM] = 11;
+ _gameStateMickey.iRmObj[IDI_MSA_PIC_JUPITER_LAVA] = 21;
+ _gameStateMickey.iRmObj[IDI_MSA_PIC_JUPITER_ROCK_0] = 20;
+ _gameStateMickey.iRmObj[IDI_MSA_PIC_JUPITER_ROCK_1] = 19;
+ _gameStateMickey.iRmObj[IDI_MSA_PIC_EARTH_IN_DOGHOUSE] = 1;
#if 0
// DEBUG
- _game.iPlanet = IDI_MSA_PLANET_EARTH;
- _game.iRoom = IDI_MSA_PIC_SHIP_CONTROLS;
- _game.fHasXtal = true;
- _game.nXtals = 9;
- _game.fItemUsed[IDI_MSA_ITEM_LETTER] = true;
+ _gameStateMickey.iPlanet = IDI_MSA_PLANET_EARTH;
+ _gameStateMickey.iRoom = IDI_MSA_PIC_SHIP_CONTROLS;
+ _gameStateMickey.fHasXtal = true;
+ _gameStateMickey.nXtals = 9;
+ _gameStateMickey.fItemUsed[IDI_MSA_ITEM_LETTER] = true;
#endif
}
-void Mickey::run() {
- bool done;
+Common::Error MickeyEngine::go() {
+ init();
// Game intro
intro();
// Game loop
- while (!_vm->shouldQuit()) {
+ while (!shouldQuit()) {
drawRoom();
- if (_game.fIntro) {
- _game.fIntro = false;
+ if (_gameStateMickey.fIntro) {
+ _gameStateMickey.fIntro = false;
} else {
printRoomDesc();
}
- if (_game.iRoom == IDI_MSA_PIC_NEPTUNE_GUARD) {
- _game.iRoom = IDI_MSA_PIC_NEPTUNE_LEADER;
+ bool done;
+ if (_gameStateMickey.iRoom == IDI_MSA_PIC_NEPTUNE_GUARD) {
+ _gameStateMickey.iRoom = IDI_MSA_PIC_NEPTUNE_LEADER;
done = true;
} else {
done = false;
}
- while (!done && !_vm->shouldQuit()) {
+ while (!done && !shouldQuit()) {
// Check air supply
- if (_game.fSuit) {
- _game.nAir -= 1;
+ if (_gameStateMickey.fSuit) {
+ _gameStateMickey.nAir -= 1;
for (int i = 0; i < 4; i++) {
- if (_game.nAir == IDI_MSA_AIR_SUPPLY[i]) {
+ if (_gameStateMickey.nAir == IDI_MSA_AIR_SUPPLY[i]) {
playSound(IDI_MSA_SND_XL30);
printExeMsg(IDO_MSA_XL30_SPEAKING);
printExeMsg(IDO_MSA_AIR_SUPPLY[i]);
if (i == 3)
- return;
+ return Common::kNoError;
}
}
} else {
- _game.nAir = 50; // max air supply
+ _gameStateMickey.nAir = 50; // max air supply
}
done = checkMenu();
}
- _game.nFrame = 0;
+ _gameStateMickey.nFrame = 0;
}
gameOver();
-}
+ return Common::kNoError;
}
+
+} // End of namespace Agi
diff --git a/engines/agi/preagi_mickey.h b/engines/agi/preagi_mickey.h
index 62981375c6..673839a592 100644
--- a/engines/agi/preagi_mickey.h
+++ b/engines/agi/preagi_mickey.h
@@ -676,23 +676,25 @@ struct MSA_GAME {
class PreAgiEngine;
-class Mickey {
+class MickeyEngine : public PreAgiEngine {
public:
- Mickey(PreAgiEngine *vm);
- ~Mickey();
+ MickeyEngine(OSystem *syst, const AGIGameDescription *gameDesc);
+ ~MickeyEngine();
void init();
- void run();
+ Common::Error go();
void debugCurRoom();
void debugGotoRoom(int);
void drawPic(int);
void drawObj(ENUM_MSA_OBJECT, int, int);
+ GUI::Debugger *getDebugger() { return _console; }
+
protected:
- PreAgiEngine *_vm;
+ MickeyConsole *_console;
- MSA_GAME _game;
+ MSA_GAME _gameStateMickey;
bool _clickToMove;
int getDat(int);
@@ -741,14 +743,14 @@ protected:
bool planetIsAlreadyAssigned(int planet) {
for (int j = 0; j < IDI_MSA_MAX_PLANET; j++) {
- if (_game.iPlanetXtal[j] == planet)
+ if (_gameStateMickey.iPlanetXtal[j] == planet)
return true;
}
return false;
}
bool mickeyHasItem(int item) {
- if (_game.fItem[item]) {
+ if (_gameStateMickey.fItem[item]) {
printDatMessage(90); // Mickey already has item
return true;
} else {
diff --git a/engines/agi/preagi_troll.cpp b/engines/agi/preagi_troll.cpp
index 445a9e34ff..c2e2bef66e 100644
--- a/engines/agi/preagi_troll.cpp
+++ b/engines/agi/preagi_troll.cpp
@@ -31,32 +31,35 @@
namespace Agi {
-Troll::Troll(PreAgiEngine* vm) : _vm(vm) {
+TrollEngine::TrollEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {
+}
+
+TrollEngine::~TrollEngine() {
}
// User Interface
-void Troll::pressAnyKey(int col) {
- _vm->drawStr(24, col, kColorDefault, IDS_TRO_PRESSANYKEY);
- _vm->_gfx->doUpdate();
- _vm->getSelection(kSelAnyKey);
+void TrollEngine::pressAnyKey(int col) {
+ drawStr(24, col, kColorDefault, IDS_TRO_PRESSANYKEY);
+ _gfx->doUpdate();
+ getSelection(kSelAnyKey);
}
-void Troll::drawMenu(const char *szMenu, int iSel) {
- _vm->clearTextArea();
- _vm->drawStr(21, 0, kColorDefault, szMenu);
- _vm->drawStr(22 + iSel, 0, kColorDefault, " *");
- _vm->_gfx->doUpdate();
+void TrollEngine::drawMenu(const char *szMenu, int iSel) {
+ clearTextArea();
+ drawStr(21, 0, kColorDefault, szMenu);
+ drawStr(22 + iSel, 0, kColorDefault, " *");
+ _gfx->doUpdate();
}
-bool Troll::getMenuSel(const char *szMenu, int *iSel, int nSel) {
+bool TrollEngine::getMenuSel(const char *szMenu, int *iSel, int nSel) {
Common::Event event;
int y;
drawMenu(szMenu, *iSel);
- while (!_vm->shouldQuit()) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (!shouldQuit()) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -117,8 +120,8 @@ bool Troll::getMenuSel(const char *szMenu, int *iSel, int nSel) {
break;
}
}
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(10);
+ _system->updateScreen();
+ _system->delayMillis(10);
}
return true;
@@ -126,18 +129,18 @@ bool Troll::getMenuSel(const char *szMenu, int *iSel, int nSel) {
// Graphics
-void Troll::drawPic(int iPic, bool f3IsCont, bool clr, bool troll) {
- _vm->_picture->setDimensions(IDI_TRO_PIC_WIDTH, IDI_TRO_PIC_HEIGHT);
+void TrollEngine::drawPic(int iPic, bool f3IsCont, bool clr, bool troll) {
+ _picture->setDimensions(IDI_TRO_PIC_WIDTH, IDI_TRO_PIC_HEIGHT);
if (clr) {
- _vm->clearScreen(0x0f, false);
- _vm->_picture->clear();
+ clearScreen(0x0f, false);
+ _picture->clear();
}
- _vm->_picture->setPictureData(_gameData + IDO_TRO_FRAMEPIC);
- _vm->_picture->drawPicture();
+ _picture->setPictureData(_gameData + IDO_TRO_FRAMEPIC);
+ _picture->drawPicture();
- _vm->_picture->setPictureData(_gameData + _pictureOffsets[iPic]);
+ _picture->setPictureData(_gameData + _pictureOffsets[iPic]);
int addFlag = 0;
@@ -145,26 +148,26 @@ void Troll::drawPic(int iPic, bool f3IsCont, bool clr, bool troll) {
addFlag = kPicFTrollMode;
if (f3IsCont) {
- _vm->_picture->setPictureFlags(kPicFf3Cont | addFlag);
+ _picture->setPictureFlags(kPicFf3Cont | addFlag);
} else {
- _vm->_picture->setPictureFlags(kPicFf3Stop | addFlag);
+ _picture->setPictureFlags(kPicFf3Stop | addFlag);
}
- _vm->_picture->drawPicture();
+ _picture->drawPicture();
- _vm->_picture->showPic();
- _vm->_gfx->doUpdate();
+ _picture->showPic();
+ _gfx->doUpdate();
}
// Game Logic
-void Troll::inventory() {
+void TrollEngine::inventory() {
char tmp[40];
int n;
- _vm->clearScreen(0x07);
- _vm->drawStr(1, 12, kColorDefault, IDS_TRO_TREASURE_0);
- _vm->drawStr(2, 12, kColorDefault, IDS_TRO_TREASURE_1);
+ clearScreen(0x07);
+ drawStr(1, 12, kColorDefault, IDS_TRO_TREASURE_0);
+ drawStr(2, 12, kColorDefault, IDS_TRO_TREASURE_1);
for (int i = 0; i < IDI_TRO_MAX_TREASURE - _treasuresLeft; i++) {
@@ -172,36 +175,36 @@ void Troll::inventory() {
sprintf(tmp, " %2d ", i + 1);
- _vm->drawStr(2 + i, 10, _items[n].bg << 4 | 0x0f, tmp);
- _vm->drawStr(2 + i, 14, _items[n].bg << 4 | _items[n].fg, _items[n].name);
+ drawStr(2 + i, 10, _items[n].bg << 4 | 0x0f, tmp);
+ drawStr(2 + i, 14, _items[n].bg << 4 | _items[n].fg, _items[n].name);
}
switch (_treasuresLeft) {
case 1:
sprintf(tmp, IDS_TRO_TREASURE_5, _treasuresLeft);
- _vm->drawStr(20, 10, kColorDefault, tmp);
+ drawStr(20, 10, kColorDefault, tmp);
break;
case 0:
- _vm->drawStr(20, 1, kColorDefault, IDS_TRO_TREASURE_6);
+ drawStr(20, 1, kColorDefault, IDS_TRO_TREASURE_6);
break;
case IDI_TRO_MAX_TREASURE:
- _vm->drawStr(3, 17, kColorDefault, IDS_TRO_TREASURE_2);
+ drawStr(3, 17, kColorDefault, IDS_TRO_TREASURE_2);
default:
sprintf(tmp, IDS_TRO_TREASURE_4, _treasuresLeft);
- _vm->drawStr(20, 10, kColorDefault, tmp);
+ drawStr(20, 10, kColorDefault, tmp);
break;
}
pressAnyKey(6);
}
-void Troll::waitAnyKeyIntro() {
+void TrollEngine::waitAnyKeyIntro() {
Common::Event event;
int iMsg = 0;
- while (!_vm->shouldQuit()) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (!shouldQuit()) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -217,26 +220,26 @@ void Troll::waitAnyKeyIntro() {
case 200:
iMsg = 0;
case 0:
- _vm->drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_2);
- _vm->_gfx->doUpdate();
+ drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_2);
+ _gfx->doUpdate();
break;
case 100:
- _vm->drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_3);
- _vm->_gfx->doUpdate();
+ drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_3);
+ _gfx->doUpdate();
break;
}
iMsg++;
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(10);
+ _system->updateScreen();
+ _system->delayMillis(10);
}
}
-void Troll::credits() {
- _vm->clearScreen(0x07);
+void TrollEngine::credits() {
+ clearScreen(0x07);
- _vm->drawStr(1, 2, kColorDefault, IDS_TRO_CREDITS_0);
+ drawStr(1, 2, kColorDefault, IDS_TRO_CREDITS_0);
int color = 10;
char str[2];
@@ -245,49 +248,49 @@ void Troll::credits() {
for (uint i = 0; i < strlen(IDS_TRO_CREDITS_1); i++) {
str[0] = IDS_TRO_CREDITS_1[i];
- _vm->drawStr(7, 19 + i, color++, str);
+ drawStr(7, 19 + i, color++, str);
if (color > 15)
color = 9;
}
- _vm->drawStr(8, 19, kColorDefault, IDS_TRO_CREDITS_2);
+ drawStr(8, 19, kColorDefault, IDS_TRO_CREDITS_2);
- _vm->drawStr(13, 11, 9, IDS_TRO_CREDITS_3);
- _vm->drawStr(15, 8, 10, IDS_TRO_CREDITS_4);
- _vm->drawStr(17, 7, 12, IDS_TRO_CREDITS_5);
- _vm->drawStr(19, 2, 14, IDS_TRO_CREDITS_6);
+ drawStr(13, 11, 9, IDS_TRO_CREDITS_3);
+ drawStr(15, 8, 10, IDS_TRO_CREDITS_4);
+ drawStr(17, 7, 12, IDS_TRO_CREDITS_5);
+ drawStr(19, 2, 14, IDS_TRO_CREDITS_6);
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
pressAnyKey();
}
-void Troll::tutorial() {
+void TrollEngine::tutorial() {
bool done = false;
int iSel = 0;
//char szTreasure[16] = {0};
- while (!_vm->shouldQuit()) {
- _vm->clearScreen(0xFF);
+ while (!shouldQuit()) {
+ clearScreen(0xFF);
- _vm->printStr(IDS_TRO_TUTORIAL_0);
- _vm->getSelection(kSelSpace);
+ printStr(IDS_TRO_TUTORIAL_0);
+ getSelection(kSelSpace);
- _vm->clearScreen(0x55);
- _vm->setDefaultTextColor(0x0F);
+ clearScreen(0x55);
+ setDefaultTextColor(0x0F);
done = false;
- while (!done && !_vm->shouldQuit()) {
+ while (!done && !shouldQuit()) {
getMenuSel(IDS_TRO_TUTORIAL_1, &iSel, IDI_TRO_MAX_OPTION);
switch (iSel) {
case IDI_TRO_SEL_OPTION_1:
- _vm->clearScreen(0x22, false);
- _vm->_gfx->doUpdate();
+ clearScreen(0x22, false);
+ _gfx->doUpdate();
break;
case IDI_TRO_SEL_OPTION_2:
- _vm->clearScreen(0x00, false);
- _vm->_gfx->doUpdate();
+ clearScreen(0x00, false);
+ _gfx->doUpdate();
break;
case IDI_TRO_SEL_OPTION_3:
done = true;
@@ -296,102 +299,102 @@ void Troll::tutorial() {
}
// do you need more practice ?
- _vm->clearScreen(0x4F);
- _vm->drawStr(7, 4, kColorDefault, IDS_TRO_TUTORIAL_5);
- _vm->drawStr(9, 4, kColorDefault, IDS_TRO_TUTORIAL_6);
- _vm->_gfx->doUpdate();
+ clearScreen(0x4F);
+ drawStr(7, 4, kColorDefault, IDS_TRO_TUTORIAL_5);
+ drawStr(9, 4, kColorDefault, IDS_TRO_TUTORIAL_6);
+ _gfx->doUpdate();
- if (!_vm->getSelection(kSelYesNo))
+ if (!getSelection(kSelYesNo))
break;
}
// show info texts
- _vm->clearScreen(0x5F);
- _vm->drawStr(4, 1, kColorDefault, IDS_TRO_TUTORIAL_7);
- _vm->drawStr(5, 1, kColorDefault, IDS_TRO_TUTORIAL_8);
- _vm->_gfx->doUpdate();
+ clearScreen(0x5F);
+ drawStr(4, 1, kColorDefault, IDS_TRO_TUTORIAL_7);
+ drawStr(5, 1, kColorDefault, IDS_TRO_TUTORIAL_8);
+ _gfx->doUpdate();
pressAnyKey();
- _vm->clearScreen(0x2F);
- _vm->drawStr(6, 1, kColorDefault, IDS_TRO_TUTORIAL_9);
- _vm->_gfx->doUpdate();
+ clearScreen(0x2F);
+ drawStr(6, 1, kColorDefault, IDS_TRO_TUTORIAL_9);
+ _gfx->doUpdate();
pressAnyKey();
- _vm->clearScreen(0x19);
- _vm->drawStr(7, 1, kColorDefault, IDS_TRO_TUTORIAL_10);
- _vm->drawStr(8, 1, kColorDefault, IDS_TRO_TUTORIAL_11);
- _vm->_gfx->doUpdate();
+ clearScreen(0x19);
+ drawStr(7, 1, kColorDefault, IDS_TRO_TUTORIAL_10);
+ drawStr(8, 1, kColorDefault, IDS_TRO_TUTORIAL_11);
+ _gfx->doUpdate();
pressAnyKey();
- _vm->clearScreen(0x6E);
- _vm->drawStr(9, 1, kColorDefault, IDS_TRO_TUTORIAL_12);
- _vm->drawStr(10, 1, kColorDefault, IDS_TRO_TUTORIAL_13);
- _vm->_gfx->doUpdate();
+ clearScreen(0x6E);
+ drawStr(9, 1, kColorDefault, IDS_TRO_TUTORIAL_12);
+ drawStr(10, 1, kColorDefault, IDS_TRO_TUTORIAL_13);
+ _gfx->doUpdate();
pressAnyKey();
- _vm->clearScreen(0x4C);
- _vm->drawStr(11, 1, kColorDefault, IDS_TRO_TUTORIAL_14);
- _vm->drawStr(12, 1, kColorDefault, IDS_TRO_TUTORIAL_15);
- _vm->_gfx->doUpdate();
+ clearScreen(0x4C);
+ drawStr(11, 1, kColorDefault, IDS_TRO_TUTORIAL_14);
+ drawStr(12, 1, kColorDefault, IDS_TRO_TUTORIAL_15);
+ _gfx->doUpdate();
pressAnyKey();
- _vm->clearScreen(0x5D);
- _vm->drawStr(13, 1, kColorDefault, IDS_TRO_TUTORIAL_16);
- _vm->drawStr(14, 1, kColorDefault, IDS_TRO_TUTORIAL_17);
- _vm->drawStr(15, 1, kColorDefault, IDS_TRO_TUTORIAL_18);
- _vm->_gfx->doUpdate();
+ clearScreen(0x5D);
+ drawStr(13, 1, kColorDefault, IDS_TRO_TUTORIAL_16);
+ drawStr(14, 1, kColorDefault, IDS_TRO_TUTORIAL_17);
+ drawStr(15, 1, kColorDefault, IDS_TRO_TUTORIAL_18);
+ _gfx->doUpdate();
pressAnyKey();
// show treasures
- _vm->clearScreen(0x2A);
- _vm->drawStr(2, 1, kColorDefault, IDS_TRO_TUTORIAL_19);
+ clearScreen(0x2A);
+ drawStr(2, 1, kColorDefault, IDS_TRO_TUTORIAL_19);
for (int i = 0; i < IDI_TRO_MAX_TREASURE; i++)
- _vm->drawStr(19 - i, 11, kColorDefault, _items[i].name);
+ drawStr(19 - i, 11, kColorDefault, _items[i].name);
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
pressAnyKey();
}
-void Troll::intro() {
+void TrollEngine::intro() {
// sierra on-line presents
- _vm->clearScreen(0x2F);
- _vm->drawStr(9, 10, kColorDefault, IDS_TRO_INTRO_0);
- _vm->drawStr(14, 15, kColorDefault, IDS_TRO_INTRO_1);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(3200);
+ clearScreen(0x2F);
+ drawStr(9, 10, kColorDefault, IDS_TRO_INTRO_0);
+ drawStr(14, 15, kColorDefault, IDS_TRO_INTRO_1);
+ _gfx->doUpdate();
+ _system->updateScreen();
+ _system->delayMillis(3200);
CursorMan.showMouse(true);
// Draw logo
- _vm->setDefaultTextColor(0x0f);
+ setDefaultTextColor(0x0f);
drawPic(45, false, true);
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
// wait for keypress and alternate message
waitAnyKeyIntro();
// have you played this game before?
- _vm->drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_4);
- _vm->drawStr(23, 6, kColorDefault, IDS_TRO_INTRO_5);
- _vm->_gfx->doUpdate();
+ drawStr(22, 3, kColorDefault, IDS_TRO_INTRO_4);
+ drawStr(23, 6, kColorDefault, IDS_TRO_INTRO_5);
+ _gfx->doUpdate();
- if (!_vm->getSelection(kSelYesNo))
+ if (!getSelection(kSelYesNo))
tutorial();
credits();
}
-void Troll::gameOver() {
+void TrollEngine::gameOver() {
// We do a check to see if the game should quit. Without this, the game show the picture, plays the
// music, and then quits. So if the game is quitting, we shouldn't run the "game over" part.
- if (_vm->shouldQuit())
+ if (shouldQuit())
return;
char szMoves[40];
- _vm->clearTextArea();
+ clearTextArea();
drawPic(42, true, true);
playTune(4, 25);
@@ -400,19 +403,19 @@ void Troll::gameOver() {
printUserMessage(33);
- _vm->clearTextArea();
+ clearTextArea();
drawPic(46, true, true);
sprintf(szMoves, IDS_TRO_GAMEOVER_0, _moves);
- _vm->drawStr(21, 1, kColorDefault, szMoves);
- _vm->drawStr(22, 1, kColorDefault, IDS_TRO_GAMEOVER_1);
- _vm->_gfx->doUpdate();
+ drawStr(21, 1, kColorDefault, szMoves);
+ drawStr(22, 1, kColorDefault, IDS_TRO_GAMEOVER_1);
+ _gfx->doUpdate();
pressAnyKey();
}
-void Troll::drawTroll() {
+void TrollEngine::drawTroll() {
for (int i = 0; i < IDI_TRO_NUM_NONTROLL; i++)
if (_currentRoom == _nonTrollRooms[i]) {
_isTrollAway = true;
@@ -422,14 +425,14 @@ void Troll::drawTroll() {
drawPic(43, false, false, true);
}
-int Troll::drawRoom(char *menu) {
+int TrollEngine::drawRoom(char *menu) {
int n = 0;
bool contFlag = false;
if (_currentRoom == 1) {
- _vm->_picture->setDimensions(IDI_TRO_PIC_WIDTH, IDI_TRO_PIC_HEIGHT);
- _vm->clearScreen(0x00, false);
- _vm->_picture->clear();
+ _picture->setDimensions(IDI_TRO_PIC_WIDTH, IDI_TRO_PIC_HEIGHT);
+ clearScreen(0x00, false);
+ _picture->clear();
} else {
if (_currentRoom != 42) {
@@ -439,7 +442,7 @@ int Troll::drawRoom(char *menu) {
}
drawPic(_currentRoom, contFlag, true);
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
if (_currentRoom == 42) {
drawPic(44, false, false); // don't clear
@@ -450,7 +453,7 @@ int Troll::drawRoom(char *menu) {
}
}
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
char tmp[10];
strncat(menu, (char*)_gameData + _locMessagesIdx[_currentRoom], 39);
@@ -469,7 +472,7 @@ int Troll::drawRoom(char *menu) {
return n;
}
-void Troll::playTune(int tune, int len) {
+void TrollEngine::playTune(int tune, int len) {
if (!_soundOn)
return;
@@ -482,34 +485,34 @@ void Troll::playTune(int tune, int len) {
duration = READ_LE_UINT16(_gameData + ptr);
ptr += 2;
- _vm->playNote(freq, duration);
+ playNote(freq, duration);
}
}
-void Troll::pickupTreasure(int treasureId) {
+void TrollEngine::pickupTreasure(int treasureId) {
char tmp[40];
_inventory[IDI_TRO_MAX_TREASURE - _treasuresLeft] = treasureId;
if (_currentRoom != 24) {
- _vm->clearTextArea();
+ clearTextArea();
drawPic(_currentRoom, false, true);
- _vm->_gfx->doUpdate();
+ _gfx->doUpdate();
}
printUserMessage(treasureId + 16);
- _vm->clearTextArea();
+ clearTextArea();
_treasuresLeft--;
switch (_treasuresLeft) {
case 1:
- _vm->drawStr(22, 1, kColorDefault, IDS_TRO_TREASURE_7);
+ drawStr(22, 1, kColorDefault, IDS_TRO_TREASURE_7);
break;
case 0:
- _vm->drawStr(22, 1, kColorDefault, IDS_TRO_TREASURE_8);
- _vm->drawStr(23, 4, kColorDefault, IDS_TRO_TREASURE_9);
+ drawStr(22, 1, kColorDefault, IDS_TRO_TREASURE_8);
+ drawStr(23, 4, kColorDefault, IDS_TRO_TREASURE_9);
_roomStates[6] = 1;
@@ -517,20 +520,20 @@ void Troll::pickupTreasure(int treasureId) {
break;
default:
sprintf(tmp, IDS_TRO_TREASURE_3, _treasuresLeft);
- _vm->drawStr(22, 1, kColorDefault, tmp);
+ drawStr(22, 1, kColorDefault, tmp);
break;
}
pressAnyKey();
}
-void Troll::printUserMessage(int msgId) {
+void TrollEngine::printUserMessage(int msgId) {
int i;
- _vm->clearTextArea();
+ clearTextArea();
for (i = 0; i < _userMessages[msgId - 1].num; i++) {
- _vm->drawStr(21 + i, 1, kColorDefault, _userMessages[msgId - 1].msg[i]);
+ drawStr(21 + i, 1, kColorDefault, _userMessages[msgId - 1].msg[i]);
}
if (msgId == 34) {
@@ -540,7 +543,7 @@ void Troll::printUserMessage(int msgId) {
pressAnyKey();
}
-void Troll::gameLoop() {
+void TrollEngine::gameLoop() {
bool done = false;
char menu[160+5];
int currentOption, numberOfOptions;
@@ -559,7 +562,7 @@ void Troll::gameLoop() {
memset(_inventory, 0, sizeof(_inventory));
- while (!done && !_vm->shouldQuit()) {
+ while (!done && !shouldQuit()) {
*menu = 0;
currentOption = 0;
@@ -589,7 +592,7 @@ void Troll::gameLoop() {
if (_currentRoom < 6 || _treasuresLeft == 0) {
_isTrollAway = true;
} else { // make odd 1:3
- _isTrollAway = (_vm->rnd(3) != 2);
+ _isTrollAway = (rnd(3) != 2);
}
break;
case OT_GET:
@@ -634,7 +637,7 @@ void Troll::gameLoop() {
}
-void Troll::fillOffsets() {
+void TrollEngine::fillOffsets() {
int i;
for (i = 0; i < IDI_TRO_PICNUM; i++)
@@ -721,8 +724,8 @@ void Troll::fillOffsets() {
// Init
-void Troll::init() {
- _vm->_picture->setPictureVersion(AGIPIC_V15);
+void TrollEngine::init() {
+ _picture->setPictureVersion(AGIPIC_V15);
//SetScreenPar(320, 200, (char*)ibm_fontdata);
const int gaps[] = { 0x3A40, 0x4600, 0x4800, 0x5800, 0x5a00, 0x6a00,
@@ -762,12 +765,16 @@ void Troll::init() {
fillOffsets();
}
-void Troll::run() {
- while (!_vm->shouldQuit()) {
+Common::Error TrollEngine::go() {
+ init();
+
+ while (!shouldQuit()) {
intro();
gameLoop();
gameOver();
}
+
+ return Common::kNoError;
}
} // End of namespace Agi
diff --git a/engines/agi/preagi_troll.h b/engines/agi/preagi_troll.h
index d9a995072b..c14a7872c2 100644
--- a/engines/agi/preagi_troll.h
+++ b/engines/agi/preagi_troll.h
@@ -157,16 +157,14 @@ struct Item {
char name[16];
};
-class Troll {
+class TrollEngine : public PreAgiEngine {
public:
- Troll(PreAgiEngine *vm);
+ TrollEngine(OSystem *syst, const AGIGameDescription *gameDesc);
+ ~TrollEngine();
- void init();
- void run();
+ Common::Error go();
private:
- PreAgiEngine *_vm;
-
int _roomPicture;
int _treasuresLeft;
int _currentRoom;
@@ -180,6 +178,7 @@ private:
byte *_gameData;
+ void init();
void intro();
void drawPic(int iPic, bool f3IsCont, bool clear, bool troll = false);
void drawTroll();
@@ -205,9 +204,7 @@ private:
void fillOffsets();
-private:
// These are come from game data
-
int _pictureOffsets[IDI_TRO_PICNUM];
int _roomPicStartIdx[IDI_TRO_NUM_NUMROOMS];
int _roomPicDeltas[IDI_TRO_NUM_NUMROOMS];
diff --git a/engines/agi/preagi_winnie.cpp b/engines/agi/preagi_winnie.cpp
index af26fe62d0..fee8fde2b3 100644
--- a/engines/agi/preagi_winnie.cpp
+++ b/engines/agi/preagi_winnie.cpp
@@ -31,9 +31,11 @@
#include "common/savefile.h"
#include "common/textconsole.h"
+#include "audio/mididrv.h"
+
namespace Agi {
-void Winnie::parseRoomHeader(WTP_ROOM_HDR *roomHdr, byte *buffer, int len) {
+void WinnieEngine::parseRoomHeader(WTP_ROOM_HDR *roomHdr, byte *buffer, int len) {
int i;
Common::MemoryReadStreamEndian readS(buffer, len, _isBigEndian);
@@ -68,7 +70,7 @@ void Winnie::parseRoomHeader(WTP_ROOM_HDR *roomHdr, byte *buffer, int len) {
roomHdr->opt[i].ofsOpt[j] = readS.readUint16();
}
-void Winnie::parseObjHeader(WTP_OBJ_HDR *objHdr, byte *buffer, int len) {
+void WinnieEngine::parseObjHeader(WTP_OBJ_HDR *objHdr, byte *buffer, int len) {
int i;
Common::MemoryReadStreamEndian readS(buffer, len, _isBigEndian);
@@ -85,16 +87,16 @@ void Winnie::parseObjHeader(WTP_OBJ_HDR *objHdr, byte *buffer, int len) {
objHdr->ofsPic = readS.readUint16();
}
-uint32 Winnie::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
+uint32 WinnieEngine::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
Common::String fileName;
- if (_vm->getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformPC)
fileName = Common::String::format(IDS_WTP_ROOM_DOS, iRoom);
- else if (_vm->getPlatform() == Common::kPlatformAmiga)
+ else if (getPlatform() == Common::kPlatformAmiga)
fileName = Common::String::format(IDS_WTP_ROOM_AMIGA, iRoom);
- else if (_vm->getPlatform() == Common::kPlatformC64)
+ else if (getPlatform() == Common::kPlatformC64)
fileName = Common::String::format(IDS_WTP_ROOM_C64, iRoom);
- else if (_vm->getPlatform() == Common::kPlatformApple2GS)
+ else if (getPlatform() == Common::kPlatformApple2GS)
fileName = Common::String::format(IDS_WTP_ROOM_APPLE, iRoom);
Common::File file;
@@ -104,7 +106,7 @@ uint32 Winnie::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
}
uint32 filelen = file.size();
- if (_vm->getPlatform() == Common::kPlatformC64) { // Skip the loading address
+ if (getPlatform() == Common::kPlatformC64) { // Skip the loading address
filelen -= 2;
file.seek(2, SEEK_CUR);
}
@@ -118,16 +120,16 @@ uint32 Winnie::readRoom(int iRoom, uint8 *buffer, WTP_ROOM_HDR &roomHdr) {
return filelen;
}
-uint32 Winnie::readObj(int iObj, uint8 *buffer) {
+uint32 WinnieEngine::readObj(int iObj, uint8 *buffer) {
Common::String fileName;
- if (_vm->getPlatform() == Common::kPlatformPC)
+ if (getPlatform() == Common::kPlatformPC)
fileName = Common::String::format(IDS_WTP_OBJ_DOS, iObj);
- else if (_vm->getPlatform() == Common::kPlatformAmiga)
+ else if (getPlatform() == Common::kPlatformAmiga)
fileName = Common::String::format(IDS_WTP_OBJ_AMIGA, iObj);
- else if (_vm->getPlatform() == Common::kPlatformC64)
+ else if (getPlatform() == Common::kPlatformC64)
fileName = Common::String::format(IDS_WTP_OBJ_C64, iObj);
- else if (_vm->getPlatform() == Common::kPlatformApple2GS)
+ else if (getPlatform() == Common::kPlatformApple2GS)
fileName = Common::String::format(IDS_WTP_OBJ_APPLE, iObj);
Common::File file;
@@ -137,7 +139,7 @@ uint32 Winnie::readObj(int iObj, uint8 *buffer) {
}
uint32 filelen = file.size();
- if (_vm->getPlatform() == Common::kPlatformC64) { // Skip the loading address
+ if (getPlatform() == Common::kPlatformC64) { // Skip the loading address
filelen -= 2;
file.seek(2, SEEK_CUR);
}
@@ -148,7 +150,7 @@ uint32 Winnie::readObj(int iObj, uint8 *buffer) {
return filelen;
}
-void Winnie::randomize() {
+void WinnieEngine::randomize() {
int iObj = 0;
int iRoom = 0;
bool done;
@@ -157,52 +159,52 @@ void Winnie::randomize() {
done = false;
while (!done) {
- iObj = _vm->rnd(IDI_WTP_MAX_OBJ - 1);
+ iObj = rnd(IDI_WTP_MAX_OBJ - 1);
done = true;
for (int j = 0; j < IDI_WTP_MAX_OBJ_MISSING; j++) {
- if (_game.iUsedObj[j] == iObj) {
+ if (_gameStateWinnie.iUsedObj[j] == iObj) {
done = false;
break;
}
}
}
- _game.iUsedObj[i] = iObj;
+ _gameStateWinnie.iUsedObj[i] = iObj;
done = false;
while (!done) {
- iRoom = _vm->rnd(IDI_WTP_MAX_ROOM_NORMAL);
+ iRoom = rnd(IDI_WTP_MAX_ROOM_NORMAL);
done = true;
for (int j = 0; j < IDI_WTP_MAX_ROOM_OBJ; j++) {
- if (_game.iObjRoom[j] == iRoom) {
+ if (_gameStateWinnie.iObjRoom[j] == iRoom) {
done = false;
break;
}
}
}
- _game.iObjRoom[iObj] = iRoom;
+ _gameStateWinnie.iObjRoom[iObj] = iRoom;
}
}
-void Winnie::intro() {
+void WinnieEngine::intro() {
drawPic(IDS_WTP_FILE_LOGO);
- _vm->printStr(IDS_WTP_INTRO_0);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(0x640);
+ printStr(IDS_WTP_INTRO_0);
+ _gfx->doUpdate();
+ _system->updateScreen();
+ _system->delayMillis(0x640);
- if (_vm->getPlatform() == Common::kPlatformAmiga)
- _vm->_gfx->clearScreen(0);
+ if (getPlatform() == Common::kPlatformAmiga)
+ _gfx->clearScreen(0);
drawPic(IDS_WTP_FILE_TITLE);
- _vm->printStr(IDS_WTP_INTRO_1);
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(0x640);
+ printStr(IDS_WTP_INTRO_1);
+ _gfx->doUpdate();
+ _system->updateScreen();
+ _system->delayMillis(0x640);
if (!playSound(IDI_WTP_SND_POOH_0))
return;
@@ -214,27 +216,27 @@ void Winnie::intro() {
return;
}
-int Winnie::getObjInRoom(int iRoom) {
+int WinnieEngine::getObjInRoom(int iRoom) {
for (int iObj = 1; iObj < IDI_WTP_MAX_ROOM_OBJ; iObj++)
- if (_game.iObjRoom[iObj] == iRoom)
+ if (_gameStateWinnie.iObjRoom[iObj] == iRoom)
return iObj;
return 0;
}
-void Winnie::setTakeDrop(int fCanSel[]) {
+void WinnieEngine::setTakeDrop(int fCanSel[]) {
fCanSel[IDI_WTP_SEL_TAKE] = getObjInRoom(_room);
- fCanSel[IDI_WTP_SEL_DROP] = _game.iObjHave;
+ fCanSel[IDI_WTP_SEL_DROP] = _gameStateWinnie.iObjHave;
}
-void Winnie::setFlag(int iFlag) {
- _game.fGame[iFlag] = 1;
+void WinnieEngine::setFlag(int iFlag) {
+ _gameStateWinnie.fGame[iFlag] = 1;
}
-void Winnie::clearFlag(int iFlag) {
- _game.fGame[iFlag] = 0;
+void WinnieEngine::clearFlag(int iFlag) {
+ _gameStateWinnie.fGame[iFlag] = 0;
}
-int Winnie::parser(int pc, int index, uint8 *buffer) {
+int WinnieEngine::parser(int pc, int index, uint8 *buffer) {
WTP_ROOM_HDR hdr;
int startpc = pc;
int8 opcode;
@@ -249,7 +251,7 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
// extract header from buffer
parseRoomHeader(&hdr, buffer, sizeof(WTP_ROOM_HDR));
- while (!_vm->shouldQuit()) {
+ while (!shouldQuit()) {
pc = startpc;
// check if block is to be run
@@ -259,7 +261,7 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
return IDI_WTP_PAR_OK;
fBlock = *(buffer + pc++);
- if (_game.fGame[iBlock] != fBlock)
+ if (_gameStateWinnie.fGame[iBlock] != fBlock)
return IDI_WTP_PAR_OK;
// extract text from block
@@ -292,12 +294,12 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
// extract menu string
strcpy(szMenu, (char *)(buffer + pc));
- _vm->XOR80(szMenu);
+ XOR80(szMenu);
break;
default:
// print description
printStrWinnie((char *)(buffer + pc));
- if (_vm->getSelection(kSelBackspace) == 1)
+ if (getSelection(kSelBackspace) == 1)
return IDI_WTP_PAR_OK;
else
return IDI_WTP_PAR_BACK;
@@ -314,7 +316,7 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
// get menu selection
getMenuSel(szMenu, &iSel, fCanSel);
- if (++_game.nMoves == IDI_WTP_MAX_MOVES_UNTIL_WIND)
+ if (++_gameStateWinnie.nMoves == IDI_WTP_MAX_MOVES_UNTIL_WIND)
_doWind = true;
if (_winnieEvent && (_room <= IDI_WTP_MAX_ROOM_TELEPORT)) {
@@ -356,8 +358,8 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
iDir = iSel - IDI_WTP_SEL_NORTH;
if (hdr.roomNew[iDir] == IDI_WTP_ROOM_NONE) {
- _vm->printStr(IDS_WTP_CANT_GO);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_CANT_GO);
+ getSelection(kSelAnyKey);
} else {
_room = hdr.roomNew[iDir];
return IDI_WTP_PAR_GOTO;
@@ -391,7 +393,7 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
case IDO_WTP_PRINT_MSG:
opcode = *(buffer + pc++);
printRoomStr(_room, opcode);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
break;
case IDO_WTP_PRINT_STR:
opcode = *(buffer + pc++);
@@ -416,7 +418,7 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
case IDO_WTP_WALK_MIST:
_mist--;
if (!_mist) {
- _room = _vm->rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
+ _room = rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
return IDI_WTP_PAR_GOTO;
}
break;
@@ -437,13 +439,13 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
showOwlHelp();
break;
case IDO_WTP_GOTO_RND:
- _room = _vm->rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
+ _room = rnd(IDI_WTP_MAX_ROOM_TELEPORT) + 1;
return IDI_WTP_PAR_GOTO;
default:
opcode = 0;
break;
}
- } while (opcode && !_vm->shouldQuit());
+ } while (opcode && !shouldQuit());
if (iNewRoom) {
_room = iNewRoom;
@@ -452,38 +454,38 @@ int Winnie::parser(int pc, int index, uint8 *buffer) {
if (iBlock == 1)
return IDI_WTP_PAR_OK;
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->doUpdate();
+ _system->updateScreen();
}
return IDI_WTP_PAR_OK;
}
-void Winnie::keyHelp() {
+void WinnieEngine::keyHelp() {
playSound(IDI_WTP_SND_KEYHELP);
- _vm->printStr(IDS_WTP_HELP_0);
- _vm->getSelection(kSelAnyKey);
- _vm->printStr(IDS_WTP_HELP_1);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_HELP_0);
+ getSelection(kSelAnyKey);
+ printStr(IDS_WTP_HELP_1);
+ getSelection(kSelAnyKey);
}
-void Winnie::inventory() {
- if (_game.iObjHave)
- printObjStr(_game.iObjHave, IDI_WTP_OBJ_TAKE);
+void WinnieEngine::inventory() {
+ if (_gameStateWinnie.iObjHave)
+ printObjStr(_gameStateWinnie.iObjHave, IDI_WTP_OBJ_TAKE);
else {
- _vm->clearTextArea();
- _vm->drawStr(IDI_WTP_ROW_MENU, IDI_WTP_COL_MENU, IDA_DEFAULT, IDS_WTP_INVENTORY_0);
+ clearTextArea();
+ drawStr(IDI_WTP_ROW_MENU, IDI_WTP_COL_MENU, IDA_DEFAULT, IDS_WTP_INVENTORY_0);
}
- Common::String missing = Common::String::format(IDS_WTP_INVENTORY_1, _game.nObjMiss);
+ Common::String missing = Common::String::format(IDS_WTP_INVENTORY_1, _gameStateWinnie.nObjMiss);
- _vm->drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_MENU, IDA_DEFAULT, missing.c_str());
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen(); //TODO: Move to game's main loop
- _vm->getSelection(kSelAnyKey);
+ drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_MENU, IDA_DEFAULT, missing.c_str());
+ _gfx->doUpdate();
+ _system->updateScreen(); //TODO: Move to game's main loop
+ getSelection(kSelAnyKey);
}
-void Winnie::printObjStr(int iObj, int iStr) {
+void WinnieEngine::printObjStr(int iObj, int iStr) {
WTP_OBJ_HDR hdr;
uint8 *buffer = (uint8 *)malloc(2048);
@@ -494,7 +496,7 @@ void Winnie::printObjStr(int iObj, int iStr) {
free(buffer);
}
-bool Winnie::isRightObj(int iRoom, int iObj, int *iCode) {
+bool WinnieEngine::isRightObj(int iRoom, int iObj, int *iCode) {
WTP_ROOM_HDR roomhdr;
WTP_OBJ_HDR objhdr;
uint8 *roomdata = (uint8 *)malloc(4096);
@@ -517,212 +519,212 @@ bool Winnie::isRightObj(int iRoom, int iObj, int *iCode) {
return false;
}
-void Winnie::takeObj(int iRoom) {
- if (_game.iObjHave) {
+void WinnieEngine::takeObj(int iRoom) {
+ if (_gameStateWinnie.iObjHave) {
// player is already carrying an object, can't take
- _vm->printStr(IDS_WTP_CANT_TAKE);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_CANT_TAKE);
+ getSelection(kSelAnyKey);
} else {
// take object
int iObj = getObjInRoom(iRoom);
- _game.iObjHave = iObj;
- _game.iObjRoom[iObj] = 0;
+ _gameStateWinnie.iObjHave = iObj;
+ _gameStateWinnie.iObjRoom[iObj] = 0;
- _vm->printStr(IDS_WTP_OK);
+ printStr(IDS_WTP_OK);
playSound(IDI_WTP_SND_TAKE);
drawRoomPic();
// print object "take" string
- printObjStr(_game.iObjHave, IDI_WTP_OBJ_TAKE);
- _vm->getSelection(kSelAnyKey);
+ printObjStr(_gameStateWinnie.iObjHave, IDI_WTP_OBJ_TAKE);
+ getSelection(kSelAnyKey);
// HACK WARNING
if (iObj == 18) {
- _game.fGame[0x0d] = 1;
+ _gameStateWinnie.fGame[0x0d] = 1;
}
}
}
-void Winnie::dropObj(int iRoom) {
+void WinnieEngine::dropObj(int iRoom) {
int iCode;
if (getObjInRoom(iRoom)) {
// there already is an object in the room, can't drop
- _vm->printStr(IDS_WTP_CANT_DROP);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_CANT_DROP);
+ getSelection(kSelAnyKey);
} else {
// HACK WARNING
- if (_game.iObjHave == 18) {
- _game.fGame[0x0d] = 0;
+ if (_gameStateWinnie.iObjHave == 18) {
+ _gameStateWinnie.fGame[0x0d] = 0;
}
- if (isRightObj(iRoom, _game.iObjHave, &iCode)) {
+ if (isRightObj(iRoom, _gameStateWinnie.iObjHave, &iCode)) {
// object has been dropped in the right place
- _vm->printStr(IDS_WTP_OK);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_OK);
+ getSelection(kSelAnyKey);
playSound(IDI_WTP_SND_DROP_OK);
- printObjStr(_game.iObjHave, IDI_WTP_OBJ_DROP);
- _vm->getSelection(kSelAnyKey);
+ printObjStr(_gameStateWinnie.iObjHave, IDI_WTP_OBJ_DROP);
+ getSelection(kSelAnyKey);
// increase amount of objects returned, decrease amount of objects missing
- _game.nObjMiss--;
- _game.nObjRet++;
+ _gameStateWinnie.nObjMiss--;
+ _gameStateWinnie.nObjRet++;
// xor the dropped object with 0x80 to signify it has been dropped in the right place
for (int i = 0; i < IDI_WTP_MAX_OBJ_MISSING; i++) {
- if (_game.iUsedObj[i] == _game.iObjHave) {
- _game.iUsedObj[i] ^= 0x80;
+ if (_gameStateWinnie.iUsedObj[i] == _gameStateWinnie.iObjHave) {
+ _gameStateWinnie.iUsedObj[i] ^= 0x80;
break;
}
}
// set flag according to dropped object's id
- _game.fGame[iCode] = 1;
+ _gameStateWinnie.fGame[iCode] = 1;
// player is carrying nothing
- _game.iObjHave = 0;
+ _gameStateWinnie.iObjHave = 0;
- if (!_game.nObjMiss) {
+ if (!_gameStateWinnie.nObjMiss) {
// all objects returned, tell player to find party
playSound(IDI_WTP_SND_FANFARE);
- _vm->printStr(IDS_WTP_GAME_OVER_0);
- _vm->getSelection(kSelAnyKey);
- _vm->printStr(IDS_WTP_GAME_OVER_1);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_GAME_OVER_0);
+ getSelection(kSelAnyKey);
+ printStr(IDS_WTP_GAME_OVER_1);
+ getSelection(kSelAnyKey);
}
} else {
// drop object in the given room
- _game.iObjRoom[_game.iObjHave] = iRoom;
+ _gameStateWinnie.iObjRoom[_gameStateWinnie.iObjHave] = iRoom;
// object has been dropped in the wrong place
- _vm->printStr(IDS_WTP_WRONG_PLACE);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_WRONG_PLACE);
+ getSelection(kSelAnyKey);
playSound(IDI_WTP_SND_DROP);
drawRoomPic();
- _vm->printStr(IDS_WTP_WRONG_PLACE);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_WRONG_PLACE);
+ getSelection(kSelAnyKey);
// print object description
- printObjStr(_game.iObjHave, IDI_WTP_OBJ_DESC);
- _vm->getSelection(kSelAnyKey);
+ printObjStr(_gameStateWinnie.iObjHave, IDI_WTP_OBJ_DESC);
+ getSelection(kSelAnyKey);
- _game.iObjHave = 0;
+ _gameStateWinnie.iObjHave = 0;
}
}
}
-void Winnie::dropObjRnd() {
- if (!_game.iObjHave)
+void WinnieEngine::dropObjRnd() {
+ if (!_gameStateWinnie.iObjHave)
return;
int iRoom = 0;
bool done = false;
while (!done) {
- iRoom = _vm->rnd(IDI_WTP_MAX_ROOM_NORMAL);
+ iRoom = rnd(IDI_WTP_MAX_ROOM_NORMAL);
done = true;
if (iRoom == _room)
done = false;
for (int j = 0; j < IDI_WTP_MAX_ROOM_OBJ; j++) {
- if (_game.iObjRoom[j] == iRoom) {
+ if (_gameStateWinnie.iObjRoom[j] == iRoom) {
done = false;
}
}
}
- _game.iObjRoom[_game.iObjHave] = iRoom;
- _game.iObjHave = 0;
+ _gameStateWinnie.iObjRoom[_gameStateWinnie.iObjHave] = iRoom;
+ _gameStateWinnie.iObjHave = 0;
}
-void Winnie::wind() {
+void WinnieEngine::wind() {
int iRoom = 0;
bool done;
_doWind = 0;
- _game.nMoves = 0;
- if (!_game.nObjMiss)
+ _gameStateWinnie.nMoves = 0;
+ if (!_gameStateWinnie.nObjMiss)
return;
- _vm->printStr(IDS_WTP_WIND_0);
+ printStr(IDS_WTP_WIND_0);
playSound(IDI_WTP_SND_WIND_0);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
- _vm->printStr(IDS_WTP_WIND_1);
+ printStr(IDS_WTP_WIND_1);
playSound(IDI_WTP_SND_WIND_0);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
dropObjRnd();
// randomize positions of objects at large
for (int i = 0; i < IDI_WTP_MAX_OBJ_MISSING; i++) {
- if (!(_game.iUsedObj[i] & IDI_XOR_KEY)) {
+ if (!(_gameStateWinnie.iUsedObj[i] & IDI_XOR_KEY)) {
done = false;
while (!done) {
- iRoom = _vm->rnd(IDI_WTP_MAX_ROOM_NORMAL);
+ iRoom = rnd(IDI_WTP_MAX_ROOM_NORMAL);
done = true;
for (int j = 0; j < IDI_WTP_MAX_ROOM_OBJ; j++) {
- if (_game.iObjRoom[j] == iRoom) {
+ if (_gameStateWinnie.iObjRoom[j] == iRoom) {
done = false;
}
}
}
- _game.iObjRoom[_game.iUsedObj[i]] = iRoom;
+ _gameStateWinnie.iObjRoom[_gameStateWinnie.iUsedObj[i]] = iRoom;
}
}
}
-void Winnie::mist() {
+void WinnieEngine::mist() {
// mist length in turns is (2-5)
- _mist = _vm->rnd(4) + 2;
+ _mist = rnd(4) + 2;
_room = IDI_WTP_ROOM_MIST;
drawRoomPic();
- _vm->printStr(IDS_WTP_MIST);
+ printStr(IDS_WTP_MIST);
}
-void Winnie::tigger() {
+void WinnieEngine::tigger() {
_room = IDI_WTP_ROOM_TIGGER;
drawRoomPic();
- _vm->printStr(IDS_WTP_TIGGER);
+ printStr(IDS_WTP_TIGGER);
dropObjRnd();
}
-void Winnie::showOwlHelp() {
- if (_game.iObjHave) {
- _vm->printStr(IDS_WTP_OWL_0);
- _vm->getSelection(kSelAnyKey);
- printObjStr(_game.iObjHave, IDI_WTP_OBJ_HELP);
- _vm->getSelection(kSelAnyKey);
+void WinnieEngine::showOwlHelp() {
+ if (_gameStateWinnie.iObjHave) {
+ printStr(IDS_WTP_OWL_0);
+ getSelection(kSelAnyKey);
+ printObjStr(_gameStateWinnie.iObjHave, IDI_WTP_OBJ_HELP);
+ getSelection(kSelAnyKey);
}
if (getObjInRoom(_room)) {
- _vm->printStr(IDS_WTP_OWL_0);
- _vm->getSelection(kSelAnyKey);
+ printStr(IDS_WTP_OWL_0);
+ getSelection(kSelAnyKey);
printObjStr(getObjInRoom(_room), IDI_WTP_OBJ_HELP);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
}
}
-void Winnie::drawMenu(char *szMenu, int iSel, int fCanSel[]) {
+void WinnieEngine::drawMenu(char *szMenu, int iSel, int fCanSel[]) {
int iRow = 0, iCol = 0;
- _vm->clearTextArea();
- _vm->drawStr(IDI_WTP_ROW_MENU, IDI_WTP_COL_MENU, IDA_DEFAULT, szMenu);
+ clearTextArea();
+ drawStr(IDI_WTP_ROW_MENU, IDI_WTP_COL_MENU, IDA_DEFAULT, szMenu);
if (fCanSel[IDI_WTP_SEL_NORTH])
- _vm->drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_NSEW, IDA_DEFAULT, IDS_WTP_NSEW);
+ drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_NSEW, IDA_DEFAULT, IDS_WTP_NSEW);
if (fCanSel[IDI_WTP_SEL_TAKE])
- _vm->drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_TAKE, IDA_DEFAULT, IDS_WTP_TAKE);
+ drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_TAKE, IDA_DEFAULT, IDS_WTP_TAKE);
if (fCanSel[IDI_WTP_SEL_DROP])
- _vm->drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_DROP, IDA_DEFAULT, IDS_WTP_DROP);
+ drawStr(IDI_WTP_ROW_OPTION_4, IDI_WTP_COL_DROP, IDA_DEFAULT, IDS_WTP_DROP);
switch (iSel) {
case IDI_WTP_SEL_OPT_1:
@@ -756,26 +758,26 @@ void Winnie::drawMenu(char *szMenu, int iSel, int fCanSel[]) {
iCol = IDI_WTP_COL_DROP;
break;
}
- _vm->drawStr(iRow, iCol - 1, IDA_DEFAULT, ">");
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen(); //TODO: Move to game's main loop
+ drawStr(iRow, iCol - 1, IDA_DEFAULT, ">");
+ _gfx->doUpdate();
+ _system->updateScreen(); //TODO: Move to game's main loop
}
-void Winnie::incMenuSel(int *iSel, int fCanSel[]) {
+void WinnieEngine::incMenuSel(int *iSel, int fCanSel[]) {
do {
*iSel += 1;
if (*iSel > IDI_WTP_SEL_DROP) *iSel = IDI_WTP_SEL_OPT_1;
} while (!fCanSel[*iSel]);
}
-void Winnie::decMenuSel(int *iSel, int fCanSel[]) {
+void WinnieEngine::decMenuSel(int *iSel, int fCanSel[]) {
do {
*iSel -= 1;
if (*iSel < IDI_WTP_SEL_OPT_1) *iSel = IDI_WTP_SEL_DROP;
} while (!fCanSel[*iSel]);
}
-void Winnie::getMenuMouseSel(int *iSel, int fCanSel[], int x, int y) {
+void WinnieEngine::getMenuMouseSel(int *iSel, int fCanSel[], int x, int y) {
switch (y) {
case IDI_WTP_ROW_OPTION_1:
case IDI_WTP_ROW_OPTION_2:
@@ -793,7 +795,7 @@ void Winnie::getMenuMouseSel(int *iSel, int fCanSel[], int x, int y) {
}
}
-void Winnie::makeSel(int *iSel, int fCanSel[]) {
+void WinnieEngine::makeSel(int *iSel, int fCanSel[]) {
if (fCanSel[*iSel])
return;
@@ -801,7 +803,7 @@ void Winnie::makeSel(int *iSel, int fCanSel[]) {
clrMenuSel(iSel, fCanSel);
}
-void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
+void WinnieEngine::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
Common::Event event;
int x, y;
@@ -811,8 +813,8 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
// Show the mouse cursor for the menu
CursorMan.showMouse(true);
- while (!_vm->shouldQuit()) {
- while (_vm->_system->getEventManager()->pollEvent(event)) {
+ while (!shouldQuit()) {
+ while (_system->getEventManager()->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_RTL:
case Common::EVENT_QUIT:
@@ -824,15 +826,15 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
// Change cursor
if (fCanSel[IDI_WTP_SEL_NORTH] && hotspotNorth.contains(event.mouse.x, event.mouse.y)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (fCanSel[IDI_WTP_SEL_SOUTH] && hotspotSouth.contains(event.mouse.x, event.mouse.y)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (fCanSel[IDI_WTP_SEL_WEST] && hotspotWest.contains(event.mouse.x, event.mouse.y)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else if (fCanSel[IDI_WTP_SEL_EAST] && hotspotEast.contains(event.mouse.x, event.mouse.y)) {
- _vm->_gfx->setCursorPalette(true);
+ _gfx->setCursorPalette(true);
} else {
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
}
break;
@@ -841,25 +843,25 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
if (fCanSel[IDI_WTP_SEL_NORTH] && hotspotNorth.contains(event.mouse.x, event.mouse.y)) {
*iSel = IDI_WTP_SEL_NORTH;
makeSel(iSel, fCanSel);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
return;
} else if (fCanSel[IDI_WTP_SEL_SOUTH] && hotspotSouth.contains(event.mouse.x, event.mouse.y)) {
*iSel = IDI_WTP_SEL_SOUTH;
makeSel(iSel, fCanSel);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
return;
} else if (fCanSel[IDI_WTP_SEL_WEST] && hotspotWest.contains(event.mouse.x, event.mouse.y)) {
*iSel = IDI_WTP_SEL_WEST;
makeSel(iSel, fCanSel);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
return;
} else if (fCanSel[IDI_WTP_SEL_EAST] && hotspotEast.contains(event.mouse.x, event.mouse.y)) {
*iSel = IDI_WTP_SEL_EAST;
makeSel(iSel, fCanSel);
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
return;
} else {
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
}
switch (*iSel) {
@@ -896,9 +898,9 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
incMenuSel(iSel, fCanSel);
break;
case Common::EVENT_KEYDOWN:
- if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _vm->_console) {
- _vm->_console->attach();
- _vm->_console->onFrame();
+ if (event.kbd.keycode == Common::KEYCODE_d && (event.kbd.flags & Common::KBD_CTRL) && _console) {
+ _console->attach();
+ _console->onFrame();
continue;
}
@@ -944,7 +946,7 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
break;
case Common::KEYCODE_s:
if (event.kbd.flags & Common::KBD_CTRL) {
- _vm->flipflag(fSoundOn);
+ flipflag(fSoundOn);
} else {
*iSel = IDI_WTP_SEL_SOUTH;
makeSel(iSel, fCanSel);
@@ -1005,24 +1007,24 @@ void Winnie::getMenuSel(char *szMenu, int *iSel, int fCanSel[]) {
}
}
-void Winnie::gameLoop() {
+void WinnieEngine::gameLoop() {
WTP_ROOM_HDR hdr;
uint8 *roomdata = (uint8 *)malloc(4096);
int iBlock;
phase0:
- if (!_game.nObjMiss && (_room == IDI_WTP_ROOM_PICNIC))
+ if (!_gameStateWinnie.nObjMiss && (_room == IDI_WTP_ROOM_PICNIC))
_room = IDI_WTP_ROOM_PARTY;
readRoom(_room, roomdata, hdr);
drawRoomPic();
- _vm->_gfx->doUpdate();
- _vm->_system->updateScreen();
+ _gfx->doUpdate();
+ _system->updateScreen();
phase1:
if (getObjInRoom(_room)) {
printObjStr(getObjInRoom(_room), IDI_WTP_OBJ_DESC);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
}
phase2:
@@ -1031,7 +1033,7 @@ phase2:
goto phase1;
}
- while (!_vm->shouldQuit()) {
+ while (!shouldQuit()) {
for (iBlock = 0; iBlock < IDI_WTP_MAX_BLOCK; iBlock++) {
switch (parser(hdr.ofsBlock[iBlock] - _roomOffset, iBlock, roomdata)) {
case IDI_WTP_PAR_GOTO:
@@ -1047,10 +1049,10 @@ phase2:
free(roomdata);
}
-void Winnie::drawPic(const char *szName) {
+void WinnieEngine::drawPic(const char *szName) {
Common::String fileName = szName;
- if (_vm->getPlatform() != Common::kPlatformAmiga)
+ if (getPlatform() != Common::kPlatformAmiga)
fileName += ".pic";
Common::File file;
@@ -1065,13 +1067,13 @@ void Winnie::drawPic(const char *szName) {
file.read(buffer, size);
file.close();
- _vm->_picture->decodePicture(buffer, size, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
- _vm->_picture->showPic(IDI_WTP_PIC_X0, IDI_WTP_PIC_Y0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->decodePicture(buffer, size, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->showPic(IDI_WTP_PIC_X0, IDI_WTP_PIC_Y0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
free(buffer);
}
-void Winnie::drawObjPic(int iObj, int x0, int y0) {
+void WinnieEngine::drawObjPic(int iObj, int x0, int y0) {
if (!iObj)
return;
@@ -1080,28 +1082,28 @@ void Winnie::drawObjPic(int iObj, int x0, int y0) {
uint32 objSize = readObj(iObj, buffer);
parseObjHeader(&objhdr, buffer, sizeof(WTP_OBJ_HDR));
- _vm->_picture->setOffset(x0, y0);
- _vm->_picture->decodePicture(buffer + objhdr.ofsPic - _objOffset, objSize, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
- _vm->_picture->setOffset(0, 0);
- _vm->_picture->showPic(10, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->setOffset(x0, y0);
+ _picture->decodePicture(buffer + objhdr.ofsPic - _objOffset, objSize, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->setOffset(0, 0);
+ _picture->showPic(10, 0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
free(buffer);
}
-void Winnie::drawRoomPic() {
+void WinnieEngine::drawRoomPic() {
WTP_ROOM_HDR roomhdr;
uint8 *buffer = (uint8 *)malloc(4096);
int iObj = getObjInRoom(_room);
// clear gfx screen
- _vm->_gfx->clearScreen(0);
+ _gfx->clearScreen(0);
// read room picture
readRoom(_room, buffer, roomhdr);
// draw room picture
- _vm->_picture->decodePicture(buffer + roomhdr.ofsPic - _roomOffset, 4096, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
- _vm->_picture->showPic(IDI_WTP_PIC_X0, IDI_WTP_PIC_Y0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->decodePicture(buffer + roomhdr.ofsPic - _roomOffset, 4096, 1, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
+ _picture->showPic(IDI_WTP_PIC_X0, IDI_WTP_PIC_Y0, IDI_WTP_PIC_WIDTH, IDI_WTP_PIC_HEIGHT);
// draw object picture
drawObjPic(iObj, IDI_WTP_PIC_X0 + roomhdr.objX, IDI_WTP_PIC_Y0 + roomhdr.objY);
@@ -1109,21 +1111,68 @@ void Winnie::drawRoomPic() {
free(buffer);
}
-bool Winnie::playSound(ENUM_WTP_SOUND iSound) {
- //TODO
- warning ("STUB: playSound(%d)", iSound);
- return 1;
+bool WinnieEngine::playSound(ENUM_WTP_SOUND iSound) {
+ // TODO: Only DOS sound is supported, currently
+ if (getPlatform() != Common::kPlatformPC) {
+ warning("STUB: playSound(%d)", iSound);
+ return false;
+ }
+
+ Common::String fileName = Common::String::format(IDS_WTP_SND_DOS, iSound);
+
+ Common::File file;
+ if (!file.open(fileName))
+ return false;
+
+ uint32 size = file.size();
+ byte *data = new byte[size];
+ file.read(data, size);
+ file.close();
+
+ _game.sounds[0] = AgiSound::createFromRawResource(data, size, 0, *_sound, _soundemu);
+ _sound->startSound(0, 0);
+
+ bool cursorShowing = CursorMan.showMouse(false);
+ _system->updateScreen();
+
+ // Loop until the sound is done
+ bool skippedSound = false;
+ while (!shouldQuit() && _game.sounds[0]->isPlaying()) {
+ Common::Event event;
+ while (_system->getEventManager()->pollEvent(event)) {
+ switch (event.type) {
+ case Common::EVENT_KEYDOWN:
+ _sound->stopSound();
+ skippedSound = true;
+ break;
+ default:
+ break;
+ }
+ }
+
+ _system->delayMillis(10);
+ }
+
+ if (cursorShowing) {
+ CursorMan.showMouse(true);
+ _system->updateScreen();
+ }
+
+ delete _game.sounds[0];
+ _game.sounds[0] = 0;
+
+ return !shouldQuit() && !skippedSound;
}
-void Winnie::clrMenuSel(int *iSel, int fCanSel[]) {
+void WinnieEngine::clrMenuSel(int *iSel, int fCanSel[]) {
*iSel = IDI_WTP_SEL_OPT_1;
while (!fCanSel[*iSel]) {
*iSel += 1;
}
- _vm->_gfx->setCursorPalette(false);
+ _gfx->setCursorPalette(false);
}
-void Winnie::printRoomStr(int iRoom, int iStr) {
+void WinnieEngine::printRoomStr(int iRoom, int iStr) {
WTP_ROOM_HDR hdr;
uint8 *buffer = (uint8 *)malloc(4096);
@@ -1133,23 +1182,23 @@ void Winnie::printRoomStr(int iRoom, int iStr) {
free(buffer);
}
-void Winnie::gameOver() {
+void WinnieEngine::gameOver() {
// sing the Pooh song forever
- while (!_vm->shouldQuit()) {
- _vm->printStr(IDS_WTP_SONG_0);
+ while (!shouldQuit()) {
+ printStr(IDS_WTP_SONG_0);
playSound(IDI_WTP_SND_POOH_0);
- _vm->printStr(IDS_WTP_SONG_1);
+ printStr(IDS_WTP_SONG_1);
playSound(IDI_WTP_SND_POOH_1);
- _vm->printStr(IDS_WTP_SONG_2);
+ printStr(IDS_WTP_SONG_2);
playSound(IDI_WTP_SND_POOH_2);
- _vm->getSelection(kSelAnyKey);
+ getSelection(kSelAnyKey);
}
}
-void Winnie::saveGame() {
+void WinnieEngine::saveGame() {
int i = 0;
- Common::OutSaveFile *outfile = _vm->getSaveFileMan()->openForSaving(IDS_WTP_FILE_SAVEGAME);
+ Common::OutSaveFile *outfile = getSaveFileMan()->openForSaving(IDS_WTP_FILE_SAVEGAME);
if (!outfile)
return;
@@ -1157,20 +1206,20 @@ void Winnie::saveGame() {
outfile->writeUint32BE(MKTAG('W','I','N','N')); // header
outfile->writeByte(WTP_SAVEGAME_VERSION);
- outfile->writeByte(_game.fSound);
- outfile->writeByte(_game.nMoves);
- outfile->writeByte(_game.nObjMiss);
- outfile->writeByte(_game.nObjRet);
- outfile->writeByte(_game.iObjHave);
+ outfile->writeByte(_gameStateWinnie.fSound);
+ outfile->writeByte(_gameStateWinnie.nMoves);
+ outfile->writeByte(_gameStateWinnie.nObjMiss);
+ outfile->writeByte(_gameStateWinnie.nObjRet);
+ outfile->writeByte(_gameStateWinnie.iObjHave);
for (i = 0; i < IDI_WTP_MAX_FLAG; i++)
- outfile->writeByte(_game.fGame[i]);
+ outfile->writeByte(_gameStateWinnie.fGame[i]);
for (i = 0; i < IDI_WTP_MAX_OBJ_MISSING; i++)
- outfile->writeByte(_game.iUsedObj[i]);
+ outfile->writeByte(_gameStateWinnie.iUsedObj[i]);
for (i = 0; i < IDI_WTP_MAX_ROOM_OBJ; i++)
- outfile->writeByte(_game.iObjRoom[i]);
+ outfile->writeByte(_gameStateWinnie.iObjRoom[i]);
outfile->finalize();
@@ -1180,11 +1229,11 @@ void Winnie::saveGame() {
delete outfile;
}
-void Winnie::loadGame() {
+void WinnieEngine::loadGame() {
int saveVersion = 0;
int i = 0;
- Common::InSaveFile *infile = _vm->getSaveFileMan()->openForLoading(IDS_WTP_FILE_SAVEGAME);
+ Common::InSaveFile *infile = getSaveFileMan()->openForLoading(IDS_WTP_FILE_SAVEGAME);
if (!infile)
return;
@@ -1194,11 +1243,11 @@ void Winnie::loadGame() {
if (saveVersion != WTP_SAVEGAME_VERSION)
warning("Old save game version (%d, current version is %d). Will try and read anyway, but don't be surprised if bad things happen", saveVersion, WTP_SAVEGAME_VERSION);
- _game.fSound = infile->readByte();
- _game.nMoves = infile->readByte();
- _game.nObjMiss = infile->readByte();
- _game.nObjRet = infile->readByte();
- _game.iObjHave = infile->readByte();
+ _gameStateWinnie.fSound = infile->readByte();
+ _gameStateWinnie.nMoves = infile->readByte();
+ _gameStateWinnie.nObjMiss = infile->readByte();
+ _gameStateWinnie.nObjRet = infile->readByte();
+ _gameStateWinnie.iObjHave = infile->readByte();
} else {
// This is probably a save from the original interpreter, throw a warning and attempt
// to read it as LE
@@ -1211,31 +1260,31 @@ void Winnie::loadGame() {
infile->readUint16LE(); // skip unused field
infile->readByte(); // first 8 bits of fSound
- _game.fSound = infile->readByte();
+ _gameStateWinnie.fSound = infile->readByte();
infile->readByte(); // first 8 bits of nMoves
- _game.nMoves = infile->readByte();
+ _gameStateWinnie.nMoves = infile->readByte();
infile->readByte(); // first 8 bits of nObjMiss
- _game.nObjMiss = infile->readByte();
+ _gameStateWinnie.nObjMiss = infile->readByte();
infile->readByte(); // first 8 bits of nObjRet
- _game.nObjRet = infile->readByte();
+ _gameStateWinnie.nObjRet = infile->readByte();
infile->readUint16LE(); // skip unused field
infile->readUint16LE(); // skip unused field
infile->readUint16LE(); // skip unused field
infile->readByte(); // first 8 bits of iObjHave
- _game.iObjHave = infile->readByte();
+ _gameStateWinnie.iObjHave = infile->readByte();
infile->readUint16LE(); // skip unused field
infile->readUint16LE(); // skip unused field
infile->readUint16LE(); // skip unused field
}
for (i = 0; i < IDI_WTP_MAX_FLAG; i++)
- _game.fGame[i] = infile->readByte();
+ _gameStateWinnie.fGame[i] = infile->readByte();
for (i = 0; i < IDI_WTP_MAX_OBJ_MISSING; i++)
- _game.iUsedObj[i] = infile->readByte();
+ _gameStateWinnie.iUsedObj[i] = infile->readByte();
for (i = 0; i < IDI_WTP_MAX_ROOM_OBJ; i++)
- _game.iObjRoom[i] = infile->readByte();
+ _gameStateWinnie.iObjRoom[i] = infile->readByte();
// Note that saved games from the original interpreter have 2 more 16-bit fields here
// which are ignored
@@ -1243,37 +1292,59 @@ void Winnie::loadGame() {
delete infile;
}
-void Winnie::printStrWinnie(char *szMsg) {
- if (_vm->getPlatform() != Common::kPlatformAmiga)
- _vm->printStrXOR(szMsg);
+void WinnieEngine::printStrWinnie(char *szMsg) {
+ if (getPlatform() != Common::kPlatformAmiga)
+ printStrXOR(szMsg);
else
- _vm->printStr(szMsg);
+ printStr(szMsg);
}
// Console-related functions
-void Winnie::debugCurRoom() {
- _vm->_console->DebugPrintf("Current Room = %d\n", _room);
+void WinnieEngine::debugCurRoom() {
+ _console->DebugPrintf("Current Room = %d\n", _room);
+}
+
+WinnieEngine::WinnieEngine(OSystem *syst, const AGIGameDescription *gameDesc) : PreAgiEngine(syst, gameDesc) {
+ _console = new WinnieConsole(this);
}
-Winnie::Winnie(PreAgiEngine* vm) : _vm(vm) {
- _vm->_console = new Winnie_Console(_vm, this);
+WinnieEngine::~WinnieEngine() {
+ delete _console;
}
-void Winnie::init() {
- memset(&_game, 0, sizeof(_game));
- _game.fSound = 1;
- _game.nObjMiss = IDI_WTP_MAX_OBJ_MISSING;
- _game.nObjRet = 0;
- _game.fGame[0] = 1;
- _game.fGame[1] = 1;
+void WinnieEngine::init() {
+ // Initialize sound
+
+ switch (MidiDriver::getMusicType(MidiDriver::detectDevice(MDT_PCSPK|MDT_PCJR))) {
+ case MT_PCSPK:
+ _soundemu = SOUND_EMU_PC;
+ break;
+ case MT_PCJR:
+ _soundemu = SOUND_EMU_PCJR;
+ break;
+ default:
+ _soundemu = SOUND_EMU_NONE;
+ break;
+ }
+
+ _sound = new SoundMgr(this, _mixer);
+ _sound->initSound();
+ setflag(fSoundOn, true); // enable sound
+
+ memset(&_gameStateWinnie, 0, sizeof(_gameStateWinnie));
+ _gameStateWinnie.fSound = 1;
+ _gameStateWinnie.nObjMiss = IDI_WTP_MAX_OBJ_MISSING;
+ _gameStateWinnie.nObjRet = 0;
+ _gameStateWinnie.fGame[0] = 1;
+ _gameStateWinnie.fGame[1] = 1;
_room = IDI_WTP_ROOM_HOME;
_mist = -1;
_doWind = false;
_winnieEvent = false;
- if (_vm->getPlatform() != Common::kPlatformAmiga) {
+ if (getPlatform() != Common::kPlatformAmiga) {
_isBigEndian = false;
_roomOffset = IDI_WTP_OFS_ROOM;
_objOffset = IDI_WTP_OFS_OBJ;
@@ -1283,8 +1354,8 @@ void Winnie::init() {
_objOffset = 0;
}
- if (_vm->getPlatform() == Common::kPlatformC64 || _vm->getPlatform() == Common::kPlatformApple2GS)
- _vm->_picture->setPictureVersion(AGIPIC_C64);
+ if (getPlatform() == Common::kPlatformC64 || getPlatform() == Common::kPlatformApple2GS)
+ _picture->setPictureVersion(AGIPIC_C64);
hotspotNorth = Common::Rect(20, 0, (IDI_WTP_PIC_WIDTH + 10) * 2, 10);
hotspotSouth = Common::Rect(20, IDI_WTP_PIC_HEIGHT - 10, (IDI_WTP_PIC_WIDTH + 10) * 2, IDI_WTP_PIC_HEIGHT);
@@ -1292,11 +1363,17 @@ void Winnie::init() {
hotspotWest = Common::Rect(20, 0, 30, IDI_WTP_PIC_HEIGHT);
}
-void Winnie::run() {
+Common::Error WinnieEngine::go() {
+ init();
randomize();
- if (_vm->getPlatform() != Common::kPlatformC64 && _vm->getPlatform() != Common::kPlatformApple2GS)
+
+ // The intro is not supported on these platforms yet
+ if (getPlatform() != Common::kPlatformC64 && getPlatform() != Common::kPlatformApple2GS)
intro();
+
gameLoop();
-}
+ return Common::kNoError;
}
+
+} // End of namespace AGI
diff --git a/engines/agi/preagi_winnie.h b/engines/agi/preagi_winnie.h
index 002eada65c..96ae65997e 100644
--- a/engines/agi/preagi_winnie.h
+++ b/engines/agi/preagi_winnie.h
@@ -281,19 +281,22 @@ struct WTP_SAVE_GAME {
class PreAgiEngine;
-class Winnie {
+class WinnieEngine : public PreAgiEngine {
public:
- Winnie(PreAgiEngine *vm);
+ WinnieEngine(OSystem *syst, const AGIGameDescription *gameDesc);
+ ~WinnieEngine();
void init();
- void run();
+ Common::Error go();
void debugCurRoom();
+ GUI::Debugger *getDebugger() { return _console; }
+
private:
- PreAgiEngine *_vm;
+ WinnieConsole *_console;
- WTP_SAVE_GAME _game;
+ WTP_SAVE_GAME _gameStateWinnie;
int _room;
int _mist;
bool _doWind;
@@ -355,5 +358,3 @@ private:
} // End of namespace Agi
#endif
-
-
diff --git a/engines/agi/saveload.cpp b/engines/agi/saveload.cpp
index dae3dd42c1..28dd0a53dd 100644
--- a/engines/agi/saveload.cpp
+++ b/engines/agi/saveload.cpp
@@ -290,11 +290,7 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {
if (saveVersion >= 4) {
// We don't need the thumbnail here, so just read it and discard it
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- Graphics::loadThumbnail(*in, *thumbnail);
- delete thumbnail;
- thumbnail = 0;
+ Graphics::skipThumbnail(*in);
in->readUint32BE(); // save date
in->readUint16BE(); // save time
@@ -478,8 +474,8 @@ int AgiEngine::loadGame(const char *fileName, bool checkId) {
v->cycleTimeCount = in->readByte();
v->direction = in->readByte();
- v->motion = in->readByte();
- v->cycle = in->readByte();
+ v->motion = (MotionType)in->readByte();
+ v->cycle = (CycleType)in->readByte();
v->priority = in->readByte();
v->flags = in->readUint16BE();
diff --git a/engines/agi/sound.cpp b/engines/agi/sound.cpp
index f2d7af32da..ca3d799ecc 100644
--- a/engines/agi/sound.cpp
+++ b/engines/agi/sound.cpp
@@ -41,6 +41,10 @@ AgiSound *AgiSound::createFromRawResource(uint8 *data, uint32 len, int resnum, S
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);
+
switch (type) { // Create a sound object based on the type
case AGI_SOUND_SAMPLE:
return new IIgsSample(data, len, resnum, manager);
@@ -62,6 +66,11 @@ PCjrSound::PCjrSound(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : A
_data = data; // Save the resource pointer
_len = len; // Save the resource's length
_type = READ_LE_UINT16(data); // Read sound resource's type
+
+ // Detect V1 sound resources
+ if ((_type & 0xFF) == 0x01)
+ _type = AGI_SOUND_4CHN;
+
_isValid = (_type == AGI_SOUND_4CHN) && (_data != NULL) && (_len >= 2);
if (!_isValid) // Check for errors
@@ -127,7 +136,12 @@ void SoundMgr::startSound(int resnum, int flag) {
// Reset the flag
_endflag = flag;
- _vm->setflag(_endflag, false);
+
+ if (_vm->getVersion() < 0x2000) {
+ _vm->_game.vars[_endflag] = 0;
+ } else {
+ _vm->setflag(_endflag, false);
+ }
}
void SoundMgr::stopSound() {
@@ -142,8 +156,13 @@ void SoundMgr::stopSound() {
// This is probably not needed most of the time, but there also should
// not be any harm doing it, so do it anyway.
- if (_endflag != -1)
- _vm->setflag(_endflag, true);
+ if (_endflag != -1) {
+ if (_vm->getVersion() < 0x2000) {
+ _vm->_game.vars[_endflag] = 1;
+ } else {
+ _vm->setflag(_endflag, true);
+ }
+ }
_endflag = -1;
}
@@ -168,7 +187,7 @@ void SoundMgr::soundIsFinished() {
_endflag = -1;
}
-SoundMgr::SoundMgr(AgiEngine *agi, Audio::Mixer *pMixer) {
+SoundMgr::SoundMgr(AgiBase *agi, Audio::Mixer *pMixer) {
_vm = agi;
_endflag = -1;
_playingSound = -1;
diff --git a/engines/agi/sound.h b/engines/agi/sound.h
index 0ee19878c4..6fd8dd516e 100644
--- a/engines/agi/sound.h
+++ b/engines/agi/sound.h
@@ -71,7 +71,7 @@ class SoundMgr;
class SoundGen {
public:
- SoundGen(AgiEngine *vm, Audio::Mixer *pMixer) : _vm(vm), _mixer(pMixer) {
+ SoundGen(AgiBase *vm, Audio::Mixer *pMixer) : _vm(vm), _mixer(pMixer) {
_sampleRate = pMixer->getOutputRate();
}
@@ -80,7 +80,7 @@ public:
virtual void play(int resnum) = 0;
virtual void stop(void) = 0;
- AgiEngine *_vm;
+ AgiBase *_vm;
Audio::Mixer *_mixer;
Audio::SoundHandle _soundHandle;
@@ -122,6 +122,8 @@ public:
~PCjrSound() { free(_data); }
virtual uint16 type() { return _type; }
const uint8 *getVoicePointer(uint voiceNum);
+ uint8 *getData() { return _data; }
+ uint32 getLength() { return _len; }
protected:
uint8 *_data; ///< Raw sound resource data
uint32 _len; ///< Length of the raw sound resource
@@ -131,7 +133,7 @@ protected:
class SoundMgr {
public:
- SoundMgr(AgiEngine *agi, Audio::Mixer *pMixer);
+ SoundMgr(AgiBase *agi, Audio::Mixer *pMixer);
~SoundMgr();
void setVolume(uint8 volume);
@@ -147,7 +149,7 @@ public:
private:
int _endflag;
- AgiEngine *_vm;
+ AgiBase *_vm;
SoundGen *_soundGen;
diff --git a/engines/agi/sound_2gs.cpp b/engines/agi/sound_2gs.cpp
index 38e256aa4b..c5cfa125d6 100644
--- a/engines/agi/sound_2gs.cpp
+++ b/engines/agi/sound_2gs.cpp
@@ -33,7 +33,7 @@
namespace Agi {
-SoundGen2GS::SoundGen2GS(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
+SoundGen2GS::SoundGen2GS(AgiBase *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
// Allocate memory for the wavetable
_wavetable = new int8[SIERRASTANDARD_SIZE];
diff --git a/engines/agi/sound_2gs.h b/engines/agi/sound_2gs.h
index 9123e18415..89ffc3fe11 100644
--- a/engines/agi/sound_2gs.h
+++ b/engines/agi/sound_2gs.h
@@ -215,7 +215,7 @@ private:
class SoundGen2GS : public SoundGen, public Audio::AudioStream {
public:
- SoundGen2GS(AgiEngine *vm, Audio::Mixer *pMixer);
+ SoundGen2GS(AgiBase *vm, Audio::Mixer *pMixer);
~SoundGen2GS();
void play(int resnum);
diff --git a/engines/agi/sound_coco3.cpp b/engines/agi/sound_coco3.cpp
index 281f2cb2d4..64818e4e34 100644
--- a/engines/agi/sound_coco3.cpp
+++ b/engines/agi/sound_coco3.cpp
@@ -34,7 +34,7 @@ static int cocoFrequencies[] = {
2093, 2217, 2349, 2489, 2637, 2793, 2959, 3135, 3322, 3520, 3729, 3951
};
-SoundGenCoCo3::SoundGenCoCo3(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
+SoundGenCoCo3::SoundGenCoCo3(AgiBase *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
}
SoundGenCoCo3::~SoundGenCoCo3() {
diff --git a/engines/agi/sound_coco3.h b/engines/agi/sound_coco3.h
index 7058b770f5..d24acf5cc5 100644
--- a/engines/agi/sound_coco3.h
+++ b/engines/agi/sound_coco3.h
@@ -42,7 +42,7 @@ struct CoCoNote {
class SoundGenCoCo3 : public SoundGen, public Audio::AudioStream {
public:
- SoundGenCoCo3(AgiEngine *vm, Audio::Mixer *pMixer);
+ SoundGenCoCo3(AgiBase *vm, Audio::Mixer *pMixer);
~SoundGenCoCo3();
void play(int resnum);
diff --git a/engines/agi/sound_midi.cpp b/engines/agi/sound_midi.cpp
index 0cbaa4af86..47d354093b 100644
--- a/engines/agi/sound_midi.cpp
+++ b/engines/agi/sound_midi.cpp
@@ -69,7 +69,7 @@ MIDISound::MIDISound(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : A
warning("Error creating MIDI sound from resource %d (Type %d, length %d)", resnum, _type, len);
}
-SoundGenMIDI::SoundGenMIDI(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer), _isGM(false) {
+SoundGenMIDI::SoundGenMIDI(AgiBase *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer), _isGM(false) {
MidiPlayer::createDriver(MDT_MIDI | MDT_ADLIB);
int ret = _driver->open();
diff --git a/engines/agi/sound_midi.h b/engines/agi/sound_midi.h
index 92a4002498..36bd66ee76 100644
--- a/engines/agi/sound_midi.h
+++ b/engines/agi/sound_midi.h
@@ -45,7 +45,7 @@ protected:
class SoundGenMIDI : public SoundGen, public Audio::MidiPlayer {
public:
- SoundGenMIDI(AgiEngine *vm, Audio::Mixer *pMixer);
+ SoundGenMIDI(AgiBase *vm, Audio::Mixer *pMixer);
void play(int resnum);
// We must overload stop() here to implement the pure virtual
diff --git a/engines/agi/sound_pcjr.cpp b/engines/agi/sound_pcjr.cpp
index fdebf16b1a..d21baa450f 100644
--- a/engines/agi/sound_pcjr.cpp
+++ b/engines/agi/sound_pcjr.cpp
@@ -102,7 +102,7 @@ const int8 dissolveDataV3[] = {
};
-SoundGenPCJr::SoundGenPCJr(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
+SoundGenPCJr::SoundGenPCJr(AgiBase *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer) {
_chanAllocated = 10240; // preallocate something which will most likely fit
_chanData = (int16 *)malloc(_chanAllocated << 1);
@@ -126,6 +126,9 @@ SoundGenPCJr::SoundGenPCJr(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, p
memset(_tchannel, 0, sizeof(_tchannel));
_mixer->playStream(Audio::Mixer::kMusicSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
+
+ _v1data = NULL;
+ _v1size = 0;
}
SoundGenPCJr::~SoundGenPCJr() {
@@ -153,6 +156,9 @@ void SoundGenPCJr::play(int resnum) {
_tchannel[i].genType = kGenTone;
_tchannel[i].genTypePrev = -1;
}
+
+ _v1data = pcjrSound->getData() + 1;
+ _v1size = pcjrSound->getLength() - 1;
}
void SoundGenPCJr::stop(void) {
@@ -201,7 +207,7 @@ int SoundGenPCJr::volumeCalc(SndGenChan *chan) {
chan->attenuationCopy = attenuation;
attenuation &= 0x0F;
- attenuation += _vm->getvar(vVolume);
+ attenuation += _mixer->getVolumeForSoundType(Audio::Mixer::kSFXSoundType) / 17;
if (attenuation > 0x0F)
attenuation = 0x0F;
}
@@ -214,16 +220,25 @@ int SoundGenPCJr::volumeCalc(SndGenChan *chan) {
return attenuation;
}
+int SoundGenPCJr::getNextNote(int ch)
+{
+ if (_vm->getVersion() > 0x2001)
+ return getNextNote_v2(ch);
+ else
+ return getNextNote_v1(ch);
+
+ return -1;
+}
+
// read the next channel data.. fill it in *tone
// if tone isn't touched.. it should be inited so it just plays silence
// return 0 if it's passing more data
// return -1 if it's passing nothing (end of data)
-int SoundGenPCJr::getNextNote(int ch, Tone *tone) {
+int SoundGenPCJr::getNextNote_v2(int ch) {
ToneChan *tpcm;
SndGenChan *chan;
const byte *data;
- assert(tone);
assert(ch < CHAN_MAX);
if (!_vm->getflag(fSoundOn))
@@ -234,7 +249,7 @@ int SoundGenPCJr::getNextNote(int ch, Tone *tone) {
if (!chan->avail)
return -1;
- while ((chan->duration == 0) && (chan->duration != 0xFFFF)) {
+ while (chan->duration <= 0) {
data = chan->data;
// read the duration of the note
@@ -242,58 +257,32 @@ int SoundGenPCJr::getNextNote(int ch, Tone *tone) {
// if it's 0 then it's not going to be played
// if it's 0xFFFF then the channel data has finished.
- if ((chan->duration != 0) && (chan->duration != 0xFFFF)) {
+ if ((chan->duration == 0) || (chan->duration == 0xFFFF)) {
tpcm->genTypePrev = -1;
tpcm->freqCountPrev = -1;
- // only tone channels dissolve
- if ((ch != 3) && (_dissolveMethod != 0)) // != noise??
- chan->dissolveCount = 0;
+ break;
+ }
- // attenuation (volume)
- chan->attenuation = data[4] & 0xF;
+ _tchannel[ch].genTypePrev = -1;
+ _tchannel[ch].freqCountPrev = -1;
- // frequency
- if (ch < (CHAN_MAX - 1)) {
- chan->freqCount = (uint16)data[2] & 0x3F;
- chan->freqCount <<= 4;
- chan->freqCount |= data[3] & 0x0F;
+ // only tone channels dissolve
+ if ((ch != 3) && (_dissolveMethod != 0)) // != noise??
+ chan->dissolveCount = 0;
+
+ // attenuation (volume)
+ writeData(data[4]);
+
+ // frequency
+ writeData(data[3]);
+ writeData(data[2]);
- chan->genType = kGenTone;
- } else {
- int noiseFreq;
-
- // check for white noise (1) or periodic (0)
- chan->genType = (data[3] & 0x04) ? kGenWhite : kGenPeriod;
-
- noiseFreq = data[3] & 0x03;
-
- switch (noiseFreq) {
- case 0:
- chan->freqCount = 32;
- break;
- case 1:
- chan->freqCount = 64;
- break;
- case 2:
- chan->freqCount = 128;
- break;
- case 3:
- chan->freqCount = _channel[2].freqCount * 2;
- break;
- }
- }
- }
// data now points to the next data seg-a-ment
chan->data += 5;
}
- if (chan->duration != 0xFFFF) {
- tone->freqCount = chan->freqCount;
- tone->atten = volumeCalc(chan); // calc volume, sent vol is different from saved vol
- tone->type = chan->genType;
- chan->duration--;
- } else {
+ if (chan->duration == 0xFFFF) {
// kill channel
chan->avail = 0;
chan->attenuation = 0x0F; // silent
@@ -302,9 +291,80 @@ int SoundGenPCJr::getNextNote(int ch, Tone *tone) {
return -1;
}
+ chan->duration--;
+
return 0;
}
+int SoundGenPCJr::getNextNote_v1(int ch) {
+ static int duration = 0;
+
+ byte *data = _v1data;
+ uint32 len = _v1size;
+
+ if (len <= 0 || data == NULL) {
+ _channel[ch].avail = 0;
+ _channel[ch].attenuation = 0x0F;
+ _channel[ch].attenuationCopy = 0x0F;
+ return -1;
+ }
+
+ // In the V1 player the default duration for a row is 3 ticks
+ if (duration > 0) {
+ duration--;
+ return 0;
+ }
+ duration = 3 * CHAN_MAX;
+
+ // Otherwise fetch a row of data for all channels
+ while (*data) {
+ writeData(*data);
+ data++;
+ len--;
+ }
+ data++;
+ len--;
+
+ _v1data = data;
+ _v1size = len;
+
+ return 0;
+}
+
+void SoundGenPCJr::writeData(uint8 val) {
+ static int reg = 0;
+
+ debugC(5, kDebugLevelSound, "writeData(%.2X)", val);
+
+ if ((val & 0x90) == 0x90) {
+ reg = (val >> 5) & 0x3;
+ _channel[reg].attenuation = val & 0xF;
+ } else if ((val & 0xF0) == 0xE0) {
+ _channel[3].genType = (val & 0x4) ? kGenWhite : kGenPeriod;
+ int noiseFreq = val & 0x03;
+ switch (noiseFreq) {
+ case 0:
+ _channel[3].freqCount = 32;
+ break;
+ case 1:
+ _channel[3].freqCount = 64;
+ break;
+ case 2:
+ _channel[3].freqCount = 128;
+ break;
+ case 3:
+ _channel[3].freqCount = _channel[2].freqCount * 2;
+ break;
+ }
+ } else if (val & 0x80) {
+ reg = (val >> 5) & 0x3;
+ _channel[reg].freqCount = val & 0xF;
+ _channel[reg].genType = kGenTone;
+ } else {
+ _channel[reg].freqCount |= (val & 0x3F) << 4;
+ }
+}
+
// Formulas for noise generator
// bit0 = output
@@ -340,7 +400,6 @@ const int16 volTable[16] = {
// fill buff
int SoundGenPCJr::chanGen(int chan, int16 *stream, int len) {
ToneChan *tpcm;
- Tone toneNew;
int fillSize;
int retVal;
@@ -351,13 +410,10 @@ int SoundGenPCJr::chanGen(int chan, int16 *stream, int len) {
while (len > 0) {
if (tpcm->noteCount <= 0) {
// get new tone data
- toneNew.freqCount = 0;
- toneNew.atten = 0xF;
- toneNew.type = kGenTone;
- if ((tpcm->avail) && (getNextNote(chan, &toneNew) == 0)) {
- tpcm->atten = toneNew.atten;
- tpcm->freqCount = toneNew.freqCount;
- tpcm->genType = toneNew.type;
+ if ((tpcm->avail) && (getNextNote(chan) == 0)) {
+ tpcm->atten = _channel[chan].attenuation;
+ tpcm->freqCount = _channel[chan].freqCount;
+ tpcm->genType = _channel[chan].genType;
// setup counters 'n stuff
// SAMPLE_RATE samples per sec.. tone changes 60 times per sec
diff --git a/engines/agi/sound_pcjr.h b/engines/agi/sound_pcjr.h
index 4317e86516..1b4d1e9efb 100644
--- a/engines/agi/sound_pcjr.h
+++ b/engines/agi/sound_pcjr.h
@@ -71,15 +71,9 @@ struct ToneChan {
int feedback; /* noise feedback mask */
};
-struct Tone {
- int freqCount;
- int atten;
- GenType type;
-};
-
class SoundGenPCJr : public SoundGen, public Audio::AudioStream {
public:
- SoundGenPCJr(AgiEngine *vm, Audio::Mixer *pMixer);
+ SoundGenPCJr(AgiBase *vm, Audio::Mixer *pMixer);
~SoundGenPCJr();
void play(int resnum);
@@ -102,9 +96,13 @@ public:
}
private:
- int getNextNote(int ch, Tone *tone);
+ int getNextNote(int ch);
+ int getNextNote_v2(int ch);
+ int getNextNote_v1(int ch);
int volumeCalc(SndGenChan *chan);
+ void writeData(uint8 val);
+
int chanGen(int chan, int16 *stream, int len);
int fillNoise(ToneChan *t, int16 *buf, int len);
@@ -117,6 +115,9 @@ private:
int _chanAllocated;
int _dissolveMethod;
+
+ uint8 *_v1data;
+ uint32 _v1size;
};
} // End of namespace Agi
diff --git a/engines/agi/sound_sarien.cpp b/engines/agi/sound_sarien.cpp
index 9ea8569b81..a2baf89d12 100644
--- a/engines/agi/sound_sarien.cpp
+++ b/engines/agi/sound_sarien.cpp
@@ -65,7 +65,7 @@ static const int16 waveformMac[WAVEFORM_SIZE] = {
-175, -172, -165, -159, -137, -114, -67, -19
};
-SoundGenSarien::SoundGenSarien(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer), _chn() {
+SoundGenSarien::SoundGenSarien(AgiBase *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer), _chn() {
_sndBuffer = (int16 *)calloc(2, BUFFER_SIZE);
memset(_sndBuffer, 0, BUFFER_SIZE << 1);
diff --git a/engines/agi/sound_sarien.h b/engines/agi/sound_sarien.h
index 22bfff3395..04f274ca7d 100644
--- a/engines/agi/sound_sarien.h
+++ b/engines/agi/sound_sarien.h
@@ -68,7 +68,7 @@ struct ChannelInfo {
class SoundGenSarien : public SoundGen, public Audio::AudioStream {
public:
- SoundGenSarien(AgiEngine *vm, Audio::Mixer *pMixer);
+ SoundGenSarien(AgiBase *vm, Audio::Mixer *pMixer);
~SoundGenSarien();
void play(int resnum);
diff --git a/engines/agi/sprite.cpp b/engines/agi/sprite.cpp
index ea0b07f4da..cec0895073 100644
--- a/engines/agi/sprite.cpp
+++ b/engines/agi/sprite.cpp
@@ -257,7 +257,7 @@ bool SpritesMgr::testUpdating(VtEntry *v, AgiEngine *agi) {
if (~agi->_game.dirView[v->currentView].flags & RES_LOADED)
return false;
- return (v->flags & (ANIMATED | UPDATE | DRAWN)) == (ANIMATED | UPDATE | DRAWN);
+ return (v->flags & (fAnimated | fUpdate | fDrawn)) == (fAnimated | fUpdate | fDrawn);
}
/**
@@ -268,7 +268,7 @@ bool SpritesMgr::testNotUpdating(VtEntry *v, AgiEngine *vm) {
if (~vm->_game.dirView[v->currentView].flags & RES_LOADED)
return false;
- return (v->flags & (ANIMATED | UPDATE | DRAWN)) == (ANIMATED | DRAWN);
+ return (v->flags & (fAnimated | fUpdate | fDrawn)) == (fAnimated | fDrawn);
}
/**
@@ -332,7 +332,7 @@ void SpritesMgr::buildList(SpriteList &l, bool (*test)(VtEntry *, AgiEngine *))
for (v = _vm->_game.viewTable; v < &_vm->_game.viewTable[MAX_VIEWTABLE]; v++) {
if ((*test)(v, _vm)) {
entry[i] = v;
- yVal[i] = v->flags & FIXED_PRIORITY ? prioToY(v->priority) : v->yPos;
+ yVal[i] = v->flags & fFixedPriority ? prioToY(v->priority) : v->yPos;
i++;
}
}
@@ -407,13 +407,13 @@ void SpritesMgr::commitSprites(SpriteList &l, bool immediate) {
continue;
if (s->v->xPos == s->v->xPos2 && s->v->yPos == s->v->yPos2) {
- s->v->flags |= DIDNT_MOVE;
+ s->v->flags |= fDidntMove;
continue;
}
s->v->xPos2 = s->v->xPos;
s->v->yPos2 = s->v->yPos;
- s->v->flags &= ~DIDNT_MOVE;
+ s->v->flags &= ~fDidntMove;
}
}
@@ -604,7 +604,9 @@ void SpritesMgr::addToPic(int view, int loop, int cel, int x, int y, int pri, in
// If margin is 0, 1, 2, or 3, the base of the cel is
// surrounded with a rectangle of the corresponding priority.
// If margin >= 4, this extra margin is not shown.
- if (mar < 4) {
+ //
+ // -1 indicates ignore and is set for V1
+ if (mar < 4 && mar != -1) {
// add rectangle around object, don't clobber control
// info in priority data. The box extends to the end of
// its priority band!
diff --git a/engines/agi/view.cpp b/engines/agi/view.cpp
index 0d420caa81..3f3686561e 100644
--- a/engines/agi/view.cpp
+++ b/engines/agi/view.cpp
@@ -47,7 +47,7 @@ void AgiEngine::lSetCel(VtEntry *v, int n) {
// in the KQ4 introduction
// It seems there's either a bug with KQ4's logic script 120 (the intro script)
// or flag 64 is not set correctly, which causes the erroneous behavior from the actors
- if (getGameID() == GID_KQ4 && !(v->flags & UPDATE) && (v->currentView == 172))
+ if (getGameID() == GID_KQ4 && !(v->flags & fUpdate) && (v->currentView == 172))
return;
currentVc = &currentVl->cel[n];
@@ -78,8 +78,8 @@ void AgiEngine::lSetLoop(VtEntry *v, int n) {
void AgiEngine::updateView(VtEntry *v) {
int cel, lastCel;
- if (v->flags & DONTUPDATE) {
- v->flags &= ~DONTUPDATE;
+ if (v->flags & fDontupdate) {
+ v->flags &= ~fDontupdate;
return;
}
@@ -87,32 +87,32 @@ void AgiEngine::updateView(VtEntry *v) {
lastCel = v->numCels - 1;
switch (v->cycle) {
- case CYCLE_NORMAL:
+ case kCycleNormal:
if (++cel > lastCel)
cel = 0;
break;
- case CYCLE_END_OF_LOOP:
+ case kCycleEndOfLoop:
if (cel < lastCel) {
debugC(5, kDebugLevelResources, "cel %d (last = %d)", cel + 1, lastCel);
if (++cel != lastCel)
break;
}
setflag(v->parm1, true);
- v->flags &= ~CYCLING;
+ v->flags &= ~fCycling;
v->direction = 0;
- v->cycle = CYCLE_NORMAL;
+ v->cycle = kCycleNormal;
break;
- case CYCLE_REV_LOOP:
+ case kCycleRevLoop:
if (cel) {
if (--cel)
break;
}
setflag(v->parm1, true);
- v->flags &= ~CYCLING;
+ v->flags &= ~fCycling;
v->direction = 0;
- v->cycle = CYCLE_NORMAL;
+ v->cycle = kCycleNormal;
break;
- case CYCLE_REVERSE:
+ case kCycleReverse:
if (cel == 0) {
cel = lastCel;
} else {
@@ -259,17 +259,22 @@ void AgiEngine::setCel(VtEntry *v, int n) {
*/
void AgiEngine::clipViewCoordinates(VtEntry *v) {
if (v->xPos + v->xSize > _WIDTH) {
- v->flags |= UPDATE_POS;
+ v->flags |= fUpdatePos;
v->xPos = _WIDTH - v->xSize;
}
if (v->yPos - v->ySize + 1 < 0) {
- v->flags |= UPDATE_POS;
+ v->flags |= fUpdatePos;
v->yPos = v->ySize - 1;
}
- if (v->yPos <= _game.horizon && (~v->flags & IGNORE_HORIZON)) {
- v->flags |= UPDATE_POS;
+ if (v->yPos <= _game.horizon && (~v->flags & fIgnoreHorizon)) {
+ v->flags |= fUpdatePos;
v->yPos = _game.horizon + 1;
}
+
+ if (getVersion() < 0x2000) {
+ v->flags |= fDontupdate;
+ }
+
}
/**
@@ -294,6 +299,12 @@ void AgiEngine::setView(VtEntry *v, int n) {
v->currentView = n;
v->numLoops = v->viewData->numLoops;
v->viewReplaced = true;
+
+ if (getVersion() < 0x2000) {
+ v->stepSize = v->viewData->rdata[0];
+ v->cycleTime = v->viewData->rdata[1];
+ v->cycleTimeCount = 0;
+ }
setLoop(v, v->currentLoop >= v->numLoops ? 0 : v->currentLoop);
}
@@ -302,10 +313,10 @@ void AgiEngine::setView(VtEntry *v, int n) {
* @param v pointer to view table entry
*/
void AgiEngine::startUpdate(VtEntry *v) {
- if (~v->flags & UPDATE) {
+ if (~v->flags & fUpdate) {
_sprites->eraseBoth();
- v->flags |= UPDATE;
+ v->flags |= fUpdate;
_sprites->blitBoth();
_sprites->commitBoth();
}
@@ -316,10 +327,10 @@ void AgiEngine::startUpdate(VtEntry *v) {
* @param v pointer to view table entry
*/
void AgiEngine::stopUpdate(VtEntry *v) {
- if (v->flags & UPDATE) {
+ if (v->flags & fUpdate) {
_sprites->eraseBoth();
- v->flags &= ~UPDATE;
+ v->flags &= ~fUpdate;
_sprites->blitBoth();
_sprites->commitBoth();
}
@@ -346,14 +357,14 @@ void AgiEngine::updateViewtable() {
i = 0;
for (v = _game.viewTable; v < &_game.viewTable[MAX_VIEWTABLE]; v++) {
- if ((v->flags & (ANIMATED | UPDATE | DRAWN)) != (ANIMATED | UPDATE | DRAWN)) {
+ if ((v->flags & (fAnimated | fUpdate | fDrawn)) != (fAnimated | fUpdate | fDrawn)) {
continue;
}
i++;
loop = 4;
- if (~v->flags & FIX_LOOP) {
+ if (~v->flags & fFixLoop) {
switch (v->numLoops) {
case 2:
case 3:
@@ -378,7 +389,7 @@ void AgiEngine::updateViewtable() {
}
}
- if (~v->flags & CYCLING)
+ if (~v->flags & fCycling)
continue;
if (v->cycleTimeCount == 0)
@@ -395,7 +406,7 @@ void AgiEngine::updateViewtable() {
updatePosition();
_sprites->blitUpdSprites();
_sprites->commitUpdSprites();
- _game.viewTable[0].flags &= ~(ON_WATER | ON_LAND);
+ _game.viewTable[0].flags &= ~(fOnWater | fOnLand);
}
}
diff --git a/engines/agi/view.h b/engines/agi/view.h
index 0ef443f8e5..5cf59d7df5 100644
--- a/engines/agi/view.h
+++ b/engines/agi/view.h
@@ -50,6 +50,39 @@ struct AgiView {
uint8 *rdata;
};
+enum MotionType {
+ kMotionNormal = 0,
+ kMotionWander = 1,
+ kMotionFollowEgo = 2,
+ kMotionMoveObj = 3
+};
+
+enum CycleType {
+ kCycleNormal = 0,
+ kCycleEndOfLoop = 1,
+ kCycleRevLoop = 2,
+ kCycleReverse = 3
+ };
+
+enum ViewFlags {
+ fDrawn = (1 << 0),
+ fIgnoreBlocks = (1 << 1),
+ fFixedPriority = (1 << 2),
+ fIgnoreHorizon = (1 << 3),
+ fUpdate = (1 << 4),
+ fCycling = (1 << 5),
+ fAnimated = (1 << 6),
+ fMotion = (1 << 7),
+ fOnWater = (1 << 8),
+ fIgnoreObjects = (1 << 9),
+ fUpdatePos = (1 << 10),
+ fOnLand = (1 << 11),
+ fDontupdate = (1 << 12),
+ fFixLoop = (1 << 13),
+ fDidntMove = (1 << 14),
+ fAdjEgoXY = (1 << 15)
+};
+
/**
* AGI view table entry
*/
@@ -78,39 +111,10 @@ struct VtEntry {
uint8 cycleTime;
uint8 cycleTimeCount;
uint8 direction;
-
-#define MOTION_NORMAL 0
-#define MOTION_WANDER 1
-#define MOTION_FOLLOW_EGO 2
-#define MOTION_MOVE_OBJ 3
- uint8 motion;
-
-#define CYCLE_NORMAL 0
-#define CYCLE_END_OF_LOOP 1
-#define CYCLE_REV_LOOP 2
-#define CYCLE_REVERSE 3
- uint8 cycle;
-
+ MotionType motion;
+ CycleType cycle;
uint8 priority;
-
-#define DRAWN 0x0001
-#define IGNORE_BLOCKS 0x0002
-#define FIXED_PRIORITY 0x0004
-#define IGNORE_HORIZON 0x0008
-#define UPDATE 0x0010
-#define CYCLING 0x0020
-#define ANIMATED 0x0040
-#define MOTION 0x0080
-#define ON_WATER 0x0100
-#define IGNORE_OBJECTS 0x0200
-#define UPDATE_POS 0x0400
-#define ON_LAND 0x0800
-#define DONTUPDATE 0x1000
-#define FIX_LOOP 0x2000
-#define DIDNT_MOVE 0x4000
-#define ADJ_EGO_XY 0x8000
uint16 flags;
-
uint8 parm1;
uint8 parm2;
uint8 parm3;
diff --git a/engines/agi/words.cpp b/engines/agi/words.cpp
index 4b96fdf711..ec6928f8ed 100644
--- a/engines/agi/words.cpp
+++ b/engines/agi/words.cpp
@@ -20,19 +20,12 @@
*
*/
-//
-// New find_word algorithm by Thomas Akesson <tapilot@home.se>
-//
-
#include "agi/agi.h"
#include "common/textconsole.h"
namespace Agi {
-static uint8 *words; // words in the game
-static uint32 wordsFlen; // length of word memory
-
//
// Local implementation to avoid problems with strndup() used by
// gcc 3.2 Cygwin (see #635984)
@@ -43,12 +36,38 @@ static char *myStrndup(const char *src, int n) {
return tmp;
}
+int AgiEngine::loadWords_v1(Common::File &f) {
+ char str[64];
+ int k;
+
+ debug(0, "Loading dictionary");
+
+ // Loop through alphabet, as words in the dictionary file are sorted by
+ // first character
+ f.seek(f.pos() + 26 * 2, SEEK_SET);
+ do {
+ // Read next word
+ for (k = 0; k < (int)sizeof(str) - 1; k++) {
+ str[k] = f.readByte();
+ if (str[k] == 0 || (uint8)str[k] == 0xFF)
+ break;
+ }
+
+ // And store it in our internal dictionary
+ if (k > 0) {
+ AgiWord *w = new AgiWord;
+ w->word = myStrndup(str, k + 1);
+ w->id = f.readUint16LE();
+ _game.words[str[0] - 'a'].push_back(w);
+ debug(3, "'%s' (%d)", w->word, w->id);
+ }
+ } while((uint8)str[0] != 0xFF);
+
+ return errOK;
+}
+
int AgiEngine::loadWords(const char *fname) {
Common::File fp;
- uint32 flen;
- uint8 *mem = NULL;
-
- words = NULL;
if (!fp.open(fname)) {
warning("loadWords: can't open %s", fname);
@@ -56,85 +75,70 @@ int AgiEngine::loadWords(const char *fname) {
}
debug(0, "Loading dictionary: %s", fname);
- fp.seek(0, SEEK_END);
- flen = fp.pos();
- wordsFlen = flen;
- fp.seek(0, SEEK_SET);
-
- if ((mem = (uint8 *)calloc(1, flen + 32)) == NULL) {
- fp.close();
- return errNotEnoughMemory;
+ // Loop through alphabet, as words in the dictionary file are sorted by
+ // first character
+ for (int i = 0; i < 26; i++) {
+ fp.seek(i * 2, SEEK_SET);
+ int offset = fp.readUint16BE();
+ if (offset == 0)
+ continue;
+ fp.seek(offset, SEEK_SET);
+ int k = fp.readByte();
+ while (!fp.eos() && !fp.err()) {
+ // Read next word
+ char c, str[64];
+ do {
+ c = fp.readByte();
+ str[k++] = (c ^ 0x7F) & 0x7F;
+ } while (!(c & 0x80) && k < (int)sizeof(str) - 1);
+ str[k] = 0;
+
+ // And store it in our internal dictionary
+ AgiWord *w = new AgiWord;
+ w->word = myStrndup(str, k);
+ w->id = fp.readUint16BE();
+ _game.words[i].push_back(w);
+
+ // Are there more words with an already known prefix?
+ if (!(k = fp.readByte()))
+ break;
+ }
}
- fp.read(mem, flen);
- fp.close();
-
- words = mem;
-
return errOK;
}
void AgiEngine::unloadWords() {
- free(words);
- words = NULL;
+ for (int i = 0; i < 26; i++)
+ _game.words[i].clear();
}
/**
* Find a word in the dictionary
* Uses an algorithm hopefully like the one Sierra used. Returns the ID
* of the word and the length in flen. Returns -1 if not found.
- *
- * Thomas Akesson, November 2001
*/
int AgiEngine::findWord(const char *word, int *flen) {
- int mchr = 0; // matched chars
- int len, fchr, id = -1;
- const uint8 *p = words;
- const uint8 *q = words + wordsFlen;
- *flen = 0;
+ int c;
debugC(2, kDebugLevelScripts, "find_word(%s)", word);
if (word[0] >= 'a' && word[0] <= 'z')
- fchr = word[0] - 'a';
+ c = word[0] - 'a';
else
return -1;
- len = strlen(word);
-
- // Get the offset to the first word beginning with the
- // right character
- p += READ_BE_UINT16(p + 2 * fchr);
-
- while (p[0] >= mchr) {
- if (p[0] == mchr) {
- p++;
- // Loop through all matching characters
- while ((p[0] ^ word[mchr]) == 0x7F && mchr < len) {
- mchr++;
- p++;
- }
- // Check if this is the last character of the word
- // and if it matches
- if ((p[0] ^ word[mchr]) == 0xFF && mchr < len) {
- mchr++;
- if (word[mchr] == 0 || word[mchr] == 0x20) {
- id = READ_BE_UINT16(p + 1);
- *flen = mchr;
- }
- }
+ *flen = 0;
+ Common::Array<AgiWord*> &a = _game.words[c];
+ for (int i = 0; i < (int)a.size(); i++) {
+ int wlen = strlen(a[i]->word);
+ if (!strncmp(a[i]->word, word, wlen) && (word[wlen] == 0 || word[wlen] == 0x20)) {
+ *flen = wlen;
+ return a[i]->id;
}
- if (p >= q)
- return -1;
-
- // Step to the next word
- while (p[0] < 0x80)
- p++;
-
- p += 3;
}
- return id;
+ return -1;
}
void AgiEngine::dictionaryWords(char *msg) {
diff --git a/engines/agos/agos.cpp b/engines/agos/agos.cpp
index 4d879909c4..97c594684c 100644
--- a/engines/agos/agos.cpp
+++ b/engines/agos/agos.cpp
@@ -24,13 +24,13 @@
#include "common/file.h"
#include "common/fs.h"
#include "common/textconsole.h"
-#include "common/system.h"
#include "engines/util.h"
#include "agos/debugger.h"
#include "agos/intern.h"
#include "agos/agos.h"
+#include "agos/midi.h"
#include "backends/audiocd/audiocd.h"
@@ -541,16 +541,18 @@ Common::Error AGOSEngine::init() {
initGraphics(_screenWidth, _screenHeight, getGameType() == GType_FF || getGameType() == GType_PP);
+ _midi = new MidiPlayer();
+
if ((getGameType() == GType_SIMON2 && getPlatform() == Common::kPlatformWindows) ||
(getGameType() == GType_SIMON1 && getPlatform() == Common::kPlatformWindows) ||
((getFeatures() & GF_TALKIE) && getPlatform() == Common::kPlatformAcorn) ||
(getPlatform() == Common::kPlatformPC)) {
- int ret = _midi.open(getGameType());
+ int ret = _midi->open(getGameType());
if (ret)
warning("MIDI Player init failed: \"%s\"", MidiDriver::getErrorName(ret));
- _midi.setVolume(ConfMan.getInt("music_volume"), ConfMan.getInt("sfx_volume"));
+ _midi->setVolume(ConfMan.getInt("music_volume"), ConfMan.getInt("sfx_volume"));
_midiEnabled = true;
}
@@ -597,14 +599,14 @@ Common::Error AGOSEngine::init() {
if (ConfMan.hasKey("music_mute") && ConfMan.getBool("music_mute") == 1) {
_musicPaused = true;
if (_midiEnabled) {
- _midi.pause(_musicPaused);
+ _midi->pause(_musicPaused);
}
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, 0);
}
if (ConfMan.hasKey("sfx_mute") && ConfMan.getBool("sfx_mute") == 1) {
if (getGameId() == GID_SIMON1DOS)
- _midi._enable_sfx = !_midi._enable_sfx;
+ _midi->_enable_sfx = !_midi->_enable_sfx;
else {
_effectsPaused = !_effectsPaused;
_sound->effectsPause(_effectsPaused);
@@ -640,14 +642,12 @@ Common::Error AGOSEngine::init() {
// TODO: Use special debug levels instead of the following hack.
_debugMode = (gDebugLevel >= 0);
- if (gDebugLevel == 2)
- _dumpOpcodes = true;
- if (gDebugLevel == 3)
- _dumpVgaOpcodes = true;
- if (gDebugLevel == 4)
- _dumpScripts = true;
- if (gDebugLevel == 5)
- _dumpVgaScripts = true;
+ switch (gDebugLevel) {
+ case 2: _dumpOpcodes = true; break;
+ case 3: _dumpVgaOpcodes = true; break;
+ case 4: _dumpScripts = true; break;
+ case 5: _dumpVgaScripts = true; break;
+ }
return Common::kNoError;
}
@@ -708,7 +708,7 @@ void AGOSEngine_Simon2::setupGame() {
_itemMemSize = 20000;
_tableMemSize = 100000;
// Check whether to use MT-32 MIDI tracks in Simon the Sorcerer 2
- if (getGameType() == GType_SIMON2 && _midi.hasNativeMT32())
+ if (getGameType() == GType_SIMON2 && _midi->hasNativeMT32())
_musicIndexBase = (1128 + 612) / 4;
else
_musicIndexBase = 1128 / 4;
@@ -911,6 +911,8 @@ AGOSEngine::~AGOSEngine() {
_window6BackScn->free();
delete _window6BackScn;
+ delete _midi;
+
free(_firstTimeStruct);
free(_pendingDeleteTimeEvent);
@@ -938,12 +940,12 @@ void AGOSEngine::pauseEngineIntern(bool pauseIt) {
_keyPressed.reset();
_pause = true;
- _midi.pause(true);
+ _midi->pause(true);
_mixer->pauseAll(true);
} else {
_pause = false;
- _midi.pause(_musicPaused);
+ _midi->pause(_musicPaused);
_mixer->pauseAll(false);
}
}
@@ -1027,7 +1029,7 @@ void AGOSEngine::syncSoundSettings() {
int soundVolumeSFX = ConfMan.getInt("sfx_volume");
if (_midiEnabled)
- _midi.setVolume((mute ? 0 : soundVolumeMusic), (mute ? 0 : soundVolumeSFX));
+ _midi->setVolume((mute ? 0 : soundVolumeMusic), (mute ? 0 : soundVolumeSFX));
}
} // End of namespace AGOS
diff --git a/engines/agos/agos.h b/engines/agos/agos.h
index aa68a05eee..820bc0260b 100644
--- a/engines/agos/agos.h
+++ b/engines/agos/agos.h
@@ -33,7 +33,6 @@
#include "common/stack.h"
#include "common/util.h"
-#include "agos/midi.h"
#include "agos/sound.h"
#include "agos/vga.h"
@@ -50,6 +49,16 @@
* - Simon the Sorcerer 2
* - Simon the Sorcerer Puzzle Pack
*/
+
+namespace Common {
+class File;
+class SeekableReadStream;
+}
+
+namespace Graphics {
+struct Surface;
+}
+
namespace AGOS {
uint fileReadItemID(Common::SeekableReadStream *in);
@@ -60,6 +69,8 @@ uint fileReadItemID(Common::SeekableReadStream *in);
class MoviePlayer;
#endif
+class MidiPlayer;
+
struct Child;
struct SubObject;
@@ -313,7 +324,7 @@ protected:
bool _backFlag;
uint16 _debugMode;
- uint16 _language;
+ Common::Language _language;
bool _copyProtection;
bool _pause;
bool _dumpScripts;
@@ -548,7 +559,7 @@ protected:
byte _lettersToPrintBuf[80];
- MidiPlayer _midi;
+ MidiPlayer *_midi;
bool _midiEnabled;
int _vgaTickCounter;
diff --git a/engines/agos/charset-fontdata.cpp b/engines/agos/charset-fontdata.cpp
index b708b4890b..e6b81f54ee 100644
--- a/engines/agos/charset-fontdata.cpp
+++ b/engines/agos/charset-fontdata.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "common/system.h"
#include "common/textconsole.h"
@@ -2454,4 +2452,3 @@ void AGOSEngine::windowDrawChar(WindowBlock *window, uint x, uint y, byte chr) {
}
} // End of namespace AGOS
-
diff --git a/engines/agos/charset.cpp b/engines/agos/charset.cpp
index 9d27afaa27..54aef99a47 100644
--- a/engines/agos/charset.cpp
+++ b/engines/agos/charset.cpp
@@ -20,8 +20,7 @@
*
*/
-
-
+#include "common/endian.h"
#include "common/system.h"
#include "agos/agos.h"
@@ -655,4 +654,3 @@ void AGOSEngine::windowScroll(WindowBlock *window) {
_videoLockOut &= ~0x8000;
}
} // End of namespace AGOS
-
diff --git a/engines/agos/contain.cpp b/engines/agos/contain.cpp
index ba60c65ff3..173194d45e 100644
--- a/engines/agos/contain.cpp
+++ b/engines/agos/contain.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "agos/agos.h"
#include "agos/intern.h"
diff --git a/engines/agos/cursor.cpp b/engines/agos/cursor.cpp
index ef4a1406c9..7c64d68048 100644
--- a/engines/agos/cursor.cpp
+++ b/engines/agos/cursor.cpp
@@ -20,10 +20,8 @@
*
*/
-
-
+#include "common/endian.h"
#include "common/events.h"
-#include "common/system.h"
#include "graphics/cursorman.h"
diff --git a/engines/agos/debug.cpp b/engines/agos/debug.cpp
index 9c44342975..18c4736031 100644
--- a/engines/agos/debug.cpp
+++ b/engines/agos/debug.cpp
@@ -22,7 +22,6 @@
// AGOS debug functions
-
#include "common/file.h"
#include "common/textconsole.h"
diff --git a/engines/agos/debug.h b/engines/agos/debug.h
index fd5908997f..fe14ae4860 100644
--- a/engines/agos/debug.h
+++ b/engines/agos/debug.h
@@ -2843,4 +2843,3 @@ const char *const feeblefiles_videoOpcodeNameTable[] = {
} // End of namespace AGOS
#endif
-
diff --git a/engines/agos/debugger.cpp b/engines/agos/debugger.cpp
index a313dbbd1e..fc24c6d363 100644
--- a/engines/agos/debugger.cpp
+++ b/engines/agos/debugger.cpp
@@ -20,12 +20,11 @@
*
*/
-
-
#include "common/config-manager.h"
#include "agos/debugger.h"
#include "agos/agos.h"
+#include "agos/midi.h"
namespace AGOS {
@@ -58,7 +57,7 @@ bool Debugger::Cmd_DebugLevel(int argc, const char **argv) {
DebugPrintf("Debugging is currently set at level %d\n", gDebugLevel);
} else { // set level
gDebugLevel = atoi(argv[1]);
- if (gDebugLevel >= 0 && gDebugLevel < 10) {
+ if (0 <= gDebugLevel && gDebugLevel < 11) {
_vm->_debugMode = true;
DebugPrintf("Debug level set to level %d\n", gDebugLevel);
} else if (gDebugLevel < 0) {
@@ -79,7 +78,7 @@ bool Debugger::Cmd_PlayMusic(int argc, const char **argv) {
// TODO
} else if (_vm->getGameType() == GType_SIMON2) {
_vm->loadMusic(music);
- _vm->_midi.startTrack(0);
+ _vm->_midi->startTrack(0);
} else {
_vm->playMusic(music, 0);
}
@@ -287,4 +286,3 @@ bool Debugger::Cmd_dumpScript(int argc, const char **argv) {
}
} // End of namespace AGOS
-
diff --git a/engines/agos/detection_tables.h b/engines/agos/detection_tables.h
index a43d581173..d9f321d98e 100644
--- a/engines/agos/detection_tables.h
+++ b/engines/agos/detection_tables.h
@@ -1040,7 +1040,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformAcorn,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES
},
@@ -1208,7 +1208,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformAmiga,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES | GUIO_NOMIDI
},
@@ -1232,7 +1232,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformAmiga,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES | GUIO_NOMIDI
},
@@ -1546,7 +1546,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES
},
@@ -1571,7 +1571,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES
},
@@ -1596,7 +1596,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1621,7 +1621,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::FR_FRA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1671,7 +1671,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::HE_ISR,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1696,7 +1696,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1722,7 +1722,7 @@ static const AGOSGameDescription gameDescriptions[] = {
// FIXME: DOS version which uses WAV format
Common::IT_ITA,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1747,7 +1747,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::ES_ESP,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -1772,7 +1772,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES
},
@@ -1797,7 +1797,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSUBTITLES
},
@@ -2022,7 +2022,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2047,7 +2047,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2072,7 +2072,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::FR_FRA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2097,7 +2097,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2122,7 +2122,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2147,7 +2147,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::HE_ISR,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2173,7 +2173,7 @@ static const AGOSGameDescription gameDescriptions[] = {
// FIXME: DOS version which uses WAV format
Common::IT_ITA,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2198,7 +2198,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::ES_ESP,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2223,7 +2223,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::CZ_CZE,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2248,7 +2248,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2273,7 +2273,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::FR_FRA,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2298,7 +2298,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
@@ -2323,7 +2323,7 @@ static const AGOSGameDescription gameDescriptions[] = {
},
Common::PL_POL,
Common::kPlatformWindows,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
diff --git a/engines/agos/draw.cpp b/engines/agos/draw.cpp
index 4d66b56a96..9fc5cedbf9 100644
--- a/engines/agos/draw.cpp
+++ b/engines/agos/draw.cpp
@@ -20,8 +20,7 @@
*
*/
-
-
+#include "common/endian.h"
#include "common/system.h"
#include "graphics/surface.h"
diff --git a/engines/agos/event.cpp b/engines/agos/event.cpp
index 3411e6d632..ed26b96381 100644
--- a/engines/agos/event.cpp
+++ b/engines/agos/event.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "agos/agos.h"
#include "agos/animation.h"
#include "agos/debugger.h"
diff --git a/engines/agos/gfx.cpp b/engines/agos/gfx.cpp
index 0b045bae01..fbf7f416ed 100644
--- a/engines/agos/gfx.cpp
+++ b/engines/agos/gfx.cpp
@@ -20,8 +20,7 @@
*
*/
-
-
+#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/icons.cpp b/engines/agos/icons.cpp
index ead4e49ebb..7db2d85f21 100644
--- a/engines/agos/icons.cpp
+++ b/engines/agos/icons.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "common/file.h"
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/input.cpp b/engines/agos/input.cpp
index 2ab543a943..24e5339420 100644
--- a/engines/agos/input.cpp
+++ b/engines/agos/input.cpp
@@ -20,13 +20,12 @@
*
*/
-
-
#include "common/config-manager.h"
#include "common/file.h"
#include "agos/intern.h"
#include "agos/agos.h"
+#include "agos/midi.h"
#include "agos/vga.h"
namespace AGOS {
@@ -582,14 +581,14 @@ bool AGOSEngine::processSpecialKeys() {
break;
case '+':
if (_midiEnabled) {
- _midi.setVolume(_midi.getMusicVolume() + 16, _midi.getSFXVolume() + 16);
+ _midi->setVolume(_midi->getMusicVolume() + 16, _midi->getSFXVolume() + 16);
}
ConfMan.setInt("music_volume", _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) + 16);
syncSoundSettings();
break;
case '-':
if (_midiEnabled) {
- _midi.setVolume(_midi.getMusicVolume() - 16, _midi.getSFXVolume() - 16);
+ _midi->setVolume(_midi->getMusicVolume() - 16, _midi->getSFXVolume() - 16);
}
ConfMan.setInt("music_volume", _mixer->getVolumeForSoundType(Audio::Mixer::kMusicSoundType) - 16);
syncSoundSettings();
@@ -597,13 +596,13 @@ bool AGOSEngine::processSpecialKeys() {
case 'm':
_musicPaused = !_musicPaused;
if (_midiEnabled) {
- _midi.pause(_musicPaused);
+ _midi->pause(_musicPaused);
}
syncSoundSettings();
break;
case 's':
if (getGameId() == GID_SIMON1DOS) {
- _midi._enable_sfx = !_midi._enable_sfx;
+ _midi->_enable_sfx = !_midi->_enable_sfx;
} else {
_effectsPaused = !_effectsPaused;
_sound->effectsPause(_effectsPaused);
diff --git a/engines/agos/input_pn.cpp b/engines/agos/input_pn.cpp
index 9cc97ff10f..b3a44f2b2f 100644
--- a/engines/agos/input_pn.cpp
+++ b/engines/agos/input_pn.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "agos/agos.h"
#include "agos/intern.h"
diff --git a/engines/agos/items.cpp b/engines/agos/items.cpp
index 0fb873a733..3bb5a132ef 100644
--- a/engines/agos/items.cpp
+++ b/engines/agos/items.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "common/file.h"
#include "common/textconsole.h"
diff --git a/engines/agos/menus.cpp b/engines/agos/menus.cpp
index 4d62e34820..a0d2bdcaa0 100644
--- a/engines/agos/menus.cpp
+++ b/engines/agos/menus.cpp
@@ -20,8 +20,6 @@
*
*/
-
-
#include "common/file.h"
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/midi.cpp b/engines/agos/midi.cpp
index 88f6dd80d1..9a93e0a273 100644
--- a/engines/agos/midi.cpp
+++ b/engines/agos/midi.cpp
@@ -20,14 +20,12 @@
*
*/
-
-
#include "common/config-manager.h"
#include "common/file.h"
-#include "common/system.h"
#include "common/textconsole.h"
#include "agos/agos.h"
+#include "agos/midi.h"
namespace AGOS {
diff --git a/engines/agos/midiparser_s1d.cpp b/engines/agos/midiparser_s1d.cpp
index 01690247f0..9ca87436fc 100644
--- a/engines/agos/midiparser_s1d.cpp
+++ b/engines/agos/midiparser_s1d.cpp
@@ -31,20 +31,22 @@ namespace AGOS {
/**
* Simon 1 Demo version of MidiParser.
- *
- * This parser is the result of eyeballing the one MUS file that's included
- * with simon1demo. So there might be some things missing. I've tried to notate
- * question-mark areas where they occur.
*/
class MidiParser_S1D : public MidiParser {
-protected:
+private:
byte *_data;
bool _no_delta;
+ struct Loop {
+ uint16 timer;
+ byte *start, *end;
+ } _loops[16];
+
+ uint32 readVLQ2(byte *&data);
+ void chainEvent(EventInfo &info);
protected:
void parseNextEvent(EventInfo &info);
void resetTracking();
- uint32 readVLQ2(byte * &data);
public:
MidiParser_S1D() : _data(0), _no_delta(false) {}
@@ -52,145 +54,128 @@ public:
bool loadMusic(byte *data, uint32 size);
};
+uint32 MidiParser_S1D::readVLQ2(byte *&data) {
+ uint32 delta = 0;
-// The VLQs for simon1demo seem to be
-// in Little Endian format.
-uint32 MidiParser_S1D::readVLQ2(byte * &data) {
- byte str;
- uint32 value = 0;
- int i;
-
- for (i = 0; i < 4; ++i) {
- str = data[0];
- ++data;
- value |= (str & 0x7F) << (i * 7);
- if (!(str & 0x80))
- break;
+ // LE format VLQ, which is 2 bytes long at max.
+ delta = *data++;
+ if (delta & 0x80) {
+ delta &= 0x7F;
+ delta |= *data++ << 7;
}
- return value;
+
+ return delta;
+}
+
+void MidiParser_S1D::chainEvent(EventInfo &info) {
+ // When we chain an event, we add up the old delta.
+ uint32 delta = info.delta;
+ parseNextEvent(info);
+ info.delta += delta;
}
void MidiParser_S1D::parseNextEvent(EventInfo &info) {
info.start = _position._play_pos;
+ info.length = 0;
info.delta = _no_delta ? 0 : readVLQ2(_position._play_pos);
-
_no_delta = false;
- info.event = *(_position._play_pos++);
- if (info.command() < 0x8) {
+
+ info.event = *_position._play_pos++;
+ if (!(info.event & 0x80)) {
_no_delta = true;
- info.event += 0x80;
+ info.event |= 0x80;
}
- switch (info.command()) {
- case 0x8:
- info.basic.param1 = *(_position._play_pos++);
- info.basic.param2 = 0;
- info.length = 0;
- break;
-
- case 0x9:
- info.basic.param1 = *(_position._play_pos++);
- info.basic.param2 = *(_position._play_pos++); // I'm ASSUMING this byte is velocity!
- info.length = 0;
- break;
-
- case 0xA:
- case 0xB:
- // I'm not sure what these are meant to do, or what the
- // parameter is. Elvira 1 needs them, though, and who am I to
- // argue with her?
- info.basic.param1 = *(_position._play_pos++);
- info.basic.param2 = 0;
- break;
-
- case 0xC:
- info.basic.param1 = *(_position._play_pos++);
- info.basic.param2 = 0;
- ++_position._play_pos; // I have NO IDEA what the second byte is for.
- break;
-
- case 0xD:
- // Triggered by MOD0/MOD1/MOD2/MOD3/MOD4/MOD6/MOD7/MOD8/MOD9 in Elvira 2
- // Triggered by MOD0/MOD2/MOD3/MOD5/MOD6/MOD7/MOD8/MOD9/MOD10/MOD12/MOD14/MOD15/MOD20 in Waxworks
- break;
-
- case 0xE:
- // Triggered by MOD9 in Elvira 1
- // Triggered by MOD3/MOD5 in Elvira 2
- // Triggered by MOD3/MOD7/MOD8/MOD13 in Waxworks
- break;
-
- case 0xF:
- switch (info.event & 0x0F) {
- case 0x0:
- // Trigged by MOD2/MOD6/MOD15 in Waxworks
- // Pure guesswork
- info.ext.type = *(_position._play_pos++);
- info.length = readVLQ(_position._play_pos);
- info.ext.data = _position._play_pos;
- break;
-
- case 0x3: // Not sure, Song Select?
- // Trigged by MOD1/MOD7/MOD10 in Elvira 1
- info.basic.param1 = *(_position._play_pos++);
+ if (info.event == 0xFC) {
+ // This means End of Track.
+ // Rewrite in SMF (MIDI transmission) form.
+ info.event = 0xFF;
+ info.ext.type = 0x2F;
+ } else {
+ switch (info.command()) {
+ case 0x8: // note off
+ info.basic.param1 = *_position._play_pos++;
info.basic.param2 = 0;
break;
- case 0x4:
- // Trigged by MOD8 in Elvira 1
- break;
-
- case 0x7:
- // Trigged by MOD6 in Elvira 2
- // Trigged by MOD5 in Waxworks
+ case 0x9: // note on
+ info.basic.param1 = *_position._play_pos++;
+ info.basic.param2 = *_position._play_pos++;
break;
- case 0x8: // Not sure, ?
- // Trigged by MOD19 in Waxworks
- info.basic.param1 = info.basic.param2 = 0;
+ case 0xA: { // loop control
+ // In case the stop mode(?) is set to 0x80 this will stop the
+ // track over here.
+
+ const int16 loopIterations = int8(*_position._play_pos++);
+ if (!loopIterations) {
+ _loops[info.channel()].start = _position._play_pos;
+ } else {
+ if (!_loops[info.channel()].timer) {
+ if (_loops[info.channel()].start) {
+ _loops[info.channel()].timer = uint16(loopIterations);
+ _loops[info.channel()].end = _position._play_pos;
+
+ // Go to the start of the loop
+ _position._play_pos = _loops[info.channel()].start;
+ }
+ } else {
+ if (_loops[info.channel()].timer)
+ _position._play_pos = _loops[info.channel()].start;
+ --_loops[info.channel()].timer;
+ }
+ }
+
+ // We need to read the next midi event here. Since we can not
+ // safely pass this event to the MIDI event processing.
+ chainEvent(info);
+ } break;
+
+ case 0xB: // auto stop marker(?)
+ // In case the stop mode(?) is set to 0x80 this will stop the
+ // track.
+
+ // We need to read the next midi event here. Since we can not
+ // safely pass this event to the MIDI event processing.
+ chainEvent(info);
break;
- case 0xA:
- // Trigged by MOD5 in Elvira 2
+ case 0xC: // program change
+ info.basic.param1 = *_position._play_pos++;
+ info.basic.param2 = 0;
break;
- case 0xC:
- // This means End of Track.
- // Rewrite in SMF (MIDI transmission) form.
- info.event = 0xFF;
- info.ext.type = 0x2F;
- info.length = 0;
- break;
+ case 0xD: // jump to loop end
+ if (_loops[info.channel()].end)
+ _position._play_pos = _loops[info.channel()].end;
- case 0xF: // Not sure, META event?
- // Trigged by MOD8/MOD9/MOD11/MOD12/MOD13 in Waxworks
- info.ext.type = *(_position._play_pos++);
- info.length = readVLQ(_position._play_pos);
- info.ext.data = _position._play_pos;
- _position._play_pos += info.length;
+ // We need to read the next midi event here. Since we can not
+ // safely pass this event to the MIDI event processing.
+ chainEvent(info);
break;
default:
- error("MidiParser_S1D: Unexpected type 0x%02X found", (int) info.event);
+ // The original called some other function from here, which seems
+ // not to be MIDI related.
+ warning("MidiParser_S1D: default case %d", info.channel());
+
+ // We need to read the next midi event here. Since we can not
+ // safely pass this event to the MIDI event processing.
+ chainEvent(info);
break;
}
- break;
- default:
- error("MidiParser_S1D: Unexpected event 0x%02X found", (int) info.command());
- break;
}
}
bool MidiParser_S1D::loadMusic(byte *data, uint32 size) {
unloadMusic();
+ // The original actually just ignores the first two bytes.
byte *pos = data;
if (*(pos++) != 0xFC)
debug(1, "Expected 0xFC header but found 0x%02X instead", (int) *pos);
- // The next 3 bytes MIGHT be tempo, but we skip them and use the default.
-// setTempo (*(pos++) | (*(pos++) << 8) | (*(pos++) << 16));
- pos += 3;
+ pos += 1;
// And now we're at the actual data. Only one track.
_num_tracks = 1;
@@ -208,7 +193,9 @@ bool MidiParser_S1D::loadMusic(byte *data, uint32 size) {
void MidiParser_S1D::resetTracking() {
MidiParser::resetTracking();
- _no_delta = false;
+ // The first event never contains any delta.
+ _no_delta = true;
+ memset(_loops, 0, sizeof(_loops));
}
MidiParser *MidiParser_createS1D() { return new MidiParser_S1D; }
diff --git a/engines/agos/oracle.cpp b/engines/agos/oracle.cpp
index 2a3c668c08..025a833b77 100644
--- a/engines/agos/oracle.cpp
+++ b/engines/agos/oracle.cpp
@@ -25,7 +25,6 @@
#ifdef ENABLE_AGOS2
#include "common/savefile.h"
-#include "common/system.h"
#include "graphics/surface.h"
diff --git a/engines/agos/res_ami.cpp b/engines/agos/res_ami.cpp
index b83d10364a..32adfa29e6 100644
--- a/engines/agos/res_ami.cpp
+++ b/engines/agos/res_ami.cpp
@@ -26,6 +26,8 @@
#include "agos/agos.h"
#include "agos/intern.h"
+#include "common/endian.h"
+
namespace AGOS {
enum {
diff --git a/engines/agos/res_snd.cpp b/engines/agos/res_snd.cpp
index 819af4fa40..9a04ce2d26 100644
--- a/engines/agos/res_snd.cpp
+++ b/engines/agos/res_snd.cpp
@@ -27,12 +27,12 @@
#include "agos/intern.h"
#include "agos/agos.h"
+#include "agos/midi.h"
#include "agos/vga.h"
#include "backends/audiocd/audiocd.h"
#include "audio/audiostream.h"
-#include "audio/mididrv.h"
#include "audio/mods/protracker.h"
namespace AGOS {
@@ -125,10 +125,10 @@ void AGOSEngine::loadMusic(uint16 music) {
_gameFile->read(buf, 4);
if (!memcmp(buf, "FORM", 4)) {
_gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music - 1], SEEK_SET);
- _midi.loadXMIDI(_gameFile);
+ _midi->loadXMIDI(_gameFile);
} else {
_gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music - 1], SEEK_SET);
- _midi.loadMultipleSMF(_gameFile);
+ _midi->loadMultipleSMF(_gameFile);
}
_lastMusicPlayed = music;
@@ -242,20 +242,20 @@ void AGOSEngine_Simon1::playMusic(uint16 music, uint16 track) {
if (music == 35)
return;
- _midi.setLoop(true); // Must do this BEFORE loading music. (GMF may have its own override.)
+ _midi->setLoop(true); // Must do this BEFORE loading music. (GMF may have its own override.)
_gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music], SEEK_SET);
_gameFile->read(buf, 4);
if (!memcmp(buf, "GMF\x1", 4)) {
_gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music], SEEK_SET);
- _midi.loadSMF(_gameFile, music);
+ _midi->loadSMF(_gameFile, music);
} else {
_gameFile->seek(_gameOffsetsPtr[_musicIndexBase + music], SEEK_SET);
- _midi.loadMultipleSMF(_gameFile);
+ _midi->loadMultipleSMF(_gameFile);
}
- _midi.startTrack(0);
- _midi.startTrack(track);
+ _midi->startTrack(0);
+ _midi->startTrack(track);
} else if (getPlatform() == Common::kPlatformAcorn) {
// TODO: Add support for Desktop Tracker format in Acorn disk version
} else {
@@ -266,15 +266,15 @@ void AGOSEngine_Simon1::playMusic(uint16 music, uint16 track) {
if (f.isOpen() == false)
error("playMusic: Can't load music from '%s'", filename);
- _midi.setLoop(true); // Must do this BEFORE loading music. (GMF may have its own override.)
+ _midi->setLoop(true); // Must do this BEFORE loading music. (GMF may have its own override.)
if (getFeatures() & GF_DEMO)
- _midi.loadS1D(&f);
+ _midi->loadS1D(&f);
else
- _midi.loadSMF(&f, music);
+ _midi->loadSMF(&f, music);
- _midi.startTrack(0);
- _midi.startTrack(track);
+ _midi->startTrack(0);
+ _midi->startTrack(track);
}
}
@@ -286,7 +286,7 @@ void AGOSEngine::playMusic(uint16 music, uint16 track) {
} else if (getPlatform() == Common::kPlatformAtariST) {
// TODO: Add support for music formats used
} else {
- _midi.setLoop(true); // Must do this BEFORE loading music.
+ _midi->setLoop(true); // Must do this BEFORE loading music.
char filename[15];
Common::File f;
@@ -295,21 +295,21 @@ void AGOSEngine::playMusic(uint16 music, uint16 track) {
if (f.isOpen() == false)
error("playMusic: Can't load music from '%s'", filename);
- _midi.loadS1D(&f);
- _midi.startTrack(0);
- _midi.startTrack(track);
+ _midi->loadS1D(&f);
+ _midi->startTrack(0);
+ _midi->startTrack(track);
}
}
void AGOSEngine::stopMusic() {
if (_midiEnabled) {
- _midi.stop();
+ _midi->stop();
}
_mixer->stopHandle(_modHandle);
}
void AGOSEngine::playSting(uint16 soundId) {
- if (!_midi._enable_sfx)
+ if (!_midi->_enable_sfx)
return;
char filename[15];
@@ -328,8 +328,8 @@ void AGOSEngine::playSting(uint16 soundId) {
error("playSting: Can't read sting %d offset", soundId);
mus_file.seek(mus_offset, SEEK_SET);
- _midi.loadSMF(&mus_file, soundId, true);
- _midi.startTrack(0);
+ _midi->loadSMF(&mus_file, soundId, true);
+ _midi->startTrack(0);
}
static const byte elvira1_soundTable[100] = {
diff --git a/engines/agos/saveload.cpp b/engines/agos/saveload.cpp
index e6cce36b22..10830db002 100644
--- a/engines/agos/saveload.cpp
+++ b/engines/agos/saveload.cpp
@@ -22,7 +22,6 @@
#include "common/file.h"
#include "common/savefile.h"
-#include "common/system.h"
#include "common/textconsole.h"
#include "common/translation.h"
diff --git a/engines/agos/script.cpp b/engines/agos/script.cpp
index 68a90e405b..1c36454278 100644
--- a/engines/agos/script.cpp
+++ b/engines/agos/script.cpp
@@ -22,8 +22,7 @@
// Item script opcodes for Simon1/Simon2
-
-
+#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/script_dp.cpp b/engines/agos/script_dp.cpp
index a4ee249f47..f51e15dc67 100644
--- a/engines/agos/script_dp.cpp
+++ b/engines/agos/script_dp.cpp
@@ -24,8 +24,6 @@
#ifdef ENABLE_AGOS2
-#include "common/system.h"
-
#include "agos/agos.h"
namespace AGOS {
diff --git a/engines/agos/script_pn.cpp b/engines/agos/script_pn.cpp
index 3bd8ce19a3..196350b9bf 100644
--- a/engines/agos/script_pn.cpp
+++ b/engines/agos/script_pn.cpp
@@ -23,6 +23,7 @@
#include "agos/agos.h"
#include "agos/vga.h"
+#include "common/endian.h"
#include "common/textconsole.h"
namespace AGOS {
diff --git a/engines/agos/script_s1.cpp b/engines/agos/script_s1.cpp
index 0e7e66778e..a07c05b4fc 100644
--- a/engines/agos/script_s1.cpp
+++ b/engines/agos/script_s1.cpp
@@ -20,8 +20,8 @@
*
*/
-
#include "common/system.h"
+#include "common/localization.h"
#include "graphics/palette.h"
@@ -308,34 +308,9 @@ void AGOSEngine_Simon1::os1_pauseGame() {
// 135: pause game
_system->setFeatureState(OSystem::kFeatureVirtualKeyboard, true);
- // If all else fails, use English as fallback.
- Common::KeyCode keyYes = Common::KEYCODE_y;
- Common::KeyCode keyNo = Common::KEYCODE_n;
-
- switch (_language) {
- case Common::RU_RUS:
- break;
- case Common::PL_POL:
- keyYes = Common::KEYCODE_t;
- break;
- case Common::HE_ISR:
- keyYes = Common::KEYCODE_f;
- break;
- case Common::ES_ESP:
- keyYes = Common::KEYCODE_s;
- break;
- case Common::IT_ITA:
- keyYes = Common::KEYCODE_s;
- break;
- case Common::FR_FRA:
- keyYes = Common::KEYCODE_o;
- break;
- case Common::DE_DEU:
- keyYes = Common::KEYCODE_j;
- break;
- default:
- break;
- }
+ Common::KeyCode keyYes, keyNo;
+
+ Common::getLanguageYesNo(_language, keyYes, keyNo);
while (!shouldQuit()) {
delay(1);
diff --git a/engines/agos/script_s2.cpp b/engines/agos/script_s2.cpp
index c646397ac3..c35771f8ec 100644
--- a/engines/agos/script_s2.cpp
+++ b/engines/agos/script_s2.cpp
@@ -23,6 +23,7 @@
#include "agos/agos.h"
+#include "agos/midi.h"
#include "common/textconsole.h"
@@ -342,11 +343,11 @@ void AGOSEngine_Simon2::os2_playTune() {
// effectively preloaded so there's no latency when
// starting playback).
- _midi.setLoop(loop != 0);
+ _midi->setLoop(loop != 0);
if (_lastMusicPlayed != music)
_nextMusicToPlay = music;
else
- _midi.startTrack(track);
+ _midi->startTrack(track);
}
void AGOSEngine_Simon2::os2_screenTextPObj() {
diff --git a/engines/agos/script_ww.cpp b/engines/agos/script_ww.cpp
index 29a91a15aa..873f258743 100644
--- a/engines/agos/script_ww.cpp
+++ b/engines/agos/script_ww.cpp
@@ -22,8 +22,6 @@
-#include "common/system.h"
-
#include "agos/agos.h"
namespace AGOS {
diff --git a/engines/agos/sound.cpp b/engines/agos/sound.cpp
index 03932aa4de..11a1cd792e 100644
--- a/engines/agos/sound.cpp
+++ b/engines/agos/sound.cpp
@@ -22,6 +22,7 @@
#include "common/file.h"
#include "common/memstream.h"
+#include "common/ptr.h"
#include "common/textconsole.h"
#include "common/util.h"
@@ -43,11 +44,10 @@ namespace AGOS {
class BaseSound : Common::NonCopyable {
protected:
- Common::File *_file;
+ Common::DisposablePtr<Common::File> _file;
uint32 *_offsets;
Audio::Mixer *_mixer;
bool _freeOffsets;
- DisposeAfterUse::Flag _disposeFile;
public:
BaseSound(Audio::Mixer *mixer, Common::File *file, uint32 base, bool bigEndian, DisposeAfterUse::Flag disposeFileAfterUse = DisposeAfterUse::YES);
@@ -62,7 +62,7 @@ public:
};
BaseSound::BaseSound(Audio::Mixer *mixer, Common::File *file, uint32 base, bool bigEndian, DisposeAfterUse::Flag disposeFileAfterUse)
- : _mixer(mixer), _file(file), _disposeFile(disposeFileAfterUse) {
+ : _mixer(mixer), _file(file, disposeFileAfterUse) {
uint res = 0;
uint32 size;
@@ -96,7 +96,7 @@ BaseSound::BaseSound(Audio::Mixer *mixer, Common::File *file, uint32 base, bool
}
BaseSound::BaseSound(Audio::Mixer *mixer, Common::File *file, uint32 *offsets, DisposeAfterUse::Flag disposeFileAfterUse)
- : _mixer(mixer), _file(file), _disposeFile(disposeFileAfterUse) {
+ : _mixer(mixer), _file(file, disposeFileAfterUse) {
_offsets = offsets;
_freeOffsets = false;
@@ -105,8 +105,6 @@ BaseSound::BaseSound(Audio::Mixer *mixer, Common::File *file, uint32 *offsets, D
BaseSound::~BaseSound() {
if (_freeOffsets)
free(_offsets);
- if (_disposeFile == DisposeAfterUse::YES)
- delete _file;
}
///////////////////////////////////////////////////////////////////////////////
@@ -234,7 +232,7 @@ Audio::AudioStream *WavSound::makeAudioStream(uint sound) {
return NULL;
_file->seek(_offsets[sound], SEEK_SET);
- return Audio::makeWAVStream(_file, DisposeAfterUse::NO);
+ return Audio::makeWAVStream(_file.get(), DisposeAfterUse::NO);
}
void WavSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, bool loop, int vol) {
@@ -257,7 +255,7 @@ public:
Audio::AudioStream *VocSound::makeAudioStream(uint sound) {
assert(_offsets);
_file->seek(_offsets[sound], SEEK_SET);
- return Audio::makeVOCStream(_file, _flags);
+ return Audio::makeVOCStream(_file.get(), _flags);
}
void VocSound::playSound(uint sound, uint loopSound, Audio::Mixer::SoundType type, Audio::SoundHandle *handle, bool loop, int vol) {
diff --git a/engines/agos/sound.h b/engines/agos/sound.h
index a7c4cd73db..ab4a3a963d 100644
--- a/engines/agos/sound.h
+++ b/engines/agos/sound.h
@@ -28,6 +28,10 @@
#include "agos/intern.h"
#include "common/str.h"
+namespace Common {
+class File;
+}
+
namespace AGOS {
class BaseSound;
diff --git a/engines/agos/verb.cpp b/engines/agos/verb.cpp
index abc45c1ace..dec05f6703 100644
--- a/engines/agos/verb.cpp
+++ b/engines/agos/verb.cpp
@@ -22,7 +22,6 @@
// Verb and hitarea handling
-
#include "common/system.h"
#include "graphics/surface.h"
diff --git a/engines/agos/vga.cpp b/engines/agos/vga.cpp
index de6a6976e5..8541f579d6 100644
--- a/engines/agos/vga.cpp
+++ b/engines/agos/vga.cpp
@@ -27,6 +27,7 @@
#include "agos/intern.h"
#include "agos/vga.h"
+#include "common/endian.h"
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/vga_e2.cpp b/engines/agos/vga_e2.cpp
index 1bde6945f0..d4aafd3d7b 100644
--- a/engines/agos/vga_e2.cpp
+++ b/engines/agos/vga_e2.cpp
@@ -26,6 +26,7 @@
#include "agos/agos.h"
#include "agos/intern.h"
+#include "common/endian.h"
#include "common/system.h"
#include "graphics/surface.h"
diff --git a/engines/agos/vga_s2.cpp b/engines/agos/vga_s2.cpp
index 1021ea8f94..9b9ed4e297 100644
--- a/engines/agos/vga_s2.cpp
+++ b/engines/agos/vga_s2.cpp
@@ -20,10 +20,9 @@
*
*/
-
-
#include "agos/agos.h"
#include "agos/intern.h"
+#include "agos/midi.h"
#include "graphics/surface.h"
@@ -146,8 +145,8 @@ void AGOSEngine::vc69_playSeq() {
// specifying a non-valid track number (999 or -1)
// as a means of stopping what music is currently
// playing.
- _midi.setLoop(loop != 0);
- _midi.startTrack(track);
+ _midi->setLoop(loop != 0);
+ _midi->startTrack(track);
}
void AGOSEngine::vc70_joinSeq() {
@@ -161,9 +160,9 @@ void AGOSEngine::vc70_joinSeq() {
// track and, if not, whether to switch to
// a different track upon completion.
if (track != 0xFFFF && track != 999)
- _midi.queueTrack(track, loop != 0);
+ _midi->queueTrack(track, loop != 0);
else
- _midi.setLoop(loop != 0);
+ _midi->setLoop(loop != 0);
}
void AGOSEngine::vc71_ifSeqWaiting() {
@@ -171,7 +170,7 @@ void AGOSEngine::vc71_ifSeqWaiting() {
// This command skips the next instruction
// unless (1) there is a track playing, AND
// (2) there is a track queued to play after it.
- if (!_midi.isPlaying(true))
+ if (!_midi->isPlaying(true))
vcSkipNextInstruction();
}
@@ -195,8 +194,8 @@ void AGOSEngine::vc72_segue() {
if (track == -1 || track == 999) {
stopMusic();
} else {
- _midi.setLoop(loop != 0);
- _midi.startTrack(track);
+ _midi->setLoop(loop != 0);
+ _midi->startTrack(track);
}
}
diff --git a/engines/agos/window.cpp b/engines/agos/window.cpp
index c55e3dcdda..0365c736d8 100644
--- a/engines/agos/window.cpp
+++ b/engines/agos/window.cpp
@@ -21,7 +21,6 @@
*/
-
#include "common/system.h"
#include "common/textconsole.h"
diff --git a/engines/agos/zones.cpp b/engines/agos/zones.cpp
index 61efbcb89a..483b9949eb 100644
--- a/engines/agos/zones.cpp
+++ b/engines/agos/zones.cpp
@@ -214,5 +214,3 @@ void AGOSEngine::checkZonePtrs() {
}
} // End of namespace AGOS
-
-
diff --git a/engines/composer/composer.cpp b/engines/composer/composer.cpp
new file mode 100644
index 0000000000..d9bb0cdc54
--- /dev/null
+++ b/engines/composer/composer.cpp
@@ -0,0 +1,515 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+#include "common/scummsys.h"
+
+#include "common/config-manager.h"
+#include "common/events.h"
+#include "common/file.h"
+#include "common/random.h"
+#include "common/fs.h"
+#include "common/keyboard.h"
+#include "common/substream.h"
+
+#include "graphics/cursorman.h"
+#include "graphics/surface.h"
+#include "graphics/pixelformat.h"
+
+#include "engines/util.h"
+#include "engines/advancedDetector.h"
+
+#include "audio/audiostream.h"
+
+#include "composer/composer.h"
+#include "composer/graphics.h"
+#include "composer/resource.h"
+
+namespace Composer {
+
+ComposerEngine::ComposerEngine(OSystem *syst, const ComposerGameDescription *gameDesc) : Engine(syst), _gameDescription(gameDesc) {
+ _rnd = new Common::RandomSource("composer");
+ _audioStream = NULL;
+}
+
+ComposerEngine::~ComposerEngine() {
+ DebugMan.clearAllDebugChannels();
+
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
+ delete i->_archive;
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++)
+ i->_surface.free();
+
+ delete _rnd;
+}
+
+Common::Error ComposerEngine::run() {
+ Common::Event event;
+
+ _vars.resize(1000);
+ for (uint i = 0; i < _vars.size(); i++)
+ _vars[i] = 0;
+
+ _queuedScripts.resize(10);
+ for (uint i = 0; i < _queuedScripts.size(); i++) {
+ _queuedScripts[i]._count = 0;
+ _queuedScripts[i]._scriptId = 0;
+ }
+
+ _mouseVisible = true;
+ _mouseEnabled = false;
+ _mouseSpriteId = 0;
+ _lastButton = NULL;
+
+ _directoriesToStrip = 1;
+ if (!_bookIni.loadFromFile("book.ini")) {
+ _directoriesToStrip = 0;
+ if (!_bookIni.loadFromFile("programs/book.ini"))
+ error("failed to find book.ini");
+ }
+
+ uint width = 640;
+ if (_bookIni.hasKey("Width", "Common"))
+ width = atoi(getStringFromConfig("Common", "Width").c_str());
+ uint height = 480;
+ if (_bookIni.hasKey("Height", "Common"))
+ height = atoi(getStringFromConfig("Common", "Height").c_str());
+ initGraphics(width, height, true);
+ _surface.create(width, height, Graphics::PixelFormat::createFormatCLUT8());
+ _needsUpdate = true;
+
+ loadLibrary(0);
+
+ uint fps = atoi(getStringFromConfig("Common", "FPS").c_str());
+ uint frameTime = 1000 / fps;
+ uint32 lastDrawTime = 0;
+ while (!shouldQuit()) {
+ for (uint i = 0; i < _pendingPageChanges.size(); i++) {
+ if (_pendingPageChanges[i]._remove)
+ unloadLibrary(_pendingPageChanges[i]._pageId);
+ else
+ loadLibrary(_pendingPageChanges[i]._pageId);
+
+ lastDrawTime = _system->getMillis();
+ }
+ _pendingPageChanges.clear();
+
+ uint32 thisTime = _system->getMillis();
+ for (uint i = 0; i < _queuedScripts.size(); i++) {
+ QueuedScript &script = _queuedScripts[i];
+ if (!script._count)
+ continue;
+ if (script._baseTime + script._duration > thisTime)
+ continue;
+ if (script._count != 0xffffffff)
+ script._count--;
+ script._baseTime = thisTime;
+ runScript(script._scriptId, i, 0, 0);
+ }
+
+ if (lastDrawTime + frameTime <= thisTime) {
+ // catch up if we're more than 2 frames behind
+ if (lastDrawTime + (frameTime * 2) <= thisTime)
+ lastDrawTime = thisTime;
+ else
+ lastDrawTime += frameTime;
+
+ redraw();
+
+ processAnimFrame();
+ } else if (_needsUpdate) {
+ redraw();
+ }
+
+ while (_eventMan->pollEvent(event)) {
+ switch (event.type) {
+ case Common::EVENT_LBUTTONDOWN:
+ onMouseDown(event.mouse);
+ break;
+
+ case Common::EVENT_LBUTTONUP:
+ break;
+
+ case Common::EVENT_RBUTTONDOWN:
+ break;
+
+ case Common::EVENT_MOUSEMOVE:
+ onMouseMove(event.mouse);
+ break;
+
+ case Common::EVENT_KEYDOWN:
+ switch (event.kbd.keycode) {
+ case Common::KEYCODE_d:
+ /*if (event.kbd.hasFlags(Common::KBD_CTRL)) {
+ // Start the debugger
+ getDebugger()->attach();
+ getDebugger()->onFrame();
+ }*/
+ break;
+
+ case Common::KEYCODE_q:
+ if (event.kbd.hasFlags(Common::KBD_CTRL))
+ quitGame();
+ break;
+
+ default:
+ break;
+ }
+
+ onKeyDown(event.kbd.keycode);
+ break;
+
+ case Common::EVENT_QUIT:
+ case Common::EVENT_RTL:
+ quitGame();
+ break;
+
+ default:
+ break;
+ }
+ }
+
+ _system->delayMillis(20);
+ }
+
+ return Common::kNoError;
+}
+
+void ComposerEngine::onMouseDown(const Common::Point &pos) {
+ if (!_mouseEnabled || !_mouseVisible)
+ return;
+
+ const Sprite *sprite = getSpriteAtPos(pos);
+ const Button *button = getButtonFor(sprite, pos);
+ if (!button)
+ return;
+
+ // TODO: other buttons?
+ uint16 buttonsDown = 1; // MK_LBUTTON
+
+ uint16 spriteId = sprite ? sprite->_id : 0;
+ runScript(button->_scriptId, button->_id, buttonsDown, spriteId);
+}
+
+void ComposerEngine::onMouseMove(const Common::Point &pos) {
+ _lastMousePos = pos;
+
+ if (!_mouseEnabled || !_mouseVisible)
+ return;
+
+ // TODO: do we need to keep track of this?
+ uint buttonsDown = 0;
+
+ const Sprite *sprite = getSpriteAtPos(pos);
+ const Button *button = getButtonFor(sprite, pos);
+ if (_lastButton != button) {
+ if (_lastButton && _lastButton->_scriptIdRollOff)
+ runScript(_lastButton->_scriptIdRollOff, _lastButton->_id, buttonsDown, 0);
+ _lastButton = button;
+ if (_lastButton && _lastButton->_scriptIdRollOn)
+ runScript(_lastButton->_scriptIdRollOn, _lastButton->_id, buttonsDown, 0);
+ }
+
+ if (_mouseSpriteId) {
+ addSprite(_mouseSpriteId, 0, 0, _lastMousePos - _mouseOffset);
+ _needsUpdate = true;
+ }
+}
+
+void ComposerEngine::onKeyDown(uint16 keyCode) {
+ runEvent(kEventKeyDown, keyCode, 0, 0);
+ runEvent(kEventChar, keyCode, 0, 0);
+}
+
+void ComposerEngine::setCursor(uint16 id, const Common::Point &offset) {
+ _mouseOffset = offset;
+ if (_mouseSpriteId == id)
+ return;
+
+ if (_mouseSpriteId && _mouseVisible) {
+ removeSprite(_mouseSpriteId, 0);
+ }
+ _mouseSpriteId = id;
+ if (_mouseSpriteId && _mouseVisible) {
+ addSprite(_mouseSpriteId, 0, 0, _lastMousePos - _mouseOffset);
+ }
+}
+
+void ComposerEngine::setCursorVisible(bool visible) {
+ if (visible && !_mouseVisible) {
+ _mouseVisible = true;
+ if (_mouseSpriteId)
+ addSprite(_mouseSpriteId, 0, 0, _lastMousePos - _mouseOffset);
+ onMouseMove(_lastMousePos);
+ } else if (!visible && _mouseVisible) {
+ _mouseVisible = false;
+ if (_mouseSpriteId)
+ removeSprite(_mouseSpriteId, 0);
+ }
+}
+
+Common::String ComposerEngine::getStringFromConfig(const Common::String &section, const Common::String &key) {
+ Common::String value;
+ if (!_bookIni.getKey(key, section, value))
+ error("failed to find key '%s' in section '%s' of book config", key.c_str(), section.c_str());
+ return value;
+}
+
+Common::String ComposerEngine::getFilename(const Common::String &section, uint id) {
+ Common::String key = Common::String::format("%d", id);
+ Common::String filename = getStringFromConfig(section, key);
+
+ return mangleFilename(filename);
+}
+
+Common::String ComposerEngine::mangleFilename(Common::String filename) {
+ while (filename.size() && (filename[0] == '~' || filename[0] == ':' || filename[0] == '\\'))
+ filename = filename.c_str() + 1;
+
+ uint slashesToStrip = _directoriesToStrip;
+ while (slashesToStrip--) {
+ for (uint i = 0; i < filename.size(); i++) {
+ if (filename[i] != '\\')
+ continue;
+ filename = filename.c_str() + i + 1;
+ break;
+ }
+ }
+
+ Common::String outFilename;
+ for (uint i = 0; i < filename.size(); i++) {
+ if (filename[i] == '\\')
+ outFilename += '/';
+ else
+ outFilename += filename[i];
+ }
+ return outFilename;
+}
+
+void ComposerEngine::loadLibrary(uint id) {
+ if (!id)
+ id = atoi(getStringFromConfig("Common", "StartUp").c_str());
+ Common::String filename = getFilename("Libs", id);
+
+ Library library;
+
+ library._id = id;
+ library._archive = new ComposerArchive();
+ if (!library._archive->openFile(filename))
+ error("failed to open '%s'", filename.c_str());
+ _libraries.push_front(library);
+
+ Library &newLib = _libraries.front();
+
+ Common::Array<uint16> buttonResources = library._archive->getResourceIDList(ID_BUTN);
+ for (uint i = 0; i < buttonResources.size(); i++) {
+ uint16 buttonId = buttonResources[i];
+ Common::SeekableReadStream *stream = library._archive->getResource(ID_BUTN, buttonId);
+ Button button(stream, buttonId, getGameType());
+
+ bool inserted = false;
+ for (Common::List<Button>::iterator b = newLib._buttons.begin(); b != newLib._buttons.end(); b++) {
+ if (button._zorder < b->_zorder)
+ continue;
+ newLib._buttons.insert(b, button);
+ inserted = true;
+ break;
+ }
+ if (!inserted)
+ newLib._buttons.push_back(button);
+ }
+
+ // add background sprite, if it exists
+ if (hasResource(ID_BMAP, 1000))
+ setBackground(1000);
+
+ // TODO: better CTBL logic
+ loadCTBL(1000, 100);
+
+ // Run the startup script.
+ runScript(1000, 0, 0, 0);
+
+ _mouseEnabled = true;
+ onMouseMove(_lastMousePos);
+
+ runEvent(kEventLoad, id, 0, 0);
+}
+
+void ComposerEngine::unloadLibrary(uint id) {
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++) {
+ if (i->_id != id)
+ continue;
+
+ for (Common::List<Animation *>::iterator j = _anims.begin(); j != _anims.end(); j++) {
+ delete *j;
+ }
+ _anims.clear();
+ for (Common::List<Pipe *>::iterator j = _pipes.begin(); j != _pipes.end(); j++) {
+ delete *j;
+ }
+ _pipes.clear();
+
+ for (Common::List<Sprite>::iterator j = _sprites.begin(); j != _sprites.end(); j++) {
+ j->_surface.free();
+ }
+ _sprites.clear();
+ i->_buttons.clear();
+
+ _lastButton = NULL;
+
+ _mixer->stopAll();
+ _audioStream = NULL;
+
+ for (uint j = 0; j < _queuedScripts.size(); j++) {
+ _queuedScripts[j]._count = 0;
+ _queuedScripts[j]._scriptId = 0;
+ }
+
+ delete i->_archive;
+ _libraries.erase(i);
+
+ runEvent(kEventUnload, id, 0, 0);
+
+ return;
+ }
+
+ error("tried to unload library %d, which isn't loaded", id);
+}
+
+bool ComposerEngine::hasResource(uint32 tag, uint16 id) {
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
+ if (i->_archive->hasResource(tag, id))
+ return true;
+
+ return false;
+}
+
+Common::SeekableReadStream *ComposerEngine::getResource(uint32 tag, uint16 id) {
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
+ if (i->_archive->hasResource(tag, id))
+ return i->_archive->getResource(tag, id);
+
+ error("No loaded library contains '%s' %04x", tag2str(tag), id);
+}
+
+Button::Button(Common::SeekableReadStream *stream, uint16 id, uint gameType) {
+ _id = id;
+
+ _type = stream->readUint16LE();
+ _active = (_type & 0x8000) ? true : false;
+ _type &= 0xfff;
+ debug(9, "button %d: type %d, active %d", id, _type, _active);
+
+ uint16 flags = 0;
+ uint16 size = 4;
+ if (gameType == GType_ComposerV1) {
+ flags = stream->readUint16LE();
+ _zorder = 0;
+ _scriptId = stream->readUint16LE();
+ _scriptIdRollOn = 0;
+ _scriptIdRollOff = 0;
+ } else {
+ _zorder = stream->readUint16LE();
+ _scriptId = stream->readUint16LE();
+ _scriptIdRollOn = stream->readUint16LE();
+ _scriptIdRollOff = stream->readUint16LE();
+
+ stream->skip(4);
+
+ size = stream->readUint16LE();
+ }
+
+ switch (_type) {
+ case kButtonRect:
+ case kButtonEllipse:
+ if (size != 4)
+ error("button %d of type %d had %d points, not 4", id, _type, size);
+ _rect.left = stream->readSint16LE();
+ _rect.top = stream->readSint16LE();
+ _rect.right = stream->readSint16LE();
+ _rect.bottom = stream->readSint16LE();
+ break;
+ case kButtonSprites:
+ if (gameType == GType_ComposerV1)
+ error("encountered kButtonSprites in V1 data");
+ for (uint i = 0; i < size; i++) {
+ _spriteIds.push_back(stream->readUint16LE());
+ }
+ break;
+ default:
+ error("unknown button type %d", _type);
+ }
+
+ if (flags & 0x40) {
+ _scriptIdRollOn = stream->readUint16LE();
+ _scriptIdRollOff = stream->readUint16LE();
+ }
+
+ delete stream;
+}
+
+bool Button::contains(const Common::Point &pos) const {
+ switch (_type) {
+ case kButtonRect:
+ return _rect.contains(pos);
+ case kButtonEllipse:
+ if (!_rect.contains(pos))
+ return false;
+ {
+ int16 a = _rect.width() / 2;
+ int16 b = _rect.height() / 2;
+ if (!a || !b)
+ return false;
+ Common::Point adjustedPos = pos - Common::Point(_rect.left + a, _rect.top + b);
+ return ((adjustedPos.x*adjustedPos.x)/(a*a) + (adjustedPos.y*adjustedPos.y)/(b*b) < 1);
+ }
+ case kButtonSprites:
+ return false;
+ default:
+ error("internal error (button type %d)", _type);
+ }
+}
+
+const Button *ComposerEngine::getButtonFor(const Sprite *sprite, const Common::Point &pos) {
+ for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
+ for (Common::List<Button>::iterator i = l->_buttons.reverse_begin(); i != l->_buttons.end(); --i) {
+ if (!i->_active)
+ continue;
+
+ if (i->_spriteIds.empty()) {
+ if (i->contains(pos))
+ return &(*i);
+ continue;
+ }
+
+ if (!sprite)
+ continue;
+
+ for (uint j = 0; j < i->_spriteIds.size(); j++) {
+ if (i->_spriteIds[j] == sprite->_id)
+ return &(*i);
+ }
+ }
+ }
+
+ return NULL;
+}
+
+} // End of namespace Composer
diff --git a/engines/composer/composer.h b/engines/composer/composer.h
new file mode 100644
index 0000000000..c0d456daaa
--- /dev/null
+++ b/engines/composer/composer.h
@@ -0,0 +1,213 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef COMPOSER_H
+#define COMPOSER_H
+
+#include "common/config-file.h"
+#include "common/random.h"
+#include "common/system.h"
+#include "common/debug.h"
+#include "common/debug-channels.h"
+#include "common/textconsole.h"
+#include "common/rect.h"
+
+#include "engines/engine.h"
+#include "engines/util.h"
+
+#include "graphics/surface.h"
+
+#include "audio/mixer.h"
+
+#include "composer/resource.h"
+
+namespace Audio {
+ class QueuingAudioStream;
+}
+
+namespace Composer {
+
+struct ComposerGameDescription;
+
+enum GameType {
+ GType_ComposerV1,
+ GType_ComposerV2
+};
+
+class Archive;
+struct Animation;
+class ComposerEngine;
+class Pipe;
+struct Sprite;
+
+enum {
+ kButtonRect = 0,
+ kButtonEllipse = 1,
+ kButtonSprites = 4
+};
+
+class Button {
+public:
+ Button() { }
+ Button(Common::SeekableReadStream *stream, uint16 id, uint gameType);
+
+ bool contains(const Common::Point &pos) const;
+
+ uint16 _id;
+ uint16 _type;
+ uint16 _zorder;
+ uint16 _scriptId;
+ uint16 _scriptIdRollOn;
+ uint16 _scriptIdRollOff;
+ bool _active;
+
+ Common::Rect _rect;
+ Common::Array<uint16> _spriteIds;
+};
+
+enum {
+ kEventAnimStarted = 1,
+ kEventAnimDone = 2,
+ kEventLoad = 3,
+ kEventUnload = 4,
+ kEventKeyDown = 5,
+ kEventChar = 6,
+ kEventKeyUp = 7
+};
+
+struct Library {
+ uint _id;
+ Archive *_archive;
+
+ Common::List<Button> _buttons;
+};
+
+struct QueuedScript {
+ uint32 _baseTime;
+ uint32 _duration;
+ uint32 _count;
+ uint16 _scriptId;
+};
+
+struct PendingPageChange {
+ PendingPageChange() { }
+ PendingPageChange(uint16 id, bool remove) : _pageId(id), _remove(remove) { }
+
+ uint16 _pageId;
+ bool _remove;
+};
+
+class ComposerEngine : public Engine {
+protected:
+ Common::Error run();
+
+public:
+ ComposerEngine(OSystem *syst, const ComposerGameDescription *gameDesc);
+ virtual ~ComposerEngine();
+
+ virtual bool hasFeature(EngineFeature f) const;
+
+ int getGameType() const;
+ const char *getGameId() const;
+ uint32 getFeatures() const;
+ Common::Language getLanguage() const;
+
+ const ComposerGameDescription *_gameDescription;
+
+private:
+ Common::RandomSource *_rnd;
+
+ Audio::SoundHandle _soundHandle;
+ Audio::QueuingAudioStream *_audioStream;
+ uint16 _currSoundPriority;
+
+ bool _needsUpdate;
+ Common::Array<Common::Rect> _dirtyRects;
+ Graphics::Surface _surface;
+ Common::List<Sprite> _sprites;
+
+ uint _directoriesToStrip;
+ Common::ConfigFile _bookIni;
+ Common::List<Library> _libraries;
+ Common::Array<PendingPageChange> _pendingPageChanges;
+
+ Common::Array<uint16> _stack;
+ Common::Array<uint16> _vars;
+
+ Common::Array<QueuedScript> _queuedScripts;
+ Common::List<Animation *> _anims;
+ Common::List<Pipe *> _pipes;
+
+ void onMouseDown(const Common::Point &pos);
+ void onMouseMove(const Common::Point &pos);
+ void onKeyDown(uint16 keyCode);
+ void setCursor(uint16 id, const Common::Point &offset);
+ void setCursorVisible(bool visible);
+
+ bool _mouseEnabled;
+ bool _mouseVisible;
+ Common::Point _lastMousePos;
+ const Button *_lastButton;
+ uint16 _mouseSpriteId;
+ Common::Point _mouseOffset;
+
+ Common::String getStringFromConfig(const Common::String &section, const Common::String &key);
+ Common::String getFilename(const Common::String &section, uint id);
+ Common::String mangleFilename(Common::String filename);
+ void loadLibrary(uint id);
+ void unloadLibrary(uint id);
+
+ bool hasResource(uint32 tag, uint16 id);
+ Common::SeekableReadStream *getResource(uint32 tag, uint16 id);
+
+ void runEvent(uint16 id, int16 param1, int16 param2, int16 param3);
+ int16 runScript(uint16 id, int16 param1, int16 param2, int16 param3);
+
+ int16 getArg(uint16 arg, uint16 type);
+ void setArg(uint16 arg, uint16 type, uint16 val);
+ void runScript(uint16 id);
+ int16 scriptFuncCall(uint16 id, int16 param1, int16 param2, int16 param3);
+
+ void playAnimation(uint16 animId, int16 param1, int16 param2, int16 param3);
+ void stopAnimation(Animation *anim, bool localOnly = false, bool pipesOnly = false);
+ void playWaveForAnim(uint16 id, uint16 priority, bool bufferingOnly);
+ void processAnimFrame();
+
+ bool spriteVisible(uint16 id, uint16 animId);
+ Sprite *addSprite(uint16 id, uint16 animId, uint16 zorder, const Common::Point &pos);
+ void removeSprite(uint16 id, uint16 animId);
+ const Sprite *getSpriteAtPos(const Common::Point &pos);
+ const Button *getButtonFor(const Sprite *sprite, const Common::Point &pos);
+
+ void dirtySprite(const Sprite &sprite);
+ void redraw();
+ void loadCTBL(uint16 id, uint fadePercent);
+ void setBackground(uint16 id);
+ void decompressBitmap(uint16 type, Common::SeekableReadStream *stream, byte *buffer, uint32 size, uint width, uint height);
+ bool initSprite(Sprite &sprite);
+ Common::SeekableReadStream *getStreamForSprite(uint16 id);
+ void drawSprite(const Sprite &sprite);
+};
+
+} // End of namespace Composer
+
+#endif
diff --git a/engines/composer/detection.cpp b/engines/composer/detection.cpp
new file mode 100644
index 0000000000..8c97b6c4db
--- /dev/null
+++ b/engines/composer/detection.cpp
@@ -0,0 +1,233 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "base/plugins.h"
+#include "engines/advancedDetector.h"
+
+#include "composer/composer.h"
+
+namespace Composer {
+
+struct ComposerGameDescription {
+ ADGameDescription desc;
+
+ int gameType;
+};
+
+int ComposerEngine::getGameType() const {
+ return _gameDescription->gameType;
+}
+
+const char *ComposerEngine::getGameId() const {
+ return _gameDescription->desc.gameid;
+}
+
+uint32 ComposerEngine::getFeatures() const {
+ return _gameDescription->desc.flags;
+}
+
+Common::Language ComposerEngine::getLanguage() const {
+ return _gameDescription->desc.language;
+}
+
+}
+
+static const PlainGameDescriptor composerGames[] = {
+ {"composer", "Composer Game"},
+ {"darby", "Darby the Dragon"},
+ {"gregory", "Gregory and the Hot Air Balloon"},
+ {"liam", "Magic Tales: Liam Finds a Story"},
+ {"princess", "The Princess and the Crab"},
+ {"sleepingcub", "Sleeping Cub's Test of Courage"},
+ {0, 0}
+};
+
+namespace Composer {
+
+using Common::GUIO_NONE;
+
+static const ComposerGameDescription gameDescriptions[] = {
+ // from Liam Finds a Story CD
+ {
+ {
+ "magictales",
+ "Magic Tales Demo: Baby Yaga, Samurai, Imo",
+ AD_ENTRY1("book.ini", "dbc98c566f4ac61b544443524585dccb"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_USEEXTRAASTITLE,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV1
+ },
+
+ {
+ {
+ "liam",
+ 0,
+ AD_ENTRY1("install.inf", "320d2f1d4f8dd96947676ae25d6688c6"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ // from Liam Finds a Story CD
+ {
+ {
+ "magictales",
+ "Magic Tales Demo: Sleeping Cub, Princess & Crab",
+ AD_ENTRY1("book.ini", "3dede2522bb0886c95667b082987a87f"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_USEEXTRAASTITLE,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ {
+ {
+ "darby",
+ 0,
+ AD_ENTRY1("install.inf", "e83cc20ee18a2e138da1aadfc640dff2"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ { // Provided by Strangerke, "CD-Rom 100% Malin" Pack
+ {
+ "darby",
+ 0,
+ AD_ENTRY1("book.ini", "285308372f7dddff2ca5a25c9192cf5c"),
+ Common::FR_FRA,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ {
+ {
+ "gregory",
+ 0,
+ AD_ENTRY1("install.inf", "b7e9d6f7949d412dad0a183375069844"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ { // Provided by Strangerke, "CD-Rom 100% Malin" Pack
+ {
+ "gregory",
+ 0,
+ AD_ENTRY1("book.ini", "e54fc5c00de5f94e908a969e445af5d0"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ {
+ {
+ "princess",
+ 0,
+ AD_ENTRY1s("install.inf", "f1cf45db3c4c54a0d2d89d359af8f334", 244),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ {
+ {
+ "sleepingcub",
+ 0,
+ AD_ENTRY1s("install.inf", "1092e753b8692463f41b8c0b1931398e", 251),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_ComposerV2
+ },
+
+ { AD_TABLE_END_MARKER, 0 }
+};
+
+} // End of namespace Composer
+
+using namespace Composer;
+
+class ComposerMetaEngine : public AdvancedMetaEngine {
+public:
+ ComposerMetaEngine() : AdvancedMetaEngine(Composer::gameDescriptions, sizeof(Composer::ComposerGameDescription), composerGames) {
+ _singleid = "composer";
+ }
+
+ virtual const char *getName() const {
+ return "Magic Composer Engine";
+ }
+
+ virtual const char *getOriginalCopyright() const {
+ return "Copyright (C) 1995-1999 Animation Magic";
+ }
+
+ virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const;
+ virtual bool hasFeature(MetaEngineFeature f) const;
+};
+
+bool ComposerMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
+ const Composer::ComposerGameDescription *gd = (const Composer::ComposerGameDescription *)desc;
+ if (gd) {
+ *engine = new Composer::ComposerEngine(syst, gd);
+ }
+ return gd != 0;
+}
+
+bool ComposerMetaEngine::hasFeature(MetaEngineFeature f) const {
+ return false;
+}
+
+bool Composer::ComposerEngine::hasFeature(EngineFeature f) const {
+ return (f == kSupportsRTL);
+}
+
+#if PLUGIN_ENABLED_DYNAMIC(COMPOSER)
+REGISTER_PLUGIN_DYNAMIC(COMPOSER, PLUGIN_TYPE_ENGINE, ComposerMetaEngine);
+#else
+REGISTER_PLUGIN_STATIC(COMPOSER, PLUGIN_TYPE_ENGINE, ComposerMetaEngine);
+#endif
diff --git a/engines/composer/graphics.cpp b/engines/composer/graphics.cpp
new file mode 100644
index 0000000000..0768a86e7a
--- /dev/null
+++ b/engines/composer/graphics.cpp
@@ -0,0 +1,774 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+#include "common/scummsys.h"
+
+#include "graphics/palette.h"
+
+#include "audio/audiostream.h"
+#include "audio/decoders/raw.h"
+
+#include "composer/composer.h"
+#include "composer/graphics.h"
+#include "composer/resource.h"
+
+namespace Composer {
+
+bool Sprite::contains(const Common::Point &pos) const {
+ Common::Point adjustedPos = pos - _pos;
+
+ if (adjustedPos.x < 0 || adjustedPos.x >= _surface.w)
+ return false;
+ if (adjustedPos.y < 0 || adjustedPos.y >= _surface.h)
+ return false;
+ byte *pixels = (byte *)_surface.pixels;
+ return (pixels[(_surface.h - adjustedPos.y - 1) * _surface.w + adjustedPos.x] != 0);
+}
+
+enum {
+ kAnimOpEvent = 1,
+ kAnimOpPlayWave = 2,
+ kAnimOpPlayAnim = 3,
+ kAnimOpDrawSprite = 4
+};
+
+Animation::Animation(Common::SeekableReadStream *stream, uint16 id, Common::Point basePos, uint32 eventParam)
+ : _stream(stream), _id(id), _basePos(basePos), _eventParam(eventParam) {
+ uint32 size = _stream->readUint32LE();
+ _state = _stream->readUint32LE() + 1;
+
+ // probably total size?
+ uint32 unknown = _stream->readUint32LE();
+
+ debug(8, "anim: size %d, state %08x, unknown %08x", size, _state, unknown);
+
+ for (uint i = 0; i < size; i++) {
+ AnimationEntry entry;
+ entry.op = _stream->readUint16LE();
+ entry.priority = _stream->readUint16LE();
+ entry.state = _stream->readUint16LE();
+ entry.counter = 0;
+ entry.prevValue = 0;
+ debug(8, "anim entry: %04x, %04x, %04x", entry.op, entry.priority, entry.state);
+ _entries.push_back(entry);
+ }
+
+ _offset = _stream->pos();
+}
+
+Animation::~Animation() {
+ delete _stream;
+}
+
+void Animation::seekToCurrPos() {
+ _stream->seek(_offset, SEEK_SET);
+}
+
+void ComposerEngine::playAnimation(uint16 animId, int16 x, int16 y, int16 eventParam) {
+ // First, we check if this animation is already playing,
+ // and if it is, we sabotage that running one first.
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ Animation *anim = *i;
+ if (anim->_id != animId)
+ continue;
+
+ stopAnimation(*i);
+ }
+
+ Common::SeekableReadStream *stream = NULL;
+ Pipe *newPipe = NULL;
+
+ // First, check the existing pipes.
+ for (Common::List<Pipe *>::iterator j = _pipes.begin(); j != _pipes.end(); j++) {
+ Pipe *pipe = *j;
+ if (!pipe->hasResource(ID_ANIM, animId))
+ continue;
+ stream = pipe->getResource(ID_ANIM, animId, false);
+ break;
+ }
+
+ // If we didn't find it, try the libraries.
+ if (!stream) {
+ if (!hasResource(ID_ANIM, animId)) {
+ warning("ignoring attempt to play invalid anim %d", animId);
+ return;
+ }
+ stream = getResource(ID_ANIM, animId);
+
+ uint32 type = 0;
+ for (Common::List<Library>::iterator i = _libraries.begin(); i != _libraries.end(); i++)
+ if (i->_archive->hasResource(ID_ANIM, animId)) {
+ type = i->_archive->getResourceFlags(ID_ANIM, animId);
+ break;
+ }
+
+ // If the resource is a pipe itself, then load the pipe
+ // and then fish the requested animation out of it.
+ if (type != 1) {
+ newPipe = new Pipe(stream);
+ _pipes.push_front(newPipe);
+ stream = newPipe->getResource(ID_ANIM, animId, false);
+ }
+ }
+
+ Animation *anim = new Animation(stream, animId, Common::Point(x, y), eventParam);
+ _anims.push_back(anim);
+ runEvent(kEventAnimStarted, animId, eventParam, 0);
+ if (newPipe)
+ newPipe->_anim = anim;
+}
+
+void ComposerEngine::stopAnimation(Animation *anim, bool localOnly, bool pipesOnly) {
+ // disable the animation
+ anim->_state = 0;
+
+ // stop any animations it may have spawned
+ for (uint j = 0; j < anim->_entries.size(); j++) {
+ AnimationEntry &entry = anim->_entries[j];
+ if (!entry.prevValue)
+ continue;
+ if (localOnly) {
+ if (pipesOnly)
+ continue;
+ if (entry.op == kAnimOpDrawSprite) {
+ removeSprite(entry.prevValue, anim->_id);
+ } else if (entry.op == kAnimOpPlayWave) {
+ if (_currSoundPriority >= entry.priority) {
+ _mixer->stopAll();
+ _audioStream = NULL;
+ }
+ }
+ } else {
+ if (entry.op != kAnimOpPlayAnim)
+ continue;
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ if ((*i)->_id == entry.prevValue)
+ stopAnimation(*i);
+ }
+ }
+ }
+
+ // kill any pipe owned by the animation
+ for (Common::List<Pipe *>::iterator j = _pipes.begin(); j != _pipes.end(); j++) {
+ Pipe *pipe = *j;
+ if (pipe->_anim != anim)
+ continue;
+ j = _pipes.reverse_erase(j);
+ delete pipe;
+ break;
+ }
+}
+
+void ComposerEngine::playWaveForAnim(uint16 id, uint16 priority, bool bufferingOnly) {
+ if (_audioStream && _audioStream->numQueuedStreams() != 0) {
+ if (_currSoundPriority < priority)
+ return;
+ if (_currSoundPriority > priority) {
+ _mixer->stopAll();
+ _audioStream = NULL;
+ }
+ }
+ Common::SeekableReadStream *stream = NULL;
+ if (!bufferingOnly && hasResource(ID_WAVE, id)) {
+ stream = getResource(ID_WAVE, id);
+ } else {
+ for (Common::List<Pipe *>::iterator k = _pipes.begin(); k != _pipes.end(); k++) {
+ Pipe *pipe = *k;
+ if (!pipe->hasResource(ID_WAVE, id))
+ continue;
+ stream = pipe->getResource(ID_WAVE, id, true);
+ break;
+ }
+ }
+ if (!stream)
+ return;
+ // FIXME: non-pipe buffers have fixed wav header (data at +44, size at +40)
+ byte *buffer = (byte *)malloc(stream->size());
+ stream->read(buffer, stream->size());
+ if (!_audioStream)
+ _audioStream = Audio::makeQueuingAudioStream(22050, false);
+ _audioStream->queueBuffer(buffer, stream->size(), DisposeAfterUse::YES, Audio::FLAG_UNSIGNED);
+ _currSoundPriority = priority;
+ delete stream;
+ if (!_mixer->isSoundHandleActive(_soundHandle))
+ _mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, _audioStream);
+}
+
+void ComposerEngine::processAnimFrame() {
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ Animation *anim = *i;
+
+ anim->seekToCurrPos();
+
+ if (anim->_state <= 1) {
+ bool normalEnd = (anim->_state == 1);
+ if (normalEnd) {
+ runEvent(kEventAnimDone, anim->_id, anim->_eventParam, 0);
+ }
+ stopAnimation(anim, true, normalEnd);
+ delete anim;
+ i = _anims.reverse_erase(i);
+
+ continue;
+ }
+
+ for (uint j = 0; j < anim->_entries.size(); j++) {
+ AnimationEntry &entry = anim->_entries[j];
+ if (entry.op != kAnimOpEvent)
+ break;
+ if (entry.counter) {
+ entry.counter--;
+ } else {
+ if ((anim->_state > 1) && (anim->_stream->pos() + 2 > anim->_stream->size())) {
+ warning("anim with id %d ended too soon", anim->_id);
+ anim->_state = 0;
+ break;
+ }
+
+ uint16 event = anim->_stream->readUint16LE();
+ anim->_offset += 2;
+ if (event == 0xffff) {
+ entry.counter = anim->_stream->readUint16LE() - 1;
+ anim->_offset += 2;
+ } else {
+ debug(4, "anim: event %d", event);
+ runEvent(event, anim->_id, 0, 0);
+ }
+ }
+ }
+ }
+
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ Animation *anim = *i;
+
+ // did the anim get disabled?
+ if (anim->_state == 0) {
+ stopAnimation(anim, true, false);
+ delete anim;
+ i = _anims.reverse_erase(i);
+ continue;
+ }
+
+ anim->_state--;
+
+ bool foundWait = false;
+ for (uint j = 0; j < anim->_entries.size(); j++) {
+ AnimationEntry &entry = anim->_entries[j];
+
+ // only skip these at the start
+ if (!foundWait && (entry.op == kAnimOpEvent))
+ continue;
+ foundWait = true;
+
+ if (entry.counter) {
+ entry.counter--;
+ if ((entry.op == kAnimOpPlayWave) && entry.prevValue) {
+ debug(4, "anim: continue play wave %d", entry.prevValue);
+ playWaveForAnim(entry.prevValue, entry.priority, true);
+ }
+ } else {
+ anim->seekToCurrPos();
+ if ((anim->_state > 1) && (anim->_stream->pos() + 2 > anim->_stream->size())) {
+ warning("anim with id %d ended too soon", anim->_id);
+ anim->_state = 0;
+ break;
+ }
+
+ uint16 data = anim->_stream->readUint16LE();
+ anim->_offset += 2;
+ if (data == 0xffff) {
+ entry.counter = anim->_stream->readUint16LE() - 1;
+ anim->_offset += 2;
+ } else {
+ switch (entry.op) {
+ case kAnimOpEvent:
+ debug(4, "anim: event %d", data);
+ runEvent(data, anim->_id, 0, 0);
+ break;
+ case kAnimOpPlayWave:
+ debug(4, "anim: play wave %d", data);
+ playWaveForAnim(data, entry.priority, false);
+ break;
+ case kAnimOpPlayAnim:
+ debug(4, "anim: play anim %d", data);
+ playAnimation(data, anim->_basePos.x, anim->_basePos.y, 1);
+ break;
+ case kAnimOpDrawSprite:
+ if (!data || (entry.prevValue && (data != entry.prevValue))) {
+ debug(4, "anim: erase sprite %d", entry.prevValue);
+ removeSprite(entry.prevValue, anim->_id);
+ }
+ if (data) {
+ int16 x = anim->_stream->readSint16LE();
+ int16 y = anim->_stream->readSint16LE();
+ Common::Point pos(x, y);
+ anim->_offset += 4;
+ uint16 animId = anim->_id;
+ if (anim->_state == entry.state)
+ animId = 0;
+ debug(4, "anim: draw sprite %d at (relative) %d,%d", data, x, y);
+ bool wasVisible = spriteVisible(data, animId);
+ addSprite(data, animId, entry.priority, anim->_basePos + pos);
+ if (wasVisible) {
+ // make sure modified sprite isn't removed by another entry
+ for (uint k = 0; k < anim->_entries.size(); k++) {
+ if (anim->_entries[k].op != kAnimOpDrawSprite)
+ continue;
+ if (anim->_entries[k].prevValue == data)
+ anim->_entries[k].prevValue = 1;
+ }
+ }
+ }
+ break;
+ default:
+ warning("unknown anim op %d", entry.op);
+ }
+
+ entry.prevValue = data;
+ }
+ }
+ }
+ }
+
+ for (Common::List<Pipe *>::iterator j = _pipes.begin(); j != _pipes.end(); j++) {
+ Pipe *pipe = *j;
+ pipe->nextFrame();
+ }
+}
+
+bool ComposerEngine::spriteVisible(uint16 id, uint16 animId) {
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ if (i->_id != id)
+ continue;
+ if (i->_animId && animId && (i->_animId != animId))
+ continue;
+ return true;
+ }
+
+ return false;
+}
+
+Sprite *ComposerEngine::addSprite(uint16 id, uint16 animId, uint16 zorder, const Common::Point &pos) {
+ Sprite sprite;
+ bool foundSprite = false;
+
+ // re-use old sprite, if any (the BMAP for this id might well have
+ // changed in the meantime, but the scripts depend on that!)
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ if (i->_id != id)
+ continue;
+ if (i->_animId && animId && (i->_animId != animId))
+ continue;
+
+ dirtySprite(*i);
+
+ // if the zordering is identical, modify it in-place
+ if (i->_zorder == zorder) {
+ i->_animId = animId;
+ i->_pos = pos;
+ dirtySprite(*i);
+ return &(*i);
+ }
+
+ // otherwise, take a copy and remove it from the list
+ sprite = *i;
+ foundSprite = true;
+ _sprites.erase(i);
+ break;
+ }
+
+ sprite._animId = animId;
+ sprite._zorder = zorder;
+ sprite._pos = pos;
+
+ if (!foundSprite) {
+ sprite._id = id;
+ if (!initSprite(sprite)) {
+ debug(1, "ignoring addSprite on invalid sprite %d", id);
+ return NULL;
+ }
+ }
+
+ dirtySprite(sprite);
+
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ if (sprite._zorder <= i->_zorder)
+ continue;
+ // insert *before* this sprite
+ _sprites.insert(i, sprite);
+ --i;
+ return &(*i);
+ }
+ _sprites.push_back(sprite);
+ return &_sprites.back();
+}
+
+void ComposerEngine::removeSprite(uint16 id, uint16 animId) {
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ if (!i->_id || (id && i->_id != id))
+ continue;
+ if (i->_animId && animId && (i->_animId != animId))
+ continue;
+ dirtySprite(*i);
+ i->_surface.free();
+ i = _sprites.reverse_erase(i);
+ if (id)
+ break;
+ }
+}
+
+const Sprite *ComposerEngine::getSpriteAtPos(const Common::Point &pos) {
+ for (Common::List<Sprite>::iterator i = _sprites.reverse_begin(); i != _sprites.end(); --i) {
+ // avoid highest-level objects (e.g. the cursor)
+ if (!i->_zorder)
+ continue;
+
+ if (i->contains(pos))
+ return &(*i);
+ }
+
+ return NULL;
+}
+
+void ComposerEngine::dirtySprite(const Sprite &sprite) {
+ Common::Rect rect(sprite._pos.x, sprite._pos.y, sprite._pos.x + sprite._surface.w, sprite._pos.y + sprite._surface.h);
+ rect.clip(_surface.w, _surface.h);
+ if (rect.isEmpty())
+ return;
+
+ for (uint i = 0; i < _dirtyRects.size(); i++) {
+ if (!_dirtyRects[i].intersects(rect))
+ continue;
+ _dirtyRects[i].extend(rect);
+ return;
+ }
+
+ _dirtyRects.push_back(rect);
+}
+
+void ComposerEngine::redraw() {
+ if (!_needsUpdate && _dirtyRects.empty())
+ return;
+
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ Common::Rect rect(i->_pos.x, i->_pos.y, i->_pos.x + i->_surface.w, i->_pos.y + i->_surface.h);
+ bool intersects = false;
+ for (uint j = 0; j < _dirtyRects.size(); j++) {
+ if (!_dirtyRects[j].intersects(rect))
+ continue;
+ intersects = true;
+ break;
+ }
+ if (!intersects)
+ continue;
+ drawSprite(*i);
+ }
+
+ for (uint i = 0; i < _dirtyRects.size(); i++) {
+ const Common::Rect &rect = _dirtyRects[i];
+ byte *pixels = (byte *)_surface.pixels + (rect.top * _surface.pitch) + rect.left;
+ _system->copyRectToScreen(pixels, _surface.pitch, rect.left, rect.top, rect.width(), rect.height());
+ }
+ _system->updateScreen();
+
+ _needsUpdate = false;
+ _dirtyRects.clear();
+}
+
+void ComposerEngine::loadCTBL(uint16 id, uint fadePercent) {
+ Common::SeekableReadStream *stream = getResource(ID_CTBL, id);
+
+ uint16 numEntries = stream->readUint16LE();
+ debug(1, "CTBL: %d entries", numEntries);
+
+ assert(numEntries <= 256);
+ assert(stream->size() == 2 + (numEntries * 3));
+
+ byte buffer[256 * 3];
+ stream->read(buffer, numEntries * 3);
+ delete stream;
+
+ for (uint16 i = 0; i < numEntries * 3; i++)
+ buffer[i] = ((unsigned int)buffer[i] * fadePercent) / 100;
+
+ _system->getPaletteManager()->setPalette(buffer, 0, numEntries);
+ _needsUpdate = true;
+}
+
+void ComposerEngine::setBackground(uint16 id) {
+ for (Common::List<Sprite>::iterator i = _sprites.begin(); i != _sprites.end(); i++) {
+ if (i->_id)
+ continue;
+ dirtySprite(*i);
+ i->_surface.free();
+ i->_id = id;
+ if (!initSprite(*i))
+ error("failed to set background %d", id);
+ dirtySprite(*i);
+ i->_id = 0;
+ return;
+ }
+
+ Sprite *background = addSprite(id, 0, 0xffff, Common::Point());
+ if (background)
+ background->_id = 0;
+}
+
+static void decompressSLWM(byte *buffer, Common::SeekableReadStream *stream) {
+ uint bitsLeft = 0;
+ uint16 lastBits;
+ byte currBit;
+ while (true) {
+ if (bitsLeft == 0) { bitsLeft = 16; lastBits = stream->readUint16LE(); }
+ currBit = (lastBits & 1); lastBits >>= 1; bitsLeft--;
+
+ if (currBit) {
+ // single byte
+ *buffer++ = stream->readByte();
+ continue;
+ }
+
+ if (bitsLeft == 0) { bitsLeft = 16; lastBits = stream->readUint16LE(); }
+ currBit = (lastBits & 1); lastBits >>= 1; bitsLeft--;
+
+ uint start;
+ uint count;
+ if (currBit) {
+ uint orMask = stream->readByte();
+ uint in = stream->readByte();
+ count = in & 7;
+ start = ((in & ~7) << 5) | orMask;
+ if (!count) {
+ count = stream->readByte();
+ if (!count)
+ break;
+ count -= 2;
+ }
+ } else {
+ // count encoded in the next two bits
+ count = 0;
+
+ if (bitsLeft == 0) { bitsLeft = 16; lastBits = stream->readUint16LE(); }
+ currBit = (lastBits & 1); lastBits >>= 1; bitsLeft--;
+
+ count = (count << 1) | currBit;
+
+ if (bitsLeft == 0) { bitsLeft = 16; lastBits = stream->readUint16LE(); }
+ currBit = (lastBits & 1); lastBits >>= 1; bitsLeft--;
+
+ count = (count << 1) | currBit;
+
+ start = stream->readByte();
+ }
+
+ count += 2;
+ start++;
+ for (uint i = 0; i < count; i++) {
+ *buffer = *(buffer - start);
+ buffer++;
+ }
+ }
+}
+
+// bitmap compression types
+enum {
+ kBitmapUncompressed = 0,
+ kBitmapSpp32 = 1,
+ kBitmapSLW8 = 3,
+ kBitmapRLESLWM = 4,
+ kBitmapSLWM = 5
+};
+
+void ComposerEngine::decompressBitmap(uint16 type, Common::SeekableReadStream *stream, byte *buffer, uint32 size, uint width, uint height) {
+ uint outSize = width * height;
+
+ switch (type) {
+ case kBitmapUncompressed:
+ if (stream->size() - (uint)stream->pos() != size)
+ error("kBitmapUncompressed stream had %d bytes left, supposed to be %d",
+ stream->size() - (uint)stream->pos(), size);
+ if (size != outSize)
+ error("kBitmapUncompressed size %d doesn't match required size %d",
+ size, outSize);
+ stream->read(buffer, size);
+ break;
+ case kBitmapSpp32:
+ byte lookup[16];
+ stream->read(lookup, 16);
+ while (size--) {
+ uint in = stream->readByte();
+ byte lowBits = in & 0xF;
+ byte highBits = (in & 0xF0) >> 4;
+ if (highBits == 0xf) {
+ // run of a single color
+ uint count = (uint)stream->readByte() + 3;
+ size--;
+ if (outSize < count)
+ error("kBitmapSpp32 only needed %d bytes, but got run of %d",
+ outSize, count);
+ outSize -= count;
+ memset(buffer, lookup[lowBits], count);
+ buffer += count;
+ } else {
+ // two pixels
+ if (!outSize)
+ error("kBitmapSpp32 had too many pixels");
+ *buffer++ = lookup[highBits];
+ outSize--;
+ if (outSize) {
+ *buffer++ = lookup[lowBits];
+ outSize--;
+ }
+ }
+ }
+ break;
+ case kBitmapSLW8:
+ while (size--) {
+ byte val = stream->readByte();
+ if (val != 0xff) {
+ *buffer++ = val;
+ continue;
+ }
+ uint count = stream->readByte();
+ size--;
+
+ uint16 step;
+ if (!(count & 0x80)) {
+ step = stream->readByte();
+ size--;
+ } else {
+ count = (count ^ 0x80);
+ step = stream->readUint16LE();
+ size -= 2;
+ }
+ count += 4;
+ // this is often overlapping (for repeating patterns)
+ for (uint i = 0; i < count; i++) {
+ *buffer = *(buffer - step - 1);
+ buffer++;
+ }
+ }
+ break;
+ case kBitmapRLESLWM:
+ {
+ uint32 bufSize = stream->readUint32LE();
+ byte *tempBuf = new byte[bufSize];
+ decompressSLWM(tempBuf, stream);
+
+ uint instrPos = tempBuf[0] + 1;
+ instrPos += READ_LE_UINT16(tempBuf + instrPos) + 2;
+ byte *instr = tempBuf + instrPos;
+
+ uint line = 0;
+ while (line++ < height) {
+ uint pixels = 0;
+
+ while (pixels < width) {
+ byte data = *instr++;
+ byte color = tempBuf[(data & 0x7F) + 1];
+ if (!(data & 0x80)) {
+ *buffer++ = color;
+ pixels++;
+ } else {
+ byte count = *instr++;
+ if (!count) {
+ while (pixels++ < width)
+ *buffer++ = color;
+ break;
+ }
+ for (uint i = 0; i < count; i++) {
+ *buffer++ = color;
+ pixels++;
+ }
+ }
+ }
+ }
+ delete[] tempBuf;
+ }
+ break;
+ case kBitmapSLWM:
+ decompressSLWM(buffer, stream);
+ break;
+ default:
+ error("decompressBitmap can't handle type %d", type);
+ }
+}
+
+Common::SeekableReadStream *ComposerEngine::getStreamForSprite(uint16 id) {
+ for (Common::List<Pipe *>::iterator k = _pipes.begin(); k != _pipes.end(); k++) {
+ Pipe *pipe = *k;
+ if (!pipe->hasResource(ID_BMAP, id))
+ continue;
+ return pipe->getResource(ID_BMAP, id, true);
+ }
+ if (hasResource(ID_BMAP, id))
+ return getResource(ID_BMAP, id);
+ return NULL;
+}
+
+bool ComposerEngine::initSprite(Sprite &sprite) {
+ Common::SeekableReadStream *stream = getStreamForSprite(sprite._id);
+ if (!stream)
+ return false;
+
+ uint16 type = stream->readUint16LE();
+ int16 height = stream->readSint16LE();
+ int16 width = stream->readSint16LE();
+ uint32 size = stream->readUint32LE();
+ debug(1, "loading BMAP: type %d, width %d, height %d, size %d", type, width, height, size);
+
+ if (width > 0 && height > 0) {
+ sprite._surface.create(width, height, Graphics::PixelFormat::createFormatCLUT8());
+ decompressBitmap(type, stream, (byte *)sprite._surface.pixels, size, width, height);
+ } else {
+ // there are some sprites (e.g. a -998x-998 one in Gregory's title screen)
+ // which have an invalid size, but the original engine doesn't notice for
+ // RLE sprites since the width/height is ignored until the actual draw
+ if (type != kBitmapRLESLWM)
+ error("sprite (type %d) had invalid size %dx%d", type, width, height);
+ delete stream;
+ return false;
+ }
+ delete stream;
+
+ return true;
+}
+
+void ComposerEngine::drawSprite(const Sprite &sprite) {
+ int x = sprite._pos.x;
+ int y = sprite._pos.y;
+
+ // incoming data is BMP-style (bottom-up), so flip it
+ byte *pixels = (byte *)_surface.pixels;
+ for (int j = 0; j < sprite._surface.h; j++) {
+ if (j + y < 0)
+ continue;
+ if (j + y >= _surface.h)
+ break;
+ byte *in = (byte *)sprite._surface.pixels + (sprite._surface.h - j - 1) * sprite._surface.w;
+ byte *out = pixels + ((j + y) * _surface.w) + x;
+ for (int i = 0; i < sprite._surface.w; i++)
+ if ((x + i >= 0) && (x + i < _surface.w) && in[i])
+ out[i] = in[i];
+ }
+}
+
+} // End of namespace Composer
diff --git a/engines/composer/graphics.h b/engines/composer/graphics.h
new file mode 100644
index 0000000000..e9d82920ba
--- /dev/null
+++ b/engines/composer/graphics.h
@@ -0,0 +1,71 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef COMPOSER_GRAPHICS_H
+#define COMPOSER_GRAPHICS_H
+
+#include "common/rect.h"
+#include "graphics/surface.h"
+
+namespace Composer {
+
+class ComposerEngine;
+
+struct Sprite {
+ uint16 _id;
+ uint16 _animId;
+ uint16 _zorder;
+ Common::Point _pos;
+ Graphics::Surface _surface;
+
+ bool contains(const Common::Point &pos) const;
+};
+
+struct AnimationEntry {
+ uint32 state;
+ uint16 op;
+ uint16 priority;
+ uint16 counter;
+ uint16 prevValue;
+};
+
+struct Animation {
+ Animation(Common::SeekableReadStream *stream, uint16 id, Common::Point basePos, uint32 eventParam);
+ ~Animation();
+
+ void seekToCurrPos();
+
+ uint16 _id;
+ Common::Point _basePos;
+ uint32 _eventParam;
+
+ uint32 _state;
+
+ Common::Array<AnimationEntry> _entries;
+
+ uint32 _offset;
+ Common::SeekableReadStream *_stream;
+};
+
+} // End of namespace Composer
+
+#endif
diff --git a/engines/composer/module.mk b/engines/composer/module.mk
new file mode 100644
index 0000000000..8bfaf932e8
--- /dev/null
+++ b/engines/composer/module.mk
@@ -0,0 +1,16 @@
+MODULE := engines/composer
+
+MODULE_OBJS = \
+ composer.o \
+ detection.o \
+ graphics.o \
+ resource.o \
+ scripting.o
+
+# This module can be built as a plugin
+ifeq ($(ENABLE_COMPOSER), DYNAMIC_PLUGIN)
+PLUGIN := 1
+endif
+
+# Include common rules
+include $(srcdir)/rules.mk
diff --git a/engines/composer/resource.cpp b/engines/composer/resource.cpp
new file mode 100644
index 0000000000..b40bdb379b
--- /dev/null
+++ b/engines/composer/resource.cpp
@@ -0,0 +1,337 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "composer/resource.h"
+
+#include "common/debug.h"
+#include "common/memstream.h"
+#include "common/substream.h"
+#include "common/util.h"
+#include "common/textconsole.h"
+
+namespace Composer {
+
+// Base Archive code
+// (copied from clone2727's mohawk code)
+
+Archive::Archive() {
+ _stream = 0;
+}
+
+Archive::~Archive() {
+ close();
+}
+
+bool Archive::openFile(const Common::String &fileName) {
+ Common::File *file = new Common::File();
+
+ if (!file->open(fileName)) {
+ delete file;
+ return false;
+ }
+
+ if (!openStream(file)) {
+ close();
+ return false;
+ }
+
+ return true;
+}
+
+void Archive::close() {
+ _types.clear();
+ delete _stream; _stream = 0;
+}
+
+bool Archive::hasResource(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ return false;
+
+ return _types[tag].contains(id);
+}
+
+bool Archive::hasResource(uint32 tag, const Common::String &resName) const {
+ if (!_types.contains(tag) || resName.empty())
+ return false;
+
+ const ResourceMap &resMap = _types[tag];
+
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ if (it->_value.name.matchString(resName))
+ return true;
+
+ return false;
+}
+
+Common::SeekableReadStream *Archive::getResource(uint32 tag, uint16 id) {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const Resource &res = resMap[id];
+
+ return new Common::SeekableSubReadStream(_stream, res.offset, res.offset + res.size);
+}
+
+uint32 Archive::getResourceFlags(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const Resource &res = resMap[id];
+
+ return res.flags;
+}
+
+uint32 Archive::getOffset(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ return resMap[id].offset;
+}
+
+uint16 Archive::findResourceID(uint32 tag, const Common::String &resName) const {
+ if (!_types.contains(tag) || resName.empty())
+ return 0xFFFF;
+
+ const ResourceMap &resMap = _types[tag];
+
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ if (it->_value.name.matchString(resName))
+ return it->_key;
+
+ return 0xFFFF;
+}
+
+Common::String Archive::getName(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ return resMap[id].name;
+}
+
+Common::Array<uint32> Archive::getResourceTypeList() const {
+ Common::Array<uint32> typeList;
+
+ for (TypeMap::const_iterator it = _types.begin(); it != _types.end(); it++)
+ typeList.push_back(it->_key);
+
+ return typeList;
+}
+
+Common::Array<uint16> Archive::getResourceIDList(uint32 type) const {
+ Common::Array<uint16> idList;
+
+ if (!_types.contains(type))
+ return idList;
+
+ const ResourceMap &resMap = _types[type];
+
+ for (ResourceMap::const_iterator it = resMap.begin(); it != resMap.end(); it++)
+ idList.push_back(it->_key);
+
+ return idList;
+}
+
+// Composer Archive code
+
+bool ComposerArchive::openStream(Common::SeekableReadStream *stream) {
+ // Make sure no other file is open...
+ close();
+
+ bool newStyle = false;
+ uint32 headerSize = stream->readUint32LE();
+ if (headerSize == SWAP_CONSTANT_32(ID_LBRC)) {
+ // new-style file
+ newStyle = true;
+ headerSize = stream->readUint32LE();
+ uint32 zeros = stream->readUint32LE();
+ if (zeros != 0)
+ error("invalid LBRC header (%d instead of zeros)", zeros);
+ }
+
+ uint16 numResourceTypes = stream->readUint16LE();
+ if (newStyle) {
+ uint16 unknown = stream->readUint16LE();
+ debug(4, "skipping unknown %04x", unknown);
+ }
+
+ debug(4, "Reading LBRC resource table with %d entries", numResourceTypes);
+ for (uint i = 0; i < numResourceTypes; i++) {
+ uint32 tag = stream->readUint32BE();
+ uint32 tableOffset = stream->readUint32LE();
+ debug(4, "Type '%s' at offset %d", tag2str(tag), tableOffset);
+ // starting from the start of the resource table, which differs
+ // according to whether we have the 10 extra bytes for newStyle
+ if (newStyle)
+ tableOffset += 16;
+ else
+ tableOffset += 6;
+
+ ResourceMap &resMap = _types[tag];
+
+ uint32 oldPos = stream->pos();
+ stream->seek(tableOffset);
+
+ while (true) {
+ if (stream->eos())
+ error("LBRC file ran out of stream");
+
+ uint32 offset, size, id, flags;
+ if (newStyle) {
+ offset = stream->readUint32LE();
+ if (!offset)
+ break;
+ size = stream->readUint32LE();
+ id = stream->readUint16LE();
+ flags = stream->readUint16LE(); // set to 1 for preload, otherwise no preload
+ /*uint32 junk = */ stream->readUint32LE();
+ } else {
+ id = stream->readUint16LE();
+ if (!id)
+ break;
+ offset = stream->readUint32LE();
+ offset += headerSize;
+ size = stream->readUint32LE();
+ flags = stream->readUint16LE(); // FIXME
+
+ }
+
+ Resource &res = resMap[id];
+ res.offset = offset;
+ res.size = size;
+ res.flags = flags;
+ debug(4, "Id %d, offset %d, size %d, flags %08x", id, offset, size, flags);
+ }
+
+ stream->seek(oldPos);
+ }
+
+ _stream = stream;
+ return true;
+}
+
+Pipe::Pipe(Common::SeekableReadStream *stream) {
+ _offset = 0;
+ _stream = stream;
+ _anim = NULL;
+
+ nextFrame();
+}
+
+void Pipe::nextFrame() {
+ if (_offset == (uint)_stream->size())
+ return;
+
+ _stream->seek(_offset, SEEK_SET);
+
+ uint32 tagCount = _stream->readUint32LE();
+ _offset += 4;
+ for (uint i = 0; i < tagCount; i++) {
+ uint32 tag = _stream->readUint32BE();
+ uint32 count = _stream->readUint32LE();
+ _offset += 8;
+
+ ResourceMap &resMap = _types[tag];
+
+ _offset += (12 * count);
+ for (uint j = 0; j < count; j++) {
+ uint32 offset = _stream->readUint32LE();
+ uint32 size = _stream->readUint32LE();
+ uint16 id = _stream->readUint16LE();
+ uint32 unknown = _stream->readUint16LE(); // frame id?
+ debug(9, "pipe: %s/%d: offset %d, size %d, unknown %d", tag2str(tag), id, offset, size, unknown);
+
+ PipeResourceEntry entry;
+ entry.size = size;
+ entry.offset = _offset;
+ resMap[id].entries.push_back(entry);
+
+ _offset += size;
+ }
+ _stream->seek(_offset, SEEK_SET);
+ }
+}
+
+bool Pipe::hasResource(uint32 tag, uint16 id) const {
+ if (!_types.contains(tag))
+ return false;
+
+ return _types[tag].contains(id);
+}
+
+Common::SeekableReadStream *Pipe::getResource(uint32 tag, uint16 id, bool buffering) {
+ if (!_types.contains(tag))
+ error("Pipe does not contain '%s' %04x", tag2str(tag), id);
+
+ const ResourceMap &resMap = _types[tag];
+
+ if (!resMap.contains(id))
+ error("Archive does not contain '%s' %04x", tag2str(tag), id);
+
+ const PipeResource &res = resMap[id];
+
+ if (res.entries.size() == 1) {
+ Common::SeekableReadStream *stream = new Common::SeekableSubReadStream(_stream,
+ res.entries[0].offset, res.entries[0].offset + res.entries[0].size);
+ if (buffering)
+ _types[tag].erase(id);
+ return stream;
+ }
+
+ // If there are multiple entries in the pipe, we have to concaternate them together.
+
+ uint32 size = 0;
+ for (uint i = 0; i < res.entries.size(); i++)
+ size += res.entries[i].size;
+
+ byte *buffer = (byte *)malloc(size);
+ uint32 offset = 0;
+ for (uint i = 0; i < res.entries.size(); i++) {
+ _stream->seek(res.entries[i].offset, SEEK_SET);
+ _stream->read(buffer + offset, res.entries[i].size);
+ offset += res.entries[i].size;
+ }
+ if (buffering)
+ _types[tag].erase(id);
+ return new Common::MemoryReadStream(buffer, size, DisposeAfterUse::YES);
+}
+
+} // End of namespace Composer
diff --git a/engines/composer/resource.h b/engines/composer/resource.h
new file mode 100644
index 0000000000..9408cdffb8
--- /dev/null
+++ b/engines/composer/resource.h
@@ -0,0 +1,124 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/scummsys.h"
+#include "common/endian.h"
+#include "common/hashmap.h"
+#include "common/file.h"
+#include "common/str.h"
+
+#ifndef COMPOSER_RESOURCE_H
+#define COMPOSER_RESOURCE_H
+
+namespace Composer {
+
+struct Animation;
+
+#define ID_LBRC MKTAG('L','B','R','C') // Main FourCC
+
+#define ID_ANIM MKTAG('A','N','I','M') // Animation
+#define ID_BMAP MKTAG('B','M','A','P') // Bitmap
+#define ID_BUTN MKTAG('B','U','T','N') // Button
+#define ID_CTBL MKTAG('C','T','B','L') // Color Table
+#define ID_EVNT MKTAG('E','V','N','T') // Event
+#define ID_PIPE MKTAG('P','I','P','E') // Pipe
+#define ID_SCRP MKTAG('S','C','R','P') // Script
+#define ID_VARI MKTAG('V','A','R','I') // Variables
+#define ID_WAVE MKTAG('W','A','V','E') // Wave
+
+class Archive {
+public:
+ Archive();
+ virtual ~Archive();
+
+ bool openFile(const Common::String &fileName);
+ virtual bool openStream(Common::SeekableReadStream *stream) = 0;
+ void close();
+
+ bool isOpen() const { return _stream != 0; }
+
+ bool hasResource(uint32 tag, uint16 id) const;
+ bool hasResource(uint32 tag, const Common::String &resName) const;
+ Common::SeekableReadStream *getResource(uint32 tag, uint16 id);
+ uint32 getResourceFlags(uint32 tag, uint16 id) const;
+ uint32 getOffset(uint32 tag, uint16 id) const;
+ uint16 findResourceID(uint32 tag, const Common::String &resName) const;
+ Common::String getName(uint32 tag, uint16 id) const;
+
+ Common::Array<uint32> getResourceTypeList() const;
+ Common::Array<uint16> getResourceIDList(uint32 type) const;
+
+protected:
+ Common::SeekableReadStream *_stream;
+
+ struct Resource {
+ uint32 offset;
+ uint32 size;
+ Common::String name;
+ uint32 flags;
+ };
+
+ typedef Common::HashMap<uint16, Resource> ResourceMap;
+ typedef Common::HashMap<uint32, ResourceMap> TypeMap;
+ TypeMap _types;
+};
+
+class ComposerArchive : public Archive {
+public:
+ ComposerArchive() : Archive() {}
+ ~ComposerArchive() {}
+
+ bool openStream(Common::SeekableReadStream *stream);
+};
+
+struct PipeResourceEntry {
+ uint32 size;
+ uint32 offset;
+};
+
+struct PipeResource {
+ Common::Array<PipeResourceEntry> entries;
+};
+
+class Pipe {
+public:
+ Pipe(Common::SeekableReadStream *stream);
+ void nextFrame();
+
+ Animation *_anim;
+
+ bool hasResource(uint32 tag, uint16 id) const;
+ Common::SeekableReadStream *getResource(uint32 tag, uint16 id, bool buffering);
+
+protected:
+ Common::SeekableReadStream *_stream;
+
+ typedef Common::HashMap<uint16, PipeResource> ResourceMap;
+ typedef Common::HashMap<uint32, ResourceMap> TypeMap;
+ TypeMap _types;
+
+ uint32 _offset;
+};
+
+} // End of namespace Composer
+
+#endif
diff --git a/engines/composer/scripting.cpp b/engines/composer/scripting.cpp
new file mode 100644
index 0000000000..d85bd524e0
--- /dev/null
+++ b/engines/composer/scripting.cpp
@@ -0,0 +1,729 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+#include "common/scummsys.h"
+#include "common/savefile.h"
+
+#include "composer/composer.h"
+#include "composer/graphics.h"
+#include "composer/resource.h"
+
+namespace Composer {
+
+// new script ops
+enum {
+ kOpPlusPlus = 0x1,
+ kOpMinusMinus = 0x2,
+ kOpAssign = 0x3,
+ kOpAdd = 0x4,
+ kOpSubtract = 0x5,
+ kOpMultiply = 0x6,
+ kOpDivide = 0x7,
+ kOpModulo = 0x8,
+ kOpMaybeAlsoAssign = 0x9,
+ kOpBooleanAssign = 0xA,
+ kOpNegate = 0xB,
+ kOpAnd = 0xC,
+ kOpOr = 0xD,
+ kOpXor = 0xE,
+ kOpNot = 0xF,
+ kOpSqrt = 0x10,
+ kOpRandom = 0x11,
+ kOpExecuteScript = 0x12,
+ kOpCallFunc = 0x13,
+ kOpBoolLessThanEq = 0x17,
+ kOpBoolLessThan = 0x16,
+ kOpBoolGreaterThanEq = 0x15,
+ kOpBoolGreaterThan = 0x14,
+ kOpBoolEqual = 0x18,
+ kOpBoolNotEqual = 0x19,
+ kOpSaveArgs = 0x1A,
+ kOpRestoreArgs = 0x1B,
+ kOpReturn = 0x20,
+ kOpLessThanEq = 0x22,
+ kOpLessThan = 0x21,
+ kOpGreaterThanEq = 0x24,
+ kOpGreaterThan = 0x23,
+ kOpEqual = 0x25,
+ kOpNotEqual = 0x26,
+ kOpJump = 0x80,
+ kOpJumpIfNot = 0x81,
+ kOpJumpIf = 0x82,
+ kOpJumpIfNotValue = 0x83,
+ kOpJumpIfValue = 0x84
+};
+
+enum {
+ kFuncPlayAnim = 35001,
+ kFuncStopAnim = 35002,
+ // (no 35003)
+ kFuncQueueScript = 35004,
+ kFuncDequeueScript = 35005,
+ kFuncSetCursor = 35006,
+ kFuncGetCursor = 35007,
+ kFuncShowCursor = 35008,
+ kFuncHideCursor = 35009,
+ // (no 35010)
+ kFuncActivateButton = 35011,
+ kFuncDeactivateButton = 35012,
+ kFuncNewPage = 35013,
+ kFuncLoadPage = 35014,
+ kFuncUnloadPage = 35015,
+ kFuncSetPalette = 35016,
+ kFuncSaveVars = 35017,
+ kFuncLoadVars = 35018,
+ kFuncQueueScriptOnce = 35019,
+ kFuncGetMousePos = 35020,
+ kFuncChangeBackground = 35021,
+ kFuncSetBackgroundColor = 35022,
+ kFuncClearSprites = 35023,
+ kFuncAddSprite = 35024,
+ kFuncRemoveSprite = 35025,
+ kFuncQuit = 35026,
+ kFuncSaveData = 35027,
+ kFuncLoadData = 35028,
+ kFuncGetSpriteSize = 35029
+};
+
+void ComposerEngine::runEvent(uint16 id, int16 param1, int16 param2, int16 param3) {
+ if (!hasResource(ID_EVNT, id))
+ return;
+
+ Common::SeekableReadStream *stream = getResource(ID_EVNT, id);
+ if (stream->size() != 2)
+ error("bad EVNT size %d", stream->size());
+ uint16 scriptId = stream->readUint16LE();
+ delete stream;
+
+ if (!scriptId)
+ return;
+
+ debug(2, "running event %d via script %d(%d, %d, %d)", id, scriptId, param1, param2, param3);
+
+ runScript(scriptId, param1, param2, param3);
+}
+
+int16 ComposerEngine::runScript(uint16 id, int16 param1, int16 param2, int16 param3) {
+ _vars[1] = param1;
+ _vars[2] = param2;
+ _vars[3] = param3;
+
+ runScript(id);
+
+ return _vars[0];
+}
+
+int16 ComposerEngine::getArg(uint16 arg, uint16 type) {
+ switch (type) {
+ case 0:
+ return (int16)arg;
+ case 1:
+ return (int16)_vars[arg];
+ case 2:
+ return (int16)_vars[_vars[arg]];
+ default:
+ error("invalid argument type %d (getting arg %d)", type, arg);
+ }
+}
+
+void ComposerEngine::setArg(uint16 arg, uint16 type, uint16 val) {
+ switch (type) {
+ case 1:
+ _vars[arg] = val;
+ break;
+ case 2:
+ _vars[_vars[arg]] = val;
+ break;
+ default:
+ error("invalid argument type %d (setting arg %d)", type, arg);
+ }
+
+}
+
+void ComposerEngine::runScript(uint16 id) {
+ if (!hasResource(ID_SCRP, id)) {
+ warning("ignoring attempt to run script %d, because it doesn't exist", id);
+ return;
+ }
+
+ uint stackBase = _stack.size();
+ _stack.resize(_stack.size() + 19);
+
+ Common::SeekableReadStream *stream = getResource(ID_SCRP, id);
+ if (stream->size() < 2)
+ error("SCRP was too small (%d)", stream->size());
+ uint16 size = stream->readUint16LE();
+ if (stream->size() < 2 + 2*size)
+ error("SCRP was too small (%d, but claimed %d entries)", stream->size(), size);
+ uint16 *script = new uint16[size];
+ for (uint i = 0; i < size; i++)
+ script[i] = stream->readUint16LE();
+ delete stream;
+
+ uint16 pos = 0;
+ bool lastResult = false;
+ while (pos < size) {
+ int16 val1, val2, val3;
+
+ byte op = (byte)script[pos];
+ uint numParams = (script[pos] & 0x300) >> 8; // 2 bits
+ if (pos + numParams >= size)
+ error("script ran out of content");
+ uint arg1 = (script[pos] & 0xc00) >> 10; // 2 bits
+ uint arg2 = (script[pos] & 0x3000) >> 12; // 2 bits
+ uint arg3 = (script[pos] & 0xC000) >> 14; // 2 bits
+ switch (op) {
+ case kOpPlusPlus:
+ if (numParams != 1)
+ error("kOpPlusPlus had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "[%d/%d]++ (now %d)", script[pos + 1], arg1, val1 + 1);
+ setArg(script[pos + 1], arg1, val1 + 1);
+ break;
+ case kOpMinusMinus:
+ if (numParams != 1)
+ error("kOpMinusMinus had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "[%d/%d]-- (now %d)", script[pos + 1], arg1, val1 - 1);
+ setArg(script[pos + 1], arg1, val1 - 1);
+ break;
+ case kOpAssign:
+ if (numParams != 2)
+ error("kOpAssign had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] = [%d/%d] (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, val2);
+ break;
+ case kOpAdd:
+ if (numParams != 3)
+ error("kOpAdd had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d + [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 + val3);
+ setArg(script[pos + 1], arg1, val2 + val3);
+ break;
+ case kOpSubtract:
+ if (numParams != 3)
+ error("kOpSubtract had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d - [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 - val3);
+ setArg(script[pos + 1], arg1, val2 - val3);
+ break;
+ case kOpMultiply:
+ if (numParams != 3)
+ error("kOpMultiply had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d * [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 * val3);
+ setArg(script[pos + 1], arg1, val2 * val3);
+ break;
+ case kOpDivide:
+ if (numParams != 3)
+ error("kOpDivide had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ if (val3 == 0)
+ error("script tried to divide by zero");
+ debug(9, "[%d/%d] = [%d/%d]=%d / [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 / val3);
+ setArg(script[pos + 1], arg1, val2 / val3);
+ break;
+ case kOpModulo:
+ if (numParams != 3)
+ error("kOpModulo had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ if (val3 == 0)
+ error("script tried to divide by zero (modulo)");
+ debug(9, "[%d/%d] = [%d/%d]=%d %% [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 % val3);
+ setArg(script[pos + 1], arg1, val2 % val3);
+ break;
+ case kOpMaybeAlsoAssign:
+ if (numParams != 2)
+ error("kOpMaybeAlsoAssign had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] =(?) [%d/%d] (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, val2);
+ break;
+ case kOpBooleanAssign:
+ if (numParams != 2)
+ error("kOpBooleanAssign had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] = [%d/%d] (%d) ? 1 : 0", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, val2 ? 1 : 0);
+ break;
+ case kOpNegate:
+ if (numParams != 2)
+ error("kOpNegate had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] = -[%d/%d] (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, -val2);
+ break;
+ case kOpAnd:
+ if (numParams != 3)
+ error("kOpAnd had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d & [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 & val3);
+ setArg(script[pos + 1], arg1, val2 & val3);
+ break;
+ case kOpOr:
+ if (numParams != 3)
+ error("kOpOr had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d | [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 | val3);
+ setArg(script[pos + 1], arg1, val2 | val3);
+ break;
+ case kOpXor:
+ if (numParams != 3)
+ error("kOpXor had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d]=%d ^ [%d/%d]=%d (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val2 ^ val3);
+ setArg(script[pos + 1], arg1, val2 ^ val3);
+ break;
+ case kOpNot:
+ if (numParams != 2)
+ error("kOpNot had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] = ![%d/%d] (!%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, val2 ? 0 : 1);
+ break;
+ case kOpSqrt:
+ if (numParams != 2)
+ error("kOpSqrt had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] = sqrt([%d/%d] (%d))", script[pos + 1], arg1, script[pos + 2], arg2, val2);
+ setArg(script[pos + 1], arg1, (int16)sqrt((double)val2));
+ break;
+ case kOpRandom:
+ if (numParams != 3)
+ error("kOpRandom had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ val1 = _rnd->getRandomNumberRng(val2, val3);
+ debug(9, "[%d/%d] = rnd([%d/%d]=%d, [%d/%d]=%d) (%d)", script[pos + 1], arg1, script[pos + 2], arg2, val2, script[pos+3], arg3, val3, val1);
+ setArg(script[pos + 1], arg1, val1);
+ break;
+ case kOpExecuteScript:
+ if (numParams != 1)
+ error("kOpExecuteScript had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(8, "run script [%d/%d]=%d", script[pos + 1], arg1, val1);
+ runScript(val1);
+ debug(8, "done run script");
+ break;
+ case kOpCallFunc:
+ if (numParams != 1)
+ error("kOpCallFunc had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(8, "%d(%d, %d, %d)", (uint16)val1, _vars[1], _vars[2], _vars[3]);
+ _vars[0] = scriptFuncCall(val1, _vars[1], _vars[2], _vars[3]);
+ break;
+ case kOpBoolLessThanEq:
+ if (numParams != 2)
+ error("kOpBoolLessThanEq had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] <= [%d/%d]? (%d <= %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 <= val2);
+ break;
+ case kOpBoolLessThan:
+ if (numParams != 2)
+ error("kOpBoolLessThan had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] < [%d/%d]? (%d < %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 < val2);
+ break;
+ case kOpBoolGreaterThanEq:
+ if (numParams != 2)
+ error("kOpBoolGreaterThanEq had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] >= [%d/%d]? (%d >= %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 >= val2);
+ break;
+ case kOpBoolGreaterThan:
+ if (numParams != 2)
+ error("kOpBoolGreaterThan had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] > [%d/%d]? (%d > %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 > val2);
+ break;
+ case kOpBoolEqual:
+ if (numParams != 2)
+ error("kOpBoolEqual had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] == [%d/%d]? (%d == %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 == val2);
+ break;
+ case kOpBoolNotEqual:
+ if (numParams != 2)
+ error("kOpBoolNotEqual had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "[%d/%d] != [%d/%d]? (%d != %d)", script[pos + 1], arg1, script[pos + 2], arg2, val1, val2);
+ lastResult = (val1 != val2);
+ break;
+ case kOpSaveArgs:
+ if (numParams != 0)
+ error("kOpSaveArgs had wrong number of params (%d)", numParams);
+ debug(9, "save args");
+ for (uint i = 1; i < 19; i++)
+ _stack[stackBase + i] = _vars[i];
+ break;
+ case kOpRestoreArgs:
+ if (numParams != 0)
+ error("kOpRestoreArgs had wrong number of params (%d)", numParams);
+ debug(9, "restore args");
+ for (uint i = 1; i < 19; i++)
+ _vars[i] = _stack[stackBase + i];
+ break;
+ case kOpReturn:
+ if (numParams != 1)
+ error("kOpReturn had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "return [%d/%d]=%d", script[pos + 1], arg1, val1);
+ _vars[0] = val1;
+ break;
+ case kOpLessThanEq:
+ if (numParams != 3)
+ error("kOpLessThanEq had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] <= [%d/%d]? (%d <= %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val3, val2);
+ setArg(script[pos + 1], arg1, (val3 <= val2) ? 1 : 0);
+ break;
+ case kOpLessThan:
+ if (numParams != 3)
+ error("kOpLessThan had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] < [%d/%d]? (%d < %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val3, val2);
+ setArg(script[pos + 1], arg1, (val3 < val2) ? 1 : 0);
+ break;
+ case kOpGreaterThanEq:
+ if (numParams != 3)
+ error("kOpGreaterThanEq had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] >= [%d/%d]? (%d >= %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val3, val2);
+ setArg(script[pos + 1], arg1, (val3 >= val2) ? 1 : 0);
+ break;
+ case kOpGreaterThan:
+ if (numParams != 3)
+ error("kOpGreaterThan had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] > [%d/%d]? (%d > %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val3, val2);
+ setArg(script[pos + 1], arg1, (val3 > val2) ? 1 : 0);
+ break;
+ case kOpEqual:
+ if (numParams != 3)
+ error("kOpEqual had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] == [%d/%d]? (%d == %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val2, val3);
+ setArg(script[pos + 1], arg1, (val3 == val2) ? 1 : 0);
+ break;
+ case kOpNotEqual:
+ if (numParams != 3)
+ error("kOpNotEqual had wrong number of params (%d)", numParams);
+ val2 = getArg(script[pos + 2], arg2);
+ val3 = getArg(script[pos + 3], arg3);
+ debug(9, "[%d/%d] = [%d/%d] != [%d/%d]? (%d != %d)", script[pos + 1], arg1, script[pos + 2], arg2, script[pos + 3], arg3, val2, val3);
+ setArg(script[pos + 1], arg1, (val3 != val2) ? 1 : 0);
+ break;
+ case kOpJump:
+ if (numParams != 1)
+ error("kOpJump had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "jump by [%d/%d]=%d", script[pos + 1], arg1, val1);
+ pos += val1;
+ break;
+ case kOpJumpIfNot:
+ if (numParams != 1)
+ error("kOpJumpIfNot had wrong number of params (%d)", numParams);
+ if (lastResult)
+ break;
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "jump if not, by [%d/%d]=%d", script[pos + 1], arg1, val1);
+ pos += val1;
+ break;
+ case kOpJumpIf:
+ if (numParams != 1)
+ error("kOpJumpIf had wrong number of params (%d)", numParams);
+ if (!lastResult)
+ break;
+ val1 = getArg(script[pos + 1], arg1);
+ debug(9, "jump if, by [%d/%d]=%d", script[pos + 1], arg1, val1);
+ pos += val1;
+ break;
+ case kOpJumpIfNotValue:
+ if (numParams != 2)
+ error("kOpJumpIfNotValue had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "jump if not [%d/%d]=%d", script[pos + 1], arg1, val1);
+ if (val1)
+ break;
+ debug(9, "--> jump by [%d/%d]=%d", script[pos + 2], arg2, val2);
+ pos += val2;
+ break;
+ case kOpJumpIfValue:
+ if (numParams != 2)
+ error("kOpJumpIfValue had wrong number of params (%d)", numParams);
+ val1 = getArg(script[pos + 1], arg1);
+ val2 = getArg(script[pos + 2], arg2);
+ debug(9, "jump if [%d/%d]=%d", script[pos + 1], arg1, val1);
+ if (!val1)
+ break;
+ debug(9, "--> jump by [%d/%d]=%d", script[pos + 2], arg2, val2);
+ pos += val2;
+ break;
+ default:
+ error("unknown script op 0x%02x", op);
+ }
+ pos += (1 + numParams);
+
+ if (op == kOpReturn)
+ break;
+ }
+
+ delete[] script;
+ _stack.resize(_stack.size() - 19);
+}
+
+int16 ComposerEngine::scriptFuncCall(uint16 id, int16 param1, int16 param2, int16 param3) {
+ switch (id) {
+ case kFuncPlayAnim:
+ debug(3, "kFuncPlayAnim(%d, %d, %d)", param1, param2, param3);
+ playAnimation(param1, param2, param3, 0);
+ return 1; // TODO: return 0 on failure
+ case kFuncStopAnim:
+ debug(3, "kFuncStopAnim(%d)", param1);
+ for (Common::List<Animation *>::iterator i = _anims.begin(); i != _anims.end(); i++) {
+ if ((*i)->_id == param1)
+ stopAnimation(*i);
+ }
+ return 0;
+ case kFuncQueueScript:
+ debug(3, "kFuncQueueScript(%d, %d, %d)", param1, param2, param3);
+ _queuedScripts[param1]._baseTime = _system->getMillis();
+ _queuedScripts[param1]._duration = 10 * param2;
+ _queuedScripts[param1]._count = 0xffffffff;
+ _queuedScripts[param1]._scriptId = param3;
+ return 0;
+ case kFuncDequeueScript:
+ debug(3, "kFuncDequeueScript(%d)", param1);
+ _queuedScripts[param1]._count = 0;
+ _queuedScripts[param1]._scriptId = 0;
+ return 0;
+ case kFuncSetCursor:
+ debug(3, "kSetCursor(%d, (%d, %d))", param1, param2, param3);
+ {
+ uint16 oldCursor = _mouseSpriteId;
+ setCursor(param1, Common::Point(param2, param3));
+ return oldCursor;
+ }
+ case kFuncGetCursor:
+ debug(3, "kFuncGetCursor()");
+ return _mouseSpriteId;
+ case kFuncShowCursor:
+ debug(3, "kFuncShowCursor()");
+ setCursorVisible(true);
+ return 0;
+ case kFuncHideCursor:
+ debug(3, "kFuncHideCursor()");
+ setCursorVisible(false);
+ return 0;
+ case kFuncActivateButton:
+ debug(3, "kFuncActivateButton(%d)", param1);
+ for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
+ for (Common::List<Button>::iterator i = l->_buttons.begin(); i != l->_buttons.end(); i++) {
+ if (i->_id != param1)
+ continue;
+ i->_active = true;
+ }
+ }
+ onMouseMove(_lastMousePos);
+ return 1;
+ case kFuncDeactivateButton:
+ debug(3, "kFuncDeactivateButton(%d)", param1);
+ for (Common::List<Library>::iterator l = _libraries.begin(); l != _libraries.end(); l++) {
+ for (Common::List<Button>::iterator i = l->_buttons.begin(); i != l->_buttons.end(); i++) {
+ if (i->_id != param1)
+ continue;
+ i->_active = false;
+ }
+ }
+ onMouseMove(_lastMousePos);
+ return 1;
+ case kFuncNewPage:
+ debug(3, "kFuncNewPage(%d, %d)", param1, param2);
+ _pendingPageChanges.push_back(PendingPageChange(param1, true));
+ _pendingPageChanges.push_back(PendingPageChange(param2, false));
+ return 1;
+ case kFuncLoadPage:
+ debug(3, "kFuncLoadPage(%d)", param1);
+ _pendingPageChanges.push_back(PendingPageChange(param1, false));
+ return 1;
+ case kFuncUnloadPage:
+ debug(3, "kFuncUnloadPage(%d)", param1);
+ _pendingPageChanges.push_back(PendingPageChange(param1, true));
+ return 1;
+ case kFuncSetPalette:
+ // TODO: return 0 if not disabling (0) and doesn't exist
+ debug(4, "kFuncSetPalette(%d, %d)", param1, param2);
+ // this seems only needed for a script bug in the Gregory credits, sigh
+ if ((uint16)param2 > 100)
+ param2 = 100;
+ loadCTBL(param1, param2);
+ return 1;
+ case kFuncSaveVars:
+ debug(3, "kFuncSaveVars(%d)", param1);
+ {
+ Common::String filename = _targetName + Common::String::format(".%03d", param1);
+ Common::WriteStream *stream = _saveFileMan->openForSaving(filename);
+ for (uint i = 0; i < 1000; i++) {
+ stream->writeUint16LE(_vars[i]);
+ }
+ delete stream;
+ }
+ return 1;
+ case kFuncLoadVars:
+ debug(3, "kFuncLoadVars(%d, %d, %d)", param1, param2, param3);
+ {
+ Common::String filename = _targetName + Common::String::format(".%03d", param1);
+ Common::SeekableReadStream *stream = _saveFileMan->openForLoading(filename);
+ if (!stream) {
+ if (!_bookIni.hasKey(Common::String::format("%d", param1), "Data"))
+ return 0;
+ filename = getFilename("Data", param1);
+ Common::File *file = new Common::File();
+ if (!file->open(filename))
+ error("couldn't open '%s' to get vars id '%d'", filename.c_str(), param1);
+ stream = file;
+ }
+ if (param3 == 0)
+ param3 = 1000;
+ if (param2 < 0 || param3 < 0 || param2 + param3 > 1000)
+ error("can't read %d entries into %d from file '%s' for vars id '%d'", param3, param2, filename.c_str(), param1);
+ stream->skip(param2 * 2);
+ for (uint i = 0; i < (uint)param3; i++) {
+ if (stream->pos() + 1 > stream->size())
+ break;
+ _vars[param2 + i] = stream->readUint16LE();
+ }
+ delete stream;
+ }
+ return 1;
+ case kFuncQueueScriptOnce:
+ debug(3, "kFuncQueueScriptOnce(%d, %d, %d)", param1, param2, param3);
+ _queuedScripts[param1]._baseTime = _system->getMillis();
+ _queuedScripts[param1]._duration = 10 * param2;
+ _queuedScripts[param1]._count = 1;
+ _queuedScripts[param1]._scriptId = param3;
+ return 0;
+ case kFuncGetMousePos:
+ debug(3, "kFuncGetMousePos(%d, %d)", param1, param2);
+ _vars[param1] = _lastMousePos.x;
+ _vars[param2] = _lastMousePos.y;
+ return 0;
+ case kFuncChangeBackground:
+ debug(3, "kFuncChangeBackground(%d)", param1);
+ // TODO: return 1 if background existed, else 0
+ setBackground(param1);
+ return 1;
+ case kFuncSetBackgroundColor:
+ // TODO
+ warning("ignoring kFuncSetBackgroundColor(%d)", param1);
+ return 0;
+ case kFuncClearSprites:
+ debug(3, "kFuncClearSprites()");
+ removeSprite(0, 0);
+ return 0;
+ case kFuncAddSprite:
+ {
+ Common::Point pos(_vars[param3], _vars[param3 + 1]);
+ int16 zorder = _vars[param3 + 2];
+ debug(3, "kFuncAddSprite(%d, %d, [%d = (%d, %d), %d])", param1, param2, param3, pos.x, pos.y, zorder);
+ addSprite(param1, param2, zorder, pos);
+ }
+ return 0;
+ case kFuncRemoveSprite:
+ debug(3, "kFuncRemoveSprite(%d, %d)", param1, param2);
+ removeSprite(param1, param2);
+ return 0;
+ case kFuncQuit:
+ debug(3, "kFuncQuit()");
+ quitGame();
+ return 0;
+ case kFuncSaveData:
+ // TODO
+ warning("ignoring kFuncSaveData(%d, %d, %d)", param1, param2, param3);
+ return 1;
+ case kFuncLoadData:
+ debug(3, "kFuncLoadData(%d, %d, %d)", param1, param2, param3);
+ {
+ Common::String filename = getFilename("Data", param1);
+ Common::File *file = new Common::File();
+ if (!file->open(filename))
+ error("couldn't open '%s' to get data id '%d'", filename.c_str(), param1);
+ if (param3 == 0)
+ param3 = 1000;
+ if (param2 < 0 || param3 < 0 || param2 + param3 > 1000)
+ error("can't read %d entries into %d from file '%s' for data id '%d'", param3, param2, filename.c_str(), param1);
+ for (uint i = 0; i < (uint)param3; i++) {
+ if (file->pos() + 1 > file->size())
+ break;
+ _vars[param2 + i] = file->readUint16LE();
+ }
+ delete file;
+ }
+ return 1;
+ case kFuncGetSpriteSize:
+ debug(3, "kFuncGetSpriteSize(%d, %d, %d)", param1, param2, param3);
+ int16 width, height;
+ width = 0;
+ height = 0;
+ {
+ Common::SeekableReadStream *stream = getStreamForSprite(param1);
+ if (stream) {
+ stream->readUint16LE();
+ height = stream->readSint16LE();
+ width = stream->readSint16LE();
+ delete stream;
+ }
+ }
+ _vars[param2] = width;
+ _vars[param3] = height;
+ return 0;
+ default:
+ error("unknown scriptFuncCall %d(%d, %d, %d)", (uint32)id, param1, param2, param3);
+ }
+}
+
+} // End of namespace Composer
diff --git a/engines/cruise/cruise.h b/engines/cruise/cruise.h
index 900f677975..94f8759d01 100644
--- a/engines/cruise/cruise.h
+++ b/engines/cruise/cruise.h
@@ -108,7 +108,15 @@ public:
Common::RandomSource _rnd;
- Common::List<byte *> _memList;
+ struct MemInfo {
+ int32 lineNum;
+ char fname[64];
+ uint32 magic;
+
+ static uint32 const cookie = 0x41424344;
+ };
+
+ Common::List<MemInfo*> _memList;
typedef Common::List<Common::Rect> RectList;
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp
index 031c53b96a..ff4669607d 100644
--- a/engines/cruise/cruise_main.cpp
+++ b/engines/cruise/cruise_main.cpp
@@ -40,19 +40,21 @@ unsigned int timer = 0;
gfxEntryStruct* linkedMsgList = NULL;
+typedef CruiseEngine::MemInfo MemInfo;
+
void MemoryList() {
if (!_vm->_memList.empty()) {
debug("Current list of un-freed memory blocks:");
- Common::List<byte *>::iterator i;
+ Common::List<MemInfo*>::iterator i;
for (i = _vm->_memList.begin(); i != _vm->_memList.end(); ++i) {
- byte *v = *i;
- debug("%s - %d", (const char *)(v - 68), *((int32 *)(v - 72)));
+ MemInfo const *const v = *i;
+ debug("%s - %d", v->fname, v->lineNum);
}
}
}
void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname) {
- byte *result;
+ void *result;
if (gDebugLevel > 0) {
// Find the point after the final slash
@@ -61,17 +63,17 @@ void *MemoryAlloc(uint32 size, bool clearFlag, int32 lineNum, const char *fname)
--fnameP;
// Create the new memory block and add it to the memory list
- byte *v = (byte *)malloc(size + 64 + 8);
- *((int32 *) v) = lineNum;
- strncpy((char *)v + 4, fnameP, 63);
- *((char *)v + 4 + 63) = '\0';
- *((uint32 *) (v + 68)) = 0x41424344;
+ MemInfo *const v = (MemInfo *)malloc(sizeof(MemInfo) + size);
+ v->lineNum = lineNum;
+ strncpy(v->fname, fnameP, sizeof(v->fname));
+ v->fname[ARRAYSIZE(v->fname) - 1] = '\0';
+ v->magic = MemInfo::cookie;
// Add the block to the memory list
- result = v + 64 + 8;
- _vm->_memList.push_back(result);
+ _vm->_memList.push_back(v);
+ result = v + 1;
} else
- result = (byte *)malloc(size);
+ result = malloc(size);
if (clearFlag)
memset(result, 0, size);
@@ -84,11 +86,11 @@ void MemoryFree(void *v) {
return;
if (gDebugLevel > 0) {
- byte *p = (byte *)v;
- assert(*((uint32 *) (p - 4)) == 0x41424344);
+ MemInfo *const p = (MemInfo *)v - 1;
+ assert(p->magic == MemInfo::cookie);
_vm->_memList.remove(p);
- free(p - 8 - 64);
+ free(p);
} else
free(v);
}
diff --git a/engines/cruise/module.mk b/engines/cruise/module.mk
index 5c36b2a7c1..ae07d20956 100644
--- a/engines/cruise/module.mk
+++ b/engines/cruise/module.mk
@@ -40,4 +40,3 @@ endif
# Include common rules
include $(srcdir)/rules.mk
-
diff --git a/engines/cruise/saveload.cpp b/engines/cruise/saveload.cpp
index 6392009373..c3d1ea6643 100644
--- a/engines/cruise/saveload.cpp
+++ b/engines/cruise/saveload.cpp
@@ -62,12 +62,9 @@ bool readSavegameHeader(Common::InSaveFile *in, CruiseSavegameHeader &header) {
while ((ch = (char)in->readByte()) != '\0') header.saveName += ch;
// Get the thumbnail
- header.thumbnail = new Graphics::Surface();
- if (!Graphics::loadThumbnail(*in, *header.thumbnail)) {
- delete header.thumbnail;
- header.thumbnail = NULL;
+ header.thumbnail = Graphics::loadThumbnail(*in);
+ if (!header.thumbnail)
return false;
- }
return true;
}
diff --git a/engines/cruise/sound.cpp b/engines/cruise/sound.cpp
index 290cc220d4..21d9a75297 100644
--- a/engines/cruise/sound.cpp
+++ b/engines/cruise/sound.cpp
@@ -31,6 +31,7 @@
#include "audio/audiostream.h"
#include "audio/fmopl.h"
+#include "audio/mixer.h"
#include "audio/mods/soundfx.h"
namespace Cruise {
diff --git a/engines/cruise/sound.h b/engines/cruise/sound.h
index 11aec0b04e..c1975dc579 100644
--- a/engines/cruise/sound.h
+++ b/engines/cruise/sound.h
@@ -23,10 +23,6 @@
#ifndef CRUISE_SOUND_H
#define CRUISE_SOUND_H
-#include "audio/mididrv.h"
-#include "audio/midiparser.h"
-#include "audio/mixer.h"
-
#include "common/config-manager.h"
#include "common/serializer.h"
diff --git a/engines/dialogs.cpp b/engines/dialogs.cpp
index 1a077e5bf7..58bf629dc4 100644
--- a/engines/dialogs.cpp
+++ b/engines/dialogs.cpp
@@ -338,4 +338,3 @@ void ConfigDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, uint32
GUI::OptionsDialog::handleCommand (sender, cmd, data);
}
}
-
diff --git a/engines/draci/saveload.cpp b/engines/draci/saveload.cpp
index 1479dd3c77..78315d1a97 100644
--- a/engines/draci/saveload.cpp
+++ b/engines/draci/saveload.cpp
@@ -58,13 +58,9 @@ bool readSavegameHeader(Common::InSaveFile *in, DraciSavegameHeader &header) {
header.playtime = in->readUint32LE();
// Get the thumbnail
- header.thumbnail = new Graphics::Surface();
- if (!Graphics::loadThumbnail(*in, *header.thumbnail)) {
- header.thumbnail->free();
- delete header.thumbnail;
- header.thumbnail = NULL;
+ header.thumbnail = Graphics::loadThumbnail(*in);
+ if (!header.thumbnail)
return false;
- }
return true;
}
diff --git a/engines/drascula/drascula.h b/engines/drascula/drascula.h
index 2b6aa0f291..5ec4684723 100644
--- a/engines/drascula/drascula.h
+++ b/engines/drascula/drascula.h
@@ -30,6 +30,7 @@
#include "common/file.h"
#include "common/hash-str.h"
#include "common/keyboard.h"
+#include "common/ptr.h"
#include "common/random.h"
#include "common/savefile.h"
#include "common/system.h"
@@ -264,15 +265,13 @@ private:
};
class TextResourceParser {
- Common::SeekableReadStream *_stream;
- DisposeAfterUse::Flag _dispose;
+ Common::DisposablePtr<Common::SeekableReadStream> _stream;
int _maxLen;
void getLine(char *buf);
public:
TextResourceParser(Common::SeekableReadStream *stream, DisposeAfterUse::Flag dispose);
- ~TextResourceParser();
void parseInt(int &result);
void parseString(char *result);
diff --git a/engines/drascula/resource.cpp b/engines/drascula/resource.cpp
index 6da43e7cba..95a95e3487 100644
--- a/engines/drascula/resource.cpp
+++ b/engines/drascula/resource.cpp
@@ -42,7 +42,7 @@ Common::SeekableReadStream *ArchiveMan::open(const Common::String &filename) {
}
TextResourceParser::TextResourceParser(Common::SeekableReadStream *stream, DisposeAfterUse::Flag dispose) :
- _stream(stream), _dispose(dispose) {
+ _stream(stream, dispose) {
// NOTE: strangely enough, the code before this refactoring used the size of
// the stream as a fixed maximum length for the parser. Using an updated
@@ -50,12 +50,6 @@ TextResourceParser::TextResourceParser(Common::SeekableReadStream *stream, Dispo
_maxLen = _stream->size();
}
-TextResourceParser::~TextResourceParser() {
- if (_dispose == DisposeAfterUse::YES) {
- delete _stream;
- }
-}
-
void TextResourceParser::getLine(char *buf) {
byte c;
char *b;
@@ -101,4 +95,3 @@ void TextResourceParser::parseString(char* result) {
} // End of namespace Drascula
-
diff --git a/engines/dreamweb/backdrop.cpp b/engines/dreamweb/backdrop.cpp
new file mode 100644
index 0000000000..cba1f14c5e
--- /dev/null
+++ b/engines/dreamweb/backdrop.cpp
@@ -0,0 +1,285 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/util.h"
+#include "graphics/surface.h"
+
+namespace DreamGen {
+
+void DreamGenContext::doblocks() {
+ uint16 dstOffset = data.word(kMapady) * 320 + data.word(kMapadx);
+ uint16 mapOffset = kMap + data.byte(kMapy) * kMapwidth + data.byte(kMapx);
+ ds = data.word(kMapdata);
+ const uint8 *mapData = ds.ptr(mapOffset, 0);
+ ds = data.word(kBackdrop);
+ const uint8 *blocks = ds.ptr(kBlocks, 0);
+ es = data.word(kWorkspace);
+ uint8 *dstBuffer = es.ptr(dstOffset, 0);
+
+ for (size_t i = 0; i < 10; ++i) {
+ for (size_t j = 0; j < 11; ++j) {
+ uint16 blockType = mapData[j];
+ if (blockType != 0) {
+ uint8 *dst = dstBuffer + i * 320 * 16 + j * 16;
+ const uint8 *block = blocks + blockType * 256;
+ for (size_t k = 0; k < 4; ++k) {
+ memcpy(dst, block, 16);
+ block += 16;
+ dst += 320;
+ }
+ for (size_t k = 0; k < 12; ++k) {
+ memcpy(dst, block, 16);
+ memset(dst + 16, 0xdf, 4);
+ block += 16;
+ dst += 320;
+ }
+ dst += 4;
+ ax = 0x0dfdf;
+ memset(dst, 0xdf, 16);
+ dst += 320;
+ memset(dst, 0xdf, 16);
+ dst += 320;
+ memset(dst, 0xdf, 16);
+ dst += 320;
+ memset(dst, 0xdf, 16);
+ }
+ }
+ mapData += kMapwidth;
+ }
+}
+
+uint8 DreamGenContext::getxad(const uint8 *setData, uint8 *result) {
+ uint8 v0 = setData[0];
+ uint8 v1 = setData[1];
+ uint8 v2 = setData[2];
+ if (v0 != 0)
+ return 0;
+ if (v1 < data.byte(kMapx))
+ return 0;
+ v1 -= data.byte(kMapx);
+ if (v1 >= 11)
+ return 0;
+ *result = (v1 << 4) | v2;
+ return 1;
+}
+
+uint8 DreamGenContext::getyad(const uint8 *setData, uint8 *result) {
+ uint8 v0 = setData[3];
+ uint8 v1 = setData[4];
+ if (v0 < data.byte(kMapy))
+ return 0;
+ v0 -= data.byte(kMapy);
+ if (v0 >= 10)
+ return 0;
+ *result = (v0 << 4) | v1;
+ return 1;
+}
+
+void DreamGenContext::getmapad() {
+ ch = getmapad((const uint8 *)es.ptr(si, 5));
+}
+
+uint8 DreamGenContext::getmapad(const uint8 *setData) {
+ uint8 xad, yad;
+ if (getxad(setData, &xad) == 0)
+ return 0;
+ data.word(kObjectx) = xad;
+ if (getyad(setData, &yad) == 0)
+ return 0;
+ data.word(kObjecty) = yad;
+ return 1;
+}
+
+void DreamGenContext::calcfrframe() {
+ uint8 width, height;
+ calcfrframe(&width, &height);
+ cl = width;
+ ch = height;
+}
+
+void DreamGenContext::calcfrframe(uint8* width, uint8* height) {
+ const Frame *frame = (const Frame *)segRef(data.word(kFrsegment)).ptr(data.word(kCurrentframe) * sizeof(Frame), sizeof(Frame));
+ data.word(kSavesource) = data.word(kFramesad) + frame->ptr();
+ data.byte(kSavesize+0) = frame->width;
+ data.byte(kSavesize+1) = frame->height;
+ data.word(kOffsetx) = frame->x;
+ data.word(kOffsety) = frame->y;
+ *width = frame->width;
+ *height = frame->height;
+}
+
+void DreamGenContext::finalframe() {
+ uint16 x, y;
+ finalframe(&x, &y);
+ di = x;
+ bx = y;
+}
+
+void DreamGenContext::finalframe(uint16 *x, uint16 *y) {
+ data.byte(kSavex) = (data.word(kObjectx) + data.word(kOffsetx)) & 0xff;
+ data.byte(kSavey) = (data.word(kObjecty) + data.word(kOffsety)) & 0xff;
+ *x = data.word(kObjectx);
+ *y = data.word(kObjecty);
+}
+
+void DreamGenContext::showallobs() {
+ data.word(kListpos) = kSetlist;
+ memset(segRef(data.word(kBuffers)).ptr(kSetlist, 0), 0xff, 128 * 5);
+ data.word(kFrsegment) = data.word(kSetframes);
+ data.word(kDataad) = kFramedata;
+ data.word(kFramesad) = kFrames;
+
+ const Frame *frames = (const Frame *)segRef(data.word(kFrsegment)).ptr(0, 0);
+ ObjData *setEntries = (ObjData *)segRef(data.word(kSetdat)).ptr(0, 128 * sizeof(ObjData));
+ for (size_t i = 0; i < 128; ++i) {
+ ObjData *setEntry = setEntries + i;
+ if (getmapad(setEntry->b58) == 0)
+ continue;
+ uint8 currentFrame = setEntry->b18[0];
+ data.word(kCurrentframe) = currentFrame;
+ if (currentFrame == 0xff)
+ continue;
+ calcfrframe();
+ uint16 x, y;
+ finalframe(&x, &y);
+ setEntry->b17 = setEntry->b18[0];
+ if ((setEntry->type == 0) && (setEntry->priority != 5) && (setEntry->priority != 6)) {
+ x += data.word(kMapadx);
+ y += data.word(kMapady);
+ showframe(frames, x, y, data.word(kCurrentframe), 0);
+ } else
+ makebackob(setEntry);
+
+ ObjPos *objPos = (ObjPos *)segRef(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(ObjPos));
+ objPos->xMin = data.byte(kSavex);
+ objPos->yMin = data.byte(kSavey);
+ objPos->xMax = data.byte(kSavex) + data.byte(kSavesize+0);
+ objPos->yMax = data.byte(kSavey) + data.byte(kSavesize+1);
+ objPos->index = i;
+ data.word(kListpos) += sizeof(ObjPos);
+ }
+}
+
+void DreamGenContext::getdimension()
+{
+ uint8 mapXstart, mapYstart;
+ uint8 mapXsize, mapYsize;
+ getdimension(&mapXstart, &mapYstart, &mapXsize, &mapYsize);
+ cl = mapXstart;
+ ch = mapYstart;
+ dl = mapXsize;
+ dh = mapYsize;
+}
+
+bool DreamGenContext::addalong(const uint8 *mapFlags) {
+ for (size_t i = 0; i < 11; ++i) {
+ if (mapFlags[3 * i] != 0)
+ return true;
+ }
+ return false;
+}
+
+bool DreamGenContext::addlength(const uint8 *mapFlags) {
+ for (size_t i = 0; i < 10; ++i) {
+ if (mapFlags[3 * 11 * i] != 0)
+ return true;
+ }
+ return false;
+}
+
+void DreamGenContext::getdimension(uint8 *mapXstart, uint8 *mapYstart, uint8 *mapXsize, uint8 *mapYsize) {
+ const uint8 *mapFlags = segRef(data.word(kBuffers)).ptr(kMapflags, 0);
+
+ uint8 yStart = 0;
+ while (! addalong(mapFlags + 3 * 11 * yStart))
+ ++yStart;
+
+ uint8 xStart = 0;
+ while (! addlength(mapFlags + 3 * xStart))
+ ++xStart;
+
+ uint8 yEnd = 10;
+ while (! addalong(mapFlags + 3 * 11 * (yEnd - 1)))
+ --yEnd;
+
+ uint8 xEnd = 11;
+ while (! addlength(mapFlags + 3 * (xEnd - 1)))
+ --xEnd;
+
+ *mapXstart = xStart;
+ *mapYstart = yStart;
+ *mapXsize = xEnd - xStart;
+ *mapYsize = yEnd - yStart;
+ data.word(kMapxstart) = xStart << 4;
+ data.word(kMapystart) = yStart << 4;
+ data.byte(kMapxsize) = *mapXsize << 4;
+ data.byte(kMapysize) = *mapYsize << 4;
+}
+
+void DreamGenContext::calcmapad() {
+ uint8 mapXstart, mapYstart;
+ uint8 mapXsize, mapYsize;
+ getdimension(&mapXstart, &mapYstart, &mapXsize, &mapYsize);
+ data.word(kMapadx) = data.word(kMapoffsetx) - 8 * (mapXsize + 2 * mapXstart - 11);
+ data.word(kMapady) = data.word(kMapoffsety) - 8 * (mapYsize + 2 * mapYstart - 10);
+}
+
+void DreamGenContext::showallfree() {
+ data.word(kListpos) = kFreelist;
+ ObjPos *listPos = (ObjPos *)segRef(data.word(kBuffers)).ptr(kFreelist, 80 * sizeof(ObjPos));
+ memset(listPos, 0xff, 80 * sizeof(ObjPos));
+
+ data.word(kFrsegment) = data.word(kFreeframes);
+ data.word(kDataad) = kFrframedata;
+ data.word(kFramesad) = kFrframes;
+ data.byte(kCurrentfree) = 0;
+ const uint8 *mapData = segRef(data.word(kFreedat)).ptr(2, 0);
+ for(size_t i = 0; i < 80; ++i) {
+ uint8 mapad = getmapad(mapData);
+ if (mapad != 0) {
+ data.word(kCurrentframe) = 3 * data.byte(kCurrentfree);
+ uint8 width, height;
+ calcfrframe(&width, &height);
+ uint16 x, y;
+ finalframe(&x, &y);
+ if ((width != 0) || (height != 0)) {
+ x += data.word(kMapadx);
+ y += data.word(kMapady);
+ showframe((Frame *)segRef(data.word(kFrsegment)).ptr(0, 0), x, y, data.word(kCurrentframe) & 0xff, 0);
+ ObjPos *objPos = (ObjPos *)segRef(data.word(kBuffers)).ptr(data.word(kListpos), sizeof(ObjPos));
+ objPos->xMin = data.byte(kSavex);
+ objPos->yMin = data.byte(kSavey);
+ objPos->xMax = data.byte(kSavex) + data.byte(kSavesize+0);
+ objPos->yMax = data.byte(kSavey) + data.byte(kSavesize+1);
+ objPos->index = i;
+ data.word(kListpos) += sizeof(ObjPos);
+ }
+ }
+
+ ++data.byte(kCurrentfree);
+ mapData += 16;
+ }
+}
+
+} /*namespace dreamgen */
+
diff --git a/engines/dreamweb/console.cpp b/engines/dreamweb/console.cpp
index e004746d8a..d415089a48 100644
--- a/engines/dreamweb/console.cpp
+++ b/engines/dreamweb/console.cpp
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/console.cpp $
- * $Id: console.cpp 70 2011-01-26 05:36:55Z digitall $
- *
*/
#include "dreamweb/console.h"
diff --git a/engines/dreamweb/console.h b/engines/dreamweb/console.h
index 58c8467b34..a90794e94e 100644
--- a/engines/dreamweb/console.h
+++ b/engines/dreamweb/console.h
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/console.h $
- * $Id: console.h 70 2011-01-26 05:36:55Z digitall $
- *
*/
#ifndef DREAMWEB_CONSOLE_H
diff --git a/engines/dreamweb/detection.cpp b/engines/dreamweb/detection.cpp
index ef4a746b62..0ac61a3ac2 100644
--- a/engines/dreamweb/detection.cpp
+++ b/engines/dreamweb/detection.cpp
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/detection.cpp $
- * $Id: detection.cpp 3 2010-09-16 19:32:18Z megath $
- *
*/
#include "base/plugins.h"
@@ -43,7 +40,7 @@ public:
AdvancedMetaEngine(DreamWeb::gameDescriptions,
sizeof(DreamWeb::DreamWebGameDescription), dreamWebGames) {
_singleid = "dreamweb";
- _guioptions = Common::GUIO_NOMIDI | Common::GUIO_NOLAUNCHLOAD;
+ _guioptions = Common::GUIO_NOMIDI;
}
virtual const char *getName() const {
@@ -64,8 +61,8 @@ public:
bool DreamWebMetaEngine::hasFeature(MetaEngineFeature f) const {
switch(f) {
case kSupportsListSaves:
- //case kSupportsLoadingDuringStartup:
- //case kSupportsDeleteSave:
+ case kSupportsLoadingDuringStartup:
+ case kSupportsDeleteSave:
return true;
default:
return false;
@@ -108,14 +105,15 @@ SaveStateList DreamWebMetaEngine::listSaves(const char *target) const {
stream->read(name, sizeof(name) - 1);
delete stream;
- SaveStateDescriptor sd(i, name);
+ int slotNum = atoi(file.c_str() + file.size() - 2);
+ SaveStateDescriptor sd(slotNum, name);
saveList.push_back(sd);
}
return saveList;
}
-int DreamWebMetaEngine::getMaximumSaveSlot() const { return 6; }
+int DreamWebMetaEngine::getMaximumSaveSlot() const { return 99; }
void DreamWebMetaEngine::removeSaveState(const char *target, int slot) const {
}
diff --git a/engines/dreamweb/detection_tables.h b/engines/dreamweb/detection_tables.h
index 6c7d8e4809..82fb6102e4 100644
--- a/engines/dreamweb/detection_tables.h
+++ b/engines/dreamweb/detection_tables.h
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/detection_tables.h $
- * $Id: detection_tables.h 66 2010-11-07 08:31:21Z eriktorbjorn $
- *
*/
#ifndef DREAMWEB_DETECTION_TABLES_H
diff --git a/engines/dreamweb/dreamgen.cpp b/engines/dreamweb/dreamgen.cpp
index a183c7c798..0ee8c50cd3 100644
--- a/engines/dreamweb/dreamgen.cpp
+++ b/engines/dreamweb/dreamgen.cpp
@@ -1,5 +1,29 @@
/* PLEASE DO NOT MODIFY THIS FILE. ALL CHANGES WILL BE LOST! LOOK FOR README FOR DETAILS */
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+
+
#include "dreamgen.h"
namespace DreamGen {
@@ -1670,116 +1694,6 @@ notendtelly:
showgamereel();
}
-void DreamGenContext::madman() {
- STACK_CHECK;
- data.word(kWatchingtime) = 2;
- checkspeed();
- if (!flags.z())
- goto nomadspeed;
- ax = es.word(bx+3);
- _cmp(ax, 364);
- if (!flags.c())
- goto ryansded;
- _cmp(ax, 10);
- if (!flags.z())
- goto notfirstmad;
- push(es);
- push(bx);
- push(ax);
- dx = 2247;
- loadtemptext();
- ax = pop();
- bx = pop();
- es = pop();
- data.byte(kCombatcount) = -1;
- data.byte(kSpeechcount) = 0;
-notfirstmad:
- _inc(ax);
- _cmp(ax, 294);
- if (flags.z())
- goto madmanspoken;
- _cmp(ax, 66);
- if (!flags.z())
- goto nomadspeak;
- _inc(data.byte(kCombatcount));
- push(es);
- push(bx);
- madmantext();
- bx = pop();
- es = pop();
- ax = 53;
- _cmp(data.byte(kCombatcount), 64);
- if (flags.c())
- goto nomadspeak;
- _cmp(data.byte(kCombatcount), 70);
- if (flags.z())
- goto killryan;
- _cmp(data.byte(kLastweapon), 8);
- if (!flags.z())
- goto nomadspeak;
- data.byte(kCombatcount) = 72;
- data.byte(kLastweapon) = -1;
- data.byte(kMadmanflag) = 1;
- ax = 67;
- goto nomadspeak;
-killryan:
- ax = 310;
-nomadspeak:
- es.word(bx+3) = ax;
-nomadspeed:
- showgamereel();
- al = data.byte(kMapx);
- es.byte(bx+1) = al;
- madmode();
- return;
-madmanspoken:
- _cmp(data.byte(kWongame), 1);
- if (flags.z())
- return /* (alreadywon) */;
- data.byte(kWongame) = 1;
- push(es);
- push(bx);
- getridoftemptext();
- bx = pop();
- es = pop();
- return;
-ryansded:
- data.byte(kMandead) = 2;
- showgamereel();
-}
-
-void DreamGenContext::madmantext() {
- STACK_CHECK;
- _cmp(data.byte(kSpeechcount), 63);
- if (!flags.c())
- return /* (nomadtext) */;
- _cmp(data.byte(kCh1playing), 255);
- if (!flags.z())
- return /* (nomadtext) */;
- al = data.byte(kSpeechcount);
- _inc(data.byte(kSpeechcount));
- _add(al, 47);
- bl = 72;
- bh = 80;
- cx = 90;
- dx = 1;
- ah = 82;
- setuptimedtemp();
-}
-
-void DreamGenContext::madmode() {
- STACK_CHECK;
- data.word(kWatchingtime) = 2;
- data.byte(kPointermode) = 0;
- _cmp(data.byte(kCombatcount), 65);
- if (flags.c())
- return /* (iswatchmad) */;
- _cmp(data.byte(kCombatcount), 70);
- if (!flags.c())
- return /* (iswatchmad) */;
- data.byte(kPointermode) = 2;
-}
-
void DreamGenContext::priesttext() {
STACK_CHECK;
_cmp(es.word(bx+3), 2);
@@ -2136,22 +2050,6 @@ void DreamGenContext::addtopeoplelist() {
_add(data.word(kListpos), 5);
}
-void DreamGenContext::showgamereel() {
- STACK_CHECK;
- ax = es.word(bx+3);
- _cmp(ax, 512);
- if (!flags.c())
- return /* (noshow) */;
- data.word(kReelpointer) = ax;
- push(es);
- push(bx);
- plotreel();
- bx = pop();
- es = pop();
- ax = data.word(kReelpointer);
- es.word(bx+3) = ax;
-}
-
void DreamGenContext::checkspeed() {
STACK_CHECK;
_cmp(data.byte(kLastweapon), -1);
@@ -2170,35 +2068,6 @@ forcenext:
_cmp(al, al);
}
-void DreamGenContext::clearsprites() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- al = 255;
- cx = (32)*16;
- _stosb(cx, true);
-}
-
-void DreamGenContext::makesprite() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
-_tmp17:
- _cmp(es.byte(bx+15), 255);
- if (flags.z())
- goto _tmp17a;
- _add(bx, (32));
- goto _tmp17;
-_tmp17a:
- es.word(bx) = cx;
- es.word(bx+10) = si;
- es.word(bx+6) = dx;
- es.word(bx+8) = di;
- es.word(bx+2) = 0x0ffff;
- es.byte(bx+15) = 0;
- es.byte(bx+18) = 0;
-}
-
void DreamGenContext::delsprite() {
STACK_CHECK;
di = bx;
@@ -2207,394 +2076,6 @@ void DreamGenContext::delsprite() {
_stosb(cx, true);
}
-void DreamGenContext::spriteupdate() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- al = data.byte(kRyanon);
- es.byte(bx+31) = al;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- cx = 16;
-_tmp18:
- push(cx);
- push(bx);
- ax = es.word(bx);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto _tmp18a;
- push(es);
- push(ds);
- cx = es.word(bx+2);
- es.word(bx+24) = cx;
- __dispatch_call(ax);
- ds = pop();
- es = pop();
-_tmp18a:
- bx = pop();
- cx = pop();
- _cmp(data.byte(kNowinnewroom), 1);
- if (flags.z())
- return /* ($18b) */;
- _add(bx, (32));
- if (--cx)
- goto _tmp18;
-}
-
-void DreamGenContext::printsprites() {
- STACK_CHECK;
- es = data.word(kBuffers);
- cx = 0;
-priorityloop:
- push(cx);
- data.byte(kPriority) = cl;
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- cx = 16;
-prtspriteloop:
- push(cx);
- push(bx);
- ax = es.word(bx);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto skipsprite;
- al = data.byte(kPriority);
- _cmp(al, es.byte(bx+23));
- if (!flags.z())
- goto skipsprite;
- _cmp(es.byte(bx+31), 1);
- if (flags.z())
- goto skipsprite;
- printasprite();
-skipsprite:
- bx = pop();
- cx = pop();
- _add(bx, (32));
- if (--cx)
- goto prtspriteloop;
- cx = pop();
- _inc(cx);
- _cmp(cx, 7);
- if (!flags.z())
- goto priorityloop;
-}
-
-void DreamGenContext::printasprite() {
- STACK_CHECK;
- push(es);
- push(bx);
- si = bx;
- ds = es.word(si+6);
- al = es.byte(si+11);
- ah = 0;
- _cmp(al, 220);
- if (flags.c())
- goto notnegative1;
- ah = 255;
-notnegative1:
- bx = ax;
- _add(bx, data.word(kMapady));
- al = es.byte(si+10);
- ah = 0;
- _cmp(al, 220);
- if (flags.c())
- goto notnegative2;
- ah = 255;
-notnegative2:
- di = ax;
- _add(di, data.word(kMapadx));
- al = es.byte(si+15);
- ah = 0;
- _cmp(es.byte(si+30), 0);
- if (flags.z())
- goto steadyframe;
- ah = 8;
-steadyframe:
- _cmp(data.byte(kPriority), 6);
- if (!flags.z())
- goto notquickp;
-notquickp:
- showframe();
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::checkone() {
- STACK_CHECK;
- push(cx);
- al = ch;
- ah = 0;
- cl = 4;
- _shr(ax, cl);
- dl = al;
- cx = pop();
- al = cl;
- ah = 0;
- cl = 4;
- _shr(ax, cl);
- ah = dl;
- push(ax);
- ch = 0;
- cl = al;
- push(cx);
- al = ah;
- ah = 0;
- cx = 11;
- _mul(cx);
- cx = pop();
- _add(ax, cx);
- cx = 3;
- _mul(cx);
- si = ax;
- ds = data.word(kBuffers);
- _add(si, (0+(228*13)+32+60+(32*32)));
- _lodsw();
- cx = ax;
- _lodsb();
- dx = pop();
-}
-
-void DreamGenContext::findsource() {
- STACK_CHECK;
- ax = data.word(kCurrentframe);
- _cmp(ax, 160);
- if (!flags.c())
- goto over1000;
- ds = data.word(kReel1);
- data.word(kTakeoff) = 0;
- return;
-over1000:
- _cmp(ax, 320);
- if (!flags.c())
- goto over1001;
- ds = data.word(kReel2);
- data.word(kTakeoff) = 160;
- return;
-over1001:
- ds = data.word(kReel3);
- data.word(kTakeoff) = 320;
-}
-
-void DreamGenContext::initman() {
- STACK_CHECK;
- al = data.byte(kRyanx);
- ah = data.byte(kRyany);
- si = ax;
- cx = 49464;
- dx = data.word(kMainsprites);
- di = 0;
- makesprite();
- es.byte(bx+23) = 4;
- es.byte(bx+22) = 0;
- es.byte(bx+29) = 0;
-}
-
-void DreamGenContext::mainman() {
- STACK_CHECK;
- _cmp(data.byte(kResetmanxy), 1);
- if (!flags.z())
- goto notinnewroom;
- data.byte(kResetmanxy) = 0;
- al = data.byte(kRyanx);
- ah = data.byte(kRyany);
- es.word(bx+10) = ax;
- es.byte(bx+29) = 0;
- goto executewalk;
-notinnewroom:
- _dec(es.byte(bx+22));
- _cmp(es.byte(bx+22), -1);
- if (flags.z())
- goto executewalk;
- return;
-executewalk:
- es.byte(bx+22) = 0;
- al = data.byte(kTurntoface);
- _cmp(al, data.byte(kFacing));
- if (flags.z())
- goto facingok;
- aboutturn();
- goto notwalk;
-facingok:
- _cmp(data.byte(kTurndirection), 0);
- if (flags.z())
- goto alreadyturned;
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- goto alreadyturned;
- data.byte(kReasseschanges) = 1;
- al = data.byte(kFacing);
- _cmp(al, data.byte(kLeavedirection));
- if (!flags.z())
- goto alreadyturned;
- checkforexit();
-alreadyturned:
- data.byte(kTurndirection) = 0;
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- goto walkman;
- es.byte(bx+29) = 0;
- goto notwalk;
-walkman:
- al = es.byte(bx+29);
- _inc(al);
- _cmp(al, 11);
- if (!flags.z())
- goto notanimend1;
- al = 1;
-notanimend1:
- es.byte(bx+29) = al;
- walking();
- _cmp(data.byte(kLinepointer), 254);
- if (flags.z())
- goto afterwalk;
- al = data.byte(kFacing);
- _and(al, 1);
- if (flags.z())
- goto isdouble;
- al = es.byte(bx+29);
- _cmp(al, 2);
- if (flags.z())
- goto afterwalk;
- _cmp(al, 7);
- if (flags.z())
- goto afterwalk;
-isdouble:
- walking();
-afterwalk:
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- goto notwalk;
- al = data.byte(kTurntoface);
- _cmp(al, data.byte(kFacing));
- if (!flags.z())
- goto notwalk;
- data.byte(kReasseschanges) = 1;
- al = data.byte(kFacing);
- _cmp(al, data.byte(kLeavedirection));
- if (!flags.z())
- goto notwalk;
- checkforexit();
-notwalk:
- al = data.byte(kFacing);
- ah = 0;
- di = 1105;
- _add(di, ax);
- al = cs.byte(di);
- _add(al, es.byte(bx+29));
- es.byte(bx+15) = al;
- ax = es.word(bx+10);
- data.byte(kRyanx) = al;
- data.byte(kRyany) = ah;
-}
-
-void DreamGenContext::aboutturn() {
- STACK_CHECK;
- _cmp(data.byte(kTurndirection), 1);
- if (flags.z())
- goto incdir;
- _cmp(data.byte(kTurndirection), -1);
- if (flags.z())
- goto decdir;
- al = data.byte(kFacing);
- _sub(al, data.byte(kTurntoface));
- if (!flags.c())
- goto higher;
- _neg(al);
- _cmp(al, 4);
- if (!flags.c())
- goto decdir;
- goto incdir;
-higher:
- _cmp(al, 4);
- if (!flags.c())
- goto incdir;
- goto decdir;
-incdir:
- data.byte(kTurndirection) = 1;
- al = data.byte(kFacing);
- _inc(al);
- _and(al, 7);
- data.byte(kFacing) = al;
- es.byte(bx+29) = 0;
- return;
-decdir:
- data.byte(kTurndirection) = -1;
- al = data.byte(kFacing);
- _dec(al);
- _and(al, 7);
- data.byte(kFacing) = al;
- es.byte(bx+29) = 0;
-}
-
-void DreamGenContext::walking() {
- STACK_CHECK;
- _cmp(data.byte(kLinedirection), 0);
- if (flags.z())
- goto normalwalk;
- al = data.byte(kLinepointer);
- _dec(al);
- data.byte(kLinepointer) = al;
- _cmp(al, 200);
- if (!flags.c())
- goto endofline;
- goto continuewalk;
-normalwalk:
- al = data.byte(kLinepointer);
- _inc(al);
- data.byte(kLinepointer) = al;
- _cmp(al, data.byte(kLinelength));
- if (!flags.c())
- goto endofline;
-continuewalk:
- ah = 0;
- _add(ax, ax);
- push(es);
- push(bx);
- dx = data;
- es = dx;
- bx = 8173;
- _add(bx, ax);
- ax = es.word(bx);
- bx = pop();
- es = pop();
- es.word(bx+10) = ax;
- return;
-endofline:
- data.byte(kLinepointer) = 254;
- al = data.byte(kDestination);
- data.byte(kManspath) = al;
- _cmp(al, data.byte(kFinaldest));
- if (flags.z())
- goto finishedwalk;
- al = data.byte(kFinaldest);
- data.byte(kDestination) = al;
- push(es);
- push(bx);
- autosetwalk();
- bx = pop();
- es = pop();
- return;
-finishedwalk:
- facerightway();
-}
-
-void DreamGenContext::facerightway() {
- STACK_CHECK;
- push(es);
- push(bx);
- getroomspaths();
- al = data.byte(kManspath);
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- _add(bx, ax);
- al = es.byte(bx+7);
- data.byte(kTurntoface) = al;
- data.byte(kLeavedirection) = al;
- bx = pop();
- es = pop();
-}
-
void DreamGenContext::checkforexit() {
STACK_CHECK;
cl = data.byte(kRyanx);
@@ -2811,7 +2292,7 @@ void DreamGenContext::initrain() {
STACK_CHECK;
es = data.word(kBuffers);
di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
- bx = 1113;
+ bx = offset_rainlocations;
checkmorerain:
al = cs.byte(bx);
_cmp(al, 255);
@@ -2954,239 +2435,6 @@ failrain:
al = 0;
}
-void DreamGenContext::showrain() {
- STACK_CHECK;
- ds = data.word(kMainsprites);
- si = 6*58;
- ax = ds.word(si+2);
- si = ax;
- _add(si, 2080);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
- es = data.word(kBuffers);
- _cmp(es.byte(bx), 255);
- if (flags.z())
- return /* (nothunder) */;
-morerain:
- es = data.word(kBuffers);
- _cmp(es.byte(bx), 255);
- if (flags.z())
- goto finishrain;
- al = es.byte(bx+1);
- ah = 0;
- _add(ax, data.word(kMapady));
- _add(ax, data.word(kMapystart));
- cx = 320;
- _mul(cx);
- cl = es.byte(bx);
- ch = 0;
- _add(ax, cx);
- _add(ax, data.word(kMapadx));
- _add(ax, data.word(kMapxstart));
- di = ax;
- cl = es.byte(bx+2);
- ch = 0;
- ax = es.word(bx+3);
- dl = es.byte(bx+5);
- dh = 0;
- _sub(ax, dx);
- _and(ax, 511);
- es.word(bx+3) = ax;
- _add(bx, 6);
- push(si);
- _add(si, ax);
- es = data.word(kWorkspace);
- ah = 0;
- dx = 320-2;
-rainloop:
- _lodsb();
- _cmp(al, ah);
- if (flags.z())
- goto noplot;
- _stosb();
- _add(di, dx);
- if (--cx)
- goto rainloop;
- si = pop();
- goto morerain;
-noplot:
- _add(di, 320-1);
- if (--cx)
- goto rainloop;
- si = pop();
- goto morerain;
-finishrain:
- _cmp(data.word(kCh1blockstocopy), 0);
- if (!flags.z())
- return /* (nothunder) */;
- _cmp(data.byte(kReallocation), 2);
- if (!flags.z())
- goto notlouisthund;
- _cmp(data.byte(kBeenmugged), 1);
- if (!flags.z())
- return /* (nothunder) */;
-notlouisthund:
- _cmp(data.byte(kReallocation), 55);
- if (flags.z())
- return /* (nothunder) */;
- randomnum1();
- _cmp(al, 1);
- if (!flags.c())
- return /* (nothunder) */;
- al = 7;
- _cmp(data.byte(kCh0playing), 6);
- if (flags.z())
- goto isthunder1;
- al = 4;
-isthunder1:
- playchannel1();
-}
-
-void DreamGenContext::backobject() {
- STACK_CHECK;
- ds = data.word(kSetdat);
- di = es.word(bx+20);
- al = es.byte(bx+18);
- _cmp(al, 0);
- if (flags.z())
- goto _tmp48z;
- _dec(al);
- es.byte(bx+18) = al;
- return /* (finishback) */;
-_tmp48z:
- al = ds.byte(di+7);
- es.byte(bx+18) = al;
- al = ds.byte(di+8);
- _cmp(al, 6);
- if (!flags.z())
- goto notwidedoor;
- widedoor();
- return /* (finishback) */;
-notwidedoor:
- _cmp(al, 5);
- if (!flags.z())
- goto notrandom;
- random();
- return /* (finishback) */;
-notrandom:
- _cmp(al, 4);
- if (!flags.z())
- goto notlockdoor;
- lockeddoorway();
- return /* (finishback) */;
-notlockdoor:
- _cmp(al, 3);
- if (!flags.z())
- goto notlift;
- liftsprite();
- return /* (finishback) */;
-notlift:
- _cmp(al, 2);
- if (!flags.z())
- goto notdoor;
- doorway();
- return /* (finishback) */;
-notdoor:
- _cmp(al, 1);
- if (!flags.z())
- goto steadyob;
- constant();
- return /* (finishback) */;
-steadyob:
- steady();
-}
-
-void DreamGenContext::liftsprite() {
- STACK_CHECK;
- al = data.byte(kLiftflag);
- _cmp(al, 0);
- if (flags.z())
- goto liftclosed;
- _cmp(al, 1);
- if (flags.z())
- goto liftopen;
- _cmp(al, 3);
- if (flags.z())
- goto openlift;
- al = es.byte(bx+19);
- _cmp(al, 0);
- if (flags.z())
- goto finishclose;
- _dec(al);
- _cmp(al, 11);
- if (!flags.z())
- goto pokelift;
- push(ax);
- al = 3;
- liftnoise();
- ax = pop();
- goto pokelift;
-finishclose:
- data.byte(kLiftflag) = 0;
- return;
-openlift:
- al = es.byte(bx+19);
- _cmp(al, 12);
- if (flags.z())
- goto endoflist;
- _inc(al);
- _cmp(al, 1);
- if (!flags.z())
- goto pokelift;
- push(ax);
- al = 2;
- liftnoise();
- ax = pop();
-pokelift:
- es.byte(bx+19) = al;
- ah = 0;
- push(di);
- _add(di, ax);
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- return;
-endoflist:
- data.byte(kLiftflag) = 1;
- return;
-liftopen:
- al = data.byte(kLiftpath);
- push(es);
- push(bx);
- turnpathon();
- bx = pop();
- es = pop();
- _cmp(data.byte(kCounttoclose), 0);
- if (flags.z())
- goto nocountclose;
- _dec(data.byte(kCounttoclose));
- _cmp(data.byte(kCounttoclose), 0);
- if (!flags.z())
- goto nocountclose;
- data.byte(kLiftflag) = 2;
-nocountclose:
- al = 12;
- goto pokelift;
-liftclosed:
- al = data.byte(kLiftpath);
- push(es);
- push(bx);
- turnpathoff();
- bx = pop();
- es = pop();
- _cmp(data.byte(kCounttoopen), 0);
- if (flags.z())
- goto nocountopen;
- _dec(data.byte(kCounttoopen));
- _cmp(data.byte(kCounttoopen), 0);
- if (!flags.z())
- goto nocountopen;
- data.byte(kLiftflag) = 3;
-nocountopen:
- al = 0;
- goto pokelift;
-}
-
void DreamGenContext::liftnoise() {
STACK_CHECK;
_cmp(data.byte(kReallocation), 5);
@@ -3240,335 +2488,6 @@ gotconst:
ds.byte(di+17) = al;
}
-void DreamGenContext::doorway() {
- STACK_CHECK;
- data.byte(kDoorcheck1) = -24;
- data.byte(kDoorcheck2) = 10;
- data.byte(kDoorcheck3) = -30;
- data.byte(kDoorcheck4) = 10;
- dodoor();
-}
-
-void DreamGenContext::widedoor() {
- STACK_CHECK;
- data.byte(kDoorcheck1) = -24;
- data.byte(kDoorcheck2) = 24;
- data.byte(kDoorcheck3) = -30;
- data.byte(kDoorcheck4) = 24;
- dodoor();
-}
-
-void DreamGenContext::dodoor() {
- STACK_CHECK;
- al = data.byte(kRyanx);
- ah = data.byte(kRyany);
- cl = es.byte(bx+10);
- ch = es.byte(bx+11);
- _cmp(al, cl);
- if (!flags.c())
- goto rtofdoor;
- _sub(al, cl);
- _cmp(al, data.byte(kDoorcheck1));
- if (!flags.c())
- goto upordown;
- goto shutdoor;
-rtofdoor:
- _sub(al, cl);
- _cmp(al, data.byte(kDoorcheck2));
- if (!flags.c())
- goto shutdoor;
-upordown:
- _cmp(ah, ch);
- if (!flags.c())
- goto botofdoor;
- _sub(ah, ch);
- _cmp(ah, data.byte(kDoorcheck3));
- if (flags.c())
- goto shutdoor;
- goto opendoor;
-botofdoor:
- _sub(ah, ch);
- _cmp(ah, data.byte(kDoorcheck4));
- if (!flags.c())
- goto shutdoor;
-opendoor:
- cl = es.byte(bx+19);
- _cmp(data.byte(kThroughdoor), 1);
- if (!flags.z())
- goto notthrough;
- _cmp(cl, 0);
- if (!flags.z())
- goto notthrough;
- cl = 6;
-notthrough:
- _inc(cl);
- _cmp(cl, 1);
- if (!flags.z())
- goto notdoorsound2;
- al = 0;
- _cmp(data.byte(kReallocation), 5);
- if (!flags.z())
- goto nothoteldoor2;
- al = 13;
-nothoteldoor2:
- playchannel1();
-notdoorsound2:
- ch = 0;
- push(di);
- _add(di, cx);
- al = ds.byte(di+18);
- _cmp(al, 255);
- if (!flags.z())
- goto atlast1;
- _dec(di);
- _dec(cl);
-atlast1:
- es.byte(bx+19) = cl;
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- data.byte(kThroughdoor) = 1;
- return;
-shutdoor:
- cl = es.byte(bx+19);
- _cmp(cl, 5);
- if (!flags.z())
- goto notdoorsound1;
- al = 1;
- _cmp(data.byte(kReallocation), 5);
- if (!flags.z())
- goto nothoteldoor1;
- al = 13;
-nothoteldoor1:
- playchannel1();
-notdoorsound1:
- _cmp(cl, 0);
- if (flags.z())
- goto atlast2;
- _dec(cl);
- es.byte(bx+19) = cl;
-atlast2:
- ch = 0;
- push(di);
- _add(di, cx);
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- _cmp(cl, 5);
- if (!flags.z())
- return /* (notnearly) */;
- data.byte(kThroughdoor) = 0;
-}
-
-void DreamGenContext::lockeddoorway() {
- STACK_CHECK;
- al = data.byte(kRyanx);
- ah = data.byte(kRyany);
- cl = es.byte(bx+10);
- ch = es.byte(bx+11);
- _cmp(al, cl);
- if (!flags.c())
- goto rtofdoor2;
- _sub(al, cl);
- _cmp(al, -24);
- if (!flags.c())
- goto upordown2;
- goto shutdoor2;
-rtofdoor2:
- _sub(al, cl);
- _cmp(al, 10);
- if (!flags.c())
- goto shutdoor2;
-upordown2:
- _cmp(ah, ch);
- if (!flags.c())
- goto botofdoor2;
- _sub(ah, ch);
- _cmp(ah, -30);
- if (flags.c())
- goto shutdoor2;
- goto opendoor2;
-botofdoor2:
- _sub(ah, ch);
- _cmp(ah, 12);
- if (!flags.c())
- goto shutdoor2;
-opendoor2:
- _cmp(data.byte(kThroughdoor), 1);
- if (flags.z())
- goto mustbeopen;
- _cmp(data.byte(kLockstatus), 1);
- if (flags.z())
- goto shutdoor;
-mustbeopen:
- cl = es.byte(bx+19);
- _cmp(cl, 1);
- if (!flags.z())
- goto notdoorsound4;
- al = 0;
- playchannel1();
-notdoorsound4:
- _cmp(cl, 6);
- if (!flags.z())
- goto noturnonyet;
- al = data.byte(kDoorpath);
- push(es);
- push(bx);
- turnpathon();
- bx = pop();
- es = pop();
-noturnonyet:
- cl = es.byte(bx+19);
- _cmp(data.byte(kThroughdoor), 1);
- if (!flags.z())
- goto notthrough2;
- _cmp(cl, 0);
- if (!flags.z())
- goto notthrough2;
- cl = 6;
-notthrough2:
- _inc(cl);
- ch = 0;
- push(di);
- _add(di, cx);
- al = ds.byte(di+18);
- _cmp(al, 255);
- if (!flags.z())
- goto atlast3;
- _dec(di);
- _dec(cl);
-atlast3:
- es.byte(bx+19) = cl;
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- _cmp(cl, 5);
- if (!flags.z())
- return /* (justshutting) */;
- data.byte(kThroughdoor) = 1;
- return;
-shutdoor2:
- cl = es.byte(bx+19);
- _cmp(cl, 5);
- if (!flags.z())
- goto notdoorsound3;
- al = 1;
- playchannel1();
-notdoorsound3:
- _cmp(cl, 0);
- if (flags.z())
- goto atlast4;
- _dec(cl);
- es.byte(bx+19) = cl;
-atlast4:
- ch = 0;
- data.byte(kThroughdoor) = 0;
- push(di);
- _add(di, cx);
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- _cmp(cl, 0);
- if (!flags.z())
- return /* (notlocky) */;
- al = data.byte(kDoorpath);
- push(es);
- push(bx);
- turnpathoff();
- bx = pop();
- es = pop();
- data.byte(kLockstatus) = 1;
- return;
-/*continuing to unbounded code: shutdoor from dodoor:60-87*/
-shutdoor:
- cl = es.byte(bx+19);
- _cmp(cl, 5);
- if (!flags.z())
- goto notdoorsound1;
- al = 1;
- _cmp(data.byte(kReallocation), 5);
- if (!flags.z())
- goto nothoteldoor1;
- al = 13;
-nothoteldoor1:
- playchannel1();
-notdoorsound1:
- _cmp(cl, 0);
- if (flags.z())
- goto atlast2;
- _dec(cl);
- es.byte(bx+19) = cl;
-atlast2:
- ch = 0;
- push(di);
- _add(di, cx);
- al = ds.byte(di+18);
- di = pop();
- es.byte(bx+15) = al;
- ds.byte(di+17) = al;
- _cmp(cl, 5);
- if (!flags.z())
- return /* (notnearly) */;
- data.byte(kThroughdoor) = 0;
-}
-
-void DreamGenContext::updatepeople() {
- STACK_CHECK;
- es = data.word(kBuffers);
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
- data.word(kListpos) = di;
- cx = 12*5;
- al = 255;
- _stosb(cx, true);
- _inc(data.word(kMaintimer));
- es = cs;
- bx = 534;
- di = 991;
-updateloop:
- al = es.byte(bx);
- _cmp(al, 255);
- if (flags.z())
- return /* (endupdate) */;
- _cmp(al, data.byte(kReallocation));
- if (!flags.z())
- goto notinthisroom;
- cx = es.word(bx+1);
- _cmp(cl, data.byte(kMapx));
- if (!flags.z())
- goto notinthisroom;
- _cmp(ch, data.byte(kMapy));
- if (!flags.z())
- goto notinthisroom;
- push(di);
- ax = cs.word(di);
- __dispatch_call(ax);
- di = pop();
-notinthisroom:
- _add(bx, 8);
- _add(di, 2);
- goto updateloop;
-}
-
-void DreamGenContext::getreelframeax() {
- STACK_CHECK;
- push(ds);
- data.word(kCurrentframe) = ax;
- findsource();
- es = ds;
- ds = pop();
- ax = data.word(kCurrentframe);
- _sub(ax, data.word(kTakeoff));
- _add(ax, ax);
- cx = ax;
- _add(ax, ax);
- _add(ax, cx);
- bx = ax;
-}
-
void DreamGenContext::reelsonscreen() {
STACK_CHECK;
reconstruct();
@@ -3578,48 +2497,6 @@ void DreamGenContext::reelsonscreen() {
usetimedtext();
}
-void DreamGenContext::plotreel() {
- STACK_CHECK;
- getreelstart();
-retryreel:
- push(es);
- push(si);
- ax = es.word(si+2);
- _cmp(al, 220);
- if (flags.c())
- goto normalreel;
- _cmp(al, 255);
- if (flags.z())
- goto normalreel;
- dealwithspecial();
- _inc(data.word(kReelpointer));
- si = pop();
- es = pop();
- _add(si, 40);
- goto retryreel;
-normalreel:
- cx = 8;
-plotloop:
- push(cx);
- push(es);
- push(si);
- ax = es.word(si);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto notplot;
- showreelframe();
-notplot:
- si = pop();
- es = pop();
- cx = pop();
- _add(si, 5);
- if (--cx)
- goto plotloop;
- soundonreels();
- bx = pop();
- es = pop();
-}
-
void DreamGenContext::soundonreels() {
STACK_CHECK;
bl = data.byte(kReallocation);
@@ -3685,126 +2562,6 @@ notfudge:
data.byte(kHavedoneobs) = 0;
}
-void DreamGenContext::dealwithspecial() {
- STACK_CHECK;
- _sub(al, 220);
- _cmp(al, 0);
- if (!flags.z())
- goto notplset;
- al = ah;
- placesetobject();
- data.byte(kHavedoneobs) = 1;
- return;
-notplset:
- _cmp(al, 1);
- if (!flags.z())
- goto notremset;
- al = ah;
- removesetobject();
- data.byte(kHavedoneobs) = 1;
- return;
-notremset:
- _cmp(al, 2);
- if (!flags.z())
- goto notplfree;
- al = ah;
- placefreeobject();
- data.byte(kHavedoneobs) = 1;
- return;
-notplfree:
- _cmp(al, 3);
- if (!flags.z())
- goto notremfree;
- al = ah;
- removefreeobject();
- data.byte(kHavedoneobs) = 1;
- return;
-notremfree:
- _cmp(al, 4);
- if (!flags.z())
- goto notryanoff;
- switchryanoff();
- return;
-notryanoff:
- _cmp(al, 5);
- if (!flags.z())
- goto notryanon;
- data.byte(kTurntoface) = ah;
- data.byte(kFacing) = ah;
- switchryanon();
- return;
-notryanon:
- _cmp(al, 6);
- if (!flags.z())
- goto notchangeloc;
- data.byte(kNewlocation) = ah;
- return;
-notchangeloc:
- movemap();
-}
-
-void DreamGenContext::movemap() {
- STACK_CHECK;
- _cmp(ah, 32);
- if (!flags.z())
- goto notmapup2;
- _sub(data.byte(kMapy), 20);
- data.byte(kNowinnewroom) = 1;
- return;
-notmapup2:
- _cmp(ah, 16);
- if (!flags.z())
- goto notmapupspec;
- _sub(data.byte(kMapy), 10);
- data.byte(kNowinnewroom) = 1;
- return;
-notmapupspec:
- _cmp(ah, 8);
- if (!flags.z())
- goto notmapdownspec;
- _add(data.byte(kMapy), 10);
- data.byte(kNowinnewroom) = 1;
- return;
-notmapdownspec:
- _cmp(ah, 2);
- if (!flags.z())
- goto notmaprightspec;
- _add(data.byte(kMapx), 11);
- data.byte(kNowinnewroom) = 1;
- return;
-notmaprightspec:
- _sub(data.byte(kMapx), 11);
- data.byte(kNowinnewroom) = 1;
-}
-
-void DreamGenContext::getreelstart() {
- STACK_CHECK;
- ax = data.word(kReelpointer);
- cx = 40;
- _mul(cx);
- es = data.word(kReels);
- si = ax;
- _add(si, (0+(36*144)));
-}
-
-void DreamGenContext::showreelframe() {
- STACK_CHECK;
- al = es.byte(si+2);
- ah = 0;
- di = ax;
- _add(di, data.word(kMapadx));
- al = es.byte(si+3);
- bx = ax;
- _add(bx, data.word(kMapady));
- ax = es.word(si);
- data.word(kCurrentframe) = ax;
- findsource();
- ax = data.word(kCurrentframe);
- _sub(ax, data.word(kTakeoff));
- ah = 8;
- showframe();
-}
-
void DreamGenContext::deleverything() {
STACK_CHECK;
al = data.byte(kMapysize);
@@ -3879,13 +2636,6 @@ dumpevery2:
goto dumpevery2;
}
-void DreamGenContext::allocatework() {
- STACK_CHECK;
- bx = 0x1000;
- allocatemem();
- data.word(kWorkspace) = ax;
-}
-
void DreamGenContext::loadpalfromiff() {
STACK_CHECK;
dx = 2481;
@@ -4047,68 +2797,6 @@ void DreamGenContext::createpanel2() {
showframe();
}
-void DreamGenContext::clearwork() {
- STACK_CHECK;
- ax = 0x0;
- es = data.word(kWorkspace);
- di = 0;
- cx = (200*320)/64;
-clearloop:
- _stosw(32);
- if (--cx)
- goto clearloop;
-}
-
-void DreamGenContext::zoom() {
- STACK_CHECK;
- _cmp(data.word(kWatchingtime), 0);
- if (!flags.z())
- return /* (inwatching) */;
- _cmp(data.byte(kZoomon), 1);
- if (flags.z())
- goto zoomswitch;
- return;
-zoomswitch:
- _cmp(data.byte(kCommandtype), 199);
- if (flags.c())
- goto zoomit;
- putunderzoom();
- return;
-zoomit:
- ax = data.word(kOldpointery);
- _sub(ax, 9);
- cx = (320);
- _mul(cx);
- _add(ax, data.word(kOldpointerx));
- _sub(ax, 11);
- si = ax;
- ax = (132)+4;
- cx = (320);
- _mul(cx);
- _add(ax, (8)+5);
- di = ax;
- es = data.word(kWorkspace);
- ds = data.word(kWorkspace);
- cx = 20;
-zoomloop:
- push(cx);
- cx = 23;
-zoomloop2:
- _lodsb();
- ah = al;
- _stosw();
- es.word(di+(320)-2) = ax;
- if (--cx)
- goto zoomloop2;
- _add(si, (320)-23);
- _add(di, (320)-46+(320));
- cx = pop();
- if (--cx)
- goto zoomloop;
- crosshair();
- data.byte(kDidzoom) = 1;
-}
-
void DreamGenContext::delthisone() {
STACK_CHECK;
push(ax);
@@ -4153,275 +2841,6 @@ deloneloop:
goto deloneloop;
}
-void DreamGenContext::doblocks() {
- STACK_CHECK;
- es = data.word(kWorkspace);
- ax = data.word(kMapady);
- cx = (320);
- _mul(cx);
- di = data.word(kMapadx);
- _add(di, ax);
- al = data.byte(kMapy);
- ah = 0;
- bx = (66);
- _mul(bx);
- bl = data.byte(kMapx);
- bh = 0;
- _add(ax, bx);
- si = (0);
- _add(si, ax);
- cx = 10;
-loop120:
- push(di);
- push(cx);
- cx = 11;
-loop124:
- push(cx);
- push(di);
- ds = data.word(kMapdata);
- _lodsb();
- ds = data.word(kBackdrop);
- push(si);
- _cmp(al, 0);
- if (flags.z())
- goto zeroblock;
- ah = al;
- al = 0;
- si = (0+192);
- _add(si, ax);
- bh = 14;
- bh = 4;
-firstbitofblock:
- _movsw(8);
- _add(di, (320)-16);
- _dec(bh);
- if (!flags.z())
- goto firstbitofblock;
- bh = 12;
-loop125:
- _movsw(8);
- ax = 0x0dfdf;
- _stosw(2);
- _add(di, (320)-20);
- _dec(bh);
- if (!flags.z())
- goto loop125;
- _add(di, 4);
- ax = 0x0dfdf;
- _stosw(8);
- _add(di, (320)-16);
- _stosw(8);
- _add(di, (320)-16);
- _stosw(8);
- _add(di, (320)-16);
- _stosw(8);
-zeroblock:
- si = pop();
- di = pop();
- cx = pop();
- _add(di, 16);
- if (--cx)
- goto loop124;
- _add(si, (66)-11);
- cx = pop();
- di = pop();
- _add(di, (320)*16);
- if (--cx)
- goto loop120;
-}
-
-void DreamGenContext::showframe() {
- STACK_CHECK;
- push(dx);
- push(ax);
- cx = ax;
- _and(cx, 511);
- _add(cx, cx);
- si = cx;
- _add(cx, cx);
- _add(si, cx);
- _cmp(ds.word(si), 0);
- if (!flags.z())
- goto notblankshow;
- ax = pop();
- dx = pop();
- cx = 0;
- return;
-notblankshow:
- _test(ah, 128);
- if (!flags.z())
- goto skipoffsets;
- al = ds.byte(si+4);
- ah = 0;
- _add(di, ax);
- al = ds.byte(si+5);
- ah = 0;
- _add(bx, ax);
-skipoffsets:
- cx = ds.word(si+0);
- ax = ds.word(si+2);
- _add(ax, 2080);
- si = ax;
- ax = pop();
- dx = pop();
- _cmp(ah, 0);
- if (flags.z())
- goto noeffects;
- _test(ah, 128);
- if (flags.z())
- goto notcentred;
- push(ax);
- al = cl;
- ah = 0;
- _shr(ax, 1);
- _sub(di, ax);
- al = ch;
- ah = 0;
- _shr(ax, 1);
- _sub(bx, ax);
- ax = pop();
-notcentred:
- _test(ah, 64);
- if (flags.z())
- goto notdiffdest;
- push(cx);
- frameoutfx();
- cx = pop();
- return;
-notdiffdest:
- _test(ah, 8);
- if (flags.z())
- goto notprintlist;
- push(ax);
- ax = di;
- _sub(ax, data.word(kMapadx));
- push(bx);
- _sub(bx, data.word(kMapady));
- ah = bl;
- bx = pop();
- ax = pop();
-notprintlist:
- _test(ah, 4);
- if (flags.z())
- goto notflippedx;
- dx = (320);
- es = data.word(kWorkspace);
- push(cx);
- frameoutfx();
- cx = pop();
- return;
-notflippedx:
- _test(ah, 2);
- if (flags.z())
- goto notnomask;
- dx = (320);
- es = data.word(kWorkspace);
- push(cx);
- frameoutnm();
- cx = pop();
- return;
-notnomask:
- _test(ah, 32);
- if (flags.z())
- goto noeffects;
- dx = (320);
- es = data.word(kWorkspace);
- push(cx);
- frameoutbh();
- cx = pop();
- return;
-noeffects:
- dx = (320);
- es = data.word(kWorkspace);
- push(cx);
- frameoutv();
- cx = pop();
-}
-
-void DreamGenContext::frameoutbh() {
- STACK_CHECK;
- push(dx);
- ax = bx;
- bx = dx;
- _mul(bx);
- _add(di, ax);
- dx = pop();
- push(cx);
- ch = 0;
- _sub(dx, cx);
- cx = pop();
-bhloop2:
- push(cx);
- ch = 0;
- ah = 255;
-bhloop1:
- _cmp(es.byte(di), ah);
- if (!flags.z())
- goto nofill;
- _movsb();
- if (--cx)
- goto bhloop1;
- goto nextline;
-nofill:
- _inc(di);
- _inc(si);
- if (--cx)
- goto bhloop1;
-nextline:
- _add(di, dx);
- cx = pop();
- _dec(ch);
- if (!flags.z())
- goto bhloop2;
-}
-
-void DreamGenContext::frameoutfx() {
- STACK_CHECK;
- push(dx);
- ax = bx;
- bx = dx;
- _mul(bx);
- _add(di, ax);
- dx = pop();
- push(cx);
- ch = 0;
- _add(dx, cx);
- cx = pop();
-frameloopfx1:
- push(cx);
- ch = 0;
-frameloopfx2:
- _lodsb();
- _cmp(al, 0);
- if (!flags.z())
- goto backtosolidfx;
-backtootherfx:
- _dec(di);
- if (--cx)
- goto frameloopfx2;
- cx = pop();
- _add(di, dx);
- _dec(ch);
- if (!flags.z())
- goto frameloopfx1;
- return;
-frameloopfx3:
- _lodsb();
- _cmp(al, 0);
- if (flags.z())
- goto backtootherfx;
-backtosolidfx:
- es.byte(di) = al;
- _dec(di);
- if (--cx)
- goto frameloopfx3;
- cx = pop();
- _add(di, dx);
- _dec(ch);
- if (!flags.z())
- goto frameloopfx1;
-}
-
void DreamGenContext::transferinv() {
STACK_CHECK;
di = data.word(kExframepos);
@@ -5507,170 +3926,6 @@ realcreditsearly:
data.byte(kLasthardkey) = 0;
}
-void DreamGenContext::printchar() {
- STACK_CHECK;
- _cmp(al, 255);
- if (flags.z())
- return /* (ignoreit) */;
- push(si);
- push(bx);
- push(di);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(bx, 3);
-_tmp1:
- push(ax);
- _sub(al, 32);
- ah = 0;
- _add(ax, data.word(kCharshift));
- showframe();
- ax = pop();
- di = pop();
- bx = pop();
- si = pop();
- _cmp(data.byte(kKerning), 0);
- if (!flags.z())
- goto nokern;
- kernchars();
-nokern:
- push(cx);
- ch = 0;
- _add(di, cx);
- cx = pop();
-}
-
-void DreamGenContext::kernchars() {
- STACK_CHECK;
- _cmp(al, 'a');
- if (flags.z())
- goto iskern;
- _cmp(al, 'u');
- if (flags.z())
- goto iskern;
- return;
-iskern:
- _cmp(ah, 'n');
- if (flags.z())
- goto kernit;
- _cmp(ah, 't');
- if (flags.z())
- goto kernit;
- _cmp(ah, 'r');
- if (flags.z())
- goto kernit;
- _cmp(ah, 'i');
- if (flags.z())
- goto kernit;
- _cmp(ah, 'l');
- if (flags.z())
- goto kernit;
- return;
-kernit:
- _dec(cl);
-}
-
-void DreamGenContext::printslow() {
- STACK_CHECK;
- data.byte(kPointerframe) = 1;
- data.byte(kPointermode) = 3;
- ds = data.word(kCharset1);
-printloopslow6:
- push(bx);
- push(di);
- push(dx);
- getnumber();
- ch = 0;
-printloopslow5:
- push(cx);
- push(si);
- push(es);
- ax = es.word(si);
- push(bx);
- push(cx);
- push(es);
- push(si);
- push(ds);
- modifychar();
- printboth();
- ds = pop();
- si = pop();
- es = pop();
- cx = pop();
- bx = pop();
- ax = es.word(si+1);
- _inc(si);
- _cmp(al, 0);
- if (flags.z())
- goto finishslow;
- _cmp(al, ':');
- if (flags.z())
- goto finishslow;
- _cmp(cl, 1);
- if (flags.z())
- goto afterslow;
- push(di);
- push(ds);
- push(bx);
- push(cx);
- push(es);
- push(si);
- modifychar();
- data.word(kCharshift) = 91;
- printboth();
- data.word(kCharshift) = 0;
- si = pop();
- es = pop();
- cx = pop();
- bx = pop();
- ds = pop();
- di = pop();
- waitframes();
- _cmp(ax, 0);
- if (flags.z())
- goto keepgoing;
- _cmp(ax, data.word(kOldbutton));
- if (!flags.z())
- goto finishslow2;
-keepgoing:
- waitframes();
- _cmp(ax, 0);
- if (flags.z())
- goto afterslow;
- _cmp(ax, data.word(kOldbutton));
- if (!flags.z())
- goto finishslow2;
-afterslow:
- es = pop();
- si = pop();
- cx = pop();
- _inc(si);
- if (--cx)
- goto printloopslow5;
- dx = pop();
- di = pop();
- bx = pop();
- _add(bx, 10);
- goto printloopslow6;
-finishslow:
- es = pop();
- si = pop();
- cx = pop();
- dx = pop();
- di = pop();
- bx = pop();
- al = 0;
- return;
-finishslow2:
- es = pop();
- si = pop();
- cx = pop();
- dx = pop();
- di = pop();
- bx = pop();
- al = 1;
-}
-
void DreamGenContext::waitframes() {
STACK_CHECK;
push(di);
@@ -5691,62 +3946,6 @@ void DreamGenContext::waitframes() {
di = pop();
}
-void DreamGenContext::printboth() {
- STACK_CHECK;
- push(ax);
- push(cx);
- push(bx);
- push(di);
- printchar();
- ax = pop();
- push(di);
- di = ax;
- multidump();
- di = pop();
- bx = pop();
- cx = pop();
- ax = pop();
-}
-
-void DreamGenContext::printdirect() {
- STACK_CHECK;
- data.word(kLastxpos) = di;
- ds = data.word(kCurrentset);
-printloop6:
- push(bx);
- push(di);
- push(dx);
- getnumber();
- ch = 0;
-printloop5:
- ax = es.word(si);
- _inc(si);
- _cmp(al, 0);
- if (flags.z())
- goto finishdirct;
- _cmp(al, ':');
- if (flags.z())
- goto finishdirct;
- push(cx);
- push(es);
- modifychar();
- printchar();
- data.word(kLastxpos) = di;
- es = pop();
- cx = pop();
- if (--cx)
- goto printloop5;
- dx = pop();
- di = pop();
- bx = pop();
- _add(bx, data.word(kLinespacing));
- goto printloop6;
-finishdirct:
- dx = pop();
- di = pop();
- bx = pop();
-}
-
void DreamGenContext::monprint() {
STACK_CHECK;
data.byte(kKerning) = 1;
@@ -5833,156 +4032,6 @@ nottrigger2:
data.byte(kKerning) = 0;
}
-void DreamGenContext::getnumber() {
- STACK_CHECK;
- cx = 0;
- push(si);
- push(bx);
- push(di);
- push(ds);
- push(es);
- di = si;
-wordloop:
- push(cx);
- push(dx);
- getnextword();
- dx = pop();
- cx = pop();
- _cmp(al, 1);
- if (flags.z())
- goto endoftext;
- al = cl;
- ah = 0;
- push(bx);
- bh = 0;
- _add(ax, bx);
- bx = pop();
- _sub(ax, 10);
- dh = 0;
- _cmp(ax, dx);
- if (!flags.c())
- goto gotoverend;
- _add(cl, bl);
- _add(ch, bh);
- goto wordloop;
-gotoverend:
- al = dl;
- _and(al, 1);
- if (flags.z())
- goto notcentre;
- push(cx);
- al = dl;
- _and(al, 0xfe);
- ah = 0;
- ch = 0;
- _sub(ax, cx);
- _add(ax, 20);
- _shr(ax, 1);
- cx = pop();
- es = pop();
- ds = pop();
- di = pop();
- bx = pop();
- si = pop();
- _add(di, ax);
- cl = ch;
- return;
-notcentre:
- es = pop();
- ds = pop();
- di = pop();
- bx = pop();
- si = pop();
- cl = ch;
- return;
-endoftext:
- al = cl;
- ah = 0;
- push(bx);
- bh = 0;
- _add(ax, bx);
- bx = pop();
- _sub(ax, 10);
- dh = 0;
- _cmp(ax, dx);
- if (!flags.c())
- goto gotoverend2;
- _add(cl, bl);
- _add(ch, bh);
-gotoverend2:
- al = dl;
- _and(al, 1);
- if (flags.z())
- goto notcent2;
- push(cx);
- al = dl;
- _and(al, 0xfe);
- _add(al, 2);
- ah = 0;
- ch = 0;
- _add(ax, 20);
- _sub(ax, cx);
- _shr(ax, 1);
- cx = pop();
- es = pop();
- ds = pop();
- di = pop();
- bx = pop();
- si = pop();
- _add(di, ax);
- cl = ch;
- return;
-notcent2:
- es = pop();
- ds = pop();
- di = pop();
- bx = pop();
- si = pop();
- cl = ch;
-}
-
-void DreamGenContext::getnextword() {
- STACK_CHECK;
- bx = 0;
-getloop:
- ax = es.word(di);
- _inc(di);
- _inc(bh);
- _cmp(al, ':');
- if (flags.z())
- goto endall;
- _cmp(al, 0);
- if (flags.z())
- goto endall;
- _cmp(al, 32);
- if (flags.z())
- goto endword;
- modifychar();
- _cmp(al, 255);
- if (flags.z())
- goto getloop;
- push(ax);
- _sub(al, 32);
- ah = 0;
- _add(ax, data.word(kCharshift));
- _add(ax, ax);
- si = ax;
- _add(ax, ax);
- _add(si, ax);
- cl = ds.byte(si+0);
- ax = pop();
- kernchars();
- _add(bl, cl);
- goto getloop;
-endword:
- _add(bl, 6);
- al = 0;
- return;
-endall:
- _add(bl, 6);
- al = 1;
-}
-
void DreamGenContext::fillryan() {
STACK_CHECK;
es = data.word(kBuffers);
@@ -6291,15 +4340,15 @@ waitexam:
dumptextline();
delpointer();
data.byte(kGetback) = 0;
- bx = 2494;
+ bx = offset_examlist;
_cmp(data.byte(kInvopen), 0);
if (flags.z())
goto notuseinv;
- bx = 2556;
+ bx = offset_invlist1;
_cmp(data.byte(kInvopen), 1);
if (flags.z())
goto notuseinv;
- bx = 2618;
+ bx = offset_withlist1;
notuseinv:
checkcoords();
_cmp(data.byte(kExamagain), 0);
@@ -6430,7 +4479,7 @@ void DreamGenContext::openob() {
STACK_CHECK;
al = data.byte(kOpenedob);
ah = data.byte(kOpenedtype);
- di = 5847;
+ di = offset_commandline;
copyname();
di = (80);
bx = (58)+86;
@@ -6441,7 +4490,7 @@ void DreamGenContext::openob() {
_add(di, 5);
bx = (58)+86;
es = cs;
- si = 5847;
+ si = offset_commandline;
dl = 220;
al = 0;
ah = 0;
@@ -6453,7 +4502,7 @@ void DreamGenContext::openob() {
cx = (44);
_mul(cx);
_add(ax, (80));
- bx = 2588;
+ bx = offset_openchangesize;
cs.word(bx) = ax;
}
@@ -6805,15 +4854,15 @@ waitexam:
dumptextline();
delpointer();
data.byte(kGetback) = 0;
- bx = 2494;
+ bx = offset_examlist;
_cmp(data.byte(kInvopen), 0);
if (flags.z())
goto notuseinv;
- bx = 2556;
+ bx = offset_invlist1;
_cmp(data.byte(kInvopen), 1);
if (flags.z())
goto notuseinv;
- bx = 2618;
+ bx = offset_withlist1;
notuseinv:
checkcoords();
_cmp(data.byte(kExamagain), 0);
@@ -7171,31 +5220,6 @@ doplace:
delpointer();
}
-void DreamGenContext::deletetaken() {
- STACK_CHECK;
- es = data.word(kFreedat);
- ah = data.byte(kReallocation);
- ds = data.word(kExtras);
- si = (0+2080+30000);
- cx = (114);
-takenloop:
- al = ds.byte(si+11);
- _cmp(al, ah);
- if (!flags.z())
- goto notinhere;
- bl = ds.byte(si+1);
- bh = 0;
- _add(bx, bx);
- _add(bx, bx);
- _add(bx, bx);
- _add(bx, bx);
- es.byte(bx+2) = 254;
-notinhere:
- _add(si, 16);
- if (--cx)
- goto takenloop;
-}
-
void DreamGenContext::outofinv() {
STACK_CHECK;
findinvpos();
@@ -8317,151 +6341,6 @@ void DreamGenContext::drawfloor() {
es = pop();
}
-void DreamGenContext::calcmapad() {
- STACK_CHECK;
- getdimension();
- push(cx);
- push(dx);
- al = 11;
- _sub(al, dl);
- _sub(al, cl);
- _sub(al, cl);
- ax.cbw();
- bx = 8;
- _mul(bx);
- _add(ax, data.word(kMapoffsetx));
- data.word(kMapadx) = ax;
- dx = pop();
- cx = pop();
- al = 10;
- _sub(al, dh);
- _sub(al, ch);
- _sub(al, ch);
- ax.cbw();
- bx = 8;
- _mul(bx);
- _add(ax, data.word(kMapoffsety));
- data.word(kMapady) = ax;
-}
-
-void DreamGenContext::getdimension() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32));
- ch = 0;
-dimloop1:
- addalong();
- _cmp(al, 0);
- if (!flags.z())
- goto finishdim1;
- _inc(ch);
- goto dimloop1;
-finishdim1:
- bx = (0+(228*13)+32+60+(32*32));
- cl = 0;
-dimloop2:
- push(bx);
- addlength();
- bx = pop();
- _cmp(al, 0);
- if (!flags.z())
- goto finishdim2;
- _inc(cl);
- _add(bx, 3);
- goto dimloop2;
-finishdim2:
- bx = (0+(228*13)+32+60+(32*32))+(11*3*9);
- dh = 10;
-dimloop3:
- push(bx);
- addalong();
- bx = pop();
- _cmp(al, 0);
- if (!flags.z())
- goto finishdim3;
- _dec(dh);
- _sub(bx, 11*3);
- goto dimloop3;
-finishdim3:
- bx = (0+(228*13)+32+60+(32*32))+(3*10);
- dl = 11;
-dimloop4:
- push(bx);
- addlength();
- bx = pop();
- _cmp(al, 0);
- if (!flags.z())
- goto finishdim4;
- _dec(dl);
- _sub(bx, 3);
- goto dimloop4;
-finishdim4:
- al = cl;
- ah = 0;
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- data.word(kMapxstart) = ax;
- al = ch;
- ah = 0;
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- data.word(kMapystart) = ax;
- _sub(dl, cl);
- _sub(dh, ch);
- al = dl;
- ah = 0;
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- data.byte(kMapxsize) = al;
- al = dh;
- ah = 0;
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- _shl(ax, 1);
- data.byte(kMapysize) = al;
-}
-
-void DreamGenContext::addalong() {
- STACK_CHECK;
- ah = 11;
-addloop:
- _cmp(es.byte(bx), 0);
- if (!flags.z())
- goto gotalong;
- _add(bx, 3);
- _dec(ah);
- if (!flags.z())
- goto addloop;
- al = 0;
- return;
-gotalong:
- al = 1;
-}
-
-void DreamGenContext::addlength() {
- STACK_CHECK;
- ah = 10;
-addloop2:
- _cmp(es.byte(bx), 0);
- if (!flags.z())
- goto gotlength;
- _add(bx, 3*11);
- _dec(ah);
- if (!flags.z())
- goto addloop2;
- al = 0;
- return;
-gotlength:
- al = 1;
-}
-
void DreamGenContext::drawflags() {
STACK_CHECK;
es = data.word(kBuffers);
@@ -8501,235 +6380,6 @@ _tmp28a:
goto _tmp28;
}
-void DreamGenContext::eraseoldobs() {
- STACK_CHECK;
- _cmp(data.byte(kNewobs), 0);
- if (flags.z())
- return /* (donterase) */;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- cx = 16;
-oberase:
- push(cx);
- push(bx);
- ax = es.word(bx+20);
- _cmp(ax, 0x0ffff);
- if (flags.z())
- goto notthisob;
- di = bx;
- al = 255;
- cx = (32);
- _stosb(cx, true);
-notthisob:
- bx = pop();
- cx = pop();
- _add(bx, (32));
- if (--cx)
- goto oberase;
-}
-
-void DreamGenContext::showallobs() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
- data.word(kListpos) = bx;
- di = bx;
- cx = 128*5;
- al = 255;
- _stosb(cx, true);
- es = data.word(kSetframes);
- data.word(kFrsegment) = es;
- ax = (0);
- data.word(kDataad) = ax;
- ax = (0+2080);
- data.word(kFramesad) = ax;
- data.byte(kCurrentob) = 0;
- ds = data.word(kSetdat);
- si = 0;
- cx = 128;
-showobsloop:
- push(cx);
- push(si);
- push(si);
- _add(si, 58);
- es = data.word(kSetdat);
- getmapad();
- si = pop();
- _cmp(ch, 0);
- if (flags.z())
- goto blankframe;
- al = es.byte(si+18);
- ah = 0;
- data.word(kCurrentframe) = ax;
- _cmp(al, 255);
- if (flags.z())
- goto blankframe;
- push(es);
- push(si);
- calcfrframe();
- finalframe();
- si = pop();
- es = pop();
- al = es.byte(si+18);
- es.byte(si+17) = al;
- _cmp(es.byte(si+8), 0);
- if (!flags.z())
- goto animating;
- _cmp(es.byte(si+5), 5);
- if (flags.z())
- goto animating;
- _cmp(es.byte(si+5), 6);
- if (flags.z())
- goto animating;
- ax = data.word(kCurrentframe);
- ah = 0;
- _add(di, data.word(kMapadx));
- _add(bx, data.word(kMapady));
- showframe();
- goto drawnsetob;
-animating:
- makebackob();
-drawnsetob:
- si = data.word(kListpos);
- es = data.word(kBuffers);
- al = data.byte(kSavex);
- ah = data.byte(kSavey);
- es.word(si) = ax;
- cx = ax;
- ax = data.word(kSavesize);
- _add(al, cl);
- _add(ah, ch);
- es.word(si+2) = ax;
- al = data.byte(kCurrentob);
- es.byte(si+4) = al;
- _add(si, 5);
- data.word(kListpos) = si;
-blankframe:
- _inc(data.byte(kCurrentob));
- si = pop();
- cx = pop();
- _add(si, 64);
- _dec(cx);
- if (flags.z())
- return /* (finishedsetobs) */;
- goto showobsloop;
-}
-
-void DreamGenContext::makebackob() {
- STACK_CHECK;
- _cmp(data.byte(kNewobs), 0);
- if (flags.z())
- return /* (nomake) */;
- al = es.byte(si+5);
- ah = es.byte(si+8);
- push(si);
- push(ax);
- push(si);
- ax = data.word(kObjectx);
- bx = data.word(kObjecty);
- ah = bl;
- si = ax;
- cx = 49520;
- dx = data.word(kSetframes);
- di = (0);
- makesprite();
- ax = pop();
- es.word(bx+20) = ax;
- ax = pop();
- _cmp(al, 255);
- if (!flags.z())
- goto usedpriority;
- al = 0;
-usedpriority:
- es.byte(bx+23) = al;
- es.byte(bx+30) = ah;
- es.byte(bx+16) = 0;
- es.byte(bx+18) = 0;
- es.byte(bx+19) = 0;
- si = pop();
-}
-
-void DreamGenContext::showallfree() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
- data.word(kListpos) = bx;
- di = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
- cx = 80*5;
- al = 255;
- _stosb(cx, true);
- es = data.word(kFreeframes);
- data.word(kFrsegment) = es;
- ax = (0);
- data.word(kDataad) = ax;
- ax = (0+2080);
- data.word(kFramesad) = ax;
- al = 0;
- data.byte(kCurrentfree) = al;
- ds = data.word(kFreedat);
- si = 2;
- cx = 0;
-loop127:
- push(cx);
- push(si);
- push(si);
- es = data.word(kFreedat);
- getmapad();
- si = pop();
- _cmp(ch, 0);
- if (flags.z())
- goto over138;
- al = data.byte(kCurrentfree);
- ah = 0;
- dx = ax;
- _add(ax, ax);
- _add(ax, dx);
- data.word(kCurrentframe) = ax;
- push(es);
- push(si);
- calcfrframe();
- es = data.word(kMapstore);
- ds = data.word(kFrsegment);
- finalframe();
- si = pop();
- es = pop();
- _cmp(cx, 0);
- if (flags.z())
- goto over138;
- ax = data.word(kCurrentframe);
- ah = 0;
- _add(di, data.word(kMapadx));
- _add(bx, data.word(kMapady));
- showframe();
- si = data.word(kListpos);
- es = data.word(kBuffers);
- al = data.byte(kSavex);
- ah = data.byte(kSavey);
- es.word(si) = ax;
- cx = ax;
- ax = data.word(kSavesize);
- _add(al, cl);
- _add(ah, ch);
- es.word(si+2) = ax;
- ax = pop();
- cx = pop();
- push(cx);
- push(ax);
- es.byte(si+4) = cl;
- _add(si, 5);
- data.word(kListpos) = si;
-over138:
- _inc(data.byte(kCurrentfree));
- si = pop();
- cx = pop();
- _add(si, 16);
- _inc(cx);
- _cmp(cx, 80);
- if (flags.z())
- return /* (finfree) */;
- goto loop127;
-}
-
void DreamGenContext::showallex() {
STACK_CHECK;
es = data.word(kBuffers);
@@ -8818,128 +6468,6 @@ blankex:
goto exloop;
}
-void DreamGenContext::calcfrframe() {
- STACK_CHECK;
- dx = data.word(kFrsegment);
- ax = data.word(kFramesad);
- push(ax);
- cx = data.word(kDataad);
- ax = data.word(kCurrentframe);
- ds = dx;
- bx = 6;
- _mul(bx);
- _add(ax, cx);
- bx = ax;
- cx = ds.word(bx);
- ax = ds.word(bx+2);
- dx = ds.word(bx+4);
- bx = pop();
- push(dx);
- _add(ax, bx);
- data.word(kSavesource) = ax;
- data.word(kSavesize) = cx;
- ax = pop();
- push(ax);
- ah = 0;
- data.word(kOffsetx) = ax;
- ax = pop();
- al = ah;
- ah = 0;
- data.word(kOffsety) = ax;
- return;
- ax = pop();
- cx = 0;
- data.word(kSavesize) = cx;
-}
-
-void DreamGenContext::finalframe() {
- STACK_CHECK;
- ax = data.word(kObjecty);
- _add(ax, data.word(kOffsety));
- bx = data.word(kObjectx);
- _add(bx, data.word(kOffsetx));
- data.byte(kSavex) = bl;
- data.byte(kSavey) = al;
- di = data.word(kObjectx);
- bx = data.word(kObjecty);
-}
-
-void DreamGenContext::adjustlen() {
- STACK_CHECK;
- ah = al;
- _add(al, ch);
- _cmp(al, 100);
- if (flags.c())
- return /* (over242) */;
- al = 224;
- _sub(al, ch);
- ch = al;
-}
-
-void DreamGenContext::getmapad() {
- STACK_CHECK;
- getxad();
- _cmp(ch, 0);
- if (flags.z())
- return /* (over146) */;
- data.word(kObjectx) = ax;
- getyad();
- _cmp(ch, 0);
- if (flags.z())
- return /* (over146) */;
- data.word(kObjecty) = ax;
- ch = 1;
-}
-
-void DreamGenContext::getxad() {
- STACK_CHECK;
- cl = es.byte(si);
- _inc(si);
- al = es.byte(si);
- _inc(si);
- ah = es.byte(si);
- _inc(si);
- _cmp(cl, 0);
- if (!flags.z())
- goto over148;
- _sub(al, data.byte(kMapx));
- if (flags.c())
- goto over148;
- _cmp(al, 11);
- if (!flags.c())
- goto over148;
- cl = 4;
- _shl(al, cl);
- _or(al, ah);
- ah = 0;
- ch = 1;
- return;
-over148:
- ch = 0;
-}
-
-void DreamGenContext::getyad() {
- STACK_CHECK;
- al = es.byte(si);
- _inc(si);
- ah = es.byte(si);
- _inc(si);
- _sub(al, data.byte(kMapy));
- if (flags.c())
- goto over147;
- _cmp(al, 10);
- if (!flags.c())
- goto over147;
- cl = 4;
- _shl(al, cl);
- _or(al, ah);
- ah = 0;
- ch = 1;
- return;
-over147:
- ch = 0;
-}
-
void DreamGenContext::autolook() {
STACK_CHECK;
ax = data.word(kMousex);
@@ -9095,7 +6623,7 @@ waittalk:
dumppointer();
dumptextline();
data.byte(kGetback) = 0;
- bx = 2660;
+ bx = offset_talklist;
checkcoords();
_cmp(data.byte(kQuitrequested), 0);
if (!flags.z())
@@ -9389,7 +6917,7 @@ hangloopq:
vsync();
dumppointer();
dumptextline();
- bx = 2692;
+ bx = offset_quitlist;
checkcoords();
bx = pop();
cx = pop();
@@ -9524,7 +7052,7 @@ select:
_cmp(data.byte(kGetback), 1);
if (flags.z())
goto quittravel;
- bx = 2714;
+ bx = offset_destlist;
checkcoords();
_cmp(data.byte(kNewlocation), 255);
if (flags.z())
@@ -9948,12 +7476,12 @@ void DreamGenContext::usemon() {
al = 32;
_stosb(cx, true);
es = cs;
- di = 2942+1;
+ di = offset_operand1+1;
cx = 12;
al = 32;
_stosb(cx, true);
es = cs;
- di = 2836;
+ di = offset_keys;
es.byte(di) = 1;
_add(di, 26);
cx = 3;
@@ -10451,7 +7979,7 @@ void DreamGenContext::delchar() {
void DreamGenContext::execcommand() {
STACK_CHECK;
es = cs;
- bx = 2776;
+ bx = offset_comlist;
ds = cs;
si = 8045;
al = ds.byte(si);
@@ -10550,7 +8078,7 @@ void DreamGenContext::dircom() {
dirroot:
data.byte(kLogonum) = 0;
ds = cs;
- si = 2956;
+ si = offset_rootdir;
_inc(si);
es = cs;
di = 2970;
@@ -10591,7 +8119,7 @@ void DreamGenContext::signon() {
parser();
_inc(di);
ds = cs;
- si = 2836;
+ si = offset_keys;
cx = 4;
signonloop:
push(cx);
@@ -10695,7 +8223,7 @@ void DreamGenContext::showkeys() {
al = 18;
monmessage();
es = cs;
- bx = 2836;
+ bx = offset_keys;
cx = 4;
keysloop:
push(cx);
@@ -10762,7 +8290,7 @@ foundfile2:
return;
keyok1:
es = cs;
- di = 2942;
+ di = offset_operand1;
ds = data.word(kMonsource);
searchforstring();
_cmp(al, 0);
@@ -10854,7 +8382,7 @@ keyok2:
push(es);
push(bx);
ds = cs;
- si = 2942+1;
+ si = offset_operand1+1;
es = cs;
di = 2970+1;
cx = 12;
@@ -10901,7 +8429,7 @@ void DreamGenContext::getkeyandlogo() {
cx = 26;
_mul(cx);
es = cs;
- bx = 2836;
+ bx = offset_keys;
_add(bx, ax);
al = es.byte(bx);
_cmp(al, 1);
@@ -10975,11 +8503,11 @@ notfound:
void DreamGenContext::parser() {
STACK_CHECK;
es = cs;
- di = 2942;
+ di = offset_operand1;
cx = 13;
al = 0;
_stosb(cx, true);
- di = 2942;
+ di = offset_operand1;
al = '=';
_stosb();
ds = cs;
@@ -11008,7 +8536,7 @@ copyin1:
if (!flags.z())
goto copyin1;
finishpars:
- di = 2942;
+ di = offset_operand1;
}
void DreamGenContext::scrollmonitor() {
@@ -11039,19 +8567,6 @@ void DreamGenContext::scrollmonitor() {
ax = pop();
}
-void DreamGenContext::lockmon() {
- STACK_CHECK;
- _cmp(data.byte(kLasthardkey), 57);
- if (!flags.z())
- return /* (notlock) */;
- locklighton();
-lockloop:
- _cmp(data.byte(kLasthardkey), 57);
- if (flags.z())
- goto lockloop;
- locklightoff();
-}
-
void DreamGenContext::monitorlogo() {
STACK_CHECK;
al = data.byte(kLogonum);
@@ -11315,7 +8830,7 @@ nodream7:
getanyad();
dx = data;
ds = dx;
- si = 2984;
+ si = offset_uselist;
checkuselist:
push(si);
_lodsb();
@@ -12739,7 +10254,7 @@ _tmp1:
di = 160;
bx = 155;
es = cs;
- si = 3474;
+ si = offset_money1poke;
data.word(kCharshift) = 91*2+75;
al = 0;
ah = 0;
@@ -12748,7 +10263,7 @@ _tmp1:
di = 187;
bx = 155;
es = cs;
- si = 3479;
+ si = offset_money2poke;
data.word(kCharshift) = 91*2+85;
al = 0;
ah = 0;
@@ -12816,7 +10331,7 @@ void DreamGenContext::lookatcard() {
void DreamGenContext::moneypoke() {
STACK_CHECK;
- bx = 3474;
+ bx = offset_money1poke;
cl = 48-1;
numberpoke0:
_inc(cl);
@@ -12852,7 +10367,7 @@ numberpoke3:
goto numberpoke3;
_add(ax, 10);
cs.byte(bx) = cl;
- bx = 3479;
+ bx = offset_money2poke;
_add(al, 48);
cs.byte(bx) = al;
}
@@ -13315,7 +10830,7 @@ void DreamGenContext::withwhat() {
al = data.byte(kCommand);
ah = data.byte(kObjecttype);
es = cs;
- di = 5847;
+ di = offset_commandline;
copyname();
di = 100;
bx = 21;
@@ -13327,7 +10842,7 @@ void DreamGenContext::withwhat() {
_add(di, 5);
bx = 21;
es = cs;
- si = 5847;
+ si = offset_commandline;
dl = 220;
al = 0;
ah = 0;
@@ -13600,32 +11115,6 @@ void DreamGenContext::findpuztext() {
si = ax;
}
-void DreamGenContext::placesetobject() {
- STACK_CHECK;
- push(es);
- push(bx);
- cl = 0;
- ch = 0;
- findormake();
- getsetad();
- es.byte(bx+58) = 0;
- bx = pop();
- es = pop();
-}
-
-void DreamGenContext::removesetobject() {
- STACK_CHECK;
- push(es);
- push(bx);
- cl = 255;
- ch = 0;
- findormake();
- getsetad();
- es.byte(bx+58) = 255;
- bx = pop();
- es = pop();
-}
-
void DreamGenContext::issetobonmap() {
STACK_CHECK;
push(es);
@@ -13660,35 +11149,6 @@ void DreamGenContext::removefreeobject() {
es = pop();
}
-void DreamGenContext::findormake() {
- STACK_CHECK;
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
- push(ax);
- es = data.word(kBuffers);
- ah = data.byte(kReallocation);
-changeloop:
- _cmp(es.byte(bx), 255);
- if (flags.z())
- goto haventfound;
- _cmp(ax, es.word(bx));
- if (!flags.z())
- goto nofoundchange;
- _cmp(ch, es.byte(bx+3));
- if (flags.z())
- goto foundchange;
-nofoundchange:
- _add(bx, 4);
- goto changeloop;
-foundchange:
- ax = pop();
- es.byte(bx+2) = cl;
- return;
-haventfound:
- es.word(bx) = ax;
- es.word(bx+2) = cx;
- ax = pop();
-}
-
void DreamGenContext::switchryanon() {
STACK_CHECK;
data.byte(kRyanon) = 255;
@@ -13699,70 +11159,6 @@ void DreamGenContext::switchryanoff() {
data.byte(kRyanon) = 1;
}
-void DreamGenContext::setallchanges() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
-setallloop:
- ax = es.word(bx);
- _cmp(al, 255);
- if (flags.z())
- return /* (endsetloop) */;
- cx = es.word(bx+2);
- _add(bx, 4);
- _cmp(ah, data.byte(kReallocation));
- if (!flags.z())
- goto setallloop;
- push(es);
- push(bx);
- dochange();
- bx = pop();
- es = pop();
- goto setallloop;
-}
-
-void DreamGenContext::dochange() {
- STACK_CHECK;
- _cmp(ch, 0);
- if (flags.z())
- goto object;
- _cmp(ch, 1);
- if (flags.z())
- goto freeobject;
- push(cx);
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- push(ax);
- al = ch;
- _sub(al, 100);
- ah = 0;
- cx = 144;
- _mul(cx);
- bx = pop();
- _add(bx, ax);
- _add(bx, (0));
- es = data.word(kReels);
- cx = pop();
- es.byte(bx+6) = cl;
- return;
-object:
- push(cx);
- getsetad();
- cx = pop();
- es.byte(bx+58) = cl;
- return;
-freeobject:
- push(cx);
- getfreead();
- cx = pop();
- _cmp(es.byte(bx+2), 255);
- if (!flags.z())
- return /* (beenpickedup) */;
- es.byte(bx+2) = cl;
-}
-
void DreamGenContext::autoappear() {
STACK_CHECK;
_cmp(data.byte(kLocation), 32);
@@ -13833,68 +11229,6 @@ notonsartroof:
placesetobject();
}
-void DreamGenContext::getundertimed() {
- STACK_CHECK;
- al = data.byte(kTimedy);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(al, 3);
-_tmp1:
- ah = 0;
- bx = ax;
- al = data.byte(kTimedx);
- ah = 0;
- di = ax;
- ch = (30);
- cl = 240;
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
- multiget();
-}
-
-void DreamGenContext::putundertimed() {
- STACK_CHECK;
- al = data.byte(kTimedy);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(al, 3);
-_tmp1:
- ah = 0;
- bx = ax;
- al = data.byte(kTimedx);
- ah = 0;
- di = ax;
- ch = (30);
- cl = 240;
- ds = data.word(kBuffers);
- si = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
- multiput();
-}
-
-void DreamGenContext::dumptimedtext() {
- STACK_CHECK;
- _cmp(data.byte(kNeedtodumptimed), 1);
- if (!flags.z())
- return /* (nodumptimed) */;
- al = data.byte(kTimedy);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(al, 3);
-_tmp1:
- ah = 0;
- bx = ax;
- al = data.byte(kTimedx);
- ah = 0;
- di = ax;
- cl = 240;
- ch = (30);
- multidump();
- data.byte(kNeedtodumptimed) = 0;
-}
-
void DreamGenContext::setuptimeduse() {
STACK_CHECK;
_cmp(data.word(kTimecount), 0);
@@ -13917,94 +11251,6 @@ void DreamGenContext::setuptimeduse() {
data.word(kTimedoffset) = bx;
}
-void DreamGenContext::setuptimedtemp() {
- STACK_CHECK;
- _cmp(ah, 0);
- if (flags.z())
- goto notloadspeech3;
- push(ax);
- push(bx);
- push(cx);
- push(dx);
- dl = 'T';
- dh = ah;
- cl = 'T';
- ah = 0;
- loadspeech();
- _cmp(data.byte(kSpeechloaded), 1);
- if (!flags.z())
- goto _tmp1;
- al = 50+12;
- playchannel1();
-_tmp1:
- dx = pop();
- cx = pop();
- bx = pop();
- ax = pop();
- _cmp(data.byte(kSpeechloaded), 1);
- if (!flags.z())
- goto notloadspeech3;
- _cmp(data.byte(kSubtitles), 1);
- if (flags.z())
- goto notloadspeech3;
- return;
-notloadspeech3:
- _cmp(data.word(kTimecount), 0);
- if (!flags.z())
- return /* (cantsetup2) */;
- data.byte(kTimedy) = bh;
- data.byte(kTimedx) = bl;
- data.word(kCounttotimed) = cx;
- _add(dx, cx);
- data.word(kTimecount) = dx;
- bl = al;
- bh = 0;
- _add(bx, bx);
- es = data.word(kTextfile1);
- cx = (66*2);
- ax = es.word(bx);
- _add(ax, cx);
- bx = ax;
- data.word(kTimedseg) = es;
- data.word(kTimedoffset) = bx;
-}
-
-void DreamGenContext::usetimedtext() {
- STACK_CHECK;
- _cmp(data.word(kTimecount), 0);
- if (flags.z())
- return /* (notext) */;
- _dec(data.word(kTimecount));
- _cmp(data.word(kTimecount), 0);
- if (flags.z())
- goto deltimedtext;
- ax = data.word(kTimecount);
- _cmp(ax, data.word(kCounttotimed));
- if (flags.z())
- goto firsttimed;
- if (!flags.c())
- return /* (notext) */;
- goto notfirsttimed;
-firsttimed:
- getundertimed();
-notfirsttimed:
- bl = data.byte(kTimedy);
- bh = 0;
- al = data.byte(kTimedx);
- ah = 0;
- di = ax;
- es = data.word(kTimedseg);
- si = data.word(kTimedoffset);
- dl = 237;
- ah = 0;
- printdirect();
- data.byte(kNeedtodumptimed) = 1;
- return;
-deltimedtext:
- putundertimed();
- data.byte(kNeedtodumptimed) = 1;
-}
-
void DreamGenContext::edenscdplayer() {
STACK_CHECK;
showfirstuse();
@@ -14463,7 +11709,7 @@ afterpress:
dumppointer();
dumpkeypad();
dumptextline();
- bx = 3482;
+ bx = offset_keypadlist;
checkcoords();
_cmp(data.byte(kGetback), 1);
if (flags.z())
@@ -14803,7 +12049,7 @@ menuloop:
dumppointer();
dumpmenu();
dumptextline();
- bx = 3614;
+ bx = offset_menulist;
checkcoords();
_cmp(data.byte(kGetback), 1);
if (!flags.z())
@@ -14916,7 +12162,7 @@ folderloop:
vsync();
dumppointer();
dumptextline();
- bx = 3636;
+ bx = offset_folderlist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
@@ -14960,7 +12206,7 @@ donextf:
delpointer();
showfolder();
data.word(kMousebutton) = 0;
- bx = 3636;
+ bx = offset_folderlist;
checkcoords();
worktoscreenm();
}
@@ -15047,7 +12293,7 @@ dolastf:
delpointer();
showfolder();
data.word(kMousebutton) = 0;
- bx = 3636;
+ bx = offset_folderlist;
checkcoords();
worktoscreenm();
}
@@ -15309,7 +12555,7 @@ symbolloop:
dumppointer();
dumptextline();
dumpsymbol();
- bx = 3678;
+ bx = offset_symbollist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
@@ -15680,7 +12926,7 @@ diaryloop:
dumppointer();
dumpdiarykeys();
dumptextline();
- bx = 3740;
+ bx = offset_diarylist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
@@ -16016,7 +13262,7 @@ waitops:
dumppointer();
dumptextline();
delpointer();
- bx = 3782;
+ bx = offset_opslist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
@@ -16106,71 +13352,6 @@ void DreamGenContext::loadsavebox() {
loadintotemp();
}
-void DreamGenContext::loadgame() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 246);
- if (flags.z())
- goto alreadyload;
- data.byte(kCommandtype) = 246;
- al = 41;
- commandonly();
-alreadyload:
- ax = data.word(kMousebutton);
- _cmp(ax, data.word(kOldbutton));
- if (flags.z())
- return /* (noload) */;
- _cmp(ax, 1);
- if (flags.z())
- goto doload;
- return;
-doload:
- data.byte(kLoadingorsave) = 1;
- showopbox();
- showloadops();
- data.byte(kCurrentslot) = 0;
- showslots();
- shownames();
- data.byte(kPointerframe) = 0;
- worktoscreenm();
- namestoold();
- data.byte(kGetback) = 0;
-loadops:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (quitloaded) */;
- delpointer();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = 3824;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto loadops;
- _cmp(data.byte(kGetback), 2);
- if (flags.z())
- return /* (quitloaded) */;
- getridoftemp();
- dx = data;
- es = dx;
- bx = 7979;
- startloading();
- loadroomssample();
- data.byte(kRoomloaded) = 1;
- data.byte(kNewlocation) = 255;
- clearsprites();
- initman();
- initrain();
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
- startup();
- worktoscreen();
- data.byte(kGetback) = 4;
-}
-
void DreamGenContext::getbacktoops() {
STACK_CHECK;
_cmp(data.byte(kCommandtype), 201);
@@ -16228,63 +13409,13 @@ discopsloop:
vsync();
dumppointer();
dumptextline();
- bx = 3866;
+ bx = offset_discopslist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
goto discopsloop;
}
-void DreamGenContext::savegame() {
- STACK_CHECK;
- _cmp(data.byte(kMandead), 2);
- if (!flags.z())
- goto cansaveok;
- blank();
- return;
-cansaveok:
- _cmp(data.byte(kCommandtype), 247);
- if (flags.z())
- goto alreadysave;
- data.byte(kCommandtype) = 247;
- al = 44;
- commandonly();
-alreadysave:
- ax = data.word(kMousebutton);
- _and(ax, 1);
- if (!flags.z())
- goto dosave;
- return;
-dosave:
- data.byte(kLoadingorsave) = 2;
- showopbox();
- showsaveops();
- data.byte(kCurrentslot) = 0;
- showslots();
- shownames();
- worktoscreenm();
- namestoold();
- data.word(kBufferin) = 0;
- data.word(kBufferout) = 0;
- data.byte(kGetback) = 0;
-saveops:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (quitsavegame) */;
- delpointer();
- checkinput();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = 3908;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto saveops;
-}
-
void DreamGenContext::actualsave() {
STACK_CHECK;
_cmp(data.byte(kCommandtype), 222);
@@ -16811,21 +13942,6 @@ isntblank:
_stosw();
}
-void DreamGenContext::findlen() {
- STACK_CHECK;
- _dec(bx);
- _add(bx, ax);
-nextone:
- _cmp(cl, ds.byte(bx));
- if (!flags.z())
- return /* (foundlen) */;
- _dec(bx);
- _dec(ax);
- _cmp(ax, 0);
- if (!flags.z())
- goto nextone;
-}
-
void DreamGenContext::scanfornames() {
STACK_CHECK;
dx = data;
@@ -16905,7 +14021,7 @@ _tmp1:
dumppointer();
dumptextline();
delpointer();
- bx = 5057;
+ bx = offset_decidelist;
checkcoords();
_cmp(data.byte(kGetback), 0);
if (flags.z())
@@ -16949,55 +14065,6 @@ alreadynewgame:
data.byte(kGetback) = 3;
}
-void DreamGenContext::doload() {
- STACK_CHECK;
- data.byte(kLoadingorsave) = 1;
- showopbox();
- showloadops();
- data.byte(kCurrentslot) = 0;
- showslots();
- shownames();
- data.byte(kPointerframe) = 0;
- worktoscreenm();
- namestoold();
- data.byte(kGetback) = 0;
-loadops:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (quitloaded) */;
- delpointer();
- readmouse();
- showpointer();
- vsync();
- dumppointer();
- dumptextline();
- bx = 3824;
- checkcoords();
- _cmp(data.byte(kGetback), 0);
- if (flags.z())
- goto loadops;
- _cmp(data.byte(kGetback), 2);
- if (flags.z())
- return /* (quitloaded) */;
- getridoftemp();
- dx = data;
- es = dx;
- bx = 7979;
- startloading();
- loadroomssample();
- data.byte(kRoomloaded) = 1;
- data.byte(kNewlocation) = 255;
- clearsprites();
- initman();
- initrain();
- data.word(kTextaddressx) = 13;
- data.word(kTextaddressy) = 182;
- data.byte(kTextlen) = 240;
- startup();
- worktoscreen();
- data.byte(kGetback) = 4;
-}
-
void DreamGenContext::loadold() {
STACK_CHECK;
_cmp(data.byte(kCommandtype), 252);
@@ -17011,6 +14078,7 @@ alreadyloadold:
_and(ax, 1);
if (flags.z())
return /* (noloadold) */;
+ ax = 0x0ffff;
doload();
_cmp(data.byte(kGetback), 4);
if (flags.z())
@@ -17026,7 +14094,7 @@ alreadyloadold:
void DreamGenContext::createname() {
STACK_CHECK;
push(ax);
- di = 5105;
+ di = offset_speechfile;
cs.byte(di+0) = dl;
cs.byte(di+3) = cl;
al = dh;
@@ -17193,46 +14261,6 @@ notsecondbank1:
es = pop();
}
-void DreamGenContext::makenextblock() {
- STACK_CHECK;
- volumeadjust();
- loopchannel0();
- _cmp(data.word(kCh1blockstocopy), 0);
- if (flags.z())
- goto mightbeonlych0;
- _cmp(data.word(kCh0blockstocopy), 0);
- if (flags.z())
- goto mightbeonlych1;
- _dec(data.word(kCh0blockstocopy));
- _dec(data.word(kCh1blockstocopy));
- bothchannels();
- return;
-mightbeonlych1:
- data.byte(kCh0playing) = 255;
- _cmp(data.word(kCh1blockstocopy), 0);
- if (flags.z())
- return /* (notch1only) */;
- _dec(data.word(kCh1blockstocopy));
- channel1only();
- return;
-mightbeonlych0:
- data.byte(kCh1playing) = 255;
- _cmp(data.word(kCh0blockstocopy), 0);
- if (flags.z())
- goto notch0only;
- _dec(data.word(kCh0blockstocopy));
- channel0only();
- return;
-notch0only:
- es = data.word(kSoundbuffer);
- di = data.word(kSoundbufferwrite);
- cx = 1024;
- ax = 0x7f7f;
- _stosw(cx, true);
- _and(di, 16384-1);
- data.word(kSoundbufferwrite) = di;
-}
-
void DreamGenContext::volumeadjust() {
STACK_CHECK;
al = data.byte(kVolumedirection);
@@ -17254,175 +14282,6 @@ volfinish:
data.byte(kVolumedirection) = 0;
}
-void DreamGenContext::loopchannel0() {
- STACK_CHECK;
- _cmp(data.word(kCh0blockstocopy), 0);
- if (!flags.z())
- return /* (notloop) */;
- _cmp(data.byte(kCh0repeat), 0);
- if (flags.z())
- return /* (notloop) */;
- _cmp(data.byte(kCh0repeat), 255);
- if (flags.z())
- goto endlessloop;
- _dec(data.byte(kCh0repeat));
-endlessloop:
- ax = data.word(kCh0oldemmpage);
- data.word(kCh0emmpage) = ax;
- ax = data.word(kCh0oldoffset);
- data.word(kCh0offset) = ax;
- ax = data.word(kCh0blockstocopy);
- _add(ax, data.word(kCh0oldblockstocopy));
- data.word(kCh0blockstocopy) = ax;
-}
-
-void DreamGenContext::cancelch0() {
- STACK_CHECK;
- data.byte(kCh0repeat) = 0;
- data.word(kCh0blockstocopy) = 0;
- data.byte(kCh0playing) = 255;
-}
-
-void DreamGenContext::cancelch1() {
- STACK_CHECK;
- data.word(kCh1blockstocopy) = 0;
- data.byte(kCh1playing) = 255;
-}
-
-void DreamGenContext::channel0tran() {
- STACK_CHECK;
- _cmp(data.byte(kVolume), 0);
- if (!flags.z())
- goto lowvolumetran;
- cx = 1024;
- _movsw(cx, true);
- return;
-lowvolumetran:
- cx = 1024;
- bh = data.byte(kVolume);
- bl = 0;
- _add(bx, 16384-256);
-volloop:
- _lodsw();
- bl = al;
- al = es.byte(bx);
- bl = ah;
- ah = es.byte(bx);
- _stosw();
- if (--cx)
- goto volloop;
-}
-
-void DreamGenContext::domix() {
- STACK_CHECK;
- _cmp(data.byte(kVolume), 0);
- if (!flags.z())
- goto lowvolumemix;
-slow:
- _lodsb();
- ah = ds.byte(bx);
- _inc(bx);
- _cmp(al, dh);
- if (!flags.c())
- goto toplot;
- _cmp(ah, dh);
- if (!flags.c())
- goto nodistort;
- _add(al, ah);
- if (flags.s())
- goto botok;
- _xor(al, al);
- _stosb();
- if (--cx)
- goto slow;
- return /* (doneit) */;
-botok:
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto slow;
- return /* (doneit) */;
-toplot:
- _cmp(ah, dh);
- if (flags.c())
- goto nodistort;
- _add(al, ah);
- if (!flags.s())
- goto topok;
- al = dl;
- _stosb();
- if (--cx)
- goto slow;
- return /* (doneit) */;
-topok:
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto slow;
- return /* (doneit) */;
-nodistort:
- _add(al, ah);
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto slow;
- return /* (doneit) */;
-lowvolumemix:
- _lodsb();
- push(bx);
- bh = data.byte(kVolume);
- _add(bh, 63);
- bl = al;
- al = es.byte(bx);
- bx = pop();
- ah = ds.byte(bx);
- _inc(bx);
- _cmp(al, dh);
- if (!flags.c())
- goto toplotv;
- _cmp(ah, dh);
- if (!flags.c())
- goto nodistortv;
- _add(al, ah);
- if (flags.s())
- goto botokv;
- _xor(al, al);
- _stosb();
- if (--cx)
- goto lowvolumemix;
- return /* (doneit) */;
-botokv:
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto lowvolumemix;
- return /* (doneit) */;
-toplotv:
- _cmp(ah, dh);
- if (flags.c())
- goto nodistortv;
- _add(al, ah);
- if (!flags.s())
- goto topokv;
- al = dl;
- _stosb();
- if (--cx)
- goto lowvolumemix;
- return /* (doneit) */;
-topokv:
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto lowvolumemix;
- return /* (doneit) */;
-nodistortv:
- _add(al, ah);
- _xor(al, dh);
- _stosb();
- if (--cx)
- goto lowvolumemix;
-}
-
void DreamGenContext::entrytexts() {
STACK_CHECK;
_cmp(data.byte(kLocation), 21);
@@ -17845,84 +14704,6 @@ void DreamGenContext::clearrest() {
deallocatemem();
}
-void DreamGenContext::parseblaster() {
- STACK_CHECK;
-lookattail:
- al = es.byte(bx);
- _cmp(al, 0);
- if (flags.z())
- return /* (endtail) */;
- _cmp(al, 13);
- if (flags.z())
- return /* (endtail) */;
- _cmp(al, 'i');
- if (flags.z())
- goto issoundint;
- _cmp(al, 'I');
- if (flags.z())
- goto issoundint;
- _cmp(al, 'b');
- if (flags.z())
- goto isbright;
- _cmp(al, 'B');
- if (flags.z())
- goto isbright;
- _cmp(al, 'a');
- if (flags.z())
- goto isbaseadd;
- _cmp(al, 'A');
- if (flags.z())
- goto isbaseadd;
- _cmp(al, 'n');
- if (flags.z())
- goto isnosound;
- _cmp(al, 'N');
- if (flags.z())
- goto isnosound;
- _cmp(al, 'd');
- if (flags.z())
- goto isdma;
- _cmp(al, 'D');
- if (flags.z())
- goto isdma;
- _inc(bx);
- if (--cx)
- goto lookattail;
- return;
-issoundint:
- al = es.byte(bx+1);
- _sub(al, '0');
- data.byte(kSoundint) = al;
- _inc(bx);
- goto lookattail;
-isdma:
- al = es.byte(bx+1);
- _sub(al, '0');
- data.byte(kSounddmachannel) = al;
- _inc(bx);
- goto lookattail;
-isbaseadd:
- push(cx);
- al = es.byte(bx+2);
- _sub(al, '0');
- ah = 0;
- cl = 4;
- _shl(ax, cl);
- _add(ax, 0x200);
- data.word(kSoundbaseadd) = ax;
- cx = pop();
- _inc(bx);
- goto lookattail;
-isbright:
- data.byte(kBrightness) = 1;
- _inc(bx);
- goto lookattail;
-isnosound:
- data.byte(kSoundint) = 255;
- _inc(bx);
- goto lookattail;
-}
-
void DreamGenContext::startup() {
STACK_CHECK;
data.byte(kCurrentkey) = 0;
@@ -18413,11 +15194,11 @@ toofaraway:
void DreamGenContext::mainscreen() {
STACK_CHECK;
data.byte(kInmaparea) = 0;
- bx = 5122;
+ bx = offset_mainlist;
_cmp(data.byte(kWatchon), 1);
if (flags.z())
goto checkmain;
- bx = 5184;
+ bx = offset_mainlist2;
checkmain:
checkcoords();
_cmp(data.byte(kWalkandexam), 0);
@@ -18557,69 +15338,6 @@ nothingund:
blank();
}
-void DreamGenContext::checkifperson() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
- cx = 12;
-identifyreel:
- push(cx);
- _cmp(es.byte(bx+4), 255);
- if (flags.z())
- goto notareelid;
- push(es);
- push(bx);
- push(ax);
- ax = es.word(bx+0);
- data.word(kReelpointer) = ax;
- getreelstart();
- _cmp(es.word(si+2), 0x0ffff);
- if (!flags.z())
- goto notblankpers;
- _add(si, 5);
-notblankpers:
- cx = es.word(si+2);
- ax = es.word(si+0);
- push(cx);
- getreelframeax();
- cx = pop();
- _add(cl, es.byte(bx+4));
- _add(ch, es.byte(bx+5));
- dx = cx;
- _add(dl, es.byte(bx+0));
- _add(dh, es.byte(bx+1));
- ax = pop();
- bx = pop();
- es = pop();
- _cmp(al, cl);
- if (flags.c())
- goto notareelid;
- _cmp(ah, ch);
- if (flags.c())
- goto notareelid;
- _cmp(al, dl);
- if (!flags.c())
- goto notareelid;
- _cmp(ah, dh);
- if (!flags.c())
- goto notareelid;
- cx = pop();
- ax = es.word(bx+2);
- data.word(kPersondata) = ax;
- al = es.byte(bx+4);
- ah = 5;
- obname();
- al = 0;
- _cmp(al, 1);
- return;
-notareelid:
- cx = pop();
- _add(bx, 5);
- _dec(cx);
- if (!flags.z())
- goto identifyreel;
-}
-
void DreamGenContext::checkifset() {
STACK_CHECK;
es = data.word(kBuffers);
@@ -18696,41 +15414,6 @@ notanexid:
goto identifyex;
}
-void DreamGenContext::checkiffree() {
- STACK_CHECK;
- es = data.word(kBuffers);
- bx = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5))+(79*5);
- cx = 79;
-identifyfree:
- _cmp(es.byte(bx+4), 255);
- if (flags.z())
- goto notafreeid;
- _cmp(al, es.byte(bx));
- if (flags.c())
- goto notafreeid;
- _cmp(al, es.byte(bx+2));
- if (!flags.c())
- goto notafreeid;
- _cmp(ah, es.byte(bx+1));
- if (flags.c())
- goto notafreeid;
- _cmp(ah, es.byte(bx+3));
- if (!flags.c())
- goto notafreeid;
- al = es.byte(bx+4);
- ah = 2;
- obname();
- al = 0;
- _cmp(al, 1);
- return;
-notafreeid:
- _sub(bx, 5);
- _dec(cx);
- _cmp(cx, -1);
- if (!flags.z())
- goto identifyfree;
-}
-
void DreamGenContext::isitdescribed() {
STACK_CHECK;
push(ax);
@@ -18996,7 +15679,7 @@ void DreamGenContext::atmospheres() {
STACK_CHECK;
cl = data.byte(kMapx);
ch = data.byte(kMapy);
- bx = 5246;
+ bx = offset_atmospherelist;
nextatmos:
al = cs.byte(bx);
_cmp(al, 255);
@@ -19236,15 +15919,6 @@ toofaraway:
walktotext();
}
-void DreamGenContext::finishedwalking() {
- STACK_CHECK;
- _cmp(data.byte(kLinepointer), 254);
- if (!flags.z())
- return /* (iswalking) */;
- al = data.byte(kFacing);
- _cmp(al, data.byte(kTurntoface));
-}
-
void DreamGenContext::examineobtext() {
STACK_CHECK;
bl = data.byte(kCommand);
@@ -19253,95 +15927,6 @@ void DreamGenContext::examineobtext() {
commandwithob();
}
-void DreamGenContext::commandwithob() {
- STACK_CHECK;
- push(ax);
- push(ax);
- push(bx);
- push(cx);
- push(dx);
- push(es);
- push(ds);
- push(si);
- push(di);
- deltextline();
- di = pop();
- si = pop();
- ds = pop();
- es = pop();
- dx = pop();
- cx = pop();
- bx = pop();
- ax = pop();
- push(bx);
- ah = 0;
- _add(ax, ax);
- bx = ax;
- es = data.word(kCommandtext);
- ax = es.word(bx);
- _add(ax, (66*2));
- si = ax;
- di = data.word(kTextaddressx);
- bx = data.word(kTextaddressy);
- dl = data.byte(kTextlen);
- al = 0;
- ah = 0;
- printdirect();
- ax = pop();
- di = 5847;
- copyname();
- ax = pop();
- di = data.word(kLastxpos);
- _cmp(al, 0);
- if (flags.z())
- goto noadd;
- _add(di, 5);
-noadd:
- bx = data.word(kTextaddressy);
- es = cs;
- si = 5847;
- dl = data.byte(kTextlen);
- al = 0;
- ah = 0;
- printdirect();
- data.byte(kNewtextline) = 1;
-}
-
-void DreamGenContext::commandonly() {
- STACK_CHECK;
- push(ax);
- push(bx);
- push(cx);
- push(dx);
- push(es);
- push(ds);
- push(si);
- push(di);
- deltextline();
- di = pop();
- si = pop();
- ds = pop();
- es = pop();
- dx = pop();
- cx = pop();
- bx = pop();
- ax = pop();
- ah = 0;
- _add(ax, ax);
- bx = ax;
- es = data.word(kCommandtext);
- ax = es.word(bx);
- _add(ax, (66*2));
- si = ax;
- di = data.word(kTextaddressx);
- bx = data.word(kTextaddressy);
- dl = data.byte(kTextlen);
- al = 0;
- ah = 0;
- printdirect();
- data.byte(kNewtextline) = 1;
-}
-
void DreamGenContext::printmessage() {
STACK_CHECK;
push(dx);
@@ -19391,31 +15976,6 @@ searchmess:
printdirect();
}
-void DreamGenContext::blocknametext() {
- STACK_CHECK;
- bl = data.byte(kCommand);
- bh = data.byte(kCommandtype);
- al = 0;
- commandwithob();
-}
-
-void DreamGenContext::personnametext() {
- STACK_CHECK;
- bl = data.byte(kCommand);
- _and(bl, 127);
- bh = data.byte(kCommandtype);
- al = 2;
- commandwithob();
-}
-
-void DreamGenContext::walktotext() {
- STACK_CHECK;
- bl = data.byte(kCommand);
- bh = data.byte(kCommandtype);
- al = 3;
- commandwithob();
-}
-
void DreamGenContext::getflagunderp() {
STACK_CHECK;
cx = data.word(kMousex);
@@ -19471,109 +16031,6 @@ holdingreel:
data.byte(kWatchmode) = 2;
}
-void DreamGenContext::autosetwalk() {
- STACK_CHECK;
- al = data.byte(kManspath);
- _cmp(data.byte(kFinaldest), al);
- if (!flags.z())
- goto notsamealready;
- return;
-notsamealready:
- getroomspaths();
- checkdest();
- push(bx);
- al = data.byte(kManspath);
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- _add(bx, ax);
- al = es.byte(bx);
- ah = 0;
- _sub(ax, 12);
- data.word(kLinestartx) = ax;
- al = es.byte(bx+1);
- ah = 0;
- _sub(ax, 12);
- data.word(kLinestarty) = ax;
- bx = pop();
- al = data.byte(kDestination);
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- _add(bx, ax);
- al = es.byte(bx);
- ah = 0;
- _sub(ax, 12);
- data.word(kLineendx) = ax;
- al = es.byte(bx+1);
- ah = 0;
- _sub(ax, 12);
- data.word(kLineendy) = ax;
- bresenhams();
- _cmp(data.byte(kLinedirection), 0);
- if (flags.z())
- goto normalline;
- al = data.byte(kLinelength);
- _dec(al);
- data.byte(kLinepointer) = al;
- data.byte(kLinedirection) = 1;
- return;
-normalline:
- data.byte(kLinepointer) = 0;
-}
-
-void DreamGenContext::checkdest() {
- STACK_CHECK;
- push(bx);
- _add(bx, 12*8);
- ah = data.byte(kManspath);
- cl = 4;
- _shl(ah, cl);
- al = data.byte(kDestination);
- cl = 24;
- ch = data.byte(kDestination);
-checkdestloop:
- dh = es.byte(bx);
- _and(dh, 0xf0);
- dl = es.byte(bx);
- _and(dl, 0xf);
- _cmp(ax, dx);
- if (!flags.z())
- goto nextcheck;
- al = es.byte(bx+1);
- _and(al, 15);
- data.byte(kDestination) = al;
- bx = pop();
- return;
-nextcheck:
- dl = es.byte(bx);
- _and(dl, 0xf0);
- _shr(dl, 1);
- _shr(dl, 1);
- _shr(dl, 1);
- _shr(dl, 1);
- dh = es.byte(bx);
- _and(dh, 0xf);
- _shl(dh, 1);
- _shl(dh, 1);
- _shl(dh, 1);
- _shl(dh, 1);
- _cmp(ax, dx);
- if (!flags.z())
- goto nextcheck2;
- ch = es.byte(bx+1);
- _and(ch, 15);
-nextcheck2:
- _add(bx, 2);
- _dec(cl);
- if (!flags.z())
- goto checkdestloop;
- data.byte(kDestination) = ch;
- bx = pop();
-}
-
void DreamGenContext::bresenhams() {
STACK_CHECK;
workoutframes();
@@ -19789,106 +16246,6 @@ success:
data.byte(kTurndirection) = 0;
}
-void DreamGenContext::getroomspaths() {
- STACK_CHECK;
- al = data.byte(kRoomnum);
- ah = 0;
- cx = 144;
- _mul(cx);
- es = data.word(kReels);
- bx = (0);
- _add(bx, ax);
-}
-
-void DreamGenContext::copyname() {
- STACK_CHECK;
- push(di);
- findobname();
- di = pop();
- es = cs;
- cx = 28;
-make:
- _lodsb();
- _cmp(al, ':');
- if (flags.z())
- goto finishmakename;
- _cmp(al, 0);
- if (flags.z())
- goto finishmakename;
- _stosb();
- if (--cx)
- goto make;
-finishmakename:
- _inc(cx);
- al = 0;
- _stosb();
- return;
- al = 255;
- _stosb(cx, true);
-}
-
-void DreamGenContext::findobname() {
- STACK_CHECK;
- push(ax);
- ah = 0;
- _add(ax, ax);
- bx = ax;
- ax = pop();
- _cmp(ah, 5);
- if (!flags.z())
- goto notpersonname;
- push(ax);
- _and(al, 127);
- ah = 0;
- bx = 64*2;
- _mul(bx);
- si = ax;
- ds = data.word(kPeople);
- _add(si, (0+24));
- cx = (0+24+(1026*2));
- ax = ds.word(si);
- _add(ax, cx);
- si = ax;
- ax = pop();
- return;
-notpersonname:
- _cmp(ah, 4);
- if (!flags.z())
- goto notextraname;
- ds = data.word(kExtras);
- _add(bx, (0+2080+30000+(16*114)));
- ax = ds.word(bx);
- _add(ax, (0+2080+30000+(16*114)+((114+2)*2)));
- si = ax;
- return;
-notextraname:
- _cmp(ah, 2);
- if (!flags.z())
- goto notfreename;
- ds = data.word(kFreedesc);
- _add(bx, (0));
- ax = ds.word(bx);
- _add(ax, (0+(82*2)));
- si = ax;
- return;
-notfreename:
- _cmp(ah, 1);
- if (!flags.z())
- goto notsetname;
- ds = data.word(kSetdesc);
- _add(bx, (0));
- ax = ds.word(bx);
- _add(ax, (0+(130*2)));
- si = ax;
- return;
-notsetname:
- ds = data.word(kBlockdesc);
- _add(bx, (0));
- ax = ds.word(bx);
- _add(ax, (0+(98*2)));
- si = ax;
-}
-
void DreamGenContext::showicon() {
STACK_CHECK;
_cmp(data.byte(kReallocation), 50);
@@ -19993,22 +16350,6 @@ void DreamGenContext::showman() {
showframe();
}
-void DreamGenContext::showpanel() {
- STACK_CHECK;
- ds = data.word(kIcons1);
- di = 72;
- bx = 0;
- al = 19;
- ah = 0;
- showframe();
- ds = data.word(kIcons1);
- di = 192;
- bx = 0;
- al = 19;
- ah = 0;
- showframe();
-}
-
void DreamGenContext::roomname() {
STACK_CHECK;
di = 88;
@@ -20151,7 +16492,7 @@ void DreamGenContext::showblink() {
al = 6;
nomorethan6:
ah = 0;
- bx = 5888;
+ bx = offset_blinktab;
_add(bx, ax);
al = cs.byte(bx);
ds = data.word(kIcons1);
@@ -20317,32 +16658,6 @@ void DreamGenContext::putunderzoom() {
multiput();
}
-void DreamGenContext::crosshair() {
- STACK_CHECK;
- _cmp(data.byte(kCommandtype), 3);
- if (flags.z())
- goto nocross;
- _cmp(data.byte(kCommandtype), 10);
- if (!flags.c())
- goto nocross;
- es = data.word(kWorkspace);
- ds = data.word(kIcons1);
- di = (8)+24;
- bx = (132)+19;
- al = 9;
- ah = 0;
- showframe();
- return;
-nocross:
- es = data.word(kWorkspace);
- ds = data.word(kIcons1);
- di = (8)+24;
- bx = (132)+19;
- al = 29;
- ah = 0;
- showframe();
-}
-
void DreamGenContext::showpointer() {
STACK_CHECK;
showblink();
@@ -20515,40 +16830,6 @@ _tmp1:
multiget();
}
-void DreamGenContext::deltextline() {
- STACK_CHECK;
- di = data.word(kTextaddressx);
- bx = data.word(kTextaddressy);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(bx, 3);
-_tmp1:
- ds = data.word(kBuffers);
- si = (0);
- cl = (228);
- ch = (13);
- multiput();
-}
-
-void DreamGenContext::dumptextline() {
- STACK_CHECK;
- _cmp(data.byte(kNewtextline), 1);
- if (!flags.z())
- return /* (nodumptextline) */;
- data.byte(kNewtextline) = 0;
- di = data.word(kTextaddressx);
- bx = data.word(kTextaddressy);
- _cmp(data.byte(kForeignrelease), 0);
- if (flags.z())
- goto _tmp1;
- _sub(bx, 3);
-_tmp1:
- cl = (228);
- ch = (13);
- multidump();
-}
-
void DreamGenContext::animpointer() {
STACK_CHECK;
_cmp(data.byte(kPointermode), 2);
@@ -20611,7 +16892,7 @@ rightspeed3:
finflashmouse:
al = data.byte(kPointercount);
ah = 0;
- bx = 5895;
+ bx = offset_flashmousetab;
_add(bx, ax);
al = cs.byte(bx);
data.byte(kPointerframe) = al;
@@ -20704,7 +16985,7 @@ void DreamGenContext::readkey() {
_inc(bx);
_and(bx, 15);
data.word(kBufferout) = bx;
- di = 5912;
+ di = offset_keybuffer;
_add(di, bx);
al = cs.byte(di);
data.byte(kCurrentkey) = al;
@@ -21028,142 +17309,6 @@ blimey:
es = pop();
}
-void DreamGenContext::startloading() {
- STACK_CHECK;
- data.byte(kCombatcount) = 0;
- al = cs.byte(bx+13);
- data.byte(kRoomssample) = al;
- al = cs.byte(bx+15);
- data.byte(kMapx) = al;
- al = cs.byte(bx+16);
- data.byte(kMapy) = al;
- al = cs.byte(bx+20);
- data.byte(kLiftflag) = al;
- al = cs.byte(bx+21);
- data.byte(kManspath) = al;
- data.byte(kDestination) = al;
- data.byte(kFinaldest) = al;
- al = cs.byte(bx+22);
- data.byte(kFacing) = al;
- data.byte(kTurntoface) = al;
- al = cs.byte(bx+23);
- data.byte(kCounttoopen) = al;
- al = cs.byte(bx+24);
- data.byte(kLiftpath) = al;
- al = cs.byte(bx+25);
- data.byte(kDoorpath) = al;
- data.byte(kLastweapon) = -1;
- al = cs.byte(bx+27);
- push(ax);
- al = cs.byte(bx+31);
- ah = data.byte(kReallocation);
- data.byte(kReallocation) = al;
- dx = bx;
- openfile();
- readheader();
- allocateload();
- ds = ax;
- data.word(kBackdrop) = ax;
- dx = (0);
- loadseg();
- ds = data.word(kWorkspace);
- dx = (0);
- cx = 132*66;
- al = 0;
- fillspace();
- loadseg();
- sortoutmap();
- allocateload();
- data.word(kSetframes) = ax;
- ds = ax;
- dx = (0);
- loadseg();
- ds = data.word(kSetdat);
- dx = 0;
- cx = (64*128);
- al = 255;
- fillspace();
- loadseg();
- allocateload();
- data.word(kReel1) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kReel2) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kReel3) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kReels) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kPeople) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kSetdesc) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kBlockdesc) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kRoomdesc) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- allocateload();
- data.word(kFreeframes) = ax;
- ds = ax;
- dx = 0;
- loadseg();
- ds = data.word(kFreedat);
- dx = 0;
- cx = (16*80);
- al = 255;
- fillspace();
- loadseg();
- allocateload();
- data.word(kFreedesc) = ax;
- ds = ax;
- dx = (0);
- loadseg();
- closefile();
- findroominloc();
- deletetaken();
- setallchanges();
- autoappear();
- al = data.byte(kNewlocation);
- getroomdata();
- data.byte(kLastweapon) = -1;
- data.byte(kMandead) = 0;
- data.word(kLookcounter) = 160;
- data.byte(kNewlocation) = 255;
- data.byte(kLinepointer) = 254;
- ax = pop();
- _cmp(al, 255);
- if (flags.z())
- goto dontwalkin;
- data.byte(kManspath) = al;
- push(bx);
- autosetwalk();
- bx = pop();
-dontwalkin:
- findxyfrompath();
-}
-
void DreamGenContext::disablepath() {
STACK_CHECK;
push(cx);
@@ -21198,22 +17343,6 @@ lookx2:
es.byte(bx+6) = al;
}
-void DreamGenContext::findxyfrompath() {
- STACK_CHECK;
- getroomspaths();
- al = data.byte(kManspath);
- ah = 0;
- _add(ax, ax);
- _add(ax, ax);
- _add(ax, ax);
- _add(bx, ax);
- ax = es.word(bx);
- _sub(al, 12);
- _sub(ah, 12);
- data.byte(kRyanx) = al;
- data.byte(kRyany) = ah;
-}
-
void DreamGenContext::findroominloc() {
STACK_CHECK;
al = data.byte(kMapy);
@@ -21233,25 +17362,6 @@ lookx:
data.byte(kRoomnum) = cl;
}
-void DreamGenContext::getroomdata() {
- STACK_CHECK;
- ah = 0;
- cx = 32;
- _mul(cx);
- bx = 6187;
- _add(bx, ax);
-}
-
-void DreamGenContext::readheader() {
- STACK_CHECK;
- ds = cs;
- dx = 6091;
- cx = (6187-6091);
- readfromfile();
- es = cs;
- di = 6141;
-}
-
void DreamGenContext::allocateload() {
STACK_CHECK;
push(es);
@@ -21264,23 +17374,6 @@ void DreamGenContext::allocateload() {
es = pop();
}
-void DreamGenContext::fillspace() {
- STACK_CHECK;
- push(es);
- push(ds);
- push(dx);
- push(di);
- push(bx);
- di = dx;
- es = ds;
- _stosb(cx, true);
- bx = pop();
- di = pop();
- dx = pop();
- ds = pop();
- es = pop();
-}
-
void DreamGenContext::getridoftemp() {
STACK_CHECK;
es = data.word(kTempgraphics);
@@ -21351,153 +17444,6 @@ void DreamGenContext::readsetdata() {
closefile();
}
-void DreamGenContext::makename() {
- STACK_CHECK;
- si = dx;
- di = 6061;
-transfer:
- al = cs.byte(si);
- cs.byte(di) = al;
- _inc(si);
- _inc(di);
- _cmp(al, 0);
- if (!flags.z())
- goto transfer;
- dx = 6059;
-}
-
-void DreamGenContext::dreamweb() {
- STACK_CHECK;
- seecommandtail();
- checkbasemem();
- soundstartup();
- setkeyboardint();
- setupemm();
- allocatebuffers();
- setmouse();
- fadedos();
- gettime();
- clearbuffers();
- clearpalette();
- set16colpalette();
- readsetdata();
- data.byte(kWongame) = 0;
- dx = 1909;
- loadsample();
- setsoundoff();
- scanfornames();
- _cmp(al, 0);
- if (!flags.z())
- goto dodecisions;
- setmode();
- loadpalfromiff();
- titles();
- credits();
- goto playgame;
-dodecisions:
- cls();
- setmode();
- decide();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (exitgame) */;
- _cmp(data.byte(kGetback), 4);
- if (flags.z())
- goto mainloop;
- titles();
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (exitgame) */;
- credits();
-playgame:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (exitgame) */;
- clearchanges();
- setmode();
- loadpalfromiff();
- data.byte(kLocation) = 255;
- data.byte(kRoomafterdream) = 1;
- data.byte(kNewlocation) = 35;
- data.byte(kVolume) = 7;
- loadroom();
- clearsprites();
- initman();
- entrytexts();
- entryanims();
- data.byte(kDestpos) = 3;
- initialinv();
- data.byte(kLastflag) = 32;
- startup1();
- data.byte(kVolumeto) = 0;
- data.byte(kVolumedirection) = -1;
- data.byte(kCommandtype) = 255;
- goto mainloop;
-loadnew:
- clearbeforeload();
- loadroom();
- clearsprites();
- initman();
- entrytexts();
- entryanims();
- data.byte(kNewlocation) = 255;
- startup();
- data.byte(kCommandtype) = 255;
- worktoscreenm();
- goto mainloop;
- data.byte(kNewlocation) = 255;
- clearsprites();
- initman();
- startup();
- data.byte(kCommandtype) = 255;
-mainloop:
- _cmp(data.byte(kQuitrequested), 0);
- if (!flags.z())
- return /* (exitgame) */;
- screenupdate();
- _cmp(data.byte(kWongame), 0);
- if (!flags.z())
- goto endofgame;
- _cmp(data.byte(kMandead), 1);
- if (flags.z())
- goto gameover;
- _cmp(data.byte(kMandead), 2);
- if (flags.z())
- goto gameover;
- _cmp(data.word(kWatchingtime), 0);
- if (flags.z())
- goto notwatching;
- al = data.byte(kFinaldest);
- _cmp(al, data.byte(kManspath));
- if (!flags.z())
- goto mainloop;
- _dec(data.word(kWatchingtime));
- if (!flags.z())
- goto mainloop;
-notwatching:
- _cmp(data.byte(kMandead), 4);
- if (flags.z())
- goto gameover;
- _cmp(data.byte(kNewlocation), 255);
- if (!flags.z())
- goto loadnew;
- goto mainloop;
-gameover:
- clearbeforeload();
- showgun();
- fadescreendown();
- cx = 100;
- hangon();
- goto dodecisions;
-endofgame:
- clearbeforeload();
- fadescreendowns();
- cx = 200;
- hangon();
- endgame();
- { quickquit2(); return; };
-}
-
void DreamGenContext::__start() {
@@ -22075,745 +18021,647 @@ dreamweb();
void DreamGenContext::__dispatch_call(uint16 addr) {
switch(addr) {
- case 0xc000: alleybarksound(); break;
- case 0xc004: intromusic(); break;
- case 0xc008: foghornsound(); break;
- case 0xc00c: receptionist(); break;
- case 0xc010: smokebloke(); break;
- case 0xc014: attendant(); break;
- case 0xc018: manasleep(); break;
- case 0xc01c: eden(); break;
- case 0xc020: edeninbath(); break;
- case 0xc024: malefan(); break;
- case 0xc028: femalefan(); break;
- case 0xc02c: louis(); break;
- case 0xc030: louischair(); break;
- case 0xc034: manasleep2(); break;
- case 0xc038: mansatstill(); break;
- case 0xc03c: tattooman(); break;
- case 0xc040: drinker(); break;
- case 0xc044: bartender(); break;
- case 0xc048: othersmoker(); break;
- case 0xc04c: barwoman(); break;
- case 0xc050: interviewer(); break;
- case 0xc054: soldier1(); break;
- case 0xc058: rockstar(); break;
- case 0xc05c: helicopter(); break;
- case 0xc060: mugger(); break;
- case 0xc064: aide(); break;
- case 0xc068: businessman(); break;
- case 0xc06c: poolguard(); break;
- case 0xc070: security(); break;
- case 0xc074: heavy(); break;
- case 0xc078: bossman(); break;
- case 0xc07c: gamer(); break;
- case 0xc080: sparkydrip(); break;
- case 0xc084: carparkdrip(); break;
- case 0xc088: keeper(); break;
- case 0xc08c: candles1(); break;
- case 0xc090: smallcandle(); break;
- case 0xc094: intromagic1(); break;
- case 0xc098: candles(); break;
- case 0xc09c: candles2(); break;
- case 0xc0a0: gates(); break;
- case 0xc0a4: intromagic2(); break;
- case 0xc0a8: intromagic3(); break;
- case 0xc0ac: intromonks1(); break;
- case 0xc0b0: intromonks2(); break;
- case 0xc0b4: handclap(); break;
- case 0xc0b8: monks2text(); break;
- case 0xc0bc: intro1text(); break;
- case 0xc0c0: intro2text(); break;
- case 0xc0c4: intro3text(); break;
- case 0xc0c8: monkandryan(); break;
- case 0xc0cc: endgameseq(); break;
- case 0xc0d0: rollendcredits(); break;
- case 0xc0d4: priest(); break;
- case 0xc0d8: madmanstelly(); break;
- case 0xc0dc: madman(); break;
- case 0xc0e0: madmantext(); break;
- case 0xc0e4: madmode(); break;
- case 0xc0e8: priesttext(); break;
- case 0xc0ec: textforend(); break;
- case 0xc0f0: textformonk(); break;
- case 0xc0f4: drunk(); break;
- case 0xc0f8: advisor(); break;
- case 0xc0fc: copper(); break;
- case 0xc100: sparky(); break;
- case 0xc104: train(); break;
- case 0xc108: addtopeoplelist(); break;
- case 0xc10c: showgamereel(); break;
- case 0xc110: checkspeed(); break;
- case 0xc114: clearsprites(); break;
- case 0xc118: makesprite(); break;
- case 0xc11c: delsprite(); break;
- case 0xc120: spriteupdate(); break;
- case 0xc124: printsprites(); break;
- case 0xc128: printasprite(); break;
- case 0xc12c: checkone(); break;
- case 0xc130: findsource(); break;
- case 0xc134: initman(); break;
- case 0xc138: mainman(); break;
- case 0xc13c: aboutturn(); break;
- case 0xc140: walking(); break;
- case 0xc144: facerightway(); break;
- case 0xc148: checkforexit(); break;
- case 0xc14c: adjustdown(); break;
- case 0xc150: adjustup(); break;
- case 0xc154: adjustleft(); break;
- case 0xc158: adjustright(); break;
- case 0xc15c: reminders(); break;
- case 0xc160: initrain(); break;
- case 0xc164: splitintolines(); break;
- case 0xc168: getblockofpixel(); break;
- case 0xc16c: showrain(); break;
- case 0xc170: backobject(); break;
- case 0xc174: liftsprite(); break;
- case 0xc178: liftnoise(); break;
- case 0xc17c: random(); break;
- case 0xc180: steady(); break;
- case 0xc184: constant(); break;
- case 0xc188: doorway(); break;
- case 0xc18c: widedoor(); break;
- case 0xc190: dodoor(); break;
- case 0xc194: lockeddoorway(); break;
- case 0xc198: updatepeople(); break;
- case 0xc19c: getreelframeax(); break;
- case 0xc1a0: reelsonscreen(); break;
- case 0xc1a4: plotreel(); break;
- case 0xc1a8: soundonreels(); break;
- case 0xc1ac: reconstruct(); break;
- case 0xc1b0: dealwithspecial(); break;
- case 0xc1b4: movemap(); break;
- case 0xc1b8: getreelstart(); break;
- case 0xc1bc: showreelframe(); break;
- case 0xc1c0: deleverything(); break;
- case 0xc1c4: dumpeverything(); break;
- case 0xc1c8: allocatework(); break;
- case 0xc1cc: showpcx(); break;
- case 0xc1d8: loadpalfromiff(); break;
- case 0xc1dc: setmode(); break;
- case 0xc1ec: paneltomap(); break;
- case 0xc1f0: maptopanel(); break;
- case 0xc1f4: dumpmap(); break;
- case 0xc1f8: pixelcheckset(); break;
- case 0xc1fc: createpanel(); break;
- case 0xc200: createpanel2(); break;
- case 0xc204: clearwork(); break;
- case 0xc208: vsync(); break;
- case 0xc20c: doshake(); break;
- case 0xc210: zoom(); break;
- case 0xc214: delthisone(); break;
- case 0xc228: doblocks(); break;
- case 0xc22c: showframe(); break;
- case 0xc238: frameoutbh(); break;
- case 0xc23c: frameoutfx(); break;
- case 0xc240: transferinv(); break;
- case 0xc244: transfermap(); break;
- case 0xc248: fadedos(); break;
- case 0xc24c: dofade(); break;
- case 0xc250: clearendpal(); break;
- case 0xc254: clearpalette(); break;
- case 0xc258: fadescreenup(); break;
- case 0xc25c: fadetowhite(); break;
- case 0xc260: fadefromwhite(); break;
- case 0xc264: fadescreenups(); break;
- case 0xc268: fadescreendownhalf(); break;
- case 0xc26c: fadescreenuphalf(); break;
- case 0xc270: fadescreendown(); break;
- case 0xc274: fadescreendowns(); break;
- case 0xc278: clearstartpal(); break;
- case 0xc27c: showgun(); break;
- case 0xc280: rollendcredits2(); break;
- case 0xc284: rollem(); break;
- case 0xc288: fadecalculation(); break;
- case 0xc28c: greyscalesum(); break;
- case 0xc290: showgroup(); break;
- case 0xc294: paltostartpal(); break;
- case 0xc298: endpaltostart(); break;
- case 0xc29c: startpaltoend(); break;
- case 0xc2a0: paltoendpal(); break;
- case 0xc2a4: allpalette(); break;
- case 0xc2a8: dumpcurrent(); break;
- case 0xc2ac: fadedownmon(); break;
- case 0xc2b0: fadeupmon(); break;
- case 0xc2b4: fadeupmonfirst(); break;
- case 0xc2b8: fadeupyellows(); break;
- case 0xc2bc: initialmoncols(); break;
- case 0xc2c0: titles(); break;
- case 0xc2c4: endgame(); break;
- case 0xc2c8: monkspeaking(); break;
- case 0xc2cc: showmonk(); break;
- case 0xc2d0: gettingshot(); break;
- case 0xc2d4: credits(); break;
- case 0xc2d8: biblequote(); break;
- case 0xc2dc: hangone(); break;
- case 0xc2e0: intro(); break;
- case 0xc2e4: runintroseq(); break;
- case 0xc2e8: runendseq(); break;
- case 0xc2ec: loadintroroom(); break;
- case 0xc2f0: mode640x480(); break;
- case 0xc2f4: set16colpalette(); break;
- case 0xc2f8: realcredits(); break;
- case 0xc2fc: printchar(); break;
- case 0xc300: kernchars(); break;
- case 0xc304: printslow(); break;
- case 0xc308: waitframes(); break;
- case 0xc30c: printboth(); break;
- case 0xc310: printdirect(); break;
- case 0xc314: monprint(); break;
- case 0xc318: getnumber(); break;
- case 0xc31c: getnextword(); break;
- case 0xc320: fillryan(); break;
- case 0xc324: fillopen(); break;
- case 0xc328: findallryan(); break;
- case 0xc32c: findallopen(); break;
- case 0xc330: obtoinv(); break;
- case 0xc334: isitworn(); break;
- case 0xc338: makeworn(); break;
- case 0xc33c: examineob(); break;
- case 0xc340: makemainscreen(); break;
- case 0xc344: getbackfromob(); break;
- case 0xc348: incryanpage(); break;
- case 0xc34c: openinv(); break;
- case 0xc350: showryanpage(); break;
- case 0xc354: openob(); break;
- case 0xc358: obicons(); break;
- case 0xc35c: examicon(); break;
- case 0xc360: obpicture(); break;
- case 0xc364: describeob(); break;
- case 0xc368: additionaltext(); break;
- case 0xc36c: obsthatdothings(); break;
- case 0xc370: getobtextstart(); break;
- case 0xc374: searchforsame(); break;
- case 0xc378: findnextcolon(); break;
- case 0xc37c: inventory(); break;
- case 0xc380: setpickup(); break;
- case 0xc384: examinventory(); break;
- case 0xc388: reexfrominv(); break;
- case 0xc38c: reexfromopen(); break;
- case 0xc390: swapwithinv(); break;
- case 0xc394: swapwithopen(); break;
- case 0xc398: intoinv(); break;
- case 0xc39c: deletetaken(); break;
- case 0xc3a0: outofinv(); break;
- case 0xc3a4: getfreead(); break;
- case 0xc3a8: getexad(); break;
- case 0xc3ac: geteitherad(); break;
- case 0xc3b0: getanyad(); break;
- case 0xc3b4: getanyaddir(); break;
- case 0xc3b8: getopenedsize(); break;
- case 0xc3bc: getsetad(); break;
- case 0xc3c0: findinvpos(); break;
- case 0xc3c4: findopenpos(); break;
- case 0xc3c8: dropobject(); break;
- case 0xc3cc: droperror(); break;
- case 0xc3d0: cantdrop(); break;
- case 0xc3d4: wornerror(); break;
- case 0xc3d8: removeobfrominv(); break;
- case 0xc3dc: selectopenob(); break;
- case 0xc3e0: useopened(); break;
- case 0xc3e4: errormessage1(); break;
- case 0xc3e8: errormessage2(); break;
- case 0xc3ec: errormessage3(); break;
- case 0xc3f0: checkobjectsize(); break;
- case 0xc3f4: outofopen(); break;
- case 0xc3f8: transfertoex(); break;
- case 0xc3fc: pickupconts(); break;
- case 0xc400: transfercontoex(); break;
- case 0xc404: transfertext(); break;
- case 0xc408: getexpos(); break;
- case 0xc40c: purgealocation(); break;
- case 0xc410: emergencypurge(); break;
- case 0xc414: purgeanitem(); break;
- case 0xc418: deleteexobject(); break;
- case 0xc41c: deleteexframe(); break;
- case 0xc420: deleteextext(); break;
- case 0xc424: blockget(); break;
- case 0xc428: drawfloor(); break;
- case 0xc42c: calcmapad(); break;
- case 0xc430: getdimension(); break;
- case 0xc434: addalong(); break;
- case 0xc438: addlength(); break;
- case 0xc43c: drawflags(); break;
- case 0xc440: eraseoldobs(); break;
- case 0xc444: showallobs(); break;
- case 0xc448: makebackob(); break;
- case 0xc44c: showallfree(); break;
- case 0xc450: showallex(); break;
- case 0xc454: calcfrframe(); break;
- case 0xc458: finalframe(); break;
- case 0xc45c: adjustlen(); break;
- case 0xc460: getmapad(); break;
- case 0xc464: getxad(); break;
- case 0xc468: getyad(); break;
- case 0xc46c: autolook(); break;
- case 0xc470: look(); break;
- case 0xc474: dolook(); break;
- case 0xc478: redrawmainscrn(); break;
- case 0xc47c: getback1(); break;
- case 0xc480: talk(); break;
- case 0xc484: convicons(); break;
- case 0xc488: getpersframe(); break;
- case 0xc48c: starttalk(); break;
- case 0xc490: getpersontext(); break;
- case 0xc494: moretalk(); break;
- case 0xc498: dosometalk(); break;
- case 0xc49c: hangonpq(); break;
- case 0xc4a0: redes(); break;
- case 0xc4a4: newplace(); break;
- case 0xc4a8: selectlocation(); break;
- case 0xc4ac: showcity(); break;
- case 0xc4b0: lookatplace(); break;
- case 0xc4b4: getundercentre(); break;
- case 0xc4b8: putundercentre(); break;
- case 0xc4bc: locationpic(); break;
- case 0xc4c0: getdestinfo(); break;
- case 0xc4c4: showarrows(); break;
- case 0xc4c8: nextdest(); break;
- case 0xc4cc: lastdest(); break;
- case 0xc4d0: destselect(); break;
- case 0xc4d4: getlocation(); break;
- case 0xc4d8: setlocation(); break;
- case 0xc4dc: resetlocation(); break;
- case 0xc4e0: readdesticon(); break;
- case 0xc4e4: readcitypic(); break;
- case 0xc4e8: usemon(); break;
- case 0xc4ec: printoutermon(); break;
- case 0xc4f0: loadpersonal(); break;
- case 0xc4f4: loadnews(); break;
- case 0xc4f8: loadcart(); break;
- case 0xc4fc: lookininterface(); break;
- case 0xc500: turnonpower(); break;
- case 0xc504: randomaccess(); break;
- case 0xc508: powerlighton(); break;
- case 0xc50c: powerlightoff(); break;
- case 0xc510: accesslighton(); break;
- case 0xc514: accesslightoff(); break;
- case 0xc518: locklighton(); break;
- case 0xc51c: locklightoff(); break;
- case 0xc520: input(); break;
- case 0xc524: makecaps(); break;
- case 0xc528: delchar(); break;
- case 0xc52c: execcommand(); break;
- case 0xc530: neterror(); break;
- case 0xc534: dircom(); break;
- case 0xc538: searchforfiles(); break;
- case 0xc53c: signon(); break;
- case 0xc540: showkeys(); break;
- case 0xc544: read(); break;
- case 0xc548: dirfile(); break;
- case 0xc54c: getkeyandlogo(); break;
- case 0xc550: searchforstring(); break;
- case 0xc554: parser(); break;
- case 0xc558: scrollmonitor(); break;
- case 0xc55c: lockmon(); break;
- case 0xc560: monitorlogo(); break;
- case 0xc564: printlogo(); break;
- case 0xc568: showcurrentfile(); break;
- case 0xc56c: monmessage(); break;
- case 0xc570: processtrigger(); break;
- case 0xc574: triggermessage(); break;
- case 0xc578: printcurs(); break;
- case 0xc57c: delcurs(); break;
- case 0xc580: useobject(); break;
- case 0xc584: useroutine(); break;
- case 0xc588: wheelsound(); break;
- case 0xc58c: runtap(); break;
- case 0xc590: playguitar(); break;
- case 0xc594: hotelcontrol(); break;
- case 0xc598: hotelbell(); break;
- case 0xc59c: opentomb(); break;
- case 0xc5a0: usetrainer(); break;
- case 0xc5a4: nothelderror(); break;
- case 0xc5a8: usepipe(); break;
- case 0xc5ac: usefullcart(); break;
- case 0xc5b0: useplinth(); break;
- case 0xc5b4: chewy(); break;
- case 0xc5b8: useladder(); break;
- case 0xc5bc: useladderb(); break;
- case 0xc5c0: slabdoora(); break;
- case 0xc5c4: slabdoorb(); break;
- case 0xc5c8: slabdoord(); break;
- case 0xc5cc: slabdoorc(); break;
- case 0xc5d0: slabdoore(); break;
- case 0xc5d4: slabdoorf(); break;
- case 0xc5d8: useslab(); break;
- case 0xc5dc: usecart(); break;
- case 0xc5e0: useclearbox(); break;
- case 0xc5e4: usecoveredbox(); break;
- case 0xc5e8: userailing(); break;
- case 0xc5ec: useopenbox(); break;
- case 0xc5f0: wearwatch(); break;
- case 0xc5f4: wearshades(); break;
- case 0xc5f8: sitdowninbar(); break;
- case 0xc5fc: usechurchhole(); break;
- case 0xc600: usehole(); break;
- case 0xc604: usealtar(); break;
- case 0xc608: opentvdoor(); break;
- case 0xc60c: usedryer(); break;
- case 0xc610: openlouis(); break;
- case 0xc614: nextcolon(); break;
- case 0xc618: openyourneighbour(); break;
- case 0xc61c: usewindow(); break;
- case 0xc620: usebalcony(); break;
- case 0xc624: openryan(); break;
- case 0xc628: openpoolboss(); break;
- case 0xc62c: openeden(); break;
- case 0xc630: opensarters(); break;
- case 0xc634: isitright(); break;
- case 0xc638: drawitall(); break;
- case 0xc63c: openhoteldoor(); break;
- case 0xc640: openhoteldoor2(); break;
- case 0xc644: grafittidoor(); break;
- case 0xc648: trapdoor(); break;
- case 0xc64c: callhotellift(); break;
- case 0xc650: calledenslift(); break;
- case 0xc654: calledensdlift(); break;
- case 0xc658: usepoolreader(); break;
- case 0xc65c: uselighter(); break;
- case 0xc660: showseconduse(); break;
- case 0xc664: usecardreader1(); break;
- case 0xc668: usecardreader2(); break;
- case 0xc66c: usecardreader3(); break;
- case 0xc670: usecashcard(); break;
- case 0xc674: lookatcard(); break;
- case 0xc678: moneypoke(); break;
- case 0xc67c: usecontrol(); break;
- case 0xc680: usehatch(); break;
- case 0xc684: usewire(); break;
- case 0xc688: usehandle(); break;
- case 0xc68c: useelevator1(); break;
- case 0xc690: showfirstuse(); break;
- case 0xc694: useelevator3(); break;
- case 0xc698: useelevator4(); break;
- case 0xc69c: useelevator2(); break;
- case 0xc6a0: useelevator5(); break;
- case 0xc6a4: usekey(); break;
- case 0xc6a8: usestereo(); break;
- case 0xc6ac: usecooker(); break;
- case 0xc6b0: useaxe(); break;
- case 0xc6b4: useelvdoor(); break;
- case 0xc6b8: withwhat(); break;
- case 0xc6bc: selectob(); break;
- case 0xc6c0: compare(); break;
- case 0xc6c4: findsetobject(); break;
- case 0xc6c8: findexobject(); break;
- case 0xc6cc: isryanholding(); break;
- case 0xc6d0: checkinside(); break;
- case 0xc6d4: usetext(); break;
- case 0xc6d8: putbackobstuff(); break;
- case 0xc6dc: showpuztext(); break;
- case 0xc6e0: findpuztext(); break;
- case 0xc6e4: placesetobject(); break;
- case 0xc6e8: removesetobject(); break;
- case 0xc6ec: issetobonmap(); break;
- case 0xc6f0: placefreeobject(); break;
- case 0xc6f4: removefreeobject(); break;
- case 0xc6f8: findormake(); break;
- case 0xc6fc: switchryanon(); break;
- case 0xc700: switchryanoff(); break;
- case 0xc704: setallchanges(); break;
- case 0xc708: dochange(); break;
- case 0xc70c: autoappear(); break;
- case 0xc710: getundertimed(); break;
- case 0xc714: putundertimed(); break;
- case 0xc718: dumptimedtext(); break;
- case 0xc71c: setuptimeduse(); break;
- case 0xc720: setuptimedtemp(); break;
- case 0xc724: usetimedtext(); break;
- case 0xc728: edenscdplayer(); break;
- case 0xc72c: usewall(); break;
- case 0xc730: usechurchgate(); break;
- case 0xc734: usegun(); break;
- case 0xc738: useshield(); break;
- case 0xc73c: usebuttona(); break;
- case 0xc740: useplate(); break;
- case 0xc744: usewinch(); break;
- case 0xc748: entercode(); break;
- case 0xc74c: loadkeypad(); break;
- case 0xc750: quitkey(); break;
- case 0xc754: addtopresslist(); break;
- case 0xc758: buttonone(); break;
- case 0xc75c: buttontwo(); break;
- case 0xc760: buttonthree(); break;
- case 0xc764: buttonfour(); break;
- case 0xc768: buttonfive(); break;
- case 0xc76c: buttonsix(); break;
- case 0xc770: buttonseven(); break;
- case 0xc774: buttoneight(); break;
- case 0xc778: buttonnine(); break;
- case 0xc77c: buttonnought(); break;
- case 0xc780: buttonenter(); break;
- case 0xc784: buttonpress(); break;
- case 0xc788: showouterpad(); break;
- case 0xc78c: showkeypad(); break;
- case 0xc790: singlekey(); break;
- case 0xc794: dumpkeypad(); break;
- case 0xc798: usemenu(); break;
- case 0xc79c: dumpmenu(); break;
- case 0xc7a0: getundermenu(); break;
- case 0xc7a4: putundermenu(); break;
- case 0xc7a8: showoutermenu(); break;
- case 0xc7ac: showmenu(); break;
- case 0xc7b0: loadmenu(); break;
- case 0xc7b4: viewfolder(); break;
- case 0xc7b8: nextfolder(); break;
- case 0xc7bc: folderhints(); break;
- case 0xc7c0: lastfolder(); break;
- case 0xc7c4: loadfolder(); break;
- case 0xc7c8: showfolder(); break;
- case 0xc7cc: folderexit(); break;
- case 0xc7d0: showleftpage(); break;
- case 0xc7d4: showrightpage(); break;
- case 0xc7d8: entersymbol(); break;
- case 0xc7dc: quitsymbol(); break;
- case 0xc7e0: settopleft(); break;
- case 0xc7e4: settopright(); break;
- case 0xc7e8: setbotleft(); break;
- case 0xc7ec: setbotright(); break;
- case 0xc7f0: dumpsymbol(); break;
- case 0xc7f4: showsymbol(); break;
- case 0xc7f8: nextsymbol(); break;
- case 0xc7fc: updatesymboltop(); break;
- case 0xc800: updatesymbolbot(); break;
- case 0xc804: dumpsymbox(); break;
- case 0xc808: usediary(); break;
- case 0xc80c: showdiary(); break;
- case 0xc810: showdiarykeys(); break;
- case 0xc814: dumpdiarykeys(); break;
- case 0xc818: diarykeyp(); break;
- case 0xc81c: diarykeyn(); break;
- case 0xc820: showdiarypage(); break;
- case 0xc824: findtext1(); break;
- case 0xc828: zoomonoff(); break;
- case 0xc82c: saveload(); break;
- case 0xc830: dosaveload(); break;
- case 0xc834: getbackfromops(); break;
- case 0xc838: showmainops(); break;
- case 0xc83c: showdiscops(); break;
- case 0xc840: loadsavebox(); break;
- case 0xc844: loadgame(); break;
- case 0xc848: getbacktoops(); break;
- case 0xc84c: discops(); break;
- case 0xc850: savegame(); break;
- case 0xc854: actualsave(); break;
- case 0xc858: actualload(); break;
- case 0xc85c: selectslot2(); break;
- case 0xc860: checkinput(); break;
- case 0xc864: getnamepos(); break;
- case 0xc868: showopbox(); break;
- case 0xc86c: showloadops(); break;
- case 0xc870: showsaveops(); break;
- case 0xc874: selectslot(); break;
- case 0xc878: showslots(); break;
- case 0xc87c: shownames(); break;
- case 0xc880: dosreturn(); break;
- case 0xc884: error(); break;
- case 0xc888: namestoold(); break;
- case 0xc88c: oldtonames(); break;
- case 0xc890: savefilewrite(); break;
- case 0xc894: savefileread(); break;
- case 0xc898: saveposition(); break;
- case 0xc89c: loadposition(); break;
- case 0xc8a0: loadseg(); break;
- case 0xc8a4: makeheader(); break;
- case 0xc8a8: storeit(); break;
- case 0xc8ac: saveseg(); break;
- case 0xc8b0: findlen(); break;
- case 0xc8b4: scanfornames(); break;
- case 0xc8b8: decide(); break;
- case 0xc8bc: showdecisions(); break;
- case 0xc8c0: newgame(); break;
- case 0xc8c4: loadold(); break;
- case 0xc8c8: loadspeech(); break;
- case 0xc8cc: createname(); break;
- case 0xc8d0: loadsample(); break;
- case 0xc8d4: loadsecondsample(); break;
- case 0xc8d8: soundstartup(); break;
- case 0xc8dc: trysoundalloc(); break;
- case 0xc8e0: setsoundoff(); break;
- case 0xc8e4: checksoundint(); break;
- case 0xc8e8: enablesoundint(); break;
- case 0xc8ec: disablesoundint(); break;
- case 0xc8f0: interupttest(); break;
- case 0xc8f4: soundend(); break;
- case 0xc8f8: out22c(); break;
- case 0xc8fc: playchannel0(); break;
- case 0xc900: playchannel1(); break;
- case 0xc904: makenextblock(); break;
- case 0xc908: volumeadjust(); break;
- case 0xc90c: loopchannel0(); break;
- case 0xc910: cancelch0(); break;
- case 0xc914: cancelch1(); break;
- case 0xc918: channel0only(); break;
- case 0xc91c: channel1only(); break;
- case 0xc920: channel0tran(); break;
- case 0xc924: bothchannels(); break;
- case 0xc928: saveems(); break;
- case 0xc92c: restoreems(); break;
- case 0xc930: domix(); break;
- case 0xc934: dmaend(); break;
- case 0xc938: startdmablock(); break;
- case 0xc93c: setuppit(); break;
- case 0xc940: getridofpit(); break;
- case 0xc944: pitinterupt(); break;
- case 0xc948: dreamweb(); break;
- case 0xc94c: entrytexts(); break;
- case 0xc950: entryanims(); break;
- case 0xc954: initialinv(); break;
- case 0xc958: pickupob(); break;
- case 0xc95c: setupemm(); break;
- case 0xc960: removeemm(); break;
- case 0xc964: checkforemm(); break;
- case 0xc968: checkbasemem(); break;
- case 0xc96c: allocatebuffers(); break;
- case 0xc970: clearbuffers(); break;
- case 0xc974: clearchanges(); break;
- case 0xc978: clearbeforeload(); break;
- case 0xc97c: clearreels(); break;
- case 0xc980: clearrest(); break;
- case 0xc984: deallocatemem(); break;
- case 0xc988: allocatemem(); break;
- case 0xc990: parseblaster(); break;
- case 0xc994: startup(); break;
- case 0xc998: startup1(); break;
- case 0xc99c: screenupdate(); break;
- case 0xc9a0: watchreel(); break;
- case 0xc9a4: checkforshake(); break;
- case 0xc9a8: watchcount(); break;
- case 0xc9ac: showtime(); break;
- case 0xc9b0: dumpwatch(); break;
- case 0xc9b4: showbyte(); break;
- case 0xc9b8: onedigit(); break;
- case 0xc9bc: twodigitnum(); break;
- case 0xc9c0: showword(); break;
- case 0xc9c4: convnum(); break;
- case 0xc9c8: mainscreen(); break;
- case 0xc9cc: madmanrun(); break;
- case 0xc9d0: checkcoords(); break;
- case 0xc9d4: identifyob(); break;
- case 0xc9d8: checkifperson(); break;
- case 0xc9dc: checkifset(); break;
- case 0xc9e0: checkifex(); break;
- case 0xc9e4: checkiffree(); break;
- case 0xc9e8: isitdescribed(); break;
- case 0xc9ec: findpathofpoint(); break;
- case 0xc9f0: findfirstpath(); break;
- case 0xc9f4: turnpathon(); break;
- case 0xc9f8: turnpathoff(); break;
- case 0xc9fc: turnanypathon(); break;
- case 0xca00: turnanypathoff(); break;
- case 0xca04: checkifpathison(); break;
- case 0xca08: afternewroom(); break;
- case 0xca0c: atmospheres(); break;
- case 0xca10: walkintoroom(); break;
- case 0xca14: afterintroroom(); break;
- case 0xca18: obname(); break;
- case 0xca1c: finishedwalking(); break;
- case 0xca20: examineobtext(); break;
- case 0xca24: commandwithob(); break;
- case 0xca28: commandonly(); break;
- case 0xca2c: printmessage(); break;
- case 0xca30: printmessage2(); break;
- case 0xca34: blocknametext(); break;
- case 0xca38: personnametext(); break;
- case 0xca3c: walktotext(); break;
- case 0xca40: getflagunderp(); break;
- case 0xca44: setwalk(); break;
- case 0xca48: autosetwalk(); break;
- case 0xca4c: checkdest(); break;
- case 0xca50: bresenhams(); break;
- case 0xca54: workoutframes(); break;
- case 0xca58: getroomspaths(); break;
- case 0xca5c: copyname(); break;
- case 0xca60: findobname(); break;
- case 0xca64: showicon(); break;
- case 0xca68: middlepanel(); break;
- case 0xca6c: showman(); break;
- case 0xca70: showpanel(); break;
- case 0xca74: roomname(); break;
- case 0xca78: usecharset1(); break;
- case 0xca7c: usetempcharset(); break;
- case 0xca80: showexit(); break;
- case 0xca84: panelicons1(); break;
- case 0xca88: showwatch(); break;
- case 0xca8c: gettime(); break;
- case 0xca90: zoomicon(); break;
- case 0xca94: showblink(); break;
- case 0xca98: dumpblink(); break;
- case 0xca9c: worktoscreenm(); break;
- case 0xcaa0: blank(); break;
- case 0xcaa4: allpointer(); break;
- case 0xcaa8: hangonp(); break;
- case 0xcaac: hangonw(); break;
- case 0xcab0: hangoncurs(); break;
- case 0xcab4: getunderzoom(); break;
- case 0xcab8: dumpzoom(); break;
- case 0xcabc: putunderzoom(); break;
- case 0xcac0: crosshair(); break;
- case 0xcac4: showpointer(); break;
- case 0xcac8: delpointer(); break;
- case 0xcacc: dumppointer(); break;
- case 0xcad0: undertextline(); break;
- case 0xcad4: deltextline(); break;
- case 0xcad8: dumptextline(); break;
- case 0xcadc: animpointer(); break;
- case 0xcae0: setmouse(); break;
- case 0xcae4: readmouse(); break;
- case 0xcae8: mousecall(); break;
- case 0xcaec: readmouse1(); break;
- case 0xcaf0: readmouse2(); break;
- case 0xcaf4: readmouse3(); break;
- case 0xcaf8: readmouse4(); break;
- case 0xcafc: readkey(); break;
- case 0xcb04: randomnum1(); break;
- case 0xcb08: randomnum2(); break;
- case 0xcb10: hangon(); break;
- case 0xcb14: loadtraveltext(); break;
- case 0xcb18: loadintotemp(); break;
- case 0xcb1c: loadintotemp2(); break;
- case 0xcb20: loadintotemp3(); break;
- case 0xcb24: loadtempcharset(); break;
- case 0xcb28: standardload(); break;
- case 0xcb2c: loadtemptext(); break;
- case 0xcb30: loadroom(); break;
- case 0xcb34: loadroomssample(); break;
- case 0xcb38: getridofreels(); break;
- case 0xcb3c: getridofall(); break;
- case 0xcb40: restorereels(); break;
- case 0xcb44: restoreall(); break;
- case 0xcb48: sortoutmap(); break;
- case 0xcb4c: startloading(); break;
- case 0xcb50: disablepath(); break;
- case 0xcb54: findxyfrompath(); break;
- case 0xcb58: findroominloc(); break;
- case 0xcb5c: getroomdata(); break;
- case 0xcb60: readheader(); break;
- case 0xcb64: dontloadseg(); break;
- case 0xcb68: allocateload(); break;
- case 0xcb6c: fillspace(); break;
- case 0xcb70: getridoftemp(); break;
- case 0xcb74: getridoftemptext(); break;
- case 0xcb78: getridoftemp2(); break;
- case 0xcb7c: getridoftemp3(); break;
- case 0xcb80: getridoftempcharset(); break;
- case 0xcb84: getridoftempsp(); break;
- case 0xcb88: readsetdata(); break;
- case 0xcb8c: createfile(); break;
- case 0xcb90: openfile(); break;
- case 0xcb94: openfilefromc(); break;
- case 0xcb98: makename(); break;
- case 0xcb9c: openfilenocheck(); break;
- case 0xcba0: openforsave(); break;
- case 0xcba4: closefile(); break;
- case 0xcba8: readfromfile(); break;
- case 0xcbac: setkeyboardint(); break;
- case 0xcbb0: resetkeyboard(); break;
- case 0xcbb4: keyboardread(); break;
- case 0xcbb8: walkandexamine(); break;
- case 0xcbbc: doload(); break;
- case 0xcbc0: generalerror(); break;
+ case addr_alleybarksound: alleybarksound(); break;
+ case addr_intromusic: intromusic(); break;
+ case addr_foghornsound: foghornsound(); break;
+ case addr_receptionist: receptionist(); break;
+ case addr_smokebloke: smokebloke(); break;
+ case addr_attendant: attendant(); break;
+ case addr_manasleep: manasleep(); break;
+ case addr_eden: eden(); break;
+ case addr_edeninbath: edeninbath(); break;
+ case addr_malefan: malefan(); break;
+ case addr_femalefan: femalefan(); break;
+ case addr_louis: louis(); break;
+ case addr_louischair: louischair(); break;
+ case addr_manasleep2: manasleep2(); break;
+ case addr_mansatstill: mansatstill(); break;
+ case addr_tattooman: tattooman(); break;
+ case addr_drinker: drinker(); break;
+ case addr_bartender: bartender(); break;
+ case addr_othersmoker: othersmoker(); break;
+ case addr_barwoman: barwoman(); break;
+ case addr_interviewer: interviewer(); break;
+ case addr_soldier1: soldier1(); break;
+ case addr_rockstar: rockstar(); break;
+ case addr_helicopter: helicopter(); break;
+ case addr_mugger: mugger(); break;
+ case addr_aide: aide(); break;
+ case addr_businessman: businessman(); break;
+ case addr_poolguard: poolguard(); break;
+ case addr_security: security(); break;
+ case addr_heavy: heavy(); break;
+ case addr_bossman: bossman(); break;
+ case addr_gamer: gamer(); break;
+ case addr_sparkydrip: sparkydrip(); break;
+ case addr_carparkdrip: carparkdrip(); break;
+ case addr_keeper: keeper(); break;
+ case addr_candles1: candles1(); break;
+ case addr_smallcandle: smallcandle(); break;
+ case addr_intromagic1: intromagic1(); break;
+ case addr_candles: candles(); break;
+ case addr_candles2: candles2(); break;
+ case addr_gates: gates(); break;
+ case addr_intromagic2: intromagic2(); break;
+ case addr_intromagic3: intromagic3(); break;
+ case addr_intromonks1: intromonks1(); break;
+ case addr_intromonks2: intromonks2(); break;
+ case addr_handclap: handclap(); break;
+ case addr_monks2text: monks2text(); break;
+ case addr_intro1text: intro1text(); break;
+ case addr_intro2text: intro2text(); break;
+ case addr_intro3text: intro3text(); break;
+ case addr_monkandryan: monkandryan(); break;
+ case addr_endgameseq: endgameseq(); break;
+ case addr_rollendcredits: rollendcredits(); break;
+ case addr_priest: priest(); break;
+ case addr_madmanstelly: madmanstelly(); break;
+ case addr_madman: madman(); break;
+ case addr_priesttext: priesttext(); break;
+ case addr_textforend: textforend(); break;
+ case addr_textformonk: textformonk(); break;
+ case addr_drunk: drunk(); break;
+ case addr_advisor: advisor(); break;
+ case addr_copper: copper(); break;
+ case addr_sparky: sparky(); break;
+ case addr_train: train(); break;
+ case addr_addtopeoplelist: addtopeoplelist(); break;
+ case addr_checkspeed: checkspeed(); break;
+ case addr_delsprite: delsprite(); break;
+ case addr_mainman: mainman(); break;
+ case addr_checkforexit: checkforexit(); break;
+ case addr_adjustdown: adjustdown(); break;
+ case addr_adjustup: adjustup(); break;
+ case addr_adjustleft: adjustleft(); break;
+ case addr_adjustright: adjustright(); break;
+ case addr_reminders: reminders(); break;
+ case addr_initrain: initrain(); break;
+ case addr_splitintolines: splitintolines(); break;
+ case addr_getblockofpixel: getblockofpixel(); break;
+ case addr_backobject: backobject(); break;
+ case addr_liftnoise: liftnoise(); break;
+ case addr_random: random(); break;
+ case addr_steady: steady(); break;
+ case addr_constant: constant(); break;
+ case addr_reelsonscreen: reelsonscreen(); break;
+ case addr_soundonreels: soundonreels(); break;
+ case addr_reconstruct: reconstruct(); break;
+ case addr_deleverything: deleverything(); break;
+ case addr_dumpeverything: dumpeverything(); break;
+ case addr_showpcx: showpcx(); break;
+ case addr_loadpalfromiff: loadpalfromiff(); break;
+ case addr_setmode: setmode(); break;
+ case addr_paneltomap: paneltomap(); break;
+ case addr_maptopanel: maptopanel(); break;
+ case addr_dumpmap: dumpmap(); break;
+ case addr_pixelcheckset: pixelcheckset(); break;
+ case addr_createpanel: createpanel(); break;
+ case addr_createpanel2: createpanel2(); break;
+ case addr_vsync: vsync(); break;
+ case addr_doshake: doshake(); break;
+ case addr_delthisone: delthisone(); break;
+ case addr_transferinv: transferinv(); break;
+ case addr_transfermap: transfermap(); break;
+ case addr_fadedos: fadedos(); break;
+ case addr_dofade: dofade(); break;
+ case addr_clearendpal: clearendpal(); break;
+ case addr_clearpalette: clearpalette(); break;
+ case addr_fadescreenup: fadescreenup(); break;
+ case addr_fadetowhite: fadetowhite(); break;
+ case addr_fadefromwhite: fadefromwhite(); break;
+ case addr_fadescreenups: fadescreenups(); break;
+ case addr_fadescreendownhalf: fadescreendownhalf(); break;
+ case addr_fadescreenuphalf: fadescreenuphalf(); break;
+ case addr_fadescreendown: fadescreendown(); break;
+ case addr_fadescreendowns: fadescreendowns(); break;
+ case addr_clearstartpal: clearstartpal(); break;
+ case addr_showgun: showgun(); break;
+ case addr_rollendcredits2: rollendcredits2(); break;
+ case addr_rollem: rollem(); break;
+ case addr_fadecalculation: fadecalculation(); break;
+ case addr_greyscalesum: greyscalesum(); break;
+ case addr_showgroup: showgroup(); break;
+ case addr_paltostartpal: paltostartpal(); break;
+ case addr_endpaltostart: endpaltostart(); break;
+ case addr_startpaltoend: startpaltoend(); break;
+ case addr_paltoendpal: paltoendpal(); break;
+ case addr_allpalette: allpalette(); break;
+ case addr_dumpcurrent: dumpcurrent(); break;
+ case addr_fadedownmon: fadedownmon(); break;
+ case addr_fadeupmon: fadeupmon(); break;
+ case addr_fadeupmonfirst: fadeupmonfirst(); break;
+ case addr_fadeupyellows: fadeupyellows(); break;
+ case addr_initialmoncols: initialmoncols(); break;
+ case addr_titles: titles(); break;
+ case addr_endgame: endgame(); break;
+ case addr_monkspeaking: monkspeaking(); break;
+ case addr_showmonk: showmonk(); break;
+ case addr_gettingshot: gettingshot(); break;
+ case addr_credits: credits(); break;
+ case addr_biblequote: biblequote(); break;
+ case addr_hangone: hangone(); break;
+ case addr_intro: intro(); break;
+ case addr_runintroseq: runintroseq(); break;
+ case addr_runendseq: runendseq(); break;
+ case addr_loadintroroom: loadintroroom(); break;
+ case addr_mode640x480: mode640x480(); break;
+ case addr_set16colpalette: set16colpalette(); break;
+ case addr_realcredits: realcredits(); break;
+ case addr_waitframes: waitframes(); break;
+ case addr_monprint: monprint(); break;
+ case addr_fillryan: fillryan(); break;
+ case addr_fillopen: fillopen(); break;
+ case addr_findallryan: findallryan(); break;
+ case addr_findallopen: findallopen(); break;
+ case addr_obtoinv: obtoinv(); break;
+ case addr_isitworn: isitworn(); break;
+ case addr_makeworn: makeworn(); break;
+ case addr_examineob: examineob(); break;
+ case addr_makemainscreen: makemainscreen(); break;
+ case addr_getbackfromob: getbackfromob(); break;
+ case addr_incryanpage: incryanpage(); break;
+ case addr_openinv: openinv(); break;
+ case addr_showryanpage: showryanpage(); break;
+ case addr_openob: openob(); break;
+ case addr_obicons: obicons(); break;
+ case addr_examicon: examicon(); break;
+ case addr_obpicture: obpicture(); break;
+ case addr_describeob: describeob(); break;
+ case addr_additionaltext: additionaltext(); break;
+ case addr_obsthatdothings: obsthatdothings(); break;
+ case addr_getobtextstart: getobtextstart(); break;
+ case addr_searchforsame: searchforsame(); break;
+ case addr_findnextcolon: findnextcolon(); break;
+ case addr_inventory: inventory(); break;
+ case addr_setpickup: setpickup(); break;
+ case addr_examinventory: examinventory(); break;
+ case addr_reexfrominv: reexfrominv(); break;
+ case addr_reexfromopen: reexfromopen(); break;
+ case addr_swapwithinv: swapwithinv(); break;
+ case addr_swapwithopen: swapwithopen(); break;
+ case addr_intoinv: intoinv(); break;
+ case addr_outofinv: outofinv(); break;
+ case addr_getfreead: getfreead(); break;
+ case addr_getexad: getexad(); break;
+ case addr_geteitherad: geteitherad(); break;
+ case addr_getanyad: getanyad(); break;
+ case addr_getanyaddir: getanyaddir(); break;
+ case addr_getopenedsize: getopenedsize(); break;
+ case addr_getsetad: getsetad(); break;
+ case addr_findinvpos: findinvpos(); break;
+ case addr_findopenpos: findopenpos(); break;
+ case addr_dropobject: dropobject(); break;
+ case addr_droperror: droperror(); break;
+ case addr_cantdrop: cantdrop(); break;
+ case addr_wornerror: wornerror(); break;
+ case addr_removeobfrominv: removeobfrominv(); break;
+ case addr_selectopenob: selectopenob(); break;
+ case addr_useopened: useopened(); break;
+ case addr_errormessage1: errormessage1(); break;
+ case addr_errormessage2: errormessage2(); break;
+ case addr_errormessage3: errormessage3(); break;
+ case addr_checkobjectsize: checkobjectsize(); break;
+ case addr_outofopen: outofopen(); break;
+ case addr_transfertoex: transfertoex(); break;
+ case addr_pickupconts: pickupconts(); break;
+ case addr_transfercontoex: transfercontoex(); break;
+ case addr_transfertext: transfertext(); break;
+ case addr_getexpos: getexpos(); break;
+ case addr_purgealocation: purgealocation(); break;
+ case addr_emergencypurge: emergencypurge(); break;
+ case addr_purgeanitem: purgeanitem(); break;
+ case addr_deleteexobject: deleteexobject(); break;
+ case addr_deleteexframe: deleteexframe(); break;
+ case addr_deleteextext: deleteextext(); break;
+ case addr_blockget: blockget(); break;
+ case addr_drawfloor: drawfloor(); break;
+ case addr_drawflags: drawflags(); break;
+ case addr_showallex: showallex(); break;
+ case addr_autolook: autolook(); break;
+ case addr_look: look(); break;
+ case addr_dolook: dolook(); break;
+ case addr_redrawmainscrn: redrawmainscrn(); break;
+ case addr_getback1: getback1(); break;
+ case addr_talk: talk(); break;
+ case addr_convicons: convicons(); break;
+ case addr_getpersframe: getpersframe(); break;
+ case addr_starttalk: starttalk(); break;
+ case addr_getpersontext: getpersontext(); break;
+ case addr_moretalk: moretalk(); break;
+ case addr_dosometalk: dosometalk(); break;
+ case addr_hangonpq: hangonpq(); break;
+ case addr_redes: redes(); break;
+ case addr_newplace: newplace(); break;
+ case addr_selectlocation: selectlocation(); break;
+ case addr_showcity: showcity(); break;
+ case addr_lookatplace: lookatplace(); break;
+ case addr_getundercentre: getundercentre(); break;
+ case addr_putundercentre: putundercentre(); break;
+ case addr_locationpic: locationpic(); break;
+ case addr_getdestinfo: getdestinfo(); break;
+ case addr_showarrows: showarrows(); break;
+ case addr_nextdest: nextdest(); break;
+ case addr_lastdest: lastdest(); break;
+ case addr_destselect: destselect(); break;
+ case addr_getlocation: getlocation(); break;
+ case addr_setlocation: setlocation(); break;
+ case addr_resetlocation: resetlocation(); break;
+ case addr_readdesticon: readdesticon(); break;
+ case addr_readcitypic: readcitypic(); break;
+ case addr_usemon: usemon(); break;
+ case addr_printoutermon: printoutermon(); break;
+ case addr_loadpersonal: loadpersonal(); break;
+ case addr_loadnews: loadnews(); break;
+ case addr_loadcart: loadcart(); break;
+ case addr_lookininterface: lookininterface(); break;
+ case addr_turnonpower: turnonpower(); break;
+ case addr_randomaccess: randomaccess(); break;
+ case addr_powerlighton: powerlighton(); break;
+ case addr_powerlightoff: powerlightoff(); break;
+ case addr_accesslighton: accesslighton(); break;
+ case addr_accesslightoff: accesslightoff(); break;
+ case addr_locklighton: locklighton(); break;
+ case addr_locklightoff: locklightoff(); break;
+ case addr_input: input(); break;
+ case addr_makecaps: makecaps(); break;
+ case addr_delchar: delchar(); break;
+ case addr_execcommand: execcommand(); break;
+ case addr_neterror: neterror(); break;
+ case addr_dircom: dircom(); break;
+ case addr_searchforfiles: searchforfiles(); break;
+ case addr_signon: signon(); break;
+ case addr_showkeys: showkeys(); break;
+ case addr_read: read(); break;
+ case addr_dirfile: dirfile(); break;
+ case addr_getkeyandlogo: getkeyandlogo(); break;
+ case addr_searchforstring: searchforstring(); break;
+ case addr_parser: parser(); break;
+ case addr_scrollmonitor: scrollmonitor(); break;
+ case addr_monitorlogo: monitorlogo(); break;
+ case addr_printlogo: printlogo(); break;
+ case addr_showcurrentfile: showcurrentfile(); break;
+ case addr_monmessage: monmessage(); break;
+ case addr_processtrigger: processtrigger(); break;
+ case addr_triggermessage: triggermessage(); break;
+ case addr_printcurs: printcurs(); break;
+ case addr_delcurs: delcurs(); break;
+ case addr_useobject: useobject(); break;
+ case addr_useroutine: useroutine(); break;
+ case addr_wheelsound: wheelsound(); break;
+ case addr_runtap: runtap(); break;
+ case addr_playguitar: playguitar(); break;
+ case addr_hotelcontrol: hotelcontrol(); break;
+ case addr_hotelbell: hotelbell(); break;
+ case addr_opentomb: opentomb(); break;
+ case addr_usetrainer: usetrainer(); break;
+ case addr_nothelderror: nothelderror(); break;
+ case addr_usepipe: usepipe(); break;
+ case addr_usefullcart: usefullcart(); break;
+ case addr_useplinth: useplinth(); break;
+ case addr_chewy: chewy(); break;
+ case addr_useladder: useladder(); break;
+ case addr_useladderb: useladderb(); break;
+ case addr_slabdoora: slabdoora(); break;
+ case addr_slabdoorb: slabdoorb(); break;
+ case addr_slabdoord: slabdoord(); break;
+ case addr_slabdoorc: slabdoorc(); break;
+ case addr_slabdoore: slabdoore(); break;
+ case addr_slabdoorf: slabdoorf(); break;
+ case addr_useslab: useslab(); break;
+ case addr_usecart: usecart(); break;
+ case addr_useclearbox: useclearbox(); break;
+ case addr_usecoveredbox: usecoveredbox(); break;
+ case addr_userailing: userailing(); break;
+ case addr_useopenbox: useopenbox(); break;
+ case addr_wearwatch: wearwatch(); break;
+ case addr_wearshades: wearshades(); break;
+ case addr_sitdowninbar: sitdowninbar(); break;
+ case addr_usechurchhole: usechurchhole(); break;
+ case addr_usehole: usehole(); break;
+ case addr_usealtar: usealtar(); break;
+ case addr_opentvdoor: opentvdoor(); break;
+ case addr_usedryer: usedryer(); break;
+ case addr_openlouis: openlouis(); break;
+ case addr_nextcolon: nextcolon(); break;
+ case addr_openyourneighbour: openyourneighbour(); break;
+ case addr_usewindow: usewindow(); break;
+ case addr_usebalcony: usebalcony(); break;
+ case addr_openryan: openryan(); break;
+ case addr_openpoolboss: openpoolboss(); break;
+ case addr_openeden: openeden(); break;
+ case addr_opensarters: opensarters(); break;
+ case addr_isitright: isitright(); break;
+ case addr_drawitall: drawitall(); break;
+ case addr_openhoteldoor: openhoteldoor(); break;
+ case addr_openhoteldoor2: openhoteldoor2(); break;
+ case addr_grafittidoor: grafittidoor(); break;
+ case addr_trapdoor: trapdoor(); break;
+ case addr_callhotellift: callhotellift(); break;
+ case addr_calledenslift: calledenslift(); break;
+ case addr_calledensdlift: calledensdlift(); break;
+ case addr_usepoolreader: usepoolreader(); break;
+ case addr_uselighter: uselighter(); break;
+ case addr_showseconduse: showseconduse(); break;
+ case addr_usecardreader1: usecardreader1(); break;
+ case addr_usecardreader2: usecardreader2(); break;
+ case addr_usecardreader3: usecardreader3(); break;
+ case addr_usecashcard: usecashcard(); break;
+ case addr_lookatcard: lookatcard(); break;
+ case addr_moneypoke: moneypoke(); break;
+ case addr_usecontrol: usecontrol(); break;
+ case addr_usehatch: usehatch(); break;
+ case addr_usewire: usewire(); break;
+ case addr_usehandle: usehandle(); break;
+ case addr_useelevator1: useelevator1(); break;
+ case addr_showfirstuse: showfirstuse(); break;
+ case addr_useelevator3: useelevator3(); break;
+ case addr_useelevator4: useelevator4(); break;
+ case addr_useelevator2: useelevator2(); break;
+ case addr_useelevator5: useelevator5(); break;
+ case addr_usekey: usekey(); break;
+ case addr_usestereo: usestereo(); break;
+ case addr_usecooker: usecooker(); break;
+ case addr_useaxe: useaxe(); break;
+ case addr_useelvdoor: useelvdoor(); break;
+ case addr_withwhat: withwhat(); break;
+ case addr_selectob: selectob(); break;
+ case addr_compare: compare(); break;
+ case addr_findsetobject: findsetobject(); break;
+ case addr_findexobject: findexobject(); break;
+ case addr_isryanholding: isryanholding(); break;
+ case addr_checkinside: checkinside(); break;
+ case addr_usetext: usetext(); break;
+ case addr_putbackobstuff: putbackobstuff(); break;
+ case addr_showpuztext: showpuztext(); break;
+ case addr_findpuztext: findpuztext(); break;
+ case addr_issetobonmap: issetobonmap(); break;
+ case addr_placefreeobject: placefreeobject(); break;
+ case addr_removefreeobject: removefreeobject(); break;
+ case addr_switchryanon: switchryanon(); break;
+ case addr_switchryanoff: switchryanoff(); break;
+ case addr_autoappear: autoappear(); break;
+ case addr_setuptimeduse: setuptimeduse(); break;
+ case addr_edenscdplayer: edenscdplayer(); break;
+ case addr_usewall: usewall(); break;
+ case addr_usechurchgate: usechurchgate(); break;
+ case addr_usegun: usegun(); break;
+ case addr_useshield: useshield(); break;
+ case addr_usebuttona: usebuttona(); break;
+ case addr_useplate: useplate(); break;
+ case addr_usewinch: usewinch(); break;
+ case addr_entercode: entercode(); break;
+ case addr_loadkeypad: loadkeypad(); break;
+ case addr_quitkey: quitkey(); break;
+ case addr_addtopresslist: addtopresslist(); break;
+ case addr_buttonone: buttonone(); break;
+ case addr_buttontwo: buttontwo(); break;
+ case addr_buttonthree: buttonthree(); break;
+ case addr_buttonfour: buttonfour(); break;
+ case addr_buttonfive: buttonfive(); break;
+ case addr_buttonsix: buttonsix(); break;
+ case addr_buttonseven: buttonseven(); break;
+ case addr_buttoneight: buttoneight(); break;
+ case addr_buttonnine: buttonnine(); break;
+ case addr_buttonnought: buttonnought(); break;
+ case addr_buttonenter: buttonenter(); break;
+ case addr_buttonpress: buttonpress(); break;
+ case addr_showouterpad: showouterpad(); break;
+ case addr_showkeypad: showkeypad(); break;
+ case addr_singlekey: singlekey(); break;
+ case addr_dumpkeypad: dumpkeypad(); break;
+ case addr_usemenu: usemenu(); break;
+ case addr_dumpmenu: dumpmenu(); break;
+ case addr_getundermenu: getundermenu(); break;
+ case addr_putundermenu: putundermenu(); break;
+ case addr_showoutermenu: showoutermenu(); break;
+ case addr_showmenu: showmenu(); break;
+ case addr_loadmenu: loadmenu(); break;
+ case addr_viewfolder: viewfolder(); break;
+ case addr_nextfolder: nextfolder(); break;
+ case addr_folderhints: folderhints(); break;
+ case addr_lastfolder: lastfolder(); break;
+ case addr_loadfolder: loadfolder(); break;
+ case addr_showfolder: showfolder(); break;
+ case addr_folderexit: folderexit(); break;
+ case addr_showleftpage: showleftpage(); break;
+ case addr_showrightpage: showrightpage(); break;
+ case addr_entersymbol: entersymbol(); break;
+ case addr_quitsymbol: quitsymbol(); break;
+ case addr_settopleft: settopleft(); break;
+ case addr_settopright: settopright(); break;
+ case addr_setbotleft: setbotleft(); break;
+ case addr_setbotright: setbotright(); break;
+ case addr_dumpsymbol: dumpsymbol(); break;
+ case addr_showsymbol: showsymbol(); break;
+ case addr_nextsymbol: nextsymbol(); break;
+ case addr_updatesymboltop: updatesymboltop(); break;
+ case addr_updatesymbolbot: updatesymbolbot(); break;
+ case addr_dumpsymbox: dumpsymbox(); break;
+ case addr_usediary: usediary(); break;
+ case addr_showdiary: showdiary(); break;
+ case addr_showdiarykeys: showdiarykeys(); break;
+ case addr_dumpdiarykeys: dumpdiarykeys(); break;
+ case addr_diarykeyp: diarykeyp(); break;
+ case addr_diarykeyn: diarykeyn(); break;
+ case addr_showdiarypage: showdiarypage(); break;
+ case addr_findtext1: findtext1(); break;
+ case addr_zoomonoff: zoomonoff(); break;
+ case addr_saveload: saveload(); break;
+ case addr_dosaveload: dosaveload(); break;
+ case addr_getbackfromops: getbackfromops(); break;
+ case addr_showmainops: showmainops(); break;
+ case addr_showdiscops: showdiscops(); break;
+ case addr_loadsavebox: loadsavebox(); break;
+ case addr_loadgame: loadgame(); break;
+ case addr_getbacktoops: getbacktoops(); break;
+ case addr_discops: discops(); break;
+ case addr_savegame: savegame(); break;
+ case addr_actualsave: actualsave(); break;
+ case addr_actualload: actualload(); break;
+ case addr_selectslot2: selectslot2(); break;
+ case addr_checkinput: checkinput(); break;
+ case addr_getnamepos: getnamepos(); break;
+ case addr_showopbox: showopbox(); break;
+ case addr_showloadops: showloadops(); break;
+ case addr_showsaveops: showsaveops(); break;
+ case addr_selectslot: selectslot(); break;
+ case addr_showslots: showslots(); break;
+ case addr_shownames: shownames(); break;
+ case addr_dosreturn: dosreturn(); break;
+ case addr_error: error(); break;
+ case addr_namestoold: namestoold(); break;
+ case addr_oldtonames: oldtonames(); break;
+ case addr_savefilewrite: savefilewrite(); break;
+ case addr_savefileread: savefileread(); break;
+ case addr_saveposition: saveposition(); break;
+ case addr_loadposition: loadposition(); break;
+ case addr_loadseg: loadseg(); break;
+ case addr_makeheader: makeheader(); break;
+ case addr_storeit: storeit(); break;
+ case addr_saveseg: saveseg(); break;
+ case addr_scanfornames: scanfornames(); break;
+ case addr_decide: decide(); break;
+ case addr_showdecisions: showdecisions(); break;
+ case addr_newgame: newgame(); break;
+ case addr_loadold: loadold(); break;
+ case addr_loadspeech: loadspeech(); break;
+ case addr_createname: createname(); break;
+ case addr_loadsample: loadsample(); break;
+ case addr_loadsecondsample: loadsecondsample(); break;
+ case addr_soundstartup: soundstartup(); break;
+ case addr_trysoundalloc: trysoundalloc(); break;
+ case addr_setsoundoff: setsoundoff(); break;
+ case addr_checksoundint: checksoundint(); break;
+ case addr_enablesoundint: enablesoundint(); break;
+ case addr_disablesoundint: disablesoundint(); break;
+ case addr_interupttest: interupttest(); break;
+ case addr_soundend: soundend(); break;
+ case addr_out22c: out22c(); break;
+ case addr_playchannel0: playchannel0(); break;
+ case addr_playchannel1: playchannel1(); break;
+ case addr_volumeadjust: volumeadjust(); break;
+ case addr_channel0only: channel0only(); break;
+ case addr_channel1only: channel1only(); break;
+ case addr_bothchannels: bothchannels(); break;
+ case addr_saveems: saveems(); break;
+ case addr_restoreems: restoreems(); break;
+ case addr_dmaend: dmaend(); break;
+ case addr_startdmablock: startdmablock(); break;
+ case addr_setuppit: setuppit(); break;
+ case addr_getridofpit: getridofpit(); break;
+ case addr_pitinterupt: pitinterupt(); break;
+ case addr_dreamweb: dreamweb(); break;
+ case addr_entrytexts: entrytexts(); break;
+ case addr_entryanims: entryanims(); break;
+ case addr_initialinv: initialinv(); break;
+ case addr_pickupob: pickupob(); break;
+ case addr_setupemm: setupemm(); break;
+ case addr_removeemm: removeemm(); break;
+ case addr_checkforemm: checkforemm(); break;
+ case addr_checkbasemem: checkbasemem(); break;
+ case addr_allocatebuffers: allocatebuffers(); break;
+ case addr_clearbuffers: clearbuffers(); break;
+ case addr_clearchanges: clearchanges(); break;
+ case addr_clearbeforeload: clearbeforeload(); break;
+ case addr_clearreels: clearreels(); break;
+ case addr_clearrest: clearrest(); break;
+ case addr_deallocatemem: deallocatemem(); break;
+ case addr_allocatemem: allocatemem(); break;
+ case addr_startup: startup(); break;
+ case addr_startup1: startup1(); break;
+ case addr_screenupdate: screenupdate(); break;
+ case addr_watchreel: watchreel(); break;
+ case addr_checkforshake: checkforshake(); break;
+ case addr_watchcount: watchcount(); break;
+ case addr_showtime: showtime(); break;
+ case addr_dumpwatch: dumpwatch(); break;
+ case addr_showbyte: showbyte(); break;
+ case addr_onedigit: onedigit(); break;
+ case addr_twodigitnum: twodigitnum(); break;
+ case addr_showword: showword(); break;
+ case addr_convnum: convnum(); break;
+ case addr_mainscreen: mainscreen(); break;
+ case addr_madmanrun: madmanrun(); break;
+ case addr_checkcoords: checkcoords(); break;
+ case addr_identifyob: identifyob(); break;
+ case addr_checkifset: checkifset(); break;
+ case addr_checkifex: checkifex(); break;
+ case addr_isitdescribed: isitdescribed(); break;
+ case addr_findpathofpoint: findpathofpoint(); break;
+ case addr_findfirstpath: findfirstpath(); break;
+ case addr_turnpathon: turnpathon(); break;
+ case addr_turnpathoff: turnpathoff(); break;
+ case addr_turnanypathon: turnanypathon(); break;
+ case addr_turnanypathoff: turnanypathoff(); break;
+ case addr_checkifpathison: checkifpathison(); break;
+ case addr_afternewroom: afternewroom(); break;
+ case addr_atmospheres: atmospheres(); break;
+ case addr_walkintoroom: walkintoroom(); break;
+ case addr_afterintroroom: afterintroroom(); break;
+ case addr_obname: obname(); break;
+ case addr_examineobtext: examineobtext(); break;
+ case addr_printmessage: printmessage(); break;
+ case addr_printmessage2: printmessage2(); break;
+ case addr_getflagunderp: getflagunderp(); break;
+ case addr_setwalk: setwalk(); break;
+ case addr_bresenhams: bresenhams(); break;
+ case addr_workoutframes: workoutframes(); break;
+ case addr_showicon: showicon(); break;
+ case addr_middlepanel: middlepanel(); break;
+ case addr_showman: showman(); break;
+ case addr_roomname: roomname(); break;
+ case addr_usecharset1: usecharset1(); break;
+ case addr_usetempcharset: usetempcharset(); break;
+ case addr_showexit: showexit(); break;
+ case addr_panelicons1: panelicons1(); break;
+ case addr_showwatch: showwatch(); break;
+ case addr_gettime: gettime(); break;
+ case addr_zoomicon: zoomicon(); break;
+ case addr_showblink: showblink(); break;
+ case addr_dumpblink: dumpblink(); break;
+ case addr_worktoscreenm: worktoscreenm(); break;
+ case addr_blank: blank(); break;
+ case addr_allpointer: allpointer(); break;
+ case addr_hangonp: hangonp(); break;
+ case addr_hangonw: hangonw(); break;
+ case addr_hangoncurs: hangoncurs(); break;
+ case addr_getunderzoom: getunderzoom(); break;
+ case addr_dumpzoom: dumpzoom(); break;
+ case addr_putunderzoom: putunderzoom(); break;
+ case addr_showpointer: showpointer(); break;
+ case addr_delpointer: delpointer(); break;
+ case addr_dumppointer: dumppointer(); break;
+ case addr_undertextline: undertextline(); break;
+ case addr_animpointer: animpointer(); break;
+ case addr_setmouse: setmouse(); break;
+ case addr_readmouse: readmouse(); break;
+ case addr_mousecall: mousecall(); break;
+ case addr_readmouse1: readmouse1(); break;
+ case addr_readmouse2: readmouse2(); break;
+ case addr_readmouse3: readmouse3(); break;
+ case addr_readmouse4: readmouse4(); break;
+ case addr_readkey: readkey(); break;
+ case addr_randomnum1: randomnum1(); break;
+ case addr_randomnum2: randomnum2(); break;
+ case addr_hangon: hangon(); break;
+ case addr_loadtraveltext: loadtraveltext(); break;
+ case addr_loadintotemp: loadintotemp(); break;
+ case addr_loadintotemp2: loadintotemp2(); break;
+ case addr_loadintotemp3: loadintotemp3(); break;
+ case addr_loadtempcharset: loadtempcharset(); break;
+ case addr_standardload: standardload(); break;
+ case addr_loadtemptext: loadtemptext(); break;
+ case addr_loadroom: loadroom(); break;
+ case addr_loadroomssample: loadroomssample(); break;
+ case addr_getridofreels: getridofreels(); break;
+ case addr_getridofall: getridofall(); break;
+ case addr_restorereels: restorereels(); break;
+ case addr_restoreall: restoreall(); break;
+ case addr_sortoutmap: sortoutmap(); break;
+ case addr_disablepath: disablepath(); break;
+ case addr_findroominloc: findroominloc(); break;
+ case addr_dontloadseg: dontloadseg(); break;
+ case addr_allocateload: allocateload(); break;
+ case addr_getridoftemp: getridoftemp(); break;
+ case addr_getridoftemptext: getridoftemptext(); break;
+ case addr_getridoftemp2: getridoftemp2(); break;
+ case addr_getridoftemp3: getridoftemp3(); break;
+ case addr_getridoftempcharset: getridoftempcharset(); break;
+ case addr_getridoftempsp: getridoftempsp(); break;
+ case addr_readsetdata: readsetdata(); break;
+ case addr_createfile: createfile(); break;
+ case addr_openfile: openfile(); break;
+ case addr_openfilefromc: openfilefromc(); break;
+ case addr_openfilenocheck: openfilenocheck(); break;
+ case addr_openforsave: openforsave(); break;
+ case addr_closefile: closefile(); break;
+ case addr_readfromfile: readfromfile(); break;
+ case addr_setkeyboardint: setkeyboardint(); break;
+ case addr_resetkeyboard: resetkeyboard(); break;
+ case addr_keyboardread: keyboardread(); break;
+ case addr_walkandexamine: walkandexamine(); break;
+ case addr_doload: doload(); break;
+ case addr_generalerror: generalerror(); break;
default: ::error("invalid call to %04x dispatched", (uint16)ax);
}
}
diff --git a/engines/dreamweb/dreamgen.h b/engines/dreamweb/dreamgen.h
index 71c466da24..7ed079c00e 100644
--- a/engines/dreamweb/dreamgen.h
+++ b/engines/dreamweb/dreamgen.h
@@ -3,594 +3,1306 @@
/* PLEASE DO NOT MODIFY THIS FILE. ALL CHANGES WILL BE LOST! LOOK FOR README FOR DETAILS */
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+
+
#include "dreamweb/runtime.h"
namespace DreamGen {
-
+#include "structs.h"
class DreamGenContext : public Context {
public:
void __start();
void __dispatch_call(uint16 addr);
+#include "stubs.h" // Allow hand-reversed functions to have a signature different than void f()
- const static uint16 kStartvars = 0;
- const static uint16 kProgresspoints = 1;
- const static uint16 kWatchon = 2;
- const static uint16 kShadeson = 3;
- const static uint16 kSecondcount = 4;
- const static uint16 kMinutecount = 5;
- const static uint16 kHourcount = 6;
- const static uint16 kZoomon = 7;
- const static uint16 kLocation = 8;
- const static uint16 kExpos = 9;
- const static uint16 kExframepos = 10;
- const static uint16 kExtextpos = 12;
- const static uint16 kCard1money = 14;
- const static uint16 kListpos = 16;
- const static uint16 kRyanpage = 18;
- const static uint16 kWatchingtime = 19;
- const static uint16 kReeltowatch = 21;
- const static uint16 kEndwatchreel = 23;
- const static uint16 kSpeedcount = 25;
- const static uint16 kWatchspeed = 26;
- const static uint16 kReeltohold = 27;
- const static uint16 kEndofholdreel = 29;
- const static uint16 kWatchmode = 31;
- const static uint16 kDestafterhold = 32;
- const static uint16 kNewsitem = 33;
- const static uint16 kLiftflag = 34;
- const static uint16 kLiftpath = 35;
- const static uint16 kLockstatus = 36;
- const static uint16 kDoorpath = 37;
- const static uint16 kCounttoopen = 38;
- const static uint16 kCounttoclose = 39;
- const static uint16 kRockstardead = 40;
- const static uint16 kGeneraldead = 41;
- const static uint16 kSartaindead = 42;
- const static uint16 kAidedead = 43;
- const static uint16 kBeenmugged = 44;
- const static uint16 kGunpassflag = 45;
- const static uint16 kCanmovealtar = 46;
- const static uint16 kTalkedtoattendant = 47;
- const static uint16 kTalkedtosparky = 48;
- const static uint16 kTalkedtoboss = 49;
- const static uint16 kTalkedtorecep = 50;
- const static uint16 kCardpassflag = 51;
- const static uint16 kMadmanflag = 52;
- const static uint16 kKeeperflag = 53;
- const static uint16 kLasttrigger = 54;
- const static uint16 kMandead = 55;
- const static uint16 kSeed = 56;
- const static uint16 kNeedtotravel = 59;
- const static uint16 kThroughdoor = 60;
- const static uint16 kNewobs = 61;
- const static uint16 kRyanon = 62;
- const static uint16 kCombatcount = 63;
- const static uint16 kLastweapon = 64;
- const static uint16 kDreamnumber = 65;
- const static uint16 kRoomafterdream = 66;
- const static uint16 kShakecounter = 67;
- const static uint16 kSpeechcount = 68;
- const static uint16 kCharshift = 69;
- const static uint16 kKerning = 71;
- const static uint16 kBrightness = 72;
- const static uint16 kRoomloaded = 73;
- const static uint16 kDidzoom = 74;
- const static uint16 kLinespacing = 75;
- const static uint16 kTextaddressx = 77;
- const static uint16 kTextaddressy = 79;
- const static uint16 kTextlen = 81;
- const static uint16 kLastxpos = 82;
- const static uint16 kIcontop = 84;
- const static uint16 kIconleft = 86;
- const static uint16 kItemframe = 88;
- const static uint16 kItemtotran = 89;
- const static uint16 kRoomad = 90;
- const static uint16 kOldsubject = 92;
- const static uint16 kWithobject = 94;
- const static uint16 kWithtype = 95;
- const static uint16 kLookcounter = 96;
- const static uint16 kCommand = 98;
- const static uint16 kCommandtype = 99;
- const static uint16 kOldcommandtype = 100;
- const static uint16 kObjecttype = 101;
- const static uint16 kGetback = 102;
- const static uint16 kInvopen = 103;
- const static uint16 kMainmode = 104;
- const static uint16 kPickup = 105;
- const static uint16 kLastinvpos = 106;
- const static uint16 kExamagain = 107;
- const static uint16 kNewtextline = 108;
- const static uint16 kOpenedob = 109;
- const static uint16 kOpenedtype = 110;
- const static uint16 kOldmapadx = 111;
- const static uint16 kOldmapady = 113;
- const static uint16 kMapadx = 115;
- const static uint16 kMapady = 117;
- const static uint16 kMapoffsetx = 119;
- const static uint16 kMapoffsety = 121;
- const static uint16 kMapxstart = 123;
- const static uint16 kMapystart = 125;
- const static uint16 kMapxsize = 127;
- const static uint16 kMapysize = 128;
- const static uint16 kHavedoneobs = 129;
- const static uint16 kManisoffscreen = 130;
- const static uint16 kRainspace = 131;
- const static uint16 kFacing = 132;
- const static uint16 kLeavedirection = 133;
- const static uint16 kTurntoface = 134;
- const static uint16 kTurndirection = 135;
- const static uint16 kMaintimer = 136;
- const static uint16 kIntrocount = 138;
- const static uint16 kArrowad = 139;
- const static uint16 kCurrentkey = 141;
- const static uint16 kOldkey = 142;
- const static uint16 kUseddirection = 143;
- const static uint16 kCurrentkey2 = 144;
- const static uint16 kTimercount = 145;
- const static uint16 kOldtimercount = 146;
- const static uint16 kMapx = 147;
- const static uint16 kMapy = 148;
- const static uint16 kNewscreen = 149;
- const static uint16 kRyanx = 150;
- const static uint16 kRyany = 151;
- const static uint16 kLastflag = 152;
- const static uint16 kLastflagex = 153;
- const static uint16 kFlagx = 154;
- const static uint16 kFlagy = 155;
- const static uint16 kCurrentex = 156;
- const static uint16 kCurrentfree = 157;
- const static uint16 kCurrentframe = 158;
- const static uint16 kFramesad = 160;
- const static uint16 kDataad = 162;
- const static uint16 kFrsegment = 164;
- const static uint16 kObjectx = 166;
- const static uint16 kObjecty = 168;
- const static uint16 kOffsetx = 170;
- const static uint16 kOffsety = 172;
- const static uint16 kSavesize = 174;
- const static uint16 kSavesource = 176;
- const static uint16 kSavex = 178;
- const static uint16 kSavey = 179;
- const static uint16 kCurrentob = 180;
- const static uint16 kPriority = 181;
- const static uint16 kDestpos = 182;
- const static uint16 kReallocation = 183;
- const static uint16 kRoomnum = 184;
- const static uint16 kNowinnewroom = 185;
- const static uint16 kResetmanxy = 186;
- const static uint16 kNewlocation = 187;
- const static uint16 kAutolocation = 188;
- const static uint16 kMustload = 189;
- const static uint16 kAnswered = 190;
- const static uint16 kSaidno = 191;
- const static uint16 kDoorcheck1 = 192;
- const static uint16 kDoorcheck2 = 193;
- const static uint16 kDoorcheck3 = 194;
- const static uint16 kDoorcheck4 = 195;
- const static uint16 kMousex = 196;
- const static uint16 kMousey = 198;
- const static uint16 kMousebutton = 200;
- const static uint16 kMousebutton1 = 202;
- const static uint16 kMousebutton2 = 204;
- const static uint16 kMousebutton3 = 206;
- const static uint16 kMousebutton4 = 208;
- const static uint16 kOldbutton = 210;
- const static uint16 kOldx = 212;
- const static uint16 kOldy = 214;
- const static uint16 kLastbutton = 216;
- const static uint16 kOldpointerx = 218;
- const static uint16 kOldpointery = 220;
- const static uint16 kDelherex = 222;
- const static uint16 kDelherey = 224;
- const static uint16 kPointerxs = 226;
- const static uint16 kPointerys = 227;
- const static uint16 kDelxs = 228;
- const static uint16 kDelys = 229;
- const static uint16 kPointerframe = 230;
- const static uint16 kPointerpower = 231;
- const static uint16 kAuxpointerframe = 232;
- const static uint16 kPointermode = 233;
- const static uint16 kPointerspeed = 234;
- const static uint16 kPointercount = 235;
- const static uint16 kInmaparea = 236;
- const static uint16 kReelpointer = 237;
- const static uint16 kSlotdata = 239;
- const static uint16 kThisslot = 240;
- const static uint16 kSlotflags = 241;
- const static uint16 kTakeoff = 242;
- const static uint16 kTalkmode = 244;
- const static uint16 kTalkpos = 245;
- const static uint16 kCharacter = 246;
- const static uint16 kPersondata = 247;
- const static uint16 kTalknum = 249;
- const static uint16 kNumberinroom = 250;
- const static uint16 kCurrentcel = 251;
- const static uint16 kOldselection = 252;
- const static uint16 kStopwalking = 253;
- const static uint16 kMouseon = 254;
- const static uint16 kPlayed = 255;
- const static uint16 kTimer1 = 257;
- const static uint16 kTimer2 = 258;
- const static uint16 kTimer3 = 259;
- const static uint16 kWholetimer = 260;
- const static uint16 kTimer1to = 262;
- const static uint16 kTimer2to = 263;
- const static uint16 kTimer3to = 264;
- const static uint16 kWatchdump = 265;
- const static uint16 kCurrentset = 266;
- const static uint16 kLogonum = 268;
- const static uint16 kOldlogonum = 269;
- const static uint16 kNewlogonum = 270;
- const static uint16 kNetseg = 271;
- const static uint16 kNetpoint = 273;
- const static uint16 kKeynum = 275;
- const static uint16 kCursorstate = 276;
- const static uint16 kPressed = 277;
- const static uint16 kPresspointer = 278;
- const static uint16 kGraphicpress = 280;
- const static uint16 kPresscount = 281;
- const static uint16 kKeypadax = 282;
- const static uint16 kKeypadcx = 284;
- const static uint16 kLightcount = 286;
- const static uint16 kFolderpage = 287;
- const static uint16 kDiarypage = 288;
- const static uint16 kMenucount = 289;
- const static uint16 kSymboltopx = 290;
- const static uint16 kSymboltopnum = 291;
- const static uint16 kSymboltopdir = 292;
- const static uint16 kSymbolbotx = 293;
- const static uint16 kSymbolbotnum = 294;
- const static uint16 kSymbolbotdir = 295;
- const static uint16 kSymboltolight = 296;
- const static uint16 kSymbol1 = 297;
- const static uint16 kSymbol2 = 298;
- const static uint16 kSymbol3 = 299;
- const static uint16 kSymbolnum = 300;
- const static uint16 kDumpx = 301;
- const static uint16 kDumpy = 303;
- const static uint16 kWalkandexam = 305;
- const static uint16 kWalkexamtype = 306;
- const static uint16 kWalkexamnum = 307;
- const static uint16 kCursloc = 308;
- const static uint16 kCurslocx = 310;
- const static uint16 kCurslocy = 312;
- const static uint16 kCurpos = 314;
- const static uint16 kMonadx = 316;
- const static uint16 kMonady = 318;
- const static uint16 kGotfrom = 320;
- const static uint16 kMonsource = 322;
- const static uint16 kNumtodo = 324;
- const static uint16 kTimecount = 326;
- const static uint16 kCounttotimed = 328;
- const static uint16 kTimedseg = 330;
- const static uint16 kTimedoffset = 332;
- const static uint16 kTimedy = 334;
- const static uint16 kTimedx = 335;
- const static uint16 kNeedtodumptimed = 336;
- const static uint16 kHandle = 337;
- const static uint16 kLoadingorsave = 339;
- const static uint16 kCurrentslot = 340;
- const static uint16 kCursorpos = 341;
- const static uint16 kColourpos = 342;
- const static uint16 kFadedirection = 343;
- const static uint16 kNumtofade = 344;
- const static uint16 kFadecount = 345;
- const static uint16 kAddtogreen = 346;
- const static uint16 kAddtored = 347;
- const static uint16 kAddtoblue = 348;
- const static uint16 kLastsoundreel = 349;
- const static uint16 kSoundbuffer = 351;
- const static uint16 kSoundbufferad = 353;
- const static uint16 kSoundbufferpage = 355;
- const static uint16 kSoundtimes = 356;
- const static uint16 kNeedsoundbuff = 357;
- const static uint16 kOldint9seg = 358;
- const static uint16 kOldint9add = 360;
- const static uint16 kOldint8seg = 362;
- const static uint16 kOldint8add = 364;
- const static uint16 kOldsoundintseg = 366;
- const static uint16 kOldsoundintadd = 368;
- const static uint16 kSoundbaseadd = 370;
- const static uint16 kDsp_status = 372;
- const static uint16 kDsp_write = 374;
- const static uint16 kDmaaddress = 376;
- const static uint16 kSoundint = 377;
- const static uint16 kSounddmachannel = 378;
- const static uint16 kSampleplaying = 379;
- const static uint16 kTestresult = 380;
- const static uint16 kCurrentirq = 381;
- const static uint16 kSpeechloaded = 382;
- const static uint16 kSpeechlength = 383;
- const static uint16 kVolume = 385;
- const static uint16 kVolumeto = 386;
- const static uint16 kVolumedirection = 387;
- const static uint16 kVolumecount = 388;
- const static uint16 kPlayblock = 389;
- const static uint16 kWongame = 390;
- const static uint16 kLasthardkey = 391;
- const static uint16 kBufferin = 392;
- const static uint16 kBufferout = 394;
- const static uint16 kExtras = 396;
- const static uint16 kWorkspace = 398;
- const static uint16 kMapstore = 400;
- const static uint16 kCharset1 = 402;
- const static uint16 kTempcharset = 404;
- const static uint16 kIcons1 = 406;
- const static uint16 kIcons2 = 408;
- const static uint16 kBuffers = 410;
- const static uint16 kMainsprites = 412;
- const static uint16 kBackdrop = 414;
- const static uint16 kMapdata = 416;
- const static uint16 kSounddata = 418;
- const static uint16 kSounddata2 = 420;
- const static uint16 kRecordspace = 422;
- const static uint16 kFreedat = 424;
- const static uint16 kSetdat = 426;
- const static uint16 kReel1 = 428;
- const static uint16 kReel2 = 430;
- const static uint16 kReel3 = 432;
- const static uint16 kRoomdesc = 434;
- const static uint16 kFreedesc = 436;
- const static uint16 kSetdesc = 438;
- const static uint16 kBlockdesc = 440;
- const static uint16 kSetframes = 442;
- const static uint16 kFreeframes = 444;
- const static uint16 kPeople = 446;
- const static uint16 kReels = 448;
- const static uint16 kCommandtext = 450;
- const static uint16 kPuzzletext = 452;
- const static uint16 kTraveltext = 454;
- const static uint16 kTempgraphics = 456;
- const static uint16 kTempgraphics2 = 458;
- const static uint16 kTempgraphics3 = 460;
- const static uint16 kTempsprites = 462;
- const static uint16 kTextfile1 = 464;
- const static uint16 kTextfile2 = 466;
- const static uint16 kTextfile3 = 468;
- const static uint16 kBlinkframe = 470;
- const static uint16 kBlinkcount = 471;
- const static uint16 kReasseschanges = 472;
- const static uint16 kPointerspath = 473;
- const static uint16 kManspath = 474;
- const static uint16 kPointerfirstpath = 475;
- const static uint16 kFinaldest = 476;
- const static uint16 kDestination = 477;
- const static uint16 kLinestartx = 478;
- const static uint16 kLinestarty = 480;
- const static uint16 kLineendx = 482;
- const static uint16 kLineendy = 484;
- const static uint16 kIncrement1 = 486;
- const static uint16 kIncrement2 = 488;
- const static uint16 kLineroutine = 490;
- const static uint16 kLinepointer = 491;
- const static uint16 kLinedirection = 492;
- const static uint16 kLinelength = 493;
- const static uint16 kLiftsoundcount = 494;
- const static uint16 kEmmhandle = 495;
- const static uint16 kEmmpageframe = 497;
- const static uint16 kEmmhardwarepage = 499;
- const static uint16 kCh0emmpage = 500;
- const static uint16 kCh0offset = 502;
- const static uint16 kCh0blockstocopy = 504;
- const static uint16 kCh0playing = 506;
- const static uint16 kCh0repeat = 507;
- const static uint16 kCh0oldemmpage = 508;
- const static uint16 kCh0oldoffset = 510;
- const static uint16 kCh0oldblockstocopy = 512;
- const static uint16 kCh1playing = 514;
- const static uint16 kCh1emmpage = 515;
- const static uint16 kCh1offset = 517;
- const static uint16 kCh1blockstocopy = 519;
- const static uint16 kCh1blocksplayed = 521;
- const static uint16 kSoundbufferwrite = 523;
- const static uint16 kSoundemmpage = 525;
- const static uint16 kSpeechemmpage = 527;
- const static uint16 kCurrentsample = 529;
- const static uint16 kRoomssample = 530;
- const static uint16 kGameerror = 531;
- const static uint16 kHowmuchalloc = 532;
- const static uint16 kReelroutines = 534;
- const static uint16 kReelcalls = 991;
- const static uint16 kRoombyroom = 1214;
- const static uint16 kR0 = 1326;
- const static uint16 kR1 = 1327;
- const static uint16 kR2 = 1331;
- const static uint16 kR6 = 1350;
- const static uint16 kR8 = 1357;
- const static uint16 kR9 = 1373;
- const static uint16 kR10 = 1380;
- const static uint16 kR11 = 1384;
- const static uint16 kR12 = 1388;
- const static uint16 kR13 = 1392;
- const static uint16 kR14 = 1405;
- const static uint16 kR20 = 1439;
- const static uint16 kR22 = 1461;
- const static uint16 kR23 = 1492;
- const static uint16 kR25 = 1505;
- const static uint16 kR26 = 1527;
- const static uint16 kR27 = 1549;
- const static uint16 kR28 = 1574;
- const static uint16 kR29 = 1593;
- const static uint16 kR45 = 1609;
- const static uint16 kR46 = 1616;
- const static uint16 kR47 = 1653;
- const static uint16 kR52 = 1666;
- const static uint16 kR53 = 1670;
- const static uint16 kR55 = 1677;
- const static uint16 kSpritename1 = 1819;
- const static uint16 kSpritename3 = 1832;
- const static uint16 kIdname = 1845;
- const static uint16 kCharacterset1 = 1857;
- const static uint16 kCharacterset2 = 1870;
- const static uint16 kCharacterset3 = 1883;
- const static uint16 kSamplename = 1896;
- const static uint16 kBasicsample = 1909;
- const static uint16 kIcongraphics0 = 1922;
- const static uint16 kIcongraphics1 = 1935;
- const static uint16 kExtragraphics1 = 1948;
- const static uint16 kIcongraphics8 = 1961;
- const static uint16 kMongraphicname = 1974;
- const static uint16 kMongraphics2 = 1987;
- const static uint16 kCityname = 2000;
- const static uint16 kTravelgraphic1 = 2013;
- const static uint16 kTravelgraphic2 = 2026;
- const static uint16 kDiarygraphic = 2039;
- const static uint16 kMonitorfile1 = 2052;
- const static uint16 kMonitorfile2 = 2065;
- const static uint16 kMonitorfile10 = 2078;
- const static uint16 kMonitorfile11 = 2091;
- const static uint16 kMonitorfile12 = 2104;
- const static uint16 kMonitorfile13 = 2117;
- const static uint16 kMonitorfile20 = 2130;
- const static uint16 kMonitorfile21 = 2143;
- const static uint16 kMonitorfile22 = 2156;
- const static uint16 kMonitorfile23 = 2169;
- const static uint16 kMonitorfile24 = 2182;
- const static uint16 kFoldertext = 2195;
- const static uint16 kDiarytext = 2208;
- const static uint16 kPuzzletextname = 2221;
- const static uint16 kTraveltextname = 2234;
- const static uint16 kIntrotextname = 2247;
- const static uint16 kEndtextname = 2260;
- const static uint16 kCommandtextname = 2273;
- const static uint16 kVolumetabname = 2286;
- const static uint16 kFoldergraphic1 = 2299;
- const static uint16 kFoldergraphic2 = 2312;
- const static uint16 kFoldergraphic3 = 2325;
- const static uint16 kSymbolgraphic = 2338;
- const static uint16 kGungraphic = 2351;
- const static uint16 kMonkface = 2364;
- const static uint16 kTitle0graphics = 2377;
- const static uint16 kTitle1graphics = 2390;
- const static uint16 kTitle2graphics = 2403;
- const static uint16 kTitle3graphics = 2416;
- const static uint16 kTitle4graphics = 2429;
- const static uint16 kTitle5graphics = 2442;
- const static uint16 kTitle6graphics = 2455;
- const static uint16 kTitle7graphics = 2468;
- const static uint16 kPalettescreen = 2481;
- const static uint16 kCurrentfile = 2970;
- const static uint16 kDmaaddresses = 5118;
- const static uint16 kFileheader = 6091;
- const static uint16 kFiledata = 6141;
- const static uint16 kExtradata = 6181;
- const static uint16 kRoomdata = 6187;
- const static uint16 kMadeuproomdat = 7979;
- const static uint16 kRoomscango = 8011;
- const static uint16 kRoompics = 8027;
- const static uint16 kOplist = 8042;
- const static uint16 kInputline = 8045;
- const static uint16 kLinedata = 8173;
- const static uint16 kPresslist = 8573;
- const static uint16 kSavenames = 8579;
- const static uint16 kSavefiles = 8698;
- const static uint16 kRecname = 8789;
- const static uint16 kQuitrequested = 8802;
- const static uint16 kSubtitles = 8803;
- const static uint16 kForeignrelease = 8804;
- const static uint16 kStak = 8805;
- const static uint16 kBlocktextdat = (0);
- const static uint16 kPersonframes = (0);
- const static uint16 kDebuglevel1 = (0);
- const static uint16 kDebuglevel2 = (0);
- const static uint16 kPlayback = (0);
- const static uint16 kMap = (0);
- const static uint16 kSettextdat = (0);
- const static uint16 kSpanish = (0);
- const static uint16 kFramedata = (0);
- const static uint16 kRecording = (0);
- const static uint16 kFlags = (0);
- const static uint16 kGerman = (0);
- const static uint16 kTextunder = (0);
- const static uint16 kPathdata = (0);
- const static uint16 kDemo = (0);
- const static uint16 kExframedata = (0);
- const static uint16 kIntextdat = (0);
- const static uint16 kFreetextdat = (0);
- const static uint16 kFrframedata = (0);
- const static uint16 kSettext = (0+(130*2));
- const static uint16 kOpeninvlist = (0+(228*13));
- const static uint16 kRyaninvlist = (0+(228*13)+32);
- const static uint16 kPointerback = (0+(228*13)+32+60);
- const static uint16 kMapflags = (0+(228*13)+32+60+(32*32));
- const static uint16 kStartpal = (0+(228*13)+32+60+(32*32)+(11*10*3));
- const static uint16 kEndpal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
- const static uint16 kMaingamepal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
- const static uint16 kSpritetable = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
- const static uint16 kSetlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
- const static uint16 kFreelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
- const static uint16 kExlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
- const static uint16 kPeoplelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
- const static uint16 kZoomspace = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
- const static uint16 kPrintedlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
- const static uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
- const static uint16 kUndertimedtext = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
- const static uint16 kRainlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
- const static uint16 kInitialreelrouts = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
- const static uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
- const static uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0);
- const static uint16 kReellist = (0+(36*144));
- const static uint16 kIntext = (0+(38*2));
- const static uint16 kLengthofmap = (0+(66*60));
- const static uint16 kFreetext = (0+(82*2));
- const static uint16 kBlocktext = (0+(98*2));
- const static uint16 kBlocks = (0+192);
- const static uint16 kFrframes = (0+2080);
- const static uint16 kExframes = (0+2080);
- const static uint16 kFrames = (0+2080);
- const static uint16 kExdata = (0+2080+30000);
- const static uint16 kExtextdat = (0+2080+30000+(16*114));
- const static uint16 kExtext = (0+2080+30000+(16*114)+((114+2)*2));
- const static uint16 kLengthofextra = (0+2080+30000+(16*114)+((114+2)*2)+18000);
- const static uint16 kPersontxtdat = (0+24);
- const static uint16 kPersontext = (0+24+(1026*2));
- const static uint16 kInputport = (0x63);
- const static uint16 kForeign = (1);
- const static uint16 kCd = (1);
- const static uint16 kNumexobjects = (114);
- const static uint16 kUndertextsizey = (13);
- const static uint16 kZoomy = (132);
- const static uint16 kFreedatlen = (16*80);
- const static uint16 kExtextlen = (18000);
- const static uint16 kLenofmapstore = (22*8*20*8);
- const static uint16 kUndertextsizex = (228);
- const static uint16 kNumchanges = (250);
- const static uint16 kUndertimedysize = (30);
- const static uint16 kExframeslen = (30000);
- const static uint16 kTablesize = (32);
- const static uint16 kScreenwidth = (320);
- const static uint16 kKeypadx = (36+112);
- const static uint16 kItempicsize = (44);
- const static uint16 kDiaryy = (48+12);
- const static uint16 kOpsy = (52);
- const static uint16 kSymboly = (56);
- const static uint16 kInventy = (58);
- const static uint16 kMenuy = (60);
- const static uint16 kOpsx = (60);
- const static uint16 kMaplength = (60);
- const static uint16 kHeaderlen = (6187-6091);
- const static uint16 kSymbolx = (64);
- const static uint16 kSetdatlen = (64*128);
- const static uint16 kMapwidth = (66);
- const static uint16 kTextstart = (66*2);
- const static uint16 kMaplen = (66*60);
- const static uint16 kDiaryx = (68+24);
- const static uint16 kLengthofvars = (68-0);
- const static uint16 kKeypady = (72);
- const static uint16 kZoomx = (8);
- const static uint16 kInventx = (80);
- const static uint16 kMenux = (80+40);
- const static uint16 kLenofreelrouts = (991-534);
+ static const uint16 addr_dreamweb = 0xc948;
+ static const uint16 addr_keyboardread = 0xcbb4;
+ static const uint16 addr_resetkeyboard = 0xcbb0;
+ static const uint16 addr_setkeyboardint = 0xcbac;
+ static const uint16 addr_readfromfile = 0xcba8;
+ static const uint16 addr_closefile = 0xcba4;
+ static const uint16 addr_openforsave = 0xcba0;
+ static const uint16 addr_openfilenocheck = 0xcb9c;
+ static const uint16 addr_openfilefromc = 0xcb94;
+ static const uint16 addr_openfile = 0xcb90;
+ static const uint16 addr_createfile = 0xcb8c;
+ static const uint16 addr_readsetdata = 0xcb88;
+ static const uint16 addr_getridoftempsp = 0xcb84;
+ static const uint16 addr_getridoftempcharset = 0xcb80;
+ static const uint16 addr_getridoftemp3 = 0xcb7c;
+ static const uint16 addr_getridoftemp2 = 0xcb78;
+ static const uint16 addr_getridoftemptext = 0xcb74;
+ static const uint16 addr_getridoftemp = 0xcb70;
+ static const uint16 addr_allocateload = 0xcb68;
+ static const uint16 addr_dontloadseg = 0xcb64;
+ static const uint16 addr_findroominloc = 0xcb58;
+ static const uint16 addr_disablepath = 0xcb50;
+ static const uint16 addr_sortoutmap = 0xcb48;
+ static const uint16 addr_restoreall = 0xcb44;
+ static const uint16 addr_restorereels = 0xcb40;
+ static const uint16 addr_getridofall = 0xcb3c;
+ static const uint16 addr_getridofreels = 0xcb38;
+ static const uint16 addr_loadroomssample = 0xcb34;
+ static const uint16 addr_loadroom = 0xcb30;
+ static const uint16 addr_loadtemptext = 0xcb2c;
+ static const uint16 addr_standardload = 0xcb28;
+ static const uint16 addr_loadtempcharset = 0xcb24;
+ static const uint16 addr_loadintotemp3 = 0xcb20;
+ static const uint16 addr_loadintotemp2 = 0xcb1c;
+ static const uint16 addr_loadintotemp = 0xcb18;
+ static const uint16 addr_loadtraveltext = 0xcb14;
+ static const uint16 addr_hangon = 0xcb10;
+ static const uint16 addr_randomnum2 = 0xcb08;
+ static const uint16 addr_randomnum1 = 0xcb04;
+ static const uint16 addr_readkey = 0xcafc;
+ static const uint16 addr_readmouse4 = 0xcaf8;
+ static const uint16 addr_readmouse3 = 0xcaf4;
+ static const uint16 addr_readmouse2 = 0xcaf0;
+ static const uint16 addr_readmouse1 = 0xcaec;
+ static const uint16 addr_mousecall = 0xcae8;
+ static const uint16 addr_readmouse = 0xcae4;
+ static const uint16 addr_setmouse = 0xcae0;
+ static const uint16 addr_animpointer = 0xcadc;
+ static const uint16 addr_undertextline = 0xcad0;
+ static const uint16 addr_dumppointer = 0xcacc;
+ static const uint16 addr_delpointer = 0xcac8;
+ static const uint16 addr_showpointer = 0xcac4;
+ static const uint16 addr_putunderzoom = 0xcabc;
+ static const uint16 addr_dumpzoom = 0xcab8;
+ static const uint16 addr_getunderzoom = 0xcab4;
+ static const uint16 addr_hangoncurs = 0xcab0;
+ static const uint16 addr_hangonw = 0xcaac;
+ static const uint16 addr_hangonp = 0xcaa8;
+ static const uint16 addr_allpointer = 0xcaa4;
+ static const uint16 addr_blank = 0xcaa0;
+ static const uint16 addr_worktoscreenm = 0xca9c;
+ static const uint16 addr_dumpblink = 0xca98;
+ static const uint16 addr_showblink = 0xca94;
+ static const uint16 addr_zoomicon = 0xca90;
+ static const uint16 addr_gettime = 0xca8c;
+ static const uint16 addr_showwatch = 0xca88;
+ static const uint16 addr_panelicons1 = 0xca84;
+ static const uint16 addr_showexit = 0xca80;
+ static const uint16 addr_usetempcharset = 0xca7c;
+ static const uint16 addr_usecharset1 = 0xca78;
+ static const uint16 addr_roomname = 0xca74;
+ static const uint16 addr_showman = 0xca6c;
+ static const uint16 addr_middlepanel = 0xca68;
+ static const uint16 addr_showicon = 0xca64;
+ static const uint16 addr_workoutframes = 0xca54;
+ static const uint16 addr_bresenhams = 0xca50;
+ static const uint16 addr_setwalk = 0xca44;
+ static const uint16 addr_getflagunderp = 0xca40;
+ static const uint16 addr_printmessage2 = 0xca30;
+ static const uint16 addr_printmessage = 0xca2c;
+ static const uint16 addr_examineobtext = 0xca20;
+ static const uint16 addr_obname = 0xca18;
+ static const uint16 addr_afterintroroom = 0xca14;
+ static const uint16 addr_walkintoroom = 0xca10;
+ static const uint16 addr_atmospheres = 0xca0c;
+ static const uint16 addr_afternewroom = 0xca08;
+ static const uint16 addr_checkifpathison = 0xca04;
+ static const uint16 addr_turnanypathoff = 0xca00;
+ static const uint16 addr_turnanypathon = 0xc9fc;
+ static const uint16 addr_turnpathoff = 0xc9f8;
+ static const uint16 addr_turnpathon = 0xc9f4;
+ static const uint16 addr_findfirstpath = 0xc9f0;
+ static const uint16 addr_findpathofpoint = 0xc9ec;
+ static const uint16 addr_isitdescribed = 0xc9e8;
+ static const uint16 addr_checkifex = 0xc9e0;
+ static const uint16 addr_checkifset = 0xc9dc;
+ static const uint16 addr_identifyob = 0xc9d4;
+ static const uint16 addr_checkcoords = 0xc9d0;
+ static const uint16 addr_madmanrun = 0xc9cc;
+ static const uint16 addr_mainscreen = 0xc9c8;
+ static const uint16 addr_walkandexamine = 0xcbb8;
+ static const uint16 addr_convnum = 0xc9c4;
+ static const uint16 addr_showword = 0xc9c0;
+ static const uint16 addr_twodigitnum = 0xc9bc;
+ static const uint16 addr_onedigit = 0xc9b8;
+ static const uint16 addr_showbyte = 0xc9b4;
+ static const uint16 addr_dumpwatch = 0xc9b0;
+ static const uint16 addr_showtime = 0xc9ac;
+ static const uint16 addr_watchcount = 0xc9a8;
+ static const uint16 addr_checkforshake = 0xc9a4;
+ static const uint16 addr_watchreel = 0xc9a0;
+ static const uint16 addr_screenupdate = 0xc99c;
+ static const uint16 addr_startup1 = 0xc998;
+ static const uint16 addr_startup = 0xc994;
+ static const uint16 addr_allocatemem = 0xc988;
+ static const uint16 addr_deallocatemem = 0xc984;
+ static const uint16 addr_clearrest = 0xc980;
+ static const uint16 addr_clearreels = 0xc97c;
+ static const uint16 addr_clearbeforeload = 0xc978;
+ static const uint16 addr_clearchanges = 0xc974;
+ static const uint16 addr_clearbuffers = 0xc970;
+ static const uint16 addr_allocatebuffers = 0xc96c;
+ static const uint16 addr_checkbasemem = 0xc968;
+ static const uint16 addr_checkforemm = 0xc964;
+ static const uint16 addr_removeemm = 0xc960;
+ static const uint16 addr_setupemm = 0xc95c;
+ static const uint16 addr_pickupob = 0xc958;
+ static const uint16 addr_initialinv = 0xc954;
+ static const uint16 addr_entryanims = 0xc950;
+ static const uint16 addr_entrytexts = 0xc94c;
+ static const uint16 addr_pitinterupt = 0xc944;
+ static const uint16 addr_getridofpit = 0xc940;
+ static const uint16 addr_setuppit = 0xc93c;
+ static const uint16 addr_startdmablock = 0xc938;
+ static const uint16 addr_dmaend = 0xc934;
+ static const uint16 addr_restoreems = 0xc92c;
+ static const uint16 addr_saveems = 0xc928;
+ static const uint16 addr_bothchannels = 0xc924;
+ static const uint16 addr_channel1only = 0xc91c;
+ static const uint16 addr_channel0only = 0xc918;
+ static const uint16 addr_volumeadjust = 0xc908;
+ static const uint16 addr_playchannel1 = 0xc900;
+ static const uint16 addr_playchannel0 = 0xc8fc;
+ static const uint16 addr_out22c = 0xc8f8;
+ static const uint16 addr_soundend = 0xc8f4;
+ static const uint16 addr_interupttest = 0xc8f0;
+ static const uint16 addr_disablesoundint = 0xc8ec;
+ static const uint16 addr_enablesoundint = 0xc8e8;
+ static const uint16 addr_checksoundint = 0xc8e4;
+ static const uint16 addr_setsoundoff = 0xc8e0;
+ static const uint16 addr_trysoundalloc = 0xc8dc;
+ static const uint16 addr_soundstartup = 0xc8d8;
+ static const uint16 addr_loadsecondsample = 0xc8d4;
+ static const uint16 addr_loadsample = 0xc8d0;
+ static const uint16 addr_createname = 0xc8cc;
+ static const uint16 addr_loadspeech = 0xc8c8;
+ static const uint16 addr_loadold = 0xc8c4;
+ static const uint16 addr_doload = 0xcbbc;
+ static const uint16 addr_newgame = 0xc8c0;
+ static const uint16 addr_showdecisions = 0xc8bc;
+ static const uint16 addr_decide = 0xc8b8;
+ static const uint16 addr_scanfornames = 0xc8b4;
+ static const uint16 addr_saveseg = 0xc8ac;
+ static const uint16 addr_storeit = 0xc8a8;
+ static const uint16 addr_makeheader = 0xc8a4;
+ static const uint16 addr_loadseg = 0xc8a0;
+ static const uint16 addr_loadposition = 0xc89c;
+ static const uint16 addr_saveposition = 0xc898;
+ static const uint16 addr_savefileread = 0xc894;
+ static const uint16 addr_savefilewrite = 0xc890;
+ static const uint16 addr_oldtonames = 0xc88c;
+ static const uint16 addr_namestoold = 0xc888;
+ static const uint16 addr_error = 0xc884;
+ static const uint16 addr_generalerror = 0xcbc0;
+ static const uint16 addr_dosreturn = 0xc880;
+ static const uint16 addr_shownames = 0xc87c;
+ static const uint16 addr_showslots = 0xc878;
+ static const uint16 addr_selectslot = 0xc874;
+ static const uint16 addr_showsaveops = 0xc870;
+ static const uint16 addr_showloadops = 0xc86c;
+ static const uint16 addr_showopbox = 0xc868;
+ static const uint16 addr_getnamepos = 0xc864;
+ static const uint16 addr_checkinput = 0xc860;
+ static const uint16 addr_selectslot2 = 0xc85c;
+ static const uint16 addr_actualload = 0xc858;
+ static const uint16 addr_actualsave = 0xc854;
+ static const uint16 addr_savegame = 0xc850;
+ static const uint16 addr_discops = 0xc84c;
+ static const uint16 addr_getbacktoops = 0xc848;
+ static const uint16 addr_loadgame = 0xc844;
+ static const uint16 addr_loadsavebox = 0xc840;
+ static const uint16 addr_showdiscops = 0xc83c;
+ static const uint16 addr_showmainops = 0xc838;
+ static const uint16 addr_getbackfromops = 0xc834;
+ static const uint16 addr_dosaveload = 0xc830;
+ static const uint16 addr_saveload = 0xc82c;
+ static const uint16 addr_zoomonoff = 0xc828;
+ static const uint16 addr_findtext1 = 0xc824;
+ static const uint16 addr_showdiarypage = 0xc820;
+ static const uint16 addr_diarykeyn = 0xc81c;
+ static const uint16 addr_diarykeyp = 0xc818;
+ static const uint16 addr_dumpdiarykeys = 0xc814;
+ static const uint16 addr_showdiarykeys = 0xc810;
+ static const uint16 addr_showdiary = 0xc80c;
+ static const uint16 addr_usediary = 0xc808;
+ static const uint16 addr_dumpsymbox = 0xc804;
+ static const uint16 addr_updatesymbolbot = 0xc800;
+ static const uint16 addr_updatesymboltop = 0xc7fc;
+ static const uint16 addr_nextsymbol = 0xc7f8;
+ static const uint16 addr_showsymbol = 0xc7f4;
+ static const uint16 addr_dumpsymbol = 0xc7f0;
+ static const uint16 addr_setbotright = 0xc7ec;
+ static const uint16 addr_setbotleft = 0xc7e8;
+ static const uint16 addr_settopright = 0xc7e4;
+ static const uint16 addr_settopleft = 0xc7e0;
+ static const uint16 addr_quitsymbol = 0xc7dc;
+ static const uint16 addr_entersymbol = 0xc7d8;
+ static const uint16 addr_showrightpage = 0xc7d4;
+ static const uint16 addr_showleftpage = 0xc7d0;
+ static const uint16 addr_folderexit = 0xc7cc;
+ static const uint16 addr_showfolder = 0xc7c8;
+ static const uint16 addr_loadfolder = 0xc7c4;
+ static const uint16 addr_lastfolder = 0xc7c0;
+ static const uint16 addr_folderhints = 0xc7bc;
+ static const uint16 addr_nextfolder = 0xc7b8;
+ static const uint16 addr_viewfolder = 0xc7b4;
+ static const uint16 addr_loadmenu = 0xc7b0;
+ static const uint16 addr_showmenu = 0xc7ac;
+ static const uint16 addr_showoutermenu = 0xc7a8;
+ static const uint16 addr_putundermenu = 0xc7a4;
+ static const uint16 addr_getundermenu = 0xc7a0;
+ static const uint16 addr_dumpmenu = 0xc79c;
+ static const uint16 addr_usemenu = 0xc798;
+ static const uint16 addr_dumpkeypad = 0xc794;
+ static const uint16 addr_singlekey = 0xc790;
+ static const uint16 addr_showkeypad = 0xc78c;
+ static const uint16 addr_showouterpad = 0xc788;
+ static const uint16 addr_buttonpress = 0xc784;
+ static const uint16 addr_buttonenter = 0xc780;
+ static const uint16 addr_buttonnought = 0xc77c;
+ static const uint16 addr_buttonnine = 0xc778;
+ static const uint16 addr_buttoneight = 0xc774;
+ static const uint16 addr_buttonseven = 0xc770;
+ static const uint16 addr_buttonsix = 0xc76c;
+ static const uint16 addr_buttonfive = 0xc768;
+ static const uint16 addr_buttonfour = 0xc764;
+ static const uint16 addr_buttonthree = 0xc760;
+ static const uint16 addr_buttontwo = 0xc75c;
+ static const uint16 addr_buttonone = 0xc758;
+ static const uint16 addr_addtopresslist = 0xc754;
+ static const uint16 addr_quitkey = 0xc750;
+ static const uint16 addr_loadkeypad = 0xc74c;
+ static const uint16 addr_entercode = 0xc748;
+ static const uint16 addr_usewinch = 0xc744;
+ static const uint16 addr_useplate = 0xc740;
+ static const uint16 addr_usebuttona = 0xc73c;
+ static const uint16 addr_useshield = 0xc738;
+ static const uint16 addr_usegun = 0xc734;
+ static const uint16 addr_usechurchgate = 0xc730;
+ static const uint16 addr_usewall = 0xc72c;
+ static const uint16 addr_edenscdplayer = 0xc728;
+ static const uint16 addr_setuptimeduse = 0xc71c;
+ static const uint16 addr_autoappear = 0xc70c;
+ static const uint16 addr_switchryanoff = 0xc700;
+ static const uint16 addr_switchryanon = 0xc6fc;
+ static const uint16 addr_removefreeobject = 0xc6f4;
+ static const uint16 addr_placefreeobject = 0xc6f0;
+ static const uint16 addr_issetobonmap = 0xc6ec;
+ static const uint16 addr_findpuztext = 0xc6e0;
+ static const uint16 addr_showpuztext = 0xc6dc;
+ static const uint16 addr_putbackobstuff = 0xc6d8;
+ static const uint16 addr_usetext = 0xc6d4;
+ static const uint16 addr_checkinside = 0xc6d0;
+ static const uint16 addr_isryanholding = 0xc6cc;
+ static const uint16 addr_findexobject = 0xc6c8;
+ static const uint16 addr_findsetobject = 0xc6c4;
+ static const uint16 addr_compare = 0xc6c0;
+ static const uint16 addr_selectob = 0xc6bc;
+ static const uint16 addr_withwhat = 0xc6b8;
+ static const uint16 addr_useelvdoor = 0xc6b4;
+ static const uint16 addr_useaxe = 0xc6b0;
+ static const uint16 addr_usecooker = 0xc6ac;
+ static const uint16 addr_usestereo = 0xc6a8;
+ static const uint16 addr_usekey = 0xc6a4;
+ static const uint16 addr_useelevator5 = 0xc6a0;
+ static const uint16 addr_useelevator2 = 0xc69c;
+ static const uint16 addr_useelevator4 = 0xc698;
+ static const uint16 addr_useelevator3 = 0xc694;
+ static const uint16 addr_showfirstuse = 0xc690;
+ static const uint16 addr_useelevator1 = 0xc68c;
+ static const uint16 addr_usehandle = 0xc688;
+ static const uint16 addr_usewire = 0xc684;
+ static const uint16 addr_usehatch = 0xc680;
+ static const uint16 addr_usecontrol = 0xc67c;
+ static const uint16 addr_moneypoke = 0xc678;
+ static const uint16 addr_lookatcard = 0xc674;
+ static const uint16 addr_usecashcard = 0xc670;
+ static const uint16 addr_usecardreader3 = 0xc66c;
+ static const uint16 addr_usecardreader2 = 0xc668;
+ static const uint16 addr_usecardreader1 = 0xc664;
+ static const uint16 addr_showseconduse = 0xc660;
+ static const uint16 addr_uselighter = 0xc65c;
+ static const uint16 addr_usepoolreader = 0xc658;
+ static const uint16 addr_calledensdlift = 0xc654;
+ static const uint16 addr_calledenslift = 0xc650;
+ static const uint16 addr_callhotellift = 0xc64c;
+ static const uint16 addr_trapdoor = 0xc648;
+ static const uint16 addr_grafittidoor = 0xc644;
+ static const uint16 addr_openhoteldoor2 = 0xc640;
+ static const uint16 addr_openhoteldoor = 0xc63c;
+ static const uint16 addr_drawitall = 0xc638;
+ static const uint16 addr_isitright = 0xc634;
+ static const uint16 addr_opensarters = 0xc630;
+ static const uint16 addr_openeden = 0xc62c;
+ static const uint16 addr_openpoolboss = 0xc628;
+ static const uint16 addr_openryan = 0xc624;
+ static const uint16 addr_usebalcony = 0xc620;
+ static const uint16 addr_usewindow = 0xc61c;
+ static const uint16 addr_openyourneighbour = 0xc618;
+ static const uint16 addr_nextcolon = 0xc614;
+ static const uint16 addr_openlouis = 0xc610;
+ static const uint16 addr_usedryer = 0xc60c;
+ static const uint16 addr_opentvdoor = 0xc608;
+ static const uint16 addr_usealtar = 0xc604;
+ static const uint16 addr_usehole = 0xc600;
+ static const uint16 addr_usechurchhole = 0xc5fc;
+ static const uint16 addr_sitdowninbar = 0xc5f8;
+ static const uint16 addr_wearshades = 0xc5f4;
+ static const uint16 addr_wearwatch = 0xc5f0;
+ static const uint16 addr_useopenbox = 0xc5ec;
+ static const uint16 addr_userailing = 0xc5e8;
+ static const uint16 addr_usecoveredbox = 0xc5e4;
+ static const uint16 addr_useclearbox = 0xc5e0;
+ static const uint16 addr_usecart = 0xc5dc;
+ static const uint16 addr_useslab = 0xc5d8;
+ static const uint16 addr_slabdoorf = 0xc5d4;
+ static const uint16 addr_slabdoore = 0xc5d0;
+ static const uint16 addr_slabdoorc = 0xc5cc;
+ static const uint16 addr_slabdoord = 0xc5c8;
+ static const uint16 addr_slabdoorb = 0xc5c4;
+ static const uint16 addr_slabdoora = 0xc5c0;
+ static const uint16 addr_useladderb = 0xc5bc;
+ static const uint16 addr_useladder = 0xc5b8;
+ static const uint16 addr_chewy = 0xc5b4;
+ static const uint16 addr_useplinth = 0xc5b0;
+ static const uint16 addr_usefullcart = 0xc5ac;
+ static const uint16 addr_usepipe = 0xc5a8;
+ static const uint16 addr_nothelderror = 0xc5a4;
+ static const uint16 addr_usetrainer = 0xc5a0;
+ static const uint16 addr_opentomb = 0xc59c;
+ static const uint16 addr_hotelbell = 0xc598;
+ static const uint16 addr_hotelcontrol = 0xc594;
+ static const uint16 addr_playguitar = 0xc590;
+ static const uint16 addr_runtap = 0xc58c;
+ static const uint16 addr_wheelsound = 0xc588;
+ static const uint16 addr_useroutine = 0xc584;
+ static const uint16 addr_useobject = 0xc580;
+ static const uint16 addr_delcurs = 0xc57c;
+ static const uint16 addr_printcurs = 0xc578;
+ static const uint16 addr_triggermessage = 0xc574;
+ static const uint16 addr_processtrigger = 0xc570;
+ static const uint16 addr_monmessage = 0xc56c;
+ static const uint16 addr_showcurrentfile = 0xc568;
+ static const uint16 addr_printlogo = 0xc564;
+ static const uint16 addr_monitorlogo = 0xc560;
+ static const uint16 addr_scrollmonitor = 0xc558;
+ static const uint16 addr_parser = 0xc554;
+ static const uint16 addr_searchforstring = 0xc550;
+ static const uint16 addr_getkeyandlogo = 0xc54c;
+ static const uint16 addr_dirfile = 0xc548;
+ static const uint16 addr_read = 0xc544;
+ static const uint16 addr_showkeys = 0xc540;
+ static const uint16 addr_signon = 0xc53c;
+ static const uint16 addr_searchforfiles = 0xc538;
+ static const uint16 addr_dircom = 0xc534;
+ static const uint16 addr_neterror = 0xc530;
+ static const uint16 addr_execcommand = 0xc52c;
+ static const uint16 addr_delchar = 0xc528;
+ static const uint16 addr_makecaps = 0xc524;
+ static const uint16 addr_input = 0xc520;
+ static const uint16 addr_locklightoff = 0xc51c;
+ static const uint16 addr_locklighton = 0xc518;
+ static const uint16 addr_accesslightoff = 0xc514;
+ static const uint16 addr_accesslighton = 0xc510;
+ static const uint16 addr_powerlightoff = 0xc50c;
+ static const uint16 addr_powerlighton = 0xc508;
+ static const uint16 addr_randomaccess = 0xc504;
+ static const uint16 addr_turnonpower = 0xc500;
+ static const uint16 addr_lookininterface = 0xc4fc;
+ static const uint16 addr_loadcart = 0xc4f8;
+ static const uint16 addr_loadnews = 0xc4f4;
+ static const uint16 addr_loadpersonal = 0xc4f0;
+ static const uint16 addr_printoutermon = 0xc4ec;
+ static const uint16 addr_usemon = 0xc4e8;
+ static const uint16 addr_readcitypic = 0xc4e4;
+ static const uint16 addr_readdesticon = 0xc4e0;
+ static const uint16 addr_resetlocation = 0xc4dc;
+ static const uint16 addr_setlocation = 0xc4d8;
+ static const uint16 addr_getlocation = 0xc4d4;
+ static const uint16 addr_destselect = 0xc4d0;
+ static const uint16 addr_lastdest = 0xc4cc;
+ static const uint16 addr_nextdest = 0xc4c8;
+ static const uint16 addr_showarrows = 0xc4c4;
+ static const uint16 addr_getdestinfo = 0xc4c0;
+ static const uint16 addr_locationpic = 0xc4bc;
+ static const uint16 addr_putundercentre = 0xc4b8;
+ static const uint16 addr_getundercentre = 0xc4b4;
+ static const uint16 addr_lookatplace = 0xc4b0;
+ static const uint16 addr_showcity = 0xc4ac;
+ static const uint16 addr_selectlocation = 0xc4a8;
+ static const uint16 addr_newplace = 0xc4a4;
+ static const uint16 addr_redes = 0xc4a0;
+ static const uint16 addr_hangonpq = 0xc49c;
+ static const uint16 addr_dosometalk = 0xc498;
+ static const uint16 addr_moretalk = 0xc494;
+ static const uint16 addr_getpersontext = 0xc490;
+ static const uint16 addr_starttalk = 0xc48c;
+ static const uint16 addr_getpersframe = 0xc488;
+ static const uint16 addr_convicons = 0xc484;
+ static const uint16 addr_talk = 0xc480;
+ static const uint16 addr_getback1 = 0xc47c;
+ static const uint16 addr_redrawmainscrn = 0xc478;
+ static const uint16 addr_dolook = 0xc474;
+ static const uint16 addr_look = 0xc470;
+ static const uint16 addr_autolook = 0xc46c;
+ static const uint16 addr_showallex = 0xc450;
+ static const uint16 addr_drawflags = 0xc43c;
+ static const uint16 addr_drawfloor = 0xc428;
+ static const uint16 addr_blockget = 0xc424;
+ static const uint16 addr_deleteextext = 0xc420;
+ static const uint16 addr_deleteexframe = 0xc41c;
+ static const uint16 addr_deleteexobject = 0xc418;
+ static const uint16 addr_purgeanitem = 0xc414;
+ static const uint16 addr_emergencypurge = 0xc410;
+ static const uint16 addr_purgealocation = 0xc40c;
+ static const uint16 addr_getexpos = 0xc408;
+ static const uint16 addr_transfertext = 0xc404;
+ static const uint16 addr_transfercontoex = 0xc400;
+ static const uint16 addr_pickupconts = 0xc3fc;
+ static const uint16 addr_transfertoex = 0xc3f8;
+ static const uint16 addr_outofopen = 0xc3f4;
+ static const uint16 addr_checkobjectsize = 0xc3f0;
+ static const uint16 addr_errormessage3 = 0xc3ec;
+ static const uint16 addr_errormessage2 = 0xc3e8;
+ static const uint16 addr_errormessage1 = 0xc3e4;
+ static const uint16 addr_useopened = 0xc3e0;
+ static const uint16 addr_selectopenob = 0xc3dc;
+ static const uint16 addr_removeobfrominv = 0xc3d8;
+ static const uint16 addr_wornerror = 0xc3d4;
+ static const uint16 addr_cantdrop = 0xc3d0;
+ static const uint16 addr_droperror = 0xc3cc;
+ static const uint16 addr_dropobject = 0xc3c8;
+ static const uint16 addr_findopenpos = 0xc3c4;
+ static const uint16 addr_findinvpos = 0xc3c0;
+ static const uint16 addr_getsetad = 0xc3bc;
+ static const uint16 addr_getopenedsize = 0xc3b8;
+ static const uint16 addr_getanyaddir = 0xc3b4;
+ static const uint16 addr_getanyad = 0xc3b0;
+ static const uint16 addr_geteitherad = 0xc3ac;
+ static const uint16 addr_getexad = 0xc3a8;
+ static const uint16 addr_getfreead = 0xc3a4;
+ static const uint16 addr_outofinv = 0xc3a0;
+ static const uint16 addr_intoinv = 0xc398;
+ static const uint16 addr_swapwithopen = 0xc394;
+ static const uint16 addr_swapwithinv = 0xc390;
+ static const uint16 addr_reexfromopen = 0xc38c;
+ static const uint16 addr_reexfrominv = 0xc388;
+ static const uint16 addr_examinventory = 0xc384;
+ static const uint16 addr_setpickup = 0xc380;
+ static const uint16 addr_inventory = 0xc37c;
+ static const uint16 addr_findnextcolon = 0xc378;
+ static const uint16 addr_searchforsame = 0xc374;
+ static const uint16 addr_getobtextstart = 0xc370;
+ static const uint16 addr_obsthatdothings = 0xc36c;
+ static const uint16 addr_additionaltext = 0xc368;
+ static const uint16 addr_describeob = 0xc364;
+ static const uint16 addr_obpicture = 0xc360;
+ static const uint16 addr_examicon = 0xc35c;
+ static const uint16 addr_obicons = 0xc358;
+ static const uint16 addr_openob = 0xc354;
+ static const uint16 addr_showryanpage = 0xc350;
+ static const uint16 addr_openinv = 0xc34c;
+ static const uint16 addr_incryanpage = 0xc348;
+ static const uint16 addr_getbackfromob = 0xc344;
+ static const uint16 addr_makemainscreen = 0xc340;
+ static const uint16 addr_examineob = 0xc33c;
+ static const uint16 addr_makeworn = 0xc338;
+ static const uint16 addr_isitworn = 0xc334;
+ static const uint16 addr_obtoinv = 0xc330;
+ static const uint16 addr_findallopen = 0xc32c;
+ static const uint16 addr_findallryan = 0xc328;
+ static const uint16 addr_fillopen = 0xc324;
+ static const uint16 addr_fillryan = 0xc320;
+ static const uint16 addr_monprint = 0xc314;
+ static const uint16 addr_waitframes = 0xc308;
+ static const uint16 addr_realcredits = 0xc2f8;
+ static const uint16 addr_set16colpalette = 0xc2f4;
+ static const uint16 addr_mode640x480 = 0xc2f0;
+ static const uint16 addr_loadintroroom = 0xc2ec;
+ static const uint16 addr_runendseq = 0xc2e8;
+ static const uint16 addr_runintroseq = 0xc2e4;
+ static const uint16 addr_intro = 0xc2e0;
+ static const uint16 addr_hangone = 0xc2dc;
+ static const uint16 addr_biblequote = 0xc2d8;
+ static const uint16 addr_credits = 0xc2d4;
+ static const uint16 addr_gettingshot = 0xc2d0;
+ static const uint16 addr_showmonk = 0xc2cc;
+ static const uint16 addr_monkspeaking = 0xc2c8;
+ static const uint16 addr_endgame = 0xc2c4;
+ static const uint16 addr_titles = 0xc2c0;
+ static const uint16 addr_initialmoncols = 0xc2bc;
+ static const uint16 addr_fadeupyellows = 0xc2b8;
+ static const uint16 addr_fadeupmonfirst = 0xc2b4;
+ static const uint16 addr_fadeupmon = 0xc2b0;
+ static const uint16 addr_fadedownmon = 0xc2ac;
+ static const uint16 addr_dumpcurrent = 0xc2a8;
+ static const uint16 addr_allpalette = 0xc2a4;
+ static const uint16 addr_paltoendpal = 0xc2a0;
+ static const uint16 addr_startpaltoend = 0xc29c;
+ static const uint16 addr_endpaltostart = 0xc298;
+ static const uint16 addr_paltostartpal = 0xc294;
+ static const uint16 addr_showgroup = 0xc290;
+ static const uint16 addr_greyscalesum = 0xc28c;
+ static const uint16 addr_fadecalculation = 0xc288;
+ static const uint16 addr_rollem = 0xc284;
+ static const uint16 addr_rollendcredits2 = 0xc280;
+ static const uint16 addr_showgun = 0xc27c;
+ static const uint16 addr_clearstartpal = 0xc278;
+ static const uint16 addr_fadescreendowns = 0xc274;
+ static const uint16 addr_fadescreendown = 0xc270;
+ static const uint16 addr_fadescreenuphalf = 0xc26c;
+ static const uint16 addr_fadescreendownhalf = 0xc268;
+ static const uint16 addr_fadescreenups = 0xc264;
+ static const uint16 addr_fadefromwhite = 0xc260;
+ static const uint16 addr_fadetowhite = 0xc25c;
+ static const uint16 addr_fadescreenup = 0xc258;
+ static const uint16 addr_clearpalette = 0xc254;
+ static const uint16 addr_clearendpal = 0xc250;
+ static const uint16 addr_dofade = 0xc24c;
+ static const uint16 addr_fadedos = 0xc248;
+ static const uint16 addr_transfermap = 0xc244;
+ static const uint16 addr_transferinv = 0xc240;
+ static const uint16 addr_delthisone = 0xc214;
+ static const uint16 addr_doshake = 0xc20c;
+ static const uint16 addr_vsync = 0xc208;
+ static const uint16 addr_createpanel2 = 0xc200;
+ static const uint16 addr_createpanel = 0xc1fc;
+ static const uint16 addr_pixelcheckset = 0xc1f8;
+ static const uint16 addr_dumpmap = 0xc1f4;
+ static const uint16 addr_maptopanel = 0xc1f0;
+ static const uint16 addr_paneltomap = 0xc1ec;
+ static const uint16 addr_setmode = 0xc1dc;
+ static const uint16 addr_loadpalfromiff = 0xc1d8;
+ static const uint16 addr_showpcx = 0xc1cc;
+ static const uint16 addr_dumpeverything = 0xc1c4;
+ static const uint16 addr_deleverything = 0xc1c0;
+ static const uint16 addr_reconstruct = 0xc1ac;
+ static const uint16 addr_soundonreels = 0xc1a8;
+ static const uint16 addr_reelsonscreen = 0xc1a0;
+ static const uint16 addr_constant = 0xc184;
+ static const uint16 addr_steady = 0xc180;
+ static const uint16 addr_random = 0xc17c;
+ static const uint16 addr_liftnoise = 0xc178;
+ static const uint16 addr_backobject = 0xc170;
+ static const uint16 addr_getblockofpixel = 0xc168;
+ static const uint16 addr_splitintolines = 0xc164;
+ static const uint16 addr_initrain = 0xc160;
+ static const uint16 addr_reminders = 0xc15c;
+ static const uint16 addr_adjustright = 0xc158;
+ static const uint16 addr_adjustleft = 0xc154;
+ static const uint16 addr_adjustup = 0xc150;
+ static const uint16 addr_adjustdown = 0xc14c;
+ static const uint16 addr_checkforexit = 0xc148;
+ static const uint16 addr_mainman = 0xc138;
+ static const uint16 addr_delsprite = 0xc11c;
+ static const uint16 addr_checkspeed = 0xc110;
+ static const uint16 addr_addtopeoplelist = 0xc108;
+ static const uint16 addr_train = 0xc104;
+ static const uint16 addr_sparky = 0xc100;
+ static const uint16 addr_copper = 0xc0fc;
+ static const uint16 addr_advisor = 0xc0f8;
+ static const uint16 addr_drunk = 0xc0f4;
+ static const uint16 addr_textformonk = 0xc0f0;
+ static const uint16 addr_textforend = 0xc0ec;
+ static const uint16 addr_priesttext = 0xc0e8;
+ static const uint16 addr_madman = 0xc0dc;
+ static const uint16 addr_madmanstelly = 0xc0d8;
+ static const uint16 addr_priest = 0xc0d4;
+ static const uint16 addr_rollendcredits = 0xc0d0;
+ static const uint16 addr_endgameseq = 0xc0cc;
+ static const uint16 addr_monkandryan = 0xc0c8;
+ static const uint16 addr_intro3text = 0xc0c4;
+ static const uint16 addr_intro2text = 0xc0c0;
+ static const uint16 addr_intro1text = 0xc0bc;
+ static const uint16 addr_monks2text = 0xc0b8;
+ static const uint16 addr_handclap = 0xc0b4;
+ static const uint16 addr_intromonks2 = 0xc0b0;
+ static const uint16 addr_intromonks1 = 0xc0ac;
+ static const uint16 addr_intromagic3 = 0xc0a8;
+ static const uint16 addr_intromagic2 = 0xc0a4;
+ static const uint16 addr_gates = 0xc0a0;
+ static const uint16 addr_candles2 = 0xc09c;
+ static const uint16 addr_candles = 0xc098;
+ static const uint16 addr_intromagic1 = 0xc094;
+ static const uint16 addr_smallcandle = 0xc090;
+ static const uint16 addr_candles1 = 0xc08c;
+ static const uint16 addr_keeper = 0xc088;
+ static const uint16 addr_carparkdrip = 0xc084;
+ static const uint16 addr_sparkydrip = 0xc080;
+ static const uint16 addr_gamer = 0xc07c;
+ static const uint16 addr_bossman = 0xc078;
+ static const uint16 addr_heavy = 0xc074;
+ static const uint16 addr_security = 0xc070;
+ static const uint16 addr_poolguard = 0xc06c;
+ static const uint16 addr_businessman = 0xc068;
+ static const uint16 addr_aide = 0xc064;
+ static const uint16 addr_mugger = 0xc060;
+ static const uint16 addr_helicopter = 0xc05c;
+ static const uint16 addr_rockstar = 0xc058;
+ static const uint16 addr_soldier1 = 0xc054;
+ static const uint16 addr_interviewer = 0xc050;
+ static const uint16 addr_barwoman = 0xc04c;
+ static const uint16 addr_othersmoker = 0xc048;
+ static const uint16 addr_bartender = 0xc044;
+ static const uint16 addr_drinker = 0xc040;
+ static const uint16 addr_tattooman = 0xc03c;
+ static const uint16 addr_mansatstill = 0xc038;
+ static const uint16 addr_manasleep2 = 0xc034;
+ static const uint16 addr_louischair = 0xc030;
+ static const uint16 addr_louis = 0xc02c;
+ static const uint16 addr_femalefan = 0xc028;
+ static const uint16 addr_malefan = 0xc024;
+ static const uint16 addr_edeninbath = 0xc020;
+ static const uint16 addr_eden = 0xc01c;
+ static const uint16 addr_manasleep = 0xc018;
+ static const uint16 addr_attendant = 0xc014;
+ static const uint16 addr_smokebloke = 0xc010;
+ static const uint16 addr_receptionist = 0xc00c;
+ static const uint16 addr_foghornsound = 0xc008;
+ static const uint16 addr_intromusic = 0xc004;
+ static const uint16 addr_alleybarksound = 0xc000;
+ static const uint16 offset_quitlist = 0x0a84;
+ static const uint16 offset_savelist = 0x0f44;
+ static const uint16 offset_mainlist = 0x1402;
+ static const uint16 offset_gameerror8 = 0x113f;
+ static const uint16 offset_blinktab = 0x1700;
+ static const uint16 offset_error2patch = 0x0ff6;
+ static const uint16 offset_openchangesize = 0x0a1c;
+ static const uint16 offset_keys = 0x0b14;
+ static const uint16 offset_mainlist2 = 0x1440;
+ static const uint16 offset_uselist = 0x0ba8;
+ static const uint16 offset_gameerror2 = 0x0fb2;
+ static const uint16 offset_loadlist = 0x0ef0;
+ static const uint16 offset_gameerror6 = 0x10be;
+ static const uint16 offset_flashmousetab = 0x1707;
+ static const uint16 offset_speechfile = 0x13f1;
+ static const uint16 offset_atmospherelist = 0x147e;
+ static const uint16 offset_gameerror4 = 0x1037;
+ static const uint16 offset_gameerror1 = 0x0f6e;
+ static const uint16 offset_examlist = 0x09be;
+ static const uint16 offset_gameinfo = 0x1170;
+ static const uint16 offset_decidelist = 0x13c1;
+ static const uint16 offset_invlist1 = 0x09fc;
+ static const uint16 offset_money2poke = 0x0d97;
+ static const uint16 offset_talklist = 0x0a64;
+ static const uint16 offset_menulist = 0x0e1e;
+ static const uint16 offset_comlist = 0x0ad8;
+ static const uint16 offset_withlist1 = 0x0a3a;
+ static const uint16 offset_money1poke = 0x0d92;
+ static const uint16 offset_gameerror7 = 0x1104;
+ static const uint16 offset_discopslist = 0x0f1a;
+ static const uint16 offset_commandline = 0x16d7;
+ static const uint16 offset_destlist = 0x0a9a;
+ static const uint16 offset_shaketable = 0x06af;
+ static const uint16 offset_error6patch = 0x10fe;
+ static const uint16 offset_keybuffer = 0x1718;
+ static const uint16 offset_speechfilename = 0x13eb;
+ static const uint16 offset_folderlist = 0x0e34;
+ static const uint16 offset_rootdir = 0x0b8c;
+ static const uint16 offset_gameerror3 = 0x1003;
+ static const uint16 offset_rainlocations = 0x0459;
+ static const uint16 offset_diarylist = 0x0e9c;
+ static const uint16 offset_opslist = 0x0ec6;
+ static const uint16 offset_symbollist = 0x0e5e;
+ static const uint16 offset_gameerror5 = 0x1074;
+ static const uint16 offset_facelist = 0x0451;
+ static const uint16 offset_operand1 = 0x0b7e;
+ static const uint16 offset_keypadlist = 0x0d9a;
+ static const uint16 kStartvars = 0;
+ static const uint16 kProgresspoints = 1;
+ static const uint16 kWatchon = 2;
+ static const uint16 kShadeson = 3;
+ static const uint16 kSecondcount = 4;
+ static const uint16 kMinutecount = 5;
+ static const uint16 kHourcount = 6;
+ static const uint16 kZoomon = 7;
+ static const uint16 kLocation = 8;
+ static const uint16 kExpos = 9;
+ static const uint16 kExframepos = 10;
+ static const uint16 kExtextpos = 12;
+ static const uint16 kCard1money = 14;
+ static const uint16 kListpos = 16;
+ static const uint16 kRyanpage = 18;
+ static const uint16 kWatchingtime = 19;
+ static const uint16 kReeltowatch = 21;
+ static const uint16 kEndwatchreel = 23;
+ static const uint16 kSpeedcount = 25;
+ static const uint16 kWatchspeed = 26;
+ static const uint16 kReeltohold = 27;
+ static const uint16 kEndofholdreel = 29;
+ static const uint16 kWatchmode = 31;
+ static const uint16 kDestafterhold = 32;
+ static const uint16 kNewsitem = 33;
+ static const uint16 kLiftflag = 34;
+ static const uint16 kLiftpath = 35;
+ static const uint16 kLockstatus = 36;
+ static const uint16 kDoorpath = 37;
+ static const uint16 kCounttoopen = 38;
+ static const uint16 kCounttoclose = 39;
+ static const uint16 kRockstardead = 40;
+ static const uint16 kGeneraldead = 41;
+ static const uint16 kSartaindead = 42;
+ static const uint16 kAidedead = 43;
+ static const uint16 kBeenmugged = 44;
+ static const uint16 kGunpassflag = 45;
+ static const uint16 kCanmovealtar = 46;
+ static const uint16 kTalkedtoattendant = 47;
+ static const uint16 kTalkedtosparky = 48;
+ static const uint16 kTalkedtoboss = 49;
+ static const uint16 kTalkedtorecep = 50;
+ static const uint16 kCardpassflag = 51;
+ static const uint16 kMadmanflag = 52;
+ static const uint16 kKeeperflag = 53;
+ static const uint16 kLasttrigger = 54;
+ static const uint16 kMandead = 55;
+ static const uint16 kSeed = 56;
+ static const uint16 kNeedtotravel = 59;
+ static const uint16 kThroughdoor = 60;
+ static const uint16 kNewobs = 61;
+ static const uint16 kRyanon = 62;
+ static const uint16 kCombatcount = 63;
+ static const uint16 kLastweapon = 64;
+ static const uint16 kDreamnumber = 65;
+ static const uint16 kRoomafterdream = 66;
+ static const uint16 kShakecounter = 67;
+ static const uint16 kSpeechcount = 68;
+ static const uint16 kCharshift = 69;
+ static const uint16 kKerning = 71;
+ static const uint16 kBrightness = 72;
+ static const uint16 kRoomloaded = 73;
+ static const uint16 kDidzoom = 74;
+ static const uint16 kLinespacing = 75;
+ static const uint16 kTextaddressx = 77;
+ static const uint16 kTextaddressy = 79;
+ static const uint16 kTextlen = 81;
+ static const uint16 kLastxpos = 82;
+ static const uint16 kIcontop = 84;
+ static const uint16 kIconleft = 86;
+ static const uint16 kItemframe = 88;
+ static const uint16 kItemtotran = 89;
+ static const uint16 kRoomad = 90;
+ static const uint16 kOldsubject = 92;
+ static const uint16 kWithobject = 94;
+ static const uint16 kWithtype = 95;
+ static const uint16 kLookcounter = 96;
+ static const uint16 kCommand = 98;
+ static const uint16 kCommandtype = 99;
+ static const uint16 kOldcommandtype = 100;
+ static const uint16 kObjecttype = 101;
+ static const uint16 kGetback = 102;
+ static const uint16 kInvopen = 103;
+ static const uint16 kMainmode = 104;
+ static const uint16 kPickup = 105;
+ static const uint16 kLastinvpos = 106;
+ static const uint16 kExamagain = 107;
+ static const uint16 kNewtextline = 108;
+ static const uint16 kOpenedob = 109;
+ static const uint16 kOpenedtype = 110;
+ static const uint16 kOldmapadx = 111;
+ static const uint16 kOldmapady = 113;
+ static const uint16 kMapadx = 115;
+ static const uint16 kMapady = 117;
+ static const uint16 kMapoffsetx = 119;
+ static const uint16 kMapoffsety = 121;
+ static const uint16 kMapxstart = 123;
+ static const uint16 kMapystart = 125;
+ static const uint16 kMapxsize = 127;
+ static const uint16 kMapysize = 128;
+ static const uint16 kHavedoneobs = 129;
+ static const uint16 kManisoffscreen = 130;
+ static const uint16 kRainspace = 131;
+ static const uint16 kFacing = 132;
+ static const uint16 kLeavedirection = 133;
+ static const uint16 kTurntoface = 134;
+ static const uint16 kTurndirection = 135;
+ static const uint16 kMaintimer = 136;
+ static const uint16 kIntrocount = 138;
+ static const uint16 kArrowad = 139;
+ static const uint16 kCurrentkey = 141;
+ static const uint16 kOldkey = 142;
+ static const uint16 kUseddirection = 143;
+ static const uint16 kCurrentkey2 = 144;
+ static const uint16 kTimercount = 145;
+ static const uint16 kOldtimercount = 146;
+ static const uint16 kMapx = 147;
+ static const uint16 kMapy = 148;
+ static const uint16 kNewscreen = 149;
+ static const uint16 kRyanx = 150;
+ static const uint16 kRyany = 151;
+ static const uint16 kLastflag = 152;
+ static const uint16 kLastflagex = 153;
+ static const uint16 kFlagx = 154;
+ static const uint16 kFlagy = 155;
+ static const uint16 kCurrentex = 156;
+ static const uint16 kCurrentfree = 157;
+ static const uint16 kCurrentframe = 158;
+ static const uint16 kFramesad = 160;
+ static const uint16 kDataad = 162;
+ static const uint16 kFrsegment = 164;
+ static const uint16 kObjectx = 166;
+ static const uint16 kObjecty = 168;
+ static const uint16 kOffsetx = 170;
+ static const uint16 kOffsety = 172;
+ static const uint16 kSavesize = 174;
+ static const uint16 kSavesource = 176;
+ static const uint16 kSavex = 178;
+ static const uint16 kSavey = 179;
+ static const uint16 kCurrentob = 180;
+ static const uint16 kPrioritydep = 181;
+ static const uint16 kDestpos = 182;
+ static const uint16 kReallocation = 183;
+ static const uint16 kRoomnum = 184;
+ static const uint16 kNowinnewroom = 185;
+ static const uint16 kResetmanxy = 186;
+ static const uint16 kNewlocation = 187;
+ static const uint16 kAutolocation = 188;
+ static const uint16 kMustload = 189;
+ static const uint16 kAnswered = 190;
+ static const uint16 kSaidno = 191;
+ static const uint16 kDoorcheck1 = 192;
+ static const uint16 kDoorcheck2 = 193;
+ static const uint16 kDoorcheck3 = 194;
+ static const uint16 kDoorcheck4 = 195;
+ static const uint16 kMousex = 196;
+ static const uint16 kMousey = 198;
+ static const uint16 kMousebutton = 200;
+ static const uint16 kMousebutton1 = 202;
+ static const uint16 kMousebutton2 = 204;
+ static const uint16 kMousebutton3 = 206;
+ static const uint16 kMousebutton4 = 208;
+ static const uint16 kOldbutton = 210;
+ static const uint16 kOldx = 212;
+ static const uint16 kOldy = 214;
+ static const uint16 kLastbutton = 216;
+ static const uint16 kOldpointerx = 218;
+ static const uint16 kOldpointery = 220;
+ static const uint16 kDelherex = 222;
+ static const uint16 kDelherey = 224;
+ static const uint16 kPointerxs = 226;
+ static const uint16 kPointerys = 227;
+ static const uint16 kDelxs = 228;
+ static const uint16 kDelys = 229;
+ static const uint16 kPointerframe = 230;
+ static const uint16 kPointerpower = 231;
+ static const uint16 kAuxpointerframe = 232;
+ static const uint16 kPointermode = 233;
+ static const uint16 kPointerspeed = 234;
+ static const uint16 kPointercount = 235;
+ static const uint16 kInmaparea = 236;
+ static const uint16 kReelpointer = 237;
+ static const uint16 kSlotdata = 239;
+ static const uint16 kThisslot = 240;
+ static const uint16 kSlotflags = 241;
+ static const uint16 kTakeoff = 242;
+ static const uint16 kTalkmode = 244;
+ static const uint16 kTalkpos = 245;
+ static const uint16 kCharacter = 246;
+ static const uint16 kPersondata = 247;
+ static const uint16 kTalknum = 249;
+ static const uint16 kNumberinroom = 250;
+ static const uint16 kCurrentcel = 251;
+ static const uint16 kOldselection = 252;
+ static const uint16 kStopwalking = 253;
+ static const uint16 kMouseon = 254;
+ static const uint16 kPlayed = 255;
+ static const uint16 kTimer1 = 257;
+ static const uint16 kTimer2 = 258;
+ static const uint16 kTimer3 = 259;
+ static const uint16 kWholetimer = 260;
+ static const uint16 kTimer1to = 262;
+ static const uint16 kTimer2to = 263;
+ static const uint16 kTimer3to = 264;
+ static const uint16 kWatchdump = 265;
+ static const uint16 kCurrentset = 266;
+ static const uint16 kLogonum = 268;
+ static const uint16 kOldlogonum = 269;
+ static const uint16 kNewlogonum = 270;
+ static const uint16 kNetseg = 271;
+ static const uint16 kNetpoint = 273;
+ static const uint16 kKeynum = 275;
+ static const uint16 kCursorstate = 276;
+ static const uint16 kPressed = 277;
+ static const uint16 kPresspointer = 278;
+ static const uint16 kGraphicpress = 280;
+ static const uint16 kPresscount = 281;
+ static const uint16 kKeypadax = 282;
+ static const uint16 kKeypadcx = 284;
+ static const uint16 kLightcount = 286;
+ static const uint16 kFolderpage = 287;
+ static const uint16 kDiarypage = 288;
+ static const uint16 kMenucount = 289;
+ static const uint16 kSymboltopx = 290;
+ static const uint16 kSymboltopnum = 291;
+ static const uint16 kSymboltopdir = 292;
+ static const uint16 kSymbolbotx = 293;
+ static const uint16 kSymbolbotnum = 294;
+ static const uint16 kSymbolbotdir = 295;
+ static const uint16 kSymboltolight = 296;
+ static const uint16 kSymbol1 = 297;
+ static const uint16 kSymbol2 = 298;
+ static const uint16 kSymbol3 = 299;
+ static const uint16 kSymbolnum = 300;
+ static const uint16 kDumpx = 301;
+ static const uint16 kDumpy = 303;
+ static const uint16 kWalkandexam = 305;
+ static const uint16 kWalkexamtype = 306;
+ static const uint16 kWalkexamnum = 307;
+ static const uint16 kCursloc = 308;
+ static const uint16 kCurslocx = 310;
+ static const uint16 kCurslocy = 312;
+ static const uint16 kCurpos = 314;
+ static const uint16 kMonadx = 316;
+ static const uint16 kMonady = 318;
+ static const uint16 kGotfrom = 320;
+ static const uint16 kMonsource = 322;
+ static const uint16 kNumtodo = 324;
+ static const uint16 kTimecount = 326;
+ static const uint16 kCounttotimed = 328;
+ static const uint16 kTimedseg = 330;
+ static const uint16 kTimedoffset = 332;
+ static const uint16 kTimedy = 334;
+ static const uint16 kTimedx = 335;
+ static const uint16 kNeedtodumptimed = 336;
+ static const uint16 kHandle = 337;
+ static const uint16 kLoadingorsave = 339;
+ static const uint16 kCurrentslot = 340;
+ static const uint16 kCursorpos = 341;
+ static const uint16 kColourpos = 342;
+ static const uint16 kFadedirection = 343;
+ static const uint16 kNumtofade = 344;
+ static const uint16 kFadecount = 345;
+ static const uint16 kAddtogreen = 346;
+ static const uint16 kAddtored = 347;
+ static const uint16 kAddtoblue = 348;
+ static const uint16 kLastsoundreel = 349;
+ static const uint16 kSoundbuffer = 351;
+ static const uint16 kSoundbufferad = 353;
+ static const uint16 kSoundbufferpage = 355;
+ static const uint16 kSoundtimes = 356;
+ static const uint16 kNeedsoundbuff = 357;
+ static const uint16 kOldint9seg = 358;
+ static const uint16 kOldint9add = 360;
+ static const uint16 kOldint8seg = 362;
+ static const uint16 kOldint8add = 364;
+ static const uint16 kOldsoundintseg = 366;
+ static const uint16 kOldsoundintadd = 368;
+ static const uint16 kSoundbaseadd = 370;
+ static const uint16 kDsp_status = 372;
+ static const uint16 kDsp_write = 374;
+ static const uint16 kDmaaddress = 376;
+ static const uint16 kSoundint = 377;
+ static const uint16 kSounddmachannel = 378;
+ static const uint16 kSampleplaying = 379;
+ static const uint16 kTestresult = 380;
+ static const uint16 kCurrentirq = 381;
+ static const uint16 kSpeechloaded = 382;
+ static const uint16 kSpeechlength = 383;
+ static const uint16 kVolume = 385;
+ static const uint16 kVolumeto = 386;
+ static const uint16 kVolumedirection = 387;
+ static const uint16 kVolumecount = 388;
+ static const uint16 kPlayblock = 389;
+ static const uint16 kWongame = 390;
+ static const uint16 kLasthardkey = 391;
+ static const uint16 kBufferin = 392;
+ static const uint16 kBufferout = 394;
+ static const uint16 kExtras = 396;
+ static const uint16 kWorkspace = 398;
+ static const uint16 kMapstore = 400;
+ static const uint16 kCharset1 = 402;
+ static const uint16 kTempcharset = 404;
+ static const uint16 kIcons1 = 406;
+ static const uint16 kIcons2 = 408;
+ static const uint16 kBuffers = 410;
+ static const uint16 kMainsprites = 412;
+ static const uint16 kBackdrop = 414;
+ static const uint16 kMapdata = 416;
+ static const uint16 kSounddata = 418;
+ static const uint16 kSounddata2 = 420;
+ static const uint16 kRecordspace = 422;
+ static const uint16 kFreedat = 424;
+ static const uint16 kSetdat = 426;
+ static const uint16 kReel1 = 428;
+ static const uint16 kReel2 = 430;
+ static const uint16 kReel3 = 432;
+ static const uint16 kRoomdesc = 434;
+ static const uint16 kFreedesc = 436;
+ static const uint16 kSetdesc = 438;
+ static const uint16 kBlockdesc = 440;
+ static const uint16 kSetframes = 442;
+ static const uint16 kFreeframes = 444;
+ static const uint16 kPeople = 446;
+ static const uint16 kReels = 448;
+ static const uint16 kCommandtext = 450;
+ static const uint16 kPuzzletext = 452;
+ static const uint16 kTraveltext = 454;
+ static const uint16 kTempgraphics = 456;
+ static const uint16 kTempgraphics2 = 458;
+ static const uint16 kTempgraphics3 = 460;
+ static const uint16 kTempsprites = 462;
+ static const uint16 kTextfile1 = 464;
+ static const uint16 kTextfile2 = 466;
+ static const uint16 kTextfile3 = 468;
+ static const uint16 kBlinkframe = 470;
+ static const uint16 kBlinkcount = 471;
+ static const uint16 kReasseschanges = 472;
+ static const uint16 kPointerspath = 473;
+ static const uint16 kManspath = 474;
+ static const uint16 kPointerfirstpath = 475;
+ static const uint16 kFinaldest = 476;
+ static const uint16 kDestination = 477;
+ static const uint16 kLinestartx = 478;
+ static const uint16 kLinestarty = 480;
+ static const uint16 kLineendx = 482;
+ static const uint16 kLineendy = 484;
+ static const uint16 kIncrement1 = 486;
+ static const uint16 kIncrement2 = 488;
+ static const uint16 kLineroutine = 490;
+ static const uint16 kLinepointer = 491;
+ static const uint16 kLinedirection = 492;
+ static const uint16 kLinelength = 493;
+ static const uint16 kLiftsoundcount = 494;
+ static const uint16 kEmmhandle = 495;
+ static const uint16 kEmmpageframe = 497;
+ static const uint16 kEmmhardwarepage = 499;
+ static const uint16 kCh0emmpage = 500;
+ static const uint16 kCh0offset = 502;
+ static const uint16 kCh0blockstocopy = 504;
+ static const uint16 kCh0playing = 506;
+ static const uint16 kCh0repeat = 507;
+ static const uint16 kCh0oldemmpage = 508;
+ static const uint16 kCh0oldoffset = 510;
+ static const uint16 kCh0oldblockstocopy = 512;
+ static const uint16 kCh1playing = 514;
+ static const uint16 kCh1emmpage = 515;
+ static const uint16 kCh1offset = 517;
+ static const uint16 kCh1blockstocopy = 519;
+ static const uint16 kCh1blocksplayed = 521;
+ static const uint16 kSoundbufferwrite = 523;
+ static const uint16 kSoundemmpage = 525;
+ static const uint16 kSpeechemmpage = 527;
+ static const uint16 kCurrentsample = 529;
+ static const uint16 kRoomssample = 530;
+ static const uint16 kGameerror = 531;
+ static const uint16 kHowmuchalloc = 532;
+ static const uint16 kReelroutines = 534;
+ static const uint16 kReelcalls = 991;
+ static const uint16 kRoombyroom = 1214;
+ static const uint16 kR0 = 1326;
+ static const uint16 kR1 = 1327;
+ static const uint16 kR2 = 1331;
+ static const uint16 kR6 = 1350;
+ static const uint16 kR8 = 1357;
+ static const uint16 kR9 = 1373;
+ static const uint16 kR10 = 1380;
+ static const uint16 kR11 = 1384;
+ static const uint16 kR12 = 1388;
+ static const uint16 kR13 = 1392;
+ static const uint16 kR14 = 1405;
+ static const uint16 kR20 = 1439;
+ static const uint16 kR22 = 1461;
+ static const uint16 kR23 = 1492;
+ static const uint16 kR25 = 1505;
+ static const uint16 kR26 = 1527;
+ static const uint16 kR27 = 1549;
+ static const uint16 kR28 = 1574;
+ static const uint16 kR29 = 1593;
+ static const uint16 kR45 = 1609;
+ static const uint16 kR46 = 1616;
+ static const uint16 kR47 = 1653;
+ static const uint16 kR52 = 1666;
+ static const uint16 kR53 = 1670;
+ static const uint16 kR55 = 1677;
+ static const uint16 kSpritename1 = 1819;
+ static const uint16 kSpritename3 = 1832;
+ static const uint16 kIdname = 1845;
+ static const uint16 kCharacterset1 = 1857;
+ static const uint16 kCharacterset2 = 1870;
+ static const uint16 kCharacterset3 = 1883;
+ static const uint16 kSamplename = 1896;
+ static const uint16 kBasicsample = 1909;
+ static const uint16 kIcongraphics0 = 1922;
+ static const uint16 kIcongraphics1 = 1935;
+ static const uint16 kExtragraphics1 = 1948;
+ static const uint16 kIcongraphics8 = 1961;
+ static const uint16 kMongraphicname = 1974;
+ static const uint16 kMongraphics2 = 1987;
+ static const uint16 kCityname = 2000;
+ static const uint16 kTravelgraphic1 = 2013;
+ static const uint16 kTravelgraphic2 = 2026;
+ static const uint16 kDiarygraphic = 2039;
+ static const uint16 kMonitorfile1 = 2052;
+ static const uint16 kMonitorfile2 = 2065;
+ static const uint16 kMonitorfile10 = 2078;
+ static const uint16 kMonitorfile11 = 2091;
+ static const uint16 kMonitorfile12 = 2104;
+ static const uint16 kMonitorfile13 = 2117;
+ static const uint16 kMonitorfile20 = 2130;
+ static const uint16 kMonitorfile21 = 2143;
+ static const uint16 kMonitorfile22 = 2156;
+ static const uint16 kMonitorfile23 = 2169;
+ static const uint16 kMonitorfile24 = 2182;
+ static const uint16 kFoldertext = 2195;
+ static const uint16 kDiarytext = 2208;
+ static const uint16 kPuzzletextname = 2221;
+ static const uint16 kTraveltextname = 2234;
+ static const uint16 kIntrotextname = 2247;
+ static const uint16 kEndtextname = 2260;
+ static const uint16 kCommandtextname = 2273;
+ static const uint16 kVolumetabname = 2286;
+ static const uint16 kFoldergraphic1 = 2299;
+ static const uint16 kFoldergraphic2 = 2312;
+ static const uint16 kFoldergraphic3 = 2325;
+ static const uint16 kSymbolgraphic = 2338;
+ static const uint16 kGungraphic = 2351;
+ static const uint16 kMonkface = 2364;
+ static const uint16 kTitle0graphics = 2377;
+ static const uint16 kTitle1graphics = 2390;
+ static const uint16 kTitle2graphics = 2403;
+ static const uint16 kTitle3graphics = 2416;
+ static const uint16 kTitle4graphics = 2429;
+ static const uint16 kTitle5graphics = 2442;
+ static const uint16 kTitle6graphics = 2455;
+ static const uint16 kTitle7graphics = 2468;
+ static const uint16 kPalettescreen = 2481;
+ static const uint16 kCurrentfile = 2970;
+ static const uint16 kDmaaddresses = 5118;
+ static const uint16 kFileheader = 6091;
+ static const uint16 kFiledata = 6141;
+ static const uint16 kExtradata = 6181;
+ static const uint16 kRoomdata = 6187;
+ static const uint16 kMadeuproomdat = 7979;
+ static const uint16 kRoomscango = 8011;
+ static const uint16 kRoompics = 8027;
+ static const uint16 kOplist = 8042;
+ static const uint16 kInputline = 8045;
+ static const uint16 kLinedata = 8173;
+ static const uint16 kPresslist = 8573;
+ static const uint16 kSavenames = 8579;
+ static const uint16 kSavefiles = 8698;
+ static const uint16 kRecname = 8789;
+ static const uint16 kQuitrequested = 8802;
+ static const uint16 kSubtitles = 8803;
+ static const uint16 kForeignrelease = 8804;
+ static const uint16 kStak = 8805;
+ static const uint16 kBlocktextdat = (0);
+ static const uint16 kPersonframes = (0);
+ static const uint16 kDebuglevel1 = (0);
+ static const uint16 kDebuglevel2 = (0);
+ static const uint16 kPlayback = (0);
+ static const uint16 kMap = (0);
+ static const uint16 kSettextdat = (0);
+ static const uint16 kSpanish = (0);
+ static const uint16 kFramedata = (0);
+ static const uint16 kRecording = (0);
+ static const uint16 kFlags = (0);
+ static const uint16 kGerman = (0);
+ static const uint16 kTextunder = (0);
+ static const uint16 kPathdata = (0);
+ static const uint16 kDemo = (0);
+ static const uint16 kExframedata = (0);
+ static const uint16 kIntextdat = (0);
+ static const uint16 kFreetextdat = (0);
+ static const uint16 kFrframedata = (0);
+ static const uint16 kSettext = (0+(130*2));
+ static const uint16 kOpeninvlist = (0+(228*13));
+ static const uint16 kRyaninvlist = (0+(228*13)+32);
+ static const uint16 kPointerback = (0+(228*13)+32+60);
+ static const uint16 kMapflags = (0+(228*13)+32+60+(32*32));
+ static const uint16 kStartpal = (0+(228*13)+32+60+(32*32)+(11*10*3));
+ static const uint16 kEndpal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768);
+ static const uint16 kMaingamepal = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768);
+ static const uint16 kSpritetable = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768);
+ static const uint16 kSetlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32));
+ static const uint16 kFreelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5));
+ static const uint16 kExlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5));
+ static const uint16 kPeoplelist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5));
+ static const uint16 kZoomspace = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5));
+ static const uint16 kPrintedlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40));
+ static const uint16 kListofchanges = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80));
+ static const uint16 kUndertimedtext = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4));
+ static const uint16 kRainlist = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30));
+ static const uint16 kInitialreelrouts = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64));
+ static const uint16 kInitialvars = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534);
+ static const uint16 kLengthofbuffer = (0+(228*13)+32+60+(32*32)+(11*10*3)+768+768+768+(32*32)+(128*5)+(80*5)+(100*5)+(12*5)+(46*40)+(5*80)+(250*4)+(256*30)+(6*64)+991-534+68-0);
+ static const uint16 kReellist = (0+(36*144));
+ static const uint16 kIntext = (0+(38*2));
+ static const uint16 kLengthofmap = (0+(66*60));
+ static const uint16 kFreetext = (0+(82*2));
+ static const uint16 kBlocktext = (0+(98*2));
+ static const uint16 kBlocks = (0+192);
+ static const uint16 kFrframes = (0+2080);
+ static const uint16 kExframes = (0+2080);
+ static const uint16 kFrames = (0+2080);
+ static const uint16 kExdata = (0+2080+30000);
+ static const uint16 kExtextdat = (0+2080+30000+(16*114));
+ static const uint16 kExtext = (0+2080+30000+(16*114)+((114+2)*2));
+ static const uint16 kLengthofextra = (0+2080+30000+(16*114)+((114+2)*2)+18000);
+ static const uint16 kPersontxtdat = (0+24);
+ static const uint16 kPersontext = (0+24+(1026*2));
+ static const uint16 kInputport = (0x63);
+ static const uint16 kForeign = (1);
+ static const uint16 kCd = (1);
+ static const uint16 kNumexobjects = (114);
+ static const uint16 kUndertextsizey = (13);
+ static const uint16 kZoomy = (132);
+ static const uint16 kFreedatlen = (16*80);
+ static const uint16 kExtextlen = (18000);
+ static const uint16 kLenofmapstore = (22*8*20*8);
+ static const uint16 kUndertextsizex = (228);
+ static const uint16 kNumchanges = (250);
+ static const uint16 kUndertimedysize = (30);
+ static const uint16 kExframeslen = (30000);
+ static const uint16 kTablesize = (32);
+ static const uint16 kScreenwidth = (320);
+ static const uint16 kKeypadx = (36+112);
+ static const uint16 kItempicsize = (44);
+ static const uint16 kDiaryy = (48+12);
+ static const uint16 kOpsy = (52);
+ static const uint16 kSymboly = (56);
+ static const uint16 kInventy = (58);
+ static const uint16 kMenuy = (60);
+ static const uint16 kOpsx = (60);
+ static const uint16 kMaplength = (60);
+ static const uint16 kHeaderlen = (6187-6091);
+ static const uint16 kSymbolx = (64);
+ static const uint16 kSetdatlen = (64*128);
+ static const uint16 kMapwidth = (66);
+ static const uint16 kTextstart = (66*2);
+ static const uint16 kMaplen = (66*60);
+ static const uint16 kDiaryx = (68+24);
+ static const uint16 kLengthofvars = (68-0);
+ static const uint16 kKeypady = (72);
+ static const uint16 kZoomx = (8);
+ static const uint16 kInventx = (80);
+ static const uint16 kMenux = (80+40);
+ static const uint16 kLenofreelrouts = (991-534);
void bothchannels();
void usewire();
void getnamepos();
- void drawitall();
+ void loadtemptext();
void clearstartpal();
void femalefan();
- void greyscalesum();
- void showgamereel();
+ //void showgamereel();
void identifyob();
void trysoundalloc();
void uselighter();
@@ -600,17 +1312,18 @@ public:
void startdmablock();
void useopenbox();
void clearbuffers();
+ //void getyad();
void neterror();
void storeit();
- void lockeddoorway();
+ //void lockeddoorway();
void isitworn();
- void putundertimed();
+ //void putundertimed();
void dumpmap();
- void multidump();
+ //void multidump();
void channel0only();
void worktoscreenm();
void removeemm();
- void mansatstill();
+ //void frameoutbh();
void getobtextstart();
void loadfolder();
void decide();
@@ -620,49 +1333,54 @@ public:
void readkey();
void louis();
void entrytexts();
- void getreelstart();
+ //void getreelstart();
void buttonenter();
void checkinput();
- void crosshair();
+ //void crosshair();
void bresenhams();
void getbackfromops();
- void frameoutv();
- void restoreall();
+ //void frameoutv();
+ void opensarters();
void screenupdate();
- void addlength();
- void usetimedtext();
+ //void addlength();
+ void wornerror();
void putundercentre();
void checkobjectsize();
- void commandonly();
- void adjustlen();
+ //void commandonly();
+ void titles();
void deallocatemem();
- void mainscreen();
+ void checkforemm();
void watchreel();
void showfolder();
void turnanypathoff();
void openfilefromc();
void gettime();
- void clearwork();
+ //void clearwork();
void loadtraveltext();
- void worktoscreen();
+ //void worktoscreen();
void getexpos();
void fadedos();
- void multiget();
+ //void fillspace();
+ void selectlocation();
+ //void multiget();
+ //void autosetwalk();
void fadeupmonfirst();
void drawfloor();
void loadkeypad();
- void findsource();
+ //void findsource();
void clearendpal();
void findtext1();
void isryanholding();
- void interupttest();
+ void showslots();
void usecashcard();
void usewall();
void opentomb();
+ //void findobname();
+ //void makename();
void buttonfour();
void animpointer();
- void lockmon();
- void dochange();
+ //void lockmon();
+ //void dochange();
void getanyaddir();
void showsaveops();
void intromonks1();
@@ -671,26 +1389,26 @@ public:
void showdiscops();
void advisor();
void additionaltext();
- void kernchars();
+ //void kernchars();
void othersmoker();
- void autosetwalk();
- void setuptimedtemp();
- void blocknametext();
+ void dofade();
+ //void setuptimedtemp();
+ //void blocknametext();
void useelevator5();
void useelevator4();
void useelevator1();
- void attendant();
+ //void findormake();
void useelevator3();
void useelevator2();
void buttonone();
void keyboardread();
- void deltextline();
+ //void deltextline();
void entercode();
void getopenedsize();
void getpersframe();
void doshake();
void resetkeyboard();
- void showpanel();
+ //void showpanel();
void soundstartup();
void slabdoora();
void fadeupyellows();
@@ -699,7 +1417,7 @@ public:
void slabdoore();
void slabdoord();
void adjustup();
- void readsetdata();
+ void slabdoorf();
void loadintotemp();
void loadintroroom();
void saveseg();
@@ -709,41 +1427,40 @@ public:
void watchcount();
void fadedownmon();
void loadcart();
- void splitintolines();
+ //void calcfrframe();
void bartender();
void eden();
void showdiary();
void purgealocation();
- void updatepeople();
- void slabdoorf();
+ //void updatepeople();
void addtopeoplelist();
void hangoncurs();
void sparkydrip();
- void modifychar();
void compare();
void printcurs();
- void convertkey();
+ //void convertkey();
void outofopen();
- void dealwithspecial();
+ //void dealwithspecial();
+ //void eraseoldobs();
void dircom();
- void liftsprite();
+ //void liftsprite();
void dumpkeypad();
void dumpzoom();
void endgameseq();
- void cancelch0();
+ //void cancelch0();
void setbotleft();
void findfirstpath();
- void showallfree();
+ //void cancelch1();
void loadold();
void loadtempcharset();
+ void showbyte();
void useslab();
- void aboutturn();
void usealtar();
void createpanel2();
void turnonpower();
void manasleep2();
void moretalk();
- void printslow();
+ //void printslow();
void loadroom();
void starttalk();
void delchar();
@@ -751,7 +1468,7 @@ public:
void endgame();
void monprint();
void usepipe();
- void startloading();
+ //void startloading();
void getunderzoom();
void candles();
void backobject();
@@ -759,7 +1476,7 @@ public:
void reminders();
void selectslot2();
void runtap();
- void domix();
+ //void domix();
void priesttext();
void paneltomap();
void obname();
@@ -771,13 +1488,12 @@ public:
void disablesoundint();
void checkifset();
void showallex();
- void showrain();
void openpoolboss();
void buttontwo();
- void fillopen();
+ //void usetimedtext();
void delsprite();
- void getroomspaths();
- void dumptextline();
+ //void getroomspaths();
+ //void dumptextline();
void fadescreendownhalf();
void useplate();
void candles1();
@@ -786,11 +1502,12 @@ public:
void isitdescribed();
void hotelbell();
void loadspeech();
- void cls();
- void printsprites();
- void dumptimedtext();
- void showallobs();
- void getnumber();
+ void interupttest();
+ //void cls();
+ //void printsprites();
+ //void checkifperson();
+ //void showallobs();
+ //void getnumber();
void adjustleft();
void calledenslift();
void useclearbox();
@@ -805,9 +1522,10 @@ public:
void showpcx();
void showdecisions();
void checkspeed();
- void printchar();
+ //void printchar();
void showkeypad();
void obtoinv();
+ //void getroomdata();
void removeobfrominv();
void usecoveredbox();
void openyourneighbour();
@@ -819,58 +1537,56 @@ public:
void usekey();
void locklighton();
void useladderb();
- void spriteupdate();
+ //void spriteupdate();
void usetempcharset();
void discops();
- void printdirect();
+ //void printdirect();
void delthisone();
- void makebackob();
+ //void makebackob();
void middlepanel();
void dumpwatch();
void saveload();
void monitorlogo();
void loadposition();
- void wornerror();
void entersymbol();
void showword();
void dirfile();
void setmode();
- void walktotext();
+ //void walktotext();
void pickupconts();
void locklightoff();
void wearwatch();
void runintroseq();
- void doblocks();
- void showbyte();
+ //void doblocks();
+ void restoreall();
void allpalette();
- void findormake();
+ void attendant();
void nextsymbol();
void monks2text();
- void poolguard();
void clearpalette();
void cantdrop();
void maptopanel();
- void calcmapad();
+ //void calcmapad();
void getridofall();
void copper();
void folderhints();
void openhoteldoor();
- void removesetobject();
- void checkifperson();
- void frameoutfx();
+ //void removesetobject();
+ //void dumptimedtext();
+ //void frameoutfx();
void blank();
void drinker();
void nextcolon();
void placefreeobject();
void delpointer();
- void loopchannel0();
+ //void loopchannel0();
void initrain();
void showleftpage();
void rockstar();
void adjustright();
void putunderzoom();
void vsync();
- void turnpathoff();
+ //void finishedwalking();
void findinvpos();
void usetext();
void hangonpq();
@@ -893,34 +1609,32 @@ public:
void chewy();
void accesslighton();
void dosreturn();
- void titles();
- void quickquit();
+ //void adjustlen();
+ //void quickquit();
void showpointer();
void usecooker();
void loadmenu();
- void checkforemm();
+ //void aboutturn();
void checkifpathison();
- void smallcandle();
+ //void finalframe();
void receptionist();
void selectslot();
- void edenscdplayer();
- void readoneblock();
+ void openfilenocheck();
+ //void readoneblock();
void fadeupmon();
void paltoendpal();
void fadetowhite();
- void textformonk();
void loadsavebox();
- void fadescreenup();
void soundend();
void redes();
void errormessage1();
void clearchanges();
void errormessage3();
- void deletetaken();
+ //void deletetaken();
void putundermenu();
void checkifex();
void intromagic2();
- void findobname();
+ void mainscreen();
void edeninbath();
void intromagic1();
void showdiarypage();
@@ -928,33 +1642,33 @@ public:
void getbacktoops();
void rollendcredits();
void intro1text();
- void getmapad();
+ void transfertoex();
void playchannel1();
void playchannel0();
void usemon();
void steady();
void pixelcheckset();
void reexfrominv();
- void fillspace();
+ void examinventory();
void talk();
void usedryer();
void dumpeverything();
void usehatch();
- void zoom();
+ //void zoom();
void outofinv();
void viewfolder();
- void walking();
+ //void walking();
void diarykeyp();
- void readabyte();
- void showframe();
+ //void readabyte();
+ //void showframe();
void random();
void obicons();
- void frameoutbh();
+ void mansatstill();
void channel1only();
void playguitar();
void lastfolder();
void transfermap();
- void showreelframe();
+ //void showreelframe();
void showmonk();
void diarykeyn();
void set16colpalette();
@@ -965,7 +1679,7 @@ public:
void madman();
void createpanel();
void turnpathon();
- void showmainops();
+ void enablesoundint();
void madmanstelly();
void constant();
void loadroomssample();
@@ -975,9 +1689,9 @@ public:
void getridofpit();
void convnum();
void nothelderror();
- void readheader();
+ //void readheader();
void getsetad();
- void getyad();
+ void textformonk();
void reconstruct();
void soldier1();
void getundercentre();
@@ -990,6 +1704,7 @@ public:
void powerlighton();
void savefilewrite();
void printmessage2();
+ //void showallfree();
void loadnews();
void rollem();
void makeworn();
@@ -1009,7 +1724,7 @@ public:
void checkbasemem();
void transfertext();
void searchforsame();
- void enablesoundint();
+ void showmainops();
void getback1();
void setlocation();
void fadefromwhite();
@@ -1020,9 +1735,9 @@ public:
void pitinterupt();
void deleverything();
void fadescreendown();
- void findxyfrompath();
+ //void findxyfrompath();
void namestoold();
- void getxad();
+ //void getxad();
void openinv();
void lookatplace();
void useaxe();
@@ -1034,30 +1749,29 @@ public:
void realcredits();
void handclap();
void smokebloke();
- void showexit();
- void printundermon();
+ void afterintroroom();
+ //void printundermon();
void buttonnine();
void findallopen();
void loadintotemp3();
void loadintotemp2();
void gamer();
- void personnametext();
- void quitsymbol();
+ void poolguard();
void readfromfile();
void initialinv();
- void showslots();
- void dofade();
+ void quitsymbol();
+ //void modifychar();
void hangon();
void settopright();
void findsetobject();
void singlekey();
- void seecommandtail();
- void getundertimed();
+ //void seecommandtail();
+ //void getundertimed();
void hangone();
void carparkdrip();
void usediary();
void deleteexobject();
- void frameoutnm();
+ //void frameoutnm();
void moneypoke();
void destselect();
void restoreems();
@@ -1067,23 +1781,24 @@ public:
void openlouis();
void buttonthree();
void getundermenu();
- void randomnumber();
+ //void randomnumber();
void lookatcard();
void helicopter();
void scrollmonitor();
void setsoundoff();
void setpickup();
+ //void doorway();
void dropobject();
- void printmessage();
+ void isitright();
void reexfromopen();
void fillryan();
- void loadtemptext();
+ void drawitall();
void usestereo();
void showcurrentfile();
- void copyname();
+ //void copyname();
void look();
void setmouse();
- void checkone();
+ //void checkone();
void transferinv();
void candles2();
void pickupob();
@@ -1092,38 +1807,39 @@ public:
void clearbeforeload();
void biblequote();
void doload();
- void afterintroroom();
+ void showexit();
void blockget();
void usetrainer();
- void allocatework();
+ //void allocatework();
void addtopresslist();
void walkandexamine();
void dmaend();
- void quickquit2();
+ //void quickquit2();
void twodigitnum();
- void madmantext();
+ //void madmantext();
void dumpcurrent();
void textforend();
void showdiarykeys();
void dontloadseg();
- void madmode();
+ //void madmode();
void intro3text();
void allocatemem();
void sortoutmap();
- void doorway();
+ //void showrain();
void useopened();
void inventory();
void powerlightoff();
- void getroomdata();
+ void fillopen();
void showoutermenu();
void signon();
void deleteextext();
void foghornsound();
void showrightpage();
- void openhoteldoor2();
+ void showloadops();
void examicon();
void showgun();
void switchryanon();
+ //void personnametext();
void louischair();
void saveems();
void locationpic();
@@ -1131,25 +1847,24 @@ public:
void dolook();
void opentvdoor();
void triggermessage();
- void finalframe();
- void plotreel();
+ void smallcandle();
+ //void plotreel();
void swapwithopen();
- void makesprite();
+ //void makesprite();
void dreamweb();
void droperror();
- void openfilenocheck();
+ void edenscdplayer();
void calledensdlift();
void checkinside();
void gates();
- void selectlocation();
+ void newgame();
void showwatch();
void turnanypathon();
void restorereels();
void setwalk();
- void printboth();
void useroutine();
void zoomicon();
- void hotelcontrol();
+ //void findlen();
void findpathofpoint();
void issetobonmap();
void getdestinfo();
@@ -1159,16 +1874,16 @@ public:
void grafittidoor();
void input();
void nextdest();
- void getdimension();
+ //void getdimension();
void makecaps();
void read();
void fadescreenups();
- void checkdest();
- void initman();
+ //void checkdest();
+ //void initman();
void loadpalfromiff();
- void facerightway();
+ //void facerightway();
void startup1();
- void findlen();
+ void hotelcontrol();
void showsymbol();
void mugger();
void atmospheres();
@@ -1177,12 +1892,12 @@ public:
void gettingshot();
void settopleft();
void searchforstring();
- void clearsprites();
+ //void clearsprites();
void obpicture();
void selectopenob();
- void widedoor();
+ //void widedoor();
void security();
- void printasprite();
+ //void printasprite();
void buttonfive();
void soundonreels();
void usegun();
@@ -1191,28 +1906,26 @@ public:
void readmouse4();
void openryan();
void readmouse1();
- void showman();
+ void readmouse3();
void readmouse2();
void newplace();
- void movemap();
+ //void movemap();
void loadsample();
void usecardreader1();
void usecardreader2();
void usecardreader3();
void tattooman();
void usehandle();
- void quitkey();
void openfile();
void usecharset1();
- void makenextblock();
+ //void makenextblock();
void showpuztext();
- void addalong();
- void width160();
+ //void addalong();
+ //void width160();
void incryanpage();
- void dodoor();
- void eraseoldobs();
+ //void dodoor();
+ void greyscalesum();
void buttoneight();
- void opensarters();
void findexobject();
void errormessage2();
void usechurchhole();
@@ -1221,7 +1934,7 @@ public:
void fadecalculation();
void waitframes();
void clearrest();
- void getreelframeax();
+ //void getreelframeax();
void barwoman();
void roomname();
void credits();
@@ -1235,13 +1948,13 @@ public:
void closefile();
void delcurs();
void randomaccess();
- void calcfrframe();
+ void splitintolines();
void intromagic3();
void initialmoncols();
void checkforshake();
void usebuttona();
- void cancelch1();
- void getnextword();
+ void fadescreenup();
+ //void getnextword();
void generalerror();
void actualload();
void allocateload();
@@ -1259,24 +1972,24 @@ public:
void usecontrol();
void buttonseven();
void redrawmainscrn();
- void finishedwalking();
+ void turnpathoff();
void findallryan();
- void channel0tran();
+ //void channel0tran();
void buttonpress();
- void parseblaster();
+ //void parseblaster();
void callhotellift();
void makemainscreen();
void intromonks2();
void usewinch();
void setbotright();
- void readmouse3();
+ void showman();
void showfirstuse();
void setupemm();
void usefullcart();
- void transfertoex();
+ //void getmapad();
void getlocation();
void geteitherad();
- void placesetobject();
+ //void placesetobject();
void drawflags();
void zoomonoff();
void updatesymboltop();
@@ -1297,12 +2010,12 @@ public:
void intro();
void hangonp();
void fadescreendowns();
- void showloadops();
+ void openhoteldoor2();
void getridoftempsp();
void scanfornames();
- void setallchanges();
- void newgame();
- void examinventory();
+ //void setallchanges();
+ void readsetdata();
+ //void printboth();
void standardload();
void undertextline();
void findroominloc();
@@ -1315,18 +2028,18 @@ public:
void dosometalk();
void usecart();
void intromusic();
- void makename();
+ void quitkey();
void processtrigger();
void monmessage();
void readdesticon();
void randomnum2();
void loadsecondsample();
void transfercontoex();
- void multiput();
- void isitright();
+ //void multiput();
+ void printmessage();
void businessman();
void switchryanoff();
- void commandwithob();
+ //void commandwithob();
void panelicons1();
void adjustdown();
void withwhat();
@@ -1338,7 +2051,7 @@ public:
void useobject();
void mainman();
void volumeadjust();
- void checkiffree();
+ //void checkiffree();
};
}
diff --git a/engines/dreamweb/dreamweb.cpp b/engines/dreamweb/dreamweb.cpp
index eebadfddae..19d1d84a51 100644
--- a/engines/dreamweb/dreamweb.cpp
+++ b/engines/dreamweb/dreamweb.cpp
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/dreamweb.cpp $
- * $Id: dreamweb.cpp 79 2011-06-05 08:26:54Z eriktorbjorn $
- *
*/
#include "common/config-manager.h"
@@ -113,14 +110,6 @@ void DreamWebEngine::processEvents() {
return;
}
- if (_enableSavingOrLoading && _loadSavefile >= 0 && _loadSavefile <= 6) {
- debug(1, "loading save state %d", _loadSavefile);
- _context.data.byte(_context.kCurrentslot) = _loadSavefile;
- _loadSavefile = -1;
- _context.loadposition();
- _context.data.byte(_context.kGetback) = 1;
- }
-
soundHandler();
Common::Event event;
int softKey, hardKey;
@@ -219,9 +208,9 @@ Common::Error DreamWebEngine::run() {
syncSoundSettings();
_console = new DreamWebConsole(this);
- _loadSavefile = Common::ConfigManager::instance().getInt("save_slot");
+ ConfMan.registerDefault("dreamweb_originalsaveload", "true");
- getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70, this, "dreamwebVSync");
_context.__start();
_context.data.byte(DreamGen::DreamGenContext::kQuitrequested) = 0;
@@ -234,7 +223,7 @@ void DreamWebEngine::setSpeed(uint speed) {
debug(0, "setting speed %u", speed);
_speed = speed;
getTimerManager()->removeTimerProc(vSyncInterrupt);
- getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70 / speed, this);
+ getTimerManager()->installTimerProc(vSyncInterrupt, 1000000 / 70 / speed, this, "dreamwebVSync");
}
void DreamWebEngine::openFile(const Common::String &name) {
@@ -474,6 +463,16 @@ void DreamWebEngine::playSound(uint8 channel, uint8 id, uint8 loops) {
_mixer->playStream(type, &_channelHandle[channel], stream);
}
+void DreamWebEngine::stopSound(uint8 channel) {
+ debug(1, "stopSound(%u)", channel);
+ assert(channel == 0 || channel == 1);
+ _mixer->stopHandle(_channelHandle[channel]);
+ if (channel == 0)
+ _channel0 = 0;
+ else
+ _channel1 = 0;
+}
+
bool DreamWebEngine::loadSpeech(const Common::String &filename) {
if (ConfMan.getBool("speech_mute"))
return false;
@@ -591,7 +590,7 @@ uint8 DreamWebEngine::modifyChar(uint8 c) const {
return 'Z' + 4;
case 154:
return 'Z' + 6;
- case 255:
+ case 225:
return 'A' - 1;
case 153:
return 'Z' + 5;
@@ -631,5 +630,3 @@ uint8 DreamWebEngine::modifyChar(uint8 c) const {
}
} // End of namespace DreamWeb
-
-
diff --git a/engines/dreamweb/dreamweb.h b/engines/dreamweb/dreamweb.h
index 7323cfe836..a7de64a350 100644
--- a/engines/dreamweb/dreamweb.h
+++ b/engines/dreamweb/dreamweb.h
@@ -18,9 +18,6 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL: https://svn.scummvm.org:4444/svn/dreamweb/dreamweb.h $
- * $Id: dreamweb.h 77 2011-05-18 14:26:43Z digitall $
- *
*/
#ifndef DREAMWEB_H
@@ -114,6 +111,8 @@ public:
Common::Language getLanguage() const { return _language; }
uint8 modifyChar(uint8 c) const;
+ void stopSound(uint8 channel);
+
private:
void keyPressed(uint16 ascii);
void setSpeed(uint speed);
@@ -130,7 +129,6 @@ private:
uint _speed;
bool _turbo;
uint _oldMouseState;
- int _loadSavefile;
bool _enableSavingOrLoading;
Common::Language _language;
diff --git a/engines/dreamweb/module.mk b/engines/dreamweb/module.mk
index 3b0c7f3325..bdacbe79f3 100644
--- a/engines/dreamweb/module.mk
+++ b/engines/dreamweb/module.mk
@@ -1,11 +1,17 @@
MODULE := engines/dreamweb
MODULE_OBJS := \
+ backdrop.o \
console.o \
detection.o \
dreamweb.o \
dreamgen.o \
- stubs.o
+ pathfind.o \
+ print.o \
+ saveload.o \
+ sprite.o \
+ stubs.o \
+ vgagrafx.o
# This module can be built as a plugin
ifeq ($(ENABLE_DREAMWEB), DYNAMIC_PLUGIN)
diff --git a/engines/dreamweb/pathfind.cpp b/engines/dreamweb/pathfind.cpp
new file mode 100644
index 0000000000..2579105c6f
--- /dev/null
+++ b/engines/dreamweb/pathfind.cpp
@@ -0,0 +1,106 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/util.h"
+#include "graphics/surface.h"
+#include "common/config-manager.h"
+
+namespace DreamGen {
+
+void DreamGenContext::turnpathonCPP(uint8 param) {
+ al = param;
+ push(es);
+ push(bx);
+ turnpathon();
+ bx = pop();
+ es = pop();
+}
+
+void DreamGenContext::turnpathoffCPP(uint8 param) {
+ al = param;
+ push(es);
+ push(bx);
+ turnpathoff();
+ bx = pop();
+ es = pop();
+}
+
+void DreamGenContext::getroomspaths() {
+ es = data.word(kReels);
+ bx = data.byte(kRoomnum) * 144;
+}
+
+uint8 *DreamGenContext::getroomspathsCPP() {
+ void *result = segRef(data.word(kReels)).ptr(data.byte(kRoomnum) * 144, 144);
+ return (uint8 *)result;
+}
+
+void DreamGenContext::autosetwalk() {
+ al = data.byte(kManspath);
+ if (data.byte(kFinaldest) == al)
+ return;
+ const uint8 *roomsPaths = getroomspathsCPP();
+ checkdest(roomsPaths);
+ data.word(kLinestartx) = roomsPaths[data.byte(kManspath) * 8 + 0] - 12;
+ data.word(kLinestarty) = roomsPaths[data.byte(kManspath) * 8 + 1] - 12;
+ data.word(kLineendx) = roomsPaths[data.byte(kDestination) * 8 + 0] - 12;
+ data.word(kLineendy) = roomsPaths[data.byte(kDestination) * 8 + 1] - 12;
+ bresenhams();
+ if (data.byte(kLinedirection) != 0) {
+ data.byte(kLinepointer) = data.byte(kLinelength) - 1;
+ data.byte(kLinedirection) = 1;
+ return;
+ }
+ data.byte(kLinepointer) = 0;
+}
+
+void DreamGenContext::checkdest(const uint8 *roomsPaths) {
+ const uint8 *p = roomsPaths + 12 * 8;
+ ah = data.byte(kManspath) << 4;
+ al = data.byte(kDestination);
+ uint8 destination = data.byte(kDestination);
+ for (size_t i = 0; i < 24; ++i) {
+ dh = p[0] & 0xf0;
+ dl = p[0] & 0x0f;
+ if (ax == dx) {
+ data.byte(kDestination) = p[1] & 0x0f;
+ return;
+ }
+ dl = (p[0] & 0xf0) >> 4;
+ dh = (p[0] & 0x0f) << 4;
+ if (ax == dx) {
+ destination = p[1] & 0x0f;
+ }
+ p += 2;
+ }
+ data.byte(kDestination) = destination;
+}
+
+void DreamGenContext::findxyfrompath() {
+ const uint8 *roomsPaths = getroomspathsCPP();
+ data.byte(kRyanx) = roomsPaths[data.byte(kManspath) * 8 + 0] - 12;
+ data.byte(kRyany) = roomsPaths[data.byte(kManspath) * 8 + 1] - 12;
+}
+
+} /*namespace dreamgen */
+
diff --git a/engines/dreamweb/print.cpp b/engines/dreamweb/print.cpp
new file mode 100644
index 0000000000..26084c35d1
--- /dev/null
+++ b/engines/dreamweb/print.cpp
@@ -0,0 +1,224 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/util.h"
+#include "graphics/surface.h"
+
+namespace DreamGen {
+
+void DreamGenContext::printboth(const Frame *charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar) {
+ uint16 newX = *x;
+ uint8 width, height;
+ printchar(charSet, &newX, y, c, nextChar, &width, &height);
+ multidump(*x, y, width, height);
+ *x = newX;
+}
+
+uint8 DreamGenContext::getnextword(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount) {
+ *totalWidth = 0;
+ *charCount = 0;
+ while(true) {
+ uint8 firstChar = *string;
+ ++string;
+ ++*charCount;
+ if ((firstChar == ':') || (firstChar == 0)) { //endall
+ *totalWidth += 6;
+ return 1;
+ }
+ if (firstChar == 32) { //endword
+ *totalWidth += 6;
+ return 0;
+ }
+ firstChar = engine->modifyChar(firstChar);
+ if (firstChar != 255) {
+ uint8 secondChar = *string;
+ uint8 width = charSet[firstChar - 32 + data.word(kCharshift)].width;
+ width = kernchars(firstChar, secondChar, width);
+ *totalWidth += width;
+ }
+ }
+}
+
+void DreamGenContext::printchar() {
+ uint16 x = di;
+ uint8 width, height;
+ printchar((const Frame *)ds.ptr(0, 0), &x, bx, al, ah, &width, &height);
+ di = x;
+ cl = width;
+ ch = height;
+}
+
+void DreamGenContext::printchar(const Frame *charSet, uint16* x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height) {
+ if (c == 255)
+ return;
+ push(si);
+ push(di);
+ if (data.byte(kForeignrelease) != 0)
+ y -= 3;
+ uint16 tmp = c - 32 + data.word(kCharshift);
+ showframe(charSet, *x, y, tmp & 0x1ff, (tmp >> 8) & 0xfe, width, height);
+ di = pop();
+ si = pop();
+ _cmp(data.byte(kKerning), 0);
+ if (flags.z())
+ *width = kernchars(c, nextChar, *width);
+ (*x) += *width;
+}
+
+void DreamGenContext::printslow() {
+ al = printslow(es.ptr(si, 0), di, bx, dl, (bool)(dl & 1));
+}
+
+uint8 DreamGenContext::printslow(const uint8 *string, uint16 x, uint16 y, uint8 maxWidth, bool centered) {
+ data.byte(kPointerframe) = 1;
+ data.byte(kPointermode) = 3;
+ const Frame* charSet = (const Frame *)segRef(data.word(kCharset1)).ptr(0, 0);
+ do {
+ uint16 offset = x;
+ uint16 charCount = getnumber(charSet, string, maxWidth, centered, &offset);
+ do {
+ uint8 c0 = string[0];
+ uint8 c1 = string[1];
+ uint8 c2 = string[2];
+ c0 = engine->modifyChar(c0);
+ printboth(charSet, &offset, y, c0, c1);
+ if ((c1 == 0) || (c1 == ':')) {
+ return 0;
+ }
+ if (charCount != 1) {
+ c1 = engine->modifyChar(c1);
+ data.word(kCharshift) = 91;
+ uint16 offset2 = offset;
+ printboth(charSet, &offset2, y, c1, c2);
+ data.word(kCharshift) = 0;
+ for (int i=0; i<2; ++i) {
+ waitframes();
+ if (ax == 0)
+ continue;
+ if (ax != data.word(kOldbutton)) {
+ return 1;
+ }
+ }
+ }
+
+ ++string;
+ --charCount;
+ } while (charCount);
+ y += 10;
+ } while (true);
+}
+
+void DreamGenContext::printdirect() {
+ uint16 y = bx;
+ uint16 initialSi = si;
+ const uint8 *initialString = es.ptr(si, 0);
+ const uint8 *string = initialString;
+ printdirect(&string, di, &y, dl, (bool)(dl & 1));
+ si = initialSi + (string - initialString);
+ bx = y;
+}
+
+void DreamGenContext::printdirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered) {
+ data.word(kLastxpos) = x;
+ const Frame *charSet = (const Frame *)segRef(data.word(kCurrentset)).ptr(0, 0);
+ while (true) {
+ uint16 offset = x;
+ uint8 charCount = getnumber(charSet, *string, maxWidth, centered, &offset);
+ uint16 i = offset;
+ do {
+ uint8 c = (*string)[0];
+ uint8 nextChar = (*string)[1];
+ ++(*string);
+ if ((c == 0) || (c == ':')) {
+ return;
+ }
+ c = engine->modifyChar(c);
+ uint8 width, height;
+ printchar(charSet, &i, *y, c, nextChar, &width, &height);
+ data.word(kLastxpos) = i;
+ --charCount;
+ } while(charCount);
+ *y += data.word(kLinespacing);
+ }
+}
+
+void DreamGenContext::getnumber() {
+ uint16 offset = di;
+ cl = getnumber((Frame *)ds.ptr(0, 0), es.ptr(si, 0), dl, (bool)(dl & 1), &offset);
+ di = offset;
+}
+
+uint8 DreamGenContext::getnumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16* offset) {
+ uint8 totalWidth = 0;
+ uint8 charCount = 0;
+ while (true) {
+ uint8 wordTotalWidth, wordCharCount;
+ uint8 done = getnextword(charSet, string, &wordTotalWidth, &wordCharCount);
+ string += wordCharCount;
+
+ if (done == 1) { //endoftext
+ ax = totalWidth + wordTotalWidth - 10;
+ if (ax < maxWidth) {
+ totalWidth += wordTotalWidth;
+ charCount += wordCharCount;
+ }
+
+ if (centered) {
+ ax = (maxWidth & 0xfe) + 2 + 20 - totalWidth;
+ ax /= 2;
+ } else {
+ ax = 0;
+ }
+ *offset += ax;
+ return charCount;
+ }
+ ax = totalWidth + wordTotalWidth - 10;
+ if (ax >= maxWidth) { //gotoverend
+ if (centered) {
+ ax = (maxWidth & 0xfe) - totalWidth + 20;
+ ax /= 2;
+ } else {
+ ax = 0;
+ }
+ *offset += ax;
+ return charCount;
+ }
+ totalWidth += wordTotalWidth;
+ charCount += wordCharCount;
+ }
+}
+
+uint8 DreamGenContext::kernchars(uint8 firstChar, uint8 secondChar, uint8 width) {
+ if ((firstChar == 'a') || (al == 'u')) {
+ if ((secondChar == 'n') || (secondChar == 't') || (secondChar == 'r') || (secondChar == 'i') || (secondChar == 'l'))
+ return width-1;
+ }
+ return width;
+}
+
+void DreamGenContext::kernchars() {
+ cl = kernchars(al, ah, cl);
+}
+
+} /*namespace dreamgen */
+
diff --git a/engines/dreamweb/runtime.h b/engines/dreamweb/runtime.h
index a97ea2cf3d..8aa71b285c 100644
--- a/engines/dreamweb/runtime.h
+++ b/engines/dreamweb/runtime.h
@@ -1,5 +1,27 @@
-#ifndef ENGINES_DREAMGEN_RUNTIME_H__
-#define ENGINES_DREAMGEN_RUNTIME_H__
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef DREAMGEN_RUNTIME_H__
+#define DREAMGEN_RUNTIME_H__
#include <assert.h>
#include "common/scummsys.h"
@@ -111,7 +133,7 @@ struct Segment {
return WordRef(data, index);
}
- inline uint8* ptr(unsigned index, unsigned size) {
+ inline uint8 *ptr(unsigned index, unsigned size) {
assert(index + size <= data.size());
return data.begin() + index;
}
@@ -164,7 +186,7 @@ public:
_segment->assign(b, e);
}
- inline uint8* ptr(unsigned index, unsigned size) {
+ inline uint8 *ptr(unsigned index, unsigned size) {
assert(_segment != 0);
return _segment->ptr(index, size);
}
@@ -265,6 +287,12 @@ public:
_freeSegments.push_back(id);
}
+ SegmentRef segRef(uint16 seg) {
+ SegmentRef result(this);
+ result = seg;
+ return result;
+ }
+
inline void _cmp(uint8 a, uint8 b) {
_sub(a, b);
}
@@ -465,7 +493,7 @@ public:
inline void _movsb(uint size, bool clear_cx = false) {
assert(size != 0xffff);
//fixme: add overlap and segment boundary check and rewrite
- while(size--)
+ while (size--)
_movsb();
if (clear_cx)
cx = 0;
@@ -503,7 +531,7 @@ public:
assert(size != 0xffff);
uint8 *dst = es.ptr(di, size * 2);
di += 2 * size;
- while(size--) {
+ while (size--) {
*dst++ = al;
*dst++ = ah;
}
@@ -558,4 +586,3 @@ public:
}
#endif
-
diff --git a/engines/dreamweb/saveload.cpp b/engines/dreamweb/saveload.cpp
new file mode 100644
index 0000000000..636182dc83
--- /dev/null
+++ b/engines/dreamweb/saveload.cpp
@@ -0,0 +1,343 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/metaengine.h"
+#include "gui/saveload.h"
+#include "common/config-manager.h"
+#include "common/translation.h"
+
+namespace DreamGen {
+
+void DreamGenContext::loadgame() {
+ STACK_CHECK;
+ if (data.byte(kCommandtype) != 246) {
+ data.byte(kCommandtype) = 246;
+ al = 41;
+ commandonly();
+ }
+ if (data.word(kMousebutton) == data.word(kOldbutton))
+ return; // "noload"
+ if (data.word(kMousebutton) == 1) {
+ ax = 0xFFFF;
+ doload();
+ }
+}
+
+// input: ax = savegameId
+// if -1, open menu to ask for slot to load
+// if >= 0, directly load from that slot
+void DreamGenContext::doload() {
+ STACK_CHECK;
+ int savegameId = (int16)ax;
+
+ data.byte(kLoadingorsave) = 1;
+
+ if (ConfMan.getBool("dreamweb_originalsaveload") && savegameId == -1) {
+ showopbox();
+ showloadops();
+ data.byte(kCurrentslot) = 0;
+ showslots();
+ shownames();
+ data.byte(kPointerframe) = 0;
+ worktoscreenm();
+ namestoold();
+ data.byte(kGetback) = 0;
+
+ while (true) {
+ if (data.byte(kQuitrequested))
+ return; // "quitloaded"
+ delpointer();
+ readmouse();
+ showpointer();
+ vsync();
+ dumppointer();
+ dumptextline();
+ bx = offset_loadlist;
+ checkcoords();
+ if (data.byte(kGetback) == 1)
+ break;
+ if (data.byte(kGetback) == 2)
+ return; // "quitloaded"
+ }
+ } else {
+
+ if (savegameId == -1) {
+ // Open dialog to get savegameId
+
+ const EnginePlugin *plugin = NULL;
+ Common::String gameId = ConfMan.get("gameid");
+ EngineMan.findGame(gameId, &plugin);
+ GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Restore game:"), _("Restore"));
+ dialog->setSaveMode(false);
+ savegameId = dialog->runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
+ delete dialog;
+ }
+
+ if (savegameId < 0) {
+ data.byte(kGetback) = 0;
+ return;
+ }
+
+
+ // TODO: proper scheme for filename, in a separate function
+ //Common::String filename = ConfMan.getActiveDomainName() + Common::String::format(".d%02d", savegameId);
+ Common::String filename = Common::String::format("DREAMWEB.D%02d", savegameId);
+ debug(1, "Loading from filename: %s", filename.c_str());
+ engine->openSaveFileForReading(filename);
+
+ // TODO: The below is duplicated from Loadposition
+ data.word(kTimecount) = 0;
+ clearchanges();
+
+ ds = cs;
+ dx = kFileheader;
+ cx = kHeaderlen;
+ savefileread();
+ es = cs;
+ di = kFiledata;
+ ax = savegameId;
+ if (savegameId < 7) {
+ cx = 17;
+ _mul(cx);
+ ds = data;
+ dx = kSavenames;
+ _add(dx, ax);
+ loadseg();
+ } else {
+ // For potential support of more than 7 savegame slots,
+ // loading into the savenames buffer isn't always possible
+ // Emulate a loadseg call:
+ uint8 namebuf[17];
+ engine->readFromFile(namebuf, 17);
+ _add(di, 2);
+ }
+ ds = data;
+ dx = kStartvars;
+ loadseg();
+ ds = data.word(kExtras);
+ dx = kExframedata;
+ loadseg();
+ ds = data.word(kBuffers);
+ dx = kListofchanges;
+ loadseg();
+ ds = data;
+ dx = kMadeuproomdat;
+ loadseg();
+ ds = cs;
+ dx = kReelroutines;
+ loadseg();
+ closefile();
+ data.byte(kGetback) = 1;
+ }
+
+ // kTempgraphics might not have been allocated if we bypassed all menus
+ if (data.word(kTempgraphics) != 0xFFFF)
+ getridoftemp();
+
+ dx = data;
+ es = dx;
+ bx = kMadeuproomdat;
+ startloading();
+ loadroomssample();
+ data.byte(kRoomloaded) = 1;
+ data.byte(kNewlocation) = 255;
+ clearsprites();
+ initman();
+ initrain();
+ data.word(kTextaddressx) = 13;
+ data.word(kTextaddressy) = 182;
+ data.byte(kTextlen) = 240;
+ startup();
+ worktoscreen();
+ data.byte(kGetback) = 4;
+}
+
+
+void DreamGenContext::savegame() {
+ STACK_CHECK;
+ if (data.byte(kMandead) == 2) {
+ blank();
+ return;
+ }
+
+ if (data.byte(kCommandtype) != 247) {
+ data.byte(kCommandtype) = 247;
+ al = 44;
+ commandonly();
+ }
+ if (data.word(kMousebutton) != 1)
+ return;
+
+ data.byte(kLoadingorsave) = 2;
+
+ if (ConfMan.getBool("dreamweb_originalsaveload")) {
+ showopbox();
+ showsaveops();
+ data.byte(kCurrentslot) = 0;
+ showslots();
+ shownames();
+ worktoscreenm();
+ namestoold();
+ data.word(kBufferin) = 0;
+ data.word(kBufferout) = 0;
+ data.byte(kGetback) = 0;
+
+ while (true) {
+ _cmp(data.byte(kQuitrequested), 0);
+ if (!flags.z())
+ return /* (quitsavegame) */;
+ delpointer();
+ checkinput();
+ readmouse();
+ showpointer();
+ vsync();
+ dumppointer();
+ dumptextline();
+ bx = offset_savelist;
+ checkcoords();
+ _cmp(data.byte(kGetback), 0);
+ if (flags.z())
+ continue;
+ break;
+ }
+ return;
+ } else {
+ const EnginePlugin *plugin = NULL;
+ Common::String gameId = ConfMan.get("gameid");
+ EngineMan.findGame(gameId, &plugin);
+ GUI::SaveLoadChooser *dialog = new GUI::SaveLoadChooser(_("Save game:"), _("Save"));
+ dialog->setSaveMode(true);
+ int savegameId = dialog->runModalWithPluginAndTarget(plugin, ConfMan.getActiveDomainName());
+ Common::String game_description = dialog->getResultString();
+ if (game_description.empty())
+ game_description = "Untitled";
+ delete dialog;
+
+ if (savegameId < 0) {
+ data.byte(kGetback) = 0;
+ return;
+ }
+
+ // TODO: The below is copied from actualsave
+ al = data.byte(kLocation);
+ ah = 0;
+ cx = 32;
+ _mul(cx);
+ ds = cs;
+ si = kRoomdata;
+ _add(si, ax);
+ di = kMadeuproomdat;
+ bx = di;
+ es = cs;
+ cx = 16;
+ _movsw(cx, true);
+ al = data.byte(kRoomssample);
+ es.byte(bx+13) = al;
+ al = data.byte(kMapx);
+ es.byte(bx+15) = al;
+ al = data.byte(kMapy);
+ es.byte(bx+16) = al;
+ al = data.byte(kLiftflag);
+ es.byte(bx+20) = al;
+ al = data.byte(kManspath);
+ es.byte(bx+21) = al;
+ al = data.byte(kFacing);
+ es.byte(bx+22) = al;
+ al = 255;
+ es.byte(bx+27) = al;
+
+ // TODO: The below is copied from saveposition
+ makeheader();
+
+ //Common::String filename = ConfMan.getActiveDomainName() + Common::String::format(".d%02d", savegameId);
+ Common::String filename = Common::String::format("DREAMWEB.D%02d", savegameId);
+ debug(1, "Saving to filename: %s (%s)", filename.c_str(), game_description.c_str());
+
+ engine->openSaveFileForWriting(filename.c_str());
+
+ dx = data;
+ ds = dx;
+ dx = kFileheader;
+ cx = kHeaderlen;
+ savefilewrite();
+ dx = data;
+ es = dx;
+ di = kFiledata;
+
+ // TODO: Check if this 2 is a constant
+ uint8 descbuf[17] = { 2, 0 };
+ strncpy((char*)descbuf+1, game_description.c_str(), 16);
+ unsigned int desclen = game_description.size();
+ if (desclen > 15)
+ desclen = 15;
+ // zero terminate, and pad with ones
+ descbuf[++desclen] = 0;
+ while (desclen < 17)
+ descbuf[++desclen] = 1;
+ if (savegameId < 7) {
+ ax = savegameId;
+ cx = 17;
+ _mul(cx);
+ ds = data;
+ dx = kSavenames;
+ _add(dx, ax);
+ memcpy(data.ptr(dx,17), descbuf, 17);
+ saveseg();
+ } else {
+ // savenames only has room for descriptions for 7 slots
+ uint16 len = es.word(di);
+ _add(di, 2);
+ assert(len == 17);
+ engine->writeToSaveFile(descbuf, len);
+ }
+
+ ds = data;
+ dx = kStartvars;
+ saveseg();
+ ds = data.word(kExtras);
+ dx = kExframedata;
+ saveseg();
+ ds = data.word(kBuffers);
+ dx = kListofchanges;
+ saveseg();
+ ds = data;
+ dx = kMadeuproomdat;
+ saveseg();
+ ds = data;
+ dx = kReelroutines;
+ saveseg();
+ closefile();
+
+ getridoftemp();
+ restoreall();
+ data.word(kTextaddressx) = 13;
+ data.word(kTextaddressy) = 182;
+ data.byte(kTextlen) = 240;
+ redrawmainscrn();
+ worktoscreenm();
+ data.byte(kGetback) = 4;
+ }
+}
+
+
+} /*namespace dreamgen */
diff --git a/engines/dreamweb/sprite.cpp b/engines/dreamweb/sprite.cpp
new file mode 100644
index 0000000000..e9a40d7f8c
--- /dev/null
+++ b/engines/dreamweb/sprite.cpp
@@ -0,0 +1,893 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/util.h"
+#include "graphics/surface.h"
+
+namespace DreamGen {
+
+Sprite *DreamGenContext::spritetable() {
+ Sprite *sprite = (Sprite *)segRef(data.word(kBuffers)).ptr(kSpritetable, 16 * sizeof(Sprite));
+ return sprite;
+}
+
+void DreamGenContext::printsprites() {
+ for (size_t priority = 0; priority < 7; ++priority) {
+ Sprite *sprites = spritetable();
+ for (size_t j = 0; j < 16; ++j) {
+ const Sprite &sprite = sprites[j];
+ if (sprite.updateCallback() == 0x0ffff)
+ continue;
+ if (priority != sprite.priority)
+ continue;
+ if (sprite.hidden == 1)
+ continue;
+ printasprite(&sprite);
+ }
+ }
+}
+
+void DreamGenContext::printasprite(const Sprite *sprite) {
+ uint16 x, y;
+ if (sprite->y >= 220) {
+ y = data.word(kMapady) - (256 - sprite->y);
+ } else {
+ y = sprite->y + data.word(kMapady);
+ }
+
+ if (sprite->x >= 220) {
+ x = data.word(kMapadx) - (256 - sprite->x);
+ } else {
+ x = sprite->x + data.word(kMapadx);
+ }
+
+ uint8 c;
+ if (sprite->b29 != 0)
+ c = 8;
+ else
+ c = 0;
+ showframe((const Frame *)segRef(sprite->frameData()).ptr(0, 0), x, y, sprite->b15, c);
+}
+
+void DreamGenContext::clearsprites() {
+ memset(spritetable(), 0xff, sizeof(Sprite) * 16);
+}
+
+Sprite *DreamGenContext::makesprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi) {
+ Sprite *sprite = spritetable();
+ while (sprite->b15 != 0xff) { // NB: No boundchecking in the original code either
+ ++sprite;
+ }
+
+ sprite->setUpdateCallback(updateCallback);
+ sprite->x = x;
+ sprite->y = y;
+ sprite->setFrameData(frameData);
+ WRITE_LE_UINT16(&sprite->w8, somethingInDi);
+ sprite->w2 = 0xffff;
+ sprite->b15 = 0;
+ sprite->delay = 0;
+ return sprite;
+}
+
+void DreamGenContext::makesprite() { // NB: returns new sprite in es:bx
+ Sprite *sprite = makesprite(si & 0xff, si >> 8, cx, dx, di);
+
+ // Recover es:bx from sprite
+ es = data.word(kBuffers);
+ bx = kSpritetable;
+ Sprite *sprites = (Sprite *)es.ptr(bx, sizeof(Sprite) * 16);
+ bx += sizeof(Sprite) * (sprite - sprites);
+ //
+}
+
+void DreamGenContext::spriteupdate() {
+ Sprite *sprites = spritetable();
+ sprites[0].hidden = data.byte(kRyanon);
+
+ Sprite *sprite = sprites;
+ for (size_t i=0; i < 16; ++i) {
+ uint16 updateCallback = sprite->updateCallback();
+ if (updateCallback != 0xffff) {
+ sprite->w24 = sprite->w2;
+ if (updateCallback == addr_mainman) // NB : Let's consider the callback as an enum while more code is not ported to C++
+ mainman(sprite);
+ else {
+ assert(updateCallback == addr_backobject);
+ backobject(sprite);
+ }
+ }
+
+ if (data.byte(kNowinnewroom) == 1)
+ break;
+ ++sprite;
+ }
+}
+
+void DreamGenContext::initman() {
+ Sprite *sprite = makesprite(data.byte(kRyanx), data.byte(kRyany), addr_mainman, data.word(kMainsprites), 0);
+ sprite->priority = 4;
+ sprite->b22 = 0;
+ sprite->b29 = 0;
+}
+
+void DreamGenContext::mainman() {
+ assert(false);
+}
+
+void DreamGenContext::mainman(Sprite *sprite) {
+ push(es);
+ push(ds);
+
+ // Recover es:bx from sprite
+ es = data.word(kBuffers);
+ bx = kSpritetable;
+ Sprite *sprites = (Sprite *)es.ptr(bx, sizeof(Sprite) * 16);
+ bx += 32 * (sprite - sprites);
+ //
+
+ if (data.byte(kResetmanxy) == 1) {
+ data.byte(kResetmanxy) = 0;
+ sprite->x = data.byte(kRyanx);
+ sprite->y = data.byte(kRyany);
+ sprite->b29 = 0;
+ }
+ --sprite->b22;
+ if (sprite->b22 != 0xff) {
+ ds = pop();
+ es = pop();
+ return;
+ }
+ sprite->b22 = 0;
+ if (data.byte(kTurntoface) != data.byte(kFacing)) {
+ aboutturn(sprite);
+ } else {
+ if ((data.byte(kTurndirection) != 0) && (data.byte(kLinepointer) == 254)) {
+ data.byte(kReasseschanges) = 1;
+ if (data.byte(kFacing) == data.byte(kLeavedirection))
+ checkforexit();
+ }
+ data.byte(kTurndirection) = 0;
+ if (data.byte(kLinepointer) == 254) {
+ sprite->b29 = 0;
+ } else {
+ ++sprite->b29;
+ if (sprite->b29 == 11)
+ sprite->b29 = 1;
+ walking(sprite);
+ if (data.byte(kLinepointer) != 254) {
+ if ((data.byte(kFacing) & 1) == 0)
+ walking(sprite);
+ else if ((sprite->b29 != 2) && (sprite->b29 != 7))
+ walking(sprite);
+ }
+ if (data.byte(kLinepointer) == 254) {
+ if (data.byte(kTurntoface) == data.byte(kFacing)) {
+ data.byte(kReasseschanges) = 1;
+ if (data.byte(kFacing) == data.byte(kLeavedirection))
+ checkforexit();
+ }
+ }
+ }
+ }
+ static const uint8 facelist[] = { 0,60,33,71,11,82,22,93 };
+ sprite->b15 = sprite->b29 + facelist[data.byte(kFacing)];
+ data.byte(kRyanx) = sprite->x;
+ data.byte(kRyany) = sprite->y;
+
+ ds = pop();
+ es = pop();
+}
+
+void DreamGenContext::walking(Sprite *sprite) {
+ uint8 comp;
+ if (data.byte(kLinedirection) != 0) {
+ --data.byte(kLinepointer);
+ comp = 200;
+ } else {
+ ++data.byte(kLinepointer);
+ comp = data.byte(kLinelength);
+ }
+ if (data.byte(kLinepointer) < comp) {
+ sprite->x = data.byte(kLinedata + data.byte(kLinepointer) * 2 + 0);
+ sprite->y = data.byte(kLinedata + data.byte(kLinepointer) * 2 + 1);
+ return;
+ }
+
+ data.byte(kLinepointer) = 254;
+ data.byte(kManspath) = data.byte(kDestination);
+ if (data.byte(kDestination) == data.byte(kFinaldest)) {
+ facerightway();
+ return;
+ }
+ data.byte(kDestination) = data.byte(kFinaldest);
+ push(es);
+ push(bx);
+ autosetwalk();
+ bx = pop();
+ es = pop();
+}
+
+void DreamGenContext::aboutturn(Sprite *sprite) {
+ bool incdir = true;
+
+ if (data.byte(kTurndirection) == 1)
+ incdir = true;
+ else if ((int8)data.byte(kTurndirection) == -1)
+ incdir = false;
+ else {
+ if (data.byte(kFacing) < data.byte(kTurntoface)) {
+ uint8 delta = data.byte(kTurntoface) - data.byte(kFacing);
+ if (delta >= 4)
+ incdir = false;
+ else
+ incdir = true;
+ } else {
+ uint8 delta = data.byte(kFacing) - data.byte(kTurntoface);
+ if (delta >= 4)
+ incdir = true;
+ else
+ incdir = false;
+ }
+ }
+
+ if (incdir) {
+ data.byte(kTurndirection) = 1;
+ data.byte(kFacing) = (data.byte(kFacing) + 1) & 7;
+ sprite->b29 = 0;
+ } else {
+ data.byte(kTurndirection) = -1;
+ data.byte(kFacing) = (data.byte(kFacing) - 1) & 7;
+ sprite->b29 = 0;
+ }
+}
+
+void DreamGenContext::backobject() {
+ assert(false);
+}
+
+void DreamGenContext::backobject(Sprite *sprite) {
+ ObjData *objData = (ObjData *)segRef(data.word(kSetdat)).ptr(sprite->objData(), 0);
+
+ if (sprite->delay != 0) {
+ --sprite->delay;
+ return;
+ }
+
+ sprite->delay = objData->delay;
+ if (objData->type == 6)
+ widedoor(sprite, objData);
+ else if (objData->type == 5)
+ random(sprite, objData);
+ else if (objData->type == 4)
+ lockeddoorway(sprite, objData);
+ else if (objData->type == 3)
+ liftsprite(sprite, objData);
+ else if (objData->type == 2)
+ doorway(sprite, objData);
+ else if (objData->type == 1)
+ constant(sprite, objData);
+ else
+ steady(sprite, objData);
+}
+
+void DreamGenContext::constant(Sprite *sprite, ObjData *objData) {
+ ++sprite->frame;
+ if (objData->b18[sprite->frame] == 255) {
+ sprite->frame = 0;
+ }
+ uint8 b18 = objData->b18[sprite->frame];
+ objData->b17 = b18;
+ sprite->b15 = b18;
+}
+
+void DreamGenContext::random(Sprite *sprite, ObjData *objData) {
+ randomnum1();
+ uint16 r = ax;
+ sprite->b15 = objData->b18[r&7];
+}
+
+void DreamGenContext::doorway(Sprite *sprite, ObjData *objData) {
+ data.byte(kDoorcheck1) = -24;
+ data.byte(kDoorcheck2) = 10;
+ data.byte(kDoorcheck3) = -30;
+ data.byte(kDoorcheck4) = 10;
+ dodoor(sprite, objData);
+}
+
+void DreamGenContext::widedoor(Sprite *sprite, ObjData *objData) {
+ data.byte(kDoorcheck1) = -24;
+ data.byte(kDoorcheck2) = 24;
+ data.byte(kDoorcheck3) = -30;
+ data.byte(kDoorcheck4) = 24;
+ dodoor(sprite, objData);
+}
+
+void DreamGenContext::dodoor() {
+ Sprite *sprite = (Sprite *)es.ptr(bx, sizeof(Sprite));
+ ObjData *objData = (ObjData *)ds.ptr(di, 0);
+ dodoor(sprite, objData);
+}
+
+void DreamGenContext::dodoor(Sprite *sprite, ObjData *objData) {
+ uint8 ryanx = data.byte(kRyanx);
+ uint8 ryany = data.byte(kRyany);
+ if (ryanx < sprite->x) {
+ if (ryanx < sprite->x + (int8)data.byte(kDoorcheck1))
+ goto shutdoor;
+ } else {
+ if (ryanx >= sprite->x + data.byte(kDoorcheck2))
+ goto shutdoor;
+ }
+ if (ryany < sprite->y) {
+ if (ryany < sprite->y + (int8)data.byte(kDoorcheck3))
+ goto shutdoor;
+ } else {
+ if (ryany >= sprite->y + data.byte(kDoorcheck4))
+ goto shutdoor;
+ }
+//opendoor:
+ if ((data.byte(kThroughdoor) == 1) && (sprite->frame == 0))
+ sprite->frame = 6;
+
+ ++sprite->frame;
+ if (sprite->frame == 1) { //doorsound2
+ if (data.byte(kReallocation) == 5) //hoteldoor2
+ al = 13;
+ else
+ al = 0;
+ playchannel1();
+ }
+ if (objData->b18[sprite->frame] == 255) {
+ --sprite->frame;
+ }
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ data.byte(kThroughdoor) = 1;
+ return;
+shutdoor:
+ if (sprite->frame == 5) { //doorsound1;
+ if (data.byte(kReallocation) == 5) //hoteldoor1
+ al = 13;
+ else
+ al = 1;
+ playchannel1();
+ }
+ if (sprite->frame != 0) {
+ --sprite->frame;
+ }
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ if (sprite->frame == 5) //nearly
+ data.byte(kThroughdoor) = 0;
+}
+
+void DreamGenContext::steady(Sprite *sprite, ObjData *objData) {
+ uint8 b18 = objData->b18[0];
+ objData->b17 = b18;
+ sprite->b15 = b18;
+}
+
+void DreamGenContext::lockeddoorway(Sprite *sprite, ObjData *objData) {
+ if (data.byte(kRyanx) < sprite->x) {
+ if (sprite->x - data.byte(kRyanx) > 24)
+ goto shutdoor2;
+ } else {
+ if (data.byte(kRyanx) - sprite->x >= 10)
+ goto shutdoor2;
+ }
+
+ if (data.byte(kRyany) < sprite->y) {
+ if (sprite->y - data.byte(kRyany) > 30)
+ goto shutdoor2;
+ } else {
+ if (data.byte(kRyany) - sprite->y >= 12)
+ goto shutdoor2;
+ }
+
+ if (data.byte(kThroughdoor) != 1) {
+ if (data.byte(kLockstatus) == 1)
+ goto shutdoor2;
+ }
+
+ if (sprite->frame == 1) {
+ al = 0;
+ playchannel1();
+ }
+
+ if (sprite->frame == 6) {
+ turnpathonCPP(data.byte(kDoorpath));
+ }
+
+ if ((data.byte(kThroughdoor) == 1) && (sprite->frame == 0)) {
+ sprite->frame = 6;
+ }
+
+ ++sprite->frame;
+ if (objData->b18[sprite->frame] == 255) {
+ --sprite->frame;
+ }
+
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ if (sprite->frame == 5)
+ data.byte(kThroughdoor) = 1;
+ return;
+
+shutdoor2:
+ if (sprite->frame == 5) {
+ al = 1;
+ playchannel1();
+ }
+
+ if (sprite->frame != 0) {
+ --sprite->frame;
+ }
+
+ data.byte(kThroughdoor) = 0;
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+
+ if (sprite->frame == 0) {
+ turnpathoffCPP(data.byte(kDoorpath));
+ data.byte(kLockstatus) = 1;
+ }
+}
+
+void DreamGenContext::liftsprite(Sprite *sprite, ObjData *objData) {
+ uint8 liftFlag = data.byte(kLiftflag);
+ if (liftFlag == 0) { //liftclosed
+ turnpathoffCPP(data.byte(kLiftpath));
+
+ if (data.byte(kCounttoopen) != 0) {
+ _dec(data.byte(kCounttoopen));
+ if (data.byte(kCounttoopen) == 0)
+ data.byte(kLiftflag) = 3;
+ }
+ sprite->frame = 0;
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ }
+ else if (liftFlag == 1) { //liftopen
+ turnpathonCPP(data.byte(kLiftpath));
+
+ if (data.byte(kCounttoclose) != 0) {
+ _dec(data.byte(kCounttoclose));
+ if (data.byte(kCounttoclose) == 0)
+ data.byte(kLiftflag) = 2;
+ }
+ sprite->frame = 12;
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ }
+ else if (liftFlag == 3) { //openlift
+ if (sprite->frame == 12) {
+ data.byte(kLiftflag) = 1;
+ return;
+ }
+ ++sprite->frame;
+ if (sprite->frame == 1) {
+ al = 2;
+ liftnoise();
+ }
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ } else { //closeLift
+ assert(liftFlag == 2);
+ if (sprite->frame == 0) {
+ data.byte(kLiftflag) = 0;
+ return;
+ }
+ --sprite->frame;
+ if (sprite->frame == 11) {
+ al = 3;
+ liftnoise();
+ }
+ sprite->b15 = objData->b17 = objData->b18[sprite->frame];
+ }
+}
+
+void DreamGenContext::facerightway() {
+ uint8 *paths = getroomspathsCPP();
+ uint8 dir = paths[8 * data.byte(kManspath) + 7];
+ data.byte(kTurntoface) = dir;
+ data.byte(kLeavedirection) = dir;
+}
+
+void DreamGenContext::findsource() {
+ uint16 currentFrame = data.word(kCurrentframe);
+ if (currentFrame < 160) {
+ ds = data.word(kReel1);
+ data.word(kTakeoff) = 0;
+ } else if (currentFrame < 320) {
+ ds = data.word(kReel2);
+ data.word(kTakeoff) = 160;
+ } else {
+ ds = data.word(kReel3);
+ data.word(kTakeoff) = 320;
+ }
+}
+
+Frame *DreamGenContext::findsourceCPP() {
+ push(ds);
+ findsource();
+ Frame *result = (Frame *)ds.ptr(0, 0);
+ ds = pop();
+ return result;
+}
+
+Reel *DreamGenContext::getreelstart() {
+ Reel *reel = (Reel *)segRef(data.word(kReels)).ptr(kReellist + data.word(kReelpointer) * sizeof(Reel) * 8, sizeof(Reel));
+ return reel;
+}
+
+void DreamGenContext::showreelframe() {
+ Reel *reel = (Reel *)es.ptr(si, sizeof(Reel));
+ showreelframe(reel);
+}
+
+void DreamGenContext::showreelframe(Reel *reel) {
+ uint16 x = reel->x + data.word(kMapadx);
+ uint16 y = reel->y + data.word(kMapady);
+ data.word(kCurrentframe) = reel->frame();
+ Frame *source = findsourceCPP();
+ uint16 frame = data.word(kCurrentframe) - data.word(kTakeoff);
+ showframe(source, x, y, frame, 8);
+}
+
+void DreamGenContext::showgamereel() {
+ uint16 reelpointer = es.word(bx+3);
+ if (reelpointer >= 512)
+ return;
+ data.word(kReelpointer) = reelpointer;
+ push(es);
+ push(bx);
+ plotreel();
+ bx = pop();
+ es = pop();
+ es.word(bx+3) = data.word(kReelpointer);
+}
+
+const Frame *DreamGenContext::getreelframeax(uint16 frame) {
+ data.word(kCurrentframe) = frame;
+ Frame *source = findsourceCPP();
+ uint16 offset = data.word(kCurrentframe) - data.word(kTakeoff);
+ return source + offset;
+}
+
+void DreamGenContext::showrain() {
+ ds = data.word(kMainsprites);
+ si = 6*58;
+ ax = ds.word(si+2);
+ si = ax + 2080;
+ Rain *rain = (Rain *)segRef(data.word(kBuffers)).ptr(kRainlist, 0);
+ if (rain->x == 255)
+ return;
+ while (true) {
+ if (rain->x == 255) {
+ if (data.word(kCh1blockstocopy) != 0)
+ return;
+ if ((data.byte(kReallocation) == 2) && (data.byte(kBeenmugged) != 1))
+ return;
+ if (data.byte(kReallocation) == 55)
+ return;
+ randomnum1();
+ if (al >= 1)
+ return;
+ if (data.byte(kCh0playing) != 6)
+ al = 4;
+ else
+ al = 7;
+ playchannel1();
+ return;
+ }
+ uint16 y = rain->y + data.word(kMapady) + data.word(kMapystart);
+ uint16 x = rain->x + data.word(kMapadx) + data.word(kMapxstart);
+ uint16 size = rain->size;
+ ax = ((uint16)(rain->w3() - rain->b5)) & 511;
+ rain->setW3(ax);
+ ++rain;
+ const uint8 *src = ds.ptr(si, 0) + ax;
+ uint8 *dst = workspace() + y * 320 + x;
+ for(uint16 i = 0; i < size; ++i) {
+ uint8 v = src[i];
+ if (v != 0)
+ *dst = v;
+ dst += 320-1;
+ }
+ }
+}
+
+void DreamGenContext::updatepeople() {
+ data.word(kListpos) = kPeoplelist;
+ memset(segRef(data.word(kBuffers)).ptr(kPeoplelist, 12 * sizeof(People)), 0xff, 12 * sizeof(People));
+ ++data.word(kMaintimer);
+ es = cs;
+ bx = kReelroutines;
+ const ReelRoutine *reelRoutine = (const ReelRoutine *)cs.ptr(bx, 0);
+ const uint16 *callbacks = (const uint16 *)cs.ptr(kReelcalls, 0);
+ while (true) {
+ uint8 realLocation = reelRoutine->reallocation;
+ if (realLocation == 255)
+ return;
+ if ((realLocation == data.byte(kReallocation)) &&
+ (reelRoutine->mapX == data.byte(kMapx)) &&
+ (reelRoutine->mapY == data.byte(kMapy))) {
+ uint16 callback = READ_LE_UINT16(callbacks);
+ //dw gamer,sparkydrip,eden,edeninbath,sparky,smokebloke
+ if (callback == addr_gamer)
+ gamer();
+ else if (callback == addr_sparkydrip)
+ sparkydrip();
+ else if (callback == addr_eden)
+ eden();
+ else if (callback == addr_edeninbath)
+ edeninbath();
+ else if (callback == addr_sparky)
+ sparky();
+ else if (callback == addr_smokebloke)
+ smokebloke();
+ //dw manasleep,drunk,receptionist,malefan,femalefan
+ else if (callback == addr_manasleep)
+ manasleep();
+ else if (callback == addr_drunk)
+ drunk();
+ else if (callback == addr_receptionist)
+ receptionist();
+ else if (callback == addr_malefan)
+ malefan();
+ else if (callback == addr_femalefan)
+ femalefan();
+ //dw louis,louischair,soldier1,bossman,interviewer
+ else if (callback == addr_louis)
+ louis();
+ else if (callback == addr_louischair)
+ louischair();
+ else if (callback == addr_soldier1)
+ soldier1();
+ else if (callback == addr_bossman)
+ bossman();
+ else if (callback == addr_interviewer)
+ interviewer();
+ //dw heavy,manasleep2,mansatstill,drinker,bartender
+ else if (callback == addr_heavy)
+ heavy();
+ else if (callback == addr_manasleep2)
+ manasleep2();
+ else if (callback == addr_mansatstill)
+ mansatstill();
+ else if (callback == addr_drinker)
+ drinker();
+ else if (callback == addr_bartender)
+ bartender();
+ //dw othersmoker,tattooman,attendant,keeper,candles1
+ else if (callback == addr_othersmoker)
+ othersmoker();
+ else if (callback == addr_tattooman)
+ tattooman();
+ else if (callback == addr_attendant)
+ attendant();
+ else if (callback == addr_keeper)
+ keeper();
+ else if (callback == addr_candles1)
+ candles1();
+ //dw smallcandle,security,copper,poolguard,rockstar
+ else if (callback == addr_smallcandle)
+ smallcandle();
+ else if (callback == addr_security)
+ security();
+ else if (callback == addr_copper)
+ copper();
+ else if (callback == addr_poolguard)
+ poolguard();
+ else if (callback == addr_rockstar)
+ rockstar();
+ //dw businessman,train,aide,mugger,helicopter
+ else if (callback == addr_businessman)
+ businessman();
+ else if (callback == addr_train)
+ train();
+ else if (callback == addr_aide)
+ aide();
+ else if (callback == addr_mugger)
+ mugger();
+ else if (callback == addr_helicopter)
+ helicopter();
+ //dw intromagic1,intromusic,intromagic2,candles2,gates
+ else if (callback == addr_intromagic1)
+ intromagic1();
+ else if (callback == addr_intromusic)
+ intromusic();
+ else if (callback == addr_intromagic2)
+ intromagic2();
+ else if (callback == addr_candles2)
+ candles2();
+ else if (callback == addr_gates)
+ gates();
+ //dw intromagic3,intromonks1,candles,intromonks2
+ else if (callback == addr_intromagic3)
+ intromagic3();
+ else if (callback == addr_intromonks1)
+ intromonks1();
+ else if (callback == addr_candles)
+ candles();
+ else if (callback == addr_intromonks2)
+ intromonks2();
+ //dw handclap,monkandryan,endgameseq,priest,madman
+ else if (callback == addr_handclap)
+ handclap();
+ else if (callback == addr_monkandryan)
+ monkandryan();
+ else if (callback == addr_endgameseq)
+ endgameseq();
+ else if (callback == addr_priest)
+ priest();
+ else if (callback == addr_madman)
+ madman();
+ //dw madmanstelly,alleybarksound,foghornsound
+ else if (callback == addr_madmanstelly)
+ madmanstelly();
+ else if (callback == addr_alleybarksound)
+ alleybarksound();
+ else if (callback == addr_foghornsound)
+ foghornsound();
+ //dw carparkdrip,carparkdrip,carparkdrip,carparkdrip
+ else if (callback == addr_carparkdrip)
+ carparkdrip();
+ else
+ assert(false); // Oops I forgot something in the dispatch table
+ }
+ bx += 8;
+ ++reelRoutine;
+ ++callbacks;
+ }
+}
+
+void DreamGenContext::madmantext() {
+ if (isCD()) {
+ if (data.byte(kSpeechcount) >= 63)
+ return;
+ if (data.byte(kCh1playing) != 255)
+ return;
+ al = data.byte(kSpeechcount);
+ ++data.byte(kSpeechcount);
+ } else {
+ if (data.byte(kCombatcount) >= 61)
+ return;
+ al = data.byte(kCombatcount);
+ _and(al, 3);
+ if (!flags.z())
+ return;
+ al = data.byte(kCombatcount) / 4;
+ }
+ setuptimedtemp(47 + al, 82, 72, 80, 90, 1);
+}
+
+void DreamGenContext::madman() {
+ data.word(kWatchingtime) = 2;
+ checkspeed();
+ if (flags.z()) {
+ ax = es.word(bx+3);
+ if (ax >= 364) {
+ data.byte(kMandead) = 2;
+ showgamereel();
+ return;
+ }
+ if (ax == 10) {
+ push(es);
+ push(bx);
+ push(ax);
+ dx = kIntrotextname;
+ loadtemptext();
+ ax = pop();
+ bx = pop();
+ es = pop();
+ data.byte(kCombatcount) = -1;
+ data.byte(kSpeechcount) = 0;
+ }
+ ++ax;
+ if (ax == 294) {
+ if (data.byte(kWongame) == 1)
+ return;
+ data.byte(kWongame) = 1;
+ push(es);
+ push(bx);
+ getridoftemptext();
+ bx = pop();
+ es = pop();
+ return;
+ }
+ if (ax == 66) {
+ ++data.byte(kCombatcount);
+ push(es);
+ push(bx);
+ madmantext();
+ bx = pop();
+ es = pop();
+ ax = 53;
+ if (data.byte(kCombatcount) >= (isCD() ? 64 : 62)) {
+ if (data.byte(kCombatcount) == (isCD() ? 70 : 68))
+ ax = 310;
+ else {
+ if (data.byte(kLastweapon) == 8) {
+ data.byte(kCombatcount) = isCD() ? 72 : 70;
+ data.byte(kLastweapon) = -1;
+ data.byte(kMadmanflag) = 1;
+ ax = 67;
+ }
+ }
+ }
+ }
+ es.word(bx+3) = ax;
+ }
+ showgamereel();
+ es.byte(bx+1) = data.byte(kMapx);
+ madmode();
+}
+
+void DreamGenContext::madmode() {
+ data.word(kWatchingtime) = 2;
+ data.byte(kPointermode) = 0;
+ if (data.byte(kCombatcount) < (isCD() ? 65 : 63))
+ return;
+ if (data.byte(kCombatcount) >= (isCD() ? 70 : 68))
+ return;
+ data.byte(kPointermode) = 2;
+}
+
+void DreamGenContext::movemap(uint8 param) {
+ switch (param) {
+ case 32:
+ data.byte(kMapy) -= 20;
+ break;
+ case 16:
+ data.byte(kMapy) -= 10;
+ break;
+ case 8:
+ data.byte(kMapy) += 10;
+ break;
+ case 2:
+ data.byte(kMapx) += 11;
+ break;
+ default:
+ data.byte(kMapx) -= 11;
+ break;
+ }
+ data.byte(kNowinnewroom) = 1;
+}
+
+void DreamGenContext::checkone() {
+ uint8 flag, flagEx, type, flagX, flagY;
+ checkone(cl, ch, &flag, &flagEx, &type, &flagX, &flagY);
+
+ cl = flag;
+ ch = flagEx;
+ dl = flagX;
+ dh = flagY;
+ al = type;
+}
+
+void DreamGenContext::checkone(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY) {
+ *flagX = x / 16;
+ *flagY = y / 16;
+ const uint8 *tileData = segRef(data.word(kBuffers)).ptr(kMapflags + (*flagY * 11 + *flagX) * 3, 3);
+ *flag = tileData[0];
+ *flagEx = tileData[1];
+ *type = tileData[2];
+}
+
+} /*namespace dreamgen */
+
diff --git a/engines/dreamweb/structs.h b/engines/dreamweb/structs.h
new file mode 100644
index 0000000000..7e77bdf0e9
--- /dev/null
+++ b/engines/dreamweb/structs.h
@@ -0,0 +1,220 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/endian.h"
+
+struct Sprite {
+ uint16 _updateCallback;
+ uint16 updateCallback() const { return READ_LE_UINT16(&_updateCallback); }
+ void setUpdateCallback(uint16 v) { WRITE_LE_UINT16(&_updateCallback, v); }
+ uint16 w2;
+ uint16 w4;
+ uint16 _frameData;
+ uint16 frameData() const { return READ_LE_UINT16(&_frameData); }
+ void setFrameData(uint16 v) { WRITE_LE_UINT16(&_frameData, v); }
+ uint16 w8;
+ uint8 x;
+ uint8 y;
+ uint16 w12;
+ uint8 b14;
+ uint8 b15;
+ uint8 b16;
+ uint8 b17;
+ uint8 delay;
+ uint8 frame;
+ uint16 _objData;
+ uint16 objData() const { return READ_LE_UINT16(&_objData); }
+ void setObjData(uint16 v) { WRITE_LE_UINT16(&_objData, v); }
+ uint8 b22;
+ uint8 priority;
+ uint16 w24;
+ uint16 w26;
+ uint8 b28;
+ uint8 b29;
+ uint8 type;
+ uint8 hidden;
+};
+
+struct ObjData {
+ uint8 b0;
+ uint8 b1;
+ uint8 b2;
+ uint8 b3;
+ uint8 b4;
+ uint8 priority;
+ uint8 b6;
+ uint8 delay;
+ uint8 type;
+ uint8 b9;
+ uint8 b10;
+ uint8 b11;
+ uint8 name[4];
+ uint8 b16;
+ uint8 b17;
+ uint8 b18[13]; // NB: Don't know the size yet
+ uint8 b31;
+ uint8 b32;
+ uint8 b33;
+ uint8 b34;
+ uint8 b35;
+ uint8 b36;
+ uint8 b37;
+ uint8 b38;
+ uint8 b39;
+ uint8 b40;
+ uint8 b41;
+ uint8 b42;
+ uint8 b43;
+ uint8 b44;
+ uint8 b45;
+ uint8 b46;
+ uint8 b47;
+ uint8 b48;
+ uint8 b49;
+ uint8 b50;
+ uint8 b51;
+ uint8 b52;
+ uint8 b53;
+ uint8 b54;
+ uint8 b55;
+ uint8 b56;
+ uint8 b57;
+ uint8 b58[5];
+ uint8 b63;
+};
+
+struct FreeObject {
+ uint8 b0;
+ uint8 b1;
+ uint8 b2;
+ uint8 b3;
+ uint8 b4;
+ uint8 b5;
+ uint8 b6;
+ uint8 b7;
+ uint8 b8;
+ uint8 b9;
+ uint8 b10;
+ uint8 b11;
+ uint8 b12;
+ uint8 b13;
+ uint8 b14;
+ uint8 b15;
+};
+
+struct ObjPos {
+ uint8 xMin;
+ uint8 yMin;
+ uint8 xMax;
+ uint8 yMax;
+ uint8 index;
+};
+
+struct Frame {
+ uint8 width;
+ uint8 height;
+ uint16 _ptr;
+ uint16 ptr() const { return READ_LE_UINT16(&_ptr); }
+ void setPtr(uint16 v) { WRITE_LE_UINT16(&_ptr, v); }
+ uint8 x;
+ uint8 y;
+};
+
+struct Reel {
+ uint8 frame_lo;
+ uint8 frame_hi;
+ uint16 frame() const { return READ_LE_UINT16(&frame_lo); }
+ void setFrame(uint16 v) { WRITE_LE_UINT16(&frame_lo, v); }
+ uint8 x;
+ uint8 y;
+ uint8 b4;
+};
+
+struct ReelRoutine {
+ uint8 reallocation;
+ uint8 mapX;
+ uint8 mapY;
+ uint8 b3;
+ uint8 b4;
+ uint8 b5;
+ uint8 b6;
+ uint8 b7;
+};
+
+struct People {
+ uint8 b0;
+ uint8 b1;
+ uint16 w0() const { return READ_LE_UINT16(&b0); }
+ void setW0(uint16 v) { WRITE_LE_UINT16(&b0, v); }
+ uint8 b2;
+ uint8 b3;
+ uint16 w2() const { return READ_LE_UINT16(&b2); }
+ void setW2(uint16 v) { WRITE_LE_UINT16(&b2, v); }
+ uint8 b4;
+
+};
+
+struct Room {
+ uint8 name[10];
+ uint8 b10;
+ uint8 b11;
+ uint8 b12;
+ uint8 roomsSample;
+ uint8 b14;
+ uint8 mapX;
+ uint8 mapY;
+ uint8 b17;
+ uint8 b18;
+ uint8 b19;
+ uint8 liftFlag;
+ uint8 b21;
+ uint8 b22;
+ uint8 countToOpen;
+ uint8 liftPath;
+ uint8 doorPath;
+ uint8 b26;
+ uint8 b27;
+ uint8 b28;
+ uint8 b29;
+ uint8 b30;
+ uint8 b31;
+};
+
+struct Rain {
+ uint8 x;
+ uint8 y;
+ uint8 size;
+ uint8 w3_lo;
+ uint8 w3_hi;
+ uint16 w3() const { return READ_LE_UINT16(&w3_lo); }
+ void setW3(uint16 v) { WRITE_LE_UINT16(&w3_lo, v); }
+ uint8 b5;
+};
+
+struct Change {
+ uint8 index;
+ uint8 location;
+ uint8 value;
+ uint8 type;
+};
+
+
diff --git a/engines/dreamweb/stubs.cpp b/engines/dreamweb/stubs.cpp
index 5614aa391a..f0938ea30b 100644
--- a/engines/dreamweb/stubs.cpp
+++ b/engines/dreamweb/stubs.cpp
@@ -1,103 +1,204 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
#include "dreamweb/dreamweb.h"
#include "engines/util.h"
#include "graphics/surface.h"
+#include "common/config-manager.h"
namespace DreamGen {
-Common::String getFilename(Context &context) {
- uint16 name_ptr = context.dx;
- Common::String name;
- uint8 c;
- while((c = context.cs.byte(name_ptr++)) != 0)
- name += (char)c;
- return name;
-}
+void DreamGenContext::dreamweb() {
+ STACK_CHECK;
+ seecommandtail();
+ checkbasemem();
+ soundstartup();
+ setkeyboardint();
+ setupemm();
+ allocatebuffers();
+ setmouse();
+ fadedos();
+ gettime();
+ clearbuffers();
+ clearpalette();
+ set16colpalette();
+ readsetdata();
+ data.byte(kWongame) = 0;
-void DreamGenContext::multiget() {
- unsigned w = (uint8)cl, h = (uint8)ch;
- unsigned x = (uint16)di, y = (uint16)bx;
- unsigned src = x + y * kScreenwidth;
- unsigned dst = (uint16)si;
- es = ds;
- ds = data.word(kWorkspace);
- if (y + h > 200)
- h = 200 - y;
- if (x + w > 320)
- w = 320 - x;
- //debug(1, "multiget %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)ds, (uint16)es);
- for(unsigned l = 0; l < h; ++l) {
- uint8 *src_p = ds.ptr(src + kScreenwidth * l, w);
- uint8 *dst_p = es.ptr(dst + w * l, w);
- memcpy(dst_p, src_p, w);
- }
- si += w * h;
- di = src + kScreenwidth * h;
- cx = 0;
-}
+ dx = 1909;
+ loadsample();
+ setsoundoff();
-void DreamGenContext::multiput() {
- unsigned w = (uint8)cl, h = (uint8)ch;
- unsigned x = (uint16)di, y = (uint16)bx;
- unsigned src = (uint16)si;
- unsigned dst = x + y * kScreenwidth;
- es = data.word(kWorkspace);
- if (y + h > 200)
- h = 200 - y;
- if (x + w > 320)
- w = 320 - x;
- //debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)ds, (uint16)es);
- for(unsigned l = 0; l < h; ++l) {
- uint8 *src_p = ds.ptr(src + w * l, w);
- uint8 *dst_p = es.ptr(dst + kScreenwidth * l, w);
- memcpy(dst_p, src_p, w);
- }
- si += w * h;
- di = dst + kScreenwidth * h;
- cx = 0;
-}
+ bool firstLoop = true;
-void DreamGenContext::multidump() {
- ds = data.word(kWorkspace);
- int w = (uint8)cl, h = (uint8)ch;
- int x = (int16)di, y = (int16)bx;
- unsigned offset = x + y * kScreenwidth;
- //debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)ds, x, y, offset);
- engine->blit(ds.ptr(offset, w * h), kScreenwidth, x, y, w, h);
- si = di = offset + h * kScreenwidth;
- cx = 0;
-}
+ int savegameId = Common::ConfigManager::instance().getInt("save_slot");
-void DreamGenContext::worktoscreen() {
- ds = data.word(kWorkspace);
- uint size = 320 * 200;
- engine->blit(ds.ptr(0, size), 320, 0, 0, 320, 200);
- di = si = size;
- cx = 0;
-}
+ while (true) {
-void DreamGenContext::printundermon() {
- engine->printUnderMonitor();
-}
+ scanfornames();
-void DreamGenContext::cls() {
- engine->cls();
-}
+ bool startNewGame = true;
+
+ if (firstLoop && savegameId >= 0) {
+
+ // loading a savegame requested from launcher/command line
+
+ cls();
+ setmode();
+ loadpalfromiff();
+ clearpalette();
+
+ ax = savegameId;
+ doload();
+ worktoscreen();
+ fadescreenup();
+ startNewGame = false;
+
+ } else if (al == 0 && firstLoop) {
+
+ // no savegames found, and we're not restarting.
+
+ setmode();
+ loadpalfromiff();
+
+ } else {
+ // "dodecisions"
+
+ // Savegames found, so ask if we should load one.
+ // (If we're restarting after game over, we also always show these
+ // options.)
+
+ cls();
+ setmode();
+ decide();
+ if (data.byte(kQuitrequested))
+ return; // exit game
+
+ if (data.byte(kGetback) == 4)
+ startNewGame = false; // savegame has been loaded
+
+ }
+
+ firstLoop = false;
+
+ if (startNewGame) {
+ // "playgame"
+
+ titles();
+ if (data.byte(kQuitrequested))
+ return; // exit game
+ credits();
+
+ if (data.byte(kQuitrequested))
+ return; // exit game
+
+ clearchanges();
+ setmode();
+ loadpalfromiff();
+ data.byte(kLocation) = 255;
+ data.byte(kRoomafterdream) = 1;
+ data.byte(kNewlocation) = 35;
+ data.byte(kVolume) = 7;
+ loadroom();
+ clearsprites();
+ initman();
+ entrytexts();
+ entryanims();
+ data.byte(kDestpos) = 3;
+ initialinv();
+ data.byte(kLastflag) = 32;
+ startup1();
+ data.byte(kVolumeto) = 0;
+ data.byte(kVolumedirection) = -1;
+ data.byte(kCommandtype) = 255;
+
+ }
+
+ // main loop
+ while (true) {
+
+ if (data.byte(kQuitrequested))
+ return; // exit game
+
+ screenupdate();
+
+ if (data.byte(kWongame) != 0) {
+ // "endofgame"
+ clearbeforeload();
+ fadescreendowns();
+ cx = 200;
+ hangon();
+ endgame();
+ quickquit2();
+ return;
+ }
+
+ if (data.byte(kMandead) == 1 || data.byte(kMandead) == 2)
+ break;
+
+ if (data.word(kWatchingtime) > 0) {
+ if (data.byte(kFinaldest) == data.byte(kManspath))
+ data.word(kWatchingtime)--;
+ }
+
+ if (data.word(kWatchingtime) == 0) {
+ // "notwatching"
+
+ if (data.byte(kMandead) == 4)
+ break;
+
+ if (data.byte(kNewlocation) != 255) {
+ // "loadnew"
+ clearbeforeload();
+ loadroom();
+ clearsprites();
+ initman();
+ entrytexts();
+ entryanims();
+ data.byte(kNewlocation) = 255;
+ startup();
+ data.byte(kCommandtype) = 255;
+ worktoscreenm();
+ }
+ }
+ }
+
+ // "gameover"
+ clearbeforeload();
+ showgun();
+ fadescreendown();
+ cx = 100;
+ hangon();
-void DreamGenContext::frameoutnm() {
- unsigned w = (uint8)cl, h = (uint8)ch;
- unsigned pitch = (uint16)dx;
- unsigned src = (uint16)si;
- int x = (uint16)di, y = (uint16)bx;
- unsigned dst = x + y * pitch;
- //debug(1, "framenm %ux%u[pitch: %u]-> %d,%d, segment: %04x->%04x", w, h, pitch, x, y, (uint16)ds, (uint16)es);
- for(unsigned l = 0; l < h; ++l) {
- uint8 *src_p = ds.ptr(src + w * l, w);
- uint8 *dst_p = es.ptr(dst + pitch * l, w);
- memcpy(dst_p, src_p, w);
}
- di += dst + pitch * h;
- si += w * h;
- cx = 0;
+}
+
+static Common::String getFilename(Context &context) {
+ uint16 name_ptr = context.dx;
+ Common::String name;
+ uint8 c;
+ while((c = context.cs.byte(name_ptr++)) != 0)
+ name += (char)c;
+ return name;
}
void DreamGenContext::seecommandtail() {
@@ -191,6 +292,110 @@ void DreamGenContext::setmouse() {
data.word(kOldpointerx) = 0xffff;
}
+void DreamGenContext::dumptextline() {
+ if (data.byte(kNewtextline) != 1)
+ return;
+ data.byte(kNewtextline) = 0;
+ uint16 x = data.word(kTextaddressx);
+ uint16 y = data.word(kTextaddressy);
+ if (data.byte(kForeignrelease) != 0)
+ y -= 3;
+ multidump(x, y, 228, 13);
+}
+
+void DreamGenContext::getundertimed() {
+ uint16 y = data.byte(kTimedy);
+ if (data.byte(kForeignrelease))
+ y -= 3;
+ ds = data.word(kBuffers);
+ si = kUndertimedtext;
+ multiget(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
+}
+
+void DreamGenContext::putundertimed() {
+ uint16 y = data.byte(kTimedy);
+ if (data.byte(kForeignrelease))
+ y -= 3;
+ ds = data.word(kBuffers);
+ si = kUndertimedtext;
+ multiput(ds.ptr(si, 0), data.byte(kTimedx), y, 240, kUndertimedysize);
+}
+
+void DreamGenContext::usetimedtext() {
+ if (data.word(kTimecount) == 0)
+ return;
+ --data.word(kTimecount);
+ if (data.word(kTimecount) == 0) {
+ putundertimed();
+ data.byte(kNeedtodumptimed) = 1;
+ return;
+ }
+
+ if (data.word(kTimecount) == data.word(kCounttotimed))
+ getundertimed();
+ else if (data.word(kTimecount) > data.word(kCounttotimed))
+ return;
+
+ es = data.word(kTimedseg);
+ si = data.word(kTimedoffset);
+ const uint8 *string = es.ptr(si, 0);
+ uint16 y = data.byte(kTimedy);
+ printdirect(&string, data.byte(kTimedx), &y, 237, true);
+ data.byte(kNeedtodumptimed) = 1;
+}
+
+void DreamGenContext::setuptimedtemp() {
+ setuptimedtemp(al, ah, bl, bh, cx, dx);
+}
+
+void DreamGenContext::setuptimedtemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount) {
+#if 1 // if cd
+ if (voiceIndex != 0) {
+ push(ax);
+ push(bx);
+ push(cx);
+ push(dx);
+ dl = 'T';
+ dh = voiceIndex;
+ cl = 'T';
+ ah = 0;
+ loadspeech();
+ if (data.byte(kSpeechloaded) == 1) {
+ al = 50+12;
+ playchannel1();
+ }
+ dx = pop();
+ cx = pop();
+ bx = pop();
+ ax = pop();
+ if ((data.byte(kSpeechloaded) == 1) && (data.byte(kSubtitles) != 1))
+ return;
+ }
+#endif
+
+ if (data.word(kTimecount) != 0)
+ return;
+ data.byte(kTimedy) = y;
+ data.byte(kTimedx) = x;
+ data.word(kCounttotimed) = countToTimed;
+ data.word(kTimecount) = timeCount + countToTimed;
+ data.word(kTimedseg) = data.word(kTextfile1);
+ data.word(kTimedoffset) = kTextstart + segRef(data.word(kTextfile1)).word(textIndex * 2);
+ const uint8 *string = segRef(data.word(kTextfile1)).ptr(data.word(kTimedoffset), 0);
+ debug(1, "setuptimedtemp: (%d, %d) => '%s'", textIndex, voiceIndex, string);
+}
+
+void DreamGenContext::dumptimedtext() {
+ if (data.byte(kNeedtodumptimed) != 1)
+ return;
+ uint8 y = data.byte(kTimedy);
+ if (data.byte(kForeignrelease) != 0)
+ y -= 3;
+
+ multidump(data.byte(kTimedx), y, 240, kUndertimedysize);
+ data.byte(kNeedtodumptimed) = 0;
+}
+
void DreamGenContext::gettime() {
TimeDate t;
g_system->getTimeAndDate(t);
@@ -204,12 +409,17 @@ void DreamGenContext::gettime() {
}
void DreamGenContext::allocatemem() {
- uint size = (bx + 2) * 16;
+ ax = allocatemem(bx);
+}
+
+uint16 DreamGenContext::allocatemem(uint16 paragraphs) {
+ uint size = (paragraphs + 2) * 16;
debug(1, "allocate mem, %u bytes", size);
flags._c = false;
SegmentRef seg = allocateSegment(size);
- ax = (uint16)seg;
- debug(1, "\tsegment address -> %04x", (uint16)ax);
+ uint16 result = (uint16)seg;
+ debug(1, "\tsegment address -> %04x", result);
+ return result;
}
void DreamGenContext::deallocatemem() {
@@ -384,8 +594,6 @@ void DreamGenContext::dosreturn() {
}
void DreamGenContext::set16colpalette() {
- //fixme: this is a bit hackish, set16colpalette called after initialization and nearly before main loop.
- engine->enableSavingOrLoading();
}
void DreamGenContext::mode640x480() {
@@ -403,155 +611,564 @@ void DreamGenContext::fadedos() {
engine->fadeDos();
}
-void DreamGenContext::doshake() {
- uint8 &counter = data.byte(kShakecounter);
- _cmp(counter, 48);
- if (flags.z())
+void DreamGenContext::eraseoldobs() {
+ if (data.byte(kNewobs) == 0)
return;
- _add(counter, 1);
- static const int shakeTable[] = {
- 0, -2, 3, -2, 0, 2, 4, -1,
- 1, -3, 3, 2, 0, -2, 3, -2,
- 0, 2, 4, -1, 1, -3, 3, 2,
- 0, -2, 3, -2, 0, 2, 4, -1,
+ Sprite *sprites = spritetable();
+ for (size_t i=0; i < 16; ++i) {
+ Sprite &sprite = sprites[i];
+ if (sprite.objData() != 0xffff) {
+ memset(&sprite, 0xff, sizeof(Sprite));
+ }
+ }
+}
+
+void DreamGenContext::modifychar() {
+ al = engine->modifyChar(al);
+}
- 1, -3, 3, 2, 0, -2, 3, -2,
- 0, 2, 4, -1, 1, -3, 3, 2,
- 0, -2, 3, -2, 0, 2, 4, -1,
- 1, -3, 3, 2, 0, -2, 3, -2,
+void DreamGenContext::lockmon() {
+ // Pressing space pauses text output in the monitor. We use the "hard"
+ // key because calling readkey() drains characters from the input
+ // buffer, we we want the user to be able to type ahead while the text
+ // is being printed.
+ if (data.byte(kLasthardkey) == 57) {
+ // Clear the keyboard buffer. Otherwise the space that caused
+ // the pause will be read immediately unpause the game.
+ do {
+ readkey();
+ } while (data.byte(kCurrentkey) != 0);
+
+ locklighton();
+ while (!engine->shouldQuit()) {
+ engine->waitForVSync();
+ readkey();
+ if (data.byte(kCurrentkey) == ' ')
+ break;
+ }
+ // Forget the last "hard" key, otherwise the space that caused
+ // the unpausing will immediately re-pause the game.
+ data.byte(kLasthardkey) = 0;
+ locklightoff();
+ }
+}
- 0, 2, 4, -1, 1, -3, 3, 2,
- 0, -2, 3, -2, 0, 2, 4, -1,
- 1, -3, 3, 2, 0, -2, 3, -2,
- 0, 2, 4, -1, 1, -3, 3, 2,
+void DreamGenContext::cancelch0() {
+ data.byte(kCh0repeat) = 0;
+ data.word(kCh0blockstocopy) = 0;
+ data.byte(kCh0playing) = 255;
+ engine->stopSound(0);
+}
- 0, -2, 3, -2, 0, 2, 4, -1,
- 1, -3, 3, 0,
- };
- int offset = shakeTable[counter];
- engine->setShakePos(offset >= 0? offset: -offset);
+void DreamGenContext::cancelch1() {
+ data.word(kCh1blockstocopy) = 0;
+ data.byte(kCh1playing) = 255;
+ engine->stopSound(1);
}
-void DreamGenContext::vsync() {
+void DreamGenContext::makebackob(ObjData *objData) {
+ if (data.byte(kNewobs) == 0)
+ return;
+ uint8 priority = objData->priority;
+ uint8 type = objData->type;
+ Sprite *sprite = makesprite(data.word(kObjectx), data.word(kObjecty), addr_backobject, data.word(kSetframes), 0);
+
+ uint16 objDataOffset = (uint8 *)objData - segRef(data.word(kSetdat)).ptr(0, 0);
+ assert(objDataOffset % sizeof(ObjData) == 0);
+ assert(objDataOffset < 128 * sizeof(ObjData));
+ sprite->setObjData(objDataOffset);
+ if (priority == 255)
+ priority = 0;
+ sprite->priority = priority;
+ sprite->type = type;
+ sprite->b16 = 0;
+ sprite->delay = 0;
+ sprite->frame = 0;
+}
+
+void DreamGenContext::getroomdata() {
+ bx = kRoomdata + sizeof(Room) * al;
+}
+
+void DreamGenContext::getroomdata(uint8 roomIndex) {
+ getroomdata(roomIndex);
+}
+
+void DreamGenContext::startloading() {
+ const Room *room = (Room *)cs.ptr(bx, sizeof(Room));
+ startloading(room);
+}
+
+void DreamGenContext::readheader() {
+ ax = engine->readFromFile(cs.ptr(kFileheader, kHeaderlen), kHeaderlen);
+ es = cs;
+ di = kFiledata;
+}
+
+void DreamGenContext::startloading(const Room *room) {
+ data.byte(kCombatcount) = 0;
+ data.byte(kRoomssample) = room->roomsSample;
+ data.byte(kMapx) = room->mapX;
+ data.byte(kMapy) = room->mapY;
+ data.byte(kLiftflag) = room->liftFlag;
+ data.byte(kManspath) = room->b21;
+ data.byte(kDestination) = room->b21;
+ data.byte(kFinaldest) = room->b21;
+ data.byte(kFacing) = room->b22;
+ data.byte(kTurntoface) = room->b22;
+ data.byte(kCounttoopen) = room->countToOpen;
+ data.byte(kLiftpath) = room->liftPath;
+ data.byte(kDoorpath) = room->doorPath;
+ data.byte(kLastweapon) = -1;
+ al = room->b27;
push(ax);
- push(bx);
- push(cx);
- push(dx);
- push(si);
- push(di);
- push(es);
- push(ds);
- engine->waitForVSync();
- ds = pop();
- es = pop();
- di = pop();
- si = pop();
- dx = pop();
- cx = pop();
- bx = pop();
+ al = room->b31;
+ ah = data.byte(kReallocation);
+ data.byte(kReallocation) = al;
+ dx = bx;
+ Common::String name = getFilename(*this);
+ engine->openFile(name);
+ cs.word(kHandle) = 1; //only one handle
+ flags._c = false;
+ readheader();
+ allocateload();
+ ds = ax;
+ data.word(kBackdrop) = ax;
+ dx = (0);
+ loadseg();
+ ds = data.word(kWorkspace);
+ dx = (0);
+ cx = 132*66;
+ al = 0;
+ fillspace();
+ loadseg();
+ sortoutmap();
+ allocateload();
+ data.word(kSetframes) = ax;
+ ds = ax;
+ dx = (0);
+ loadseg();
+ ds = data.word(kSetdat);
+ dx = 0;
+ cx = (64*128);
+ al = 255;
+ fillspace();
+ loadseg();
+ allocateload();
+ data.word(kReel1) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kReel2) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kReel3) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kReels) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kPeople) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kSetdesc) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kBlockdesc) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kRoomdesc) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ allocateload();
+ data.word(kFreeframes) = ax;
+ ds = ax;
+ dx = 0;
+ loadseg();
+ ds = data.word(kFreedat);
+ dx = 0;
+ cx = (16*80);
+ al = 255;
+ fillspace();
+ loadseg();
+ allocateload();
+ data.word(kFreedesc) = ax;
+ ds = ax;
+ dx = (0);
+ loadseg();
+ closefile();
+ findroominloc();
+ deletetaken();
+ setallchanges();
+ autoappear();
+ al = data.byte(kNewlocation);
+ getroomdata();
+ data.byte(kLastweapon) = -1;
+ data.byte(kMandead) = 0;
+ data.word(kLookcounter) = 160;
+ data.byte(kNewlocation) = 255;
+ data.byte(kLinepointer) = 254;
ax = pop();
+ if (al != 255) {
+ data.byte(kManspath) = al;
+ push(bx);
+ autosetwalk();
+ bx = pop();
+ }
+ findxyfrompath();
}
-void DreamGenContext::setmode() {
- vsync();
- initGraphics(320, 200, false);
+void DreamGenContext::fillspace() {
+ memset(ds.ptr(dx, cx), al, cx);
}
-void DreamGenContext::showpcx() {
- Common::String name = getFilename(*this);
- Common::File pcxFile;
+void DreamGenContext::dealwithspecial(uint8 firstParam, uint8 secondParam) {
+ uint8 type = firstParam - 220;
+ if (type == 0) {
+ placesetobject(secondParam);
+ data.byte(kHavedoneobs) = 1;
+ } else if (type == 1) {
+ removesetobject(secondParam);
+ data.byte(kHavedoneobs) = 1;
+ } else if (type == 2) {
+ al = secondParam;
+ placefreeobject();
+ data.byte(kHavedoneobs) = 1;
+ } else if (type == 3) {
+ al = secondParam;
+ removefreeobject();
+ data.byte(kHavedoneobs) = 1;
+ } else if (type == 4) {
+ switchryanoff();
+ } else if (type == 5) {
+ data.byte(kTurntoface) = secondParam;
+ data.byte(kFacing) = secondParam;
+ switchryanon();
+ } else if (type == 6) {
+ data.byte(kNewlocation) = secondParam;
+ } else {
+ movemap(secondParam);
+ }
+}
- if (!pcxFile.open(name)) {
- warning("showpcx: Could not open '%s'", name.c_str());
- return;
+void DreamGenContext::plotreel() {
+ Reel *reel = getreelstart();
+ while (true) {
+ if (reel->x < 220)
+ break;
+ if (reel->x == 255)
+ break;
+ dealwithspecial(reel->x, reel->y);
+ ++data.word(kReelpointer);
+ reel += 8;
}
- uint8 *maingamepal;
- int i, j;
+ for (size_t i = 0; i < 8; ++i) {
+ if (reel->frame() != 0xffff)
+ showreelframe(reel);
+ ++reel;
+ }
+ soundonreels();
+}
- // Read the 16-color palette into the 'maingamepal' buffer. Note that
- // the color components have to be adjusted from 8 to 6 bits.
+void DreamGenContext::crosshair() {
+ uint8 frame;
+ if ((data.byte(kCommandtype) != 3) && (data.byte(kCommandtype) < 10)) {
+ frame = 9;
+ } else {
+ frame = 29;
+ }
+ const Frame *src = (const Frame *)segRef(data.word(kIcons1)).ptr(0, 0);
+ showframe(src, kZoomx + 24, kZoomy + 19, frame, 0);
+}
+
+void DreamGenContext::deltextline() {
+ uint16 x = data.word(kTextaddressx);
+ uint16 y = data.word(kTextaddressy);
+ if (data.byte(kForeignrelease) != 0)
+ y -= 3;
+ multiput(segRef(data.word(kBuffers)).ptr(kTextunder, 0), x, y, kUndertextsizex, kUndertextsizey);
+}
- pcxFile.seek(16, SEEK_SET);
- es = data.word(kBuffers);
- maingamepal = es.ptr(kMaingamepal, 768);
- pcxFile.read(maingamepal, 48);
+void DreamGenContext::commandonly() {
+ commandonly(al);
+}
+
+void DreamGenContext::commandonly(uint8 command) {
+ deltextline();
+ uint16 index = command * 2;
+ uint16 offset = kTextstart + segRef(data.word(kCommandtext)).word(index);
+ uint16 y = data.word(kTextaddressy);
+ const uint8 *string = segRef(data.word(kCommandtext)).ptr(offset, 0);
+ printdirect(&string, data.word(kTextaddressx), &y, data.byte(kTextlen), (bool)(data.byte(kTextlen) & 1));
+ data.byte(kNewtextline) = 1;
+}
- memset(maingamepal + 48, 0xff, 720);
- for (i = 0; i < 48; i++) {
- maingamepal[i] >>= 2;
+void DreamGenContext::checkifperson() {
+ flags._z = not checkifperson(al, ah);
+}
+
+bool DreamGenContext::checkifperson(uint8 x, uint8 y) {
+ People *people = (People *)segRef(data.word(kBuffers)).ptr(kPeoplelist, 0);
+
+ for (size_t i = 0; i < 12; ++i, ++people) {
+ if (people->b4 == 255)
+ continue;
+ data.word(kReelpointer) = people->w0();
+ Reel *reel = getreelstart();
+ if (reel->frame() == 0xffff)
+ ++reel;
+ const Frame *frame = getreelframeax(reel->frame());
+ uint8 xmin = reel->x + frame->x;
+ uint8 ymin = reel->y + frame->y;
+ uint8 xmax = xmin + frame->width;
+ uint8 ymax = ymin + frame->height;
+ if (x < xmin)
+ continue;
+ if (y < ymin)
+ continue;
+ if (x >= xmax)
+ continue;
+ if (y >= ymax)
+ continue;
+ data.word(kPersondata) = people->w2();
+ al = people->b4;
+ ah = 5;
+ obname();
+ return true;
}
+ return false;
+}
- // Decode the image data.
+void DreamGenContext::checkiffree() {
+ flags._z = not checkiffree(al, ah);
+}
- Graphics::Surface *s = g_system->lockScreen();
- Common::Rect rect(640, 480);
+bool DreamGenContext::checkiffree(uint8 x, uint8 y) {
+ const ObjPos *freeList = (const ObjPos *)segRef(data.word(kBuffers)).ptr(kFreelist, 80 * sizeof(ObjPos));
+ for (size_t i = 0; i < 80; ++i) {
+ const ObjPos *objPos = freeList + 79 - i;
+ if (objPos->index == 0xff)
+ continue;
+ if (x < objPos->xMin)
+ continue;
+ if (x >= objPos->xMax)
+ continue;
+ if (y < objPos->yMin)
+ continue;
+ if (y >= objPos->yMax)
+ continue;
+ al = objPos->index;
+ ah = 2;
+ obname();
+ return true;
+ }
+ return false;
+}
- s->fillRect(rect, 0);
- pcxFile.seek(128, SEEK_SET);
+const uint8 *DreamGenContext::findobname(uint8 type, uint8 index) {
+ if (type == 5) {
+ uint16 i = 64 * 2 * (index & 127);
+ uint16 offset = segRef(data.word(kPeople)).word(kPersontxtdat + i) + kPersontext;
+ return segRef(data.word(kPeople)).ptr(offset, 0);
+ } else if (type == 4) {
+ uint16 offset = segRef(data.word(kExtras)).word(kExtextdat + index * 2) + kExtext;
+ return segRef(data.word(kExtras)).ptr(offset, 0);
+ } else if (type == 2) {
+ uint16 offset = segRef(data.word(kFreedesc)).word(kFreetextdat + index * 2) + kFreetext;
+ return segRef(data.word(kFreedesc)).ptr(offset, 0);
+ } else if (type == 1) {
+ uint16 offset = segRef(data.word(kSetdesc)).word(kSettextdat + index * 2) + kSettext;
+ return segRef(data.word(kSetdesc)).ptr(offset, 0);
+ } else {
+ uint16 offset = segRef(data.word(kBlockdesc)).word(kBlocktextdat + index * 2) + kBlocktext;
+ return segRef(data.word(kBlockdesc)).ptr(offset, 0);
+ }
+}
- for (int y = 0; y < 480; y++) {
- byte *dst = (byte *)s->getBasePtr(0, y);
- int decoded = 0;
+void DreamGenContext::copyname() {
+ copyname(ah, al, cs.ptr(di, 0));
+}
- while (decoded < 320) {
- byte col = pcxFile.readByte();
- byte len;
+void DreamGenContext::copyname(uint8 type, uint8 index, uint8 *dst) {
+ const uint8 *src = findobname(type, index);
+ size_t i;
+ for (i = 0; i < 28; ++i) {
+ char c = src[i];
+ if (c == ':')
+ break;
+ if (c == 0)
+ break;
+ dst[i] = c;
+ }
+ dst[i] = 0;
+}
- if ((col & 0xc0) == 0xc0) {
- len = col & 0x3f;
- col = pcxFile.readByte();
- } else {
- len = 1;
- }
+void DreamGenContext::commandwithob() {
+ commandwithob(al, bh, bl);
+}
- // The image uses 16 colors and is stored as four bit
- // planes, one for each bit of the color, least
- // significant bit plane first.
+void DreamGenContext::commandwithob(uint8 command, uint8 type, uint8 index) {
+ uint8 commandLine[64] = "OBJECT NAME ONE ";
+ deltextline();
+ uint16 commandText = kTextstart + segRef(data.word(kCommandtext)).word(command * 2);
+ uint8 textLen = data.byte(kTextlen);
+ {
+ uint16 y = data.word(kTextaddressy);
+ const uint8 *string = segRef(data.word(kCommandtext)).ptr(commandText, 0);
+ printdirect(&string, data.word(kTextaddressx), &y, textLen, (bool)(textLen & 1));
+ }
+ copyname(type, index, commandLine);
+ uint16 x = data.word(kLastxpos);
+ if (command != 0)
+ x += 5;
+ {
+ uint16 y = data.word(kTextaddressy);
+ const uint8 *string = commandLine;
+ printdirect(&string, x, &y, textLen, (bool)(textLen & 1));
+ }
+ data.byte(kNewtextline) = 1;
+}
- for (i = 0; i < len; i++) {
- int plane = decoded / 80;
- int pos = decoded % 80;
+void DreamGenContext::showpanel() {
+ Frame *frame = (Frame *)segRef(data.word(kIcons1)).ptr(0, sizeof(Frame));
+ showframe(frame, 72, 0, 19, 0);
+ showframe(frame, 192, 0, 19, 0);
+}
- for (j = 0; j < 8; j++) {
- byte bit = (col >> (7 - j)) & 1;
- dst[8 * pos + j] |= (bit << plane);
- }
+void DreamGenContext::blocknametext() {
+ commandwithob(0, data.byte(kCommandtype), data.byte(kCommand));
+}
- decoded++;
- }
+void DreamGenContext::personnametext() {
+ commandwithob(2, data.byte(kCommandtype), data.byte(kCommand) & 127);
+}
+
+void DreamGenContext::walktotext() {
+ commandwithob(3, data.byte(kCommandtype), data.byte(kCommand));
+}
+
+void DreamGenContext::findormake() {
+ uint8 b0 = al;
+ uint8 b2 = cl;
+ uint8 b3 = ch;
+ findormake(b0, b2, b3);
+}
+
+void DreamGenContext::findormake(uint8 index, uint8 value, uint8 type) {
+ Change *change = (Change *)segRef(data.word(kBuffers)).ptr(kListofchanges, sizeof(Change));
+ while (true) {
+ if (change->index == 0xff) {
+ change->index = index;
+ change->location = data.byte(kReallocation);
+ change->value = value;
+ change->type = type;
+ return;
}
+ if ((index == change->index) && (data.byte(kReallocation) == change->location) && (type == change->type)) {
+ change->value = value;
+ return;
+ }
+ ++change;
}
+}
- g_system->unlockScreen();
- pcxFile.close();
+void DreamGenContext::setallchanges() {
+ Change *change = (Change *)segRef(data.word(kBuffers)).ptr(kListofchanges, sizeof(Change));
+ while (change->index != 0xff) {
+ if (change->location == data.byte(kReallocation))
+ dochange(change->index, change->value, change->type);
+ ++change;
+ }
+}
+
+FreeObject *DreamGenContext::getfreead(uint8 index) {
+ return (FreeObject *)segRef(data.word(kFreedat)).ptr(0, 0) + index;
}
-void DreamGenContext::frameoutv() {
- uint16 pitch = dx;
- uint16 width = cx & 0xff;
- uint16 height = cx >> 8;
- uint16 stride = pitch - width;
+ObjData *DreamGenContext::getsetad(uint8 index) {
+ return (ObjData *)segRef(data.word(kSetdat)).ptr(0, 0) + index;
+}
- const uint8* src = ds.ptr(si, width * height);
- uint8* base = es.ptr(di, stride * height);
- uint8* dst = base + pitch * bx;
+void DreamGenContext::dochange() {
+ dochange(al, cl, ch);
+}
- // NB: Original code assumes non-zero width and height, "for" are unneeded, do-while would suffice but would be less readable
- for (uint16 y = 0; y < height; ++y) {
- for (uint16 x = 0; x < width; ++x) {
- uint8 pixel = *src++;
- if (pixel)
- *dst = pixel;
- ++dst;
+void DreamGenContext::dochange(uint8 index, uint8 value, uint8 type) {
+ if (type == 0) { //object
+ getsetad(index)->b58[0] = value;
+ } else if (type == 1) { //freeobject
+ FreeObject *freeObject = getfreead(index);
+ if (freeObject->b2 == 0xff)
+ freeObject->b2 = value;
+ } else { //path
+ bx = kPathdata + (type - 100) * 144 + index * 8;
+ es = data.word(kReels);
+ es.byte(bx+6) = value;
+ }
+}
+
+void DreamGenContext::deletetaken() {
+ ds = data.word(kExtras);
+ si = kExdata;
+ FreeObject *freeObjects = (FreeObject *)segRef(data.word(kFreedat)).ptr(0, 0);
+ for(size_t i = 0; i < kNumexobjects; ++i) {
+ uint8 location = ds.byte(si+11);
+ if (location == data.byte(kReallocation)) {
+ uint8 index = ds.byte(si+1);
+ freeObjects[index].b2 = 254;
}
- dst += stride;
+ si += 16;
}
}
-void DreamGenContext::modifychar() {
- al = engine->modifyChar(al);
+void DreamGenContext::placesetobject() {
+ placesetobject(al);
+}
+
+void DreamGenContext::placesetobject(uint8 index) {
+ findormake(index, 0, 0);
+ getsetad(index)->b58[0] = 0;
+}
+
+void DreamGenContext::removesetobject() {
+ removesetobject(al);
}
+void DreamGenContext::removesetobject(uint8 index) {
+ findormake(index, 0xff, 0);
+ getsetad(index)->b58[0] = 0xff;
+}
+
+void DreamGenContext::finishedwalking() {
+ flags._z = finishedwalkingCPP();
+}
+
+bool DreamGenContext::finishedwalkingCPP() {
+ return (data.byte(kLinepointer) == 254) && (data.byte(kFacing) == data.byte(kTurntoface));
+}
+
+bool DreamGenContext::isCD() {
+ // The original sources has two codepaths depending if the game is 'if cd' or not
+ // This is a hack to guess which version to use with the assumption that if we have a cd version
+ // we managed to load the speech. At least it is isolated in this function and can be changed.
+ // Maybe detect the version during game id?
+ return (data.byte(kSpeechloaded) == 1);
+}
} /*namespace dreamgen */
+
diff --git a/engines/dreamweb/stubs.h b/engines/dreamweb/stubs.h
new file mode 100644
index 0000000000..9d5550be5b
--- /dev/null
+++ b/engines/dreamweb/stubs.h
@@ -0,0 +1,174 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+ uint16 allocatemem(uint16 paragraphs);
+ uint8 *workspace();
+ void allocatework();
+ void clearwork();
+ void multidump();
+ void multidump(uint16 x, uint16 y, uint8 width, uint8 height);
+ void frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
+ void frameoutnm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
+ void frameoutbh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
+ void frameoutfx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y);
+ void worktoscreen();
+ void multiget();
+ void multiget(uint8 *dst, uint16 x, uint16 y, uint8 width, uint8 height);
+ void convertkey();
+ void cls();
+ void printsprites();
+ void quickquit();
+ void readoneblock();
+ void printundermon();
+ void seecommandtail();
+ void randomnumber();
+ void quickquit2();
+ uint8 getnextword(const Frame *charSet, const uint8 *string, uint8 *totalWidth, uint8 *charCount);
+ void printboth(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar);
+ void printchar();
+ void printchar(const Frame* charSet, uint16 *x, uint16 y, uint8 c, uint8 nextChar, uint8 *width, uint8 *height);
+ void printdirect();
+ void printdirect(const uint8** string, uint16 x, uint16 *y, uint8 maxWidth, bool centered);
+ void usetimedtext();
+ void dumptimedtext();
+ void setuptimedtemp();
+ void setuptimedtemp(uint8 textIndex, uint8 voiceIndex, uint8 x, uint8 y, uint16 countToTimed, uint16 timeCount);
+ void getundertimed();
+ void putundertimed();
+ uint8 printslow(const uint8 *string, uint16 x, uint16 y, uint8 maxWidth, bool centered);
+ void printslow();
+ void dumptextline();
+ void getnumber();
+ uint8 getnumber(const Frame *charSet, const uint8 *string, uint16 maxWidth, bool centered, uint16 *offset);
+ void kernchars();
+ uint8 kernchars(uint8 firstChar, uint8 secondChar, uint8 width);
+ void getroomdata();
+ void getroomdata(uint8 roomIndex);
+ void readheader();
+ void fillspace();
+ void startloading();
+ void startloading(const Room *room);
+ Sprite *spritetable();
+ void showframe();
+ void showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height);
+ void showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag);
+ void printasprite(const Sprite *sprite);
+ void width160();
+ void multiput(const uint8 *src, uint16 x, uint16 y, uint8 width, uint8 height);
+ void multiput();
+ void eraseoldobs();
+ void clearsprites();
+ void makesprite();
+ Sprite *makesprite(uint8 x, uint8 y, uint16 updateCallback, uint16 frameData, uint16 somethingInDi);
+ void spriteupdate();
+ void initman();
+ void mainman(Sprite *sprite);
+ void facerightway();
+ void walking(Sprite *sprite);
+ void autosetwalk();
+ void checkdest(const uint8 *roomsPaths);
+ void aboutturn(Sprite *sprite);
+ void backobject(Sprite *sprite);
+ void constant(Sprite *sprite, ObjData *objData);
+ void steady(Sprite *sprite, ObjData *objData);
+ void random(Sprite *sprite, ObjData *objData);
+ void dodoor();
+ void dodoor(Sprite *sprite, ObjData *objData);
+ void doorway(Sprite *sprite, ObjData *objData);
+ void widedoor(Sprite *sprite, ObjData *objData);
+ void lockeddoorway(Sprite *sprite, ObjData *objData);
+ void liftsprite(Sprite *sprite, ObjData *objData);
+ void findsource();
+ Frame *findsourceCPP();
+ void showgamereel();
+ void showreelframe();
+ void showreelframe(Reel *reel);
+ const Frame *getreelframeax(uint16 frame);
+ void turnpathonCPP(uint8 param);
+ void turnpathoffCPP(uint8 param);
+ void getroomspaths();
+ uint8 *getroomspathsCPP();
+ void makebackob(ObjData *objData);
+ void modifychar();
+ void lockmon();
+ void cancelch0();
+ void cancelch1();
+ void plotreel();
+ Reel *getreelstart();
+ void dealwithspecial(uint8 firstParam, uint8 secondParam);
+ void zoom();
+ void crosshair();
+ void showrain();
+ void deltextline();
+ void commandonly();
+ void commandonly(uint8 command);
+ void doblocks();
+ void checkifperson();
+ bool checkifperson(uint8 x, uint8 y);
+ void checkiffree();
+ bool checkiffree(uint8 x, uint8 y);
+ const uint8 *findobname(uint8 type, uint8 index);
+ void copyname();
+ void copyname(uint8 type, uint8 index, uint8 *dst);
+ void commandwithob();
+ void commandwithob(uint8 command, uint8 type, uint8 index);
+ void showpanel();
+ void updatepeople();
+ void madmantext();
+ void madmode();
+ void movemap(uint8 param);
+ bool addalong(const uint8 *mapFlags);
+ bool addlength(const uint8 *mapFlags);
+ void getdimension();
+ void getdimension(uint8 *mapXstart, uint8 *mapYstart, uint8 *mapXsize, uint8 *mapYsize);
+ void getmapad();
+ void calcmapad();
+ uint8 getmapad(const uint8 *setData);
+ uint8 getxad(const uint8 *setData, uint8 *result);
+ uint8 getyad(const uint8 *setData, uint8 *result);
+ void calcfrframe();
+ void calcfrframe(uint8* width, uint8* height);
+ void finalframe();
+ void finalframe(uint16 *x, uint16 *y);
+ void showallobs();
+ void blocknametext();
+ void walktotext();
+ void personnametext();
+ void findxyfrompath();
+ void findormake();
+ void findormake(uint8 index, uint8 value, uint8 type);
+ FreeObject *getfreead(uint8 index);
+ ObjData *getsetad(uint8 index);
+ void setallchanges();
+ void dochange();
+ void dochange(uint8 index, uint8 value, uint8 type);
+ void deletetaken();
+ bool isCD();
+ void placesetobject();
+ void placesetobject(uint8 index);
+ void removesetobject();
+ void removesetobject(uint8 index);
+ void showallfree();
+ bool finishedwalkingCPP();
+ void finishedwalking();
+ void checkone();
+ void checkone(uint8 x, uint8 y, uint8 *flag, uint8 *flagEx, uint8 *type, uint8 *flagX, uint8 *flagY);
+
diff --git a/engines/dreamweb/vgagrafx.cpp b/engines/dreamweb/vgagrafx.cpp
new file mode 100644
index 0000000000..3c92640768
--- /dev/null
+++ b/engines/dreamweb/vgagrafx.cpp
@@ -0,0 +1,415 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "dreamweb/dreamweb.h"
+#include "engines/util.h"
+#include "graphics/surface.h"
+
+namespace DreamGen {
+
+uint8 *DreamGenContext::workspace() {
+ uint8 *result = segRef(data.word(kWorkspace)).ptr(0, 0);
+ return result;
+}
+
+void DreamGenContext::allocatework() {
+ data.word(kWorkspace) = allocatemem(0x1000);
+}
+
+void DreamGenContext::multiget() {
+ multiget(ds.ptr(si, 0), di, bx, cl, ch);
+ si += cl * ch;
+ di += bx * kScreenwidth + kScreenwidth * ch;
+ cx = 0;
+}
+
+void DreamGenContext::multiget(uint8 *dst, uint16 x, uint16 y, uint8 w, uint8 h) {
+ const uint8 *src = workspace() + x + y * kScreenwidth;
+ if (y + h > 200)
+ h = 200 - y;
+ if (x + w > 320)
+ w = 320 - x;
+ //debug(1, "multiget %u,%u %ux%u -> segment: %04x->%04x", x, y, w, h, (uint16)ds, (uint16)es);
+ for(unsigned l = 0; l < h; ++l) {
+ const uint8 *src_p = src + kScreenwidth * l;
+ uint8 *dst_p = dst + w * l;
+ memcpy(dst_p, src_p, w);
+ }
+}
+
+void DreamGenContext::multiput() {
+ multiput(ds.ptr(si, 0), di, bx, cl, ch);
+ si += cl * ch;
+ di += bx * kScreenwidth + kScreenwidth * ch;
+ cx = 0;
+}
+
+void DreamGenContext::multiput(const uint8 *src, uint16 x, uint16 y, uint8 w, uint8 h) {
+ uint8 *dst = workspace() + x + y * kScreenwidth;
+ if (y + h > 200)
+ h = 200 - y;
+ if (x + w > 320)
+ w = 320 - x;
+ //debug(1, "multiput %ux%u -> segment: %04x->%04x", w, h, (uint16)ds, (uint16)es);
+ for(unsigned l = 0; l < h; ++l) {
+ const uint8 *src_p = src + w * l;
+ uint8 *dst_p = dst + kScreenwidth * l;
+ memcpy(dst_p, src_p, w);
+ }
+}
+
+void DreamGenContext::multidump(uint16 x, uint16 y, uint8 width, uint8 height) {
+ unsigned offset = x + y * kScreenwidth;
+ //debug(1, "multidump %ux%u(segment: %04x) -> %d,%d(address: %d)", w, h, (uint16)ds, x, y, offset);
+ engine->blit(workspace() + offset, kScreenwidth, x, y, width, height);
+}
+
+void DreamGenContext::multidump() {
+ multidump(di, bx, cl, ch);
+ unsigned offset = di + bx * kScreenwidth;
+ si = di = offset + ch * kScreenwidth;
+ cx = 0;
+}
+
+void DreamGenContext::worktoscreen() {
+ uint size = 320 * 200;
+ engine->blit(workspace(), 320, 0, 0, 320, 200);
+ di = si = size;
+ cx = 0;
+}
+
+void DreamGenContext::printundermon() {
+ engine->printUnderMonitor();
+}
+
+void DreamGenContext::cls() {
+ engine->cls();
+}
+
+void DreamGenContext::frameoutnm(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) {
+ dst += pitch * y + x;
+
+ for (uint16 j = 0; j < height; ++j) {
+ memcpy(dst, src, width);
+ dst += pitch;
+ src += width;
+ }
+}
+
+void DreamGenContext::frameoutbh(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) {
+ uint16 stride = pitch - width;
+ dst += y * pitch + x;
+
+ for (uint16 i = 0; i < height; ++i) {
+ for (uint16 j = 0; j < width; ++j) {
+ if (*dst == 0xff) {
+ *dst = *src;
+ }
+ ++src;
+ ++dst;
+ }
+ dst += stride;
+ }
+}
+
+void DreamGenContext::frameoutfx(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) {
+ uint16 stride = pitch - width;
+ dst += y * pitch + x;
+ dst -= width;
+
+ for (uint16 j = 0; j < height; ++j) {
+ for (uint16 i = 0; i < width; ++i) {
+ uint8 pixel = src[width - i - 1];
+ if (pixel)
+ *dst = pixel;
+ ++dst;
+ }
+ src += width;
+ dst += stride;
+ }
+}
+
+void DreamGenContext::doshake() {
+ uint8 &counter = data.byte(kShakecounter);
+ _cmp(counter, 48);
+ if (flags.z())
+ return;
+
+ _add(counter, 1);
+ static const int shakeTable[] = {
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+
+ 0, 2, 4, -1, 1, -3, 3, 2,
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 2, 0, -2, 3, -2,
+ 0, 2, 4, -1, 1, -3, 3, 2,
+
+ 0, -2, 3, -2, 0, 2, 4, -1,
+ 1, -3, 3, 0,
+ };
+ int offset = shakeTable[counter];
+ engine->setShakePos(offset >= 0 ? offset : -offset);
+}
+
+void DreamGenContext::vsync() {
+ push(ax);
+ push(bx);
+ push(cx);
+ push(dx);
+ push(si);
+ push(di);
+ push(es);
+ push(ds);
+ engine->waitForVSync();
+ ds = pop();
+ es = pop();
+ di = pop();
+ si = pop();
+ dx = pop();
+ cx = pop();
+ bx = pop();
+ ax = pop();
+}
+
+void DreamGenContext::setmode() {
+ vsync();
+ initGraphics(320, 200, false);
+}
+
+static Common::String getFilename(Context &context) {
+ uint16 name_ptr = context.dx;
+ Common::String name;
+ uint8 c;
+ while((c = context.cs.byte(name_ptr++)) != 0)
+ name += (char)c;
+ return name;
+}
+
+void DreamGenContext::showpcx() {
+ Common::String name = getFilename(*this);
+ Common::File pcxFile;
+
+ if (!pcxFile.open(name)) {
+ warning("showpcx: Could not open '%s'", name.c_str());
+ return;
+ }
+
+ uint8 *maingamepal;
+ int i, j;
+
+ // Read the 16-color palette into the 'maingamepal' buffer. Note that
+ // the color components have to be adjusted from 8 to 6 bits.
+
+ pcxFile.seek(16, SEEK_SET);
+ es = data.word(kBuffers);
+ maingamepal = es.ptr(kMaingamepal, 768);
+ pcxFile.read(maingamepal, 48);
+
+ memset(maingamepal + 48, 0xff, 720);
+ for (i = 0; i < 48; i++) {
+ maingamepal[i] >>= 2;
+ }
+
+ // Decode the image data.
+
+ Graphics::Surface *s = g_system->lockScreen();
+ Common::Rect rect(640, 480);
+
+ s->fillRect(rect, 0);
+ pcxFile.seek(128, SEEK_SET);
+
+ for (int y = 0; y < 480; y++) {
+ byte *dst = (byte *)s->getBasePtr(0, y);
+ int decoded = 0;
+
+ while (decoded < 320) {
+ byte col = pcxFile.readByte();
+ byte len;
+
+ if ((col & 0xc0) == 0xc0) {
+ len = col & 0x3f;
+ col = pcxFile.readByte();
+ } else {
+ len = 1;
+ }
+
+ // The image uses 16 colors and is stored as four bit
+ // planes, one for each bit of the color, least
+ // significant bit plane first.
+
+ for (i = 0; i < len; i++) {
+ int plane = decoded / 80;
+ int pos = decoded % 80;
+
+ for (j = 0; j < 8; j++) {
+ byte bit = (col >> (7 - j)) & 1;
+ dst[8 * pos + j] |= (bit << plane);
+ }
+
+ decoded++;
+ }
+ }
+ }
+
+ g_system->unlockScreen();
+ pcxFile.close();
+}
+
+void DreamGenContext::frameoutv(uint8 *dst, const uint8 *src, uint16 pitch, uint16 width, uint16 height, uint16 x, uint16 y) {
+ // NB : These resilience checks were not in the original engine, but did they result in undefined behaviour
+ // or was something broken during porting to C++?
+ assert(pitch == 320);
+
+ if(x >= 320)
+ return;
+ if(y >= 200)
+ return;
+ if(x + width > 320) {
+ width = 320 - x;
+ }
+ if(y + height > 200) {
+ height = 200 - y;
+ }
+
+ uint16 stride = pitch - width;
+ dst += pitch * y + x;
+
+ for (uint16 j = 0; j < height; ++j) {
+ for (uint16 i = 0; i < width; ++i) {
+ uint8 pixel = *src++;
+ if (pixel)
+ *dst = pixel;
+ ++dst;
+ }
+ dst += stride;
+ }
+}
+
+void DreamGenContext::showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag) {
+ uint8 width, height;
+ showframe(frameData, x, y, frameNumber, effectsFlag, &width, &height);
+}
+
+void DreamGenContext::showframe(const Frame *frameData, uint16 x, uint16 y, uint16 frameNumber, uint8 effectsFlag, uint8 *width, uint8 *height) {
+ const Frame *frame = frameData + frameNumber;
+ if ((frame->width == 0) && (frame->height == 0)) {
+ *width = 0;
+ *height = 0;
+ return;
+ }
+
+//notblankshow:
+ if ((effectsFlag & 128) == 0) {
+ x += frame->x;
+ y += frame->y;
+ }
+//skipoffsets:
+
+ *width = frame->width;
+ *height = frame->height;
+ const uint8 *pSrc = ((const uint8 *)frameData) + frame->ptr() + 2080;
+
+ if (effectsFlag) {
+ if (effectsFlag & 128) { //centred
+ x -= *width / 2;
+ y -= *height / 2;
+ }
+ if (effectsFlag & 64) { //diffdest
+ frameoutfx(es.ptr(0, dx * *height), pSrc, dx, *width, *height, x, y);
+ return;
+ }
+ if (effectsFlag & 8) { //printlist
+ /*
+ push(ax);
+ al = x - data.word(kMapadx);
+ ah = y - data.word(kMapady);
+ //addtoprintlist(); // NB: Commented in the original asm
+ ax = pop();
+ */
+ }
+ if (effectsFlag & 4) { //flippedx
+ frameoutfx(workspace(), pSrc, 320, *width, *height, x, y);
+ return;
+ }
+ if (effectsFlag & 2) { //nomask
+ frameoutnm(workspace(), pSrc, 320, *width, *height, x, y);
+ return;
+ }
+ if (effectsFlag & 32) {
+ frameoutbh(workspace(), pSrc, 320, *width, *height, x, y);
+ return;
+ }
+ }
+//noeffects:
+ frameoutv(workspace(), pSrc, 320, *width, *height, x, y);
+ return;
+}
+
+void DreamGenContext::showframe() {
+ uint8 width, height;
+ showframe((Frame *)ds.ptr(0, 0), di, bx, ax & 0x1ff, ah & 0xfe, &width, &height);
+ cl = width;
+ ch = height;
+}
+
+void DreamGenContext::clearwork() {
+ memset(workspace(), 0, 320*200);
+}
+
+void DreamGenContext::zoom() {
+ if (data.word(kWatchingtime) != 0)
+ return;
+ if (data.byte(kZoomon) != 1)
+ return;
+ if (data.byte(kCommandtype) >= 199) {
+ putunderzoom();
+ return;
+ }
+ uint16 srcOffset = (data.word(kOldpointery) - 9) * 320 + (data.word(kOldpointerx) - 11);
+ uint16 dstOffset = (kZoomy + 4) * 320 + (kZoomx + 5);
+ const uint8 *src = workspace() + srcOffset;
+ uint8 *dst = workspace() + dstOffset;
+ for(size_t i=0; i<20; ++i) {
+ for(size_t j=0; j<23; ++j) {
+ uint8 v = src[j];
+ dst[2*j+0] = v;
+ dst[2*j+1] = v;
+ dst[2*j+320] = v;
+ dst[2*j+321] = v;
+ }
+ src += 320;
+ dst += 320*2;
+ }
+ crosshair();
+ data.byte(kDidzoom) = 1;
+}
+
+} /*namespace dreamgen */
+
diff --git a/engines/engine.cpp b/engines/engine.cpp
index b19daa2611..ee1d53fa9c 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -41,6 +41,7 @@
#include "common/list.h"
#include "common/list_intern.h"
#include "common/scummsys.h"
+#include "common/taskbar.h"
#include "common/textconsole.h"
#include "common/translation.h"
@@ -79,10 +80,21 @@ static void defaultErrorHandler(const char *msg) {
if (isSmartphone())
debugger = 0;
#endif
+
+#if defined(USE_TASKBAR)
+ g_system->getTaskbarManager()->notifyError();
+#endif
+
if (debugger && !debugger->isActive()) {
debugger->attach(msg);
debugger->onFrame();
}
+
+
+#if defined(USE_TASKBAR)
+ g_system->getTaskbarManager()->clearError();
+#endif
+
}
}
diff --git a/engines/engines.mk b/engines/engines.mk
index 07364a5bd3..eddd22039d 100644
--- a/engines/engines.mk
+++ b/engines/engines.mk
@@ -36,6 +36,11 @@ DEFINES += -DENABLE_CINE=$(ENABLE_CINE)
MODULES += engines/cine
endif
+ifdef ENABLE_COMPOSER
+DEFINES += -DENABLE_COMPOSER=$(ENABLE_COMPOSER)
+MODULES += engines/composer
+endif
+
ifdef ENABLE_CRUISE
DEFINES += -DENABLE_CRUISE=$(ENABLE_CRUISE)
MODULES += engines/cruise
@@ -207,4 +212,3 @@ ifdef ENABLE_TUCKER
DEFINES += -DENABLE_TUCKER=$(ENABLE_TUCKER)
MODULES += engines/tucker
endif
-
diff --git a/engines/gob/draw_v2.cpp b/engines/gob/draw_v2.cpp
index cc8f6b5e3c..151ed42526 100644
--- a/engines/gob/draw_v2.cpp
+++ b/engines/gob/draw_v2.cpp
@@ -916,4 +916,3 @@ void Draw_v2::spriteOperation(int16 operation) {
}
} // End of namespace Gob
-
diff --git a/engines/gob/inter.h b/engines/gob/inter.h
index 78d5e34271..b1689e8d9e 100644
--- a/engines/gob/inter.h
+++ b/engines/gob/inter.h
@@ -477,9 +477,14 @@ protected:
virtual void setupOpcodesGob();
void o3_getTotTextItemPart(OpFuncParams &params);
+ void o3_speakerOn(OpFuncParams &params);
+ void o3_speakerOff(OpFuncParams &params);
void o3_copySprite(OpFuncParams &params);
void o3_wobble(OpGobParams &params);
+
+private:
+ bool _ignoreSpeakerOff;
};
class Inter_Inca2 : public Inter_v3 {
diff --git a/engines/gob/inter_v3.cpp b/engines/gob/inter_v3.cpp
index 47486b0899..edf56012d9 100644
--- a/engines/gob/inter_v3.cpp
+++ b/engines/gob/inter_v3.cpp
@@ -31,6 +31,7 @@
#include "gob/game.h"
#include "gob/script.h"
#include "gob/resources.h"
+#include "gob/sound/sound.h"
namespace Gob {
@@ -39,7 +40,7 @@ namespace Gob {
#define OPCODEFUNC(i, x) _opcodesFunc[i]._OPCODEFUNC(OPCODEVER, x)
#define OPCODEGOB(i, x) _opcodesGob[i]._OPCODEGOB(OPCODEVER, x)
-Inter_v3::Inter_v3(GobEngine *vm) : Inter_v2(vm) {
+Inter_v3::Inter_v3(GobEngine *vm) : Inter_v2(vm), _ignoreSpeakerOff(false) {
}
void Inter_v3::setupOpcodesDraw() {
@@ -50,6 +51,8 @@ void Inter_v3::setupOpcodesFunc() {
Inter_v2::setupOpcodesFunc();
OPCODEFUNC(0x1A, o3_getTotTextItemPart);
+ OPCODEFUNC(0x22, o3_speakerOn);
+ OPCODEFUNC(0x23, o3_speakerOff);
OPCODEFUNC(0x32, o3_copySprite);
}
@@ -245,6 +248,36 @@ void Inter_v3::o3_getTotTextItemPart(OpFuncParams &params) {
delete textItem;
}
+void Inter_v3::o3_speakerOn(OpFuncParams &params) {
+ int16 frequency = _vm->_game->_script->readValExpr();
+ int32 length = -1;
+
+ _ignoreSpeakerOff = false;
+
+ // WORKAROUND: This is the footsteps sound. The scripts just fire
+ // speaker on" and then a "speaker off" after a short while. Since
+ // we have delay in certain places avoid 100% CPU all the time and
+ // our PC speaker emulator sometimes "swallows" very short beeper
+ // bursts issued in this way, this is in general quite wonky and
+ // prone to fail, as can be seen in bug report #3376547. Therefore,
+ // we explicitely set a length in this case and ignore the next
+ // speaker off command.
+ if (frequency == 50) {
+ length = 5;
+
+ _ignoreSpeakerOff = true;
+ }
+
+ _vm->_sound->speakerOn(frequency, length);
+}
+
+void Inter_v3::o3_speakerOff(OpFuncParams &params) {
+ if (!_ignoreSpeakerOff)
+ _vm->_sound->speakerOff();
+
+ _ignoreSpeakerOff = false;
+}
+
void Inter_v3::o3_copySprite(OpFuncParams &params) {
o1_copySprite(params);
diff --git a/engines/gob/scenery.cpp b/engines/gob/scenery.cpp
index bb50818ed8..33fdfcaa2a 100644
--- a/engines/gob/scenery.cpp
+++ b/engines/gob/scenery.cpp
@@ -622,7 +622,7 @@ void Scenery::updateAnim(int16 layer, int16 frame, int16 animation, int16 flags,
if (frame >= (int32)_vm->_vidPlayer->getFrameCount(obj.videoSlot - 1))
frame = _vm->_vidPlayer->getFrameCount(obj.videoSlot - 1) - 1;
- if (_vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1) >= 255) {
+ if ((int32)_vm->_vidPlayer->getCurrentFrame(obj.videoSlot - 1) >= 255) {
// Allow for object videos with more than 255 frames, although the
// object frame counter is just a byte.
diff --git a/engines/groovie/groovie.cpp b/engines/groovie/groovie.cpp
index 5f95de649a..f5f02b5cdd 100644
--- a/engines/groovie/groovie.cpp
+++ b/engines/groovie/groovie.cpp
@@ -20,6 +20,9 @@
*
*/
+#include "audio/mididrv.h"
+#include "audio/mixer.h"
+
#include "groovie/groovie.h"
#include "groovie/cursor.h"
#include "groovie/detection.h"
diff --git a/engines/groovie/music.cpp b/engines/groovie/music.cpp
index c6e990dfcf..af929d439b 100644
--- a/engines/groovie/music.cpp
+++ b/engines/groovie/music.cpp
@@ -20,6 +20,9 @@
*
*/
+#include "audio/mididrv.h"
+#include "audio/mixer.h"
+
#include "groovie/music.h"
#include "groovie/groovie.h"
#include "groovie/resource.h"
@@ -766,7 +769,7 @@ Common::SeekableReadStream *MusicPlayerMac::decompressMidi(Common::SeekableReadS
}
MusicPlayerIOS::MusicPlayerIOS(GroovieEngine *vm) : MusicPlayer(vm) {
- vm->getTimerManager()->installTimerProc(&onTimer, 50 * 1000, this);
+ vm->getTimerManager()->installTimerProc(&onTimer, 50 * 1000, this, "groovieMusic");
}
MusicPlayerIOS::~MusicPlayerIOS() {
diff --git a/engines/groovie/music.h b/engines/groovie/music.h
index 7af482e45d..cc852aa8dc 100644
--- a/engines/groovie/music.h
+++ b/engines/groovie/music.h
@@ -25,8 +25,6 @@
#include "common/array.h"
#include "common/mutex.h"
-#include "audio/mididrv.h"
-#include "audio/mixer.h"
class MidiParser;
diff --git a/engines/groovie/script.cpp b/engines/groovie/script.cpp
index 5a24559e8b..9003a58ab8 100644
--- a/engines/groovie/script.cpp
+++ b/engines/groovie/script.cpp
@@ -20,6 +20,9 @@
*
*/
+#include "audio/mididrv.h"
+#include "audio/mixer.h"
+
#include "groovie/script.h"
#include "groovie/cell.h"
#include "groovie/cursor.h"
diff --git a/engines/hugo/detection.cpp b/engines/hugo/detection.cpp
index f70a21aa8f..5d972f5658 100644
--- a/engines/hugo/detection.cpp
+++ b/engines/hugo/detection.cpp
@@ -241,12 +241,7 @@ SaveStateDescriptor HugoMetaEngine::querySaveMetaInfos(const char *target, int s
SaveStateDescriptor desc(slot, saveName);
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*file, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*file);
desc.setThumbnail(thumbnail);
desc.setDeletableFlag(true);
diff --git a/engines/hugo/display.cpp b/engines/hugo/display.cpp
index 2d35bb0448..fa18d6b791 100644
--- a/engines/hugo/display.cpp
+++ b/engines/hugo/display.cpp
@@ -813,4 +813,3 @@ overlayState_t Screen_v1w::findOvl(seq_t *seq_p, image_pt dst_p, uint16 y) {
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file.cpp b/engines/hugo/file.cpp
index cde6e108ea..2217cef92a 100644
--- a/engines/hugo/file.cpp
+++ b/engines/hugo/file.cpp
@@ -695,4 +695,3 @@ void FileManager::readUIFImages() {
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file_v1d.cpp b/engines/hugo/file_v1d.cpp
index 0795923536..c3bb0e275f 100644
--- a/engines/hugo/file_v1d.cpp
+++ b/engines/hugo/file_v1d.cpp
@@ -128,4 +128,3 @@ void FileManager_v1d::instructions() const {
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file_v1w.cpp b/engines/hugo/file_v1w.cpp
index 162019dd2e..8a06cef939 100644
--- a/engines/hugo/file_v1w.cpp
+++ b/engines/hugo/file_v1w.cpp
@@ -87,4 +87,3 @@ void FileManager_v1w::readOverlay(const int screenNum, image_pt image, ovl_t ove
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file_v2d.cpp b/engines/hugo/file_v2d.cpp
index 7e44e756d5..520e1b77b6 100644
--- a/engines/hugo/file_v2d.cpp
+++ b/engines/hugo/file_v2d.cpp
@@ -187,4 +187,3 @@ const char *FileManager_v2d::fetchString(const int index) {
return _fetchStringBuf;
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file_v2w.cpp b/engines/hugo/file_v2w.cpp
index 1384f02df6..98a15526fa 100644
--- a/engines/hugo/file_v2w.cpp
+++ b/engines/hugo/file_v2w.cpp
@@ -49,4 +49,3 @@ void FileManager_v2w::instructions() const {
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/file_v3d.cpp b/engines/hugo/file_v3d.cpp
index 69371bb030..d86003a040 100644
--- a/engines/hugo/file_v3d.cpp
+++ b/engines/hugo/file_v3d.cpp
@@ -205,4 +205,3 @@ void FileManager_v3d::readOverlay(const int screenNum, image_pt image, ovl_t ove
}
}
} // End of namespace Hugo
-
diff --git a/engines/hugo/sound.cpp b/engines/hugo/sound.cpp
index 1fea1f4343..fe34e6ff2d 100644
--- a/engines/hugo/sound.cpp
+++ b/engines/hugo/sound.cpp
@@ -270,7 +270,7 @@ void SoundHandler::pcspkr_player() {
static const uint16 pcspkrFlats[8] = {1435, 1279, 2342, 2150, 1916, 1755, 1611}; // The flats, Ab to Bb
_vm->getTimerManager()->removeTimerProc(&loopPlayer);
- _vm->getTimerManager()->installTimerProc(&loopPlayer, 1000000 / 9, this);
+ _vm->getTimerManager()->installTimerProc(&loopPlayer, 1000000 / 9, this, "hugoSoundLoop");
uint16 count; // Value to set timer chip to for note
bool cmd_note;
@@ -372,7 +372,7 @@ void SoundHandler::loadIntroSong(Common::ReadStream &in) {
}
void SoundHandler::initPcspkrPlayer() {
- _vm->getTimerManager()->installTimerProc(&loopPlayer, 1000000 / 9, this);
+ _vm->getTimerManager()->installTimerProc(&loopPlayer, 1000000 / 9, this, "hugoSoundLoop");
}
} // End of namespace Hugo
diff --git a/engines/kyra/animator_hof.cpp b/engines/kyra/animator_hof.cpp
index 4cdb622501..741e358143 100644
--- a/engines/kyra/animator_hof.cpp
+++ b/engines/kyra/animator_hof.cpp
@@ -314,4 +314,3 @@ void KyraEngine_HoF::resetCharacterAnimDim() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/animator_lok.cpp b/engines/kyra/animator_lok.cpp
index 3e9dd7aa66..4126681bbe 100644
--- a/engines/kyra/animator_lok.cpp
+++ b/engines/kyra/animator_lok.cpp
@@ -649,4 +649,3 @@ void Animator_LoK::setCharactersHeight() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/animator_lok.h b/engines/kyra/animator_lok.h
index 21d24866c8..74b8305468 100644
--- a/engines/kyra/animator_lok.h
+++ b/engines/kyra/animator_lok.h
@@ -125,4 +125,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/animator_mr.cpp b/engines/kyra/animator_mr.cpp
index 84bda3f3fd..6414b99ffd 100644
--- a/engines/kyra/animator_mr.cpp
+++ b/engines/kyra/animator_mr.cpp
@@ -459,4 +459,3 @@ void KyraEngine_MR::showIdleAnim() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/animator_v2.cpp b/engines/kyra/animator_v2.cpp
index ad7057f11a..334356e261 100644
--- a/engines/kyra/animator_v2.cpp
+++ b/engines/kyra/animator_v2.cpp
@@ -185,4 +185,3 @@ void KyraEngine_v2::deleteItemAnimEntry(int item) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/debugger.cpp b/engines/kyra/debugger.cpp
index 4a48ac0674..dfc2a9f868 100644
--- a/engines/kyra/debugger.cpp
+++ b/engines/kyra/debugger.cpp
@@ -461,4 +461,3 @@ Debugger_LoL::Debugger_LoL(LoLEngine *vm) : Debugger(vm), _vm(vm) {
#endif // ENABLE_LOL
} // End of namespace Kyra
-
diff --git a/engines/kyra/debugger.h b/engines/kyra/debugger.h
index 70c547381e..09ddd89a7a 100644
--- a/engines/kyra/debugger.h
+++ b/engines/kyra/debugger.h
@@ -106,4 +106,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/detection.cpp b/engines/kyra/detection.cpp
index a6af584fb8..0a49483f12 100644
--- a/engines/kyra/detection.cpp
+++ b/engines/kyra/detection.cpp
@@ -221,4 +221,3 @@ SaveStateDescriptor KyraMetaEngine::querySaveMetaInfos(const char *target, int s
#else
REGISTER_PLUGIN_STATIC(KYRA, PLUGIN_TYPE_ENGINE, KyraMetaEngine);
#endif
-
diff --git a/engines/kyra/detection_tables.h b/engines/kyra/detection_tables.h
index 47a3c4362a..c224c8f46d 100644
--- a/engines/kyra/detection_tables.h
+++ b/engines/kyra/detection_tables.h
@@ -21,38 +21,41 @@
namespace {
-#define FLAGS(x, y, z, a, b, c, d, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, id }
-#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, id }
-
-#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, true, Kyra::GI_KYRA1)
-#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, true, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, Kyra::GI_KYRA1)
-#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, Kyra::GI_KYRA1)
-
-#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, true, Kyra::GI_KYRA2)
-#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_KYRA2)
-#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, true, false, false, false, Kyra::GI_KYRA2)
-
-#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, true, true, Kyra::GI_KYRA3)
-#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, true, false, Kyra::GI_KYRA3)
-#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, true, false, Kyra::GI_KYRA3)
-
-#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, Kyra::GI_LOL)
-#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, true, Kyra::GI_LOL)
-#define LOL_PC98_SJIS_FLAGS FLAGS(false, false, false, true, true, false, false, Kyra::GI_LOL)
-#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, Kyra::GI_LOL)
-#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define FLAGS(x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, Common::UNK_LANG, Common::UNK_LANG, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
+#define FLAGS_FAN(fanLang, repLang, x, y, z, a, b, c, d, e, id) { Common::UNK_LANG, fanLang, repLang, Common::kPlatformUnknown, x, y, z, a, b, c, d, e, id }
+
+#define KYRA1_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA1)
+#define KYRA1_OLDFLOPPY_FLAGS FLAGS(false, false, false, true, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_AMIGA_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_FLAGS FLAGS(false, true, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_TOWNS_SJIS_FLAGS FLAGS(false, true, false, false, true, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_CD_FLAGS FLAGS(false, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA1)
+#define KYRA1_DEMO_CD_FLAGS FLAGS(true, true, true, false, false, false, false, false, Kyra::GI_KYRA1)
+
+#define KYRA2_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_KYRA2)
+#define KYRA2_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_CD_DEMO_FLAGS FLAGS(true, false, true, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
+#define KYRA2_TOWNS_SJIS_FLAGS FLAGS(false, false, false, false, true, false, false, false, Kyra::GI_KYRA2)
+
+#define KYRA3_CD_FLAGS FLAGS(false, false, true, false, false, false, true, true, Kyra::GI_KYRA3)
+#define KYRA3_CD_INS_FLAGS FLAGS(false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
+#define KYRA3_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, true, false, Kyra::GI_KYRA3)
+
+#define LOL_CD_FLAGS FLAGS(false, false, true, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_CD_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, true, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FLAGS FLAGS(false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_FAN_FLAGS(x, y) FLAGS_FAN(x, y, false, false, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_FLOPPY_CMP_FLAGS FLAGS(false, false, false, false, false, false, false, true, Kyra::GI_LOL)
+#define LOL_PC98_SJIS_FLAGS FLAGS(false, false, false, false, true, true, false, false, Kyra::GI_LOL)
+#define LOL_DEMO_FLAGS FLAGS(true, true, false, false, false, false, false, false, Kyra::GI_LOL)
+#define LOL_KYRA2_DEMO_FLAGS FLAGS(true, false, false, false, false, false, false, false, Kyra::GI_KYRA2)
const KYRAGameDescription adGameDescs[] = {
/* disable these targets until they get supported
@@ -95,6 +98,7 @@ const KYRAGameDescription adGameDescs[] = {
},
KYRA1_FLOPPY_FLAGS
},
+
{
{
"kyra1",
@@ -143,6 +147,18 @@ const KYRAGameDescription adGameDescs[] = {
},
KYRA1_FLOPPY_FLAGS
},
+ {
+ {
+ "kyra1",
+ "Extracted",
+ AD_ENTRY1("GEMCUT.EMC", "689b62b7519215c1b2571d466c95624c"),
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIPCSPK
+ },
+ KYRA1_OLDFLOPPY_FLAGS
+ },
{ // from VooD
{
"kyra1",
@@ -486,6 +502,32 @@ const KYRAGameDescription adGameDescs[] = {
KYRA2_FLOPPY_FLAGS
},
+ { // Floppy version extracted
+ {
+ "kyra2",
+ "Extracted",
+ AD_ENTRY1("CH01-S00.DLG", "54b7a5a94f6e1ec91f0fb1311eec09ab"),
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ KYRA2_FLOPPY_FAN_FLAGS(Common::RU_RUS, Common::EN_ANY)
+ },
+
+ { // Floppy version extracted
+ {
+ "kyra2",
+ "Extracted",
+ AD_ENTRY1("CH01-S00.DLG", "7c36c0e63ab8c81cbb3ea58681331366"),
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ KYRA2_FLOPPY_FAN_FLAGS(Common::RU_RUS, Common::EN_ANY)
+ },
+
{ // CD version
{
"kyra2",
@@ -1057,6 +1099,59 @@ const KYRAGameDescription adGameDescs[] = {
LOL_CD_FLAGS
},
+ // Russian fan translation
+ {
+ {
+ "lol",
+ "CD",
+ {
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::EN_ANY,
+ Common::kPlatformPC,
+ ADGF_DROPLANGUAGE | ADGF_CD,
+ Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_CD_FAN_FLAGS(Common::RU_RUS, Common::DE_DEU)
+ },
+
+ {
+ {
+ "lol",
+ "CD",
+ {
+
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::FR_FRA,
+ Common::kPlatformPC,
+ ADGF_DROPLANGUAGE | ADGF_CD,
+ Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_CD_FAN_FLAGS(Common::RU_RUS, Common::DE_DEU)
+ },
+
+ {
+ {
+ "lol",
+ "CD",
+ {
+ { "GENERAL.PAK", 0, "19354b0f464295c38c801d30588df062", -1 },
+ { "L01.PAK", 0, "174d37f21e0336c5d91020f8c58717ef", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_DROPLANGUAGE | ADGF_CD,
+ Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_CD_FAN_FLAGS(Common::RU_RUS, Common::DE_DEU)
+ },
+
// Italian fan translation
{
{
@@ -1276,6 +1371,24 @@ const KYRAGameDescription adGameDescs[] = {
LOL_FLOPPY_FLAGS
},
+ // Russian fan translation
+ {
+ {
+ "lol",
+ "Extracted",
+ {
+ { "GENERAL.PAK", 0, "d8f4c1153aed2418f41f886c3fb27543", -1 },
+ { "CHAPTER7.PAK", 0, "f0b8a2fdff951738834fadc12248ac1f", -1 },
+ { 0, 0, 0, 0 }
+ },
+ Common::RU_RUS,
+ Common::kPlatformPC,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NOSPEECH | Common::GUIO_MIDIADLIB | Common::GUIO_MIDIMT32 | Common::GUIO_MIDIGM | Common::GUIO_MIDIPCSPK
+ },
+ LOL_FLOPPY_FAN_FLAGS(Common::RU_RUS, Common::EN_ANY)
+ },
+
{
{
"lol",
@@ -1326,7 +1439,7 @@ const KYRAGameDescription adGameDescs[] = {
LOL_KYRA2_DEMO_FLAGS
},
#endif // ENABLE_LOL
- { AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0) }
+ { AD_TABLE_END_MARKER, FLAGS(0, 0, 0, 0, 0, 0, 0, 0, 0) }
};
const PlainGameDescriptor gameList[] = {
diff --git a/engines/kyra/gui.cpp b/engines/kyra/gui.cpp
index 29cbe20b23..7fd9880dce 100644
--- a/engines/kyra/gui.cpp
+++ b/engines/kyra/gui.cpp
@@ -415,7 +415,7 @@ void GUI::checkTextfieldInput() {
bool running = true;
int keys = 0;
- while (_vm->_eventMan->pollEvent(event) && running) {
+ while (running && _vm->_eventMan->pollEvent(event)) {
switch (event.type) {
case Common::EVENT_KEYDOWN:
if (event.kbd.keycode == Common::KEYCODE_q && event.kbd.hasFlags(Common::KBD_CTRL))
@@ -671,4 +671,3 @@ void MainMenu::printString(const char *format, int x, int y, int col1, int col2,
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/gui.h b/engines/kyra/gui.h
index 6afdc431ed..1efbdde394 100644
--- a/engines/kyra/gui.h
+++ b/engines/kyra/gui.h
@@ -263,4 +263,3 @@ private:
} // end of namesapce Kyra
#endif
-
diff --git a/engines/kyra/gui_hof.cpp b/engines/kyra/gui_hof.cpp
index 1666cdd0e4..a1e0ce66bf 100644
--- a/engines/kyra/gui_hof.cpp
+++ b/engines/kyra/gui_hof.cpp
@@ -1195,4 +1195,3 @@ int GUI_HoF::loadMenu(Button *caller) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/gui_hof.h b/engines/kyra/gui_hof.h
index a02d14e9f1..c228c35551 100644
--- a/engines/kyra/gui_hof.h
+++ b/engines/kyra/gui_hof.h
@@ -82,4 +82,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/gui_lok.cpp b/engines/kyra/gui_lok.cpp
index eba2f8f279..4a2d51faa3 100644
--- a/engines/kyra/gui_lok.cpp
+++ b/engines/kyra/gui_lok.cpp
@@ -1137,4 +1137,3 @@ void KyraEngine_LoK::drawAmulet() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/gui_lok.h b/engines/kyra/gui_lok.h
index 4d7bfa1ada..5a8d6ab532 100644
--- a/engines/kyra/gui_lok.h
+++ b/engines/kyra/gui_lok.h
@@ -182,4 +182,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/gui_lol.cpp b/engines/kyra/gui_lol.cpp
index c64d3e7723..3ab52b9940 100644
--- a/engines/kyra/gui_lol.cpp
+++ b/engines/kyra/gui_lol.cpp
@@ -395,8 +395,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(getLangString(0x4253), 33, 1, 160, 0);
- _screen->printText(getLangString(0x4254), 39, 1, 152, 0);
+ _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);
}
int spellLevels = 0;
@@ -3007,4 +3007,3 @@ const char *GUI_LoL::getMenuItemLabel(const MenuItem &menuItem) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/gui_lol.h b/engines/kyra/gui_lol.h
index bc49b21299..0686926534 100644
--- a/engines/kyra/gui_lol.h
+++ b/engines/kyra/gui_lol.h
@@ -182,4 +182,3 @@ private:
#endif
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/gui_mr.cpp b/engines/kyra/gui_mr.cpp
index 32eb02e06d..82082961e9 100644
--- a/engines/kyra/gui_mr.cpp
+++ b/engines/kyra/gui_mr.cpp
@@ -1607,4 +1607,3 @@ void GUI_MR::drawSliderBar(int slider, const uint8 *shape) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/gui_mr.h b/engines/kyra/gui_mr.h
index 9c8d79b321..6303dff83f 100644
--- a/engines/kyra/gui_mr.h
+++ b/engines/kyra/gui_mr.h
@@ -85,4 +85,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/gui_v2.cpp b/engines/kyra/gui_v2.cpp
index dcc53b7c9e..c0477f29f1 100644
--- a/engines/kyra/gui_v2.cpp
+++ b/engines/kyra/gui_v2.cpp
@@ -887,4 +887,3 @@ int GUI_v2::choiceNo(Button *caller) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/gui_v2.h b/engines/kyra/gui_v2.h
index 0009bf8e54..ef95c0301a 100644
--- a/engines/kyra/gui_v2.h
+++ b/engines/kyra/gui_v2.h
@@ -231,4 +231,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/item.h b/engines/kyra/item.h
index 86b6fc7d46..4b236372a2 100644
--- a/engines/kyra/item.h
+++ b/engines/kyra/item.h
@@ -39,4 +39,3 @@ enum {
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/items_hof.cpp b/engines/kyra/items_hof.cpp
index 73aed2e067..711e1b8f7c 100644
--- a/engines/kyra/items_hof.cpp
+++ b/engines/kyra/items_hof.cpp
@@ -427,4 +427,3 @@ void KyraEngine_HoF::setMouseCursor(Item item) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/items_lok.cpp b/engines/kyra/items_lok.cpp
index d66eb553f2..d598a17cf1 100644
--- a/engines/kyra/items_lok.cpp
+++ b/engines/kyra/items_lok.cpp
@@ -575,7 +575,14 @@ void KyraEngine_LoK::dropItem(int unk1, int item, int x, int y, int unk2) {
if (processItemDrop(_currentCharacter->sceneId, item, x, y, unk1, unk2))
return;
snd_playSoundEffect(54);
+
+ // Old floppy versions don't print warning messages and don't have the necessary string resources.
+ // These versions will only play the warning sound effect.
+ if (_flags.isOldFloppy && !_noDropList)
+ return;
+
assert(_noDropList);
+
if (12 == countItemsInScene(_currentCharacter->sceneId))
drawSentenceCommand(_noDropList[0], 6);
else
@@ -969,4 +976,3 @@ int KyraEngine_LoK::getItemListIndex(Item item) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/items_lol.cpp b/engines/kyra/items_lol.cpp
index 2cf2cb2c70..7e9ae439fc 100644
--- a/engines/kyra/items_lol.cpp
+++ b/engines/kyra/items_lol.cpp
@@ -551,4 +551,3 @@ int LoLEngine::checkSceneForItems(uint16 *blockDrawObjects, int color) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/items_mr.cpp b/engines/kyra/items_mr.cpp
index 88c02f56c8..c731627026 100644
--- a/engines/kyra/items_mr.cpp
+++ b/engines/kyra/items_mr.cpp
@@ -544,4 +544,3 @@ int KyraEngine_MR::getItemCommandStringInv(uint16 item) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/items_v2.cpp b/engines/kyra/items_v2.cpp
index 29dddc6772..c191c2e62b 100644
--- a/engines/kyra/items_v2.cpp
+++ b/engines/kyra/items_v2.cpp
@@ -105,4 +105,3 @@ void KyraEngine_v2::removeHandItem() {
}
} // end of namesapce Kyra
-
diff --git a/engines/kyra/kyra_hof.cpp b/engines/kyra/kyra_hof.cpp
index 5c58e6e3ed..b82099f058 100644
--- a/engines/kyra/kyra_hof.cpp
+++ b/engines/kyra/kyra_hof.cpp
@@ -1052,8 +1052,7 @@ void KyraEngine_HoF::runStartScript(int script, int unk1) {
void KyraEngine_HoF::loadNPCScript() {
_emc->unload(&_npcScriptData);
- char filename[12];
- strcpy(filename, "_NPC.EMC");
+ char filename[] = "_NPC.EMC";
if (_flags.platform != Common::kPlatformPC || _flags.isTalkie) {
switch (_lang) {
@@ -1084,7 +1083,7 @@ void KyraEngine_HoF::loadNPCScript() {
#pragma mark -
void KyraEngine_HoF::resetScaleTable() {
- Common::set_to(_scaleTable, _scaleTable + ARRAYSIZE(_scaleTable), 0x100);
+ Common::set_to(_scaleTable, ARRAYEND(_scaleTable), 0x100);
}
void KyraEngine_HoF::setScaleTableItem(int item, int data) {
@@ -1674,7 +1673,7 @@ void KyraEngine_HoF::setCauldronState(uint8 state, bool paletteFade) {
}
void KyraEngine_HoF::clearCauldronTable() {
- Common::set_to(_cauldronTable, _cauldronTable+ARRAYSIZE(_cauldronTable), -1);
+ Common::set_to(_cauldronTable, ARRAYEND(_cauldronTable), -1);
}
void KyraEngine_HoF::addFrontCauldronTable(int item) {
@@ -1998,4 +1997,3 @@ void KyraEngine_HoF::readSettings() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/kyra_hof.h b/engines/kyra/kyra_hof.h
index da7486bc29..2561171598 100644
--- a/engines/kyra/kyra_hof.h
+++ b/engines/kyra/kyra_hof.h
@@ -925,4 +925,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/kyra_lok.cpp b/engines/kyra/kyra_lok.cpp
index 7f356f34c1..27d0849e5f 100644
--- a/engines/kyra/kyra_lok.cpp
+++ b/engines/kyra/kyra_lok.cpp
@@ -98,6 +98,8 @@ KyraEngine_LoK::KyraEngine_LoK(OSystem *system, const GameFlags &flags)
_malcolmFrame = 0;
_malcolmTimer1 = _malcolmTimer2 = 0;
+
+ _soundFiles = 0;
}
KyraEngine_LoK::~KyraEngine_LoK() {
@@ -121,6 +123,8 @@ KyraEngine_LoK::~KyraEngine_LoK() {
delete _animator;
delete _seq;
+ delete[] _soundFiles;
+
delete[] _characterList;
delete[] _roomTable;
diff --git a/engines/kyra/kyra_lok.h b/engines/kyra/kyra_lok.h
index 066c27c69a..57e6bd39ab 100644
--- a/engines/kyra/kyra_lok.h
+++ b/engines/kyra/kyra_lok.h
@@ -826,4 +826,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/kyra_mr.cpp b/engines/kyra/kyra_mr.cpp
index f5bcd04ea0..5798e99a1f 100644
--- a/engines/kyra/kyra_mr.cpp
+++ b/engines/kyra/kyra_mr.cpp
@@ -1426,4 +1426,3 @@ void KyraEngine_MR::readSettings() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/kyra_mr.h b/engines/kyra/kyra_mr.h
index b762648d29..ec76340638 100644
--- a/engines/kyra/kyra_mr.h
+++ b/engines/kyra/kyra_mr.h
@@ -668,4 +668,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/kyra_v1.cpp b/engines/kyra/kyra_v1.cpp
index 3b2c9b67eb..c950612a42 100644
--- a/engines/kyra/kyra_v1.cpp
+++ b/engines/kyra/kyra_v1.cpp
@@ -650,4 +650,3 @@ void KyraEngine_v1::syncSoundSettings() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/kyra_v1.h b/engines/kyra/kyra_v1.h
index 83455f3922..584176e08c 100644
--- a/engines/kyra/kyra_v1.h
+++ b/engines/kyra/kyra_v1.h
@@ -109,6 +109,7 @@ struct GameFlags {
bool isDemo : 1;
bool useAltShapeHeader : 1; // alternative shape header (uses 2 bytes more, those are unused though)
bool isTalkie : 1;
+ bool isOldFloppy : 1;
bool useHiResOverlay : 1;
bool use16ColorMode : 1;
bool useDigSound : 1;
@@ -422,4 +423,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/kyra_v2.cpp b/engines/kyra/kyra_v2.cpp
index d0f8d78bd1..e8cb9b4370 100644
--- a/engines/kyra/kyra_v2.cpp
+++ b/engines/kyra/kyra_v2.cpp
@@ -243,4 +243,3 @@ int KyraEngine_v2::updateCharPos(int *table, int force) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/kyra_v2.h b/engines/kyra/kyra_v2.h
index f21458ab5d..56391d151a 100644
--- a/engines/kyra/kyra_v2.h
+++ b/engines/kyra/kyra_v2.h
@@ -398,4 +398,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/lol.cpp b/engines/kyra/lol.cpp
index 2cca4fd4e3..5aba264ceb 100644
--- a/engines/kyra/lol.cpp
+++ b/engines/kyra/lol.cpp
@@ -1038,11 +1038,14 @@ char *LoLEngine::getLangString(uint16 id) {
char *string = (char *)getTableEntry(buffer, realId);
char *srcBuffer = _stringBuffer[_lastUsedStringBuffer];
- if (_flags.lang != Common::JA_JPN) {
- Util::decodeString1(string, srcBuffer);
+ if (_flags.lang == Common::JA_JPN) {
+ decodeSjis(string, srcBuffer);
+ } else if (_flags.lang == Common::RU_RUS && !_flags.isTalkie) {
+ decodeCyrillic(string, srcBuffer);
Util::decodeString2(srcBuffer, srcBuffer);
} else {
- decodeSjis(string, srcBuffer);
+ Util::decodeString1(string, srcBuffer);
+ Util::decodeString2(srcBuffer, srcBuffer);
}
++_lastUsedStringBuffer;
@@ -1081,6 +1084,54 @@ void LoLEngine::decodeSjis(const char *src, char *dst) {
*dst = 0;
}
+int LoLEngine::decodeCyrillic(const char *src, char *dst) {
+ static const uint8 decodeTable1[] = {
+ 0x20, 0xAE, 0xA5, 0xA0, 0xE2, 0xAD, 0xA8, 0xE0, 0xE1, 0xAB, 0xA2,
+ 0xA4, 0xAC, 0xAA, 0xE3, 0x2E
+ };
+
+ static const uint8 decodeTable2[] = {
+ 0xAD, 0xAF, 0xA2, 0xE1, 0xAC, 0xAA, 0x20, 0xA4, 0xAB, 0x20,
+ 0xE0, 0xE2, 0xA4, 0xA2, 0xA6, 0xAA, 0x20, 0xAD, 0xE2, 0xE0,
+ 0xAB, 0xAC, 0xE1, 0xA1, 0x20, 0xAC, 0xE1, 0xAA, 0xAB, 0xE0,
+ 0xE2, 0xAD, 0xAE, 0xEC, 0xA8, 0xA5, 0xA0, 0x20, 0xE0, 0xEB,
+ 0xAE, 0xA0, 0xA8, 0xA5, 0xEB, 0xEF, 0x20, 0xE3, 0xE2, 0x20,
+ 0xAD, 0xE7, 0xAB, 0xAC, 0xA5, 0xE0, 0xAE, 0xA0, 0xA5, 0xA8,
+ 0xE3, 0xEB, 0xEF, 0xAA, 0xE2, 0xEF, 0xA5, 0xEC, 0xAB, 0xAE,
+ 0xAA, 0xAF, 0xA8, 0xA0, 0xA5, 0xEF, 0xAE, 0xEE, 0xEC, 0xE3,
+ 0xA0, 0xAE, 0xA5, 0xA8, 0xEB, 0x20, 0xE0, 0xE3, 0xA0, 0xA5,
+ 0xAE, 0xA8, 0xE3, 0xE1, 0xAD, 0xAB, 0x20, 0xAE, 0xA5, 0xA0,
+ 0xA8, 0xAD, 0x2E, 0xE3, 0xAE, 0xA0, 0xA8, 0x20, 0xE0, 0xE3,
+ 0xAB, 0xE1, 0x20, 0xA4, 0xAD, 0xE2, 0xA1, 0xA6, 0xAC, 0xE1,
+ 0x0D, 0x20, 0x2E, 0x09, 0xA0, 0xA1, 0x9D, 0xA5
+ };
+
+ int size = 0;
+ uint cChar = 0;
+ while ((cChar = *src++) != 0) {
+ if (cChar & 0x80) {
+ cChar &= 0x7F;
+ int index = (cChar & 0x78) >> 3;
+ *dst++ = decodeTable1[index];
+ ++size;
+ assert(cChar < sizeof(decodeTable2));
+ cChar = decodeTable2[cChar];
+ } else if (cChar >= 0x70) {
+ cChar = *src++;
+ } else if (cChar >= 0x30) {
+ if (cChar < 0x60)
+ cChar -= 0x30;
+ cChar |= 0x80;
+ }
+
+ *dst++ = cChar;
+ ++size;
+ }
+
+ *dst++ = 0;
+ return size;
+}
+
bool LoLEngine::addCharacter(int id) {
const uint16 *cdf[] = { _charDefsMan, _charDefsMan, _charDefsMan, _charDefsWoman,
_charDefsMan, _charDefsMan, _charDefsWoman, _charDefsKieran, _charDefsAkshel };
@@ -4547,4 +4598,3 @@ void LoLEngine::generateTempData() {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/lol.h b/engines/kyra/lol.h
index 06a4f29f63..164f030a1d 100644
--- a/engines/kyra/lol.h
+++ b/engines/kyra/lol.h
@@ -363,12 +363,13 @@ private:
void showIntro();
struct CharacterPrev {
- const char *name;
int x, y;
int attrib[3];
};
static const CharacterPrev _charPreviews[];
+ static const char *const _charPreviewNamesDefault[];
+ static const char *const _charPreviewNamesRussianFloppy[];
// PC98 specific data
static const uint16 _charPosXPC98[];
@@ -875,6 +876,7 @@ private:
char *getLangString(uint16 id);
uint8 *getTableEntry(uint8 *buffer, uint16 id);
void decodeSjis(const char *src, char *dst);
+ int decodeCyrillic(const char *src, char *dst);
static const char * const _languageExt[];
@@ -1525,4 +1527,3 @@ private:
#endif
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/resource.cpp b/engines/kyra/resource.cpp
index bc9c93f8ca..a35ec3d81b 100644
--- a/engines/kyra/resource.cpp
+++ b/engines/kyra/resource.cpp
@@ -366,6 +366,3 @@ void Resource::initializeLoaders() {
}
} // End of namespace Kyra
-
-
-
diff --git a/engines/kyra/resource.h b/engines/kyra/resource.h
index 1c69362bfd..c2a697f18d 100644
--- a/engines/kyra/resource.h
+++ b/engines/kyra/resource.h
@@ -202,6 +202,7 @@ enum KyraResources {
k1ConfigStrings,
k1AudioTracks,
+ k1AudioTracks2,
k1AudioTracksIntro,
k1CreditsStrings,
@@ -479,7 +480,3 @@ private:
} // End of namespace Kyra
#endif
-
-
-
-
diff --git a/engines/kyra/saveload.cpp b/engines/kyra/saveload.cpp
index 80182d949b..42c5d3e8a8 100644
--- a/engines/kyra/saveload.cpp
+++ b/engines/kyra/saveload.cpp
@@ -113,12 +113,7 @@ KyraEngine_v1::kReadSaveHeaderError KyraEngine_v1::readSaveHeader(Common::Seekab
if (header.version >= 14) {
if (loadThumbnail) {
- header.thumbnail = new Graphics::Surface();
- assert(header.thumbnail);
- if (!Graphics::loadThumbnail(*in, *header.thumbnail)) {
- delete header.thumbnail;
- header.thumbnail = 0;
- }
+ header.thumbnail = Graphics::loadThumbnail(*in);
} else {
Graphics::skipThumbnail(*in);
}
@@ -268,4 +263,3 @@ void KyraEngine_v1::loadGameStateCheck(int slot) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/saveload_hof.cpp b/engines/kyra/saveload_hof.cpp
index 645bd2903f..1d28b6bc13 100644
--- a/engines/kyra/saveload_hof.cpp
+++ b/engines/kyra/saveload_hof.cpp
@@ -329,4 +329,3 @@ Common::Error KyraEngine_HoF::loadGameState(int slot) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/saveload_lok.cpp b/engines/kyra/saveload_lok.cpp
index 34762d4c92..22d412e7f6 100644
--- a/engines/kyra/saveload_lok.cpp
+++ b/engines/kyra/saveload_lok.cpp
@@ -317,4 +317,3 @@ Common::Error KyraEngine_LoK::saveGameStateIntern(int slot, const char *saveName
return Common::kNoError;
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/saveload_lol.cpp b/engines/kyra/saveload_lol.cpp
index 07842ea358..1bf26477e6 100644
--- a/engines/kyra/saveload_lol.cpp
+++ b/engines/kyra/saveload_lol.cpp
@@ -472,4 +472,3 @@ Graphics::Surface *LoLEngine::generateSaveThumbnail() const {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/saveload_mr.cpp b/engines/kyra/saveload_mr.cpp
index 139375264f..c49a528d02 100644
--- a/engines/kyra/saveload_mr.cpp
+++ b/engines/kyra/saveload_mr.cpp
@@ -327,4 +327,3 @@ Common::Error KyraEngine_MR::loadGameState(int slot) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/scene_hof.cpp b/engines/kyra/scene_hof.cpp
index 197ef38bf1..f6cd77ca89 100644
--- a/engines/kyra/scene_hof.cpp
+++ b/engines/kyra/scene_hof.cpp
@@ -95,7 +95,7 @@ void KyraEngine_HoF::enterNewScene(uint16 newScene, int facing, int unk1, int un
_emc->run(&_sceneScriptState);
}
- Common::for_each(_wsaSlots, _wsaSlots+ARRAYSIZE(_wsaSlots), Common::mem_fun(&WSAMovie_v2::close));
+ Common::for_each(_wsaSlots, ARRAYEND(_wsaSlots), Common::mem_fun(&WSAMovie_v2::close));
_specialExitCount = 0;
memset(_specialExitTable, -1, sizeof(_specialExitTable));
@@ -735,4 +735,3 @@ bool KyraEngine_HoF::lineIsPassable(int x, int y) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/scene_lok.cpp b/engines/kyra/scene_lok.cpp
index 6cb3e2a98a..a926f8493f 100644
--- a/engines/kyra/scene_lok.cpp
+++ b/engines/kyra/scene_lok.cpp
@@ -1299,4 +1299,3 @@ void KyraEngine_LoK::setupSceneResource(int sceneId) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/scene_lol.cpp b/engines/kyra/scene_lol.cpp
index 165919dff2..a5a2562448 100644
--- a/engines/kyra/scene_lol.cpp
+++ b/engines/kyra/scene_lol.cpp
@@ -2192,4 +2192,3 @@ void LoLEngine::drawSpecialGuiShape(int pageNum) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/scene_mr.cpp b/engines/kyra/scene_mr.cpp
index 6b234d9a73..74d2e89e6e 100644
--- a/engines/kyra/scene_mr.cpp
+++ b/engines/kyra/scene_mr.cpp
@@ -83,7 +83,7 @@ void KyraEngine_MR::enterNewScene(uint16 sceneId, int facing, int unk1, int unk2
}
_specialExitCount = 0;
- Common::set_to(_specialExitTable, _specialExitTable+ARRAYSIZE(_specialExitTable), 0xFFFF);
+ Common::set_to(_specialExitTable, ARRAYEND(_specialExitTable), 0xFFFF);
_mainCharacter.sceneId = sceneId;
_sceneList[sceneId].flags &= ~1;
@@ -388,7 +388,7 @@ void KyraEngine_MR::initSceneScript(int unk1) {
strcat(filename, ".CPS");
_screen->loadBitmap(filename, 3, 3, 0);
- Common::set_to(_specialSceneScriptState, _specialSceneScriptState+ARRAYSIZE(_specialSceneScriptState), false);
+ Common::set_to(_specialSceneScriptState, ARRAYEND(_specialSceneScriptState), false);
_sceneEnterX1 = 160;
_sceneEnterY1 = 0;
_sceneEnterX2 = 296;
diff --git a/engines/kyra/scene_v2.cpp b/engines/kyra/scene_v2.cpp
index fbddb6604e..061ce4c21a 100644
--- a/engines/kyra/scene_v2.cpp
+++ b/engines/kyra/scene_v2.cpp
@@ -225,4 +225,3 @@ void KyraEngine_v2::pathfinderFinializePath(int *moveTable, int tableLen, int x,
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/screen.cpp b/engines/kyra/screen.cpp
index 8f008a58b6..4eae89e0d4 100644
--- a/engines/kyra/screen.cpp
+++ b/engines/kyra/screen.cpp
@@ -3459,4 +3459,3 @@ uint8 *Palette::fetchRealPalette() const {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/screen.h b/engines/kyra/screen.h
index e23f104760..51a9a7f744 100644
--- a/engines/kyra/screen.h
+++ b/engines/kyra/screen.h
@@ -616,4 +616,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/screen_hof.cpp b/engines/kyra/screen_hof.cpp
index 1282447411..24e0751c0e 100644
--- a/engines/kyra/screen_hof.cpp
+++ b/engines/kyra/screen_hof.cpp
@@ -146,4 +146,3 @@ void Screen_HoF::copyRegionEx(int srcPage, int srcW, int srcH, int dstPage, int
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/screen_hof.h b/engines/kyra/screen_hof.h
index 08a9133809..edcb339da9 100644
--- a/engines/kyra/screen_hof.h
+++ b/engines/kyra/screen_hof.h
@@ -53,4 +53,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/screen_lol.cpp b/engines/kyra/screen_lol.cpp
index c6874ca0ed..6d0460e0a1 100644
--- a/engines/kyra/screen_lol.cpp
+++ b/engines/kyra/screen_lol.cpp
@@ -959,4 +959,3 @@ void Screen_LoL::postProcessCursor(uint8 *data, int w, int h, int pitch) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/screen_lol.h b/engines/kyra/screen_lol.h
index 926183225f..02b78606b9 100644
--- a/engines/kyra/screen_lol.h
+++ b/engines/kyra/screen_lol.h
@@ -119,4 +119,3 @@ private:
#endif
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/screen_v2.cpp b/engines/kyra/screen_v2.cpp
index 64fbe2b834..57581fa750 100644
--- a/engines/kyra/screen_v2.cpp
+++ b/engines/kyra/screen_v2.cpp
@@ -388,4 +388,3 @@ void Screen_v2::checkedPageUpdate(int srcPage, int dstPage) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/screen_v2.h b/engines/kyra/screen_v2.h
index eb8415be78..d85c762038 100644
--- a/engines/kyra/screen_v2.h
+++ b/engines/kyra/screen_v2.h
@@ -73,4 +73,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/script.cpp b/engines/kyra/script.cpp
index b185b8ed6f..303cbb45aa 100644
--- a/engines/kyra/script.cpp
+++ b/engines/kyra/script.cpp
@@ -443,4 +443,3 @@ void EMCInterpreter::op_setRetAndJmp(EMCState *script) {
}
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/script.h b/engines/kyra/script.h
index 4250732c7c..5bd75f7b80 100644
--- a/engines/kyra/script.h
+++ b/engines/kyra/script.h
@@ -140,4 +140,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/script_hof.cpp b/engines/kyra/script_hof.cpp
index 27cfc808cc..296cd4002b 100644
--- a/engines/kyra/script_hof.cpp
+++ b/engines/kyra/script_hof.cpp
@@ -1730,4 +1730,3 @@ void KyraEngine_HoF::setupOpcodeTable() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/script_lok.cpp b/engines/kyra/script_lok.cpp
index 2b90d001ca..4d40971124 100644
--- a/engines/kyra/script_lok.cpp
+++ b/engines/kyra/script_lok.cpp
@@ -558,7 +558,10 @@ int KyraEngine_LoK::o1_setCustomPaletteRange(EMCState *script) {
_screen->copyPalette(0, 12);
}
} else {
- _screen->getPalette(1).copy(_specialPalettes[stackPos(0)], 0, stackPos(2), stackPos(1));
+ if (!_specialPalettes[stackPos(0)])
+ warning("KyraEngine_LoK::o1_setCustomPaletteRange(): Trying to use missing special palette %d", stackPos(0));
+ else
+ _screen->getPalette(1).copy(_specialPalettes[stackPos(0)], 0, stackPos(2), stackPos(1));
}
return 0;
}
@@ -1956,4 +1959,3 @@ void KyraEngine_LoK::setupOpcodeTable() {
#undef Opcode
} // End of namespace Kyra
-
diff --git a/engines/kyra/script_lol.cpp b/engines/kyra/script_lol.cpp
index 1afefcffa4..b4b8f00022 100644
--- a/engines/kyra/script_lol.cpp
+++ b/engines/kyra/script_lol.cpp
@@ -3071,4 +3071,3 @@ void LoLEngine::setupOpcodeTable() {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/script_tim.cpp b/engines/kyra/script_tim.cpp
index 6f0f0ab083..83d03d1f63 100644
--- a/engines/kyra/script_tim.cpp
+++ b/engines/kyra/script_tim.cpp
@@ -1246,4 +1246,3 @@ int TIMInterpreter_LoL::cmd_dialogueBox(const uint16 *param) {
#endif // ENABLE_LOL
} // End of namespace Kyra
-
diff --git a/engines/kyra/script_tim.h b/engines/kyra/script_tim.h
index 89040720c2..11b716c3a9 100644
--- a/engines/kyra/script_tim.h
+++ b/engines/kyra/script_tim.h
@@ -317,4 +317,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/script_v1.cpp b/engines/kyra/script_v1.cpp
index b12a08a417..4cfbdf8ab8 100644
--- a/engines/kyra/script_v1.cpp
+++ b/engines/kyra/script_v1.cpp
@@ -123,4 +123,3 @@ int KyraEngine_v1::o1_playSoundEffect(EMCState *script) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/script_v2.cpp b/engines/kyra/script_v2.cpp
index 2e3a3d2bc4..e42cdf9ff4 100644
--- a/engines/kyra/script_v2.cpp
+++ b/engines/kyra/script_v2.cpp
@@ -340,4 +340,3 @@ int KyraEngine_v2::o2a_setResetFrame(EMCState *script) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/seqplayer.cpp b/engines/kyra/seqplayer.cpp
index ce2eafcea5..531d864293 100644
--- a/engines/kyra/seqplayer.cpp
+++ b/engines/kyra/seqplayer.cpp
@@ -657,4 +657,3 @@ bool SeqPlayer::playSequence(const uint8 *seqData, bool skipSeq) {
} // End of namespace Kyra
-
diff --git a/engines/kyra/seqplayer.h b/engines/kyra/seqplayer.h
index 1f030cde19..12d94e3f6d 100644
--- a/engines/kyra/seqplayer.h
+++ b/engines/kyra/seqplayer.h
@@ -122,4 +122,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/sequences_hof.cpp b/engines/kyra/sequences_hof.cpp
index e504278047..50b5db78fc 100644
--- a/engines/kyra/sequences_hof.cpp
+++ b/engines/kyra/sequences_hof.cpp
@@ -2920,5 +2920,3 @@ void KyraEngine_HoF::seq_makeBookAppear() {
}
} // End of namespace Kyra
-
-
diff --git a/engines/kyra/sequences_lok.cpp b/engines/kyra/sequences_lok.cpp
index 5f9bd86724..2de0565a74 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.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::kPlatformPC) || _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));
@@ -2112,4 +2112,3 @@ void KyraEngine_LoK::drawJewelsFadeOutEnd(int jewel) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sequences_lol.cpp b/engines/kyra/sequences_lol.cpp
index 27f3951faf..83d525d400 100644
--- a/engines/kyra/sequences_lol.cpp
+++ b/engines/kyra/sequences_lol.cpp
@@ -316,8 +316,9 @@ int LoLEngine::chooseCharacter() {
_screen->printText(_tim->getCTableEntry(53), 72, 184, 0x81, 0x00);
_screen->printText(_tim->getCTableEntry(55), 72, 192, 0x81, 0x00);
} else {
+ const char *const *previewNames = (_flags.lang == Common::RU_RUS && !_flags.isTalkie) ? _charPreviewNamesRussianFloppy : _charPreviewNamesDefault;
for (int i = 0; i < 4; ++i) {
- _screen->fprintStringIntro("%s", _charPreviews[i].x + 16, _charPreviews[i].y + 36, 0xC0, 0x00, 0x9C, 0x120, _charPreviews[i].name);
+ _screen->fprintStringIntro("%s", _charPreviews[i].x + 16, _charPreviews[i].y + 36, 0xC0, 0x00, 0x9C, 0x120, previewNames[i]);
_screen->fprintStringIntro("%d", _charPreviews[i].x + 21, _charPreviews[i].y + 48, 0x98, 0x00, 0x9C, 0x220, _charPreviews[i].attrib[0]);
_screen->fprintStringIntro("%d", _charPreviews[i].x + 21, _charPreviews[i].y + 56, 0x98, 0x00, 0x9C, 0x220, _charPreviews[i].attrib[1]);
_screen->fprintStringIntro("%d", _charPreviews[i].x + 21, _charPreviews[i].y + 64, 0x98, 0x00, 0x9C, 0x220, _charPreviews[i].attrib[2]);
@@ -1518,4 +1519,3 @@ void LoLEngine::loadOutroShapes(int file, uint8 **storage) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/sequences_mr.cpp b/engines/kyra/sequences_mr.cpp
index b3adc687c2..d546d9c25b 100644
--- a/engines/kyra/sequences_mr.cpp
+++ b/engines/kyra/sequences_mr.cpp
@@ -235,4 +235,3 @@ void KyraEngine_MR::uninitAnimationShapes(int count, uint8 *filedata) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sequences_v2.cpp b/engines/kyra/sequences_v2.cpp
index fb61d7cddf..e431e45f10 100644
--- a/engines/kyra/sequences_v2.cpp
+++ b/engines/kyra/sequences_v2.cpp
@@ -128,4 +128,3 @@ void KyraEngine_v2::processAnimationScript(int allowSkip, int resetChar) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound.cpp b/engines/kyra/sound.cpp
index 4da35cc28b..b4fcea784e 100644
--- a/engines/kyra/sound.cpp
+++ b/engines/kyra/sound.cpp
@@ -276,5 +276,3 @@ const Sound::SpeechCodecs Sound::_supportedCodecs[] = {
};
} // End of namespace Kyra
-
-
diff --git a/engines/kyra/sound_adlib.cpp b/engines/kyra/sound_adlib.cpp
index 75041b8161..12c980486c 100644
--- a/engines/kyra/sound_adlib.cpp
+++ b/engines/kyra/sound_adlib.cpp
@@ -2445,4 +2445,3 @@ void SoundAdLibPC::unk2() {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound_adlib.h b/engines/kyra/sound_adlib.h
index 58b97e3474..962df40de8 100644
--- a/engines/kyra/sound_adlib.h
+++ b/engines/kyra/sound_adlib.h
@@ -108,4 +108,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/sound_amiga.cpp b/engines/kyra/sound_amiga.cpp
index dc09670408..dfb0aa8bf3 100644
--- a/engines/kyra/sound_amiga.cpp
+++ b/engines/kyra/sound_amiga.cpp
@@ -214,4 +214,3 @@ void SoundAmiga::playSoundEffect(uint8 track) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound_digital.cpp b/engines/kyra/sound_digital.cpp
index 3f8eddbb0d..fe0f1fb9bc 100644
--- a/engines/kyra/sound_digital.cpp
+++ b/engines/kyra/sound_digital.cpp
@@ -544,4 +544,3 @@ const SoundDigital::AudioCodecs SoundDigital::_supportedCodecs[] = {
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound_lol.cpp b/engines/kyra/sound_lol.cpp
index 7262635728..efa844968d 100644
--- a/engines/kyra/sound_lol.cpp
+++ b/engines/kyra/sound_lol.cpp
@@ -312,4 +312,3 @@ int LoLEngine::convertVolumeFromMixer(int value) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/sound_midi.cpp b/engines/kyra/sound_midi.cpp
index 26b6b31d0a..1a5c2f94ac 100644
--- a/engines/kyra/sound_midi.cpp
+++ b/engines/kyra/sound_midi.cpp
@@ -787,4 +787,3 @@ Common::String SoundMidiPC::getFileName(const Common::String &str) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound_pcspk.cpp b/engines/kyra/sound_pcspk.cpp
index 051f36dd1b..8664e2a22e 100644
--- a/engines/kyra/sound_pcspk.cpp
+++ b/engines/kyra/sound_pcspk.cpp
@@ -364,4 +364,3 @@ const uint8 MidiDriver_PCSpeaker::_noteTable2[] = {
};
} // End of namespace Kyra
-
diff --git a/engines/kyra/sound_towns.cpp b/engines/kyra/sound_towns.cpp
index 012f1f5d7d..c851842f22 100644
--- a/engines/kyra/sound_towns.cpp
+++ b/engines/kyra/sound_towns.cpp
@@ -673,4 +673,3 @@ void SoundTownsPC98_v2::updateVolumeSettings() {
} // End of namespace Kyra
#undef EUPHONY_FADEOUT_TICKS
-
diff --git a/engines/kyra/sprites.cpp b/engines/kyra/sprites.cpp
index e0d1142905..f4cebf6470 100644
--- a/engines/kyra/sprites.cpp
+++ b/engines/kyra/sprites.cpp
@@ -573,4 +573,3 @@ int Sprites::getDrawLayer(int y) {
return returnValue;
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/sprites.h b/engines/kyra/sprites.h
index 6a4241f13e..93cdcdbbcb 100644
--- a/engines/kyra/sprites.h
+++ b/engines/kyra/sprites.h
@@ -97,4 +97,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/sprites_lol.cpp b/engines/kyra/sprites_lol.cpp
index a77fda043c..fbf4c7c5c2 100644
--- a/engines/kyra/sprites_lol.cpp
+++ b/engines/kyra/sprites_lol.cpp
@@ -1632,4 +1632,3 @@ void LoLEngine::killMonster(MonsterInPlay *monster) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/staticres.cpp b/engines/kyra/staticres.cpp
index d56abc5d47..f6d59922b1 100644
--- a/engines/kyra/staticres.cpp
+++ b/engines/kyra/staticres.cpp
@@ -38,7 +38,7 @@
namespace Kyra {
-#define RESFILE_VERSION 74
+#define RESFILE_VERSION 78
namespace {
bool checkKyraDat(Common::SeekableReadStream *file) {
@@ -80,7 +80,7 @@ const IndexTable iGameTable[] = {
};
byte getGameID(const GameFlags &flags) {
- return Common::find(iGameTable, iGameTable + ARRAYSIZE(iGameTable) - 1, flags.gameID)->value;
+ return Common::find(iGameTable, ARRAYEND(iGameTable) - 1, flags.gameID)->value;
}
const IndexTable iLanguageTable[] = {
@@ -90,11 +90,12 @@ const IndexTable iLanguageTable[] = {
{ Common::ES_ESP, 4 },
{ Common::IT_ITA, 5 },
{ Common::JA_JPN, 6 },
+ { Common::RU_RUS, 7 },
{ -1, -1 }
};
byte getLanguageID(const GameFlags &flags) {
- return Common::find(iLanguageTable, iLanguageTable + ARRAYSIZE(iLanguageTable) - 1, flags.lang)->value;
+ return Common::find(iLanguageTable, ARRAYEND(iLanguageTable) - 1, flags.lang)->value;
}
const IndexTable iPlatformTable[] = {
@@ -107,11 +108,13 @@ const IndexTable iPlatformTable[] = {
};
byte getPlatformID(const GameFlags &flags) {
- return Common::find(iPlatformTable, iPlatformTable + ARRAYSIZE(iPlatformTable) - 1, flags.platform)->value;
+ return Common::find(iPlatformTable, ARRAYEND(iPlatformTable) - 1, flags.platform)->value;
}
byte getSpecialID(const GameFlags &flags) {
- if (flags.isDemo && flags.isTalkie)
+ if (flags.isOldFloppy)
+ return 4;
+ else if (flags.isDemo && flags.isTalkie)
return 3;
else if (flags.isDemo)
return 2;
@@ -748,7 +751,17 @@ void KyraEngine_LoK::initStaticResource() {
_storyStrings = _staticres->loadStrings(k1PC98StoryStrings, _storyStringsSize);
- _soundFiles = _staticres->loadStrings(k1AudioTracks, _soundFilesSize);
+ int size1, size2;
+ const char *const *soundfiles1 = _staticres->loadStrings(k1AudioTracks, size1);
+ const char *const *soundfiles2 = _staticres->loadStrings(k1AudioTracks2, size2);
+ _soundFilesSize = size1 + size2;
+ if (_soundFilesSize) {
+ delete[] _soundFiles;
+ const char **soundfiles = new const char*[_soundFilesSize];
+ for (int i = 0; i < _soundFilesSize; i++)
+ soundfiles[i] = (i < size1) ? soundfiles1[i] : soundfiles2[i - size1];
+ _soundFiles = soundfiles;
+ }
_soundFilesIntro = _staticres->loadStrings(k1AudioTracksIntro, _soundFilesIntroSize);
_cdaTrackTable = (const int32 *)_staticres->loadRawData(k1TownsCDATable, _cdaTrackTableSize);
@@ -926,7 +939,7 @@ void KyraEngine_LoK::loadButtonShapes() {
void KyraEngine_LoK::loadMainScreen(int page) {
_screen->clearPage(page);
- if ((_flags.lang == Common::EN_ANY && !_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::kPlatformPC) || _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);
@@ -2129,4 +2142,3 @@ const int8 KyraEngine_MR::_albumWSAY[] = {
};
} // End of namespace Kyra
-
diff --git a/engines/kyra/staticres_lol.cpp b/engines/kyra/staticres_lol.cpp
index cf75a317e1..ca35569afa 100644
--- a/engines/kyra/staticres_lol.cpp
+++ b/engines/kyra/staticres_lol.cpp
@@ -687,11 +687,25 @@ const char * const LoLEngine::_languageExt[] = {
"GER"
};
+const char *const LoLEngine::_charPreviewNamesDefault[] = {
+ "Ak\'shel",
+ "Michael",
+ "Kieran",
+ "Conrad"
+};
+
+const char *const LoLEngine::_charPreviewNamesRussianFloppy[] = {
+ "\x80\xAA\xE8\xA5\xAB\0",
+ "\x8C\xA0\xA9\xAA\xAB\0",
+ "\x8A\xA8\xE0\xA0\xAD\0",
+ "\x8A\xAE\xAD\xE0\xA0\xA4\0"
+};
+
const LoLEngine::CharacterPrev LoLEngine::_charPreviews[] = {
- { "Ak\'shel", 0x060, 0x7F, { 0x0F, 0x08, 0x05 } },
- { "Michael", 0x09A, 0x7F, { 0x06, 0x0A, 0x0F } },
- { "Kieran", 0x0D4, 0x7F, { 0x08, 0x06, 0x08 } },
- { "Conrad", 0x10F, 0x7F, { 0x0A, 0x0C, 0x0A } }
+ { 0x060, 0x7F, { 0x0F, 0x08, 0x05 } },
+ { 0x09A, 0x7F, { 0x06, 0x0A, 0x0F } },
+ { 0x0D4, 0x7F, { 0x08, 0x06, 0x08 } },
+ { 0x10F, 0x7F, { 0x0A, 0x0C, 0x0A } }
};
const uint16 LoLEngine::_charPosXPC98[] = {
@@ -877,4 +891,3 @@ const int LoLEngine::_outroMonsterScaleTableY[] = {
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/text.h b/engines/kyra/text.h
index a95c2c4abc..199029469e 100644
--- a/engines/kyra/text.h
+++ b/engines/kyra/text.h
@@ -79,4 +79,3 @@ protected:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/text_hof.h b/engines/kyra/text_hof.h
index f371fb1898..414d02fe4b 100644
--- a/engines/kyra/text_hof.h
+++ b/engines/kyra/text_hof.h
@@ -50,4 +50,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/text_lol.cpp b/engines/kyra/text_lol.cpp
index 346d5100b8..1c2167b892 100644
--- a/engines/kyra/text_lol.cpp
+++ b/engines/kyra/text_lol.cpp
@@ -830,4 +830,3 @@ void TextDisplayer_LoL::clearCurDim() {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/text_lol.h b/engines/kyra/text_lol.h
index 020d4b5e89..3e59bc90fe 100644
--- a/engines/kyra/text_lol.h
+++ b/engines/kyra/text_lol.h
@@ -97,4 +97,3 @@ private:
#endif
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/text_mr.cpp b/engines/kyra/text_mr.cpp
index d690b70266..fd4a00b73c 100644
--- a/engines/kyra/text_mr.cpp
+++ b/engines/kyra/text_mr.cpp
@@ -898,4 +898,3 @@ void KyraEngine_MR::doDialog(int dlgIndex, int funcNum) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/timer.h b/engines/kyra/timer.h
index e9cb8b2b0c..205be5957d 100644
--- a/engines/kyra/timer.h
+++ b/engines/kyra/timer.h
@@ -104,4 +104,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/timer_lok.cpp b/engines/kyra/timer_lok.cpp
index e1825d027d..555b3680e2 100644
--- a/engines/kyra/timer_lok.cpp
+++ b/engines/kyra/timer_lok.cpp
@@ -190,4 +190,3 @@ void KyraEngine_LoK::setWalkspeed(uint8 newSpeed) {
}
} // End of namespace Kyra
-
diff --git a/engines/kyra/timer_lol.cpp b/engines/kyra/timer_lol.cpp
index 4f450f570f..3221556e6d 100644
--- a/engines/kyra/timer_lol.cpp
+++ b/engines/kyra/timer_lol.cpp
@@ -255,4 +255,3 @@ void LoLEngine::timerFadeMessageText(int timerNum) {
} // End of namespace Kyra
#endif // ENABLE_LOL
-
diff --git a/engines/kyra/util.cpp b/engines/kyra/util.cpp
index 3776bdc705..f71978d03e 100644
--- a/engines/kyra/util.cpp
+++ b/engines/kyra/util.cpp
@@ -146,4 +146,3 @@ const uint8 Util::_charMapISOToDOS[128] = {
};
} // End of namespace Kyra
-
diff --git a/engines/kyra/util.h b/engines/kyra/util.h
index 042da74cd9..b91f84ad36 100644
--- a/engines/kyra/util.h
+++ b/engines/kyra/util.h
@@ -46,4 +46,3 @@ private:
} // End of namespace Kyra
#endif
-
diff --git a/engines/kyra/wsamovie.cpp b/engines/kyra/wsamovie.cpp
index 37102744a8..21ff80f033 100644
--- a/engines/kyra/wsamovie.cpp
+++ b/engines/kyra/wsamovie.cpp
@@ -459,5 +459,3 @@ int WSAMovie_v2::open(const char *filename, int unk1, Palette *palBuf) {
}
} // End of namespace Kyra
-
-
diff --git a/engines/kyra/wsamovie.h b/engines/kyra/wsamovie.h
index 0d8bfdc869..7dadc9319b 100644
--- a/engines/kyra/wsamovie.h
+++ b/engines/kyra/wsamovie.h
@@ -132,5 +132,3 @@ protected:
} // End of namespace Kyra
#endif
-
-
diff --git a/engines/lastexpress/data/snd.cpp b/engines/lastexpress/data/snd.cpp
index 28d20df9bd..6845be8808 100644
--- a/engines/lastexpress/data/snd.cpp
+++ b/engines/lastexpress/data/snd.cpp
@@ -38,7 +38,7 @@ namespace LastExpress {
#pragma region Sound filters tables
-static const int filterData[1424] = {
+static const int stepTable[1424] = {
0, 0, 0, 0, 128, 256, 384, 512, 0, 0, 0, 0, 128, 256,
384, 512, 0, 0, 0, 0, 192, 320, 448, 576, 0, 0, 0, 0,
192, 320, 448, 576, 64, 64, 64, 64, 256, 384, 512, 640,
@@ -152,7 +152,7 @@ static const int filterData[1424] = {
4224, 4352, 4480, 4608, 4096, 4096, 4096, 4096, 4288,
4416, 4544, 4672, 4096, 4096, 4096, 4096, 4288, 4416,
4544, 4672, 4160, 4160, 4160, 4160, 4352, 4480, 4608,
- 4.6, 4160, 4160, 4160, 4160, 4352, 4480, 4608, 4736,
+ 4736, 4160, 4160, 4160, 4160, 4352, 4480, 4608, 4736,
4224, 4224, 4224, 4224, 4416, 4544, 4672, 4800, 4224,
4224, 4224, 4224, 4416, 4544, 4672, 4800, 4288, 4288,
4288, 4288, 4480, 4608, 4736, 4864, 4288, 4288, 4288,
@@ -195,7 +195,7 @@ static const int filterData[1424] = {
5632
};
-static const int filterData2[1424] = {
+static const int imaTable[1424] = {
0, 2, 4, 6, 7, 9, 11, 13, 0, -2, -4, -6, -7, -9, -11,
-13, 1, 3, 5, 7, 9, 11, 13, 15, -1, -3, -5, -7, -9,
-11, -13, -15, 1, 3, 5, 7, 10, 12, 14, 16, -1, -3, -5,
@@ -352,16 +352,20 @@ static const int p2s[17] = { 0, 1, 1, 3, 1, 5, 3, 7, 1, 9, 5, 11, 3, 13, 7, 15,
// Last Express ADPCM is similar to MS IMA mono, but inverts its nibbles
// and does not have the 4 byte per channel requirement
-class LastExpress_ADPCMStream : public Audio::Ima_ADPCMStream {
+class LastExpress_ADPCMStream : public Audio::ADPCMStream {
public:
LastExpress_ADPCMStream(Common::SeekableReadStream *stream, DisposeAfterUse::Flag disposeAfterUse, uint32 size, uint32 blockSize, int32 filterId) :
- Audio::Ima_ADPCMStream(stream, disposeAfterUse, size, 44100, 1, blockSize) {
+ Audio::ADPCMStream(stream, disposeAfterUse, size, 44100, 1, blockSize) {
_currentFilterId = -1;
_nextFilterId = filterId;
}
int readBuffer(int16 *buffer, const int numSamples) {
int samples = 0;
+ // Temporary data
+ int step = 0;
+ int sample = 0;
+ byte idx = 0;
assert(numSamples % 2 == 0);
@@ -369,15 +373,37 @@ public:
if (_blockPos[0] == _blockAlign) {
// read block header
_status.ima_ch[0].last = _stream->readSint16LE();
- _status.ima_ch[0].stepIndex = _stream->readSint16LE();
+ _status.ima_ch[0].stepIndex = _stream->readSint16LE() << 6;
_blockPos[0] = 4;
+
+ // Get current filter
+ _currentFilterId = _nextFilterId;
+ _nextFilterId = -1;
+
+ // No filter: skip decoding
+ if (_currentFilterId == -1)
+ break;
+
+ // Compute step adjustment
+ _stepAdjust1 = p1s[_currentFilterId];
+ _stepAdjust2 = p2s[_currentFilterId];
}
for (; samples < numSamples && _blockPos[0] < _blockAlign && !_stream->eos() && _stream->pos() < _endpos; samples += 2) {
byte data = _stream->readByte();
_blockPos[0]++;
- buffer[samples] = decodeIMA((data >> 4) & 0x0f);
- buffer[samples + 1] = decodeIMA(data & 0x0f);
+
+ // First nibble
+ idx = data >> 4;
+ step = stepTable[idx + _status.ima_ch[0].stepIndex / 4];
+ sample = CLIP(imaTable[idx + _status.ima_ch[0].stepIndex / 4] + _status.ima_ch[0].last, -32767, 32767);
+ buffer[samples] = (_stepAdjust2 * sample) >> _stepAdjust1;
+
+ // Second nibble
+ idx = data & 0xF;
+ _status.ima_ch[0].stepIndex = stepTable[idx + step / 4];
+ _status.ima_ch[0].last = CLIP(imaTable[idx + step / 4] + sample, -32767, 32767);
+ buffer[samples + 1] = (_stepAdjust2 * _status.ima_ch[0].last) >> _stepAdjust1;
}
}
@@ -387,41 +413,10 @@ public:
void setFilterId(int32 filterId) { _nextFilterId = filterId; }
private:
- int32 _currentFilterId;
- int32 _nextFilterId; // the sound filter id, -1 for none
-
- /**
- * Sound filter
- *
- * @param [in] data If non-null, the input data
- * @param [in,out] buffer If non-null, the output buffer.
- * @param p1 The first filter input.
- * @param p2 The second filter input.
- */
- static void soundFilter(byte *data, int16 *buffer, int p1, int p2) {
- int data1, data2, data1p, data2p;
- byte idx;
-
- data2 = data[0];
- data1 = data[1] << 6;
-
- data += 2;
-
- for (int count = 0; count < 735; count++) {
- idx = data[count] >> 4;
-
- data1p = filterData[idx + data1];
- data2p = CLIP(filterData2[idx + data1] + data2, -32767, 32767);
-
- buffer[2 * count] = (p2 * data2p) >> p1;
-
- idx = data[count] & 0xF;
-
- data1 = filterData[idx + data1p];
- data2 = CLIP(filterData2[idx + data1p] + data2p, -32767, 32767);
- buffer[2 * count + 1] = (p2 * data2) >> p1;
- }
- }
+ int32 _currentFilterId;
+ int32 _nextFilterId; // the sound filter id, -1 for none
+ int32 _stepAdjust1;
+ int32 _stepAdjust2;
};
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/game/savegame.cpp b/engines/lastexpress/game/savegame.cpp
index ebada5dd4e..57c18b5697 100644
--- a/engines/lastexpress/game/savegame.cpp
+++ b/engines/lastexpress/game/savegame.cpp
@@ -45,12 +45,12 @@ namespace LastExpress {
static const struct {
const char *saveFile;
} gameInfo[6] = {
- {"blue.egg"},
- {"red.egg"},
- {"green.egg"},
- {"purple.egg"},
- {"teal.egg"},
- {"gold.egg"}
+ {"lastexpress-blue.egg"},
+ {"lastexpress-red.egg"},
+ {"lastexpress-green.egg"},
+ {"lastexpress-purple.egg"},
+ {"lastexpress-teal.egg"},
+ {"lastexpress-gold.egg"}
};
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/lastexpress.cpp b/engines/lastexpress/lastexpress.cpp
index 885ca8b212..250fa0f2d0 100644
--- a/engines/lastexpress/lastexpress.cpp
+++ b/engines/lastexpress/lastexpress.cpp
@@ -42,6 +42,7 @@
#include "common/debug-channels.h"
#include "common/error.h"
#include "common/fs.h"
+#include "common/timer.h"
#include "engines/util.h"
@@ -146,7 +147,7 @@ Common::Error LastExpressEngine::run() {
// Start sound manager and setup timer
_soundMan = new SoundManager(this);
- _timer->installTimerProc(&soundTimer, 17000, this);
+ _timer->installTimerProc(&soundTimer, 17000, this, "lastexpressSound");
// Menu
_menu = new Menu(this);
diff --git a/engines/lastexpress/lastexpress.h b/engines/lastexpress/lastexpress.h
index f8f38788a0..1431b79b9f 100644
--- a/engines/lastexpress/lastexpress.h
+++ b/engines/lastexpress/lastexpress.h
@@ -27,7 +27,6 @@
#include "lastexpress/eventhandler.h"
#include "common/random.h"
-#include "common/timer.h"
#include "engines/engine.h"
diff --git a/engines/lastexpress/module.mk b/engines/lastexpress/module.mk
index a11a7c4b67..8b3287d5d7 100644
--- a/engines/lastexpress/module.mk
+++ b/engines/lastexpress/module.mk
@@ -80,4 +80,4 @@ PLUGIN := 1
endif
# Include common rules
-include $(srcdir)/rules.mk \ No newline at end of file
+include $(srcdir)/rules.mk
diff --git a/engines/lastexpress/shared.h b/engines/lastexpress/shared.h
index 7b640c773a..d60a498447 100644
--- a/engines/lastexpress/shared.h
+++ b/engines/lastexpress/shared.h
@@ -84,29 +84,26 @@ enum SoundFlag {
};
enum SoundState {
- kSoundState0 = 0,
- kSoundState1 = 1,
- kSoundState2 = 2
+ kSoundStateNone = 0,
+ kSoundState1 = 1,
+ kSoundState2 = 2
};
enum SoundStatus {
+ kSoundStatusClear0 = 0x10,
+ kSoundStatusFilter = 0x1F,
kSoundStatus_20 = 0x20,
kSoundStatus_40 = 0x40,
+ kSoundStatusCached = 0x80,
kSoundStatus_180 = 0x180,
kSoundStatusClosed = 0x200,
kSoundStatus_400 = 0x400,
-
+ kSoundStatusClear4 = 0x800,
kSoundStatus_8000 = 0x8000,
kSoundStatus_20000 = 0x20000,
kSoundStatus_100000 = 0x100000,
kSoundStatus_20000000 = 0x20000000,
kSoundStatus_40000000 = 0x40000000,
-
- kSoundStatusClear0 = 0x10,
- kSoundStatusFilter = 0x1F,
- kSoundStatusCached = 0x80,
- kSoundStatusClear3 = 0x200,
- kSoundStatusClear4 = 0x800,
kSoundStatusClearAll = 0xFFFFFFE0
};
diff --git a/engines/lastexpress/sound/entry.cpp b/engines/lastexpress/sound/entry.cpp
index 87d8ccdb30..44cc68a57b 100644
--- a/engines/lastexpress/sound/entry.cpp
+++ b/engines/lastexpress/sound/entry.cpp
@@ -88,8 +88,8 @@ void SoundEntry::close() {
_status.status |= kSoundStatusClosed;
// Loop until ready
- while (!(_status.status1 & 4) && !(getSoundQueue()->getFlag() & 8) && (getSoundQueue()->getFlag() & 1))
- ; // empty loop body
+ //while (!(_status.status1 & 4) && !(getSoundQueue()->getFlag() & 8) && (getSoundQueue()->getFlag() & 1))
+ // ; // empty loop body
// The original game remove the entry from the cache here,
// but since we are called from within an iterator loop
@@ -290,7 +290,7 @@ bool SoundEntry::updateSound() {
}
}
}
- //if (status.status2 & 0x40 && !((uint32)_status.status & 0x180) && v1->soundBuffer)
+ //if (status.status2 & 0x40 && !((uint32)_status.status & 0x180) && v1->soundBuffer)
// Sound_FillSoundBuffer(v1);
}
result = true;
diff --git a/engines/lastexpress/sound/queue.cpp b/engines/lastexpress/sound/queue.cpp
index 0a6442ceed..33b4c06793 100644
--- a/engines/lastexpress/sound/queue.cpp
+++ b/engines/lastexpress/sound/queue.cpp
@@ -102,80 +102,41 @@ void SoundQueue::removeFromQueue(Common::String filename) {
}
void SoundQueue::updateQueue() {
- //Common::StackLock locker(_mutex);
-
- //warning("[Sound::updateQueue] Not implemented");
-
- int maxPriority = 0;
- Common::List<SoundEntry *>::iterator lsnd;
- SoundEntry *msnd;
-
- bool loopedPlaying;
-
- loopedPlaying = 0;
- //++g_sound_flag;
+ Common::StackLock locker(_mutex);
- for (lsnd = _soundList.begin(); lsnd != _soundList.end(); ++lsnd) {
- if ((*lsnd)->getType() == kSoundType1)
- break;
- }
+ ++_flag;
- if (getSoundState() & 1) {
- if (!(*lsnd) || getFlags()->flag_3 || (*lsnd && (*lsnd)->getTime() > getSound()->getLoopingSoundDuration())) {
+ if (getSoundState() & kSoundState1) {
+ SoundEntry *entry = getEntry(kSoundType1);
+ if (!entry || getFlags()->flag_3 || (entry && entry->getTime() > getSound()->getLoopingSoundDuration())) {
getSound()->playLoopingSound(0x45);
} else {
if (getSound()->getData1() && getSound()->getData2() >= getSound()->getData1()) {
- (*lsnd)->update(getSound()->getData0());
+ entry->update(getSound()->getData0());
getSound()->setData1(0);
}
}
}
- msnd = NULL;
-
- for (lsnd = _soundList.begin(); lsnd != _soundList.end(); ++lsnd) {
- if ((*lsnd)->getStatus().status2 & 0x1) { // Sound is stopped
- // original code
- //if ((*lsnd)->soundBuffer)
- // Sound_RemoveSoundDataFromCache(*lsnd);
- //if ((*lsnd)->archive) {
- // Archive_SetStatusNotLoaded((*lsnd)->archive);
- // (*lsnd)->archive = 0;
- // (*lsnd)->field_28 = 3;
- //}
-
- if (_soundList.size() < 6) {
- if ((*lsnd)->getStatus().status1 & 0x1F) {
- int pri = (*lsnd)->getPriority() + ((*lsnd)->getStatus().status1 & 0x1F);
-
- if (pri > maxPriority) {
- msnd = *lsnd;
- maxPriority = pri;
- }
- }
- }
- }
+ for (Common::List<SoundEntry *>::iterator it = _soundList.begin(); it != _soundList.end(); ++it) {
+ SoundEntry *entry = *it;
- if (!(*lsnd)->updateSound() && !((*lsnd)->getStatus().status3 & 0x8)) {
- if (msnd == *lsnd) {
- maxPriority = 0;
- msnd = 0;
- }
- if (*lsnd) {
- (*lsnd)->close();
- SAFE_DELETE(*lsnd);
- lsnd = _soundList.reverse_erase(lsnd);
- }
+ // Original removes the entry data from the cache and sets the archive as not loaded
+ // and if the sound data buffer is not full, loads a new entry to be played based on
+ // its priority and filter id
+
+ if (!entry->updateSound() && !(entry->getStatus().status3 & 0x8)) {
+ entry->close();
+ SAFE_DELETE(entry);
+ it = _soundList.reverse_erase(it);
}
}
-
- // We don't need this
- //if (msnd)
- // msnd->updateEntryInternal();
+ // Original update the current entry, loading another set of samples to be decoded
getFlags()->flag_3 = 0;
- //--g_sound_flag;
+
+ --_flag;
}
void SoundQueue::resetQueue() {
@@ -209,17 +170,10 @@ void SoundQueue::resetQueue(SoundType type1, SoundType type2) {
}
void SoundQueue::clearQueue() {
- _flag |= 4;
-
- // FIXME: Wait a while for a flag to be set
- //for (int i = 0; i < 3000000; i++)
- // if (_flag & 8)
- // break;
+ Common::StackLock locker(_mutex);
_flag |= 8;
- Common::StackLock locker(_mutex);
-
for (Common::List<SoundEntry *>::iterator i = _soundList.begin(); i != _soundList.end(); ++i) {
SoundEntry *entry = (*i);
@@ -240,7 +194,7 @@ void SoundQueue::clearStatus() {
Common::StackLock locker(_mutex);
for (Common::List<SoundEntry *>::iterator i = _soundList.begin(); i != _soundList.end(); ++i)
- (*i)->setStatus((*i)->getStatus().status | kSoundStatusClear3);
+ (*i)->setStatus((*i)->getStatus().status | kSoundStatusClosed);
}
//////////////////////////////////////////////////////////////////////////
diff --git a/engines/lastexpress/sound/sound.cpp b/engines/lastexpress/sound/sound.cpp
index c04b6d361f..2f7bb4a601 100644
--- a/engines/lastexpress/sound/sound.cpp
+++ b/engines/lastexpress/sound/sound.cpp
@@ -1305,8 +1305,8 @@ void SoundManager::playLoopingSound(int param) {
int partNumber = 1;
int fnameLen = 6;
- if (_queue->getSoundState() & 1 && param >= 0x45 && param <= 0x46) {
- if (_queue->getSoundState() & 2) {
+ if (_queue->getSoundState() & kSoundState1 && param >= 0x45 && param <= 0x46) {
+ if (_queue->getSoundState() & kSoundState2) {
strcpy(tmp, "STEAM.SND");
_loopingSoundDuration = 32767;
diff --git a/engines/lure/module.mk b/engines/lure/module.mk
index ba158756b4..57126a6491 100644
--- a/engines/lure/module.mk
+++ b/engines/lure/module.mk
@@ -31,4 +31,3 @@ endif
# Include common rules
include $(srcdir)/rules.mk
-
diff --git a/engines/lure/sound.h b/engines/lure/sound.h
index 9fa9a91260..365a7ccdb6 100644
--- a/engines/lure/sound.h
+++ b/engines/lure/sound.h
@@ -30,10 +30,11 @@
#include "common/mutex.h"
#include "common/singleton.h"
#include "common/ptr.h"
+
#include "audio/mididrv.h"
-#include "audio/mixer.h"
class MidiParser;
+class MidiChannel;
namespace Lure {
diff --git a/engines/m4/converse.cpp b/engines/m4/converse.cpp
index 4630d2e2d6..bdce7928ac 100644
--- a/engines/m4/converse.cpp
+++ b/engines/m4/converse.cpp
@@ -609,7 +609,7 @@ void Converse::loadConversation(const char *convName) {
// ----------------------------------------------------------------------------
// Entry action chunks
case CHUNK_CASN: // Conditional assign
- case CHUNK_ASGN: // Assign
+ case CHUNK_ASGN: { // Assign
curAction = new EntryAction();
if (debugFlag) debugCN(kDebugConversations, "ASGN chunk\n");
curAction->actionType = kAssignValue;
@@ -625,9 +625,11 @@ void Converse::loadConversation(const char *convName) {
}
curAction->targetOffset = convS->readUint32LE();
- assert(convS->readUint32LE() == kOpAssign);
+ int op = convS->readUint32LE();
+ assert(op == kOpAssign);
curAction->value = convS->readUint32LE();
break;
+ }
case CHUNK_CCGO: // Conditional go to entry
case CHUNK_CHDE: // Conditional hide entry
case CHUNK_CUHD: // Conditional unhide entry
diff --git a/engines/m4/globals.cpp b/engines/m4/globals.cpp
index f4aab8ae8f..7a0b776eb8 100644
--- a/engines/m4/globals.cpp
+++ b/engines/m4/globals.cpp
@@ -380,6 +380,15 @@ void MadsGlobals::loadMadsObjects() {
_vm->res()->toss("objects.dat");
}
+int MadsGlobals::getObjectIndex(uint16 descId) {
+ for (uint i = 0; i < _madsObjects.size(); ++i) {
+ if (_madsObjects[i].get()->_descId == descId)
+ return i;
+ }
+
+ return -1;
+}
+
int MadsGlobals::messageIndexOf(uint32 messageId) {
for (uint i = 0; i < _madsMessages.size(); ++i)
{
diff --git a/engines/m4/globals.h b/engines/m4/globals.h
index ae2941c169..693dc9d6c9 100644
--- a/engines/m4/globals.h
+++ b/engines/m4/globals.h
@@ -297,6 +297,8 @@ public:
void loadMadsObjects();
uint32 getObjectsSize() { return _madsObjects.size(); }
MadsObject *getObject(uint32 index) { return _madsObjects[index].get(); }
+ int getObjectIndex(uint16 descId);
+ int getObjectFolder(uint32 folderId) { warning("TODO: getObjectFolder"); return -1; }
void addVisitedScene(int sceneNumber);
bool isSceneVisited(int sceneNumber);
diff --git a/engines/m4/m4.h b/engines/m4/m4.h
index 46107cb20a..b40ba0e878 100644
--- a/engines/m4/m4.h
+++ b/engines/m4/m4.h
@@ -26,7 +26,6 @@
#include "common/scummsys.h"
#include "common/util.h"
#include "common/random.h"
-#include "audio/mididrv.h"
#include "engines/engine.h"
diff --git a/engines/m4/mads_logic.cpp b/engines/m4/mads_logic.cpp
index cc28a26e68..335127393e 100644
--- a/engines/m4/mads_logic.cpp
+++ b/engines/m4/mads_logic.cpp
@@ -199,6 +199,10 @@ uint32 MadsSceneLogic::getDataValue(int dataId) {
return getActiveAnimationBool();
case 11:
return getAnimationCurrentFrame();
+ case 12:
+ return _madsVm->scene()->_action._inProgress;
+ case 13:
+ return _madsVm->globals()->_difficultyLevel;
default:
// All other data variables get stored in the hash table
return _madsVm->globals()->_dataMap[dataId];
@@ -239,6 +243,12 @@ void MadsSceneLogic::setDataValue(int dataId, uint16 dataValue) {
case 11:
error("Tried to set read only data field %d", dataId);
break;
+ case 12:
+ _madsVm->scene()->_action._inProgress = dataValue != 0;
+ break;
+ case 13:
+ _madsVm->globals()->_difficultyLevel = dataValue;
+ break;
default:
// All other data variables get stored in the hash table
_madsVm->globals()->_dataMap[dataId] = dataValue;
@@ -986,6 +996,37 @@ void MadsSceneLogic::callSubroutine(int subIndex, Common::Stack<ScriptVar> &stac
break;
}
+ case 27: {
+ // object_get_id_from_desc
+ EXTRACT_PARAMS(1);
+ stack.push(_madsVm->globals()->getObjectIndex(p[0]));
+ break;
+ }
+
+ case 28: {
+ // object_get_folder
+ EXTRACT_PARAMS(1);
+ stack.push(_madsVm->globals()->getObjectFolder(p[0]));
+ break;
+ }
+
+ case 29:
+ // inventory_remove
+ EXTRACT_PARAMS(1);
+ _madsVm->scene()->getInterface()->addObjectToInventory(p[0]);
+ break;
+
+ case 30:
+ // image_inter_list_call
+ EXTRACT_PARAMS(1);
+ warning("TODO: image_inter_list_call");
+ break;
+
+ case 31:
+ // dialog_flags_show
+ warning("todo: dialog_flags_show");
+ break;
+
default:
error("Unknown subroutine %d called", subIndex);
break;
diff --git a/engines/m4/midi.h b/engines/m4/midi.h
index 6eef907ce3..817150fd81 100644
--- a/engines/m4/midi.h
+++ b/engines/m4/midi.h
@@ -57,4 +57,3 @@ protected:
} // End of namespace M4
#endif
-
diff --git a/engines/m4/saveload.cpp b/engines/m4/saveload.cpp
index aa35385bfe..a7615fa4b6 100644
--- a/engines/m4/saveload.cpp
+++ b/engines/m4/saveload.cpp
@@ -96,7 +96,8 @@ SaveGameList *SaveLoad::getSaves() {
result->push_back(Common::String());
} else {
// Skip over byte offset
- assert(saveFile->readUint32LE() < 0x100);
+ uint32 offset = saveFile->readUint32LE();
+ assert(offset < 0x100);
// Read in savegame name
saveFile->read(&saveName[0], MAX_SAVEGAME_NAME);
diff --git a/engines/m4/scripttab.h b/engines/m4/scripttab.h
index b6156f0b82..3264ae743c 100644
--- a/engines/m4/scripttab.h
+++ b/engines/m4/scripttab.h
@@ -133,4 +133,3 @@
VARIABLE(kInterfaceVisible)
};
#undef VARIABLE
-
diff --git a/engines/made/detection.cpp b/engines/made/detection.cpp
index 1320daaf9d..fa08923e44 100644
--- a/engines/made/detection.cpp
+++ b/engines/made/detection.cpp
@@ -104,7 +104,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("rtzcd.red", "cd8b62ece4677c438688c1de3f5379b9"),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -121,7 +121,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.dat", "a1db8c97a78dae10f91d356f16ad07b8", 536064),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -138,7 +138,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.red", "c4e2430e6b6c6ff1562a80fb4a9df24c", 276177),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -156,7 +156,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a"),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -173,7 +173,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 276584),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -191,7 +191,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.dat", "9d740378da2d16e83d0d0efff01bf83a", 525824),
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -209,7 +209,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 355442),
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -227,7 +227,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.dat", "5b86035aed0277f96e3d173542b5364a", 523776),
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -245,7 +245,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354971),
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -263,7 +263,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.dat", "bde8251a8e34e87c54e3f93147d56c9e", 523776),
Common::FR_FRA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -281,7 +281,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1s("rtzcd.red", "946997d8b0aa6cb4e848bad02a1fc3d2", 354614),
Common::FR_FRA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -333,7 +333,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("rtzcd.dat", "c4fccf67ad247f09b94c3c808b138576"),
Common::JA_JPN,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -351,7 +351,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("rtzcd.dat", "e949a6a42d82daabfa7d4dc0a87a9843"),
Common::JA_JPN,
Common::kPlatformFMTowns,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -369,7 +369,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("rtzcd.dat", "0c0117e98530c736a141c2aad6834dc5"),
Common::JA_JPN,
Common::kPlatformPC98,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_RTZ,
@@ -386,7 +386,7 @@ static const MadeGameDescription gameDescriptions[] = {
AD_ENTRY1("manhole.dat", "cb21e31ed35c963208343bc995225b73"),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NOSPEECH
},
GID_MANHOLE,
diff --git a/engines/mohawk/console.cpp b/engines/mohawk/console.cpp
index e7dc84606c..0234c86c7e 100644
--- a/engines/mohawk/console.cpp
+++ b/engines/mohawk/console.cpp
@@ -117,7 +117,7 @@ static const char *mystStackNames[12] = {
static const uint16 default_start_card[12] = {
3137,
10000,
- 2001, // TODO: Should be 2000?
+ 2000,
5038,
2, // TODO: Should be 1?
1,
diff --git a/engines/mohawk/cstime.h b/engines/mohawk/cstime.h
index 3a1de6a137..0bc236f930 100644
--- a/engines/mohawk/cstime.h
+++ b/engines/mohawk/cstime.h
@@ -30,8 +30,6 @@
#include "common/random.h"
#include "common/list.h"
-#include "audio/mixer.h"
-
namespace Mohawk {
class CSTimeCase;
diff --git a/engines/mohawk/cursors.cpp b/engines/mohawk/cursors.cpp
index 78e099ccfe..cbd17e0b86 100644
--- a/engines/mohawk/cursors.cpp
+++ b/engines/mohawk/cursors.cpp
@@ -49,36 +49,13 @@ void CursorManager::hideCursor() {
}
void CursorManager::setDefaultCursor() {
- static const byte defaultCursor[] = {
- 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0,
- 1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0,
- 1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0,
- 1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0,
- 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0,
- 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0,
- 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
- 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
- 1, 2, 2, 2, 1, 2, 2, 1, 0, 0, 0, 0,
- 1, 2, 2, 1, 1, 2, 2, 1, 0, 0, 0, 0,
- 1, 2, 1, 0, 1, 1, 2, 2, 1, 0, 0, 0,
- 1, 1, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0,
- 1, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
- };
-
- static const byte bwPalette[] = {
- 0x00, 0x00, 0x00, // Black
- 0xFF, 0xFF, 0xFF // White
- };
-
- CursorMan.replaceCursor(defaultCursor, 12, 20, 0, 0, 0);
- CursorMan.replaceCursorPalette(bwPalette, 1, 2);
+ Graphics::Cursor *cursor = Graphics::makeDefaultWinCursor();
+
+ CursorMan.replaceCursor(cursor->getSurface(), cursor->getWidth(), cursor->getHeight(), cursor->getHotspotX(),
+ cursor->getHotspotY(), cursor->getKeyColor());
+ CursorMan.replaceCursorPalette(cursor->getPalette(), cursor->getPaletteStartIndex(), cursor->getPaletteCount());
+
+ delete cursor;
}
void CursorManager::setCursor(uint16 id) {
diff --git a/engines/mohawk/detection_tables.h b/engines/mohawk/detection_tables.h
index 01eac0aaba..a587d06760 100644
--- a/engines/mohawk/detection_tables.h
+++ b/engines/mohawk/detection_tables.h
@@ -653,6 +653,23 @@ static const MohawkGameDescription gameDescriptions[] = {
"HARRY.EXE"
},
+ // part of "Super Living Books" compilation
+ // from rgemini, bug #3309343
+ {
+ {
+ "harryhh",
+ "",
+ AD_ENTRY1("HARRY.512", "39d11399796dfa36d3f631d2d87e8b85"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_LIVINGBOOKSV1,
+ 0,
+ "HARRY.EXE"
+ },
+
{
{
"carmentq",
@@ -929,6 +946,23 @@ static const MohawkGameDescription gameDescriptions[] = {
"TORTOISE.EXE"
},
+ // part of "Super Living Books" compilation
+ // from rgemini, bug #3309343
+ {
+ {
+ "tortoise",
+ "",
+ AD_ENTRY1("TORTOISE.512", "e9ec7a6bc6b451c9e85e5b4f072d5143"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_LIVINGBOOKSV1,
+ 0,
+ "TORTOISE.EXE"
+ },
+
// From afholman in bug#3309308
{
{
@@ -1053,6 +1087,23 @@ static const MohawkGameDescription gameDescriptions[] = {
"ARTHUR.EXE"
},
+ // part of "Super Living Books" compilation
+ // from rgemini, bug #3309343
+ {
+ {
+ "arthur",
+ "",
+ AD_ENTRY1("PAGES.512", "cd995d20d0d7b4642476fd76044b4e5b"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_LIVINGBOOKSV1,
+ GF_LB_10,
+ "ARTHUR.EXE"
+ },
+
// From afholman in bug#3309308
{
{
@@ -1195,6 +1246,22 @@ static const MohawkGameDescription gameDescriptions[] = {
"GRANDMA.EXE"
},
+ // from jjnryan in bug #3389857
+ {
+ {
+ "grandma",
+ "v1.0",
+ AD_ENTRY1("PAGES.512", "613ca946bc8d91087fb7c10e9b84e88b"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_LIVINGBOOKSV1,
+ GF_LB_10,
+ "GRANDMA.EXE"
+ },
+
{
{
"grandma",
@@ -1366,6 +1433,23 @@ static const MohawkGameDescription gameDescriptions[] = {
"NEWKID.EXE"
},
+ // part of "Super Living Books" compilation
+ // from rgemini, bug #3309343
+ {
+ {
+ "newkid",
+ "",
+ AD_ENTRY1("NEWKID.512", "28a5aef3e6ef7e2ed7742485c25bdff6"),
+ Common::EN_ANY,
+ Common::kPlatformWindows,
+ ADGF_NO_FLAGS,
+ Common::GUIO_NONE
+ },
+ GType_LIVINGBOOKSV1,
+ 0,
+ "NEWKID.EXE"
+ },
+
// From aluff in bug#3309981
{
{
diff --git a/engines/mohawk/dialogs.cpp b/engines/mohawk/dialogs.cpp
index 6cb455917e..4461a30ad4 100644
--- a/engines/mohawk/dialogs.cpp
+++ b/engines/mohawk/dialogs.cpp
@@ -81,14 +81,17 @@ enum {
kTransCmd = 'TRAN',
kWaterCmd = 'WATR',
kDropCmd = 'DROP',
- kMapCmd = 'SMAP'
+ kMapCmd = 'SMAP',
+ kMenuCmd = 'MENU'
};
#ifdef ENABLE_MYST
MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) : GUI::OptionsDialog("", 120, 120, 360, 200), _vm(vm) {
+ // I18N: Option for fast scene switching
_zipModeCheckbox = new GUI::CheckboxWidget(this, 15, 10, 300, 15, _("~Z~ip Mode Activated"), 0, kZipCmd);
_transitionsCheckbox = new GUI::CheckboxWidget(this, 15, 30, 300, 15, _("~T~ransitions Enabled"), 0, kTransCmd);
+ // I18N: Drop book page
_dropPageButton = new GUI::ButtonWidget(this, 15, 60, 100, 25, _("~D~rop Page"), 0, kDropCmd);
// Myst ME only has maps
@@ -97,6 +100,12 @@ MystOptionsDialog::MystOptionsDialog(MohawkEngine_Myst* vm) : GUI::OptionsDialog
else
_showMapButton = 0;
+ // Myst demo only has a menu
+ if (_vm->getFeatures() & GF_DEMO)
+ _returnToMenuButton = new GUI::ButtonWidget(this, 15, 95, 100, 25, _("~M~ain Menu"), 0, kMenuCmd);
+ else
+ _returnToMenuButton = 0;
+
new GUI::ButtonWidget(this, 95, 160, 120, 25, _("~O~K"), 0, GUI::kOKCmd);
new GUI::ButtonWidget(this, 225, 160, 120, 25, _("~C~ancel"), 0, GUI::kCloseCmd);
}
@@ -113,6 +122,15 @@ void MystOptionsDialog::open() {
_showMapButton->setEnabled(_vm->_scriptParser &&
_vm->_scriptParser->getMap());
+ // Return to menu button is not enabled on the menu
+ if (_returnToMenuButton)
+ _returnToMenuButton->setEnabled(_vm->_scriptParser &&
+ _vm->getCurStack() != kDemoStack);
+
+ // Zip mode is disabled in the demo
+ if (_vm->getFeatures() & GF_DEMO)
+ _zipModeCheckbox->setEnabled(false);
+
_zipModeCheckbox->setState(_vm->_gameState->_globals.zipMode);
_transitionsCheckbox->setState(_vm->_gameState->_globals.transitions);
}
@@ -133,6 +151,10 @@ void MystOptionsDialog::handleCommand(GUI::CommandSender *sender, uint32 cmd, ui
_vm->_needsShowMap = true;
close();
break;
+ case kMenuCmd:
+ _vm->_needsShowDemoMenu = true;
+ close();
+ break;
case GUI::kCloseCmd:
close();
break;
diff --git a/engines/mohawk/dialogs.h b/engines/mohawk/dialogs.h
index 853ff30813..844c01ad26 100644
--- a/engines/mohawk/dialogs.h
+++ b/engines/mohawk/dialogs.h
@@ -83,6 +83,7 @@ private:
GUI::CheckboxWidget *_transitionsCheckbox;
GUI::ButtonWidget *_dropPageButton;
GUI::ButtonWidget *_showMapButton;
+ GUI::ButtonWidget *_returnToMenuButton;
};
#endif
diff --git a/engines/mohawk/graphics.cpp b/engines/mohawk/graphics.cpp
index b3653b1fdf..35c9d478d8 100644
--- a/engines/mohawk/graphics.cpp
+++ b/engines/mohawk/graphics.cpp
@@ -672,6 +672,14 @@ void MystGraphics::simulatePreviousDrawDelay(const Common::Rect &dest) {
_nextAllowedDrawTime = time + _constantDrawDelay + dest.height() * dest.width() / _proportionalDrawDelay;
}
+void MystGraphics::fadeToBlack() {
+ // TODO: Implement
+}
+
+void MystGraphics::fadeFromBlack() {
+ // TODO: Implement
+}
+
#endif // ENABLE_MYST
#ifdef ENABLE_RIVEN
@@ -913,7 +921,8 @@ void RivenGraphics::clearMainScreen() {
}
void RivenGraphics::fadeToBlack() {
- // Self-explanatory
+ // The transition speed is forced to best here
+ setTransitionSpeed(kRivenTransitionSpeedBest);
scheduleTransition(16);
clearMainScreen();
runScheduledTransition();
diff --git a/engines/mohawk/graphics.h b/engines/mohawk/graphics.h
index d7057f48cf..96357bbff1 100644
--- a/engines/mohawk/graphics.h
+++ b/engines/mohawk/graphics.h
@@ -129,6 +129,8 @@ public:
void drawRect(Common::Rect rect, RectState state);
void drawLine(const Common::Point &p1, const Common::Point &p2, uint32 color);
void enableDrawingTimeSimulation(bool enable);
+ void fadeToBlack();
+ void fadeFromBlack();
protected:
MohawkSurface *decodeImage(uint16 id);
@@ -194,6 +196,7 @@ public:
void scheduleTransition(uint16 id, Common::Rect rect = Common::Rect(0, 0, 608, 392));
void runScheduledTransition();
void fadeToBlack();
+ void setTransitionSpeed(uint32 speed) { _transitionSpeed = speed; }
// Inventory
void showInventory();
@@ -229,6 +232,7 @@ private:
// Transitions
int16 _scheduledTransition;
Common::Rect _transitionRect;
+ uint32 _transitionSpeed;
// Inventory
void clearInventoryArea();
diff --git a/engines/mohawk/livingbooks.cpp b/engines/mohawk/livingbooks.cpp
index f9d18ff7ff..65073bd970 100644
--- a/engines/mohawk/livingbooks.cpp
+++ b/engines/mohawk/livingbooks.cpp
@@ -204,9 +204,12 @@ Common::Error MohawkEngine_LivingBooks::run() {
break;
case Common::EVENT_LBUTTONDOWN:
- for (uint16 i = 0; i < _items.size(); i++)
- if (_items[i]->contains(event.mouse))
- found = _items[i];
+ for (Common::List<LBItem *>::const_iterator i = _orderedItems.begin(); i != _orderedItems.end(); ++i) {
+ if ((*i)->contains(event.mouse)) {
+ found = *i;
+ break;
+ }
+ }
if (found)
found->handleMouseDown(event.mouse);
@@ -341,6 +344,7 @@ void MohawkEngine_LivingBooks::destroyPage() {
delete _page;
assert(_items.empty());
+ assert(_orderedItems.empty());
_page = NULL;
_notifyEvents.clear();
@@ -567,6 +571,7 @@ void MohawkEngine_LivingBooks::updatePage() {
case kLBDelayedEventDestroy:
_items.remove_at(i);
i--;
+ _orderedItems.remove(delayedEvent.item);
delete delayedEvent.item;
_page->itemDestroyed(delayedEvent.item);
if (_focus == delayedEvent.item)
@@ -613,6 +618,8 @@ void MohawkEngine_LivingBooks::removeArchive(Archive *archive) {
void MohawkEngine_LivingBooks::addItem(LBItem *item) {
_items.push_back(item);
+ _orderedItems.push_front(item);
+ item->_iterator = _orderedItems.begin();
}
void MohawkEngine_LivingBooks::removeItems(const Common::Array<LBItem *> &items) {
@@ -626,6 +633,7 @@ void MohawkEngine_LivingBooks::removeItems(const Common::Array<LBItem *> &items)
break;
}
assert(found);
+ _orderedItems.erase(items[i]->_iterator);
}
}
@@ -1319,8 +1327,13 @@ void MohawkEngine_LivingBooks::handleNotify(NotifyEvent &event) {
if (getGameType() == GType_LIVINGBOOKSV1) {
debug(2, "kLBNotifyChangeMode: %d", event.param);
quitGame();
- } else {
- debug(2, "kLBNotifyChangeMode: mode %d, page %d.%d",
+ break;
+ }
+
+ debug(2, "kLBNotifyChangeMode: v2 type %d", event.param);
+ switch (event.param) {
+ case 1:
+ debug(2, "kLBNotifyChangeMode:, mode %d, page %d.%d",
event.newMode, event.newPage, event.newSubpage);
// TODO: what is entry.newUnknown?
if (!event.newMode)
@@ -1331,6 +1344,13 @@ void MohawkEngine_LivingBooks::handleNotify(NotifyEvent &event) {
error("kLBNotifyChangeMode failed to move to mode %d, page %d.%d",
event.newMode, event.newPage, event.newSubpage);
}
+ break;
+ case 3:
+ debug(2, "kLBNotifyChangeMode: new cursor '%s'", event.newCursor.c_str());
+ _cursor->setCursor(event.newCursor);
+ break;
+ default:
+ error("unknown v2 kLBNotifyChangeMode type %d", event.param);
}
break;
@@ -2084,16 +2104,32 @@ LBScriptEntry *LBItem::parseScriptEntry(uint16 type, uint16 &size, Common::Memor
}
if (type == kLBNotifyScript && entry->opcode == kLBNotifyChangeMode && _vm->getGameType() != GType_LIVINGBOOKSV1) {
- if (size < 8) {
- error("%d unknown bytes in notify entry kLBNotifyChangeMode", size);
+ switch (entry->param) {
+ case 1:
+ if (size < 8)
+ error("%d unknown bytes in notify entry kLBNotifyChangeMode", size);
+ entry->newUnknown = stream->readUint16();
+ entry->newMode = stream->readUint16();
+ entry->newPage = stream->readUint16();
+ entry->newSubpage = stream->readUint16();
+ debug(4, "kLBNotifyChangeMode: unknown %04x, mode %d, page %d.%d",
+ entry->newUnknown, entry->newMode, entry->newPage, entry->newSubpage);
+ size -= 8;
+ break;
+ case 3:
+ {
+ Common::String newCursor = _vm->readString(stream);
+ entry->newCursor = newCursor;
+ if (size < newCursor.size() + 1)
+ error("failed to read newCursor in notify entry");
+ size -= newCursor.size() + 1;
+ debug(4, "kLBNotifyChangeMode: new cursor '%s'", newCursor.c_str());
+ }
+ break;
+ default:
+ // the original engine also does something when param==2 (but not a notify)
+ error("unknown v2 kLBNotifyChangeMode type %d", entry->param);
}
- entry->newUnknown = stream->readUint16();
- entry->newMode = stream->readUint16();
- entry->newPage = stream->readUint16();
- entry->newSubpage = stream->readUint16();
- debug(4, "kLBNotifyChangeMode: unknown %04x, mode %d, page %d.%d",
- entry->newUnknown, entry->newMode, entry->newPage, entry->newSubpage);
- size -= 8;
}
if (entry->opcode == kLBOpSendExpression) {
if (size < 4)
@@ -2577,6 +2613,7 @@ void LBItem::runScript(uint event, uint16 data, uint16 from) {
notifyEvent.newMode = entry->newMode;
notifyEvent.newPage = entry->newPage;
notifyEvent.newSubpage = entry->newSubpage;
+ notifyEvent.newCursor = entry->newCursor;
_vm->addNotifyEvent(notifyEvent);
} else
_vm->addNotifyEvent(NotifyEvent(entry->opcode, entry->param));
diff --git a/engines/mohawk/livingbooks.h b/engines/mohawk/livingbooks.h
index ad2fe56a52..008a7dbf23 100644
--- a/engines/mohawk/livingbooks.h
+++ b/engines/mohawk/livingbooks.h
@@ -33,8 +33,6 @@
#include "common/queue.h"
#include "common/random.h"
-#include "audio/mixer.h"
-
#include "livingbooks_code.h"
namespace Common {
@@ -133,7 +131,9 @@ enum {
kLBEventMouseUp = 5,
kLBEventPhaseMain = 6,
kLBEventNotified = 7,
+ kLBEventDragStart = 8,
kLBEventDragMove = 9,
+ kLBEventDragEnd = 0xa,
kLBEventRolloverBegin = 0xb,
kLBEventRolloverMove = 0xc,
kLBEventRolloverEnd = 0xd,
@@ -271,6 +271,7 @@ struct LBScriptEntry {
uint16 newMode;
uint16 newPage;
uint16 newSubpage;
+ Common::String newCursor;
// kLBEventNotified
uint16 matchFrom;
@@ -405,6 +406,8 @@ public:
uint16 getSoundPriority() { return _soundMode; }
bool isAmbient() { return _isAmbient; }
+ Common::List<LBItem *>::iterator _iterator;
+
protected:
MohawkEngine_LivingBooks *_vm;
LBPage *_page;
@@ -608,6 +611,7 @@ struct NotifyEvent {
uint16 newMode;
uint16 newPage;
uint16 newSubpage;
+ Common::String newCursor;
};
enum DelayedEventType {
@@ -667,7 +671,7 @@ public:
GUI::Debugger *getDebugger() { return _console; }
void addArchive(Archive *archive);
- void removeArchive(Archive *Archive);
+ void removeArchive(Archive *archive);
void addItem(LBItem *item);
void removeItems(const Common::Array<LBItem *> &items);
@@ -714,6 +718,7 @@ private:
uint16 _phase;
LBPage *_page;
Common::Array<LBItem *> _items;
+ Common::List<LBItem *> _orderedItems;
Common::Queue<DelayedEvent> _eventQueue;
LBItem *_focus;
void destroyPage();
diff --git a/engines/mohawk/livingbooks_code.cpp b/engines/mohawk/livingbooks_code.cpp
index e9ef2516e2..80b5fe9660 100644
--- a/engines/mohawk/livingbooks_code.cpp
+++ b/engines/mohawk/livingbooks_code.cpp
@@ -686,8 +686,8 @@ struct CodeCommandInfo {
CodeCommandInfo generalCommandInfo[NUM_GENERAL_COMMANDS] = {
{ "eval", &LBCode::cmdEval },
{ "random", &LBCode::cmdRandom },
- { "stringLen", 0 },
- { "substring", 0 },
+ { "stringLen", &LBCode::cmdStringLen },
+ { "substring", &LBCode::cmdSubstring },
{ "max", 0 },
{ "min", 0 },
{ "abs", 0 },
@@ -861,6 +861,31 @@ void LBCode::cmdRandom(const Common::Array<LBValue> &params) {
_stack.push(_vm->_rnd->getRandomNumberRng(min, max));
}
+void LBCode::cmdStringLen(const Common::Array<LBValue> &params) {
+ if (params.size() != 1)
+ error("incorrect number of parameters (%d) to stringLen", params.size());
+
+ const Common::String &string = params[0].toString();
+ _stack.push(string.size());
+}
+
+void LBCode::cmdSubstring(const Common::Array<LBValue> &params) {
+ if (params.size() != 3)
+ error("incorrect number of parameters (%d) to substring", params.size());
+
+ const Common::String &string = params[0].toString();
+ uint begin = params[1].toInt();
+ uint end = params[2].toInt();
+ if (begin == 0)
+ error("invalid substring call (%d to %d)", begin, end);
+ if (begin > end || end > string.size()) {
+ _stack.push(Common::String());
+ return;
+ }
+ Common::String substring(string.c_str() + (begin - 1), end - begin + 1);
+ _stack.push(substring);
+}
+
void LBCode::cmdGetRect(const Common::Array<LBValue> &params) {
if (params.size() < 2) {
_stack.push(getRectFromParams(params));
@@ -1156,8 +1181,8 @@ bool LBCode::parseCodeSymbol(const Common::String &name, uint &pos, Common::Arra
// first, check whether the name matches a known function
for (uint i = 0; i < 2; i++) {
byte cmdToken;
- CodeCommandInfo *cmdInfo;
- uint cmdCount;
+ CodeCommandInfo *cmdInfo = NULL;
+ uint cmdCount = 0;
switch (i) {
case 0:
diff --git a/engines/mohawk/livingbooks_code.h b/engines/mohawk/livingbooks_code.h
index 9c58ed7a46..79c9af94f7 100644
--- a/engines/mohawk/livingbooks_code.h
+++ b/engines/mohawk/livingbooks_code.h
@@ -222,6 +222,8 @@ public:
void cmdUnimplemented(const Common::Array<LBValue> &params);
void cmdEval(const Common::Array<LBValue> &params);
void cmdRandom(const Common::Array<LBValue> &params);
+ void cmdStringLen(const Common::Array<LBValue> &params);
+ void cmdSubstring(const Common::Array<LBValue> &params);
void cmdGetRect(const Common::Array<LBValue> &params);
void cmdTopLeft(const Common::Array<LBValue> &params);
void cmdBottomRight(const Common::Array<LBValue> &params);
diff --git a/engines/mohawk/mohawk.cpp b/engines/mohawk/mohawk.cpp
index faf52595b7..cb419064c0 100644
--- a/engines/mohawk/mohawk.cpp
+++ b/engines/mohawk/mohawk.cpp
@@ -31,8 +31,6 @@
#include "mohawk/sound.h"
#include "mohawk/video.h"
-#include "audio/mixer.h"
-
namespace Mohawk {
MohawkEngine::MohawkEngine(OSystem *syst, const MohawkGameDescription *gamedesc) : Engine(syst), _gameDescription(gamedesc) {
diff --git a/engines/mohawk/myst.cpp b/engines/mohawk/myst.cpp
index 6bdf163a91..eeb4594f3c 100644
--- a/engines/mohawk/myst.cpp
+++ b/engines/mohawk/myst.cpp
@@ -343,6 +343,7 @@ Common::Error MohawkEngine_Myst::run() {
case Common::KEYCODE_F5:
_needsPageDrop = false;
_needsShowMap = false;
+ _needsShowDemoMenu = false;
runDialog(*_optionsDialog);
@@ -355,6 +356,11 @@ Common::Error MohawkEngine_Myst::run() {
_scriptParser->showMap();
_needsShowMap = false;
}
+
+ if (_needsShowDemoMenu) {
+ changeToStack(kDemoStack, 2002, 0, 0);
+ _needsShowDemoMenu = false;
+ }
break;
default:
break;
@@ -441,6 +447,7 @@ void MohawkEngine_Myst::changeToStack(uint16 stack, uint16 card, uint16 linkSrcS
_scriptParser = new MystStacks::Credits(this);
break;
case kDemoStack:
+ _gameState->_globals.currentAge = 0;
_scriptParser = new MystStacks::Demo(this);
break;
case kDniStack:
@@ -469,6 +476,7 @@ void MohawkEngine_Myst::changeToStack(uint16 stack, uint16 card, uint16 linkSrcS
_scriptParser = new MystStacks::Selenitic(this);
break;
case kDemoSlidesStack:
+ _gameState->_globals.currentAge = 1;
_scriptParser = new MystStacks::Slides(this);
break;
case kStoneshipStack:
@@ -645,7 +653,11 @@ void MohawkEngine_Myst::changeToCard(uint16 card, bool updateScreen) {
for (uint16 i = 0; i < _resources.size(); i++)
_resources[i]->handleCardChange();
- // TODO: Handle Script Resources
+ // The demo resets the cursor at each card change except when in the library
+ if (getFeatures() & GF_DEMO
+ && _gameState->_globals.currentAge != 2) {
+ _cursor->setDefaultCursor();
+ }
// Make sure the screen is updated
if (updateScreen) {
diff --git a/engines/mohawk/myst.h b/engines/mohawk/myst.h
index ebcc3b445c..02f0a46e3f 100644
--- a/engines/mohawk/myst.h
+++ b/engines/mohawk/myst.h
@@ -167,6 +167,7 @@ public:
bool _needsUpdate;
bool _needsPageDrop;
bool _needsShowMap;
+ bool _needsShowDemoMenu;
MystView _view;
MystGraphics *_gfx;
diff --git a/engines/mohawk/myst_scripts.cpp b/engines/mohawk/myst_scripts.cpp
index 307be2dd05..ca8e985491 100644
--- a/engines/mohawk/myst_scripts.cpp
+++ b/engines/mohawk/myst_scripts.cpp
@@ -500,7 +500,7 @@ void MystScriptParser::o_disableAreas(uint16 op, uint16 var, uint16 argc, uint16
resource = _vm->_resources[argv[i + 1]];
if (resource)
- resource->setEnabled(true);
+ resource->setEnabled(false);
else
warning("Unknown Resource in disableAreas script Opcode");
}
diff --git a/engines/mohawk/myst_stacks/demo.cpp b/engines/mohawk/myst_stacks/demo.cpp
index 5788f4b3a3..c9e806655e 100644
--- a/engines/mohawk/myst_stacks/demo.cpp
+++ b/engines/mohawk/myst_stacks/demo.cpp
@@ -20,16 +20,20 @@
*
*/
+#include "mohawk/cursors.h"
+#include "mohawk/graphics.h"
#include "mohawk/myst.h"
#include "mohawk/myst_stacks/demo.h"
-#include "gui/message.h"
+#include "common/system.h"
namespace Mohawk {
namespace MystStacks {
Demo::Demo(MohawkEngine_Myst *vm) : Intro(vm) {
setupOpcodes();
+
+ _returnToMenuStep = 0;
}
Demo::~Demo() {
@@ -47,15 +51,12 @@ Demo::~Demo() {
void Demo::setupOpcodes() {
// "Stack-Specific" Opcodes
- OVERRIDE_OPCODE(100, opcode_100);
- OPCODE(101, opcode_101);
- OPCODE(102, opcode_102);
+ OVERRIDE_OPCODE(100, o_stopIntro);
+ OPCODE(101, o_fadeFromBlack);
+ OPCODE(102, o_fadeToBlack);
// "Init" Opcodes
- OVERRIDE_OPCODE(201, opcode_201);
-
- // "Exit" Opcodes
- OVERRIDE_OPCODE(300, opcode_300);
+ OVERRIDE_OPCODE(201, o_returnToMenu_init);
}
#undef OPCODE
@@ -64,61 +65,66 @@ void Demo::setupOpcodes() {
void Demo::disablePersistentScripts() {
Intro::disablePersistentScripts();
- _enabled201 = false;
+ _returnToMenuRunning = false;
}
void Demo::runPersistentScripts() {
Intro::runPersistentScripts();
- if (_enabled201) {
- // Used on Card 2001, 2002 and 2003
-
- // TODO: Fill in Function...
+ if (_returnToMenuRunning) {
+ returnToMenu_run();
}
}
-void Demo::opcode_100(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- // TODO: Fill in Function...
+void Demo::o_stopIntro(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Unk", op);
+ // The original also seems to stop the movies. Not needed with this engine.
+ _vm->_gfx->fadeToBlack();
}
-void Demo::opcode_101(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
-
- // Used on Card 2000, 2002 and 2003
- // Triggered by Click
- if (argc == 0) {
- // TODO: Fill in Logic.. Fade in?
- } else
- unknown(op, var, argc, argv);
+void Demo::o_fadeFromBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Fade from black", op);
+ _vm->_gfx->fadeFromBlack();
}
-void Demo::opcode_102(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
-
- // Used on Card 2002 and 2003
- // Triggered by Click
- if (argc == 0) {
- // TODO: Fill in Logic.. Fade out?
- } else
- unknown(op, var, argc, argv);
+void Demo::o_fadeToBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Fade to black", op);
+ _vm->_gfx->fadeToBlack();
}
-void Demo::opcode_201(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
-
- // Used on Card 2001, 2002 and 2003
- if (argc == 0)
- _enabled201 = true;
- else
- unknown(op, var, argc, argv);
+void Demo::returnToMenu_run() {
+ uint32 time = _vm->_system->getMillis();
+
+ if (time < _returnToMenuNextTime)
+ return;
+
+ switch (_returnToMenuStep){
+ case 0:
+ _vm->_gfx->fadeToBlack();
+ _vm->changeToCard(2003, true);
+ _vm->_gfx->fadeFromBlack();
+
+ _returnToMenuStep++;
+ break;
+ case 1:
+ _vm->_gfx->fadeToBlack();
+ _vm->changeToCard(2001, true);
+ _vm->_gfx->fadeFromBlack();
+ _vm->_cursor->showCursor();
+
+ _returnToMenuStep++;
+ break;
+ default:
+ break;
+ }
}
+void Demo::o_returnToMenu_init(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Return to menu init", op);
-void Demo::opcode_300(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- // Used on Card 2000
- varUnusedCheck(op, var);
-
- // TODO: Fill in Function...
+ // Used on Card 2001, 2002 and 2003
+ _returnToMenuNextTime = _vm->_system->getMillis() + 5000;
+ _returnToMenuRunning = true;
}
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_stacks/demo.h b/engines/mohawk/myst_stacks/demo.h
index 4f8d68759b..c3e57cf7ae 100644
--- a/engines/mohawk/myst_stacks/demo.h
+++ b/engines/mohawk/myst_stacks/demo.h
@@ -46,15 +46,19 @@ public:
private:
void setupOpcodes();
- DECLARE_OPCODE(opcode_100);
- DECLARE_OPCODE(opcode_101);
- DECLARE_OPCODE(opcode_102);
+ DECLARE_OPCODE(o_stopIntro);
+ DECLARE_OPCODE(o_fadeFromBlack);
+ DECLARE_OPCODE(o_fadeToBlack);
- DECLARE_OPCODE(opcode_201);
+ DECLARE_OPCODE(o_returnToMenu_init);
DECLARE_OPCODE(opcode_300);
- bool _enabled201;
+ bool _returnToMenuRunning;
+ uint16 _returnToMenuStep; // 42
+ uint32 _returnToMenuNextTime; // 6
+
+ void returnToMenu_run();
};
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_stacks/myst.h b/engines/mohawk/myst_stacks/myst.h
index 9510d371d7..e9bff08cb4 100644
--- a/engines/mohawk/myst_stacks/myst.h
+++ b/engines/mohawk/myst_stacks/myst.h
@@ -40,8 +40,8 @@ public:
Myst(MohawkEngine_Myst *vm);
~Myst();
- void disablePersistentScripts();
- void runPersistentScripts();
+ virtual void disablePersistentScripts();
+ virtual void runPersistentScripts();
private:
void setupOpcodes();
diff --git a/engines/mohawk/myst_stacks/preview.cpp b/engines/mohawk/myst_stacks/preview.cpp
index 37b749f100..1b72c85d96 100644
--- a/engines/mohawk/myst_stacks/preview.cpp
+++ b/engines/mohawk/myst_stacks/preview.cpp
@@ -20,6 +20,7 @@
*
*/
+#include "mohawk/cursors.h"
#include "mohawk/myst.h"
#include "mohawk/graphics.h"
#include "mohawk/myst_areas.h"
@@ -35,6 +36,7 @@ namespace MystStacks {
Preview::Preview(MohawkEngine_Myst *vm) : Myst(vm) {
setupOpcodes();
+ _vm->_cursor->hideCursor();
}
Preview::~Preview() {
@@ -52,86 +54,187 @@ Preview::~Preview() {
void Preview::setupOpcodes() {
// "Stack-Specific" Opcodes
- OVERRIDE_OPCODE(196, opcode_196);
- OVERRIDE_OPCODE(197, opcode_197);
- OVERRIDE_OPCODE(198, opcode_198);
- OVERRIDE_OPCODE(199, opcode_199);
+ OVERRIDE_OPCODE(196, o_fadeToBlack);
+ OVERRIDE_OPCODE(197, o_fadeFromBlack);
+ OVERRIDE_OPCODE(198, o_stayHere);
+ OVERRIDE_OPCODE(199, o_speechStop);
// "Init" Opcodes
- OPCODE(298, opcode_298);
- OPCODE(299, opcode_299);
+ OPCODE(298, o_speech_init);
+ OPCODE(299, o_library_init);
}
#undef OPCODE
#undef OVERRIDE_OPCODE
-void Preview::opcode_196(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::disablePersistentScripts() {
+ Myst::disablePersistentScripts();
+}
+
+void Preview::runPersistentScripts() {
+ Myst::runPersistentScripts();
- // Used on Card ...
- // TODO: Finish Implementation...
- // Voice Over and Card Advance?
+ if (_speechRunning)
+ speech_run();
}
-void Preview::opcode_197(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::o_fadeToBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Fade to black", op);
+ _vm->_gfx->fadeToBlack();
+}
- // Used on Card ...
- // TODO: Finish Implementation...
- // Voice Over and Card Advance?
+void Preview::o_fadeFromBlack(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Fade from black", op);
+ _vm->_gfx->fadeFromBlack();
}
-// TODO: Merge with Opcode 42?
-void Preview::opcode_198(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::o_stayHere(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Stay here dialog", op);
- if (argc == 0) {
- // Nuh-uh! No leaving the library in the demo!
- GUI::MessageDialog dialog("You can't leave the library in the demo.");
- dialog.runModal();
- } else
- unknown(op, var, argc, argv);
+ // Nuh-uh! No leaving the library in the demo!
+ GUI::MessageDialog dialog("You can't leave the library in the demo.");
+ dialog.runModal();
}
-void Preview::opcode_199(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::o_speechStop(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Speech stop", op);
- // Used on Card ...
- // TODO: Finish Implementation...
- // Voice Over and Card Advance?
+ _speechRunning = false;
+ _globals.currentAge = 2;
}
-void Preview::opcode_298(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::speechUpdateCue() {
+ // This is a callback in the original, handling audio events.
+ if (!_vm->_sound->isPlaying(3001)) {
+ return;
+ }
- // Used for Card 3000 (Closed Myst Book)
- // TODO: Fill in logic.
- // Start Voice Over... which controls book opening
- _vm->_sound->replaceSoundMyst(3001);
-
- // then link to Myst - Trigger of Hotspot? then opcode 199/196/197 for voice over continue?
- // TODO: Sync Voice and Actions to Original
- // TODO: Flash Library Red
- // TODO: Move to run process based delay to prevent
- // blocking...
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(20 * 1000);
-
- for (uint16 imageId = 3001; imageId <= 3012; imageId++) {
- _vm->_gfx->copyImageToScreen(imageId, Common::Rect(0, 0, 544, 333));
- _vm->_system->updateScreen();
- _vm->_system->delayMillis(5 * 1000);
+ uint samples = _vm->_sound->getNumSamplesPlayed(3001);
+ for (int16 i = 0; i < _cueList.pointCount; i++) {
+ if (_cueList.points[i].sampleFrame > samples)
+ return;
+ if (i > _currentCue - 1) {
+ _currentCue++;
+ debugC(kDebugScript, "Sneak speech advanced to cue %d", _currentCue);
+ }
}
}
-void Preview::opcode_299(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- varUnusedCheck(op, var);
+void Preview::speech_run() {
+ uint32 time = _vm->_system->getMillis();
+
+ // Update current speech sound cue
+ speechUpdateCue();
+
+ switch (_speechStep) {
+ case 0: // Start Voice Over... which controls book opening
+ _currentCue = 0;
+ _vm->_sound->playSound(3001, Audio::Mixer::kMaxChannelVolume, false, &_cueList);
+
+ _speechStep++;
+ break;
+ case 1: // Open book
+ if (_currentCue >= 1) {
+ _vm->changeToCard(3001, true);
+
+ _speechStep++;
+ }
+ break;
+ case 2: // Go to Myst
+ if (_currentCue >= 2) {
+ _vm->_gfx->fadeToBlack();
+ _vm->changeToCard(3002, true);
+ _vm->_gfx->fadeFromBlack();
+
+ _speechStep++;
+ }
+ break;
+ case 3: // Start blinking the library
+ if (_currentCue >= 3) {
+ _libraryState = 1;
+ _speechNextTime = 0;
+ _speechStep++;
+ }
+ break;
+ case 4: // Library blinking, zoom in library
+ if (_currentCue >= 4) {
+ _library->drawConditionalDataToScreen(0);
+
+ _vm->changeToCard(3003, true);
+
+ _speechNextTime = time + 2000;
+ _speechStep++;
+ } else {
+ if (time < _speechNextTime)
+ break;
+
+ _library->drawConditionalDataToScreen(_libraryState);
+ _libraryState = (_libraryState + 1) % 2;
+ _speechNextTime = time + 500;
+ }
+ break;
+ case 5: // Go to library near view
+ if (time < _speechNextTime)
+ break;
+
+ _vm->changeToCard(3004, true);
+ _speechNextTime = time + 2000;
+ _speechStep++;
+ break;
+ case 6: // Fade to courtyard
+ if (time < _speechNextTime)
+ break;
+
+ _vm->_gfx->fadeToBlack();
+ _vm->changeToCard(3005, true);
+ _vm->_gfx->fadeFromBlack();
+ _speechNextTime = time + 1000;
+ _speechStep++;
+ break;
+ case 7: // Walk to library
+ case 8:
+ case 9:
+ case 10:
+ case 11:
+ case 12:
+ case 13:
+ if (time < _speechNextTime)
+ break;
+
+ _vm->changeToCard(3006 + _speechStep - 7, true);
+ _speechNextTime = time + 2000;
+ _speechStep++;
+ break;
+ case 14: // Go to playable library card
+ if (time < _speechNextTime)
+ break;
+
+ _vm->changeToCard(4329, true);
+
+ _speechRunning = false;
+ _globals.currentAge = 2;
+
+ _vm->_cursor->showCursor();
+ break;
+ default:
+ warning("Unknown speech step");
+ break;
+ }
+}
+
+void Preview::o_speech_init(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Speech init", op);
+
+ // Used for Card 3000 (Closed Myst Book)
+ _speechStep = 0;
+ _speechRunning = true;
+}
+
+void Preview::o_library_init(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
+ debugC(kDebugScript, "Opcode %d: Library init", op);
// Used for Card 3002 (Myst Island Overview)
- // TODO: Fill in logic.
- // Zoom into Island?
- // On this card is a Type 8 controlled by Var 0, which
- // can change the Myst Library to Red..
+ _library = static_cast<MystResourceType8 *>(_invokingResource);
}
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_stacks/preview.h b/engines/mohawk/myst_stacks/preview.h
index 7e4e418eef..1e4ff3efb4 100644
--- a/engines/mohawk/myst_stacks/preview.h
+++ b/engines/mohawk/myst_stacks/preview.h
@@ -40,16 +40,31 @@ public:
Preview(MohawkEngine_Myst *vm);
~Preview();
+ void disablePersistentScripts();
+ void runPersistentScripts();
+
private:
void setupOpcodes();
- DECLARE_OPCODE(opcode_196);
- DECLARE_OPCODE(opcode_197);
- DECLARE_OPCODE(opcode_198);
- DECLARE_OPCODE(opcode_199);
+ DECLARE_OPCODE(o_fadeToBlack);
+ DECLARE_OPCODE(o_fadeFromBlack);
+ DECLARE_OPCODE(o_stayHere);
+ DECLARE_OPCODE(o_speechStop);
+
+ DECLARE_OPCODE(o_speech_init);
+ DECLARE_OPCODE(o_library_init);
+
+ uint16 _libraryState; // 4
+ MystResourceType8 *_library; // 32
+
+ bool _speechRunning;
+ uint _speechStep;
+ CueList _cueList;
+ int16 _currentCue;
+ uint32 _speechNextTime; // 6
- DECLARE_OPCODE(opcode_298);
- DECLARE_OPCODE(opcode_299);
+ void speech_run();
+ void speechUpdateCue();
};
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_stacks/slides.cpp b/engines/mohawk/myst_stacks/slides.cpp
index 72b299ee6d..943cb90071 100644
--- a/engines/mohawk/myst_stacks/slides.cpp
+++ b/engines/mohawk/myst_stacks/slides.cpp
@@ -20,6 +20,7 @@
*
*/
+#include "mohawk/cursors.h"
#include "mohawk/myst.h"
#include "mohawk/graphics.h"
#include "mohawk/myst_areas.h"
@@ -35,6 +36,7 @@ namespace MystStacks {
Slides::Slides(MohawkEngine_Myst *vm) : MystScriptParser(vm) {
setupOpcodes();
+ _vm->_cursor->hideCursor();
}
Slides::~Slides() {
@@ -59,23 +61,28 @@ void Slides::disablePersistentScripts() {
void Slides::runPersistentScripts() {
if (_cardSwapEnabled) {
// Used on Cards...
- if (_vm->_system->getMillis() - _lastCardTime >= 2 * 1000)
+ if (_vm->_system->getMillis() > _nextCardTime) {
+ _vm->_gfx->fadeToBlack();
_vm->changeToCard(_nextCardID, true);
+ _vm->_gfx->fadeFromBlack();
+ }
}
}
void Slides::o_returnToMenu(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- _vm->changeToStack(kDemoStack, 2001, 0, 0);
+ debugC(kDebugScript, "Opcode %d: Return to menu", op);
+
+ // Go to the information screens of the menu
+ _vm->changeToStack(kDemoStack, 2002, 0, 0);
}
void Slides::o_setCardSwap(uint16 op, uint16 var, uint16 argc, uint16 *argv) {
- // Used on Cards...
- if (argc == 1) {
- _nextCardID = argv[0];
- _lastCardTime = _vm->_system->getMillis();
- _cardSwapEnabled = true;
- } else
- unknown(op, var, argc, argv);
+ _nextCardID = argv[0];
+
+ debugC(kDebugScript, "Opcode %d: Set next card %d", op, _nextCardID);
+
+ _nextCardTime = _vm->_system->getMillis() + 5000;
+ _cardSwapEnabled = true;
}
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_stacks/slides.h b/engines/mohawk/myst_stacks/slides.h
index 8bc61d0e24..9fb76728b6 100644
--- a/engines/mohawk/myst_stacks/slides.h
+++ b/engines/mohawk/myst_stacks/slides.h
@@ -52,7 +52,7 @@ private:
bool _cardSwapEnabled;
uint16 _nextCardID;
- uint32 _lastCardTime;
+ uint32 _nextCardTime;
};
} // End of namespace MystStacks
diff --git a/engines/mohawk/myst_state.cpp b/engines/mohawk/myst_state.cpp
index bab4b8dd51..3a8d233a26 100644
--- a/engines/mohawk/myst_state.cpp
+++ b/engines/mohawk/myst_state.cpp
@@ -320,6 +320,10 @@ void MystGameState::deleteSave(const Common::String &saveName) {
void MystGameState::addZipDest(uint16 stack, uint16 view) {
ZipDests *zipDests = 0;
+ // The demo has no zip dest storage
+ if (_vm->getFeatures() & GF_DEMO)
+ return;
+
// Select stack
switch (stack) {
case kChannelwoodStack:
@@ -362,6 +366,10 @@ bool MystGameState::isReachableZipDest(uint16 stack, uint16 view) {
if (!_globals.zipMode)
return false;
+ // The demo has no zip dest storage
+ if (_vm->getFeatures() & GF_DEMO)
+ return false;
+
// Select stack
ZipDests *zipDests;
switch (stack) {
diff --git a/engines/mohawk/riven.cpp b/engines/mohawk/riven.cpp
index 612b8b3685..3e2fa4f979 100644
--- a/engines/mohawk/riven.cpp
+++ b/engines/mohawk/riven.cpp
@@ -150,6 +150,9 @@ Common::Error MohawkEngine_Riven::run() {
return Common::kNoGameDataFoundError;
}
+ // Set the transition speed
+ _gfx->setTransitionSpeed(_vars["transitionmode"]);
+
// Start at main cursor
_cursor->setCursor(kRivenMainCursor);
_cursor->showCursor();
@@ -209,8 +212,10 @@ void MohawkEngine_Riven::handleEvents() {
needsUpdate = true;
break;
case Common::EVENT_LBUTTONDOWN:
- if (_curHotspot >= 0)
+ if (_curHotspot >= 0) {
+ checkSunnerAlertClick();
runHotspotScript(_curHotspot, kMouseDownScript);
+ }
break;
case Common::EVENT_LBUTTONUP:
// See RivenScript::switchCard() for more information on why we sometimes
@@ -812,6 +817,138 @@ static void catherineIdleTimer(MohawkEngine_Riven *vm) {
vm->installTimer(&catherineIdleTimer, timeUntilNextMovie);
}
+static void sunnersTopStairsTimer(MohawkEngine_Riven *vm) {
+ // If the sunners are gone, we have no video to play
+ if (vm->_vars["jsunners"] != 0) {
+ vm->removeTimer();
+ return;
+ }
+
+ // Play a random sunners video if the script one is not playing already
+ // and then set a new timer for when the new video should be played
+
+ VideoHandle oldHandle = vm->_video->findVideoHandleRiven(1);
+ uint32 timerTime = 500;
+
+ if (oldHandle == NULL_VID_HANDLE || vm->_video->endOfVideo(oldHandle)) {
+ uint32 &sunnerTime = vm->_vars["jsunnertime"];
+
+ if (sunnerTime == 0) {
+ timerTime = vm->_rnd->getRandomNumberRng(2, 15) * 1000;
+ } else if (sunnerTime < vm->getTotalPlayTime()) {
+ VideoHandle handle = vm->_video->playMovieRiven(vm->_rnd->getRandomNumberRng(1, 3));
+
+ timerTime = vm->_video->getDuration(handle) + vm->_rnd->getRandomNumberRng(2, 15) * 1000;
+ }
+
+ sunnerTime = timerTime + vm->getTotalPlayTime();
+ }
+
+ vm->installTimer(&sunnersTopStairsTimer, timerTime);
+}
+
+static void sunnersMidStairsTimer(MohawkEngine_Riven *vm) {
+ // If the sunners are gone, we have no video to play
+ if (vm->_vars["jsunners"] != 0) {
+ vm->removeTimer();
+ return;
+ }
+
+ // Play a random sunners video if the script one is not playing already
+ // and then set a new timer for when the new video should be played
+
+ VideoHandle oldHandle = vm->_video->findVideoHandleRiven(1);
+ uint32 timerTime = 500;
+
+ if (oldHandle == NULL_VID_HANDLE || vm->_video->endOfVideo(oldHandle)) {
+ uint32 &sunnerTime = vm->_vars["jsunnertime"];
+
+ if (sunnerTime == 0) {
+ timerTime = vm->_rnd->getRandomNumberRng(1, 10) * 1000;
+ } else if (sunnerTime < vm->getTotalPlayTime()) {
+ // Randomize the video
+ int randValue = vm->_rnd->getRandomNumber(5);
+ uint16 movie = 4;
+ if (randValue == 4)
+ movie = 2;
+ else if (randValue == 5)
+ movie = 3;
+
+ VideoHandle handle = vm->_video->playMovieRiven(movie);
+
+ timerTime = vm->_video->getDuration(handle) + vm->_rnd->getRandomNumberRng(1, 10) * 1000;
+ }
+
+ sunnerTime = timerTime + vm->getTotalPlayTime();
+ }
+
+ vm->installTimer(&sunnersMidStairsTimer, timerTime);
+}
+
+static void sunnersLowerStairsTimer(MohawkEngine_Riven *vm) {
+ // If the sunners are gone, we have no video to play
+ if (vm->_vars["jsunners"] != 0) {
+ vm->removeTimer();
+ return;
+ }
+
+ // Play a random sunners video if the script one is not playing already
+ // and then set a new timer for when the new video should be played
+
+ VideoHandle oldHandle = vm->_video->findVideoHandleRiven(1);
+ uint32 timerTime = 500;
+
+ if (oldHandle == NULL_VID_HANDLE || vm->_video->endOfVideo(oldHandle)) {
+ uint32 &sunnerTime = vm->_vars["jsunnertime"];
+
+ if (sunnerTime == 0) {
+ timerTime = vm->_rnd->getRandomNumberRng(1, 30) * 1000;
+ } else if (sunnerTime < vm->getTotalPlayTime()) {
+ VideoHandle handle = vm->_video->playMovieRiven(vm->_rnd->getRandomNumberRng(3, 5));
+
+ timerTime = vm->_video->getDuration(handle) + vm->_rnd->getRandomNumberRng(1, 30) * 1000;
+ }
+
+ sunnerTime = timerTime + vm->getTotalPlayTime();
+ }
+
+ vm->installTimer(&sunnersLowerStairsTimer, timerTime);
+}
+
+static void sunnersBeachTimer(MohawkEngine_Riven *vm) {
+ // If the sunners are gone, we have no video to play
+ if (vm->_vars["jsunners"] != 0) {
+ vm->removeTimer();
+ return;
+ }
+
+ // Play a random sunners video if the script one is not playing already
+ // and then set a new timer for when the new video should be played
+
+ VideoHandle oldHandle = vm->_video->findVideoHandleRiven(3);
+ uint32 timerTime = 500;
+
+ if (oldHandle == NULL_VID_HANDLE || vm->_video->endOfVideo(oldHandle)) {
+ uint32 &sunnerTime = vm->_vars["jsunnertime"];
+
+ if (sunnerTime == 0) {
+ timerTime = vm->_rnd->getRandomNumberRng(1, 30) * 1000;
+ } else if (sunnerTime < vm->getTotalPlayTime()) {
+ // Unlike the other cards' scripts which automatically
+ // activate the MLST, we have to set it manually here.
+ uint16 mlstID = vm->_rnd->getRandomNumberRng(3, 8);
+ vm->_video->activateMLST(mlstID, vm->getCurCard());
+ VideoHandle handle = vm->_video->playMovieRiven(mlstID);
+
+ timerTime = vm->_video->getDuration(handle) + vm->_rnd->getRandomNumberRng(1, 30) * 1000;
+ }
+
+ sunnerTime = timerTime + vm->getTotalPlayTime();
+ }
+
+ vm->installTimer(&sunnersBeachTimer, timerTime);
+}
+
void MohawkEngine_Riven::installCardTimer() {
switch (getCurCardRMAP()) {
case 0x3a85: // Top of elevator on prison island
@@ -819,16 +956,16 @@ void MohawkEngine_Riven::installCardTimer() {
installTimer(&catherineIdleTimer, _rnd->getRandomNumberRng(1, 33) * 1000);
break;
case 0x77d6: // Sunners, top of stairs
- // TODO: Background Sunner videos
+ installTimer(&sunnersTopStairsTimer, 500);
break;
case 0x79bd: // Sunners, middle of stairs
- // TODO: Background Sunner videos
+ installTimer(&sunnersMidStairsTimer, 500);
break;
case 0x7beb: // Sunners, bottom of stairs
- // TODO: Background Sunner videos
+ installTimer(&sunnersLowerStairsTimer, 500);
break;
case 0xb6ca: // Sunners, shoreline
- // TODO: Background Sunner videos
+ installTimer(&sunnersBeachTimer, 500);
break;
}
}
@@ -846,6 +983,34 @@ void MohawkEngine_Riven::doVideoTimer(VideoHandle handle, bool force) {
_scriptMan->runStoredMovieOpcode();
}
+void MohawkEngine_Riven::checkSunnerAlertClick() {
+ // We need to do a manual hardcoded check for the sunners'
+ // alert movies.
+
+ uint32 &sunners = _vars["jsunners"];
+
+ // If the sunners are gone, there's nothing for us to do
+ if (sunners != 0)
+ return;
+
+ uint32 rmapCode = getCurCardRMAP();
+
+ // This is only for the mid/lower staircase sections
+ if (rmapCode != 0x79bd && rmapCode != 0x7beb)
+ return;
+
+ // Only set the sunners variable on the forward hotspot
+ if ((rmapCode == 0x79bd && _curHotspot != 1) || (rmapCode == 0x7beb && _curHotspot != 2))
+ return;
+
+ // If the alert video is no longer playing, we have nothing left to do
+ VideoHandle handle = _video->findVideoHandleRiven(1);
+ if (handle == NULL_VID_HANDLE || _video->endOfVideo(handle))
+ return;
+
+ sunners = 1;
+}
+
bool ZipMode::operator== (const ZipMode &z) const {
return z.name == name && z.id == id;
}
diff --git a/engines/mohawk/riven.h b/engines/mohawk/riven.h
index c7d36e585d..e99a9f78fc 100644
--- a/engines/mohawk/riven.h
+++ b/engines/mohawk/riven.h
@@ -67,6 +67,13 @@ enum {
StackNames = 5
};
+enum RivenTransitionSpeed {
+ kRivenTransitionSpeedNone = 5000,
+ kRivenTransitionSpeedFastest = 5001,
+ kRivenTransitionSpeedNormal = 5002,
+ kRivenTransitionSpeedBest = 5003
+};
+
// Rects for the inventory object positions (initialized in
// MohawkEngine_Riven's constructor).
extern Common::Rect *g_atrusJournalRect1;
@@ -164,6 +171,7 @@ private:
// Miscellaneous
bool _gameOver;
bool _ignoreNextMouseUp;
+ void checkSunnerAlertClick();
public:
// Stack/card/script funtions
diff --git a/engines/mohawk/riven_external.cpp b/engines/mohawk/riven_external.cpp
index 60e94ea795..9e1365f8da 100644
--- a/engines/mohawk/riven_external.cpp
+++ b/engines/mohawk/riven_external.cpp
@@ -234,10 +234,10 @@ void RivenExternal::runCredits(uint16 video, uint32 delay) {
// Set us up to start after delay ms
nextCreditsFrameStart = _vm->_system->getMillis() + delay;
} else if (_vm->_system->getMillis() >= nextCreditsFrameStart) {
- // the first two frames stay on for 5 seconds
+ // the first two frames stay on for 4 seconds
// the rest of the scroll updates happen at 30Hz
if (_vm->_gfx->getCurCreditsImage() < 304)
- nextCreditsFrameStart = _vm->_system->getMillis() + 5000;
+ nextCreditsFrameStart = _vm->_system->getMillis() + 4000;
else
nextCreditsFrameStart = _vm->_system->getMillis() + 1000 / 30;
@@ -1889,21 +1889,42 @@ void RivenExternal::xjplaybeetle_1450(uint16 argc, uint16 *argv) {
}
void RivenExternal::xjlagoon700_alert(uint16 argc, uint16 *argv) {
- // TODO: Sunner related
+ // Handle sunner reactions (mid-staircase)
+
+ if (_vm->_vars["jsunners"] == 0)
+ _vm->_video->playMovieRiven(1);
}
void RivenExternal::xjlagoon800_alert(uint16 argc, uint16 *argv) {
- // TODO: Sunner related
+ // Handle sunner reactions (lower-staircase)
+
+ uint32 &sunners = _vm->_vars["jsunners"];
+
+ if (sunners == 0) {
+ // Show the sunners alert video
+ _vm->_video->playMovieRiven(1);
+ } else if (sunners == 1) {
+ // Show the sunners leaving if you moved forward in their "alert" status
+ _vm->_video->playMovieBlockingRiven(2);
+ _vm->_video->playMovieBlockingRiven(6);
+ sunners = 2;
+ _vm->refreshCard();
+ }
}
void RivenExternal::xjlagoon1500_alert(uint16 argc, uint16 *argv) {
- // Have the sunners move a bit as you get closer ;)
+ // Handle sunner reactions (beach)
+
uint32 &sunners = _vm->_vars["jsunners"];
+
if (sunners == 0) {
+ // Show the sunners alert video
_vm->_video->playMovieBlockingRiven(3);
} else if (sunners == 1) {
+ // Show the sunners leaving if you moved forward in their "alert" status
_vm->_video->playMovieBlockingRiven(2);
sunners = 2;
+ _vm->refreshCard();
}
}
@@ -2726,6 +2747,7 @@ void RivenExternal::xtatboundary(uint16 argc, uint16 *argv) {
void RivenExternal::xflies(uint16 argc, uint16 *argv) {
// TODO: Activate the "flies" effect
+ debug(1, "STUB: xflies(): create %d %s fl%s", argv[1], (argv[0] == 0) ? "black" : "glowing", (argv[1] == 1) ? "y" : "ies");
}
} // End of namespace Mohawk
diff --git a/engines/mohawk/riven_vars.cpp b/engines/mohawk/riven_vars.cpp
index 946e2e0496..ba5c343e07 100644
--- a/engines/mohawk/riven_vars.cpp
+++ b/engines/mohawk/riven_vars.cpp
@@ -268,7 +268,12 @@ static const char *variableNames[] = {
};
uint32 &MohawkEngine_Riven::getStackVar(uint32 index) {
- return _vars[getName(VariableNames, index)];
+ Common::String name = getName(VariableNames, index);
+
+ if (!_vars.contains(name))
+ error("Could not find variable '%s' (stack variable %d)", name.c_str(), index);
+
+ return _vars[name];
}
void MohawkEngine_Riven::initVars() {
@@ -299,6 +304,7 @@ void MohawkEngine_Riven::initVars() {
_vars["bmagcar"] = 1;
_vars["gnmagcar"] = 1;
_vars["omusicplayer"] = 1;
+ _vars["transitionmode"] = kRivenTransitionSpeedFastest;
// Randomize the telescope combination
uint32 &teleCombo = _vars["tcorrectorder"];
diff --git a/engines/mohawk/sound.cpp b/engines/mohawk/sound.cpp
index 791b18db49..f92bebf10e 100644
--- a/engines/mohawk/sound.cpp
+++ b/engines/mohawk/sound.cpp
@@ -20,19 +20,20 @@
*
*/
-#include "mohawk/sound.h"
-
#include "common/debug.h"
#include "common/system.h"
#include "common/util.h"
#include "common/textconsole.h"
+#include "audio/midiparser.h"
#include "audio/musicplugin.h"
#include "audio/audiostream.h"
#include "audio/decoders/mp3.h"
#include "audio/decoders/raw.h"
#include "audio/decoders/wave.h"
+#include "mohawk/sound.h"
+
namespace Mohawk {
Sound::Sound(MohawkEngine* vm) : _vm(vm) {
@@ -84,7 +85,7 @@ Audio::AudioStream *Sound::makeAudioStream(uint16 id, CueList *cueList) {
if (_vm->getFeatures() & GF_ME)
audStream = Audio::makeWAVStream(_vm->getResource(ID_MSND, convertMystID(id)), DisposeAfterUse::YES);
else
- audStream = makeMohawkWaveStream(_vm->getResource(ID_MSND, id));
+ audStream = makeMohawkWaveStream(_vm->getResource(ID_MSND, id), cueList);
break;
case GType_ZOOMBINI:
audStream = makeMohawkWaveStream(_vm->getResource(ID_SND, id));
diff --git a/engines/mohawk/sound.h b/engines/mohawk/sound.h
index 593f2fcd0b..12a59cdedf 100644
--- a/engines/mohawk/sound.h
+++ b/engines/mohawk/sound.h
@@ -27,14 +27,15 @@
#include "common/str.h"
#include "audio/audiostream.h"
-#include "audio/decoders/adpcm.h"
-#include "audio/mididrv.h"
-#include "audio/midiparser.h"
#include "audio/mixer.h"
+#include "audio/decoders/adpcm.h"
#include "mohawk/mohawk.h"
#include "mohawk/resource.h"
+class MidiDriver;
+class MidiParser;
+
namespace Mohawk {
#define MAX_CHANNELS 2 // Can there be more than 2?
diff --git a/engines/parallaction/graphics.h b/engines/parallaction/graphics.h
index 3eea1e871a..dacf7715ae 100644
--- a/engines/parallaction/graphics.h
+++ b/engines/parallaction/graphics.h
@@ -560,12 +560,3 @@ protected:
#endif
-
-
-
-
-
-
-
-
-
diff --git a/engines/parallaction/gui_br.cpp b/engines/parallaction/gui_br.cpp
index d1361a6e8c..56148d78d8 100644
--- a/engines/parallaction/gui_br.cpp
+++ b/engines/parallaction/gui_br.cpp
@@ -548,4 +548,3 @@ void Parallaction_br::startIngameMenu() {
} // namespace Parallaction
-
diff --git a/engines/parallaction/sound.h b/engines/parallaction/sound.h
index d0b5e5c175..e875e69334 100644
--- a/engines/parallaction/sound.h
+++ b/engines/parallaction/sound.h
@@ -26,10 +26,9 @@
#include "common/util.h"
#include "common/mutex.h"
+#include "audio/mixer.h"
#include "audio/audiostream.h"
#include "audio/decoders/iff_sound.h"
-#include "audio/mixer.h"
-#include "audio/mididrv.h"
#define PATH_LEN 200
diff --git a/engines/queen/command.h b/engines/queen/command.h
index aa72537a9f..6865aa80a2 100644
--- a/engines/queen/command.h
+++ b/engines/queen/command.h
@@ -234,4 +234,3 @@ private:
} // End of namespace Queen
#endif
-
diff --git a/engines/queen/credits.cpp b/engines/queen/credits.cpp
index d503562601..43e3bc7c6a 100644
--- a/engines/queen/credits.cpp
+++ b/engines/queen/credits.cpp
@@ -141,4 +141,3 @@ void Credits::update() {
} // End of namespace Queen
-
diff --git a/engines/saga/actor.h b/engines/saga/actor.h
index a4f475660d..d9d4b70168 100644
--- a/engines/saga/actor.h
+++ b/engines/saga/actor.h
@@ -650,7 +650,7 @@ private:
public:
#ifdef ACTOR_DEBUG
#ifndef SAGA_DEBUG
- you must also define SAGA_DEBUG
+ #error You must also define SAGA_DEBUG
#endif
//path debug - use with care
struct DebugPoint {
diff --git a/engines/saga/detection.cpp b/engines/saga/detection.cpp
index 7a98fe4164..091ec8d427 100644
--- a/engines/saga/detection.cpp
+++ b/engines/saga/detection.cpp
@@ -67,9 +67,6 @@ int SagaEngine::getGameId() const { return _gameDescription->gameId; }
uint32 SagaEngine::getFeatures() const {
uint32 result = _gameDescription->features;
- if (_gf_wyrmkeep)
- result |= GF_WYRMKEEP;
-
return result;
}
@@ -259,13 +256,7 @@ SaveStateDescriptor SagaMetaEngine::querySaveMetaInfos(const char *target, int s
desc.setWriteProtectedFlag(false);
if (version >= 6) {
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*in, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
-
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*in);
desc.setThumbnail(thumbnail);
uint32 saveDate = in->readUint32BE();
diff --git a/engines/saga/detection_tables.h b/engines/saga/detection_tables.h
index ab73fcba6e..3e83c30eef 100644
--- a/engines/saga/detection_tables.h
+++ b/engines/saga/detection_tables.h
@@ -221,7 +221,7 @@ static const SAGAGameDescription gameDescriptions[] = {
GUIO_NOSPEECH
},
GID_ITE,
- GF_WYRMKEEP | GF_SCENE_SUBSTITUTES | GF_MONO_MUSIC | GF_LE_VOICES,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITEWINDEMO_GameFonts),
@@ -247,7 +247,7 @@ static const SAGAGameDescription gameDescriptions[] = {
GUIO_NOSPEECH
},
GID_ITE,
- GF_WYRMKEEP | GF_LE_VOICES,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITEWINDEMO_GameFonts),
@@ -273,7 +273,7 @@ static const SAGAGameDescription gameDescriptions[] = {
GUIO_NONE
},
GID_ITE,
- GF_WYRMKEEP | GF_SCENE_SUBSTITUTES,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITEWINDEMO_GameFonts),
@@ -299,7 +299,7 @@ static const SAGAGameDescription gameDescriptions[] = {
GUIO_NONE
},
GID_ITE,
- GF_WYRMKEEP | GF_8BIT_UNSIGNED_PCM,
+ GF_8BIT_UNSIGNED_PCM,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITEWINDEMO_GameFonts),
@@ -328,7 +328,7 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformMacintosh,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
@@ -352,11 +352,11 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformMacintosh,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
- GF_WYRMKEEP,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITEWINDEMO_GameFonts),
@@ -384,11 +384,11 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformUnknown,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
- GF_WYRMKEEP,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITE_GameFonts),
@@ -414,11 +414,11 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::IT_ITA,
Common::kPlatformUnknown,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
- GF_WYRMKEEP,
+ 0,
ITE_DEFAULT_SCENE,
&ITE_Resources,
ARRAYSIZE(ITE_GameFonts),
@@ -438,7 +438,7 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
@@ -462,7 +462,7 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
@@ -486,7 +486,7 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
@@ -511,7 +511,7 @@ static const SAGAGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_ITE,
diff --git a/engines/saga/input.cpp b/engines/saga/input.cpp
index 69a353da9f..8576a3e536 100644
--- a/engines/saga/input.cpp
+++ b/engines/saga/input.cpp
@@ -158,4 +158,3 @@ Point SagaEngine::mousePos() const {
}
} // End of namespace Saga
-
diff --git a/engines/saga/interface.cpp b/engines/saga/interface.cpp
index 08c5ddc6f9..fe37ed8995 100644
--- a/engines/saga/interface.cpp
+++ b/engines/saga/interface.cpp
@@ -320,7 +320,7 @@ Interface::Interface(SagaEngine *vm) : _vm(vm) {
_disableAbortSpeeches = false;
// set save game reminder alarm
- _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this);
+ _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this, "sagaSaveReminder");
}
Interface::~Interface() {
@@ -335,7 +335,7 @@ void Interface::updateSaveReminder() {
_saveReminderState = _saveReminderState % _vm->getDisplayInfo().saveReminderNumSprites + 1;
drawStatusBar();
_vm->getTimerManager()->removeTimerProc(&saveReminderCallback);
- _vm->getTimerManager()->installTimerProc(&saveReminderCallback, ((_vm->getGameId() == GID_ITE) ? TIMETOBLINK_ITE : TIMETOBLINK_IHNM), this);
+ _vm->getTimerManager()->installTimerProc(&saveReminderCallback, ((_vm->getGameId() == GID_ITE) ? TIMETOBLINK_ITE : TIMETOBLINK_IHNM), this, "sagaSaveReminder");
}
}
@@ -1390,7 +1390,7 @@ void Interface::setSave(PanelButton *panelButton) {
void Interface::resetSaveReminder() {
_vm->getTimerManager()->removeTimerProc(&saveReminderCallback);
- _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this);
+ _vm->getTimerManager()->installTimerProc(&saveReminderCallback, TIMETOSAVE, this, "sagaSaveReminder");
setSaveReminderState(1);
}
diff --git a/engines/saga/introproc_ite.cpp b/engines/saga/introproc_ite.cpp
index 87fd48e2d2..9248f2b530 100644
--- a/engines/saga/introproc_ite.cpp
+++ b/engines/saga/introproc_ite.cpp
@@ -179,21 +179,22 @@ enum {
EventColumns *Scene::ITEQueueCredits(int delta_time, int duration, int n_credits, const IntroCredit credits[]) {
int game;
Common::Language lang;
+ bool hasWyrmkeepCredits = (Common::File::exists("credit3n.dlt") || // PC
+ Common::File::exists("credit3m.dlt")); // Mac
// The assumption here is that all WyrmKeep versions have the same
// credits, regardless of which operating system they're for.
lang = _vm->getLanguage();
- if (_vm->getFeatures() & GF_WYRMKEEP) {
+ if (hasWyrmkeepCredits)
game = kITEWyrmKeep;
- } else if (_vm->getPlatform() == Common::kPlatformMacintosh) {
+ else if (_vm->getPlatform() == Common::kPlatformMacintosh)
game = kITEMac;
- } else if (_vm->getFeatures() & GF_EXTRA_ITE_CREDITS) {
+ else if (_vm->getFeatures() & GF_EXTRA_ITE_CREDITS)
game = kITEPCCD;
- } else {
+ else
game = kITEPC;
- }
int line_spacing = 0;
int paragraph_spacing;
@@ -303,6 +304,11 @@ int Scene::SC_ITEIntroAnimProc(int param, void *refCon) {
int Scene::ITEIntroAnimProc(int param) {
Event event;
EventColumns *eventColumns;
+ bool isMac = _vm->getPlatform() == Common::kPlatformMacintosh;
+ bool isMultiCD = _vm->getPlatform() == Common::kPlatformUnknown;
+ bool hasWyrmkeepCredits = (Common::File::exists("credit3n.dlt") || // PC
+ Common::File::exists("credit3m.dlt")); // Mac
+ bool isDemo = Common::File::exists("scriptsd.rsc");
switch (param) {
case SCENE_BEGIN:{
@@ -324,19 +330,10 @@ int Scene::ITEIntroAnimProc(int param) {
// playback
int lastAnim;
- if (_vm->getFeatures() & GF_WYRMKEEP) {
- if (_vm->getPlatform() == Common::kPlatformMacintosh) {
- lastAnim = 3;
- } else {
- lastAnim = 2;
- }
- } else {
- if (_vm->getPlatform() == Common::kPlatformMacintosh) {
- lastAnim = 4;
- } else {
- lastAnim = 5;
- }
- }
+ if (hasWyrmkeepCredits || isMultiCD || isDemo)
+ lastAnim = isMac ? 3 : 2;
+ else
+ lastAnim = isMac ? 4 : 5;
for (int i = 0; i < lastAnim; i++)
_vm->_anim->link(i, i+1);
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 21f3cc489e..13850a0b6d 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -213,7 +213,7 @@ void Music::setVolume(int volume, int time) {
return;
}
- _vm->getTimerManager()->installTimerProc(&musicVolumeGaugeCallback, time * 3000L, this);
+ _vm->getTimerManager()->installTimerProc(&musicVolumeGaugeCallback, time * 3000L, this, "sagaMusicVolume");
}
bool Music::isPlaying() {
@@ -287,7 +287,12 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
if (_vm->isBigEndian())
musicFlags &= ~Audio::FLAG_LITTLE_ENDIAN;
- if (_vm->getFeatures() & GF_MONO_MUSIC)
+ // The newer ITE Mac demo version contains a music file, but it has mono music.
+ // This is the only music file that is about 7MB, whereas all the other ones
+ // are much larger. Thus, we use this simple heuristic to determine if we got
+ // mono music in the ITE demos or not.
+ if (!strcmp(_digitalMusicContext->fileName(), "musicd.rsc") &&
+ _digitalMusicContext->fileSize() < 8000000)
musicFlags &= ~Audio::FLAG_STEREO;
audioStream = Audio::makeRawStream(musicStream, 11025, musicFlags, DisposeAfterUse::YES);
@@ -368,10 +373,12 @@ void Music::play(uint32 resourceId, MusicFlags flags) {
void Music::pause() {
_player->pause();
+ _player->setVolume(0);
}
void Music::resume() {
_player->resume();
+ _player->setVolume(_vm->_musicVolume);
}
void Music::stop() {
@@ -379,4 +386,3 @@ void Music::stop() {
}
} // End of namespace Saga
-
diff --git a/engines/saga/palanim.h b/engines/saga/palanim.h
index 9959d08e2f..920cbec65a 100644
--- a/engines/saga/palanim.h
+++ b/engines/saga/palanim.h
@@ -53,4 +53,3 @@ class PalAnim {
} // End of namespace Saga
#endif
-
diff --git a/engines/saga/puzzle.cpp b/engines/saga/puzzle.cpp
index d5d83c706f..63d9a88fee 100644
--- a/engines/saga/puzzle.cpp
+++ b/engines/saga/puzzle.cpp
@@ -140,7 +140,7 @@ void Puzzle::initPieceInfo(int i, int16 curX, int16 curY, byte offX, byte offY,
void Puzzle::execute() {
_active = true;
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this, "sagaPuzzleHint");
initPieces();
@@ -408,12 +408,12 @@ void Puzzle::solicitHint() {
switch (_hintRqState) {
case kRQSpeaking:
if (_vm->_actor->isSpeaking()) {
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50 * 1000000, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50 * 1000000, this, "sagaPuzzleHint");
break;
}
_hintRqState = _hintNextRqState;
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 100*1000000/3, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 100*1000000/3, this, "sagaPuzzleHint");
break;
case kRQNoHint:
@@ -436,11 +436,11 @@ void Puzzle::solicitHint() {
// Roll to see if Sakka scolds
if (_vm->_rnd.getRandomNumber(1)) {
_hintRqState = kRQSakkaDenies;
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 200*1000000, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 200*1000000, this, "sagaPuzzleHint");
} else {
_hintRqState = kRQSpeaking;
_hintNextRqState = kRQHintRequested;
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50*1000000, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50*1000000, this, "sagaPuzzleHint");
}
break;
@@ -453,7 +453,7 @@ void Puzzle::solicitHint() {
_hintRqState = kRQSpeaking;
_hintNextRqState = kRQHintRequestedStage2;
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50*1000000, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, 50*1000000, this, "sagaPuzzleHint");
_vm->_interface->converseClear();
_vm->_interface->converseAddText(optionsStr[_lang][kROAccept], 0, 1, 0, 0);
@@ -480,7 +480,7 @@ void Puzzle::solicitHint() {
_vm->_interface->converseAddText(optionsStr[_lang][kROLater], 0, 0, 0, 0);
_vm->_interface->converseDisplayText();
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this, "sagaPuzzleHint");
_hintRqState = kRQSkipEverything;
break;
@@ -504,7 +504,7 @@ void Puzzle::handleReply(int reply) {
_vm->_actor->abortSpeech();
_hintRqState = kRQNoHint;
_vm->getTimerManager()->removeTimerProc(&hintTimerCallback);
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime * 2, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime * 2, this, "sagaPuzzleHint");
clearHint();
break;
}
@@ -566,7 +566,7 @@ void Puzzle::giveHint() {
_vm->_interface->converseDisplayText();
_vm->getTimerManager()->removeTimerProc(&hintTimerCallback);
- _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this);
+ _vm->getTimerManager()->installTimerProc(&hintTimerCallback, kPuzzleHintTime, this, "sagaPuzzleHint");
}
void Puzzle::clearHint() {
diff --git a/engines/saga/render.cpp b/engines/saga/render.cpp
index 757374a3a3..a9ef23381e 100644
--- a/engines/saga/render.cpp
+++ b/engines/saga/render.cpp
@@ -50,7 +50,7 @@ Render::Render(SagaEngine *vm, OSystem *system) {
#ifdef SAGA_DEBUG
// Initialize FPS timer callback
- _vm->getTimerManager()->installTimerProc(&fpsTimerCallback, 1000000, this);
+ _vm->getTimerManager()->installTimerProc(&fpsTimerCallback, 1000000, this, "sagaFPS");
#endif
_backGroundSurface.create(_vm->getDisplayInfo().width, _vm->getDisplayInfo().height, Graphics::PixelFormat::createFormatCLUT8());
diff --git a/engines/saga/resource.cpp b/engines/saga/resource.cpp
index 72b021309c..1b0dfa2f22 100644
--- a/engines/saga/resource.cpp
+++ b/engines/saga/resource.cpp
@@ -162,12 +162,6 @@ bool Resource::createContexts() {
uint16 voiceFileAddType;
};
-
- // If the Wyrmkeep credits file is found, set the Wyrmkeep version flag to true
- if (Common::File::exists("credit3n.dlt")) {
- _vm->_gf_wyrmkeep = true;
- }
-
for (const ADGameFileDescription *gameFileDescription = _vm->getFilesDescriptions();
gameFileDescription->fileName; gameFileDescription++) {
addContext(gameFileDescription->fileName, gameFileDescription->fileType);
diff --git a/engines/saga/saga.cpp b/engines/saga/saga.cpp
index d168605e99..6e272d37c0 100644
--- a/engines/saga/saga.cpp
+++ b/engines/saga/saga.cpp
@@ -72,9 +72,8 @@ SagaEngine::SagaEngine(OSystem *syst, const SAGAGameDescription *gameDesc)
_readingSpeed = 0;
_copyProtection = false;
- _gf_wyrmkeep = false;
_musicWasPlaying = false;
-
+ _hasITESceneSubstitutes = false;
_sndRes = NULL;
_sound = NULL;
@@ -211,9 +210,9 @@ Common::Error SagaEngine::run() {
_subtitlesEnabled = ConfMan.getBool("subtitles");
_readingSpeed = getTalkspeed();
_copyProtection = ConfMan.getBool("copy_protection");
- _gf_wyrmkeep = false;
_musicWasPlaying = false;
_isIHNMDemo = Common::File::exists("music.res");
+ _hasITESceneSubstitutes = Common::File::exists("boarhall.bbm");
if (_readingSpeed > 3)
_readingSpeed = 0;
diff --git a/engines/saga/saga.h b/engines/saga/saga.h
index 23258e1277..fb01b1ac5d 100644
--- a/engines/saga/saga.h
+++ b/engines/saga/saga.h
@@ -29,7 +29,6 @@
#include "common/random.h"
#include "common/memstream.h"
#include "common/textconsole.h"
-#include "audio/mididrv.h"
#include "saga/gfx.h"
@@ -137,16 +136,12 @@ enum GameFileTypes {
};
enum GameFeatures {
- GF_WYRMKEEP = 1 << 0,
- GF_ITE_FLOPPY = 1 << 1,
- GF_SCENE_SUBSTITUTES = 1 << 2,
+ GF_ITE_FLOPPY = 1 << 0,
#if 0
- GF_OLD_ITE_DOS = 1 << 3, // Currently unused
+ GF_OLD_ITE_DOS = 1 << 1, // Currently unused
#endif
- GF_MONO_MUSIC = 1 << 4,
- GF_EXTRA_ITE_CREDITS = 1 << 5,
- GF_LE_VOICES = 1 << 6,
- GF_8BIT_UNSIGNED_PCM = 1 << 7
+ GF_EXTRA_ITE_CREDITS = 1 << 2,
+ GF_8BIT_UNSIGNED_PCM = 1 << 3
};
enum VerbTypeIds {
@@ -532,9 +527,9 @@ public:
int _readingSpeed;
bool _copyProtection;
- bool _gf_wyrmkeep;
bool _musicWasPlaying;
bool _isIHNMDemo;
+ bool _hasITESceneSubstitutes;
SndRes *_sndRes;
Sound *_sound;
diff --git a/engines/saga/saveload.cpp b/engines/saga/saveload.cpp
index 8d7b718c09..9e0789fdaf 100644
--- a/engines/saga/saveload.cpp
+++ b/engines/saga/saveload.cpp
@@ -295,12 +295,7 @@ void SagaEngine::load(const char *fileName) {
if (_saveHeader.version >= 6) {
// We don't need the thumbnail here, so just read it and discard it
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- Graphics::loadThumbnail(*in, *thumbnail);
- thumbnail->free();
- delete thumbnail;
- thumbnail = 0;
+ Graphics::skipThumbnail(*in);
in->readUint32BE(); // save date
in->readUint16BE(); // save time
diff --git a/engines/saga/scene.cpp b/engines/saga/scene.cpp
index 66ee8f4504..61e62d5626 100644
--- a/engines/saga/scene.cpp
+++ b/engines/saga/scene.cpp
@@ -451,7 +451,7 @@ void Scene::changeScene(int16 sceneNumber, int actorsEntrance, SceneTransitionTy
// This is used for latter ITE demos where all places on world map except
// Tent Faire are substituted with LBM picture and short description
- if (_vm->getFeatures() & GF_SCENE_SUBSTITUTES) {
+ if (_vm->_hasITESceneSubstitutes) {
for (int i = 0; i < ARRAYSIZE(sceneSubstitutes); i++) {
if (sceneSubstitutes[i].sceneId == sceneNumber) {
Surface bbmBuffer;
diff --git a/engines/saga/shorten.cpp b/engines/saga/shorten.cpp
index 39af7aa3db..5efc8d1f67 100644
--- a/engines/saga/shorten.cpp
+++ b/engines/saga/shorten.cpp
@@ -541,4 +541,3 @@ Audio::AudioStream *makeShortenStream(Common::SeekableReadStream &stream) {
} // End of namespace Audio
#endif // defined(SOUND_SHORTEN_H)
-
diff --git a/engines/saga/shorten.h b/engines/saga/shorten.h
index f2114bedeb..77feafa54d 100644
--- a/engines/saga/shorten.h
+++ b/engines/saga/shorten.h
@@ -57,4 +57,3 @@ Audio::AudioStream *makeShortenStream(Common::ReadStream &stream);
#endif
#endif // engine and dynamic plugins guard
-
diff --git a/engines/saga/sndres.cpp b/engines/saga/sndres.cpp
index 2433c93e93..add34e22a2 100644
--- a/engines/saga/sndres.cpp
+++ b/engines/saga/sndres.cpp
@@ -262,9 +262,12 @@ bool SndRes::load(ResourceContext *context, uint32 resourceId, SoundBuffer &buff
buffer.flags |= Audio::FLAG_UNSIGNED;
buffer.flags &= ~Audio::FLAG_16BITS;
} else {
- // Voice files in newer ITE demo versions are OKI ADPCM (VOX) encoded
- if (!uncompressedSound && !scumm_stricmp(context->fileName(), "voicesd.rsc"))
+ // Voice files in newer ITE demo versions are OKI ADPCM (VOX) encoded.
+ // These are LE in all the Windows and Mac demos
+ if (!uncompressedSound && !scumm_stricmp(context->fileName(), "voicesd.rsc")) {
resourceType = kSoundVOX;
+ buffer.flags |= Audio::FLAG_LITTLE_ENDIAN;
+ }
}
}
buffer.buffer = NULL;
@@ -272,8 +275,6 @@ bool SndRes::load(ResourceContext *context, uint32 resourceId, SoundBuffer &buff
// Check for LE sounds
if (!context->isBigEndian())
buffer.flags |= Audio::FLAG_LITTLE_ENDIAN;
- if ((context->fileType() & GAME_VOICEFILE) && (_vm->getFeatures() & GF_LE_VOICES))
- buffer.flags |= Audio::FLAG_LITTLE_ENDIAN;
// Older Mac versions of ITE were Macbinary packed
int soundOffset = (context->fileType() & GAME_MACBINARY) ? 36 : 0;
diff --git a/engines/saga/sthread.cpp b/engines/saga/sthread.cpp
index ec81d8d733..afd528f4b5 100644
--- a/engines/saga/sthread.cpp
+++ b/engines/saga/sthread.cpp
@@ -236,4 +236,3 @@ bool Script::runThread(ScriptThread &thread) {
}
} // End of namespace Saga
-
diff --git a/engines/savestate.cpp b/engines/savestate.cpp
index 0b187ce630..260c7cd3ff 100644
--- a/engines/savestate.cpp
+++ b/engines/savestate.cpp
@@ -58,4 +58,3 @@ void SaveStateDescriptor::setPlayTime(uint32 msecs) {
uint minutes = msecs / 60000;
setPlayTime(minutes / 60, minutes % 60);
}
-
diff --git a/engines/sci/decompressor.h b/engines/sci/decompressor.h
index 37a5b5d7cb..5753026709 100644
--- a/engines/sci/decompressor.h
+++ b/engines/sci/decompressor.h
@@ -197,4 +197,3 @@ protected:
} // End of namespace Sci
#endif // SCI_SCICORE_DECOMPRESSOR_H
-
diff --git a/engines/sci/detection.cpp b/engines/sci/detection.cpp
index 2285e512bd..33ca3a6c9c 100644
--- a/engines/sci/detection.cpp
+++ b/engines/sci/detection.cpp
@@ -285,7 +285,7 @@ static const OldNewIdTableEntry s_oldNewTable[] = {
* @param[in] gameFlags The game's flags, which are adjusted accordingly for demos
* @return The equivalent ScummVM game id
*/
-Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, ResourceManager *resMan) {
+Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, ResourceManager &resMan) {
// Convert the id to lower case, so that we match all upper/lower case variants.
sierraId.toLowercase();
@@ -301,7 +301,7 @@ Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, R
if (sierraId == "fp" || sierraId == "gk" || sierraId == "pq4")
demoThreshold = 150;
- Common::ScopedPtr<Common::List<ResourceId> > resources(resMan->listResources(kResourceTypeScript, -1));
+ Common::ScopedPtr<Common::List<ResourceId> > resources(resMan.listResources(kResourceTypeScript, -1));
if (resources->size() < demoThreshold) {
*gameFlags |= ADGF_DEMO;
@@ -337,7 +337,7 @@ Common::String convertSierraGameId(Common::String sierraId, uint32 *gameFlags, R
// This could either be qfg1 VGA, qfg3 or qfg4 demo (all SCI1.1),
// or qfg4 full (SCI2)
// qfg1 VGA doesn't have view 1
- if (!resMan->testResource(ResourceId(kResourceTypeView, 1)))
+ if (!resMan.testResource(ResourceId(kResourceTypeView, 1)))
return "qfg1vga";
// qfg4 full is SCI2
@@ -480,10 +480,9 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
return 0;
}
- Common::ScopedPtr<ResourceManager> resMan(new ResourceManager());
- assert(resMan);
- resMan->addAppropriateSources(fslist);
- resMan->init(true);
+ ResourceManager resMan;
+ resMan.addAppropriateSources(fslist);
+ resMan.init(true);
// TODO: Add error handling.
#ifndef ENABLE_SCI32
@@ -494,7 +493,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
}
#endif
- ViewType gameViews = resMan->getViewType();
+ ViewType gameViews = resMan.getViewType();
// Have we identified the game views? If not, stop here
// Can't be SCI (or unsupported SCI views). Pinball Creep by sierra also uses resource.map/resource.000 files
@@ -508,7 +507,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
s_fallbackDesc.platform = Common::kPlatformAmiga;
// Determine the game id
- Common::String sierraGameId = resMan->findSierraGameId();
+ Common::String sierraGameId = resMan.findSierraGameId();
// If we don't have a game id, the game is not SCI
if (sierraGameId.empty()) {
@@ -530,7 +529,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
// As far as we know, these games store the messages of each language in separate
// resources, and it's not possible to detect that easily
// Also look for "%J" which is used in japanese games
- Resource *text = resMan->findResource(ResourceId(kResourceTypeText, 0), 0);
+ Resource *text = resMan.findResource(ResourceId(kResourceTypeText, 0), 0);
uint seeker = 0;
if (text) {
while (seeker < text->size) {
@@ -588,7 +587,7 @@ const ADGameDescription *SciMetaEngine::fallbackDetect(const FileMap &allFiles,
s_fallbackDesc.extra = "CD";
}
- return (const ADGameDescription *)&s_fallbackDesc;
+ return &s_fallbackDesc;
}
bool SciMetaEngine::createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
@@ -677,13 +676,7 @@ SaveStateDescriptor SciMetaEngine::querySaveMetaInfos(const char *target, int sl
SaveStateDescriptor desc(slot, meta.name);
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*in, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
-
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*in);
desc.setThumbnail(thumbnail);
desc.setDeletableFlag(true);
diff --git a/engines/sci/detection_tables.h b/engines/sci/detection_tables.h
index 6641f243e6..3b18a1f68d 100644
--- a/engines/sci/detection_tables.h
+++ b/engines/sci/detection_tables.h
@@ -3150,6 +3150,15 @@ static const struct ADGameDescription SciGameDescriptions[] = {
AD_LISTEND},
Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH },
+
+ // Slater & Charlie Go Camping - English DOS/Windows (Sierra Originals)
+ {"slater", "", {
+ {"resource.000", 0, "d7b4cc8e2c0b3a4768f8dfb5de27f206", 2256126},
+ {"resource.map", 0, "21f85414124dc23e54544a5536dc35cd", 4044},
+ {"resource.msg", 0, "c44f51fb955eae266fecf360ebcd5ad2", 1132},
+ AD_LISTEND},
+ Common::EN_ANY, Common::kPlatformPC, 0, GUIO_NOSPEECH },
+
// Space Quest 1 VGA Remake - English Amiga (from www.back2roots.org)
// SCI interpreter version 1.000.510 (just a guess)
{"sq1sci", "SCI", {
diff --git a/engines/sci/engine/kstring.cpp b/engines/sci/engine/kstring.cpp
index 7b8db22e3f..b383f88840 100644
--- a/engines/sci/engine/kstring.cpp
+++ b/engines/sci/engine/kstring.cpp
@@ -336,8 +336,9 @@ reg_t kFormat(EngineState *s, int argc, reg_t *argv) {
if (align >= 0)
while (str_leng-- > 1)
*target++ = ' '; /* Format into the text */
-
- *target++ = arguments[paramindex++];
+ char argchar = arguments[paramindex++];
+ if (argchar)
+ *target++ = argchar;
mode = 0;
}
break;
diff --git a/engines/sci/engine/seg_manager.cpp b/engines/sci/engine/seg_manager.cpp
index ab67da32db..1510af8508 100644
--- a/engines/sci/engine/seg_manager.cpp
+++ b/engines/sci/engine/seg_manager.cpp
@@ -28,12 +28,6 @@
namespace Sci {
-enum {
- DEFAULT_SCRIPTS = 32,
- DEFAULT_OBJECTS = 8, ///< default number of objects per script
- DEFAULT_OBJECTS_INCREMENT = 4 ///< Number of additional objects to instantiate if we're running out of them
-};
-
SegManager::SegManager(ResourceManager *resMan) {
_heap.push_back(0);
diff --git a/engines/sci/engine/workarounds.cpp b/engines/sci/engine/workarounds.cpp
index e61da20f97..b2cde47f4a 100644
--- a/engines/sci/engine/workarounds.cpp
+++ b/engines/sci/engine/workarounds.cpp
@@ -283,6 +283,8 @@ const SciWorkaroundEntry kGraphSaveBox_workarounds[] = {
// gameID, room,script,lvl, object-name, method-name, call,index, workaround
const SciWorkaroundEntry kGraphRestoreBox_workarounds[] = {
+ { GID_LSL6, -1, 86, 0, "LL6Inv", "show", -1, 0, { WORKAROUND_STILLCALL, 0 } }, // happens when restoring, is called with hunk segment, but hunk is not allocated at that time
+ // ^^ TODO: check, if this is really a script error or an issue with our restore code
{ GID_LSL6, -1, 86, 0, "LL6Inv", "hide", -1, 0, { WORKAROUND_STILLCALL, 0 } }, // happens during the game, gets called with 1 extra parameter
{ GID_SQ5, 850, 850, 0, NULL, "changeState", -1, 0, { WORKAROUND_STILLCALL, 0 } }, // happens while playing Battle Cruiser (invalid segment) - bug #3056811
SCI_WORKAROUNDENTRY_TERMINATOR
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp
index c5a3545701..38919593b4 100644
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@ -683,7 +683,7 @@ bool GfxPalette::palVaryLoadTargetPalette(GuiResourceId resourceId) {
void GfxPalette::palVaryInstallTimer() {
int16 ticks = _palVaryTicks > 0 ? _palVaryTicks : 1;
// Call signal increase every [ticks]
- g_sci->getTimerManager()->installTimerProc(&palVaryCallback, 1000000 / 60 * ticks, this);
+ g_sci->getTimerManager()->installTimerProc(&palVaryCallback, 1000000 / 60 * ticks, this, "sciPalette");
}
void GfxPalette::palVaryRemoveTimer() {
diff --git a/engines/sci/graphics/screen.cpp b/engines/sci/graphics/screen.cpp
index dbe2135143..6469bc0cb3 100644
--- a/engines/sci/graphics/screen.cpp
+++ b/engines/sci/graphics/screen.cpp
@@ -20,9 +20,9 @@
*
*/
-#include "common/timer.h"
#include "common/util.h"
#include "common/system.h"
+#include "common/timer.h"
#include "graphics/surface.h"
#include "engines/util.h"
diff --git a/engines/sci/parser/said.cpp b/engines/sci/parser/said.cpp
index 01c25ef401..d44109faec 100644
--- a/engines/sci/parser/said.cpp
+++ b/engines/sci/parser/said.cpp
@@ -1147,4 +1147,3 @@ True
} // End of namespace Sci
-
diff --git a/engines/sci/sound/drivers/cms.cpp b/engines/sci/sound/drivers/cms.cpp
index ace96ba499..dbcbf3d431 100644
--- a/engines/sci/sound/drivers/cms.cpp
+++ b/engines/sci/sound/drivers/cms.cpp
@@ -813,4 +813,3 @@ MidiPlayer *MidiPlayer_CMS_create(SciVersion version) {
}
} // End of namespace SCI
-
diff --git a/engines/scumm/charset.cpp b/engines/scumm/charset.cpp
index eaae64dc77..8558da397e 100644
--- a/engines/scumm/charset.cpp
+++ b/engines/scumm/charset.cpp
@@ -49,35 +49,28 @@ void ScummEngine::loadCJKFont() {
_newLineCharacter = 0;
if (_game.version <= 5 && _game.platform == Common::kPlatformFMTowns && _language == Common::JA_JPN) { // FM-TOWNS v3 / v5 Kanji
-#ifdef DISABLE_TOWNS_DUAL_LAYER_MODE
+#if defined(DISABLE_TOWNS_DUAL_LAYER_MODE) || !defined(USE_RGB_COLOR)
GUIErrorMessage("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
error("FM-Towns Kanji font drawing requires dual graphics layer support which is disabled in this build");
#else
// use FM-TOWNS font rom, since game files don't have kanji font resources
- _cjkFont = Graphics::FontSJIS::createFont(Common::kPlatformFMTowns);
+ _cjkFont = Graphics::FontSJIS::createFont(_game.platform);
if (!_cjkFont)
error("SCUMM::Font: Could not open file 'FMT_FNT.ROM'");
_textSurfaceMultiplier = 2;
_useCJKMode = true;
#endif
} else if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine && _language == Common::JA_JPN) {
- int numChar = 3418;
- _2byteWidth = 12;
- _2byteHeight = 12;
+#ifdef USE_RGB_COLOR
// use PC-Engine System Card, since game files don't have kanji font resources
- if (!fp.open("pce.cdbios")) {
- error("SCUMM::Font: Could not open System Card pce.cdbios");
- } else {
- _useCJKMode = true;
- debug(2, "Loading PC-Engine System Card");
-
- // A 0x200 byte header can be present at the beginning of the syscard. Seek past it too.
- fp.seek((fp.size() & 0x200) ? 0x30200 : 0x30000);
+ _cjkFont = Graphics::FontSJIS::createFont(_game.platform);
+ if (!_cjkFont)
+ error("SCUMM::Font: Could not open file 'pce.cdbios'");
- _2byteFontPtr = new byte[_2byteWidth * _2byteHeight * numChar / 8];
- fp.read(_2byteFontPtr, _2byteWidth * _2byteHeight * numChar / 8);
- fp.close();
- }
+ _cjkFont->setDrawingMode(Graphics::FontSJIS::kShadowMode);
+ _2byteWidth = _2byteHeight = 12;
+ _useCJKMode = true;
+#endif
} else if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && _language == Common::JA_JPN) {
int numChar = 1413;
_2byteWidth = 16;
@@ -161,71 +154,16 @@ void ScummEngine::loadCJKFont() {
}
}
-static int SJIStoPCEChunk(int f, int s) { //converts sjis code to pce font offset
- // rangeTbl maps SJIS char-codes to the PCE System Card font rom.
- // Each pair {<upperBound>,<lowerBound>} in the array represents a SJIS range.
- const int rangeCnt = 45;
- static const uint16 rangeTbl[rangeCnt][2] = {
- // Symbols
- {0x8140,0x817E},{0x8180,0x81AC},
- // 0-9
- {0x824F,0x8258},
- // Latin upper
- {0x8260,0x8279},
- // Latin lower
- {0x8281,0x829A},
- // Kana
- {0x829F,0x82F1},{0x8340,0x837E},{0x8380,0x8396},
- // Greek upper
- {0x839F,0x83B6},
- // Greek lower
- {0x83BF,0x83D6},
- // Cyrillic upper
- {0x8440,0x8460},
- // Cyrillic lower
- {0x8470,0x847E},{0x8480,0x8491},
- // Kanji
- {0x889F,0x88FC},
- {0x8940,0x897E},{0x8980,0x89FC},
- {0x8A40,0x8A7E},{0x8A80,0x8AFC},
- {0x8B40,0x8B7E},{0x8B80,0x8BFC},
- {0x8C40,0x8C7E},{0x8C80,0x8CFC},
- {0x8D40,0x8D7E},{0x8D80,0x8DFC},
- {0x8E40,0x8E7E},{0x8E80,0x8EFC},
- {0x8F40,0x8F7E},{0x8F80,0x8FFC},
- {0x9040,0x907E},{0x9080,0x90FC},
- {0x9140,0x917E},{0x9180,0x91FC},
- {0x9240,0x927E},{0x9280,0x92FC},
- {0x9340,0x937E},{0x9380,0x93FC},
- {0x9440,0x947E},{0x9480,0x94FC},
- {0x9540,0x957E},{0x9580,0x95FC},
- {0x9640,0x967E},{0x9680,0x96FC},
- {0x9740,0x977E},{0x9780,0x97FC},
- {0x9840,0x9872}
- };
-
- int ch = (f << 8) | (s & 0xFF);
- int offset = 0;
- for (int i = 0; i < rangeCnt; ++i) {
- if (ch >= rangeTbl[i][0] && ch <= rangeTbl[i][1])
- return offset + ch - rangeTbl[i][0];
- offset += rangeTbl[i][1] - rangeTbl[i][0] + 1;
- }
-
- debug(4, "Invalid Char: 0x%x", ch);
- return 0;
-}
-
byte *ScummEngine::get2byteCharPtr(int idx) {
+ if (_game.platform == Common::kPlatformFMTowns || _game.platform == Common::kPlatformPCEngine)
+ return 0;
+
switch (_language) {
case Common::KO_KOR:
idx = ((idx % 256) - 0xb0) * 94 + (idx / 256) - 0xa1;
break;
case Common::JA_JPN:
- if (_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine) {
- idx = SJIStoPCEChunk((idx % 256), (idx / 256));
- return _2byteFontPtr + (_2byteWidth * _2byteHeight / 8) * idx;
- } else if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && _language == Common::JA_JPN) {
+ if (_game.id == GID_MONKEY && _game.platform == Common::kPlatformSegaCD && _language == Common::JA_JPN) {
// init pointer to charset resource
if (_2byteFontPtr[0] == 0xFF) {
int charsetId = 5;
@@ -314,7 +252,7 @@ CharsetRenderer::~CharsetRenderer() {
CharsetRendererCommon::CharsetRendererCommon(ScummEngine *vm)
: CharsetRenderer(vm), _bytesPerPixel(0), _fontHeight(0), _numChars(0) {
- _shadowMode = kNoShadowMode;
+ _shadowMode = false;
_shadowColor = 0;
}
@@ -362,17 +300,9 @@ void CharsetRendererV3::setCurID(int32 id) {
}
int CharsetRendererCommon::getFontHeight() {
- if (_vm->_useCJKMode) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- static const uint8 sjisFontHeightM1[] = { 0, 8, 9, 8, 9, 8, 9, 0, 0, 0 };
- static const uint8 sjisFontHeightM2[] = { 0, 8, 9, 9, 9, 8, 9, 9, 9, 8 };
- static const uint8 sjisFontHeightI4[] = { 0, 8, 9, 9, 9, 8, 8, 8, 8, 8 };
- const uint8 *htbl = (_vm->_game.id == GID_MONKEY) ? sjisFontHeightM1 : ((_vm->_game.id == GID_INDY4) ? sjisFontHeightI4 : sjisFontHeightM2);
- return (_vm->_game.version == 3) ? 8 : htbl[_curId];
- } else {
- return MAX(_vm->_2byteHeight + 1, _fontHeight);
- }
- } else
+ if (_vm->_useCJKMode)
+ return MAX(_vm->_2byteHeight + 1, _fontHeight);
+ else
return _fontHeight;
}
@@ -380,57 +310,16 @@ int CharsetRendererCommon::getFontHeight() {
int CharsetRendererClassic::getCharWidth(uint16 chr) {
int spacing = 0;
- if (_vm->_useCJKMode) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- if ((chr & 0xff00) == 0xfd00) {
- chr &= 0xff;
- } else if (chr >= 256) {
- spacing = 8;
- } else if (useTownsFontRomCharacter(chr)) {
- spacing = 4;
- }
+ if (_vm->_useCJKMode && chr >= 0x80)
+ return _vm->_2byteWidth / 2;
- if (spacing) {
- if (_vm->_game.id == GID_MONKEY) {
- spacing++;
- if (_curId == 2)
- spacing++;
- } else if (_vm->_game.id != GID_INDY4 && _curId == 1) {
- spacing++;
- }
- }
-
- } else if (chr >= 0x80) {
- return _vm->_2byteWidth / 2;
- }
- }
-
- if (!spacing) {
- int offs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
- if (offs) {
- spacing = _fontPtr[offs] + (signed char)_fontPtr[offs + 2];
- }
- }
+ int offs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
+ if (offs)
+ spacing = _fontPtr[offs] + (signed char)_fontPtr[offs + 2];
return spacing;
}
-bool CharsetRendererClassic::useTownsFontRomCharacter(uint16 chr) {
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (_vm->_game.platform != Common::kPlatformFMTowns || !_vm->_useCJKMode)
- return false;
-
- if (chr < 128) {
- if (((_vm->_game.id == GID_MONKEY2 && _curId != 0) || (_vm->_game.id == GID_INDY4 && _curId != 3)) && (chr > 31 && chr != 94 && chr != 95 && chr != 126 && chr != 127))
- return true;
- return false;
- }
- return true;
-#else
- return false;
-#endif
-}
-
int CharsetRenderer::getStringWidth(int arg, const byte *text) {
int pos = 0;
int width = 1;
@@ -608,22 +497,51 @@ void CharsetRenderer::addLinebreaks(int a, byte *str, int pos, int maxwidth) {
int CharsetRendererV3::getCharWidth(uint16 chr) {
int spacing = 0;
- if (_vm->_useCJKMode) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- if (chr >= 256)
- spacing = 8;
- else if (chr >= 128)
- spacing = 4;
- } else if (chr & 0x80) {
- spacing = _vm->_2byteWidth / 2;
+ if (_vm->_useCJKMode && (chr & 0x80))
+ spacing = _vm->_2byteWidth / 2;
+
+ if (!spacing)
+ spacing = *(_widthTable + chr);
+
+ return spacing;
+}
+
+void CharsetRendererV3::enableShadow(bool enable) {
+ _shadowColor = 0;
+ _shadowMode = enable;
+}
+
+void CharsetRendererV3::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth) {
+ int y, x;
+ byte bits = 0;
+ uint8 col = _color;
+ int pitch = s.pitch - width * bitDepth;
+ byte *dst2 = dst + s.pitch;
+
+ for (y = 0; y < height && y + drawTop < s.h; y++) {
+ for (x = 0; x < width; x++) {
+ if ((x % 8) == 0)
+ bits = *src++;
+ if ((bits & revBitMask(x % 8)) && y + drawTop >= 0) {
+ if (_shadowMode)
+ dst[1] = dst2[0] = dst2[1] = _shadowColor;
+ dst[0] = col;
+ }
+ dst += bitDepth;
+ dst2 += bitDepth;
}
- }
- if (!spacing) {
- spacing = *(_widthTable + chr);
+ dst += pitch;
+ dst2 += pitch;
}
+}
- return spacing;
+int CharsetRendererV3::getDrawWidthIntern(uint16 chr) {
+ return getCharWidth(chr);
+}
+
+int CharsetRendererV3::getDrawHeightIntern(uint16) {
+ return 8;
}
void CharsetRendererV3::setColor(byte color) {
@@ -662,43 +580,6 @@ void CharsetRendererPCE::setColor(byte color) {
}
#endif
-void CharsetRendererCommon::enableShadow(bool enable) {
- if (enable) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- _shadowColor = 8;
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- _shadowColor = _vm->_game.version == 5 ? _vm->_townsCharsetColorMap[0] : 0x88;
- if (_vm->_cjkFont) {
- if (_vm->_game.version == 5) {
- if (((_vm->_game.id == GID_MONKEY) && (_curId == 2 || _curId == 4 || _curId == 6)) ||
- ((_vm->_game.id == GID_MONKEY2) && (_curId != 1 && _curId != 5 && _curId != 9)) ||
- ((_vm->_game.id == GID_INDY4) && (_curId == 2 || _curId == 3 || _curId == 4))) {
- _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kOutlineMode);
- } else {
- _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kDefaultMode);
- }
- _vm->_cjkFont->toggleFlippedMode((_vm->_game.id == GID_MONKEY || _vm->_game.id == GID_MONKEY2) && _curId == 3);
- } else {
- _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kShadowMode);
- }
- }
-#endif
- _shadowMode = kFMTOWNSShadowMode;
- } else {
- _shadowColor = 0;
- _shadowMode = kNormalShadowMode;
- }
- } else {
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (_vm->_cjkFont) {
- _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kDefaultMode);
- _vm->_cjkFont->toggleFlippedMode(false);
- }
-#endif
- _shadowMode = kNoShadowMode;
- }
-}
-
void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
// WORKAROUND for bug #1509509: Indy3 Mac does not show black
// characters (such as in the grail diary) if ignoreCharsetMask
@@ -721,33 +602,19 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
if (chr == '@')
return;
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (_vm->_useCJKMode && chr > 127) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- charPtr = 0;
- width = _vm->_cjkFont->getCharWidth(chr);
- height = _vm->_cjkFont->getFontHeight();
- } else {
- width = _vm->_2byteWidth;
- height = _vm->_2byteHeight;
- charPtr = _vm->get2byteCharPtr(chr);
- }
- } else
-#endif
- {
- charPtr = _fontPtr + chr * 8;
- width = getCharWidth(chr);
- height = 8;
- }
+ charPtr = (_vm->_useCJKMode && chr > 127) ? _vm->get2byteCharPtr(chr) : _fontPtr + chr * 8;
+ width = getDrawWidthIntern(chr);
+ height = getDrawHeightIntern(chr);
+ setDrawCharIntern(chr);
+
+ origWidth = width;
+ origHeight = height;
// Clip at the right side (to avoid drawing "outside" the screen bounds).
if (_left + origWidth > _right + 1)
return;
- origWidth = width;
- origHeight = height;
-
- if (_shadowMode != kNoShadowMode) {
+ if (_shadowMode) {
width++;
height++;
}
@@ -769,30 +636,17 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
_textScreenID = vs->number;
}
- if (
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- (_vm->_game.platform != Common::kPlatformFMTowns) &&
-#endif
- (ignoreCharsetMask || !vs->hasTwoBuffers)) {
+ if ((ignoreCharsetMask || !vs->hasTwoBuffers)) {
dst = vs->getPixels(_left, drawTop);
- if (charPtr)
- drawBits1(*vs, dst, charPtr, drawTop, origWidth, origHeight, vs->format.bytesPerPixel);
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- else if (_vm->_cjkFont)
- _vm->_cjkFont->drawChar(*vs, chr, _left, drawTop, _color, _shadowColor);
-#endif
+ drawBits1(*vs, dst, charPtr, drawTop, origWidth, origHeight, vs->format.bytesPerPixel);
} else {
dst = (byte *)_vm->_textSurface.getBasePtr(_left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier);
- if (charPtr)
- drawBits1(_vm->_textSurface, dst, charPtr, drawTop, origWidth, origHeight, _vm->_textSurface.format.bytesPerPixel, (_vm->_textSurfaceMultiplier == 2 && !is2byte));
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- else if (_vm->_cjkFont)
- _vm->_cjkFont->drawChar(_vm->_textSurface, chr, _left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier, _color, _shadowColor);
-#endif
- if (is2byte) {
- origWidth /= _vm->_textSurfaceMultiplier;
- height /= _vm->_textSurfaceMultiplier;
- }
+ drawBits1(_vm->_textSurface, dst, charPtr, drawTop, origWidth, origHeight, _vm->_textSurface.format.bytesPerPixel);
+ }
+
+ if (is2byte) {
+ origWidth /= _vm->_textSurfaceMultiplier;
+ height /= _vm->_textSurfaceMultiplier;
}
if (_str.left > _left)
@@ -802,7 +656,7 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
if (_str.right < _left) {
_str.right = _left;
- if (_shadowMode != kNoShadowMode)
+ if (_shadowMode)
_str.right++;
}
@@ -811,30 +665,12 @@ void CharsetRendererV3::printChar(int chr, bool ignoreCharsetMask) {
}
void CharsetRendererV3::drawChar(int chr, Graphics::Surface &s, int x, int y) {
- const byte *charPtr;
- byte *dst;
- int width, height;
- int is2byte = (chr >= 0x80 && _vm->_useCJKMode) ? 1 : 0;
- if (is2byte) {
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- _vm->_cjkFont->drawChar(s, chr, x * _vm->_textSurfaceMultiplier, y * _vm->_textSurfaceMultiplier, _color, _shadowColor);
- return;
- }
- else
-#endif
- {
- charPtr = _vm->get2byteCharPtr(chr);
- width = _vm->_2byteWidth;
- height = _vm->_2byteHeight;
- }
- } else {
- charPtr = _fontPtr + chr * 8;
-// width = height = 8;
- width = getCharWidth(chr);
- height = 8;
- }
- dst = (byte *)s.pixels + y * s.pitch + x;
+ const byte *charPtr = (_vm->_useCJKMode && chr > 127) ? _vm->get2byteCharPtr(chr) : _fontPtr + chr * 8;
+ int width = getDrawWidthIntern(chr);
+ int height = getDrawHeightIntern(chr);
+ setDrawCharIntern(chr);
+
+ byte *dst = (byte *)s.pixels + y * s.pitch + x;
drawBits1(s, dst, charPtr, y, width, height, s.format.bytesPerPixel);
}
@@ -853,29 +689,6 @@ void CharsetRenderer::translateColor() {
}
}
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
-void CharsetRenderer::processTownsCharsetColors(uint8 bytesPerPixel) {
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- for (int i = 0; i < (1 << bytesPerPixel); i++) {
- uint8 c = _vm->_charsetColorMap[i];
-
- if (c > 16) {
- uint8 t = (_vm->_currentPalette[c * 3] < 32) ? 4 : 12;
- t |= ((_vm->_currentPalette[c * 3 + 1] < 32) ? 2 : 10);
- t |= ((_vm->_currentPalette[c * 3 + 1] < 32) ? 1 : 9);
- c = t;
- }
-
- if (c == 0)
- c = _vm->_townsOverrideShadowColor;
-
- c = ((c & 0x0f) << 4) | (c & 0x0f);
- _vm->_townsCharsetColorMap[i] = c;
- }
- }
-}
-#endif
-
void CharsetRenderer::saveLoadWithSerializer(Serializer *ser) {
static const SaveLoadEntry charsetRendererEntries[] = {
MKLINE_OLD(CharsetRenderer, _curId, sleByte, VER(73), VER(73)),
@@ -893,10 +706,7 @@ void CharsetRenderer::saveLoadWithSerializer(Serializer *ser) {
}
void CharsetRendererClassic::printChar(int chr, bool ignoreCharsetMask) {
- int width, height, origWidth, origHeight;
- int offsX, offsY;
VirtScreen *vs;
- const byte *charPtr;
bool is2byte = (chr >= 256 && _vm->_useCJKMode);
assertRange(1, _curId, _vm->_numCharsets - 1, "charset");
@@ -911,64 +721,8 @@ void CharsetRendererClassic::printChar(int chr, bool ignoreCharsetMask) {
_vm->_charsetColorMap[1] = _color;
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- processTownsCharsetColors(_bytesPerPixel);
- bool noSjis = false;
-
- if (_vm->_game.platform == Common::kPlatformFMTowns && _vm->_useCJKMode) {
- if ((chr & 0x00ff) == 0x00fd) {
- chr >>= 8;
- noSjis = true;
- }
- }
-
- if (useTownsFontRomCharacter(chr) && !noSjis) {
- charPtr = 0;
- _vm->_cjkChar = chr;
- enableShadow(true);
-
- width = getCharWidth(chr);
- // For whatever reason MI1 uses a different font width
- // for alignment calculation and for drawing when
- // charset 2 is active. This fixes some subtle glitches.
- if (_vm->_game.id == GID_MONKEY && _curId == 2)
- width--;
- origWidth = width;
-
- origHeight = height = getFontHeight();
- offsX = offsY = 0;
- } else if (_vm->_useCJKMode && (chr >= 128) && !noSjis) {
- enableShadow(true);
- origWidth = width = _vm->_2byteWidth;
- origHeight = height = _vm->_2byteHeight;
- charPtr = _vm->get2byteCharPtr(chr);
- offsX = offsY = 0;
- if (_shadowMode != kNoShadowMode) {
- width++;
- height++;
- }
- } else
-#endif
- {
- uint32 charOffs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
- assert(charOffs < 0x14000);
- if (!charOffs)
- return;
- charPtr = _fontPtr + charOffs;
-
- width = origWidth = charPtr[0];
- height = origHeight = charPtr[1];
-
- if (_disableOffsX) {
- offsX = 0;
- } else {
- offsX = (signed char)charPtr[2];
- }
-
- offsY = (signed char)charPtr[3];
-
- charPtr += 4; // Skip over char header
- }
+ if (!prepareDraw(chr))
+ return;
if (_firstChar) {
_str.left = 0;
@@ -977,12 +731,12 @@ void CharsetRendererClassic::printChar(int chr, bool ignoreCharsetMask) {
_str.bottom = 0;
}
- _top += offsY;
- _left += offsX;
+ _top += _offsY;
+ _left += _offsX;
- if (_left + origWidth > _right + 1 || _left < 0) {
- _left += origWidth;
- _top -= offsY;
+ if (_left + _origWidth > _right + 1 || _left < 0) {
+ _left += _origWidth;
+ _top -= _offsY;
return;
}
@@ -1004,33 +758,29 @@ void CharsetRendererClassic::printChar(int chr, bool ignoreCharsetMask) {
int drawTop = _top - vs->topline;
- _vm->markRectAsDirty(vs->number, _left, _left + width, drawTop, drawTop + height);
+ _vm->markRectAsDirty(vs->number, _left, _left + _width, drawTop, drawTop + _height);
// This check for kPlatformFMTowns and kMainVirtScreen is at least required for the chat with
// the navigator's head in front of the ghost ship in Monkey Island 1
- if (!ignoreCharsetMask
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- || (_vm->_game.platform == Common::kPlatformFMTowns && vs->number == kMainVirtScreen)
-#endif
- ) {
+ if (!ignoreCharsetMask || (_vm->_game.platform == Common::kPlatformFMTowns && vs->number == kMainVirtScreen)) {
_hasMask = true;
_textScreenID = vs->number;
}
- printCharIntern(is2byte, charPtr, origWidth, origHeight, width, height, vs, ignoreCharsetMask);
+ printCharIntern(is2byte, _charPtr, _origWidth, _origHeight, _width, _height, vs, ignoreCharsetMask);
- _left += origWidth;
+ _left += _origWidth;
if (_str.right < _left) {
_str.right = _left;
- if (_vm->_game.platform != Common::kPlatformFMTowns && _shadowMode != kNoShadowMode)
+ if (_vm->_game.platform != Common::kPlatformFMTowns && _shadowMode)
_str.right++;
}
- if (_str.bottom < _top + origHeight)
- _str.bottom = _top + origHeight;
+ if (_str.bottom < _top + _origHeight)
+ _str.bottom = _top + _origHeight;
- _top -= offsY;
+ _top -= _offsY;
}
void CharsetRendererClassic::printCharIntern(bool is2byte, const byte *charPtr, int origWidth, int origHeight, int width, int height, VirtScreen *vs, bool ignoreCharsetMask) {
@@ -1068,11 +818,7 @@ void CharsetRendererClassic::printCharIntern(bool is2byte, const byte *charPtr,
} else {
Graphics::Surface dstSurface;
Graphics::Surface backSurface;
- if ((ignoreCharsetMask || !vs->hasTwoBuffers)
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- && (_vm->_game.platform != Common::kPlatformFMTowns)
-#endif
- ) {
+ if ((ignoreCharsetMask || !vs->hasTwoBuffers)) {
dstSurface = *vs;
dstPtr = vs->getPixels(_left, drawTop);
} else {
@@ -1091,16 +837,7 @@ void CharsetRendererClassic::printCharIntern(bool is2byte, const byte *charPtr,
drawTop = _top - _vm->_screenTop;
}
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (!charPtr && _vm->_cjkFont) {
- _vm->_cjkFont->drawChar(dstSurface, _vm->_cjkChar, _left * _vm->_textSurfaceMultiplier, (_top - _vm->_screenTop) * _vm->_textSurfaceMultiplier, _vm->_townsCharsetColorMap[1], _shadowColor);
- } else
-#endif
- if (is2byte) {
- drawBits1(dstSurface, dstPtr, charPtr, drawTop, origWidth, origHeight, dstSurface.format.bytesPerPixel);
- } else {
- drawBitsN(dstSurface, dstPtr, charPtr, *_fontPtr, drawTop, origWidth, origHeight, _vm->_textSurfaceMultiplier == 2);
- }
+ drawBitsN(dstSurface, dstPtr, charPtr, *_fontPtr, drawTop, origWidth, origHeight);
if (_blitAlso && vs->hasTwoBuffers) {
// FIXME: Revisiting this code, I think the _blitAlso mode is likely broken
@@ -1139,54 +876,36 @@ void CharsetRendererClassic::printCharIntern(bool is2byte, const byte *charPtr,
}
}
-void CharsetRendererClassic::drawChar(int chr, Graphics::Surface &s, int x, int y) {
- const byte *charPtr;
- byte *dst;
- int width, height;
- int is2byte = (chr >= 0x80 && _vm->_useCJKMode) ? 1 : 0;
-
- if (is2byte) {
- enableShadow(true);
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (_vm->_game.platform == Common::kPlatformFMTowns) {
- _vm->_cjkFont->drawChar(s, chr, x * _vm->_textSurfaceMultiplier, y * _vm->_textSurfaceMultiplier, _color, _shadowColor);
- return;
- } else
-#endif
- {
- charPtr = _vm->get2byteCharPtr(chr);
- width = _vm->_2byteWidth;
- height = _vm->_2byteHeight;
- }
- } else {
- uint32 charOffs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
- assert(charOffs < 0x10000);
- if (!charOffs)
- return;
- charPtr = _fontPtr + charOffs;
+bool CharsetRendererClassic::prepareDraw(uint16 chr) {
+ uint32 charOffs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
+ assert(charOffs < 0x14000);
+ if (!charOffs)
+ return false;
+ _charPtr = _fontPtr + charOffs;
- width = charPtr[0];
- height = charPtr[1];
+ _width = _origWidth = _charPtr[0];
+ _height = _origHeight = _charPtr[1];
- charPtr += 4; // Skip over char header
+ if (_disableOffsX) {
+ _offsX = 0;
+ } else {
+ _offsX = (signed char)_charPtr[2];
}
- dst = (byte *)s.pixels + y * s.pitch + x;
+ _offsY = (signed char)_charPtr[3];
- if (is2byte) {
- drawBits1(s, dst, charPtr, y, width, height, s.format.bytesPerPixel);
- } else {
- drawBitsN(s, dst, charPtr, *_fontPtr, y, width, height);
- }
+ _charPtr += 4; // Skip over char header
+ return true;
}
-void CharsetRendererClassic::drawBitsN(const Graphics::Surface &s, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height,
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- bool scale2x) {
-#else
- bool) {
-#endif
+void CharsetRendererClassic::drawChar(int chr, Graphics::Surface &s, int x, int y) {
+ if (!prepareDraw(chr))
+ return;
+ byte *dst = (byte *)s.pixels + y * s.pitch + x;
+ drawBitsN(s, dst, _charPtr, *_fontPtr, y, _width, _height);
+}
+void CharsetRendererClassic::drawBitsN(const Graphics::Surface &s, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height) {
int y, x;
int color;
byte numbits, bits;
@@ -1198,38 +917,13 @@ void CharsetRendererClassic::drawBitsN(const Graphics::Surface &s, byte *dst, co
numbits = 8;
byte *cmap = _vm->_charsetColorMap;
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- byte *dst2 = dst;
-
- if (_vm->_game.platform == Common::kPlatformFMTowns)
- cmap = _vm->_townsCharsetColorMap;
- if (scale2x) {
- dst2 += s.pitch;
- pitch <<= 1;
- }
-#endif
-
for (y = 0; y < height && y + drawTop < s.h; y++) {
for (x = 0; x < width; x++) {
color = (bits >> (8 - bpp)) & 0xFF;
- if (color && y + drawTop >= 0) {
+ if (color && y + drawTop >= 0)
*dst = cmap[color];
-
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (scale2x)
- dst[1] = dst2[0] = dst2[1] = dst[0];
-#endif
- }
dst++;
-
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- if (scale2x) {
- dst++;
- dst2 += 2;
- }
-#endif
-
bits <<= bpp;
numbits -= bpp;
if (numbits == 0) {
@@ -1238,52 +932,93 @@ void CharsetRendererClassic::drawBitsN(const Graphics::Surface &s, byte *dst, co
}
}
dst += pitch;
+ }
+}
+
+CharsetRendererTownsV3::CharsetRendererTownsV3(ScummEngine *vm) : CharsetRendererV3(vm), _sjisCurChar(0) {
+}
+
+int CharsetRendererTownsV3::getCharWidth(uint16 chr) {
+ int spacing = 0;
+
+ if (_vm->_useCJKMode) {
+ if (chr >= 256)
+ spacing = 8;
+ else if (chr >= 128)
+ spacing = 4;
+ }
+
+ if (!spacing)
+ spacing = *(_widthTable + chr);
+
+ return spacing;
+}
+
+int CharsetRendererTownsV3::getFontHeight() {
+ return _vm->_useCJKMode ? 8 : _fontHeight;
+}
+
+void CharsetRendererTownsV3::enableShadow(bool enable) {
+ _shadowColor = 8;
+ _shadowMode = enable;
+
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- dst2 += pitch;
+ _shadowColor = 0x88;
+#ifdef USE_RGB_COLOR
+ if (_vm->_cjkFont)
+ _vm->_cjkFont->setDrawingMode(enable ? Graphics::FontSJIS::kFMTownsShadowMode : Graphics::FontSJIS::kDefaultMode);
+#endif
#endif
- }
}
-void CharsetRendererCommon::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth,
+void CharsetRendererTownsV3::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth) {
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- bool scale2x) {
+#ifdef USE_RGB_COLOR
+ if (_sjisCurChar) {
+ assert(_vm->_cjkFont);
+ _vm->_cjkFont->drawChar(_vm->_textSurface, _sjisCurChar, _left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier, _color, _shadowColor);
+ return;
+ }
+#endif
+
+ dst = (byte *)_vm->_textSurface.getBasePtr(_left * _vm->_textSurfaceMultiplier, _top * _vm->_textSurfaceMultiplier);
+ int sfPitch = _vm->_textSurface.pitch;
+ int sfHeight = _vm->_textSurface.h;
+ bool scale2x = (_vm->_textSurfaceMultiplier == 2 && !(_sjisCurChar >= 256 && _vm->_useCJKMode));
#else
- bool) {
+ int sfPitch = s.pitch;
+ int sfHeight = s.h;
#endif
int y, x;
byte bits = 0;
uint8 col = _color;
- int pitch = s.pitch - width * bitDepth;
- byte *dst2 = dst + s.pitch;
+ int pitch = sfPitch - width * bitDepth;
+ byte *dst2 = dst + sfPitch;
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
byte *dst3 = dst2;
byte *dst4 = dst2;
if (scale2x) {
- dst3 = dst2 + s.pitch;
- dst4 = dst3 + s.pitch;
+ dst3 = dst2 + sfPitch;
+ dst4 = dst3 + sfPitch;
pitch <<= 1;
}
- if (_vm->_game.platform == Common::kPlatformFMTowns && _vm->_game.version == 5)
- col = _vm->_townsCharsetColorMap[1];
#endif
- for (y = 0; y < height && y + drawTop < s.h; y++) {
+ for (y = 0; y < height && y + drawTop < sfHeight; y++) {
for (x = 0; x < width; x++) {
if ((x % 8) == 0)
bits = *src++;
if ((bits & revBitMask(x % 8)) && y + drawTop >= 0) {
if (bitDepth == 2) {
- if (_shadowMode != kNoShadowMode) {
+ if (_shadowMode) {
WRITE_UINT16(dst + 2, _vm->_16BitPalette[_shadowColor]);
- WRITE_UINT16(dst + s.pitch, _vm->_16BitPalette[_shadowColor]);
- if (_shadowMode != kFMTOWNSShadowMode)
- WRITE_UINT16(dst + s.pitch + 2, _vm->_16BitPalette[_shadowColor]);
+ WRITE_UINT16(dst + sfPitch, _vm->_16BitPalette[_shadowColor]);
}
WRITE_UINT16(dst, _vm->_16BitPalette[_color]);
} else {
- if (_shadowMode != kNoShadowMode) {
+ if (_shadowMode) {
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
if (scale2x) {
dst[2] = dst[3] = dst2[2] = dst2[3] = _shadowColor;
@@ -1292,8 +1027,6 @@ void CharsetRendererCommon::drawBits1(const Graphics::Surface &s, byte *dst, con
#endif
{
dst[1] = dst2[0] = _shadowColor;
- if (_shadowMode != kFMTOWNSShadowMode)
- dst2[1] = _shadowColor;
}
}
dst[0] = col;
@@ -1324,31 +1057,64 @@ void CharsetRendererCommon::drawBits1(const Graphics::Surface &s, byte *dst, con
#endif
}
}
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+int CharsetRendererTownsV3::getDrawWidthIntern(uint16 chr) {
+#ifdef USE_RGB_COLOR
+ if (_vm->_useCJKMode && chr > 127) {
+ assert(_vm->_cjkFont);
+ return _vm->_cjkFont->getCharWidth(chr);
+ }
+#endif
+ return CharsetRendererV3::getDrawWidthIntern(chr);
+}
+
+int CharsetRendererTownsV3::getDrawHeightIntern(uint16 chr) {
+#ifdef USE_RGB_COLOR
+ if (_vm->_useCJKMode && chr > 127) {
+ assert(_vm->_cjkFont);
+ return _vm->_cjkFont->getFontHeight();
+ }
+#endif
+ return CharsetRendererV3::getDrawHeightIntern(chr);
+}
+
+void CharsetRendererTownsV3::setDrawCharIntern(uint16 chr) {
+ _sjisCurChar = (_vm->_useCJKMode && chr > 127) ? chr : 0;
+}
+#endif
#ifdef USE_RGB_COLOR
-void CharsetRendererPCE::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth, bool scalex) {
+void CharsetRendererPCE::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth) {
+ if (_sjisCurChar) {
+ assert(_vm->_cjkFont);
+ uint16 col1 = _color;
+ uint16 col2 = _shadowColor;
+
+ if (s.format.bytesPerPixel == 2) {
+ col1 = _vm->_16BitPalette[col1];
+ col2 = _vm->_16BitPalette[col2];
+ }
+
+ _vm->_cjkFont->drawChar(dst, _sjisCurChar, s.pitch, s.format.bytesPerPixel, col1, col2, -1, -1);
+ return;
+ }
+
int y, x;
- int bitCount = 0;
byte bits = 0;
- const bool resetLineBitCount = (_vm->_language != Common::JA_JPN || width != 12);
-
for (y = 0; y < height && y + drawTop < s.h; y++) {
- if (resetLineBitCount)
- bitCount = 0;
+ int bitCount = 0;
for (x = 0; x < width; x++) {
if ((bitCount % 8) == 0)
bits = *src++;
if ((bits & revBitMask(bitCount % 8)) && y + drawTop >= 0) {
if (bitDepth == 2) {
- if (_shadowMode != kNoShadowMode) {
+ if (_shadowMode)
WRITE_UINT16(dst + s.pitch + 2, _vm->_16BitPalette[_shadowColor]);
- }
WRITE_UINT16(dst, _vm->_16BitPalette[_color]);
} else {
- if (_shadowMode != kNoShadowMode) {
+ if (_shadowMode)
*(dst + s.pitch + 1) = _shadowColor;
- }
*dst = _color;
}
}
@@ -1359,6 +1125,22 @@ void CharsetRendererPCE::drawBits1(const Graphics::Surface &s, byte *dst, const
dst += s.pitch - width * bitDepth;
}
}
+
+int CharsetRendererPCE::getDrawWidthIntern(uint16 chr) {
+ if (_vm->_useCJKMode && chr > 127)
+ return _vm->_2byteWidth;
+ return CharsetRendererV3::getDrawWidthIntern(chr);
+}
+
+int CharsetRendererPCE::getDrawHeightIntern(uint16 chr) {
+ if (_vm->_useCJKMode && chr > 127)
+ return _vm->_2byteHeight;
+ return CharsetRendererV3::getDrawHeightIntern(chr);
+}
+
+void CharsetRendererPCE::setDrawCharIntern(uint16 chr) {
+ _sjisCurChar = (_vm->_useCJKMode && chr > 127) ? chr : 0;
+}
#endif
#ifdef ENABLE_SCUMM_7_8
@@ -1533,7 +1315,7 @@ void CharsetRendererNES::printChar(int chr, bool ignoreCharsetMask) {
if (_str.right < _left) {
_str.right = _left;
- if (_shadowMode != kNoShadowMode)
+ if (_shadowMode)
_str.right++;
}
@@ -1556,7 +1338,204 @@ void CharsetRendererNES::drawChar(int chr, Graphics::Surface &s, int x, int y) {
drawBits1(s, dst, charPtr, y, width, height, s.format.bytesPerPixel);
}
-void CharsetRendererNES::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth, bool scalex) {
+#ifdef USE_RGB_COLOR
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+CharsetRendererTownsClassic::CharsetRendererTownsClassic(ScummEngine *vm) : CharsetRendererClassic(vm), _sjisCurChar(0) {
+}
+
+int CharsetRendererTownsClassic::getCharWidth(uint16 chr) {
+ int spacing = 0;
+
+ if (_vm->_useCJKMode) {
+ if ((chr & 0xff00) == 0xfd00) {
+ chr &= 0xff;
+ } else if (chr >= 256) {
+ spacing = 8;
+ } else if (useFontRomCharacter(chr)) {
+ spacing = 4;
+ }
+
+ if (spacing) {
+ if (_vm->_game.id == GID_MONKEY) {
+ spacing++;
+ if (_curId == 2)
+ spacing++;
+ } else if (_vm->_game.id != GID_INDY4 && _curId == 1) {
+ spacing++;
+ }
+ }
+ }
+
+ if (!spacing) {
+ int offs = READ_LE_UINT32(_fontPtr + chr * 4 + 4);
+ if (offs)
+ spacing = _fontPtr[offs] + (signed char)_fontPtr[offs + 2];
+ }
+
+ return spacing;
+}
+
+int CharsetRendererTownsClassic::getFontHeight() {
+ static const uint8 sjisFontHeightM1[] = { 0, 8, 9, 8, 9, 8, 9, 0, 0, 0 };
+ static const uint8 sjisFontHeightM2[] = { 0, 8, 9, 9, 9, 8, 9, 9, 9, 8 };
+ static const uint8 sjisFontHeightI4[] = { 0, 8, 9, 9, 9, 8, 8, 8, 8, 8 };
+ const uint8 *htbl = (_vm->_game.id == GID_MONKEY) ? sjisFontHeightM1 : ((_vm->_game.id == GID_INDY4) ? sjisFontHeightI4 : sjisFontHeightM2);
+ return _vm->_useCJKMode ? htbl[_curId] : _fontHeight;
+}
+
+void CharsetRendererTownsClassic::drawBitsN(const Graphics::Surface&, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height) {
+ if (_sjisCurChar) {
+ assert(_vm->_cjkFont);
+ _vm->_cjkFont->drawChar(_vm->_textSurface, _sjisCurChar, _left * _vm->_textSurfaceMultiplier, (_top - _vm->_screenTop) * _vm->_textSurfaceMultiplier, _vm->_townsCharsetColorMap[1], _shadowColor);
+ return;
+ }
+
+ bool scale2x = (_vm->_textSurfaceMultiplier == 2);
+ dst = (byte *)_vm->_textSurface.pixels + (_top - _vm->_screenTop) * _vm->_textSurface.pitch * _vm->_textSurfaceMultiplier + _left * _vm->_textSurfaceMultiplier;
+
+ int y, x;
+ int color;
+ byte numbits, bits;
+
+ int pitch = _vm->_textSurface.pitch - width;
+
+ assert(bpp == 1 || bpp == 2 || bpp == 4 || bpp == 8);
+ bits = *src++;
+ numbits = 8;
+ byte *cmap = _vm->_charsetColorMap;
+ byte *dst2 = dst;
+
+ if (_vm->_game.platform == Common::kPlatformFMTowns)
+ cmap = _vm->_townsCharsetColorMap;
+ if (scale2x) {
+ dst2 += _vm->_textSurface.pitch;
+ pitch <<= 1;
+ }
+
+ for (y = 0; y < height && y + drawTop < _vm->_textSurface.h; y++) {
+ for (x = 0; x < width; x++) {
+ color = (bits >> (8 - bpp)) & 0xFF;
+
+ if (color && y + drawTop >= 0) {
+ *dst = cmap[color];
+ if (scale2x)
+ dst[1] = dst2[0] = dst2[1] = dst[0];
+ }
+ dst++;
+
+ if (scale2x) {
+ dst++;
+ dst2 += 2;
+ }
+
+ bits <<= bpp;
+ numbits -= bpp;
+ if (numbits == 0) {
+ bits = *src++;
+ numbits = 8;
+ }
+ }
+ dst += pitch;
+ dst2 += pitch;
+ }
+}
+
+bool CharsetRendererTownsClassic::prepareDraw(uint16 chr) {
+ processCharsetColors();
+ bool noSjis = false;
+
+ if (_vm->_game.platform == Common::kPlatformFMTowns && _vm->_useCJKMode) {
+ if ((chr & 0x00ff) == 0x00fd) {
+ chr >>= 8;
+ noSjis = true;
+ }
+ }
+
+ if (useFontRomCharacter(chr) && !noSjis) {
+ setupShadowMode();
+ _charPtr = 0;
+ _sjisCurChar = chr;
+
+ _width = getCharWidth(chr);
+ // For whatever reason MI1 uses a different font width
+ // for alignment calculation and for drawing when
+ // charset 2 is active. This fixes some subtle glitches.
+ if (_vm->_game.id == GID_MONKEY && _curId == 2)
+ _width--;
+ _origWidth = _width;
+
+ _origHeight = _height = getFontHeight();
+ _offsX = _offsY = 0;
+ } else if (_vm->_useCJKMode && (chr >= 128) && !noSjis) {
+ setupShadowMode();
+ _origWidth = _width = _vm->_2byteWidth;
+ _origHeight = _height = _vm->_2byteHeight;
+ _charPtr = _vm->get2byteCharPtr(chr);
+ _offsX = _offsY = 0;
+ if (_shadowMode) {
+ _width++;
+ _height++;
+ }
+ } else {
+ _sjisCurChar = 0;
+ return CharsetRendererClassic::prepareDraw(chr);
+ }
+ return true;
+}
+
+void CharsetRendererTownsClassic::setupShadowMode() {
+ _shadowMode = true;
+ _shadowColor = _vm->_townsCharsetColorMap[0];
+ assert(_vm->_cjkFont);
+
+ if (((_vm->_game.id == GID_MONKEY) && (_curId == 2 || _curId == 4 || _curId == 6)) ||
+ ((_vm->_game.id == GID_MONKEY2) && (_curId != 1 && _curId != 5 && _curId != 9)) ||
+ ((_vm->_game.id == GID_INDY4) && (_curId == 2 || _curId == 3 || _curId == 4))) {
+ _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kOutlineMode);
+ } else {
+ _vm->_cjkFont->setDrawingMode(Graphics::FontSJIS::kDefaultMode);
+ }
+
+ _vm->_cjkFont->toggleFlippedMode((_vm->_game.id == GID_MONKEY || _vm->_game.id == GID_MONKEY2) && _curId == 3);
+}
+
+bool CharsetRendererTownsClassic::useFontRomCharacter(uint16 chr) {
+ if (!_vm->_useCJKMode)
+ return false;
+
+ // Some SCUMM 5 games contain hard coded logic to determine whether to use
+ // the SCUMM fonts or the FM-Towns font rom to draw a character. For the other
+ // games we will simply check for a character greater 127.
+ if (chr < 128) {
+ if (((_vm->_game.id == GID_MONKEY2 && _curId != 0) || (_vm->_game.id == GID_INDY4 && _curId != 3)) && (chr > 31 && chr != 94 && chr != 95 && chr != 126 && chr != 127))
+ return true;
+ return false;
+ }
+ return true;
+}
+
+void CharsetRendererTownsClassic::processCharsetColors() {
+ for (int i = 0; i < (1 << _bytesPerPixel); i++) {
+ uint8 c = _vm->_charsetColorMap[i];
+
+ if (c > 16) {
+ uint8 t = (_vm->_currentPalette[c * 3] < 32) ? 4 : 12;
+ t |= ((_vm->_currentPalette[c * 3 + 1] < 32) ? 2 : 10);
+ t |= ((_vm->_currentPalette[c * 3 + 1] < 32) ? 1 : 9);
+ c = t;
+ }
+
+ if (c == 0)
+ c = _vm->_townsOverrideShadowColor;
+
+ c = ((c & 0x0f) << 4) | (c & 0x0f);
+ _vm->_townsCharsetColorMap[i] = c;
+ }
+}
+#endif
+#endif
+
+void CharsetRendererNES::drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth) {
for (int i = 0; i < 8; i++) {
byte c0 = src[i];
byte c1 = src[i + 8];
diff --git a/engines/scumm/charset.h b/engines/scumm/charset.h
index 4c657b475e..b23ec996f5 100644
--- a/engines/scumm/charset.h
+++ b/engines/scumm/charset.h
@@ -25,6 +25,7 @@
#include "common/scummsys.h"
#include "common/rect.h"
#include "graphics/sjis.h"
+#include "scumm/scumm.h"
#include "scumm/gfx.h"
#include "scumm/saveload.h"
@@ -78,10 +79,6 @@ public:
void addLinebreaks(int a, byte *str, int pos, int maxwidth);
void translateColor();
-#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
- void processTownsCharsetColors(uint8 bytesPerPixel);
-#endif
-
virtual void setCurID(int32 id) = 0;
int getCurID() { return _curId; }
@@ -101,31 +98,26 @@ protected:
int _fontHeight;
int _numChars;
- enum ShadowMode {
- kNoShadowMode,
- kFMTOWNSShadowMode,
- kNormalShadowMode
- };
byte _shadowColor;
- ShadowMode _shadowMode;
-
- void enableShadow(bool enable);
- virtual void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth, bool scale2x = false);
-
+ bool _shadowMode;
public:
CharsetRendererCommon(ScummEngine *vm);
void setCurID(int32 id);
- int getFontHeight();
+ virtual int getFontHeight();
};
class CharsetRendererClassic : public CharsetRendererCommon {
protected:
- void drawBitsN(const Graphics::Surface &s, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height, bool scale2x = false);
+ virtual void drawBitsN(const Graphics::Surface &s, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height);
+ void printCharIntern(bool is2byte, const byte *charPtr, int origWidth, int origHeight, int width, int height, VirtScreen *vs, bool ignoreCharsetMask);
+ virtual bool prepareDraw(uint16 chr);
- void printCharIntern(bool is2byte, const byte *charPtr, int origWidth, int origHeight, int width, int height, VirtScreen *vs, bool ignoreCharsetMask);
+ int _width, _height, _origWidth, _origHeight;
+ int _offsX, _offsY;
+ const byte *_charPtr;
public:
CharsetRendererClassic(ScummEngine *vm) : CharsetRendererCommon(vm) {}
@@ -134,18 +126,34 @@ public:
void drawChar(int chr, Graphics::Surface &s, int x, int y);
int getCharWidth(uint16 chr);
+};
+
+#ifdef USE_RGB_COLOR
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+class CharsetRendererTownsClassic : public CharsetRendererClassic {
+public:
+ CharsetRendererTownsClassic(ScummEngine *vm);
+
+ int getCharWidth(uint16 chr);
+ int getFontHeight();
- // Some SCUMM 5 games contain hard coded logic to determine whether to use
- // the SCUMM fonts or the FM-Towns font rom to draw a character. For the other
- // games we will simply check for a character greater 127.
- bool useTownsFontRomCharacter(uint16 chr);
+private:
+ void drawBitsN(const Graphics::Surface &s, byte *dst, const byte *src, byte bpp, int drawTop, int width, int height);
+ bool prepareDraw(uint16 chr);
+ void setupShadowMode();
+ bool useFontRomCharacter(uint16 chr);
+ void processCharsetColors();
+
+ uint16 _sjisCurChar;
};
+#endif
+#endif
class CharsetRendererNES : public CharsetRendererCommon {
protected:
byte *_trTable;
- void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth, bool scale2x = false);
+ void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth);
public:
CharsetRendererNES(ScummEngine *vm) : CharsetRendererCommon(vm) {}
@@ -160,6 +168,12 @@ public:
class CharsetRendererV3 : public CharsetRendererCommon {
protected:
+ virtual void enableShadow(bool enable);
+ virtual void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth);
+ virtual int getDrawWidthIntern(uint16 chr);
+ virtual int getDrawHeightIntern(uint16 chr);
+ virtual void setDrawCharIntern(uint16 chr) {}
+
const byte *_widthTable;
public:
@@ -169,16 +183,40 @@ public:
void drawChar(int chr, Graphics::Surface &s, int x, int y);
void setCurID(int32 id);
void setColor(byte color);
+ virtual int getCharWidth(uint16 chr);
+};
+
+class CharsetRendererTownsV3 : public CharsetRendererV3 {
+public:
+ CharsetRendererTownsV3(ScummEngine *vm);
+
int getCharWidth(uint16 chr);
+ int getFontHeight();
+
+private:
+ void enableShadow(bool enable);
+ void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth);
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+ int getDrawWidthIntern(uint16 chr);
+ int getDrawHeightIntern(uint16 chr);
+ void setDrawCharIntern(uint16 chr);
+#endif
+ uint16 _sjisCurChar;
};
#ifdef USE_RGB_COLOR
class CharsetRendererPCE : public CharsetRendererV3 {
-protected:
- void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth, bool scale2x = false);
+private:
+ void drawBits1(const Graphics::Surface &s, byte *dst, const byte *src, int drawTop, int width, int height, uint8 bitDepth);
+
+ int getDrawWidthIntern(uint16 chr);
+ int getDrawHeightIntern(uint16 chr);
+ void setDrawCharIntern(uint16 chr);
+
+ uint16 _sjisCurChar;
public:
- CharsetRendererPCE(ScummEngine *vm) : CharsetRendererV3(vm) {}
+ CharsetRendererPCE(ScummEngine *vm) : CharsetRendererV3(vm), _sjisCurChar(0) {}
void setColor(byte color);
};
diff --git a/engines/scumm/cursor.cpp b/engines/scumm/cursor.cpp
index a8adb4d5c5..6739282c9d 100644
--- a/engines/scumm/cursor.cpp
+++ b/engines/scumm/cursor.cpp
@@ -22,6 +22,9 @@
#include "common/system.h"
#include "common/util.h"
#include "graphics/cursorman.h"
+#ifdef ENABLE_HE
+#include "graphics/wincursor.h"
+#endif
#include "scumm/bomp.h"
#include "scumm/charset.h"
#include "scumm/he/intern_he.h"
@@ -177,12 +180,8 @@ void ScummEngine_v70he::setDefaultCursor() {
0xff, 0xff, 0xff,
0, 0, 0, };
- if (_bytesPerPixel == 2) {
- for (i = 0; i < 1024; i++)
- WRITE_UINT16(_grabbedCursor + i * 2, 5);
- } else {
- memset(_grabbedCursor, 5, sizeof(_grabbedCursor));
- }
+
+ memset(_grabbedCursor, 5, sizeof(_grabbedCursor));
_cursor.hotspotX = _cursor.hotspotY = 2;
src = default_he_cursor;
@@ -195,16 +194,10 @@ void ScummEngine_v70he::setDefaultCursor() {
for (j = 0; j < 32; j++) {
switch ((p & (0x3 << 14)) >> 14) {
case 1:
- if (_bytesPerPixel == 2)
- WRITE_UINT16(_grabbedCursor + 64 * i + j * 2, get16BitColor(palette[4], palette[5], palette[6]));
- else
- _grabbedCursor[32 * i + j] = 0xfe;
+ _grabbedCursor[32 * i + j] = 0xfe;
break;
case 2:
- if (_bytesPerPixel == 2)
- WRITE_UINT16(_grabbedCursor + 64 * i + j * 2, get16BitColor(palette[0], palette[1], palette[2]));
- else
- _grabbedCursor[32 * i + j] = 0xfd;
+ _grabbedCursor[32 * i + j] = 0xfd;
break;
default:
break;
@@ -216,15 +209,63 @@ void ScummEngine_v70he::setDefaultCursor() {
}
}
+ // Since white color position is not guaranteed
+ // we setup our own palette if supported by backend
+ CursorMan.disableCursorPalette(false);
+ CursorMan.replaceCursorPalette(palette, 0xfd, 3);
+
+ updateCursor();
+}
+
+#ifdef ENABLE_HE
+void ScummEngine_v80he::setDefaultCursor() {
+ // v80+ games use the default Windows cursor instead of the usual
+ // default HE cursor.
+ Graphics::Cursor *cursor = Graphics::makeDefaultWinCursor();
+
+ // Clear the cursor
+ if (_bytesPerPixel == 2) {
+ for (int i = 0; i < 1024; i++)
+ WRITE_UINT16(_grabbedCursor + i * 2, 5);
+ } else {
+ memset(_grabbedCursor, 5, sizeof(_grabbedCursor));
+ }
+
+ _cursor.width = cursor->getWidth();
+ _cursor.height = cursor->getHeight();
+ _cursor.hotspotX = cursor->getHotspotX();
+ _cursor.hotspotY = cursor->getHotspotY();
+
+ const byte *surface = cursor->getSurface();
+ const byte *palette = cursor->getPalette();
+
+ for (uint16 y = 0; y < _cursor.height; y++) {
+ for (uint16 x = 0; x < _cursor.width; x++) {
+ byte pixel = *surface++;
+
+ if (pixel != cursor->getKeyColor()) {
+ pixel -= cursor->getPaletteStartIndex();
+
+ if (_bytesPerPixel == 2)
+ WRITE_UINT16(_grabbedCursor + (y * _cursor.width + x) * 2, get16BitColor(palette[pixel * 3], palette[pixel * 3 + 1], palette[pixel * 3 + 2]));
+ else
+ _grabbedCursor[y * _cursor.width + x] = (pixel == 0) ? 0xfd : 0xfe;
+ }
+ }
+ }
+
if (_bytesPerPixel == 1) {
// Since white color position is not guaranteed
// we setup our own palette if supported by backend
CursorMan.disableCursorPalette(false);
- CursorMan.replaceCursorPalette(palette, 0xfd, 3);
+ CursorMan.replaceCursorPalette(palette, 0xfd, cursor->getPaletteCount());
}
+ delete cursor;
+
updateCursor();
}
+#endif
void ScummEngine_v6::setCursorFromImg(uint img, uint room, uint imgindex) {
int w, h;
diff --git a/engines/scumm/detection.cpp b/engines/scumm/detection.cpp
index 18f2f4ddec..037c12bdbf 100644
--- a/engines/scumm/detection.cpp
+++ b/engines/scumm/detection.cpp
@@ -33,6 +33,8 @@
#include "common/savefile.h"
#include "common/system.h"
+#include "audio/mididrv.h"
+
#include "scumm/detection.h"
#include "scumm/detection_tables.h"
#include "scumm/he/intern_he.h"
@@ -142,6 +144,14 @@ Common::String ScummEngine_v70he::generateFilename(const int room) const {
Common::String result;
char id = 0;
+ Common::String bPattern = _filenamePattern.pattern;
+
+ // Special cases for Blue's games, which share common (b) files
+ if (_game.id == GID_BIRTHDAYYELLOW || _game.id == GID_BIRTHDAYRED)
+ bPattern = "Blue'sBirthday";
+ else if (_game.id == GID_TREASUREHUNT)
+ bPattern = "Blue'sTreasureHunt";
+
switch (_filenamePattern.genMethod) {
case kGenHEMac:
case kGenHEMacNoParens:
@@ -154,13 +164,7 @@ Common::String ScummEngine_v70he::generateFilename(const int room) const {
switch (disk) {
case 2:
id = 'b';
- // Special cases for Blue's games, which share common (b) files
- if (_game.id == GID_BIRTHDAY && !(_game.features & GF_DEMO))
- result = "Blue'sBirthday.(b)";
- else if (_game.id == GID_TREASUREHUNT)
- result = "Blue'sTreasureHunt.(b)";
- else
- result = Common::String::format("%s.(b)", _filenamePattern.pattern);
+ result = bPattern + ".(b)";
break;
case 1:
id = 'a';
@@ -185,10 +189,11 @@ Common::String ScummEngine_v70he::generateFilename(const int room) const {
// For mac they're stored in game binary
result = _filenamePattern.pattern;
} else {
+ Common::String pattern = id == 'b' ? bPattern : _filenamePattern.pattern;
if (_filenamePattern.genMethod == kGenHEMac)
- result = Common::String::format("%s (%c)", _filenamePattern.pattern, id);
+ result = Common::String::format("%s (%c)", pattern.c_str(), id);
else
- result = Common::String::format("%s %c", _filenamePattern.pattern, id);
+ result = Common::String::format("%s %c", pattern.c_str(), id);
}
}
diff --git a/engines/scumm/detection_tables.h b/engines/scumm/detection_tables.h
index e510c46cf2..78645ea8d5 100644
--- a/engines/scumm/detection_tables.h
+++ b/engines/scumm/detection_tables.h
@@ -222,7 +222,7 @@ static const GameSettings gameVariantsTable[] = {
{"indy3", "EGA", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, 0, UNK, GUIO_NOSPEECH | GUIO_NOMIDI},
{"indy3", "No AdLib", "ega", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR, 0, UNK, GUIO_NOSPEECH | GUIO_NOMIDI},
- {"indy3", "VGA", "vga", GID_INDY3, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_ADLIB, GF_OLD256 | GF_FEW_LOCALS, Common::kPlatformPC, 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, GUIO_NOSPEECH | GUIO_NOMIDI},
{"indy3", "FM-TOWNS", 0, GID_INDY3, 3, 0, MDT_TOWNS, GF_OLD256 | GF_FEW_LOCALS | GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO_NOSPEECH | GUIO_NOMIDI | GUIO_MIDITOWNS},
{"loom", "EGA", "ega", GID_LOOM, 3, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
@@ -233,9 +233,9 @@ static const GameSettings gameVariantsTable[] = {
{"loom", "FM-TOWNS", 0, GID_LOOM, 3, 0, MDT_TOWNS, GF_AUDIOTRACKS | GF_OLD256, Common::kPlatformFMTowns, GUIO_NOSPEECH | GUIO_NOMIDI | GUIO_MIDITOWNS},
{"loom", "VGA", "vga", GID_LOOM, 4, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformPC, GUIO_NOSPEECH | GUIO_NOMIDI},
- {"pass", 0, 0, GID_PASS, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_ADLIB, GF_16COLOR, Common::kPlatformPC, GUIO_NOSPEECH | GUIO_NOMIDI},
+ {"pass", 0, 0, GID_PASS, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB, GF_16COLOR, Common::kPlatformPC, GUIO_NOSPEECH | GUIO_NOMIDI},
- {"monkey", "VGA", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
+ {"monkey", "VGA", "vga", GID_MONKEY_VGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_CMS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, 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, GUIO_NOSPEECH},
{"monkey", "No AdLib", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR, GF_16COLOR, Common::kPlatformAtariST, GUIO_NOSPEECH | GUIO_NOMIDI},
{"monkey", "Demo", "ega", GID_MONKEY_EGA, 4, 0, MDT_PCSPK | MDT_PCJR | MDT_ADLIB, GF_16COLOR, Common::kPlatformPC, GUIO_NOSPEECH | GUIO_NOMIDI},
@@ -243,11 +243,11 @@ static const GameSettings gameVariantsTable[] = {
{"monkey", "FM-TOWNS", 0, GID_MONKEY, 5, 0, MDT_TOWNS, GF_AUDIOTRACKS, Common::kPlatformFMTowns, GUIO_NOSPEECH | GUIO_NOMIDI | GUIO_MIDITOWNS},
{"monkey", "SEGA", 0, GID_MONKEY, 5, 0, MDT_NONE, GF_AUDIOTRACKS, Common::kPlatformSegaCD, GUIO_NOSPEECH | GUIO_NOMIDI},
- {"monkey2", "", 0, GID_MONKEY2, 5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
- {"monkey2", "FM-TOWNS", 0, GID_MONKEY2, 5, 0, MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NOSPEECH | GUIO_MIDITOWNS | GUIO_MIDIADLIB | GUIO_MIDIMT32},
+ {"monkey2", "", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
+ {"monkey2", "FM-TOWNS", 0, GID_MONKEY2, 5, 0, MDT_PCSPK | MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_NOSPEECH | GUIO_MIDITOWNS | GUIO_MIDIADLIB | GUIO_MIDIMT32},
- {"atlantis", "", 0, GID_INDY4, 5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NONE},
- {"atlantis", "Floppy", 0, GID_INDY4, 5, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
+ {"atlantis", "", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NONE},
+ {"atlantis", "Floppy", 0, GID_INDY4, 5, 0, MDT_PCSPK | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, UNK, GUIO_NOSPEECH},
{"atlantis", "FM-TOWNS", 0, GID_INDY4, 5, 0, MDT_TOWNS | MDT_ADLIB | MDT_MIDI | MDT_PREFER_MT32, 0, Common::kPlatformFMTowns, GUIO_MIDITOWNS | GUIO_MIDIADLIB | GUIO_MIDIMT32},
{"tentacle", "", 0, GID_TENTACLE, 6, 0, MDT_ADLIB | MDT_MIDI | MDT_PREFER_GM, GF_USE_KEY, UNK, GUIO_NONE},
@@ -343,7 +343,9 @@ static const GameSettings gameVariantsTable[] = {
{"puttrace", "HE 99", 0, GID_PUTTRACE, 6, 99, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
{"bluesabctime", "", 0, GID_HEGAME, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
- {"BluesBirthday", 0, 0, GID_BIRTHDAY, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
+ {"BluesBirthday", "", 0, GID_HEGAME, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
+ {"BluesBirthday", "Red", 0, GID_BIRTHDAYRED, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
+ {"BluesBirthday", "Yellow", 0, GID_BIRTHDAYYELLOW, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
{"soccer", "", 0, GID_SOCCER, 6, 98, MDT_NONE, GF_USE_KEY, UNK, GUIO_NOLAUNCHLOAD | GUIO_NOMIDI},
// Global scripts increased to 2048
diff --git a/engines/scumm/dialogs.cpp b/engines/scumm/dialogs.cpp
index f7f0c7d7ec..74a92f2204 100644
--- a/engines/scumm/dialogs.cpp
+++ b/engines/scumm/dialogs.cpp
@@ -23,6 +23,7 @@
#include "common/savefile.h"
#include "common/system.h"
#include "common/events.h"
+#include "common/localization.h"
#include "common/translation.h"
#include "graphics/scaler.h"
@@ -171,29 +172,33 @@ static const ResString string_map_table_v6[] = {
};
static const ResString string_map_table_v345[] = {
- {1, "Insert Disk %c and Press Button to Continue."},
- {2, "Unable to Find %s, (%c%d) Press Button."},
- {3, "Error reading disk %c, (%c%d) Press Button."},
- {4, "Game Paused. Press SPACE to Continue."},
- {5, "Are you sure you want to restart? (Y/N)"},
- {6, "Are you sure you want to quit? (Y/N)"},
+ {1, _s("Insert Disk %c and Press Button to Continue.")},
+ {2, _s("Unable to Find %s, (%c%d) Press Button.")},
+ {3, _s("Error reading disk %c, (%c%d) Press Button.")},
+ {4, _s("Game Paused. Press SPACE to Continue.")},
+ // I18N: You may specify 'Yes' symbol at the end of the line, like this:
+ // "Moechten Sie wirklich neu starten? (J/N)J"
+ // Will react to J as 'Yes'
+ {5, _s("Are you sure you want to restart? (Y/N)")},
+ // I18N: you may specify 'Yes' symbol at the end of the line. See previous comment
+ {6, _s("Are you sure you want to quit? (Y/N)")},
// Added in SCUMM4
- {7, "Save"},
- {8, "Load"},
- {9, "Play"},
- {10, "Cancel"},
- {11, "Quit"},
- {12, "OK"},
- {13, "Insert save/load game disk"},
- {14, "You must enter a name"},
- {15, "The game was NOT saved (disk full?)"},
- {16, "The game was NOT loaded"},
- {17, "Saving '%s'"},
- {18, "Loading '%s'"},
- {19, "Name your SAVE game"},
- {20, "Select a game to LOAD"},
- {28, "Game title"}
+ {7, _s("Save")},
+ {8, _s("Load")},
+ {9, _s("Play")},
+ {10, _s("Cancel")},
+ {11, _s("Quit")},
+ {12, _s("OK")},
+ {13, _s("Insert save/load game disk")},
+ {14, _s("You must enter a name")},
+ {15, _s("The game was NOT saved (disk full?)")},
+ {16, _s("The game was NOT loaded")},
+ {17, _s("Saving '%s'")},
+ {18, _s("Loading '%s'")},
+ {19, _s("Name your SAVE game")},
+ {20, _s("Select a game to LOAD")},
+ {28, _s("Game title)")}
};
#pragma mark -
@@ -278,7 +283,9 @@ HelpDialog::HelpDialog(const GameSettings &game)
_numPages = ScummHelp::numPages(_game.id);
+ // I18N: Previous page button
_prevButton = new GUI::ButtonWidget(this, "ScummHelp.Prev", _("~P~revious"), 0, kPrevCmd);
+ // I18N: Next page button
_nextButton = new GUI::ButtonWidget(this, "ScummHelp.Next", _("~N~ext"), 0, kNextCmd);
new GUI::ButtonWidget(this, "ScummHelp.Close", _("~C~lose"), 0, GUI::kCloseCmd);
_prevButton->clearFlags(WIDGET_ENABLED);
@@ -429,7 +436,7 @@ const Common::String InfoDialog::queryResString(int stringno) {
else if (_vm->_game.version >= 3)
result = _vm->getStringAddress(string_map_table_v345[stringno - 1].num);
else
- return string_map_table_v345[stringno - 1].string;
+ return _(string_map_table_v345[stringno - 1].string);
if (result && *result == '/') {
_vm->translateText(result, buf);
@@ -437,7 +444,7 @@ const Common::String InfoDialog::queryResString(int stringno) {
}
if (!result || *result == '\0') { // Gracelessly degrade to english :)
- return string_map_table_v345[stringno - 1].string;
+ return _(string_map_table_v345[stringno - 1].string);
}
// Convert to a proper string (take care of FF codes)
@@ -482,10 +489,14 @@ ConfirmDialog::ConfirmDialog(ScummEngine *scumm, int res)
}
void ConfirmDialog::handleKeyDown(Common::KeyState state) {
- if (state.keycode == Common::KEYCODE_n || state.ascii == _noKey) {
+ Common::KeyCode keyYes, keyNo;
+
+ Common::getLanguageYesNo(keyYes, keyNo);
+
+ if (state.keycode == Common::KEYCODE_n || state.ascii == _noKey || state.ascii == keyNo) {
setResult(0);
close();
- } else if (state.keycode == Common::KEYCODE_y || state.ascii == _yesKey) {
+ } else if (state.keycode == Common::KEYCODE_y || state.ascii == _yesKey || state.ascii == keyYes) {
setResult(1);
close();
} else
@@ -583,9 +594,9 @@ void SubtitleSettingsDialog::open() {
void SubtitleSettingsDialog::cycleValue() {
static const char* subtitleDesc[] = {
- "Speech Only",
- "Speech and Subtitles",
- "Subtitles Only"
+ _s("Speech Only"),
+ _s("Speech and Subtitles"),
+ _s("Subtitles Only")
};
_value += 1;
@@ -593,9 +604,9 @@ void SubtitleSettingsDialog::cycleValue() {
_value = 0;
if (_value == 1 && g_system->getOverlayWidth() <= 320)
- setInfoText("Speech & Subs");
+ setInfoText(_sc("Speech & Subs", "lowres"));
else
- setInfoText(subtitleDesc[_value]);
+ setInfoText(_(subtitleDesc[_value]));
_timer = g_system->getMillis() + 1500;
}
diff --git a/engines/scumm/gfx.cpp b/engines/scumm/gfx.cpp
index f22547f193..8a32b963cd 100644
--- a/engines/scumm/gfx.cpp
+++ b/engines/scumm/gfx.cpp
@@ -4111,4 +4111,3 @@ void ScummEngine::unkScreenEffect6() {
}
} // End of namespace Scumm
-
diff --git a/engines/scumm/he/animation_he.cpp b/engines/scumm/he/animation_he.cpp
index 74183c24d3..40e99c26a8 100644
--- a/engines/scumm/he/animation_he.cpp
+++ b/engines/scumm/he/animation_he.cpp
@@ -26,27 +26,42 @@
#include "scumm/he/intern_he.h"
#include "audio/audiostream.h"
+#include "video/smk_decoder.h"
+
+#ifdef USE_BINK
+#include "video/bink_decoder.h"
+#endif
namespace Scumm {
-MoviePlayer::MoviePlayer(ScummEngine_v90he *vm, Audio::Mixer *mixer)
- : SmackerDecoder(mixer), _vm(vm), _mixer(mixer) {
+MoviePlayer::MoviePlayer(ScummEngine_v90he *vm, Audio::Mixer *mixer) : _vm(vm) {
+#ifdef USE_BINK
+ if (_vm->_game.heversion >= 100 && (_vm->_game.features & GF_16BIT_COLOR))
+ _video = new Video::BinkDecoder();
+ else
+#endif
+ _video = new Video::SmackerDecoder(mixer);
_flags = 0;
_wizResNum = 0;
}
+MoviePlayer::~MoviePlayer() {
+ delete _video;
+}
+
int MoviePlayer::getImageNum() {
- if (!isVideoLoaded())
+ if (!_video->isVideoLoaded())
return 0;
+
return _wizResNum;
}
int MoviePlayer::load(const char *filename, int flags, int image) {
- if (isVideoLoaded())
- close();
+ if (_video->isVideoLoaded())
+ _video->close();
- if (!loadFile(filename)) {
+ if (!_video->loadFile(filename)) {
warning("Failed to load video file %s", filename);
return -1;
}
@@ -54,7 +69,7 @@ int MoviePlayer::load(const char *filename, int flags, int image) {
debug(1, "Playing video %s", filename);
if (flags & 2)
- _vm->_wiz->createWizEmptyImage(image, 0, 0, getWidth(), getHeight());
+ _vm->_wiz->createWizEmptyImage(image, 0, 0, _video->getWidth(), _video->getHeight());
_flags = flags;
_wizResNum = image;
@@ -62,34 +77,59 @@ int MoviePlayer::load(const char *filename, int flags, int image) {
}
void MoviePlayer::copyFrameToBuffer(byte *dst, int dstType, uint x, uint y, uint pitch) {
- uint h = getHeight();
- uint w = getWidth();
+ uint h = _video->getHeight();
+ uint w = _video->getWidth();
+
+ const Graphics::Surface *surface = _video->decodeNextFrame();
+
+ if (!surface)
+ return;
- const Graphics::Surface *surface = decodeNextFrame();
byte *src = (byte *)surface->pixels;
- if (hasDirtyPalette())
- _vm->setPaletteFromPtr(getPalette(), 256);
+ if (_video->hasDirtyPalette())
+ _vm->setPaletteFromPtr(_video->getPalette(), 256);
if (_vm->_game.features & GF_16BIT_COLOR) {
- dst += y * pitch + x * 2;
- do {
- for (uint i = 0; i < w; i++) {
- uint16 color = READ_LE_UINT16(_vm->_hePalettes + _vm->_hePaletteSlot + 768 + src[i] * 2);
- switch (dstType) {
- case kDstScreen:
- WRITE_UINT16(dst + i * 2, color);
- break;
- case kDstResource:
- WRITE_LE_UINT16(dst + i * 2, color);
- break;
- default:
- error("copyFrameToBuffer: Unknown dstType %d", dstType);
+ if (surface->format.bytesPerPixel == 1) {
+ dst += y * pitch + x * 2;
+ do {
+ for (uint i = 0; i < w; i++) {
+ uint16 color = READ_LE_UINT16(_vm->_hePalettes + _vm->_hePaletteSlot + 768 + src[i] * 2);
+ switch (dstType) {
+ case kDstScreen:
+ WRITE_UINT16(dst + i * 2, color);
+ break;
+ case kDstResource:
+ WRITE_LE_UINT16(dst + i * 2, color);
+ break;
+ default:
+ error("copyFrameToBuffer: Unknown dstType %d", dstType);
+ }
}
- }
- dst += pitch;
- src += w;
- } while (--h);
+ dst += pitch;
+ src += w;
+ } while (--h);
+ } else {
+ dst += y * pitch + x * 2;
+ do {
+ for (uint i = 0; i < w; i++) {
+ uint16 color = *((uint16 *)src + i);
+ switch (dstType) {
+ case kDstScreen:
+ WRITE_UINT16(dst + i * 2, color);
+ break;
+ case kDstResource:
+ WRITE_LE_UINT16(dst + i * 2, color);
+ break;
+ default:
+ error("copyFrameToBuffer: Unknown dstType %d", dstType);
+ }
+ }
+ dst += pitch;
+ src += surface->pitch;
+ } while (--h);
+ }
} else {
dst += y * pitch + x;
do {
@@ -101,7 +141,7 @@ void MoviePlayer::copyFrameToBuffer(byte *dst, int dstType, uint x, uint y, uint
}
void MoviePlayer::handleNextFrame() {
- if (!isVideoLoaded())
+ if (!_video->isVideoLoaded())
return;
VirtScreen *pvs = &_vm->_virtscr[kMainVirtScreen];
@@ -115,17 +155,37 @@ void MoviePlayer::handleNextFrame() {
} else if (_flags & 1) {
copyFrameToBuffer(pvs->getBackPixels(0, 0), kDstScreen, 0, 0, pvs->pitch);
- Common::Rect imageRect(getWidth(), getHeight());
+ Common::Rect imageRect(_video->getWidth(), _video->getHeight());
_vm->restoreBackgroundHE(imageRect);
} else {
copyFrameToBuffer(pvs->getPixels(0, 0), kDstScreen, 0, 0, pvs->pitch);
- Common::Rect imageRect(getWidth(), getHeight());
+ Common::Rect imageRect(_video->getWidth(), _video->getHeight());
_vm->markRectAsDirty(kMainVirtScreen, imageRect);
}
- if (endOfVideo())
- close();
+ if (_video->endOfVideo())
+ _video->close();
+}
+
+void MoviePlayer::close() {
+ _video->close();
+}
+
+int MoviePlayer::getWidth() const {
+ return _video->getWidth();
+}
+
+int MoviePlayer::getHeight() const {
+ return _video->getHeight();
+}
+
+int MoviePlayer::getFrameCount() const {
+ return _video->getFrameCount();
+}
+
+int MoviePlayer::getCurFrame() const {
+ return _video->endOfVideo() ? -1 : _video->getCurFrame() + 1;
}
} // End of namespace Scumm
diff --git a/engines/scumm/he/animation_he.h b/engines/scumm/he/animation_he.h
index b3405fead0..7fa31a195d 100644
--- a/engines/scumm/he/animation_he.h
+++ b/engines/scumm/he/animation_he.h
@@ -23,34 +23,41 @@
#if !defined(SCUMM_HE_ANIMATION_H) && defined(ENABLE_HE)
#define SCUMM_HE_ANIMATION_H
-#include "video/smk_decoder.h"
-
#include "audio/mixer.h"
+namespace Video {
+ class VideoDecoder;
+}
+
namespace Scumm {
class ScummEngine_v90he;
-class MoviePlayer : public Video::SmackerDecoder {
- ScummEngine_v90he *_vm;
-
- Audio::Mixer *_mixer;
-
- Audio::SoundHandle _bgSound;
- Audio::AudioStream *_bgSoundStream;
-
- char baseName[40];
- uint32 _flags;
- uint32 _wizResNum;
-
+class MoviePlayer {
public:
MoviePlayer(ScummEngine_v90he *vm, Audio::Mixer *mixer);
+ ~MoviePlayer();
int getImageNum();
int load(const char *filename, int flags, int image = 0);
void copyFrameToBuffer(byte *dst, int dstType, uint x, uint y, uint pitch);
void handleNextFrame();
+
+ void close();
+ int getWidth() const;
+ int getHeight() const;
+ int getFrameCount() const;
+ int getCurFrame() const;
+
+private:
+ ScummEngine_v90he *_vm;
+
+ Video::VideoDecoder *_video;
+
+ char baseName[40];
+ uint32 _flags;
+ uint32 _wizResNum;
};
} // End of namespace Scumm
diff --git a/engines/scumm/he/intern_he.h b/engines/scumm/he/intern_he.h
index c49217b650..f4df6571fa 100644
--- a/engines/scumm/he/intern_he.h
+++ b/engines/scumm/he/intern_he.h
@@ -383,6 +383,8 @@ protected:
void drawLine(int x1, int y1, int x, int unk1, int unk2, int type, int id);
void drawPixel(int x, int y, int flags);
+ virtual void setDefaultCursor();
+
/* HE version 80 script opcodes */
void o80_createSound();
void o80_getFileSize();
diff --git a/engines/scumm/he/logic/baseball2001.cpp b/engines/scumm/he/logic/baseball2001.cpp
new file mode 100644
index 0000000000..342423fd79
--- /dev/null
+++ b/engines/scumm/he/logic/baseball2001.cpp
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Backyard Baseball 2001
+ */
+class LogicHEbaseball2001 : public LogicHE {
+public:
+ LogicHEbaseball2001(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+};
+
+int LogicHEbaseball2001::versionID() {
+ return 1;
+}
+
+int32 LogicHEbaseball2001::dispatch(int op, int numArgs, int32 *args) {
+ int res = 0;
+
+ switch (op) {
+ case 3001:
+ // Check network status
+ break;
+
+ default:
+ LogicHE::dispatch(op, numArgs, args);
+ }
+
+ return res;
+}
+
+LogicHE *makeLogicHEbaseball2001(ScummEngine_v90he *vm) {
+ return new LogicHEbaseball2001(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/basketball.cpp b/engines/scumm/he/logic/basketball.cpp
new file mode 100644
index 0000000000..8352aa4357
--- /dev/null
+++ b/engines/scumm/he/logic/basketball.cpp
@@ -0,0 +1,230 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Backyard Basketball
+ */
+class LogicHEbasketball : public LogicHE {
+public:
+ LogicHEbasketball(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+
+private:
+ int op_1012();
+ int op_1050(int32 *args);
+ int op_1053();
+
+ // op_1050 loads court object data
+ enum CourtObjectType {
+ kObjectTypeBackboard = 1,
+ kObjectTypeRim = 2,
+ kObjectTypeOther = 3,
+ kObjectTypeFloor = 4
+ };
+
+ struct CourtObject {
+ Common::String name;
+ CourtObjectType type;
+ uint32 data[10];
+ };
+
+ Common::Array<CourtObject> _courtObjects;
+ uint32 _backboardObjectLeft, _backboardObjectRight;
+};
+
+int LogicHEbasketball::versionID() {
+ return 1;
+}
+
+int32 LogicHEbasketball::dispatch(int op, int numArgs, int32 *args) {
+ int res = 0;
+
+ switch (op) {
+ case 1001:
+ break;
+
+ case 1006:
+ break;
+
+ case 1011:
+ break;
+
+ case 1012:
+ res = op_1012();
+ break;
+
+ case 1035:
+ break;
+
+ case 1050:
+ res = op_1050(args);
+ break;
+
+ case 1051:
+ break;
+
+ case 1052:
+ break;
+
+ case 1053:
+ res = op_1053();
+ break;
+
+ case 1056:
+ break;
+
+ case 1057:
+ break;
+
+ case 1058:
+ break;
+
+ case 1060:
+ break;
+
+ case 1064:
+ break;
+
+ case 1067:
+ break;
+
+ case 1073:
+ break;
+
+ case 1075:
+ break;
+
+ case 1076:
+ break;
+
+ case 1080:
+ break;
+
+ case 1081:
+ break;
+
+ case 1090:
+ break;
+
+ case 1091:
+ break;
+
+ case 1513:
+ break;
+
+ default:
+ LogicHE::dispatch(op, numArgs, args);
+ }
+
+ return res;
+}
+
+int LogicHEbasketball::op_1012() {
+ writeScummVar(108, 12000);
+ writeScummVar(109, 8000);
+ writeScummVar(110, 760);
+ writeScummVar(111, 4000);
+ writeScummVar(112, 1600);
+ return 1;
+}
+
+int LogicHEbasketball::op_1050(int32 *args) {
+ // This function loads the court data
+ static const char *courtNames[] = {
+ "Dobbaguchi", "Jocindas", "SandyFlats", "Queens",
+ "Park", "Scheffler", "Polk", "McMillan",
+ "CrownHill", "Memorial", "TechState", "Garden",
+ "Moon", "Barn"
+ };
+
+ Common::String courtFileName = Common::String::format("data/courts/%s.cof", courtNames[args[0] - 1]);
+
+ Common::File file;
+ if (!file.open(courtFileName))
+ error("Could not open file '%s'", courtFileName.c_str());
+
+ debug(0, "Loading court data from '%s'", courtFileName.c_str());
+
+ // First, read in the header
+ file.readUint32LE(); // Header size (?)
+
+ char version[6];
+ file.read(version, 5);
+ version[5] = 0;
+
+ if (strcmp(version, "01.05"))
+ error("Invalid court version field: %s", version);
+
+ uint32 objectCount = file.readUint32LE();
+
+ for (uint32 i = 0; i < objectCount; i++) {
+ char nameBuf[100];
+ memset(nameBuf, 0, sizeof(nameBuf));
+
+ uint32 nameLength = file.readUint32LE();
+ assert(nameLength < sizeof(nameBuf) - 1);
+ file.read(nameBuf, nameLength);
+
+ CourtObject object;
+ object.name = nameBuf;
+ object.type = (CourtObjectType)file.readUint32LE();
+ for (uint32 j = 0; j < 10; j++)
+ object.data[j] = file.readUint32LE();
+
+ debug(1, "Found court object '%s' - Type %d", nameBuf, object.type);
+
+ // Store backboard object indices for later
+ if (object.type == kObjectTypeBackboard) {
+ if (object.data[7] + object.data[4] / 2 >= 6000)
+ _backboardObjectRight = i;
+ else
+ _backboardObjectLeft = i;
+ }
+
+ _courtObjects.push_back(object);
+ }
+
+ // TODO: Some other variables are initialized with constants here
+
+ return 1;
+}
+
+int LogicHEbasketball::op_1053() {
+ _courtObjects.clear();
+ // TODO: This also calls op_1065 with one argument (5)
+
+ return 1;
+}
+
+LogicHE *makeLogicHEbasketball(ScummEngine_v90he *vm) {
+ return new LogicHEbasketball(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/football.cpp b/engines/scumm/he/logic/football.cpp
new file mode 100644
index 0000000000..f86f97eaf7
--- /dev/null
+++ b/engines/scumm/he/logic/football.cpp
@@ -0,0 +1,288 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Backyard Football
+ * Backyard Football 2002
+ */
+class LogicHEfootball : public LogicHE {
+public:
+ LogicHEfootball(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+
+private:
+ int op_1004(int32 *args);
+ int op_1006(int32 *args);
+ int op_1007(int32 *args);
+ int op_1010(int32 *args);
+ int op_1022(int32 *args);
+ int op_1023(int32 *args);
+ int op_1024(int32 *args);
+};
+
+int LogicHEfootball::versionID() {
+ return 1;
+}
+
+int32 LogicHEfootball::dispatch(int op, int numArgs, int32 *args) {
+ int res = 0;
+
+ switch (op) {
+ case 1004:
+ res = op_1004(args);
+ break;
+
+ case 1006:
+ res = op_1006(args);
+ break;
+
+ case 1007:
+ res = op_1007(args);
+ break;
+
+ case 1010:
+ res = op_1010(args);
+ break;
+
+ case 1022:
+ res = op_1022(args);
+ break;
+
+ case 1023:
+ res = op_1023(args);
+ break;
+
+ case 1024:
+ res = op_1024(args);
+ break;
+
+ case 8221968:
+ // Someone had a fun and used his birthday as opcode number
+ res = getFromArray(args[0], args[1], args[2]);
+ break;
+
+ case 1492: case 1493: case 1494: case 1495: case 1496:
+ case 1497: case 1498: case 1499: case 1500: case 1501:
+ case 1502: case 1503: case 1504: case 1505: case 1506:
+ case 1507: case 1508: case 1509: case 1510: case 1511:
+ case 1512: case 1513: case 1514: case 1555:
+ // DirectPlay-related
+ // 1513: initialize
+ // 1555: set fake lag
+ break;
+
+ case 2200: case 2201: case 2202: case 2203: case 2204:
+ case 2205: case 2206: case 2207: case 2208: case 2209:
+ case 2210: case 2211: case 2212: case 2213: case 2214:
+ case 2215: case 2216: case 2217: case 2218: case 2219:
+ case 2220: case 2221: case 2222: case 2223: case 2224:
+ case 2225: case 2226: case 2227: case 2228:
+ // Boneyards-related
+ break;
+
+ case 3000: case 3001: case 3002: case 3003: case 3004:
+ // Internet-related
+ // 3000: check for updates
+ // 3001: check network status
+ // 3002: autoupdate
+ // 3003: close connection
+ break;
+
+ default:
+ LogicHE::dispatch(op, numArgs, args);
+ warning("Tell sev how to reproduce it (%d)", op);
+ }
+
+ return res;
+}
+
+int LogicHEfootball::op_1004(int32 *args) {
+ // Identical to LogicHEsoccer::op_1004
+ double res, a2, a4, a5;
+
+ a5 = ((double)args[4] - (double)args[1]) / ((double)args[5] - (double)args[2]);
+ a4 = ((double)args[3] - (double)args[0]) / ((double)args[5] - (double)args[2]);
+ a2 = (double)args[2] - (double)args[0] * a4 - args[1] * a5;
+
+ res = (double)args[6] * a4 + (double)args[7] * a5 + a2;
+ writeScummVar(108, (int32)res);
+
+ writeScummVar(109, (int32)a2);
+ writeScummVar(110, (int32)a5);
+ writeScummVar(111, (int32)a4);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1006(int32 *args) {
+ // This seems to be more or less the inverse of op_1010
+ const double a1 = args[1];
+ double res;
+
+ // 2.9411764e-4 = 1/3400
+ // 5.3050399e-2 = 1/18.85 = 20/377
+ // 1.1764706e-2 = 1/85 = 40/3400
+ // 1.2360656e-1 = 377/3050
+ res = (1.0 - a1 * 2.9411764e-4 * 5.3050399e-2) * 1.2360656e-1 * args[0] +
+ a1 * 1.1764706e-2 + 46;
+
+ // Shortened / optimized version of that formula:
+ // res = (377.0 - a1 / 170.0) / 3050.0 * args[0] + a1 / 85.0 + 46;
+
+ writeScummVar(108, (int32)res);
+
+ // 1.2360656e-1 = 377/3050
+ // 1.1588235e-1 = 197/1700 = 394/3400
+ res = 640.0 - args[2] * 1.2360656e-1 - a1 * 1.1588235e-1 - 26;
+
+ writeScummVar(109, (int32)res);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1007(int32 *args) {
+ double res, temp;
+
+ temp = (double)args[1] * 0.32;
+
+ if (temp > 304.0)
+ res = -args[2] * 0.142;
+ else
+ res = args[2] * 0.142;
+
+ res += temp;
+
+ writeScummVar(108, (int32)res);
+
+ res = (1000.0 - args[2]) * 0.48;
+
+ writeScummVar(109, (int32)res);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1010(int32 *args) {
+ // This seems to be more or less the inverse of op_1006
+ double a1 = (640.0 - (double)args[1] - 26.0) / 1.1588235e-1;
+
+ // 2.9411764e-4 = 1/3400
+ // 5.3050399e-2 = 1/18.85 = 20/377
+ // 1.1764706e-2 = 1/85 = 40/3400
+ // 1.2360656e-1 = 377/3050
+ double a0 = ((double)args[0] - 46 - a1 * 1.1764706e-2) /
+ ((1.0 - a1 * 2.9411764e-4 * 5.3050399e-2) * 1.2360656e-1);
+
+ writeScummVar(108, (int32)a0);
+ writeScummVar(109, (int32)a1);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1022(int32 *args) {
+ double res;
+ double var10 = args[4] - args[1];
+ double var8 = args[5] - args[2];
+ double var6 = args[3] - args[0];
+
+ res = sqrt(var8 * var8 + var6 * var6 + var10 * var10);
+
+ if (res >= (double)args[6]) {
+ var8 = (double)args[6] * var8 / res;
+ var10 = (double)args[6] * var10 / res;
+ res = (double)args[6] * var6 / res;
+ }
+
+ writeScummVar(108, (int32)res);
+ writeScummVar(109, (int32)var10);
+ writeScummVar(110, (int32)var8);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1023(int32 *args) {
+ double var10, var18, var20, var28, var30, var30_;
+ double argf[7];
+
+ for (int i = 0; i < 7; i++)
+ argf[i] = args[i];
+
+ var10 = (argf[3] - argf[1]) / (argf[2] - argf[0]);
+ var28 = var10 * var10 + 1;
+ var20 = argf[0] * var10;
+ var18 = (argf[5] + argf[1] + var20) * argf[4] * var10 * 2 +
+ argf[6] * argf[6] * var28 + argf[4] * argf[4] -
+ argf[0] * argf[0] * var10 * var10 -
+ argf[5] * argf[0] * var10 * 2 -
+ argf[5] * argf[1] * 2 -
+ argf[1] * argf[1] - argf[5] * argf[5];
+
+ if (var18 >= 0) {
+ var18 = sqrt(var18);
+
+ var30_ = argf[4] + argf[5] * var10 + argf[1] * var10 + argf[0] * var10 * var10;
+ var30 = (var30_ - var18) / var28;
+ var18 = (var30_ + var18) / var28;
+
+ if ((argf[0] - var30 < 0) && (argf[0] - var18 < 0)) {
+ var30_ = var30;
+ var30 = var18;
+ var18 = var30_;
+ }
+ var28 = var18 * var10 - var20 - argf[1];
+ var20 = var30 * var10 - var20 - argf[1];
+ } else {
+ var18 = 0;
+ var20 = 0;
+ var28 = 0;
+ var30 = 0;
+ }
+
+ writeScummVar(108, (int32)var18);
+ writeScummVar(109, (int32)var28);
+ writeScummVar(110, (int32)var30);
+ writeScummVar(111, (int32)var20);
+
+ return 1;
+}
+
+int LogicHEfootball::op_1024(int32 *args) {
+ writeScummVar(108, 0);
+ writeScummVar(109, 0);
+ writeScummVar(110, 0);
+ writeScummVar(111, 0);
+
+ return 1;
+}
+
+LogicHE *makeLogicHEfootball(ScummEngine_v90he *vm) {
+ return new LogicHEfootball(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/funshop.cpp b/engines/scumm/he/logic/funshop.cpp
new file mode 100644
index 0000000000..8993fedad2
--- /dev/null
+++ b/engines/scumm/he/logic/funshop.cpp
@@ -0,0 +1,216 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Freddi Fish's One-Stop Fun Shop
+ * Pajama Sam's One-Stop Fun Shop
+ * Putt-Putt's One-Stop Fun Shop
+ */
+class LogicHEfunshop : public LogicHE {
+public:
+ LogicHEfunshop(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+
+private:
+ void op_1004(int32 *args);
+ void op_1005(int32 *args);
+ int checkShape(int32 data0, int32 data1, int32 data4, int32 data5, int32 data2, int32 data3, int32 data6, int32 data7, int32 *x, int32 *y);
+};
+
+int LogicHEfunshop::versionID() {
+ return 1;
+}
+
+int32 LogicHEfunshop::dispatch(int op, int numArgs, int32 *args) {
+ switch (op) {
+ case 1004:
+ op_1004(args);
+ break;
+
+ case 1005:
+ op_1005(args);
+ break;
+
+ default:
+ break;
+ }
+
+ return 0;
+}
+
+void LogicHEfunshop::op_1004(int32 *args) {
+ double data[8], at, sq;
+ int32 x, y;
+ int i=0;
+
+ for (i = 0; i <= 6; i += 2) {
+ data[i] = getFromArray(args[0], 0, 519 + i);
+ data[i + 1] = getFromArray(args[0], 0, 519 + i + 1);
+ }
+ int s = checkShape((int32)data[0], (int32)data[1], (int32)data[4], (int32)data[5],
+ (int32)data[2], (int32)data[3], (int32)data[6], (int32)data[7], &x, &y);
+
+ if (s != 1) {
+ error("LogicHEfunshop::op_1004: Your shape has defied the laws of physics");
+ return;
+ }
+
+ for (i = 0; i <= 6; i += 2) {
+ data[i] -= (double)x;
+ data[i + 1] -= (double)y;
+ }
+
+ double a1 = (double)args[1] * DEG2RAD;
+
+ for (i = 0; i <= 6; i += 2) {
+ at = atan2(data[i + 1], data[i]);
+ sq = sqrt(data[i + 1] * data[i + 1] + data[i] * data[i]);
+
+ if (at <= 0)
+ at += 2 * M_PI;
+
+ data[i] = cos(at + a1) * sq;
+ data[i + 1] = sin(at + a1) * sq;
+ }
+
+ double minx = data[0];
+ double miny = data[1];
+
+ for (i = 0; i <= 6; i += 2) {
+ if (data[i] < minx)
+ minx = data[i];
+ if (data[i + 1] < miny)
+ miny = data[i + 1];
+ }
+
+ for (i = 0; i <= 6; i += 2) {
+ data[i] -= minx;
+ data[i + 1] -= miny;
+
+ putInArray(args[0], 0, 519 + i, scummRound(data[i]));
+ putInArray(args[0], 0, 519 + i + 1, scummRound(data[i + 1]));
+ }
+}
+
+void LogicHEfunshop::op_1005(int32 *args) {
+ double data[8];
+ double args1, args2;
+ int i;
+ for (i = 520; i <= 526; i += 2) {
+ data[i - 520] = getFromArray(args[0], 0, i - 1);
+ data[i - 520 + 1] = getFromArray(args[0], 0, i);
+ }
+
+ args1 = (double)args[1] * 0.01 + 1;
+ args2 = (double)args[2] * 0.01 + 1;
+
+ for (i = 0; i < 4; i++) {
+ data[2 * i] *= args1;
+ data[2 * i + 1] *= args2;
+ }
+
+ for (i = 520; i <= 526; i += 2) {
+ putInArray(args[0], 0, i - 1, scummRound(data[i - 520]));
+ putInArray(args[0], 0, i, scummRound(data[i - 520 + 1]));
+ }
+}
+
+int LogicHEfunshop::checkShape(int32 data0, int32 data1, int32 data4, int32 data5, int32 data2, int32 data3, int32 data6, int32 data7, int32 *x, int32 *y) {
+ int32 diff5_1, diff0_4, diff7_3, diff2_6;
+ int32 diff1, diff2;
+ int32 delta, delta2;
+ int32 sum1, sum2;
+
+ diff0_4 = data0 - data4;
+ diff5_1 = data5 - data1;
+ diff1 = data1 * data4 - data0 * data5;
+ sum1 = diff0_4 * data3 + diff1 + diff5_1 * data2;
+ sum2 = diff0_4 * data7 + diff1 + diff5_1 * data6;
+
+ if (sum1 != 0 && sum2 != 0) {
+ sum2 ^= sum1;
+
+ if (sum2 >= 0)
+ return 0;
+ }
+
+ diff2_6 = data2 - data6;
+ diff7_3 = data7 - data3;
+ diff2 = data3 * data6 - data2 * data7;
+ sum1 = diff2_6 * data1 + diff2 + diff7_3 * data0;
+ sum2 = diff2_6 * data5 + diff2 + diff7_3 * data4;
+
+ if (sum1 != 0 && sum2 != 0) {
+ sum2 ^= sum1;
+
+ if (sum2 >= 0)
+ return 0;
+ }
+
+ delta = diff2_6 * diff5_1 - diff0_4 * diff7_3;
+
+ if (delta == 0) {
+ return 2;
+ }
+
+ if (delta < 0) {
+ data7 = -((delta + 1) >> 1);
+ } else {
+ data7 = delta >> 1;
+ }
+
+ delta2 = diff2 * diff0_4 - diff1 * diff2_6;
+
+ if (delta2 < 0) {
+ delta2 -= data7;
+ } else {
+ delta2 += data7;
+ }
+
+ *x = delta2 / delta;
+
+ delta2 = diff1 * diff7_3 - diff2 * diff5_1;
+
+ if (delta2 < 0) {
+ delta2 -= data7;
+ } else {
+ delta2 += data7;
+ }
+
+ *y = delta2 / delta;
+
+ return 1;
+}
+
+LogicHE *makeLogicHEfunshop(ScummEngine_v90he *vm) {
+ return new LogicHEfunshop(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/moonbase.cpp b/engines/scumm/he/logic/moonbase.cpp
new file mode 100644
index 0000000000..fac2ea27ff
--- /dev/null
+++ b/engines/scumm/he/logic/moonbase.cpp
@@ -0,0 +1,50 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Moonbase Commander
+ */
+class LogicHEmoonbase : public LogicHE {
+public:
+ LogicHEmoonbase(ScummEngine_v90he *vm) : LogicHE(vm) {}
+
+ int versionID();
+};
+
+int LogicHEmoonbase::versionID() {
+ if (_vm->_game.features & GF_DEMO)
+ return -100;
+ else
+ return 100;
+}
+
+LogicHE *makeLogicHEmoonbase(ScummEngine_v90he *vm) {
+ return new LogicHEmoonbase(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/puttrace.cpp b/engines/scumm/he/logic/puttrace.cpp
new file mode 100644
index 0000000000..ea4397cd97
--- /dev/null
+++ b/engines/scumm/he/logic/puttrace.cpp
@@ -0,0 +1,376 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Putt-Putt Enters the Race
+ */
+class LogicHErace : public LogicHE {
+private:
+ float *_userData;
+ double *_userDataD;
+public:
+ LogicHErace(ScummEngine_v90he *vm);
+ ~LogicHErace();
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+
+private:
+ int32 op_1003(int32 *args);
+ int32 op_1004(int32 *args);
+ int32 op_1100(int32 *args);
+ int32 op_1101(int32 *args);
+ int32 op_1102(int32 *args);
+ int32 op_1103(int32 *args);
+ int32 op_1110();
+ int32 op_1120(int32 *args);
+ int32 op_1130(int32 *args);
+ int32 op_1140(int32 *args);
+
+ void op_sub1(float arg);
+ void op_sub2(float arg);
+ void op_sub3(float arg);
+};
+
+LogicHErace::LogicHErace(ScummEngine_v90he *vm) : LogicHE(vm) {
+ // Originally it used 0x930 and stored both floats and doubles inside
+ _userData = (float *)calloc(550, sizeof(float));
+ _userDataD = (double *)calloc(30, sizeof(double));
+
+ // FIXME: of the 550 entries in _userData, only 516 till 532 are used
+ // FIXME: similarly, in _userDataD only 9 till 17 are used for computations
+ // (some of the other entries are also set, but never read, hence useless).
+}
+
+LogicHErace::~LogicHErace() {
+ free(_userData);
+ free(_userDataD);
+}
+
+int LogicHErace::versionID() {
+ return 1;
+}
+
+int32 LogicHErace::dispatch(int op, int numArgs, int32 *args) {
+ int32 res;
+
+ switch (op) {
+ case 1003:
+ res = op_1003(args);
+ break;
+
+ case 1004:
+ res = op_1004(args);
+ break;
+
+ case 1100:
+ res = op_1100(args);
+ break;
+
+ case 1101:
+ res = op_1101(args);
+ break;
+
+ case 1102:
+ res = op_1102(args);
+ break;
+
+ case 1103:
+ res = op_1103(args);
+ break;
+
+ case 1110:
+ res = op_1110();
+ break;
+
+ case 1120:
+ res = op_1120(args);
+ break;
+
+ case 1130:
+ res = op_1130(args);
+ break;
+
+ case 1140:
+ res = op_1140(args);
+ break;
+
+ default:
+ res = 0;
+ break;
+
+ }
+
+ return res;
+}
+
+#define RAD2DEG (180 / M_PI)
+#define DEG2RAD (M_PI / 180)
+
+int32 LogicHErace::op_1003(int32 *args) {
+ int value = args[2] ? args[2] : 1;
+
+ writeScummVar(108, (int32)(atan2((double)args[0], (double)args[1]) * RAD2DEG * value));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1004(int32 *args) {
+ int value = args[1] ? args[1] : 1;
+
+ writeScummVar(108, (int32)(sqrt((float)args[0]) * value));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1100(int32 *args) {
+ // _userData 516,517,518 describe a 3D translation?
+ _userData[516] = (float)args[0] / args[10];
+ _userData[517] = (float)args[1] / args[10];
+ _userData[518] = (float)args[2] / args[10];
+
+ // _userData 519,520,521 describe rotation angles around the x,y,z axes?
+ _userData[519] = (float)args[3] / args[10];
+ _userData[520] = (float)args[4] / args[10];
+ _userData[521] = (float)args[5] / args[10];
+
+ op_sub1(_userData[520]);
+ op_sub2(_userData[521]);
+
+ // _userData[532] seems to be some kind of global scale factor
+ _userData[532] = (float)args[10];
+
+ _userData[524] = (float)args[8]; // not used
+ _userData[525] = (float)args[9]; // not used
+ _userData[522] = (float)args[6] / args[10]; // not used
+ _userData[523] = (float)args[7] / args[10]; // only used to compute 528 and 529
+
+ // The following two are some kind of scale factors
+ _userData[526] = (float)args[6] / args[8] / args[10];
+ _userData[527] = (float)args[7] / args[9] / args[10];
+
+ // Set var 108 and 109 -- the value set here corresponds to the values
+ // set by op_1110!
+ writeScummVar(108, (int32)((float)args[6] / args[8] * args[10]));
+ writeScummVar(109, (int32)((float)args[7] / args[9] * args[10]));
+
+ _userData[528] = (float)(_userData[519] - _userData[523] * 0.5);
+ _userData[529] = (float)(_userData[519] + _userData[523] * 0.5);
+
+ writeScummVar(110, (int32)(_userData[528] * args[10]));
+ writeScummVar(111, (int32)(_userData[529] * args[10]));
+
+ // 530 and 531 are only used to set vars 112 and 113, so no need
+ // to store them permanently
+ _userData[530] = (float)(_userData[517] / tan(_userData[529] * DEG2RAD));
+ _userData[531] = (float)(_userData[517] / tan(_userData[528] * DEG2RAD));
+
+ writeScummVar(112, (int32)(_userData[530] * args[10]));
+ writeScummVar(113, (int32)(_userData[531] * args[10]));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1101(int32 *args) {
+ // Update rotation params?
+ int32 retval;
+ float temp;
+
+ temp = args[0] / _userData[532];
+ if (_userData[519] != temp) {
+ _userData[519] = temp;
+ op_sub3(temp);
+ retval = 1;
+ } else {
+ retval = (int32)temp;
+ }
+
+ temp = args[1] / _userData[532];
+ if (_userData[520] != temp) {
+ _userData[520] = temp;
+ op_sub1(temp);
+ retval = 1;
+ }
+
+ temp = args[2] / _userData[532];
+ if (_userData[521] != temp) {
+ _userData[521] = temp;
+ op_sub2(temp);
+ retval = 1;
+ }
+
+ return retval;
+}
+
+int32 LogicHErace::op_1102(int32 *args) {
+ // Update translation params?
+ int32 retval;
+ float temp;
+
+ temp = args[0] / _userData[532];
+ if (_userData[516] != temp) {
+ _userData[516] = temp;
+ retval = 1;
+ } else {
+ retval = (int32)_userData[532];
+ }
+
+ temp = args[1] / _userData[532];
+ if (_userData[517] != temp) {
+ _userData[517] = temp;
+ retval = 1;
+ }
+
+ temp = args[2] / _userData[532];
+ if (_userData[518] != temp) {
+ _userData[518] = temp;
+ retval = 1;
+ }
+
+ return retval;
+}
+
+int32 LogicHErace::op_1103(int32 *args) {
+ double angle = args[0] / args[1] * DEG2RAD;
+
+ writeScummVar(108, (int32)(sin(angle) * args[2]));
+ writeScummVar(109, (int32)(cos(angle) * args[2]));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1110() {
+ writeScummVar(108, (int32)(_userData[526] * _userData[532] * _userData[532]));
+ writeScummVar(109, (int32)(_userData[527] * _userData[532] * _userData[532]));
+ writeScummVar(110, (int32)(_userData[532]));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1120(int32 *args) {
+ double a0, a1, a2;
+ double b0, b1, b2;
+ double res1, res2;
+
+ a0 = args[0] / _userData[532] - _userData[516];
+ a1 = args[1] / _userData[532] - _userData[517];
+ a2 = args[2] / _userData[532] - _userData[518];
+
+ // Perform matrix multiplication (multiplying by a rotation matrix)
+ b2 = a2 * _userDataD[17] + a1 * _userDataD[14] + a0 * _userDataD[11];
+ b1 = a2 * _userDataD[16] + a1 * _userDataD[13] + a0 * _userDataD[10];
+ b0 = a2 * _userDataD[15] + a1 * _userDataD[12] + a0 * _userDataD[9];
+
+ res1 = (atan2(b0, b2) * RAD2DEG) / _userData[526];
+ res2 = (atan2(b1, b2) * RAD2DEG - _userData[528]) / _userData[527];
+
+ writeScummVar(108, (int32)res1);
+ writeScummVar(109, (int32)res2);
+
+ return 1;
+}
+
+int32 LogicHErace::op_1130(int32 *args) {
+ double cs = cos(args[0] / _userData[532] * DEG2RAD);
+ double sn = sin(args[0] / _userData[532] * DEG2RAD);
+
+ writeScummVar(108, (int32)(cs * args[1] + sn * args[2]));
+ writeScummVar(109, (int32)(cs * args[2] - sn * args[1]));
+
+ return 1;
+}
+
+int32 LogicHErace::op_1140(int32 *args) {
+ // This functions seems to perform some kind of projection: We project
+ // the vector (arg2,arg3) onto the vector (arg0,arg1), but also apply
+ // some kind of distortion factor ?!?
+ double x = args[2], y = args[3];
+
+ // We start by normalizing the vector described by arg2 and arg3.
+ // So compute its length and divide the x and y coordinates
+ const double sq = sqrt(x*x + y*y);
+ x /= sq;
+ y /= sq;
+
+ // Compute the scalar product of the vectors (arg0,arg1) and (x,y)
+ const double scalarProduct = x * args[0] + y * args[1];
+
+ // Finally compute the projection of (arg2,arg3) onto (arg0,arg1)
+ double projX = args[0] - 2 * scalarProduct * x;
+ double projY = args[1] - 2 * scalarProduct * y;
+
+ projX = projX * 20.0 / 23.0; // FIXME: Why is this here?
+
+ writeScummVar(108, (int32)projX);
+
+ if (args[3] >= 0) // FIXME: Why is this here?
+ projY = projY * 5.0 / 6.0;
+
+ writeScummVar(109, (int32)projY);
+
+ return 1;
+}
+
+void LogicHErace::op_sub1(float arg) {
+ // Setup a rotation matrix
+ _userDataD[10] = _userDataD[12] = _userDataD[14] = _userDataD[16] = 0;
+ _userDataD[13] = 1;
+
+ _userDataD[9] = cos(arg * DEG2RAD);
+ _userDataD[15] = sin(arg * DEG2RAD);
+ _userDataD[11] = -_userDataD[15];
+ _userDataD[17] = _userDataD[9];
+}
+
+void LogicHErace::op_sub2(float arg) {
+ // Setup a rotation matrix -- but it is NEVER USED!
+ _userDataD[20] = _userDataD[21] = _userDataD[24] = _userDataD[25] = 0;
+ _userDataD[26] = 1;
+
+ _userDataD[19] = sin(arg * DEG2RAD);
+ _userDataD[18] = cos(arg * DEG2RAD);
+ _userDataD[21] = -_userDataD[19];
+ _userDataD[22] = _userDataD[18];
+}
+
+void LogicHErace::op_sub3(float arg) {
+ // Setup a rotation matrix -- but it is NEVER USED!
+ _userDataD[1] = _userDataD[2] = _userDataD[3] = _userDataD[6] = 0;
+ _userDataD[0] = 1;
+
+ _userDataD[4] = cos(arg * DEG2RAD);
+ _userDataD[5] = sin(arg * DEG2RAD);
+ _userDataD[7] = -_userDataD[5];
+ _userDataD[8] = _userDataD[4];
+}
+
+LogicHE *makeLogicHErace(ScummEngine_v90he *vm) {
+ return new LogicHErace(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic/soccer.cpp b/engines/scumm/he/logic/soccer.cpp
new file mode 100644
index 0000000000..05f377a736
--- /dev/null
+++ b/engines/scumm/he/logic/soccer.cpp
@@ -0,0 +1,1206 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "scumm/he/intern_he.h"
+#include "scumm/he/logic_he.h"
+
+namespace Scumm {
+
+/**
+ * Logic code for:
+ * Backyard Soccer
+ * Backyard Soccer MLS Edition
+ * Backyard Soccer 2004
+ */
+class LogicHEsoccer : public LogicHE {
+private:
+ double *_userDataD;
+
+public:
+ LogicHEsoccer(ScummEngine_v90he *vm);
+ ~LogicHEsoccer();
+
+ int versionID();
+ int32 dispatch(int op, int numArgs, int32 *args);
+
+ void beforeBootScript();
+ void initOnce();
+ int startOfFrame();
+
+private:
+ int op_1005(float x1, float y1, float z1, float x2, float y2, float z2, float *nextVelX, float *nextVelY, float *nextVelZ, float *a10);
+ int op_1006(int32 a1, int32 a2, int32 a3, int32 a4);
+ int op_1007(int32 *args);
+ int op_1008(int outArray, int srcX, int srcY, int srcZ, int vecX, int vecY, int vecZ, int airResX, int airResY, int airResZ, int vecNumerator, int vecDenom, int gravityMult, int requiredSegments, int a15, int a16, int a17, int a18, int fieldType);
+ int op_1011(int32 worldPosArray, int32 screenPosArray, int32 a3, int32 closestActorArray, int32 maxDistance, int32 fieldAreaArray);
+ int op_1012(int32 *args);
+ int op_1013(int32 a1, int32 a2, int32 a3);
+ int op_1014(int32 srcX, int32 srcY, int32 srcZ, int32 velX, int32 velY, int32 velZ, int32 outArray, int32 dataArrayId, int32 indexArrayId, int32 requestType, int32 vecNumerator, int32 vecDenom, int32 a13, int32 a14);
+ int op_1016(int32 *args);
+ int op_1017(int32 *args);
+ int op_1019(int32 *args);
+ int op_1021(int32 inX, int32 inY, int32 inZ, int32 velX, int32 velY, int32 velZ, int32 internalUse);
+
+ // op_1007 allocates some arrays
+ // they're then filled by op_1019
+ byte _collisionObjIds[4096], _collisionNodeEnabled[585];
+
+ // op_1011 has a subfunction
+ void calculateDistances(int32 worldPosArray, int32 a2, int32 closestActorArray, int32 maxDistance);
+
+ // array containing collision detection tree
+ bool _collisionTreeAllocated;
+ uint32 *_collisionTree;
+ int addCollisionTreeChild(int depth, int index, int parent);
+
+ // op_1014 has several subops
+ // ...and several sub-subops
+ int generateCollisionObjectList(float srcX, float srcY, float srcZ, float velX, float velY, float velZ);
+ int addFromCollisionTreeNode(int index, int parent, uint32 *indices, int objIndexBase);
+ void addCollisionObj(byte objId);
+ int findCollisionWith(int objId, float inX, float inY, float inZ, float inXVec, float inYVec, float inZVec, float &collideX, float &collideY, float &collideZ, int indexArrayId, int dataArrayId, float *nextVelX, float *nextVelY, float *nextVelZ, float *a15);
+ void getPointsForFace(int faceId, float &x1, float &y1, float &z1, float &x2, float &y2, float &z2, float &x3, float &y3, float &z3, float &x4, float &y4, float &z4, const int *objPoints);
+ void crossProduct(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float &outX, float &outY, float &outZ);
+ double dotProduct(float a1, float a2, float a3, float a4, float a5, float a6);
+ void sortCollisionList(float *data, int numEntries, int entrySize, int compareOn);
+ int setCollisionOutputData(float *collisionData, int entrySize, int dataArrayId, int indexArrayId, int startX, int startY, int startZ, float a8, int a9, int a10, int a11, int *out);
+
+ // op_1014 sets an array optionally based upon
+ // setCollisionOutputData; it is then used by op_1008
+ int _internalCollisionOutData[10];
+ Common::List<byte> _collisionObjs;
+
+ // op_1021 can (optionally) set two variables for use in op_1008
+ uint32 _var1021[2];
+};
+
+int LogicHEsoccer::versionID() {
+ return 1;
+}
+
+LogicHEsoccer::LogicHEsoccer(ScummEngine_v90he *vm) : LogicHE(vm) {
+ _userDataD = (double *)calloc(1732, sizeof(double));
+ _collisionTree = 0;
+ _collisionTreeAllocated = false;
+}
+
+LogicHEsoccer::~LogicHEsoccer() {
+ free(_userDataD);
+ delete[] _collisionTree;
+}
+
+int32 LogicHEsoccer::dispatch(int op, int numArgs, int32 *args) {
+ int res = 0;
+
+ switch (op) {
+ case 1006:
+ res = op_1006(args[0], args[1], args[2], args[3]);
+ break;
+
+ case 1007:
+ res = op_1007(args);
+ break;
+
+ case 1008:
+ res = op_1008(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14], args[15], args[16], args[17], args[18]);
+ break;
+
+ case 1011:
+ res = op_1011(args[0], args[1], args[2], args[3], args[4], args[5]);
+ break;
+
+ case 1012:
+ res = op_1012(args);
+ break;
+
+ case 1013:
+ res = op_1013(args[0], args[1], args[2]);
+ break;
+
+ case 1014:
+ res = op_1014(args[0], args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13]);
+ break;
+
+ case 1016:
+ res = op_1016(args);
+ break;
+
+ case 1017:
+ res = op_1017(args);
+ break;
+
+ case 1019:
+ res = op_1019(args);
+ break;
+
+ case 1021:
+ res = op_1021(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
+ break;
+
+ case 1001: case 1002: case 1003: case 1005:
+ case 1009: case 8221968:
+ // In the u32, but unused by any of the soccer scripts
+ // 1005 is called from another opcode, however
+ error("Unused soccer u32 opcode %d called", op);
+
+ case 1004: case 1010: case 1015: case 1018:
+ case 1020:
+ // Used only by the unaccessible in-game editor (so, fall through)
+
+ default:
+ LogicHE::dispatch(op, numArgs, args);
+ }
+
+ return res;
+}
+
+void LogicHEsoccer::beforeBootScript() {
+ _userDataD[530] = 0;
+}
+
+void LogicHEsoccer::initOnce() {
+ // The original sets some paths here that we don't need to worry about
+ _collisionTreeAllocated = false;
+ _userDataD[530] = 0;
+}
+
+int LogicHEsoccer::startOfFrame() {
+ // This variable is some sort of flag that activates this mode
+ int res = (int)_userDataD[530];
+
+ if (res)
+ res = op_1011((int)_userDataD[531], (int)_userDataD[532], (int)_userDataD[533], (int)_userDataD[534], (int)_userDataD[535], (int)_userDataD[536]);
+
+ return res;
+}
+
+int LogicHEsoccer::op_1005(float x1, float y1, float z1, float x2, float y2, float z2, float *nextVelX, float *nextVelY, float *nextVelZ, float *a10) {
+ // Called from op_1014
+
+ double dot = x1 * x2 + y1 * y2 + z1 * z2;
+ *nextVelX = x2 - 2 * dot * x1;
+ *nextVelY = y2 - 2 * dot * y1;
+ *nextVelZ = z2 - 2 * dot * z1;
+ *a10 = 1.0f; // It always does this. How curious!
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1006(int32 a1, int32 a2, int32 a3, int32 a4) {
+ double v1 = a1 * 0.01;
+ double v2 = a2 * 0.01;
+ double v3 = a3 * 0.01;
+ double var108, var109;
+
+ _userDataD[529] = a4;
+
+ var108 = atan2(v1, v3) * _userDataD[523] - a4;
+ var109 = _userDataD[526] - _userDataD[528] - (_userDataD[521] - atan2(_userDataD[524] - v2, v3)) * _userDataD[522];
+
+ writeScummVar(108, (int32)var108);
+ writeScummVar(109, (int32)var109);
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1007(int32 *args) {
+ // Used when the HE logo is shown
+ // This initializes the _userDataD fields that are used in op_1006/op_1011
+
+ float y1 = (double)args[0] / 100.0;
+ float x1 = (double)args[1] / 100.0;
+ float x2 = (double)args[2] / 100.0;
+ float y2 = (double)args[3] / 100.0;
+ float x3 = (double)args[4] / 100.0;
+
+ _userDataD[518] = x2;
+ _userDataD[519] = 2 * atan2(y2, x2 - x3);
+ _userDataD[520] = atan2(y1, x2);
+ _userDataD[521] = atan2(y1, x1);
+ _userDataD[524] = y1;
+ _userDataD[525] = 2 * (_userDataD[521] - _userDataD[520]);
+ _userDataD[526] = args[6];
+ _userDataD[527] = args[5];
+ _userDataD[528] = args[7];
+ _userDataD[522] = _userDataD[526] / _userDataD[525];
+ _userDataD[523] = _userDataD[527] / _userDataD[519];
+
+ // Clear both byte arrays
+ memset(_collisionObjIds, 0, 4096);
+ memset(_collisionNodeEnabled, 0, 585);
+
+ if (!_collisionTreeAllocated)
+ op_1013(4, args[8], args[9]);
+
+ return 1;
+}
+
+static inline double vectorLength(double x, double y, double z) {
+ return sqrt(x * x + y * y + z * z);
+}
+
+int LogicHEsoccer::op_1008(int outArray, int srcX, int srcY, int srcZ, int vecX, int vecY, int vecZ, int airResX, int airResY, int airResZ, int vecNumerator, int vecDenom, int gravityMult, int requiredSegments, int a15, int a16, int a17, int a18, int fieldType) {
+ // Calculate requiredSegments consecutive movement segments, and place
+ // the associated data (positions, vectors, etc) into outArray.
+
+ int loopsSoFar = 0;
+ int segmentsSoFar = 1;
+ int prevVecY = 500;
+ int inX = srcX;
+ int inZ = srcZ;
+ int checkForCollisions = 0;
+
+ while (segmentsSoFar <= requiredSegments) {
+ if (fieldType == 1 && srcZ > 8819)
+ checkForCollisions = 1;
+ else if (fieldType == 2 && (srcX < -2350 || srcX > 2350))
+ checkForCollisions = 1;
+ else if (fieldType == 3 && (srcX < -2350 || srcX > 2350 || srcZ < 6119 || srcZ > 8819))
+ checkForCollisions = 1;
+
+ if (srcY > 0)
+ vecY -= vecNumerator * gravityMult / vecDenom;
+
+ int prevX = srcX;
+ int prevY = srcY;
+ int prevZ = srcZ;
+ srcX += vecNumerator * vecX / vecDenom;
+ srcY += vecNumerator * vecY / vecDenom;
+ srcZ += vecNumerator * vecZ / vecDenom;
+
+ if (srcY > 0) {
+ if (checkForCollisions && op_1014(prevX, prevY, prevZ, vecX, vecY, vecZ, 0, a17, a18, 3, vecNumerator, vecDenom, a15, a16)) {
+ srcX = _internalCollisionOutData[6];
+ srcY = _internalCollisionOutData[7];
+ srcZ = _internalCollisionOutData[8];
+ vecX = _internalCollisionOutData[3];
+ vecY = _internalCollisionOutData[4];
+ vecZ = _internalCollisionOutData[5];
+ putInArray(outArray, segmentsSoFar, 0, loopsSoFar);
+ putInArray(outArray, segmentsSoFar, 1, (int)vectorLength((double)(_internalCollisionOutData[6] - inX), 0.0, (double)(_internalCollisionOutData[8] - inZ)));
+ putInArray(outArray, segmentsSoFar, 2, _internalCollisionOutData[6]);
+ putInArray(outArray, segmentsSoFar, 3, _internalCollisionOutData[7]);
+ putInArray(outArray, segmentsSoFar, 4, _internalCollisionOutData[8]);
+ putInArray(outArray, segmentsSoFar, 5, vecX);
+ putInArray(outArray, segmentsSoFar, 6, vecY);
+ putInArray(outArray, segmentsSoFar++, 7, vecZ);
+ }
+ } else {
+ srcY = 0;
+ int thisVecX = vecX;
+ int thisVecZ = vecZ;
+ vecX = vecX * airResX / 100;
+
+ if (vecY) {
+ int v18 = ABS(vecY);
+ if (v18 > ABS(prevVecY))
+ vecY = ABS(prevVecY);
+ vecY = ABS(airResY * vecY) / 100;
+ }
+
+ vecZ = airResZ * vecZ / 100;
+
+ if (prevVecY >= 0) {
+ if (op_1014(prevX, prevY, prevZ, thisVecX, prevVecY, thisVecZ, 0, a17, a18, 3, vecNumerator, vecDenom, a15, a16)) {
+ srcX = _internalCollisionOutData[6];
+ srcY = _internalCollisionOutData[7];
+ srcZ = _internalCollisionOutData[8];
+ vecX = _internalCollisionOutData[3];
+ vecY = _internalCollisionOutData[4];
+ vecZ = _internalCollisionOutData[5];
+ }
+ } else {
+ if (checkForCollisions) {
+ op_1021(srcX, 0, srcZ, thisVecX, prevVecY, thisVecZ, 1);
+
+ if (op_1014(prevX, prevY, prevZ, thisVecX, prevVecY, thisVecZ, 0, a17, a18, 3, vecNumerator, vecDenom, a15, a16)) {
+ srcX = _internalCollisionOutData[6];
+ srcY = _internalCollisionOutData[7];
+ srcZ = _internalCollisionOutData[8];
+ vecX = _internalCollisionOutData[3];
+ vecY = _internalCollisionOutData[4];
+ vecZ = _internalCollisionOutData[5];
+ } else {
+ // try it with the output of op_1021 instead
+ int tmpVecZ = vecZ + prevZ - _var1021[1];
+ int v20 = ABS(prevVecY);
+
+ if (op_1014(_var1021[0], 0, _var1021[1], vecX + prevX - _var1021[0], v20 - prevY, tmpVecZ, 0, a17, a18, 3, vecNumerator, vecDenom, a15, a16)) {
+ srcX = _internalCollisionOutData[6];
+ srcY = _internalCollisionOutData[7];
+ srcZ = _internalCollisionOutData[8];
+ vecX = _internalCollisionOutData[3];
+ vecY = _internalCollisionOutData[4];
+ vecZ = _internalCollisionOutData[5];
+ }
+ }
+ }
+ }
+
+ prevVecY = vecY;
+ putInArray(outArray, segmentsSoFar, 0, loopsSoFar);
+ putInArray(outArray, segmentsSoFar, 1, (int32)vectorLength(srcX - inX, 0.0, srcZ - inZ));
+ putInArray(outArray, segmentsSoFar, 2, srcX);
+ putInArray(outArray, segmentsSoFar, 3, srcY);
+ putInArray(outArray, segmentsSoFar, 4, srcZ);
+ putInArray(outArray, segmentsSoFar, 5, vecX);
+ putInArray(outArray, segmentsSoFar, 6, vecY);
+ putInArray(outArray, segmentsSoFar++, 7, vecZ);
+ }
+
+ loopsSoFar++;
+ }
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1011(int32 worldPosArray, int32 screenPosArray, int32 a3, int32 closestActorArray, int32 maxDistance, int32 fieldAreaArray) {
+ // This is called on each frame by startOfFrame() if activated by op_1012.
+
+ float objY = 0.0;
+
+ // First, iterate over the field objects and project them onto the screen.
+ for (int i = 0; i < 18; i++) {
+ int rawX = getFromArray(worldPosArray, i, 0);
+ int rawY = getFromArray(worldPosArray, i, 1);
+ int rawZ = getFromArray(worldPosArray, i, 2);
+
+ float objX = (double)rawX / 100.0;
+ objY = (double)rawY / 100.0;
+ float objZ = (double)rawZ / 100.0;
+
+ if (i < 13) {
+ // For the players and the ball: work out the area of the field
+ // this object is in, storing it in an array if provided.
+ int areaX = (rawX + 2750) / 500;
+ areaX = CLIP(areaX, 0, 10);
+
+ int areaZ = (9219 - rawZ) / 500;
+ areaZ = CLIP(areaZ, 0, 6);
+
+ if (fieldAreaArray)
+ putInArray(fieldAreaArray, 0, i, areaX + 11 * areaZ);
+ }
+
+ float v7 = atan2(_userDataD[524] - objY, (double)objZ);
+ int screenY = (int)(_userDataD[526] - (_userDataD[521] - v7) * _userDataD[522] - 300.0);
+ double v9 = _userDataD[523];
+
+ // x/y position of objects
+ putInArray(screenPosArray, i, 0, (int32)(atan2(objX, objZ) * v9 + 640.0));
+ putInArray(screenPosArray, i, 1, screenY);
+
+ double v10 = atan2(_userDataD[524], (double)objZ);
+ int shadowScreenY = (int)(_userDataD[526] - (_userDataD[521] - (float)v10) * _userDataD[522] - 300.0);
+ double v13 = _userDataD[523];
+
+ // x/y position of shadows
+ putInArray(screenPosArray, i + ((_vm->_game.id == GID_SOCCER) ? 20 : 22), 0, (int32)(atan2(objX, objZ) * v13 + 640.0));
+ putInArray(screenPosArray, i + ((_vm->_game.id == GID_SOCCER) ? 20 : 22), 1, shadowScreenY);
+ }
+
+ // soccer only uses one array here
+ // soccermls/soccer2004 use four
+ int start = (_vm->_game.id == GID_SOCCER) ? 19 : 18;
+ int end = (_vm->_game.id == GID_SOCCER) ? 19 : 21;
+
+ // The following loop is doing cursor scaling
+ // The further up on the screen, the smaller the cursor is
+ for (int i = start; i <= end; i++) {
+ int x = getFromArray(screenPosArray, i, 0);
+ int y = getFromArray(screenPosArray, i, 1);
+
+ // This retains objY from (i == 17)?
+ float v16 = _userDataD[524] - objY;
+ float scaledZ = v16 / tan((_userDataD[528] + y - _userDataD[526]) / _userDataD[522] + _userDataD[521]);
+ double scaledX = tan((double)(x - ((_vm->_game.id == GID_SOCCER) ? 0 : 640)) / _userDataD[523]) * scaledZ;
+ putInArray(worldPosArray, i, 0, (int)(scaledX * 100.0));
+ putInArray(worldPosArray, i, 2, (int)(scaledZ * 100.0));
+ }
+
+ calculateDistances(worldPosArray, a3, closestActorArray, maxDistance);
+
+ return 1;
+}
+
+static inline int distance(int a1, int a2, int a3, int a4) {
+ return (int)sqrt((double)((a4 - a3) * (a4 - a3) + (a2 - a1) * (a2 - a1)));
+}
+
+void LogicHEsoccer::calculateDistances(int32 worldPosArray, int32 a2, int32 closestActorArray, int32 maxDistance) {
+ // As you can guess, this is called from op_1011
+ // This seems to be checking distances between the players and the ball
+ // and which distance is the shortest.
+
+ int closestActor[13];
+ int objectX[13];
+ int objectZ[13];
+ int closestDistance[195];
+
+ for (int i = 0; i < 13; i++) {
+ closestActor[i] = 0;
+ objectX[i] = getFromArray(worldPosArray, i, 0);
+ objectZ[i] = getFromArray(worldPosArray, i, 2);
+ }
+
+ // 12 here, 13 up there
+ // Probably 12 for players, 13 for players+ball
+ for (int i = 0; i < 12; i++) {
+ int bestDistance = maxDistance;
+ for (int j = i + 1; j < 13; j++) {
+ closestDistance[i * 15 + j] = distance(objectX[i], objectX[j], objectZ[i], objectZ[j]);
+ putInArray(a2, i, j, closestDistance[i * 15 + j]);
+ putInArray(a2, j, i, closestDistance[i * 15 + j]);
+ if (closestDistance[i * 15 + j] < bestDistance) {
+ bestDistance = closestDistance[i * 15 + j];
+ closestActor[i] = j + 1;
+ closestActor[j] = i + 1;
+ }
+ }
+ }
+
+ int v13 = getFromArray(worldPosArray, 18, 0);
+ int v14 = getFromArray(worldPosArray, 18, 2);
+ int v15 = getFromArray(worldPosArray, 19, 0);
+ int v16 = getFromArray(worldPosArray, 19, 2);
+ int v19[15];
+ int v20[15];
+
+ if (_vm->_game.id == GID_SOCCER) {
+ // soccer gets to be different
+ for (int i = 0; i < 13; i++)
+ v20[i] = distance(v15, objectX[i], v16, objectZ[i]);
+
+ for (int i = 0; i < 13; i++)
+ v19[i] = distance(v13, objectX[i], v14, objectZ[i]);
+ } else {
+ // soccermls and soccer2004 use two other arrays here
+ int v9 = getFromArray(worldPosArray, 20, 0);
+ int v10 = getFromArray(worldPosArray, 20, 2);
+ int v11 = getFromArray(worldPosArray, 21, 0);
+ int v12 = getFromArray(worldPosArray, 21, 2);
+
+ for (int i = 0; i < 6; i++) {
+ v20[i] = distance(v9, objectX[i], v10, objectZ[i]);
+ v19[i] = distance(v13, objectX[i], v14, objectZ[i]);
+ }
+
+ for (int i = 6; i < 13; i++) {
+ v20[i] = distance(v11, objectX[i], v12, objectZ[i]);
+ v19[i] = distance(v15, objectX[i], v16, objectZ[i]);
+ }
+ }
+
+ for (int i = 0; i < 13; i++) {
+ putInArray(a2, 14, i, v20[i]);
+ putInArray(a2, i, 14, v20[i]);
+ putInArray(a2, 13, i, v19[i]);
+ putInArray(a2, i, 13, v19[i]);
+ putInArray(closestActorArray, 0, i, closestActor[i]);
+ }
+}
+
+int LogicHEsoccer::op_1012(int32 *args) {
+ // Used after op_1019
+ // This function activates startOfFrame() to call op_1011
+ // (Possibly field parameters?)
+
+ _userDataD[530] = (args[0] != 0) ? 1 : 0;
+ _userDataD[531] = args[1];
+ _userDataD[532] = args[2];
+ _userDataD[533] = args[3];
+ _userDataD[534] = args[4];
+ _userDataD[535] = args[5];
+ _userDataD[536] = args[6];
+
+ return 1;
+}
+
+int LogicHEsoccer::addCollisionTreeChild(int depth, int index, int parent) {
+ uint32 *dataPtr = _collisionTree + 11 * index;
+
+ /*
+ * This sets up a node of the tree stored in _collisionTree. There are
+ * two sets of parents (at depth 1 and 2), then child nodes at depth
+ * 3 which represent a single collision object.
+ *
+ * 0 = this index, 1 = parent index,
+ * 2-9 = child indices (or all -1 if leaf),
+ * 10 = _collisionObjIds index (if leaf)
+ */
+ dataPtr[0] = index;
+ dataPtr[1] = parent;
+
+ if (depth > 2) {
+ // store the offset into _collisionObjIds (which holds collision object ids),
+ // but subtract 585 first because there are already (8 + 8*8 + 8*8*8 = 584)
+ // indexes at higher levels of the tree, and we want to start at 0
+ dataPtr[10] = 8 * index - 585;
+ for (int i = 0; i < 8; i++)
+ dataPtr[i + 2] = 0xffffffff;
+ } else {
+ for (int i = 0; i < 8; i++)
+ dataPtr[i + 2] = addCollisionTreeChild(depth + 1, i + 8 * index + 1, index);
+ }
+
+ return index;
+}
+
+int LogicHEsoccer::op_1013(int32 a1, int32 a2, int32 a3) {
+ // Initialises _collisionTree, a tree used for collision detection.
+ // It is used by op_1014 to work out which objects to check.
+
+ _collisionTree = new uint32[585 * 11];
+ _collisionTreeAllocated = true;
+ for (int i = 0; i < 585 * 11; i++)
+ _collisionTree[i] = 0;
+
+ for (int i = 0; i < 8; i++)
+ _collisionTree[i + 2] = addCollisionTreeChild(1, i + 1, 0);
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1014(int32 srcX, int32 srcY, int32 srcZ, int32 velX, int32 velY, int32 velZ, int32 outArray, int32 dataArrayId, int32 indexArrayId, int32 requestType, int32 vecNumerator, int32 vecDenom, int32 a13, int32 a14) {
+ // Used many times during a match
+ // And called from op_1008!
+ // This seems to be doing collision handling
+
+ double startX = (double)srcX;
+ double startY = (double)srcY;
+ double startZ = (double)srcZ;
+ double adjustedVelZ = 0.0, adjustedVelY = 0.0, adjustedVelX = 0.0;
+
+ writeScummVar(108, 0);
+ writeScummVar(109, 0);
+
+ switch (requestType) {
+ case 1:
+ case 3:
+ adjustedVelX = (double)velX * (double)vecNumerator / (double)vecDenom / 100.0;
+ adjustedVelY = (double)velY * (double)vecNumerator / (double)vecDenom / 100.0;
+ adjustedVelZ = (double)velZ * (double)vecNumerator / (double)vecDenom / 100.0;
+ break;
+ case 2:
+ // length of movement vector
+ double v15 = vectorLength((double)velX * (double)vecNumerator / (double)vecDenom, (double)velY * (double)vecNumerator / (double)vecDenom, (double)velZ * (double)vecNumerator / (double)vecDenom);
+
+ if (v15 != 0.0) {
+ // add the (scaled) movement vector to the input
+ double v26 = (double)ABS(velX) * (double)vecNumerator / (double)vecDenom * 50.0 / v15;
+ srcX = (int)((double)srcX + v26);
+ double v25 = (double)ABS(velY) * (double)vecNumerator / (double)vecDenom * 50.0 / v15;
+ srcY = (int)((double)srcY + v25);
+ double v24 = (double)ABS(velZ) * (double)vecNumerator / (double)vecDenom * 50.0 / v15;
+ srcZ = (int)((double)srcZ + v24);
+ }
+
+ // srcX = (newX / newZ) * 3869
+ startX = (double)srcX / (double)srcZ * 3869.0;
+ // srcY = (newY - (+524 * 100)) / (newZ * 3869 + (+524 * 100)
+ startY = ((double)srcY - _userDataD[524] * 100.0) / (double)srcZ * 3869.0 + _userDataD[524] * 100.0;
+ // srcZ = 3869
+ startZ = 3869.0;
+ // vectorX = (newX - srcX) / 100
+ adjustedVelX = ((double)srcX - startX) / 100.0;
+ // vectorY = (newY - srcY) / 100
+ adjustedVelY = ((double)srcY - startY) / 100.0;
+ // vectorZ = (newZ - 3869 = srcZ) / 100
+ adjustedVelZ = ((double)srcZ - 3869.0) / 100.0;
+ break;
+ }
+
+ int foundCollision = 0;
+
+ // work out which collision objects we might collide with (if any)
+ if (generateCollisionObjectList(startX, startY, startZ, adjustedVelX, adjustedVelY, adjustedVelZ)) {
+ int collisionId = 0;
+ float v46; // always 1.0 after a collision due to op_1005
+
+ float collisionInfo[42 * 8];
+ memset(collisionInfo, 0, 42 * 8 * sizeof(float));
+
+ // check each potential collision object for an actual collision,
+ // add it to collisionInfo if there is one
+ for (Common::List<byte>::const_iterator it = _collisionObjs.begin(); it != _collisionObjs.end(); it++) {
+ float collideZ, collideY, collideX;
+ float nextVelX, nextVelY, nextVelZ;
+
+ if (findCollisionWith(*it, startX, startY, startZ, adjustedVelX * 100.0, adjustedVelY * 100.0, adjustedVelZ * 100.0, collideX, collideY, collideZ, indexArrayId, dataArrayId, &nextVelX, &nextVelY, &nextVelZ, &v46)) {
+ collisionInfo[collisionId * 8] = *it;
+ collisionInfo[collisionId * 8 + 1] = vectorLength(collideX - startX, collideY - startY, collideZ - startZ);
+ collisionInfo[collisionId * 8 + 2] = collideX;
+ collisionInfo[collisionId * 8 + 3] = collideY;
+ collisionInfo[collisionId * 8 + 4] = collideZ;
+ collisionInfo[collisionId * 8 + 5] = vecDenom * nextVelX / vecNumerator;
+ collisionInfo[collisionId * 8 + 6] = vecDenom * nextVelY / vecNumerator;
+ collisionInfo[collisionId * 8 + 7] = vecDenom * nextVelZ / vecNumerator;
+ foundCollision = 1;
+ collisionId++;
+ }
+ }
+
+ if (foundCollision) {
+ // if we have more than one collision, sort them by distance
+ // to find the closest one
+ if (collisionId != 1)
+ sortCollisionList(collisionInfo, 42, 8, 1);
+
+ int v22, v39, v42;
+ float tmpData[8];
+ int outData[10];
+
+ // output the collision we found
+ switch (requestType) {
+ case 1:
+ for (int i = 0; i < 8; i++)
+ tmpData[i] = collisionInfo[i];
+ v22 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0));
+ v42 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0 + 1.0));
+ v39 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0 + 2.0));
+ setCollisionOutputData(tmpData, 8, dataArrayId, indexArrayId, (int)startX, (int)startY, (int)startZ, v46, v22, v42, v39, outData);
+ for (int i = 0; i < 10; i++)
+ putInArray(outArray, 0, i, outData[i]);
+ break;
+ case 2:
+ // write the object id if collision happened (note that other case can't happen)
+ if (collisionId)
+ writeScummVar(109, (int)collisionInfo[(collisionId - 1) * 8]);
+ else
+ writeScummVar(109, 0);
+ break;
+ case 3:
+ for (int i = 0; i < 8; i++)
+ tmpData[i] = collisionInfo[i];
+ v22 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0));
+ v42 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0 + 1.0));
+ v39 = getFromArray(indexArrayId, 0, (int)((tmpData[0] - 1.0) * 4.0 + 2.0));
+ setCollisionOutputData(tmpData, 8, dataArrayId, indexArrayId, (int)startX, (int)startY, (int)startZ, v46, v22, v42, v39, outData);
+ for (int i = 0; i < 10; i++)
+ _internalCollisionOutData[i] = outData[i];
+ break;
+ }
+ }
+ }
+
+ writeScummVar(108, foundCollision);
+
+ _collisionObjs.clear();
+
+ return foundCollision;
+}
+
+int LogicHEsoccer::generateCollisionObjectList(float srcX, float srcY, float srcZ, float velX, float velY, float velZ) {
+ float v36 = srcX / 100.0;
+ float v37 = v36 + 52.0;
+ float destX = v37 + velX;
+
+ int v33, v29;
+
+ if (((int)destX / 52) ^ ((int)v37 / 52)) {
+ v33 = 1;
+ v29 = 1;
+ } else if ((int)v37 / 52) {
+ v29 = 0;
+ v33 = 1;
+ } else {
+ v33 = 0;
+ v29 = 1;
+ }
+
+ uint32 areaEnabled[8];
+ for (int i = 0; i < 4; i++) {
+ areaEnabled[i] = v29;
+ areaEnabled[i + 4] = v33;
+ }
+
+ float v38 = srcY / 100.0;
+ float destY = v38 + velY;
+
+ if (((int)destY / 20) ^ ((int)v38 / 20)) {
+ v33 = 1;
+ v29 = 1;
+ } else if ((int)v38 / 20) {
+ v33 = 1;
+ v29 = 0;
+ } else {
+ v29 = 1;
+ v33 = 0;
+ }
+
+ for (int i = 0; i < 2; i++) {
+ if (areaEnabled[i * 4 + 0])
+ areaEnabled[i * 4 + 0] = v29;
+ if (areaEnabled[i * 4 + 1])
+ areaEnabled[i * 4 + 1] = v29;
+ if (areaEnabled[i * 4 + 2])
+ areaEnabled[i * 4 + 2] = v33;
+ if (areaEnabled[i * 4 + 3])
+ areaEnabled[i * 4 + 3] = v33;
+ }
+
+ float v39 = srcZ / 100.0;
+ float v40 = v39 - 38.69;
+ float destZ = v40 + velZ;
+
+ if (((int)destZ / 36) ^ ((int)v40 / 36)) {
+ v33 = 1;
+ v29 = 1;
+ } else if ((int)v40 / 36) {
+ v29 = 0;
+ v33 = 1;
+ } else {
+ v33 = 0;
+ v29 = 1;
+ }
+
+ for (int i = 0; i <= 6; i += 2) {
+ if (areaEnabled[i])
+ areaEnabled[i] = v29;
+ if (areaEnabled[i + 1])
+ areaEnabled[i + 1] = v33;
+ }
+
+ int objCount = 0;
+
+ for (int i = 0; i < 8; i++) {
+ if (areaEnabled[i]) {
+ uint32 *ptr = _collisionTree + _collisionTree[i + 2] * 11;
+ objCount += addFromCollisionTreeNode(ptr[0], ptr[1], &ptr[2], ptr[10]);
+ }
+ }
+
+ writeScummVar(109, objCount);
+ return objCount;
+}
+
+int LogicHEsoccer::addFromCollisionTreeNode(int index, int parent, uint32 *indices, int objIndexBase) {
+ int objCount = 0;
+
+ if (indices[0] == 0xffffffff) {
+ for (int i = 0; i < 8; i++) {
+ if (_collisionObjIds[i + objIndexBase]) {
+ addCollisionObj(_collisionObjIds[i + objIndexBase]);
+ objCount = 1;
+ }
+ }
+ } else {
+ if (_collisionNodeEnabled[index]) {
+ for (int i = 0; i < 8; i++) {
+ uint32 *ptr = _collisionTree + indices[i] * 11;
+ objCount += addFromCollisionTreeNode(ptr[0], ptr[1], &ptr[2], ptr[10]);
+ }
+ }
+ }
+
+ return objCount;
+}
+
+void LogicHEsoccer::addCollisionObj(byte objId) {
+ // Add objId to the list if not found
+ for (Common::List<byte>::const_iterator it = _collisionObjs.begin(); it != _collisionObjs.end(); it++)
+ if (*it == objId)
+ return;
+
+ _collisionObjs.push_back(objId);
+}
+
+int LogicHEsoccer::findCollisionWith(int objId, float inX, float inY, float inZ, float inXVec, float inYVec, float inZVec, float &collideX, float &collideY, float &collideZ, int indexArrayId, int dataArrayId, float *nextVelX, float *nextVelY, float *nextVelZ, float *a15) {
+ int foundCollision = 0;
+ float inY_plus1 = inY + 1.0;
+ float destX = inX + inXVec;
+ float destY = inY_plus1 + inYVec;
+ float destZ = inZ + inZVec;
+
+ // don't go below the ground!
+ if (inY_plus1 <= 1.0001 && destY < 0.0) {
+ destY = 0.0;
+ inYVec = ABS((int)inYVec);
+ }
+
+ // get the 8 points which define the 6 faces of this object
+ int objIndex = getFromArray(indexArrayId, 0, 4 * objId - 1);
+ int objPoints[24];
+ for (int i = 0; i < 24; i++)
+ objPoints[i] = getFromArray(dataArrayId, 0, objIndex + i);
+
+ for (int faceId = 0; faceId < 6; faceId++) {
+ // This assigns variables from objPoints based on faceId
+ float x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4;
+ float faceCrossX, faceCrossY, faceCrossZ;
+ getPointsForFace(faceId, x1, y1, z1, x2, y2, z2, x3, y3, z3, x4, y4, z4, objPoints);
+ crossProduct(x1, y1, z1, x2, y2, z2, x1, y1, z1, x3, y3, z3, faceCrossX, faceCrossY, faceCrossZ);
+
+ float faceArea = sqrt(faceCrossX * faceCrossX + faceCrossY * faceCrossY + faceCrossZ * faceCrossZ);
+
+ // The original did not initialize these variables and would
+ // use them uninitialized if faceArea == 0.0
+ float xMult = 0.0, yMult = 0.0, zMult = 0.0;
+
+ if (faceArea != 0.0) {
+ // UnitCross = Cross/||Cross||
+ xMult = faceCrossX / faceArea;
+ yMult = faceCrossY / faceArea;
+ zMult = faceCrossZ / faceArea;
+ }
+ double scalingMult = 5.0;
+
+ float ZToFacePoint1 = z1 - inZ;
+ float YToFacePoint1 = y1 - inY_plus1;
+ float XToFacePoint1 = x1 - inX;
+ // scalar component of UnitCross in direction of (start -> P1)
+ double ToFacePoint1 = dotProduct(xMult, yMult, zMult, XToFacePoint1, YToFacePoint1, ZToFacePoint1);
+
+ float ZToDest = destZ - inZ;
+ float YToDest = destY - inY_plus1;
+ float XToDest = destX - inX;
+ // scalar component of UnitCross in direction of (start -> dest)
+ double ToDest = dotProduct(xMult, yMult, zMult, XToDest, YToDest, ZToDest);
+
+ if (fabs(ToDest) > 0.00000001)
+ scalingMult = ToFacePoint1 / ToDest;
+
+ if (scalingMult >= 0.0 && fabs(scalingMult) <= 1.0 && ToDest != 0.0) {
+ // calculate where the collision would be, in the plane containing this face
+ double collisionX = inX + (destX - inX) * scalingMult;
+ double collisionY = inY_plus1 + (destY - inY_plus1) * scalingMult + 5.0;
+ double collisionZ = inZ + (destZ - inZ) * scalingMult;
+
+ // now we need to work out whether this point is actually inside the face
+ double dot1 = dotProduct(x2 - x1, y2 - y1, z2 - z1, x3 - x1, y3 - y1, z3 - z1);
+ double sqrt1 = vectorLength(x2 - x1, y2 - y1, z2 - z1);
+ double num1 = dot1 / (vectorLength(x3 - x1, y3 - y1, z3 - z1) * sqrt1);
+ num1 = CLIP<double>(num1, -1.0, 1.0);
+ double faceAngle = acos(num1);
+
+ double dot2 = dotProduct(x2 - x1, y2 - y1, z2 - z1, collisionX - x1, collisionY - y1, collisionZ - z1);
+ double sqrt2 = vectorLength(x2 - x1, y2 - y1, z2 - z1);
+ double num2 = dot2 / (vectorLength(collisionX - x1, collisionY - y1, collisionZ - z1) * sqrt2);
+ num2 = CLIP<double>(num2, -1.0, 1.0);
+ double angle1 = acos(num2);
+
+ double dot3 = dotProduct(x3 - x1, y3 - y1, z3 - z1, collisionX - x1, collisionY - y1, collisionZ - z1);
+ double sqrt3 = vectorLength(x3 - x1, y3 - y1, z3 - z1);
+ double num3 = dot3 / (vectorLength(collisionX - x1, collisionY - y1, collisionZ - z1) * sqrt3);
+ num3 = CLIP<double>(num3, -1.0, 1.0);
+ double angle2 = acos(num3);
+
+ if (angle1 + angle2 - 0.001 <= faceAngle) {
+ double dot4 = dotProduct(x2 - x4, y2 - y4, z2 - z4, x3 - x4, y3 - y4, z3 - z4);
+ double sqrt4 = vectorLength(x2 - x4, y2 - y4, z2 - z4);
+ double num4 = dot4 / (vectorLength(x3 - x4, y3 - y4, z3 - z4) * sqrt4);
+ num4 = CLIP<double>(num4, -1.0, 1.0);
+ faceAngle = acos(num4);
+
+ double dot5 = dotProduct(x2 - x4, y2 - y4, z2 - z4, collisionX - x4, collisionY - y4, collisionZ - z4);
+ double sqrt5 = vectorLength(x2 - x4, y2 - y4, z2 - z4);
+ double num5 = dot5 / (vectorLength(collisionX - x4, collisionY - y4, collisionZ - z4) * sqrt5);
+ num5 = CLIP<double>(num5, -1.0, 1.0);
+ double angle3 = acos(num5);
+
+ double dot6 = dotProduct(x3 - x4, y3 - y4, z3 - z4, collisionX - x4, collisionY - y4, collisionZ - z4);
+ double sqrt6 = vectorLength(x3 - x4, y3 - y4, z3 - z4);
+ double num6 = dot6 / (vectorLength(collisionX - x4, collisionY - y4, collisionZ - z4) * sqrt6);
+ num6 = CLIP<double>(num6, -1.0, 1.0);
+ double angle4 = acos(num6);
+
+ if (angle3 + angle4 - 0.001 <= faceAngle) {
+ // found a collision with this face
+ if (foundCollision) {
+ // if we already found one, is the new one closer?
+ // (except this don't adjust for the modification of collideX/Y/Z..)
+ double ToCollide = vectorLength(inX - collisionX, inY_plus1 - collisionY, inZ - collisionZ);
+ if (vectorLength(inX - collideX, inY_plus1 - collideY, inZ - collideZ) > ToCollide) {
+ collideX = collisionX - xMult * 3.0;
+ collideY = collisionY - yMult * 3.0;
+ collideZ = collisionZ - zMult * 3.0;
+ op_1005(xMult, yMult, zMult, inXVec, inYVec, inZVec, nextVelX, nextVelY, nextVelZ, a15);
+ }
+ } else {
+ collideX = collisionX - xMult * 3.0;
+ collideY = collisionY - yMult * 3.0;
+ collideZ = collisionZ - zMult * 3.0;
+ op_1005(xMult, yMult, zMult, inXVec, inYVec, inZVec, nextVelX, nextVelY, nextVelZ, a15);
+ }
+
+ foundCollision = 1;
+ }
+ }
+ }
+ }
+
+ return foundCollision;
+}
+
+void LogicHEsoccer::getPointsForFace(int faceId, float &x1, float &y1, float &z1, float &x2, float &y2, float &z2, float &x3, float &y3, float &z3, float &x4, float &y4, float &z4, const int *objPoints) {
+ // Note that this originally returned a value, but said value was never used
+ // TODO: This can probably be shortened using a few tables...
+
+ switch (faceId) {
+ case 0:
+ x1 = objPoints[0];
+ y1 = objPoints[1];
+ z1 = objPoints[2];
+ x2 = objPoints[3];
+ y2 = objPoints[4];
+ z2 = objPoints[5];
+ x3 = objPoints[6];
+ y3 = objPoints[7];
+ z3 = objPoints[8];
+ x4 = objPoints[9];
+ y4 = objPoints[10];
+ z4 = objPoints[11];
+ break;
+ case 1:
+ x1 = objPoints[0];
+ y1 = objPoints[1];
+ z1 = objPoints[2];
+ x2 = objPoints[6];
+ y2 = objPoints[7];
+ z2 = objPoints[8];
+ x3 = objPoints[12];
+ y3 = objPoints[13];
+ z3 = objPoints[14];
+ x4 = objPoints[18];
+ y4 = objPoints[19];
+ z4 = objPoints[20];
+ break;
+ case 2:
+ x1 = objPoints[3];
+ y1 = objPoints[4];
+ z1 = objPoints[5];
+ x2 = objPoints[15];
+ y2 = objPoints[16];
+ z2 = objPoints[17];
+ x3 = objPoints[9];
+ y3 = objPoints[10];
+ z3 = objPoints[11];
+ x4 = objPoints[21];
+ y4 = objPoints[22];
+ z4 = objPoints[23];
+ break;
+ case 3:
+ x1 = objPoints[0];
+ y1 = objPoints[1];
+ z1 = objPoints[2];
+ x2 = objPoints[12];
+ y2 = objPoints[13];
+ z2 = objPoints[14];
+ x3 = objPoints[3];
+ y3 = objPoints[4];
+ z3 = objPoints[5];
+ x4 = objPoints[15];
+ y4 = objPoints[16];
+ z4 = objPoints[17];
+ break;
+ case 4:
+ x1 = objPoints[6];
+ y1 = objPoints[7];
+ z1 = objPoints[8];
+ x2 = objPoints[9];
+ y2 = objPoints[10];
+ z2 = objPoints[11];
+ x3 = objPoints[18];
+ y3 = objPoints[19];
+ z3 = objPoints[20];
+ x4 = objPoints[21];
+ y4 = objPoints[22];
+ z4 = objPoints[23];
+ break;
+ case 5:
+ x1 = objPoints[15];
+ y1 = objPoints[16];
+ z1 = objPoints[17];
+ x2 = objPoints[12];
+ y2 = objPoints[13];
+ z2 = objPoints[14];
+ x3 = objPoints[21];
+ y3 = objPoints[22];
+ z3 = objPoints[23];
+ x4 = objPoints[18];
+ y4 = objPoints[19];
+ z4 = objPoints[20];
+ break;
+ }
+}
+
+void LogicHEsoccer::crossProduct(float x1, float y1, float z1, float x2, float y2, float z2, float x3, float y3, float z3, float x4, float y4, float z4, float &outX, float &outY, float &outZ) {
+ outX = (y2 - y1) * (z4 - z3) - (y4 - y3) * (z2 - z1);
+ outY = ((x2 - x1) * (z4 - z3) - (x4 - x3) * (z2 - z1)) * -1.0;
+ outZ = (x2 - x1) * (y4 - y3) - (x4 - x3) * (y2 - y1);
+}
+
+double LogicHEsoccer::dotProduct(float a1, float a2, float a3, float a4, float a5, float a6) {
+ return a1 * a4 + a2 * a5 + a3 * a6;
+}
+
+void LogicHEsoccer::sortCollisionList(float *data, int numEntries, int entrySize, int compareOn) {
+ // This takes an input array of collisions, and tries to sort it based on the distance
+ // (index of compareOn, always 1), copying in groups of entrySize, which is always 8
+
+ bool found = true;
+ int entry = 0;
+
+ while (found) {
+ found = false;
+
+ // while we still have entries, and there is an obj id set for the next entry
+ while (entry <= numEntries - 2 && data[(entry + 1) * 8] != 0.0) {
+ // if the current entry has distance 0, or the next entry is closer (distance is less)
+ if (data[compareOn + entry * 8] == 0 || data[compareOn + entry * 8] > data[compareOn + (entry + 1) * 8]) {
+ found = true;
+
+ // swap all data with the next entry
+ for (int i = 0; i < entrySize; i++) {
+ float tmp = data[i + entry * 8];
+ data[i + entry * 8] = data[i + (entry + 1) * 8];
+ data[i + (entry + 1) * 8] = tmp;
+ }
+ }
+
+ entry++;
+ }
+ }
+}
+
+int LogicHEsoccer::setCollisionOutputData(float *collisionData, int entrySize, int dataArrayId, int indexArrayId, int startX, int startY, int startZ, float a8, int a9, int a10, int a11, int *out) {
+ // area-provided data
+ out[0] = a9;
+ out[1] = a10;
+ out[2] = a11;
+ // new velocity, slowed by area-provided value
+ out[3] = (int)(collisionData[5] * (double)a10 / 100.0);
+ out[4] = (int)(collisionData[6] * (double)a10 / 100.0 * a8); // Note: a8 should always be 1
+ out[5] = (int)(collisionData[7] * (double)a10 / 100.0);
+ // new position
+ out[6] = (int)collisionData[2];
+ out[7] = (int)collisionData[3];
+ out[8] = (int)collisionData[4];
+ // collision object id
+ out[9] = (int)collisionData[0];
+ return out[9];
+}
+
+int LogicHEsoccer::op_1016(int32 *args) {
+ // Called when a goal is scored
+
+ int result = 0;
+
+ double v9 = (double)args[1] / 100.0;
+ double v13 = (double)args[2] / 100.0;
+ double v12 = (double)args[3] / 100.0;
+ double v18 = v13 * v13;
+ double v10 = (double)args[0] / 100.0 * (double)args[0] / 100.0;
+ double v11 = v9 * v9;
+ double v19 = (v9 * v9 * v12 * v12 + 2.0 * v9 * v12 * v18 + v18 * v18) * v10 * v10 - (v10 + v11) * v12 * v12 * v10 * v10;
+
+ if (v19 >= 0.0) {
+ double v6 = sqrt(v19);
+ double v17 = ((v9 * v12 + v18) * v10 + v6) / (v10 + v11 + v10 + v11);
+ double v16 = ((v9 * v12 + v18) * v10 - v6) / (v10 + v11 + v10 + v11);
+ double v7, v14;
+
+ if (v17 <= 0.0 || (v7 = sqrt(v17), v14 = acos(v7 / v13), v14 > 0.7853981633974475)) {
+ double v8, v15;
+ if (v16 <= 0.0 || (v8 = sqrt(v16), v15 = acos(v8 / v13), v15 > 0.7853981633974475)) {
+ writeScummVar(108, -1);
+ } else {
+ writeScummVar(108, (int)(v15 / 0.01745329251994328 * 100.0));
+ result = 1;
+ }
+ } else {
+ writeScummVar(108, (int)(v14 / 0.01745329251994328 * 100.0));
+ result = 1;
+ }
+ } else {
+ writeScummVar(108, -1);
+ }
+
+ return result;
+}
+
+int LogicHEsoccer::op_1017(int32 *args) {
+ // Used sporadically during a match (out of bounds?)
+ if (!args[1])
+ args[1] = 1;
+
+ double v3 = asin((double)args[0] / (double)args[1]);
+ writeScummVar(108, (int32)(v3 / 0.01745329251994328 * (double)args[1]));
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1019(int32 *args) {
+ // Used at the beginning of a match
+ // Initializes some arrays with field collision data
+
+ // _collisionObjIds provides object ids for leaf nodes
+ // of the collision tree (_collisionTree).
+ for (int i = 0; i < 4096; i++)
+ _collisionObjIds[i] = getFromArray(args[1], 0, i);
+
+ // _collisionNodeEnabled enables or disables non-leaf nodes
+ // of the collision tree (_collisionTree).
+ for (int i = 0; i < 585; i++)
+ _collisionNodeEnabled[i] = getFromArray(args[0], 0, i);
+
+ // The remaining code of this function was used for the
+ // built-in editor. However, it is incomplete in the
+ // final product, so we do not need to have it.
+
+ return 1;
+}
+
+int LogicHEsoccer::op_1021(int32 inX, int32 inY, int32 inZ, int32 velX, int32 velY, int32 velZ, int32 internalUse) {
+ // Used during a match (ball movement?)
+ // Also called from op_1008
+
+ int outX;
+ if (velX && velY)
+ outX = (int)(((double)inY - (double)velY * (double)inX / (double)velX) * -1.0 * (double)velX / (double)velY);
+ else
+ outX = inX;
+
+ int outZ;
+ if (velZ && velY)
+ outZ = (int)(((double)inY - (double)velY * (double)inZ / (double)velZ) * -1.0 * (double)velZ / (double)velY);
+ else
+ outZ = inZ;
+
+ // The final argument chooses whether to store the results for op_1008 or
+ // store them in SCUMM variables.
+ if (internalUse) {
+ _var1021[0] = outX;
+ _var1021[1] = outZ;
+ } else {
+ writeScummVar(108, outX);
+ writeScummVar(109, outZ);
+ }
+
+ return 1;
+}
+
+LogicHE *makeLogicHEsoccer(ScummEngine_v90he *vm) {
+ return new LogicHEsoccer(vm);
+}
+
+} // End of namespace Scumm
diff --git a/engines/scumm/he/logic_he.cpp b/engines/scumm/he/logic_he.cpp
index af56bca2ee..a76c393e13 100644
--- a/engines/scumm/he/logic_he.cpp
+++ b/engines/scumm/he/logic_he.cpp
@@ -33,29 +33,10 @@ LogicHE::LogicHE(ScummEngine_v90he *vm) : _vm(vm) {
LogicHE::~LogicHE() {
}
-LogicHErace::LogicHErace(ScummEngine_v90he *vm) : LogicHE(vm) {
- // Originally it used 0x930 and stored both floats and doubles inside
- _userData = (float *)calloc(550, sizeof(float));
- _userDataD = (double *)calloc(30, sizeof(double));
-
- // FIXME: of the 550 entries in _userData, only 516 till 532 are used
- // FIXME: similarly, in _userDataD only 9 till 17 are used for computations
- // (some of the other entries are also set, but never read, hence useless).
-}
-
-LogicHErace::~LogicHErace() {
- free(_userData);
- free(_userDataD);
-}
-
void LogicHE::writeScummVar(int var, int32 value) {
_vm->writeVar(var, value);
}
-static int32 scumm_round(double arg) {
- return (int32)(arg + 0.5);
-}
-
int LogicHE::versionID() {
return 1;
}
@@ -95,1370 +76,34 @@ int32 LogicHE::dispatch(int op, int numArgs, int32 *args) {
return 1;
}
-/***********************
- * Putt-Putt Joins the Race
- *
- */
-
-int LogicHErace::versionID() {
- return 1;
-}
-
-int32 LogicHErace::dispatch(int op, int numArgs, int32 *args) {
- int32 res;
-
- switch (op) {
- case 1003:
- res = op_1003(args);
- break;
-
- case 1004:
- res = op_1004(args);
- break;
-
- case 1100:
- res = op_1100(args);
- break;
-
- case 1101:
- res = op_1101(args);
- break;
-
- case 1102:
- res = op_1102(args);
- break;
-
- case 1103:
- res = op_1103(args);
- break;
-
- case 1110:
- res = op_1110();
- break;
-
- case 1120:
- res = op_1120(args);
- break;
-
- case 1130:
- res = op_1130(args);
- break;
-
- case 1140:
- res = op_1140(args);
- break;
-
- default:
- res = 0;
- break;
-
- }
-
- return res;
-}
-
-#define RAD2DEG (180 / M_PI)
-#define DEG2RAD (M_PI / 180)
-
-int32 LogicHErace::op_1003(int32 *args) {
- int value = args[2] ? args[2] : 1;
-
- writeScummVar(108, (int32)(atan2((double)args[0], (double)args[1]) * RAD2DEG * value));
-
- return 1;
-}
-
-int32 LogicHErace::op_1004(int32 *args) {
- int value = args[1] ? args[1] : 1;
-
- writeScummVar(108, (int32)(sqrt((float)args[0]) * value));
-
- return 1;
-}
-
-int32 LogicHErace::op_1100(int32 *args) {
- // _userData 516,517,518 describe a 3D translation?
- _userData[516] = (float)args[0] / args[10];
- _userData[517] = (float)args[1] / args[10];
- _userData[518] = (float)args[2] / args[10];
-
- // _userData 519,520,521 describe rotation angles around the x,y,z axes?
- _userData[519] = (float)args[3] / args[10];
- _userData[520] = (float)args[4] / args[10];
- _userData[521] = (float)args[5] / args[10];
-
- op_sub1(_userData[520]);
- op_sub2(_userData[521]);
-
- // _userData[532] seems to be some kind of global scale factor
- _userData[532] = (float)args[10];
-
- _userData[524] = (float)args[8]; // not used
- _userData[525] = (float)args[9]; // not used
- _userData[522] = (float)args[6] / args[10]; // not used
- _userData[523] = (float)args[7] / args[10]; // only used to compute 528 and 529
-
- // The following two are some kind of scale factors
- _userData[526] = (float)args[6] / args[8] / args[10];
- _userData[527] = (float)args[7] / args[9] / args[10];
-
- // Set var 108 and 109 -- the value set here corresponds to the values
- // set by op_1110!
- writeScummVar(108, (int32)((float)args[6] / args[8] * args[10]));
- writeScummVar(109, (int32)((float)args[7] / args[9] * args[10]));
-
- _userData[528] = (float)(_userData[519] - _userData[523] * 0.5);
- _userData[529] = (float)(_userData[519] + _userData[523] * 0.5);
-
- writeScummVar(110, (int32)(_userData[528] * args[10]));
- writeScummVar(111, (int32)(_userData[529] * args[10]));
-
- // 530 and 531 are only used to set vars 112 and 113, so no need
- // to store them permanently
- _userData[530] = (float)(_userData[517] / tan(_userData[529] * DEG2RAD));
- _userData[531] = (float)(_userData[517] / tan(_userData[528] * DEG2RAD));
-
- writeScummVar(112, (int32)(_userData[530] * args[10]));
- writeScummVar(113, (int32)(_userData[531] * args[10]));
-
- return 1;
-}
-
-int32 LogicHErace::op_1101(int32 *args) {
- // Update rotation params?
- int32 retval;
- float temp;
-
- temp = args[0] / _userData[532];
- if (_userData[519] != temp) {
- _userData[519] = temp;
- op_sub3(temp);
- retval = 1;
- } else {
- retval = (int32)temp;
- }
-
- temp = args[1] / _userData[532];
- if (_userData[520] != temp) {
- _userData[520] = temp;
- op_sub1(temp);
- retval = 1;
- }
-
- temp = args[2] / _userData[532];
- if (_userData[521] != temp) {
- _userData[521] = temp;
- op_sub2(temp);
- retval = 1;
- }
-
- return retval;
-}
-
-int32 LogicHErace::op_1102(int32 *args) {
- // Update translation params?
- int32 retval;
- float temp;
-
- temp = args[0] / _userData[532];
- if (_userData[516] != temp) {
- _userData[516] = temp;
- retval = 1;
- } else {
- retval = (int32)_userData[532];
- }
-
- temp = args[1] / _userData[532];
- if (_userData[517] != temp) {
- _userData[517] = temp;
- retval = 1;
- }
-
- temp = args[2] / _userData[532];
- if (_userData[518] != temp) {
- _userData[518] = temp;
- retval = 1;
- }
-
- return retval;
-}
-
-int32 LogicHErace::op_1103(int32 *args) {
- double angle = args[0] / args[1] * DEG2RAD;
-
- writeScummVar(108, (int32)(sin(angle) * args[2]));
- writeScummVar(109, (int32)(cos(angle) * args[2]));
-
- return 1;
-}
-
-int32 LogicHErace::op_1110() {
- writeScummVar(108, (int32)(_userData[526] * _userData[532] * _userData[532]));
- writeScummVar(109, (int32)(_userData[527] * _userData[532] * _userData[532]));
- writeScummVar(110, (int32)(_userData[532]));
-
- return 1;
-}
-
-int32 LogicHErace::op_1120(int32 *args) {
- double a0, a1, a2;
- double b0, b1, b2;
- double res1, res2;
-
- a0 = args[0] / _userData[532] - _userData[516];
- a1 = args[1] / _userData[532] - _userData[517];
- a2 = args[2] / _userData[532] - _userData[518];
-
- // Perform matrix multiplication (multiplying by a rotation matrix)
- b2 = a2 * _userDataD[17] + a1 * _userDataD[14] + a0 * _userDataD[11];
- b1 = a2 * _userDataD[16] + a1 * _userDataD[13] + a0 * _userDataD[10];
- b0 = a2 * _userDataD[15] + a1 * _userDataD[12] + a0 * _userDataD[9];
-
- res1 = (atan2(b0, b2) * RAD2DEG) / _userData[526];
- res2 = (atan2(b1, b2) * RAD2DEG - _userData[528]) / _userData[527];
-
- writeScummVar(108, (int32)res1);
- writeScummVar(109, (int32)res2);
-
- return 1;
-}
-
-int32 LogicHErace::op_1130(int32 *args) {
- double cs = cos(args[0] / _userData[532] * DEG2RAD);
- double sn = sin(args[0] / _userData[532] * DEG2RAD);
-
- writeScummVar(108, (int32)(cs * args[1] + sn * args[2]));
- writeScummVar(109, (int32)(cs * args[2] - sn * args[1]));
-
- return 1;
-}
-
-int32 LogicHErace::op_1140(int32 *args) {
- // This functions seems to perform some kind of projection: We project
- // the vector (arg2,arg3) onto the vector (arg0,arg1), but also apply
- // some kind of distortion factor ?!?
- double x = args[2], y = args[3];
-
- // We start by normalizing the vector described by arg2 and arg3.
- // So compute its length and divide the x and y coordinates
- const double sq = sqrt(x*x + y*y);
- x /= sq;
- y /= sq;
-
- // Compute the scalar product of the vectors (arg0,arg1) and (x,y)
- const double scalarProduct = x * args[0] + y * args[1];
-
- // Finally compute the projection of (arg2,arg3) onto (arg0,arg1)
- double projX = args[0] - 2 * scalarProduct * x;
- double projY = args[1] - 2 * scalarProduct * y;
-
- projX = projX * 20.0 / 23.0; // FIXME: Why is this here?
-
- writeScummVar(108, (int32)projX);
-
- if (args[3] >= 0) // FIXME: Why is this here?
- projY = projY * 5.0 / 6.0;
-
- writeScummVar(109, (int32)projY);
-
- return 1;
-}
-
-void LogicHErace::op_sub1(float arg) {
- // Setup a rotation matrix
- _userDataD[10] = _userDataD[12] = _userDataD[14] = _userDataD[16] = 0;
- _userDataD[13] = 1;
-
- _userDataD[9] = cos(arg * DEG2RAD);
- _userDataD[15] = sin(arg * DEG2RAD);
- _userDataD[11] = -_userDataD[15];
- _userDataD[17] = _userDataD[9];
-}
-
-void LogicHErace::op_sub2(float arg) {
- // Setup a rotation matrix -- but it is NEVER USED!
- _userDataD[20] = _userDataD[21] = _userDataD[24] = _userDataD[25] = 0;
- _userDataD[26] = 1;
-
- _userDataD[19] = sin(arg * DEG2RAD);
- _userDataD[18] = cos(arg * DEG2RAD);
- _userDataD[21] = -_userDataD[19];
- _userDataD[22] = _userDataD[18];
-}
-
-void LogicHErace::op_sub3(float arg) {
- // Setup a rotation matrix -- but it is NEVER USED!
- _userDataD[1] = _userDataD[2] = _userDataD[3] = _userDataD[6] = 0;
- _userDataD[0] = 1;
-
- _userDataD[4] = cos(arg * DEG2RAD);
- _userDataD[5] = sin(arg * DEG2RAD);
- _userDataD[7] = -_userDataD[5];
- _userDataD[8] = _userDataD[4];
-}
-
-/***********************
- * Freddi Fish's One-Stop Fun Shop
- * Pajama Sam's One-Stop Fun Shop
- * Putt-Putt's One-Stop Fun Shop
- *
- */
-
-int LogicHEfunshop::versionID() {
- return 1;
-}
-
-int32 LogicHEfunshop::dispatch(int op, int numArgs, int32 *args) {
- switch (op) {
- case 1004:
- op_1004(args);
- break;
-
- case 1005:
- op_1005(args);
- break;
-
- default:
- break;
- }
-
- return 0;
-}
-
-void LogicHEfunshop::op_1004(int32 *args) {
- double data[8], at, sq;
- int32 x, y;
- int i=0;
-
- for (i = 0; i <= 6; i += 2) {
- data[i] = getFromArray(args[0], 0, 519 + i);
- data[i + 1] = getFromArray(args[0], 0, 519 + i + 1);
- }
- int s = checkShape((int32)data[0], (int32)data[1], (int32)data[4], (int32)data[5],
- (int32)data[2], (int32)data[3], (int32)data[6], (int32)data[7], &x, &y);
-
- if (s != 1) {
- error("LogicHEfunshop::op_1004: Your shape has defied the laws of physics");
- return;
- }
-
- for (i = 0; i <= 6; i += 2) {
- data[i] -= (double)x;
- data[i + 1] -= (double)y;
- }
-
- double a1 = (double)args[1] * DEG2RAD;
-
- for (i = 0; i <= 6; i += 2) {
- at = atan2(data[i + 1], data[i]);
- sq = sqrt(data[i + 1] * data[i + 1] + data[i] * data[i]);
-
- if (at <= 0)
- at += 2 * M_PI;
-
- data[i] = cos(at + a1) * sq;
- data[i + 1] = sin(at + a1) * sq;
- }
-
- double minx = data[0];
- double miny = data[1];
-
- for (i = 0; i <= 6; i += 2) {
- if (data[i] < minx)
- minx = data[i];
- if (data[i + 1] < miny)
- miny = data[i + 1];
- }
-
- for (i = 0; i <= 6; i += 2) {
- data[i] -= minx;
- data[i + 1] -= miny;
-
- putInArray(args[0], 0, 519 + i, scumm_round(data[i]));
- putInArray(args[0], 0, 519 + i + 1, scumm_round(data[i + 1]));
- }
-}
-
-void LogicHEfunshop::op_1005(int32 *args) {
- double data[8];
- double args1, args2;
- int i;
- for (i = 520; i <= 526; i += 2) {
- data[i - 520] = getFromArray(args[0], 0, i - 1);
- data[i - 520 + 1] = getFromArray(args[0], 0, i);
- }
-
- args1 = (double)args[1] * 0.01 + 1;
- args2 = (double)args[2] * 0.01 + 1;
-
- for (i = 0; i < 4; i++) {
- data[2 * i] *= args1;
- data[2 * i + 1] *= args2;
- }
-
- for (i = 520; i <= 526; i += 2) {
- putInArray(args[0], 0, i - 1, scumm_round(data[i - 520]));
- putInArray(args[0], 0, i, scumm_round(data[i - 520 + 1]));
- }
-}
-
-int LogicHEfunshop::checkShape(int32 data0, int32 data1, int32 data4, int32 data5, int32 data2, int32 data3, int32 data6, int32 data7, int32 *x, int32 *y) {
- int32 diff5_1, diff0_4, diff7_3, diff2_6;
- int32 diff1, diff2;
- int32 delta, delta2;
- int32 sum1, sum2;
-
- diff0_4 = data0 - data4;
- diff5_1 = data5 - data1;
- diff1 = data1 * data4 - data0 * data5;
- sum1 = diff0_4 * data3 + diff1 + diff5_1 * data2;
- sum2 = diff0_4 * data7 + diff1 + diff5_1 * data6;
-
- if (sum1 != 0 && sum2 != 0) {
- sum2 ^= sum1;
-
- if (sum2 >= 0)
- return 0;
- }
-
- diff2_6 = data2 - data6;
- diff7_3 = data7 - data3;
- diff2 = data3 * data6 - data2 * data7;
- sum1 = diff2_6 * data1 + diff2 + diff7_3 * data0;
- sum2 = diff2_6 * data5 + diff2 + diff7_3 * data4;
-
- if (sum1 != 0 && sum2 != 0) {
- sum2 ^= sum1;
-
- if (sum2 >= 0)
- return 0;
- }
-
- delta = diff2_6 * diff5_1 - diff0_4 * diff7_3;
-
- if (delta == 0) {
- return 2;
- }
-
- if (delta < 0) {
- data7 = -((delta + 1) >> 1);
- } else {
- data7 = delta >> 1;
- }
-
- delta2 = diff2 * diff0_4 - diff1 * diff2_6;
-
- if (delta2 < 0) {
- delta2 -= data7;
- } else {
- delta2 += data7;
- }
-
- *x = delta2 / delta;
-
- delta2 = diff1 * diff7_3 - diff2 * diff5_1;
-
- if (delta2 < 0) {
- delta2 -= data7;
- } else {
- delta2 += data7;
- }
-
- *y = delta2 / delta;
-
- return 1;
-}
-
-/***********************
- * Backyard Football
- * Backyard Football 2002
- * Backyard Football Demo
- *
- */
-
-int LogicHEfootball::versionID() {
- return 1;
-}
-
-int32 LogicHEfootball::dispatch(int op, int numArgs, int32 *args) {
- int res = 0;
-
- switch (op) {
- case 1004:
- res = op_1004(args);
- break;
-
- case 1006:
- res = op_1006(args);
- break;
-
- case 1007:
- res = op_1007(args);
- break;
-
- case 1010:
- res = op_1010(args);
- break;
-
- case 1022:
- res = op_1022(args);
- break;
-
- case 1023:
- res = op_1023(args);
- break;
-
- case 1024:
- res = op_1024(args);
- break;
-
- case 8221968:
- // Someone had a fun and used his birthday as opcode number
- res = getFromArray(args[0], args[1], args[2]);
- break;
-
- case 1492: case 1493: case 1494: case 1495: case 1496:
- case 1497: case 1498: case 1499: case 1500: case 1501:
- case 1502: case 1503: case 1504: case 1505: case 1506:
- case 1507: case 1508: case 1509: case 1510: case 1511:
- case 1512: case 1513: case 1514: case 1555:
- // DirectPlay-related
- // 1513: initialize
- // 1555: set fake lag
- break;
-
- case 2200: case 2201: case 2202: case 2203: case 2204:
- case 2205: case 2206: case 2207: case 2208: case 2209:
- case 2210: case 2211: case 2212: case 2213: case 2214:
- case 2215: case 2216: case 2217: case 2218: case 2219:
- case 2220: case 2221: case 2222: case 2223: case 2224:
- case 2225: case 2226: case 2227: case 2228:
- // Boneyards-related
- break;
-
- case 3000: case 3001: case 3002: case 3003: case 3004:
- // Internet-related
- // 3000: check for updates
- // 3001: check network status
- // 3002: autoupdate
- // 3003: close connection
- break;
-
- default:
- LogicHE::dispatch(op, numArgs, args);
- warning("Tell sev how to reproduce it (%d)", op);
- }
-
- return res;
-}
-
-int LogicHEfootball::op_1004(int32 *args) {
- // Identical to LogicHEsoccer::op_1004
- double res, a2, a4, a5;
-
- a5 = ((double)args[4] - (double)args[1]) / ((double)args[5] - (double)args[2]);
- a4 = ((double)args[3] - (double)args[0]) / ((double)args[5] - (double)args[2]);
- a2 = (double)args[2] - (double)args[0] * a4 - args[1] * a5;
-
- res = (double)args[6] * a4 + (double)args[7] * a5 + a2;
- writeScummVar(108, (int32)res);
-
- writeScummVar(109, (int32)a2);
- writeScummVar(110, (int32)a5);
- writeScummVar(111, (int32)a4);
-
- return 1;
-}
-
-int LogicHEfootball::op_1006(int32 *args) {
- // This seems to be more or less the inverse of op_1010
- const double a1 = args[1];
- double res;
-
- // 2.9411764e-4 = 1/3400
- // 5.3050399e-2 = 1/18.85 = 20/377
- // 1.1764706e-2 = 1/85 = 40/3400
- // 1.2360656e-1 = 377/3050
- res = (1.0 - a1 * 2.9411764e-4 * 5.3050399e-2) * 1.2360656e-1 * args[0] +
- a1 * 1.1764706e-2 + 46;
-
- // Shortened / optimized version of that formula:
- // res = (377.0 - a1 / 170.0) / 3050.0 * args[0] + a1 / 85.0 + 46;
-
- writeScummVar(108, (int32)res);
-
- // 1.2360656e-1 = 377/3050
- // 1.1588235e-1 = 197/1700 = 394/3400
- res = 640.0 - args[2] * 1.2360656e-1 - a1 * 1.1588235e-1 - 26;
-
- writeScummVar(109, (int32)res);
-
- return 1;
-}
-
-int LogicHEfootball::op_1007(int32 *args) {
- double res, temp;
-
- temp = (double)args[1] * 0.32;
-
- if (temp > 304.0)
- res = -args[2] * 0.142;
- else
- res = args[2] * 0.142;
-
- res += temp;
-
- writeScummVar(108, (int32)res);
-
- res = (1000.0 - args[2]) * 0.48;
-
- writeScummVar(109, (int32)res);
-
- return 1;
-}
-
-int LogicHEfootball::op_1010(int32 *args) {
- // This seems to be more or less the inverse of op_1006
- double a1 = (640.0 - (double)args[1] - 26.0) / 1.1588235e-1;
-
- // 2.9411764e-4 = 1/3400
- // 5.3050399e-2 = 1/18.85 = 20/377
- // 1.1764706e-2 = 1/85 = 40/3400
- // 1.2360656e-1 = 377/3050
- double a0 = ((double)args[0] - 46 - a1 * 1.1764706e-2) /
- ((1.0 - a1 * 2.9411764e-4 * 5.3050399e-2) * 1.2360656e-1);
-
- writeScummVar(108, (int32)a0);
- writeScummVar(109, (int32)a1);
-
- return 1;
-}
-
-int LogicHEfootball::op_1022(int32 *args) {
- double res;
- double var10 = args[4] - args[1];
- double var8 = args[5] - args[2];
- double var6 = args[3] - args[0];
-
- res = sqrt(var8 * var8 + var6 * var6 + var10 * var10);
-
- if (res >= (double)args[6]) {
- var8 = (double)args[6] * var8 / res;
- var10 = (double)args[6] * var10 / res;
- res = (double)args[6] * var6 / res;
- }
-
- writeScummVar(108, (int32)res);
- writeScummVar(109, (int32)var10);
- writeScummVar(110, (int32)var8);
-
- return 1;
-}
-
-int LogicHEfootball::op_1023(int32 *args) {
- double var10, var18, var20, var28, var30, var30_;
- double argf[7];
-
- for (int i = 0; i < 7; i++)
- argf[i] = args[i];
-
- var10 = (argf[3] - argf[1]) / (argf[2] - argf[0]);
- var28 = var10 * var10 + 1;
- var20 = argf[0] * var10;
- var18 = (argf[5] + argf[1] + var20) * argf[4] * var10 * 2 +
- argf[6] * argf[6] * var28 + argf[4] * argf[4] -
- argf[0] * argf[0] * var10 * var10 -
- argf[5] * argf[0] * var10 * 2 -
- argf[5] * argf[1] * 2 -
- argf[1] * argf[1] - argf[5] * argf[5];
-
- if (var18 >= 0) {
- var18 = sqrt(var18);
-
- var30_ = argf[4] + argf[5] * var10 + argf[1] * var10 + argf[0] * var10 * var10;
- var30 = (var30_ - var18) / var28;
- var18 = (var30_ + var18) / var28;
-
- if ((argf[0] - var30 < 0) && (argf[0] - var18 < 0)) {
- var30_ = var30;
- var30 = var18;
- var18 = var30_;
- }
- var28 = var18 * var10 - var20 - argf[1];
- var20 = var30 * var10 - var20 - argf[1];
- } else {
- var18 = 0;
- var20 = 0;
- var28 = 0;
- var30 = 0;
- }
-
- writeScummVar(108, (int32)var18);
- writeScummVar(109, (int32)var28);
- writeScummVar(110, (int32)var30);
- writeScummVar(111, (int32)var20);
-
- return 1;
-}
-int LogicHEfootball::op_1024(int32 *args) {
- writeScummVar(108, 0);
- writeScummVar(109, 0);
- writeScummVar(110, 0);
- writeScummVar(111, 0);
-
- return 1;
-}
-
-
-/***********************
- * Backyard Soccer
- *
- */
-
-int LogicHEsoccer::versionID() {
- return 1;
-}
-
-LogicHEsoccer::LogicHEsoccer(ScummEngine_v90he *vm) : LogicHE(vm) {
- _userDataD = (double *)calloc(1732, sizeof(double));
- _intArray1 = 0;
- _intArray2 = 0;
- _intArraysAllocated = false;
- _array1013 = 0;
- _array1013Allocated = false;
-}
-
-LogicHEsoccer::~LogicHEsoccer() {
- free(_userDataD);
- op_1020(); // clear int arrays
- delete[] _array1013;
-}
-
-int32 LogicHEsoccer::dispatch(int op, int numArgs, int32 *args) {
- int res = 0;
-
- switch (op) {
- case 1001:
- res = op_1001(args);
- break;
-
- case 1002:
- res = op_1002(args);
- break;
-
- case 1004:
- res = op_1004(args);
- break;
-
- case 1006:
- res = op_1006(args[0], args[1], args[2], args[3]);
- break;
-
- case 1011:
- // args[4] is ignored!
- // soccer passes the argument, but then ends up not using it
- // Makes sense that they removed it for soccermls
- res = op_1011(args[0], args[1], args[2], args[3], args[5]);
- break;
-
- case 1012:
- res = op_1012(args);
- break;
-
- case 1013:
- res = op_1013(args[0], args[1], args[2]);
- break;
-
- case 1019:
- res = op_1019(args);
- break;
-
- case 1020:
- res = op_1020();
- break;
-
- case 1021:
- res = op_1021(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);
- break;
-
- case 8221968:
- // Someone had a fun and used his birthday as opcode number
- res = getFromArray(args[0], args[1], args[2]);
- break;
-
- default:
- // original range is 1001 - 1021
- LogicHE::dispatch(op, numArgs, args);
- }
-
- return res;
-}
-
-void LogicHEsoccer::beforeBootScript() {
- if (_intArraysAllocated)
- op_1020();
-
- _userDataD[530] = 0;
-}
-
-void LogicHEsoccer::initOnce() {
- // The original sets some paths here that we don't need to worry about
- _array1013Allocated = false;
- _userDataD[530] = 0;
-}
-
-int LogicHEsoccer::startOfFrame() {
- // This variable is some sort of flag that activates this mode
- int res = (int)_userDataD[530];
-
- // _userDataD[535] is not used!
- // soccer passes the argument, but then ends up not using it
- // Makes sense that they removed it for soccermls
- if (res)
- res = op_1011((int)_userDataD[531], (int)_userDataD[532], (int)_userDataD[533], (int)_userDataD[534], (int)_userDataD[536]);
-
- return res;
-}
-
-int LogicHEsoccer::op_1001(int32 *args) {
- return (int)(args[0] * sin((float)args[1]));
-}
-
-int LogicHEsoccer::op_1002(int32 *args) {
- return _vm->VAR(2) * args[0];
-}
-
-int LogicHEsoccer::op_1003(int32 *args) {
- double data[6], out[3];
- int i;
-
- for (i = 0; i < 6; i++) {
- data[i] = getFromArray(args[0], 0, i);
- }
-
- out[0] = data[1] * data[5] - data[4] * data[2];
- out[1] = data[5] * data[0] - data[3] * data[2];
- out[2] = data[4] * data[0] - data[3] * data[1];
-
- for (i = 0; i < 3; i++) {
- putInArray(args[0], 0, i, scumm_round(out[i]));
- }
-
- return 1;
-}
-
-int LogicHEsoccer::op_1004(int32 *args) {
- // Identical to LogicHEfootball::op_1004
- double res, a2, a4, a5;
-
- a5 = ((double)args[4] - (double)args[1]) / ((double)args[5] - (double)args[2]);
- a4 = ((double)args[3] - (double)args[0]) / ((double)args[5] - (double)args[2]);
- a2 = (double)args[2] - (double)args[0] * a4 - args[1] * a5;
-
- res = (double)args[6] * a4 + (double)args[7] * a5 + a2;
- writeScummVar(108, (int32)res);
-
- writeScummVar(109, (int32)a2);
- writeScummVar(110, (int32)a5);
- writeScummVar(111, (int32)a4);
-
- return 1;
-}
-
-int LogicHEsoccer::op_1006(int32 a1, int32 a2, int32 a3, int32 a4) {
- double v1 = a1 * 0.01;
- double v2 = a2 * 0.01;
- double v3 = a3 * 0.01;
- double var108, var109;
-
- _userDataD[529] = a4;
-
- var108 = atan2(v1, v3) * _userDataD[523] - a4;
- var109 = _userDataD[526] - _userDataD[528] + (_userDataD[521] - atan2(_userDataD[524] - v2, v3)) * _userDataD[522];
-
- writeScummVar(108, (int32)var108);
- writeScummVar(109, (int32)var109);
-
- return 1;
-}
-
-int LogicHEsoccer::op_1007(int32 *args) {
- // Used when the HE logo is shown
- // This initializes the _userDataD fields that are used in op_1006/op_1011
-
- _intArraysAllocated = false;
- double v14 = (double)args[0] * 0.01;
- double v13 = (double)args[2] * 0.01;
- _userDataD[524] = v14;
- double v12 = atan2(v13, v14);
- _userDataD[520] = v12;
- double v15 = atan2(v13 - (double)args[4] * 0.01, (double)args[3] * 0.01);
- double v19 = v15 * 2.0;
- double v17 = atan2(v13 - (double)args[4] * 0.01, v14);
- _userDataD[519] = v19;
- _userDataD[521] = v17;
- _userDataD[525] = (v17 - v12) * 2.0;
- _userDataD[527] = (double)args[5];
- _userDataD[526] = (double)args[6];
- _userDataD[528] = (double)args[7];
- _userDataD[522] = _userDataD[526] / _userDataD[525];
- _userDataD[523] = _userDataD[527] / _userDataD[519];
- _userDataD[518] = v13;
-
- // Clear both byte arrays
- memset(_byteArray1, 0, 4096);
- memset(_byteArray2, 0, 585);
-
- if (_array1013Allocated == 0 )
- op_1013(4, args[8], args[9]);
-
- return 1;
-}
-
-// Returns the square root of the sum of the squares of the arguments
-static inline double sqrtSquare(double a1, double a2, double a3) {
- return sqrt(a1 * a1 + a2 * a2 + a3 * a3);
-}
-
-int LogicHEsoccer::op_1008(int32 *args) {
- // TODO: Used during a match (kicking?)
-
- return 1;
-}
-
-int LogicHEsoccer::op_1011(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5) {
- // This is called on each frame by startOfFrame() if activated by op_1012.
- // This seems to do player placement!
-
- float v28 = 0.0;
-
- for (int i = 0; i < 18; i++) {
- // These seem to be some sort of percent? of angles?
- int v32 = getFromArray(a1, i, 0);
- int v6 = getFromArray(a1, i, 1);
- int v30 = getFromArray(a1, i, 2);
-
- float v29 = (double)v32 / 100.0;
- v28 = (double)v6 / 100.0;
- float v31 = (double)v30 / 100.0;
-
- if (i < 13) {
- int v25 = ((v32 + 2760) / 500 >= 0) ? ((v32 + 2750) / 500) : 0;
- int v24 = 10;
-
- if (v25 <= 10) {
- int v23 = 0;
- if ((v32 + 2750) / 500 >= 0)
- v23 = (v32 + 2750) / 500;
-
- v24 = v23;
- }
-
- int v22 = 0;
- if ((9219 - v30) / 500 >= 0)
- v22 = (9219 - v30) / 500;
-
- int v21 = 6;
- if (v22 <= 6) {
- int v20 = 0;
- if ((9219 - v30) / 500 >= 0)
- v20 = (9219 - v30) / 500;
- v21 = v20;
- }
-
- if (a5)
- putInArray(a5, 0, i, v24 + 11 * v21);
- }
-
- float v7 = atan2(_userDataD[524] - v28, (double)v31);
- int v8 = (int)(_userDataD[526] - (_userDataD[521] - v7) * _userDataD[522] + 300.0);
-
- double v9 = atan2(_userDataD[523], (double)v31);
- // x/y position?
- putInArray(a2, i, 0, (int32)(v29 * v9 + 640.0));
- putInArray(a2, i, 1, v8);
-
- double v10 = atan2(_userDataD[524], (double)v31);
- int v12 = (int)(_userDataD[526] - (_userDataD[521] - (float)v10) * _userDataD[522] + 300.0);
- double v13 = _userDataD[523];
-
- v29 = atan2(v29, v31);
- // x/y position?
- putInArray(a2, i + 22, 0, (int32)(v29 * v13 + 640.0));
- putInArray(a2, i + 22, 1, v12);
- }
-
- // soccer only uses one array here
- // soccermls/soccer2004 use four
- int start = (_vm->_game.id == GID_SOCCER) ? 19 : 18;
- int end = (_vm->_game.id == GID_SOCCER) ? 19 : 21;
-
- for (int i = start; i <= end; i++) {
- int v14 = getFromArray(a2, i, 0);
- int v15 = getFromArray(a2, i, 1);
-
- // This retains v28 from (i == 17)?
- float v16 = _userDataD[524] - v28;
- float v17 = v16 / tan((_userDataD[528] + v15 - _userDataD[526]) / (_userDataD[522] + _userDataD[521]));
- double v18 = tan((double)(v14 - 640) / _userDataD[523]) * v17;
- putInArray(a1, i, 0, (int)(v18 * 100.0));
- putInArray(a1, i, 2, (int)(v17 * 100.0));
- }
-
- op_1011_sub(a1, a3, a4, a4);
-
- return 1;
-}
-
-static inline int distance(int a1, int a2, int a3, int a4) {
- return (int)sqrt((double)((a4 - a3) * (a4 - a3) + (a2 - a1) * (a2 - a1)));
-}
-
-void LogicHEsoccer::op_1011_sub(int32 a1, int32 a2, int32 a3, int32 a4) {
- // As you can guess, this is called from op_1011
- // This seems to be checking distances between the players and the ball
- // and which distance is the shortest.
-
- int v6[13];
- int v7[13];
- int v8[13];
- int v18[195];
-
- for (int i = 0; i < 13; i++) {
- v6[i] = 0;
- v7[i] = getFromArray(a1, i, 0);
- v8[i] = getFromArray(a1, i, 2);
- }
-
- // 12 here, 13 up there
- // Probably 12 for players, 13 for players+ball
- for (int i = 0; i < 12; i++) {
- int v22 = a4;
- for (int j = i + 1; j < 13; j++) {
- v18[i * 15 + j] = distance(v7[i], v7[j], v8[i], v8[j]);
- putInArray(a2, i, j, v18[i * 15 + j]);
- putInArray(a2, j, i, v18[i * 15 + j]);
- if (v18[i * 15 + j] < v22) {
- v22 = v18[i * 15 + j];
- v6[i] = j + 1;
- v6[j] = i + 1;
- }
- }
- }
-
- int v13 = getFromArray(a1, 18, 0);
- int v14 = getFromArray(a1, 18, 2);
- int v15 = getFromArray(a1, 19, 0);
- int v16 = getFromArray(a1, 19, 2);
- int v19[15];
- int v20[15];
-
- if (_vm->_game.id == GID_SOCCER) {
- // soccer gets to be different
- for (int i = 0; i < 13; i++)
- v20[i] = distance(v13, v7[i], v14, v8[i]);
-
- for (int i = 0; i < 13; i++)
- v19[i] = distance(v15, v7[i], v16, v8[i]);
- } else {
- // soccermls and soccer2004 use two other arrays here
- int v9 = getFromArray(a1, 20, 0);
- int v10 = getFromArray(a1, 20, 2);
- int v11 = getFromArray(a1, 21, 0);
- int v12 = getFromArray(a1, 21, 2);
-
- for (int i = 0; i < 6; i++) {
- v20[i] = distance(v9, v7[i], v10, v8[i]);
- v19[i] = distance(v13, v7[i], v14, v8[i]);
- }
-
- for (int i = 6; i < 13; i++) {
- v20[i] = distance(v11, v7[i], v12, v8[i]);
- v19[i] = distance(v15, v7[i], v16, v8[i]);
- }
- }
-
- for (int i = 0; i < 13; i++) {
- putInArray(a2, 14, i, v20[i]);
- putInArray(a2, i, 14, v20[i]);
- putInArray(a2, 13, i, v19[i]);
- putInArray(a2, i, 13, v19[i]);
- putInArray(a3, 0, i, v6[i]);
- }
-}
-
-int LogicHEsoccer::op_1012(int32 *args) {
- // Used after op_1019
- // This function activates startOfFrame() to call op_1011
- // (Possibly field parameters?)
-
- _userDataD[530] = (args[0] != 0) ? 1 : 0;
- _userDataD[531] = args[1];
- _userDataD[532] = args[2];
- _userDataD[533] = args[3];
- _userDataD[534] = args[4];
- _userDataD[535] = args[5]; // unused!!!
- _userDataD[536] = args[6];
-
- return 1;
-}
-
-// Some strange power operation, ignores negative exponents
-static inline double u32Pow(float a1, int a2) {
- if (a2 < 0)
- return 0.0;
+LogicHE *LogicHE::makeLogicHE(ScummEngine_v90he *vm) {
+ switch (vm->_game.id) {
+ case GID_PUTTRACE:
+ return makeLogicHErace(vm);
- float v4 = 1.0;
+ case GID_FUNSHOP:
+ return makeLogicHEfunshop(vm);
- for (int i = 1; i <= a2; i++)
- v4 *= a1;
+ case GID_FOOTBALL:
+ return makeLogicHEfootball(vm);
- return v4;
-}
+ case GID_SOCCER:
+ case GID_SOCCERMLS:
+ case GID_SOCCER2004:
+ return makeLogicHEsoccer(vm);
-int LogicHEsoccer::op_sub5(int a1, int a2, int a3) {
- byte *v9 = _array1013 + 44 * a2;
+ case GID_BASEBALL2001:
+ return makeLogicHEbaseball2001(vm);
- *((uint32 *)v9 + 4) = a3;
- *((uint32 *)v9) = a2;
+ case GID_BASKETBALL:
+ return makeLogicHEbasketball(vm);
- if (a1 > 2) {
- // Casual observation: 585 is also the size of _byteArray2
- *((uint32 *)v9 + 40) = 8 * a2 - 585;
- for (int i = 0; i < 8; i++)
- *((uint32 *)v9 + 4 * i + 8) = 0xffffffff;
- } else {
- for (int i = 0; i < 8; i++)
- *((uint32 *)v9 + 4 * i + 8) = op_sub5(a1 + 1, i + 8 * a2 + 1, a2);
- }
-
- return a2;
-}
-
-int LogicHEsoccer::op_1013(int32 a1, int32 a2, int32 a3) {
- // Creates _array1013 for *some* purpose
- // _array1013Temp is used again op_1014 for some reason...
- // Seems to be used in op_1015
-
- int v4 = (int)((1.0 - u32Pow(8.0, 4)) / -7.0);
-
- _array1013 = new byte[v4 * 44];
- memset(_array1013, 0, v4 * 44);
- _array1013Allocated = true;
- memset(_array1013Temp, 0, 44);
-
- for (int i = 0; i < 8; i++)
- _array1013Temp[i + 2] = op_sub5(1, i + 1, 0);
-
- // Yes, this is not endian-safe, but should not matter since we're
- // not saving/loading the data anywhere
- memcpy(_array1013, _array1013Temp, 44);
-
- return 1;
-}
-
-int LogicHEsoccer::op_1014(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7, int32 a8, int32 a9, int32 a10, int32 a11, int32 a12, int32 a13, int32 a14) {
- // TODO: Used many times during a match
- // And called from op_1008!
-
- return 1;
-}
-
-int LogicHEsoccer::op_1019(int32 *args) {
- // Used at the beginning of a match
- // Initializes some arrays. Player positions?
-
- // These two arrays are used in op_1014 and op_1015
- for (int i = 0; i < 4096; i++)
- _byteArray1[i] = getFromArray(args[1], 0, i);
-
- for (int i = 0; i < 585; i++)
- _byteArray2[i] = getFromArray(args[0], 0, i);
-
- // Deallocate the two integer arrays
- if (_intArraysAllocated)
- op_1020();
-
- // Reallocate them
- _intArray1 = new uint32[1008];
- _intArray2 = new uint32[168];
- _intArraysAllocated = true;
-
- memset(_intArray1, 0, 4 * 4);
- memset(_intArray2, 0, 24 * 4);
-
- // These two arrays are used in op_1015
- for (int i = 0; i < 42; i++) {
- for (int j = 0; j < 24; j++)
- _intArray1[j + 24 * i] = getFromArray(args[3], 0, j + 24 * i);
-
- for (int j = 0; j < 4; j++)
- _intArray2[j + 4 * i] = getFromArray(args[2], 0, j + 4 * i);
- }
-
- return 1;
-}
-
-int LogicHEsoccer::op_1020() {
- // Deallocate integer arrays
- // The arrays can be allocated in op_1015 or op_1019
-
- delete[] _intArray1; _intArray1 = 0;
- delete[] _intArray2; _intArray2 = 0;
- _intArraysAllocated = false;
-
- return 1;
-}
-
-int LogicHEsoccer::op_1021(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7) {
- // Used during a match (ball movement?)
- // Also called from op_1008
-
- int v10;
- if (a4 && a5)
- v10 = (int)(((double)a2 - (double)a5 * (double)a1 / (double)a4) * -1.0 * (double)a4 / (double)a5);
- else
- v10 = a1;
-
- int v9;
- if (a6 && a5)
- v9 = (int)(((double)a2 - (double)a5 * (double)a3 / (double)a6) * -1.0 * (double)a6 / (double)a5);
- else
- v9 = a3;
-
- // The final argument chooses whether to store the results for op_1008 or
- // store them in SCUMM variables.
- if (a7) {
- _var1021[0] = v10;
- _var1021[1] = v9;
- } else {
- writeScummVar(108, v10);
- writeScummVar(109, v9);
- }
-
- return 1;
-}
-
-/***********************
- * Backyard Baseball 2001
- *
- */
-
-int LogicHEbaseball2001::versionID() {
- return 1;
-}
-
-int32 LogicHEbaseball2001::dispatch(int op, int numArgs, int32 *args) {
- int res = 0;
-
- switch (op) {
- case 3001:
- // Check network status
- break;
-
- default:
- LogicHE::dispatch(op, numArgs, args);
- }
-
- return res;
-}
-
-/***********************
- * Backyard Basketball
- *
- */
-
-int LogicHEbasketball::versionID() {
- return 1;
-}
-
-int32 LogicHEbasketball::dispatch(int op, int numArgs, int32 *args) {
- int res = 0;
-
- switch (op) {
- case 1001:
- break;
-
- case 1006:
- break;
-
- case 1011:
- break;
-
- case 1012:
- break;
-
- case 1035:
- break;
-
- case 1050:
- break;
-
- case 1051:
- break;
-
- case 1052:
- break;
-
- case 1056:
- break;
-
- case 1057:
- break;
-
- case 1058:
- break;
-
- case 1060:
- break;
-
- case 1064:
- break;
-
- case 1067:
- break;
-
- case 1073:
- break;
-
- case 1075:
- break;
-
- case 1076:
- break;
-
- case 1080:
- break;
-
- case 1081:
- break;
-
- case 1090:
- break;
-
- case 1091:
- break;
-
- case 1513:
- break;
+ case GID_MOONBASE:
+ return makeLogicHEmoonbase(vm);
default:
- LogicHE::dispatch(op, numArgs, args);
+ return new LogicHE(vm);
}
-
- return res;
-}
-
-/***********************
- * Moonbase Commander
- *
- */
-
-int LogicHEmoonbase::versionID() {
- if (_vm->_game.features & GF_DEMO)
- return -100;
- else
- return 100;
}
} // End of namespace Scumm
diff --git a/engines/scumm/he/logic_he.h b/engines/scumm/he/logic_he.h
index e05a05f310..893dc81b87 100644
--- a/engines/scumm/he/logic_he.h
+++ b/engines/scumm/he/logic_he.h
@@ -29,15 +29,10 @@ class ScummEngine_v90he;
class LogicHE {
public:
- ScummEngine_v90he *_vm;
+ static LogicHE *makeLogicHE(ScummEngine_v90he *vm);
- LogicHE(ScummEngine_v90he *vm);
virtual ~LogicHE();
- void writeScummVar(int var, int32 value);
- int getFromArray(int arg0, int idx2, int idx1);
- void putInArray(int arg0, int idx2, int idx1, int val);
-
virtual void beforeBootScript() {}
virtual void initOnce() {}
virtual int startOfFrame() { return 1; }
@@ -46,142 +41,30 @@ public:
virtual int versionID();
virtual int32 dispatch(int op, int numArgs, int32 *args);
-};
-class LogicHErace : public LogicHE {
-private:
- float *_userData;
- double *_userDataD;
-public:
- LogicHErace(ScummEngine_v90he *vm);
- ~LogicHErace();
-
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
-
-private:
- int32 op_1003(int32 *args);
- int32 op_1004(int32 *args);
- int32 op_1100(int32 *args);
- int32 op_1101(int32 *args);
- int32 op_1102(int32 *args);
- int32 op_1103(int32 *args);
- int32 op_1110();
- int32 op_1120(int32 *args);
- int32 op_1130(int32 *args);
- int32 op_1140(int32 *args);
-
- void op_sub1(float arg);
- void op_sub2(float arg);
- void op_sub3(float arg);
-};
-
-class LogicHEfunshop : public LogicHE {
-public:
- LogicHEfunshop(ScummEngine_v90he *vm) : LogicHE(vm) {}
-
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
-
-private:
- void op_1004(int32 *args);
- void op_1005(int32 *args);
- int checkShape(int32 data0, int32 data1, int32 data4, int32 data5, int32 data2, int32 data3, int32 data6, int32 data7, int32 *x, int32 *y);
-};
-
-class LogicHEfootball : public LogicHE {
-public:
- LogicHEfootball(ScummEngine_v90he *vm) : LogicHE(vm) {}
-
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
-
-private:
- int op_1004(int32 *args);
- int op_1006(int32 *args);
- int op_1007(int32 *args);
- int op_1010(int32 *args);
- int op_1022(int32 *args);
- int op_1023(int32 *args);
- int op_1024(int32 *args);
-};
-
-class LogicHEsoccer : public LogicHE {
-private:
- double *_userDataD;
-
-public:
- LogicHEsoccer(ScummEngine_v90he *vm);
- ~LogicHEsoccer();
-
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
-
- void beforeBootScript();
- void initOnce();
- int startOfFrame();
-
-private:
- int op_1001(int32 *args);
- int op_1002(int32 *args);
- int op_1003(int32 *args);
- int op_1004(int32 *args);
- int op_1006(int32 a1, int32 a2, int32 a3, int32 a4);
- int op_1007(int32 *args);
- int op_1008(int32 *args);
- int op_1011(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5);
- int op_1012(int32 *args);
- int op_1013(int32 a1, int32 a2, int32 a3);
- int op_1014(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7, int32 a8, int32 a9, int32 a10, int32 a11, int32 a12, int32 a13, int32 a14);
- int op_1019(int32 *args);
- int op_1020();
- int op_1021(int32 a1, int32 a2, int32 a3, int32 a4, int32 a5, int32 a6, int32 a7);
-
- // Two integer arrays are used between some functions
- // Originally, these pointers were in _userData, but we keep them separate
- // Also, doing it that would break things on non 32-bit systems...
- bool _intArraysAllocated;
- uint32 *_intArray1, *_intArray2;
-
- // op_1007 allocates some arrays
- // they're then filled by op_1019
- byte _byteArray1[4096], _byteArray2[585];
-
- // op_1011 has a subfunction
- void op_1011_sub(int32 a1, int32 a2, int32 a3, int32 a4);
-
- // op_1013 creates some array, purpose unknown
- bool _array1013Allocated;
- byte *_array1013;
- uint32 _array1013Temp[11];
- int op_sub5(int a1, int a2, int a3);
-
- // op_1021 can (optionally) set two variables for use in op_1008
- uint32 _var1021[2];
-};
-
-class LogicHEbaseball2001 : public LogicHE {
-public:
- LogicHEbaseball2001(ScummEngine_v90he *vm) : LogicHE(vm) {}
+protected:
+ // Only to be used from makeLogicHE()
+ LogicHE(ScummEngine_v90he *vm);
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
-};
+ ScummEngine_v90he *_vm;
-class LogicHEbasketball : public LogicHE {
-public:
- LogicHEbasketball(ScummEngine_v90he *vm) : LogicHE(vm) {}
+ void writeScummVar(int var, int32 value);
+ int getFromArray(int arg0, int idx2, int idx1);
+ void putInArray(int arg0, int idx2, int idx1, int val);
+ int32 scummRound(double arg) { return (int32)(arg + 0.5); }
- int versionID();
- int32 dispatch(int op, int numArgs, int32 *args);
+ #define RAD2DEG (180 / M_PI)
+ #define DEG2RAD (M_PI / 180)
};
-class LogicHEmoonbase : public LogicHE {
-public:
- LogicHEmoonbase(ScummEngine_v90he *vm) : LogicHE(vm) {}
-
- int versionID();
-};
+// Logic declarations
+LogicHE *makeLogicHErace(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEfunshop(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEfootball(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEsoccer(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEbaseball2001(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEbasketball(ScummEngine_v90he *vm);
+LogicHE *makeLogicHEmoonbase(ScummEngine_v90he *vm);
} // End of namespace Scumm
diff --git a/engines/scumm/he/script_v100he.cpp b/engines/scumm/he/script_v100he.cpp
index e057ab524a..56ea10f507 100644
--- a/engines/scumm/he/script_v100he.cpp
+++ b/engines/scumm/he/script_v100he.cpp
@@ -542,7 +542,7 @@ void ScummEngine_v100he::o100_arrayOps() {
int dim1end, dim1start, dim2end, dim2start;
int id, len, b, c, list[128];
int offs, tmp, tmp2;
- uint tmp3;
+ uint tmp3, type;
byte subOp = fetchScriptByte();
int array = fetchScriptWord();
@@ -625,11 +625,10 @@ void ScummEngine_v100he::o100_arrayOps() {
}
break;
case 132:
- debug(0, "o100_arrayOps: case 132");
- // TODO: Used by Moonbase Commander
+ // TODO: Used by room 2 script 2180 in Moonbase Commander
fetchScriptWord();
fetchScriptWord();
- pop();
+ type = pop();
pop();
pop();
pop();
@@ -646,6 +645,21 @@ void ScummEngine_v100he::o100_arrayOps() {
if (id == 0) {
defineArray(array, kDwordArray, dim2start, dim2end, dim1start, dim1end);
}
+ switch (type) {
+ case 1:
+ break;
+ case 2:
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
+ case 5:
+ break;
+ default:
+ error("o100_arrayOps: case 132 unknown type %d)", type);
+ }
+ debug(0, "o100_arrayOps: case 132 type %d", type);
break;
case 133:
b = pop();
@@ -2933,7 +2947,7 @@ void ScummEngine_v100he::o100_getVideoData() {
break;
case 73:
pop();
- push(_moviePlay->endOfVideo() ? -1 : (_moviePlay->getCurFrame() + 1));
+ push(_moviePlay->getCurFrame());
break;
case 84:
pop();
diff --git a/engines/scumm/he/script_v60he.cpp b/engines/scumm/he/script_v60he.cpp
index cf7d9fbd2f..dbeee567bf 100644
--- a/engines/scumm/he/script_v60he.cpp
+++ b/engines/scumm/he/script_v60he.cpp
@@ -94,6 +94,12 @@ int ScummEngine_v60he::convertFilePath(byte *dst, int dstSize) {
debug(1, "convertFilePath: original filePath is %s", dst);
int len = resStrLen(dst);
+
+ // Switch all \ to / for portablity
+ for (int i = 0; i < len; i++)
+ if (dst[i] == '\\')
+ dst[i] = '/';
+
if (_game.platform == Common::kPlatformMacintosh) {
// Remove : prefix in HE71 games
if (dst[0] == ':') {
@@ -107,12 +113,6 @@ int ScummEngine_v60he::convertFilePath(byte *dst, int dstSize) {
if (dst[i] == ':')
dst[i] = '/';
}
- } else {
- // Switch all \ to / for portablity
- for (int i = 0; i < len; i++) {
- if (dst[i] == '\\')
- dst[i] = '/';
- }
}
// Strip path
diff --git a/engines/scumm/he/script_v72he.cpp b/engines/scumm/he/script_v72he.cpp
index 5af4035930..b9f454de0f 100644
--- a/engines/scumm/he/script_v72he.cpp
+++ b/engines/scumm/he/script_v72he.cpp
@@ -1827,10 +1827,19 @@ void ScummEngine_v72he::o72_readINI() {
switch (subOp) {
case 43: // HE 100
case 6: // number
- if (!strcmp((char *)option, "NoPrinting")) {
+ if (!strcmp((char *)option, "DisablePrinting") || !strcmp((char *)option, "NoPrinting")) {
push(1);
} else if (!strcmp((char *)option, "TextOn")) {
push(ConfMan.getBool("subtitles"));
+ } else if (!strcmp((char *)option, "Disk") && (_game.id == GID_BIRTHDAYRED || _game.id == GID_BIRTHDAYYELLOW)) {
+ // WORKAROUND: Override the disk detection
+ // This removes the reliance on having the binary file around (which is
+ // very bad for the Mac version) just for the scripts to figure out if
+ // we're running Yellow or Red
+ if (_game.id == GID_BIRTHDAYRED)
+ push(4);
+ else
+ push(2);
} else {
push(ConfMan.getInt((char *)option));
}
diff --git a/engines/scumm/he/script_v80he.cpp b/engines/scumm/he/script_v80he.cpp
index 7970d7806f..9711f6415b 100644
--- a/engines/scumm/he/script_v80he.cpp
+++ b/engines/scumm/he/script_v80he.cpp
@@ -171,7 +171,10 @@ void ScummEngine_v80he::o80_readConfigFile() {
case 6: // number
ConfFile.getKey((const char *)option, (const char *)section, entry);
- push(atoi(entry.c_str()));
+ if (!strcmp((char *)option, "Benchmark"))
+ push(2);
+ else
+ push(atoi(entry.c_str()));
break;
case 77: // HE 100
case 7: // string
diff --git a/engines/scumm/he/script_v90he.cpp b/engines/scumm/he/script_v90he.cpp
index 6b632d8ff2..66a0a34d16 100644
--- a/engines/scumm/he/script_v90he.cpp
+++ b/engines/scumm/he/script_v90he.cpp
@@ -1460,7 +1460,7 @@ void ScummEngine_v90he::o90_getVideoData() {
break;
case 52: // Get current frame
pop();
- push(_moviePlay->endOfVideo() ? -1 : (_moviePlay->getCurFrame() + 1));
+ push(_moviePlay->getCurFrame());
break;
case 63: // Get image number
pop();
diff --git a/engines/scumm/he/sprite_he.cpp b/engines/scumm/he/sprite_he.cpp
index 0b37673e4a..081110c7cd 100644
--- a/engines/scumm/he/sprite_he.cpp
+++ b/engines/scumm/he/sprite_he.cpp
@@ -804,12 +804,18 @@ void Sprite::setSpriteImage(int spriteId, int imageNum) {
if (_spriteTable[spriteId].image) {
_spriteTable[spriteId].imageStateCount = _vm->_wiz->getWizImageStates(_spriteTable[spriteId].image);
- _spriteTable[spriteId].flags |= kSFActive | kSFAutoAnim | kSFMarkDirty | kSFBlitDirectly;
+
+ if (_vm->VAR(139))
+ _spriteTable[spriteId].flags |= kSFActive;
+ else
+ _spriteTable[spriteId].flags |= kSFActive | kSFAutoAnim | kSFMarkDirty | kSFBlitDirectly;
if (_spriteTable[spriteId].image != origResId || _spriteTable[spriteId].imageStateCount != origResWizStates)
_spriteTable[spriteId].flags |= kSFChanged | kSFNeedRedraw;
} else {
- if (_spriteTable[spriteId].flags & kSFImageless)
+ if (_vm->VAR(139))
+ _spriteTable[spriteId].flags &= ~kSFActive;
+ else if (_spriteTable[spriteId].flags & kSFImageless)
_spriteTable[spriteId].flags = 0;
else
_spriteTable[spriteId].flags = kSFChanged | kSFBlitDirectly;
diff --git a/engines/scumm/he/sprite_he.h b/engines/scumm/he/sprite_he.h
index d28c9f1944..be6717faa5 100644
--- a/engines/scumm/he/sprite_he.h
+++ b/engines/scumm/he/sprite_he.h
@@ -218,4 +218,3 @@ private:
} // End of namespace Scumm
#endif
-
diff --git a/engines/scumm/he/wiz_he.cpp b/engines/scumm/he/wiz_he.cpp
index 4107034fe6..f67922c81c 100644
--- a/engines/scumm/he/wiz_he.cpp
+++ b/engines/scumm/he/wiz_he.cpp
@@ -1755,7 +1755,7 @@ void Wiz::captureWizPolygon(int resNum, int maskNum, int maskState, int id1, int
uint8 *tmpPtr = imageBuffer;
for (i = 0; i < dsth; i++) {
for (j = 0; j < dstw; j++)
- WRITE_UINT16(tmpPtr + j * 2, transColor);
+ WRITE_LE_UINT16(tmpPtr + j * 2, transColor);
tmpPtr += dstpitch;
}
} else {
diff --git a/engines/scumm/help.cpp b/engines/scumm/help.cpp
index ae7a1ad3bc..cfb23a392a 100644
--- a/engines/scumm/help.cpp
+++ b/engines/scumm/help.cpp
@@ -175,6 +175,7 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
ADD_BIND("b", _("To Henry / To Indy"));
break;
case GID_LOOM:
+ // I18N: These are different musical notes
ADD_BIND("q, c", _("play C minor on distaff"));
ADD_BIND("w, d", _("play D on distaff"));
ADD_BIND("e, e", _("play E on distaff"));
@@ -238,6 +239,7 @@ void ScummHelp::updateStrings(byte gameId, byte version, Common::Platform platfo
ADD_BIND("e", _("Examine"));
ADD_BIND("t", _("Regular cursor"));
ADD_BIND("i", _("Inventory"));
+ // I18N: Comm is a communication device
ADD_BIND("c", _("Comm"));
break;
case GID_CMI:
diff --git a/engines/scumm/help.h b/engines/scumm/help.h
index 9763da8c00..5ba6bdc65c 100644
--- a/engines/scumm/help.h
+++ b/engines/scumm/help.h
@@ -42,4 +42,3 @@ public:
} // End of namespace Scumm
#endif
-
diff --git a/engines/scumm/imuse/imuse.cpp b/engines/scumm/imuse/imuse.cpp
index 317ef36cb9..27a72c2afe 100644
--- a/engines/scumm/imuse/imuse.cpp
+++ b/engines/scumm/imuse/imuse.cpp
@@ -44,30 +44,31 @@ namespace Scumm {
////////////////////////////////////////
IMuseInternal::IMuseInternal() :
-_native_mt32(false),
-_enable_gs(false),
-_sc55(false),
-_midi_adlib(NULL),
-_midi_native(NULL),
-_sysex(NULL),
-_paused(false),
-_initialized(false),
-_tempoFactor(0),
-_player_limit(ARRAYSIZE(_players)),
-_recycle_players(false),
-_queue_end(0),
-_queue_pos(0),
-_queue_sound(0),
-_queue_adding(0),
-_queue_marker(0),
-_queue_cleared(0),
-_master_volume(0),
-_music_volume(0),
-_trigger_count(0),
-_snm_trigger_index(0) {
- memset(_channel_volume,0,sizeof(_channel_volume));
- memset(_channel_volume_eff,0,sizeof(_channel_volume_eff));
- memset(_volchan_table,0,sizeof(_volchan_table));
+ _native_mt32(false),
+ _enable_gs(false),
+ _sc55(false),
+ _midi_adlib(NULL),
+ _midi_native(NULL),
+ _sysex(NULL),
+ _paused(false),
+ _initialized(false),
+ _tempoFactor(0),
+ _player_limit(ARRAYSIZE(_players)),
+ _recycle_players(false),
+ _queue_end(0),
+ _queue_pos(0),
+ _queue_sound(0),
+ _queue_adding(0),
+ _queue_marker(0),
+ _queue_cleared(0),
+ _master_volume(0),
+ _music_volume(0),
+ _trigger_count(0),
+ _snm_trigger_index(0),
+ _pcSpeaker(false) {
+ memset(_channel_volume, 0, sizeof(_channel_volume));
+ memset(_channel_volume_eff, 0, sizeof(_channel_volume_eff));
+ memset(_volchan_table, 0, sizeof(_volchan_table));
}
IMuseInternal::~IMuseInternal() {
@@ -119,7 +120,7 @@ byte *IMuseInternal::findStartOfSound(int sound, int ct) {
// Check for old-style headers first, like 'RO'
int trFlag = (kMThd | kFORM);
- if (ptr[0] == 'R' && ptr[1] == 'O'&& ptr[2] != 'L')
+ if (ptr[0] == 'R' && ptr[1] == 'O' && ptr[2] != 'L')
return ct == trFlag ? ptr : 0;
if (ptr[4] == 'S' && ptr[5] == 'O')
return ct == trFlag ? ptr + 4 : 0;
@@ -153,22 +154,22 @@ bool IMuseInternal::isMT32(int sound) {
uint32 tag = READ_BE_UINT32(ptr);
switch (tag) {
- case MKTAG('A','D','L',' '):
- case MKTAG('A','S','F','X'): // Special AD class for old AdLib sound effects
- case MKTAG('S','P','K',' '):
+ case MKTAG('A', 'D', 'L', ' '):
+ case MKTAG('A', 'S', 'F', 'X'): // Special AD class for old AdLib sound effects
+ case MKTAG('S', 'P', 'K', ' '):
return false;
- case MKTAG('A','M','I',' '):
- case MKTAG('R','O','L',' '):
+ case MKTAG('A', 'M', 'I', ' '):
+ case MKTAG('R', 'O', 'L', ' '):
return true;
- case MKTAG('M','A','C',' '): // Occurs in the Mac version of FOA and MI2
+ case MKTAG('M', 'A', 'C', ' '): // Occurs in the Mac version of FOA and MI2
return true;
- case MKTAG('G','M','D',' '):
+ case MKTAG('G', 'M', 'D', ' '):
return false;
- case MKTAG('M','I','D','I'): // Occurs in Sam & Max
+ case MKTAG('M', 'I', 'D', 'I'): // Occurs in Sam & Max
// HE games use Roland music
if (ptr[8] == 'H' && ptr[9] == 'S')
return true;
@@ -195,20 +196,20 @@ bool IMuseInternal::isMIDI(int sound) {
uint32 tag = READ_BE_UINT32(ptr);
switch (tag) {
- case MKTAG('A','D','L',' '):
- case MKTAG('A','S','F','X'): // Special AD class for old AdLib sound effects
- case MKTAG('S','P','K',' '):
+ case MKTAG('A', 'D', 'L', ' '):
+ case MKTAG('A', 'S', 'F', 'X'): // Special AD class for old AdLib sound effects
+ case MKTAG('S', 'P', 'K', ' '):
return false;
- case MKTAG('A','M','I',' '):
- case MKTAG('R','O','L',' '):
+ case MKTAG('A', 'M', 'I', ' '):
+ case MKTAG('R', 'O', 'L', ' '):
return true;
- case MKTAG('M','A','C',' '): // Occurs in the Mac version of FOA and MI2
+ case MKTAG('M', 'A', 'C', ' '): // Occurs in the Mac version of FOA and MI2
return true;
- case MKTAG('G','M','D',' '):
- case MKTAG('M','I','D','I'): // Occurs in Sam & Max
+ case MKTAG('G', 'M', 'D', ' '):
+ case MKTAG('M', 'I', 'D', 'I'): // Occurs in Sam & Max
return true;
}
@@ -381,7 +382,8 @@ int IMuseInternal::save_or_load(Serializer *ser, ScummEngine *scumm) {
for (i = 0; i < ARRAYSIZE(_parts); ++i)
_parts[i].saveLoadWithSerializer(ser);
- { // Load/save the instrument definitions, which were revamped with V11.
+ {
+ // Load/save the instrument definitions, which were revamped with V11.
Part *part = &_parts[0];
if (ser->getVersion() >= VER(11)) {
for (i = ARRAYSIZE(_parts); i; --i, ++part) {
@@ -467,6 +469,10 @@ uint32 IMuseInternal::property(int prop, uint32 value) {
case IMuse::PROP_GAME_ID:
_game_id = value;
break;
+
+ case IMuse::PROP_PC_SPEAKER:
+ _pcSpeaker = (value != 0);
+ break;
}
return 0;
@@ -522,7 +528,7 @@ void IMuseInternal::stopAllSounds() {
int IMuseInternal::getSoundStatus(int sound) const {
Common::StackLock lock(_mutex, "IMuseInternal::getSoundStatus()");
- return getSoundStatus_internal (sound, true);
+ return getSoundStatus_internal(sound, true);
}
int IMuseInternal::getMusicTimer() {
@@ -565,7 +571,7 @@ bool IMuseInternal::startSound_internal(int sound, int offset) {
int i;
ImTrigger *trigger = _snm_triggers;
for (i = ARRAYSIZE(_snm_triggers); i; --i, ++trigger) {
- if (trigger->sound && trigger->id && trigger->command[0] == 8 && trigger->command[1] == sound && getSoundStatus_internal (trigger->sound,true))
+ if (trigger->sound && trigger->id && trigger->command[0] == 8 && trigger->command[1] == sound && getSoundStatus_internal(trigger->sound, true))
return false;
}
@@ -663,9 +669,7 @@ int IMuseInternal::getSoundStatus_internal(int sound, bool ignoreFadeouts) const
return (sound == -1) ? 0 : get_queue_sound_status(sound);
}
-int32 IMuseInternal::doCommand_internal
- (int a, int b, int c, int d, int e, int f, int g, int h)
-{
+int32 IMuseInternal::doCommand_internal(int a, int b, int c, int d, int e, int f, int g, int h) {
int args[8];
args[0] = a;
args[1] = b;
@@ -733,7 +737,7 @@ int32 IMuseInternal::doCommand_internal(int numargs, int a[]) {
}
return -1;
case 13:
- return getSoundStatus_internal (a[1], true);
+ return getSoundStatus_internal(a[1], true);
case 14:
// Sam and Max: Parameter fade
player = findActivePlayer(a[1]);
@@ -779,8 +783,7 @@ int32 IMuseInternal::doCommand_internal(int numargs, int a[]) {
a[0] = 0;
for (i = 0; i < ARRAYSIZE(_snm_triggers); ++i) {
if (_snm_triggers[i].sound == a[1] && _snm_triggers[i].id &&
- (a[3] == -1 || _snm_triggers[i].id == a[3]))
- {
+ (a[3] == -1 || _snm_triggers[i].id == a[3])) {
++a[0];
}
}
@@ -1002,9 +1005,9 @@ int IMuseInternal::get_queue_sound_status(int sound) const {
i = (i + 1) % ARRAYSIZE(_cmd_queue);
}
- for (i = 0; i < ARRAYSIZE (_deferredCommands); ++i) {
+ for (i = 0; i < ARRAYSIZE(_deferredCommands); ++i) {
if (_deferredCommands[i].time_left && _deferredCommands[i].a == 8 &&
- _deferredCommands[i].b == sound) {
+ _deferredCommands[i].b == sound) {
return 2;
}
}
@@ -1213,7 +1216,7 @@ int32 IMuseInternal::ImSetTrigger(int sound, int id, int a, int b, int c, int d,
// NOTE: We ONLY do this if the sound that will trigger the command is actually
// playing. Otherwise, there's a problem when exiting and re-entering the
// Bumpusville mansion. Ref Bug #780918.
- if (trig->command[0] == 8 && getSoundStatus_internal(trig->command[1],true) && getSoundStatus_internal(sound,true))
+ if (trig->command[0] == 8 && getSoundStatus_internal(trig->command[1], true) && getSoundStatus_internal(sound, true))
stopSound_internal(trig->command[1]);
return 0;
}
@@ -1246,8 +1249,7 @@ int32 IMuseInternal::ImFireAllTriggers(int sound) {
return (count > 0) ? 0 : -1;
}
-int IMuseInternal::set_channel_volume(uint chan, uint vol)
-{
+int IMuseInternal::set_channel_volume(uint chan, uint vol) {
if (chan >= 8 || vol > 127)
return -1;
@@ -1427,7 +1429,7 @@ void IMuseInternal::initMT32(MidiDriver *midi) {
// Display a welcome message on MT-32 displays.
memcpy(&buffer[0], "\x41\x10\x16\x12\x20\x00\x00", 7);
memcpy(&buffer[7], " ", 20);
- memcpy(buffer + 7 +(20 - len) / 2, info, len);
+ memcpy(buffer + 7 + (20 - len) / 2, info, len);
byte checksum = 0;
for (int i = 4; i < 27; ++i)
checksum -= buffer[i];
@@ -1473,9 +1475,9 @@ void IMuseInternal::initGM(MidiDriver *midi) {
// Set Channels 1-16 to SC-55 Map, then CM-64/32L Variation
for (i = 0; i < 16; ++i) {
- midi->send(( 127 << 16) | (0 << 8) | (0xB0 | i));
- midi->send(( 1 << 16) | (32 << 8) | (0xB0 | i));
- midi->send(( 0 << 16) | (0 << 8) | (0xC0 | i));
+ midi->send((127 << 16) | (0 << 8) | (0xB0 | i));
+ midi->send((1 << 16) | (32 << 8) | (0xB0 | i));
+ midi->send((0 << 16) | (0 << 8) | (0xC0 | i));
}
debug(2, "GS Program Change: CM-64/32L Map Selected");
@@ -1496,7 +1498,7 @@ void IMuseInternal::initGM(MidiDriver *midi) {
// Set Channels 1-16 Reverb to 64, which is the
// equivalent of MT-32 default Reverb Level 5
for (i = 0; i < 16; ++i)
- midi->send(( 64 << 16) | (91 << 8) | (0xB0 | i));
+ midi->send((64 << 16) | (91 << 8) | (0xB0 | i));
debug(2, "GM Controller 91 Change: Channels 1-16 Reverb Level is 64");
// Set Channels 1-16 Pitch Bend Sensitivity to
@@ -1637,8 +1639,8 @@ void IMuseInternal::reallocateMidiChannels(MidiDriver *midi) {
hipart = NULL;
for (i = 32, part = _parts; i; i--, part++) {
if (part->_player && part->_player->getMidiDriver() == midi &&
- !part->_percussion && part->_on &&
- !part->_mc && part->_pri_eff >= hipri) {
+ !part->_percussion && part->_on &&
+ !part->_mc && part->_pri_eff >= hipri) {
hipri = part->_pri_eff;
hipart = part;
}
@@ -1668,16 +1670,35 @@ void IMuseInternal::reallocateMidiChannels(MidiDriver *midi) {
}
}
-void IMuseInternal::setGlobalAdLibInstrument(byte slot, byte *data) {
+void IMuseInternal::setGlobalInstrument(byte slot, byte *data) {
if (slot < 32) {
- _global_adlib_instruments[slot].adlib(data);
+ if (_pcSpeaker)
+ _global_instruments[slot].pcspk(data);
+ else
+ _global_instruments[slot].adlib(data);
}
}
-void IMuseInternal::copyGlobalAdLibInstrument(byte slot, Instrument *dest) {
+void IMuseInternal::copyGlobalInstrument(byte slot, Instrument *dest) {
if (slot >= 32)
return;
- _global_adlib_instruments[slot].copy_to(dest);
+
+ // Both the AdLib code and the PC Speaker code use an all zero instrument
+ // as default in the original, thus we do the same.
+ // PC Speaker instrument size is 23, while AdLib instrument size is 30.
+ // Thus we just use a 30 byte instrument data array as default.
+ const byte defaultInstr[30] = { 0 };
+
+ if (_global_instruments[slot].isValid()) {
+ // In case we have an valid instrument set up, copy it to the part.
+ _global_instruments[slot].copy_to(dest);
+ } else if (_pcSpeaker) {
+ debug(0, "Trying to use non-existant global PC Speaker instrument %d", slot);
+ dest->pcspk(defaultInstr);
+ } else {
+ debug(0, "Trying to use non-existant global AdLib instrument %d", slot);
+ dest->adlib(defaultInstr);
+ }
}
diff --git a/engines/scumm/imuse/imuse.h b/engines/scumm/imuse/imuse.h
index 8014b13409..23449e470b 100644
--- a/engines/scumm/imuse/imuse.h
+++ b/engines/scumm/imuse/imuse.h
@@ -37,7 +37,7 @@ class Player;
class ScummEngine;
class Serializer;
-typedef void (*sysexfunc) (Player *, const byte *, uint16);
+typedef void (*sysexfunc)(Player *, const byte *, uint16);
/**
* iMuse implementation interface.
@@ -55,7 +55,8 @@ public:
PROP_GS,
PROP_LIMIT_PLAYERS,
PROP_RECYCLE_PLAYERS,
- PROP_GAME_ID
+ PROP_GAME_ID,
+ PROP_PC_SPEAKER
};
public:
@@ -66,7 +67,7 @@ public:
virtual int32 doCommand(int numargs, int args[]) = 0;
virtual int clear_queue() = 0;
virtual uint32 property(int prop, uint32 value) = 0;
- virtual void addSysexHandler (byte mfgID, sysexfunc handler) = 0;
+ virtual void addSysexHandler(byte mfgID, sysexfunc handler) = 0;
public:
virtual void startSoundWithNoteOffset(int sound, int offset) = 0;
diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h
index 6a7b9fc7d9..3b0d36e119 100644
--- a/engines/scumm/imuse/imuse_internal.h
+++ b/engines/scumm/imuse/imuse_internal.h
@@ -135,7 +135,7 @@ struct ImTrigger {
int sound;
byte id;
uint16 expire;
- int command [8];
+ int command[8];
ImTrigger() { memset(this, 0, sizeof(ImTrigger)); }
};
@@ -153,12 +153,12 @@ struct CommandQueue {
//////////////////////////////////////////////////
class Player : public MidiDriver_BASE {
-/*
- * External SysEx handler functions shall each be defined in
- * a separate file. This header file shall be included at the
- * top of the file immediately following this special #define:
- * #define SYSEX_CALLBACK_FUNCTION nameOfHandlerFunction
- */
+ /*
+ * External SysEx handler functions shall each be defined in
+ * a separate file. This header file shall be included at the
+ * top of the file immediately following this special #define:
+ * #define SYSEX_CALLBACK_FUNCTION nameOfHandlerFunction
+ */
#ifdef SYSEX_CALLBACK_FUNCTION
friend void SYSEX_CALLBACK_FUNCTION(Player *, const byte *, uint16);
#endif
@@ -244,7 +244,7 @@ public:
void clear();
void clearLoop();
void fixAfterLoad();
- Part * getActivePart(uint8 part);
+ Part *getActivePart(uint8 part);
uint getBeatIndex();
int8 getDetune() const { return _detune; }
byte getEffectiveVolume() const { return _vol_eff; }
@@ -252,7 +252,7 @@ public:
MidiDriver *getMidiDriver() const { return _midi; }
int getParam(int param, byte chan);
int8 getPan() const { return _pan; }
- Part * getPart(uint8 part);
+ Part *getPart(uint8 part);
byte getPriority() const { return _priority; }
uint getTicksPerBeat() const { return TICKS_PER_BEAT; }
int8 getTranspose() const { return _transpose; }
@@ -342,6 +342,7 @@ struct Part : public Serializable {
void off();
void set_instrument(uint b);
void set_instrument(byte *data);
+ void set_instrument_pcspk(byte *data);
void load_global_instrument(byte b);
void set_transpose(int8 transpose);
@@ -375,12 +376,12 @@ class IMuseInternal : public IMuse {
friend class Player;
friend struct Part;
-/*
- * External SysEx handler functions shall each be defined in
- * a separate file. This header file shall be included at the
- * top of the file immediately following this special #define:
- * #define SYSEX_CALLBACK_FUNCTION nameOfHandlerFunction
- */
+ /*
+ * External SysEx handler functions shall each be defined in
+ * a separate file. This header file shall be included at the
+ * top of the file immediately following this special #define:
+ * #define SYSEX_CALLBACK_FUNCTION nameOfHandlerFunction
+ */
#ifdef SYSEX_CALLBACK_FUNCTION
friend void SYSEX_CALLBACK_FUNCTION(Player *, const byte *, uint16);
#endif
@@ -433,7 +434,8 @@ protected:
Player _players[8];
Part _parts[32];
- Instrument _global_adlib_instruments[32];
+ bool _pcSpeaker;
+ Instrument _global_instruments[32];
CommandQueue _cmd_queue[64];
DeferredCommand _deferredCommands[4];
@@ -449,8 +451,8 @@ protected:
enum ChunkType {
kMThd = 1,
kFORM = 2,
- kMDhd = 4, // Used in MI2 and INDY4. Contain certain start parameters (priority, volume, etc. ) for the player.
- kMDpg = 8 // These chunks exist in DOTT and SAMNMAX. They don't get processed, however.
+ kMDhd = 4, // Used in MI2 and INDY4. Contain certain start parameters (priority, volume, etc. ) for the player.
+ kMDpg = 8 // These chunks exist in DOTT and SAMNMAX. They don't get processed, however.
};
byte *findStartOfSound(int sound, int ct = (kMThd | kFORM));
@@ -498,8 +500,8 @@ protected:
int setImuseMasterVolume(uint vol);
void reallocateMidiChannels(MidiDriver *midi);
- void setGlobalAdLibInstrument(byte slot, byte *data);
- void copyGlobalAdLibInstrument(byte slot, Instrument *dest);
+ void setGlobalInstrument(byte slot, byte *data);
+ void copyGlobalInstrument(byte slot, Instrument *dest);
bool isNativeMT32() { return _native_mt32; }
protected:
diff --git a/engines/scumm/imuse/imuse_part.cpp b/engines/scumm/imuse/imuse_part.cpp
index 5df8407a96..73e7704469 100644
--- a/engines/scumm/imuse/imuse_part.cpp
+++ b/engines/scumm/imuse/imuse_part.cpp
@@ -193,14 +193,18 @@ void Part::set_onoff(bool on) {
}
}
-void Part::set_instrument(byte * data) {
- _instrument.adlib(data);
+void Part::set_instrument(byte *data) {
+ if (_se->_pcSpeaker)
+ _instrument.pcspk(data);
+ else
+ _instrument.adlib(data);
+
if (clearToTransmit())
_instrument.send(_mc);
}
void Part::load_global_instrument(byte slot) {
- _player->_se->copyGlobalAdLibInstrument(slot, &_instrument);
+ _player->_se->copyGlobalInstrument(slot, &_instrument);
if (clearToTransmit())
_instrument.send(_mc);
}
@@ -234,7 +238,7 @@ void Part::noteOn(byte note, byte velocity) {
// should be implemented as a class static var. As it is, using
// a function level static var in most cases is arcane and evil.
static byte prev_vol_eff = 128;
- if (_vol_eff != prev_vol_eff){
+ if (_vol_eff != prev_vol_eff) {
mc->volume(_vol_eff);
prev_vol_eff = _vol_eff;
}
diff --git a/engines/scumm/imuse/imuse_player.cpp b/engines/scumm/imuse/imuse_player.cpp
index 61b9cad2cb..73be2174cd 100644
--- a/engines/scumm/imuse/imuse_player.cpp
+++ b/engines/scumm/imuse/imuse_player.cpp
@@ -79,7 +79,7 @@ Player::Player() :
_isMT32(false),
_isMIDI(false),
_se(0),
- _vol_chan(0){
+ _vol_chan(0) {
}
Player::~Player() {
@@ -133,7 +133,7 @@ bool Player::isFadingOut() const {
int i;
for (i = 0; i < ARRAYSIZE(_parameterFaders); ++i) {
if (_parameterFaders[i].param == ParameterFader::pfVolume &&
- _parameterFaders[i].end == 0) {
+ _parameterFaders[i].end == 0) {
return true;
}
}
@@ -371,11 +371,13 @@ void Player::sysEx(const byte *p, uint16 len) {
if (a != IMUSE_SYSEX_ID) {
if (a == ROLAND_SYSEX_ID) {
// Roland custom instrument definition.
- part = getPart(p[0] & 0x0F);
- if (part) {
- part->_instrument.roland(p - 1);
- if (part->clearToTransmit())
- part->_instrument.send(part->_mc);
+ if (_isMIDI || _isMT32) {
+ part = getPart(p[0] & 0x0F);
+ if (part) {
+ part->_instrument.roland(p - 1);
+ if (part->clearToTransmit())
+ part->_instrument.send(part->_mc);
+ }
}
} else if (a == YM2612_SYSEX_ID) {
// FM-TOWNS custom instrument definition
@@ -399,13 +401,13 @@ void Player::sysEx(const byte *p, uint16 len) {
if (!_scanning) {
for (a = 0; a < len + 1 && a < 19; ++a) {
- sprintf((char *)&buf[a*3], " %02X", p[a]);
+ sprintf((char *)&buf[a * 3], " %02X", p[a]);
} // next for
if (a < len + 1) {
- buf[a*3] = buf[a*3+1] = buf[a*3+2] = '.';
+ buf[a * 3] = buf[a * 3 + 1] = buf[a * 3 + 2] = '.';
++a;
} // end if
- buf[a*3] = '\0';
+ buf[a * 3] = '\0';
debugC(DEBUG_IMUSE, "[%02d] SysEx:%s", _id, buf);
}
@@ -814,7 +816,7 @@ int Player::query_part_param(int param, byte chan) {
return part->_vol;
case 16:
// FIXME: Need to know where this occurs...
-error("Trying to cast instrument (%d, %d) -- please tell Fingolfin", param, chan);
+ error("Trying to cast instrument (%d, %d) -- please tell Fingolfin", param, chan);
// In old versions of the code, this used to return part->_program.
// This was changed in revision 2.29 of imuse.cpp (where this code used
// to reside).
@@ -845,9 +847,8 @@ void Player::onTimer() {
uint beat_index = target_tick / TICKS_PER_BEAT + 1;
uint tick_index = target_tick % TICKS_PER_BEAT;
- if (_loop_counter &&(beat_index > _loop_from_beat ||
- (beat_index == _loop_from_beat && tick_index >= _loop_from_tick)))
- {
+ if (_loop_counter && (beat_index > _loop_from_beat ||
+ (beat_index == _loop_from_beat && tick_index >= _loop_from_tick))) {
_loop_counter--;
jump(_track_index, _loop_to_beat, _loop_to_tick);
}
@@ -891,15 +892,15 @@ int Player::addParameterFader(int param, int target, int time) {
// target = target * 128 / 100;
break;
- case 127:
- { // FIXME? I *think* this clears all parameter faders.
- ParameterFader *ptr = &_parameterFaders[0];
- int i;
- for (i = ARRAYSIZE(_parameterFaders); i; --i, ++ptr)
- ptr->param = 0;
- return 0;
- }
- break;
+ case 127: {
+ // FIXME? I *think* this clears all parameter faders.
+ ParameterFader *ptr = &_parameterFaders[0];
+ int i;
+ for (i = ARRAYSIZE(_parameterFaders); i; --i, ++ptr)
+ ptr->param = 0;
+ return 0;
+ }
+ break;
default:
debug(0, "Player::addParameterFader(%d, %d, %d): Unknown parameter", param, target, time);
@@ -1085,7 +1086,7 @@ void Player::saveLoadWithSerializer(Serializer *ser) {
}
ser->saveLoadEntries(this, playerEntries);
ser->saveLoadArrayOf(_parameterFaders, ARRAYSIZE(_parameterFaders),
- sizeof(ParameterFader), parameterFaderEntries);
+ sizeof(ParameterFader), parameterFaderEntries);
return;
}
diff --git a/engines/scumm/imuse/instrument.cpp b/engines/scumm/imuse/instrument.cpp
index 955700fc2b..11bb4e7605 100644
--- a/engines/scumm/imuse/instrument.cpp
+++ b/engines/scumm/imuse/instrument.cpp
@@ -114,14 +114,15 @@ roland_to_gm_map[] = {
// { "trickle4 ", ??? }
};
+// This emulates the percussion bank setup LEC used with the MT-32,
+// where notes 24 - 34 were assigned instruments without reverb.
+// It also fixes problems on GS devices that map sounds to these
+// notes by default.
const byte Instrument::_gmRhythmMap[35] = {
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 66, 47,
- 65, 48, 56};
- // This emulates the percussion bank setup LEC used with the MT-32,
- // where notes 24 - 34 were assigned instruments without reverb.
- // It also fixes problems on GS devices that map sounds to these
- // notes by default.
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 36, 37, 38, 39, 40, 41, 66, 47,
+ 65, 48, 56
+};
class Instrument_Program : public InstrumentInternal {
private:
@@ -136,15 +137,16 @@ public:
void copy_to(Instrument *dest) { dest->program(_program, _mt32); }
bool is_valid() {
return (_program < 128) &&
- ((_native_mt32 == _mt32) || _native_mt32
- ? (MidiDriver::_gmToMt32[_program] < 128)
- : (MidiDriver::_mt32ToGm[_program] < 128)); }
+ ((_native_mt32 == _mt32) || _native_mt32
+ ? (MidiDriver::_gmToMt32[_program] < 128)
+ : (MidiDriver::_mt32ToGm[_program] < 128));
+ }
};
class Instrument_AdLib : public InstrumentInternal {
private:
-#include "common/pack-start.h" // START STRUCT PACKING
+#include "common/pack-start.h" // START STRUCT PACKING
struct AdLibInstrument {
byte flags_1;
@@ -159,13 +161,17 @@ private:
byte waveform_2;
byte feedback;
byte flags_a;
- struct { byte a,b,c,d,e,f,g,h; } extra_a;
+ struct {
+ byte a, b, c, d, e, f, g, h;
+ } extra_a;
byte flags_b;
- struct { byte a,b,c,d,e,f,g,h; } extra_b;
+ struct {
+ byte a, b, c, d, e, f, g, h;
+ } extra_b;
byte duration;
} PACKED_STRUCT;
-#include "common/pack-end.h" // END STRUCT PACKING
+#include "common/pack-end.h" // END STRUCT PACKING
AdLibInstrument _instrument;
@@ -181,7 +187,7 @@ public:
class Instrument_Roland : public InstrumentInternal {
private:
-#include "common/pack-start.h" // START STRUCT PACKING
+#include "common/pack-start.h" // START STRUCT PACKING
struct RolandInstrument {
byte roland_id;
@@ -242,11 +248,11 @@ private:
byte checksum;
} PACKED_STRUCT;
-#include "common/pack-end.h" // END STRUCT PACKING
+#include "common/pack-end.h" // END STRUCT PACKING
RolandInstrument _instrument;
- char _instrument_name [11];
+ char _instrument_name[11];
uint8 getEquivalentGM();
@@ -259,6 +265,19 @@ public:
bool is_valid() { return (_native_mt32 ? true : (_instrument_name[0] != '\0')); }
};
+class Instrument_PcSpk : public InstrumentInternal {
+public:
+ Instrument_PcSpk(const byte *data);
+ Instrument_PcSpk(Serializer *s);
+ void saveOrLoad(Serializer *s);
+ void send(MidiChannel *mc);
+ void copy_to(Instrument *dest) { dest->pcspk((byte *)&_instrument); }
+ bool is_valid() { return true; }
+
+private:
+ byte _instrument[23];
+};
+
////////////////////////////////////////
//
// Instrument class members
@@ -299,7 +318,15 @@ void Instrument::roland(const byte *instrument) {
_instrument = new Instrument_Roland(instrument);
}
-void Instrument::saveOrLoad (Serializer *s) {
+void Instrument::pcspk(const byte *instrument) {
+ clear();
+ if (!instrument)
+ return;
+ _type = itPcSpk;
+ _instrument = new Instrument_PcSpk(instrument);
+}
+
+void Instrument::saveOrLoad(Serializer *s) {
if (s->isSaving()) {
s->saveByte(_type);
if (_instrument)
@@ -319,6 +346,9 @@ void Instrument::saveOrLoad (Serializer *s) {
case itRoland:
_instrument = new Instrument_Roland(s);
break;
+ case itPcSpk:
+ _instrument = new Instrument_PcSpk(s);
+ break;
default:
warning("No known instrument classification #%d", (int)_type);
_type = itNone;
@@ -333,8 +363,8 @@ void Instrument::saveOrLoad (Serializer *s) {
////////////////////////////////////////
Instrument_Program::Instrument_Program(byte program, bool mt32) :
-_program (program),
-_mt32 (mt32) {
+ _program(program),
+ _mt32(mt32) {
if (program > 127)
_program = 255;
}
@@ -413,7 +443,7 @@ Instrument_Roland::Instrument_Roland(const byte *data) {
Instrument_Roland::Instrument_Roland(Serializer *s) {
_instrument_name[0] = '\0';
if (!s->isSaving())
- saveOrLoad (s);
+ saveOrLoad(s);
else
memset(&_instrument, 0, sizeof(_instrument));
}
@@ -470,4 +500,32 @@ uint8 Instrument_Roland::getEquivalentGM() {
return 255;
}
+////////////////////////////////////////
+//
+// Instrument_PcSpk class members
+//
+////////////////////////////////////////
+
+Instrument_PcSpk::Instrument_PcSpk(const byte *data) {
+ memcpy(_instrument, data, sizeof(_instrument));
+}
+
+Instrument_PcSpk::Instrument_PcSpk(Serializer *s) {
+ if (!s->isSaving())
+ saveOrLoad(s);
+ else
+ memset(_instrument, 0, sizeof(_instrument));
+}
+
+void Instrument_PcSpk::saveOrLoad(Serializer *s) {
+ if (s->isSaving())
+ s->saveBytes(_instrument, sizeof(_instrument));
+ else
+ s->loadBytes(_instrument, sizeof(_instrument));
+}
+
+void Instrument_PcSpk::send(MidiChannel *mc) {
+ mc->sysEx_customInstrument('SPK ', (byte *)&_instrument);
+}
+
} // End of namespace Scumm
diff --git a/engines/scumm/imuse/instrument.h b/engines/scumm/imuse/instrument.h
index 79cbd49032..a855c64155 100644
--- a/engines/scumm/imuse/instrument.h
+++ b/engines/scumm/imuse/instrument.h
@@ -51,10 +51,11 @@ public:
itNone = 0,
itProgram = 1,
itAdLib = 2,
- itRoland = 3
+ itRoland = 3,
+ itPcSpk = 4
};
- Instrument() : _type (0), _instrument (0) { }
+ Instrument() : _type(0), _instrument(0) { }
~Instrument() { delete _instrument; }
static void nativeMT32(bool native);
static const byte _gmRhythmMap[35];
@@ -70,6 +71,7 @@ public:
void program(byte program, bool mt32);
void adlib(const byte *instrument);
void roland(const byte *instrument);
+ void pcspk(const byte *instrument);
byte getType() { return _type; }
bool isValid() { return (_instrument ? _instrument->is_valid() : false); }
diff --git a/engines/scumm/imuse/pcspk.cpp b/engines/scumm/imuse/pcspk.cpp
new file mode 100644
index 0000000000..cbf3446f10
--- /dev/null
+++ b/engines/scumm/imuse/pcspk.cpp
@@ -0,0 +1,834 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "scumm/imuse/pcspk.h"
+
+#include "common/util.h"
+
+namespace Scumm {
+
+PcSpkDriver::PcSpkDriver(Audio::Mixer *mixer)
+ : MidiDriver_Emulated(mixer), _pcSpk(mixer->getOutputRate()) {
+}
+
+PcSpkDriver::~PcSpkDriver() {
+ close();
+}
+
+int PcSpkDriver::open() {
+ if (_isOpen)
+ return MERR_ALREADY_OPEN;
+
+ MidiDriver_Emulated::open();
+
+ for (uint i = 0; i < 6; ++i)
+ _channels[i].init(this, i);
+ _activeChannel = 0;
+ _effectTimer = 0;
+ _randBase = 1;
+
+ // We need to take care we only send note frequencies, when the internal
+ // settings actually changed, thus we need some extra state to keep track
+ // of that.
+ _lastActiveChannel = 0;
+ _lastActiveOut = 0;
+
+ // We set the output sound type to music here to allow sound volume
+ // adjustment. The drawback here is that we can not control the music and
+ // sfx separately here. But the AdLib output has the same issue so it
+ // should not be that bad.
+ _mixer->playStream(Audio::Mixer::kMusicSoundType, &_mixerSoundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
+ return 0;
+}
+
+void PcSpkDriver::close() {
+ if (!_isOpen)
+ return;
+ _isOpen = false;
+
+ _mixer->stopHandle(_mixerSoundHandle);
+}
+
+void PcSpkDriver::send(uint32 d) {
+ assert((d & 0x0F) < 6);
+ _channels[(d & 0x0F)].send(d);
+}
+
+void PcSpkDriver::sysEx_customInstrument(byte channel, uint32 type, const byte *instr) {
+ assert(channel < 6);
+ if (type == 'SPK ')
+ _channels[channel].sysEx_customInstrument(type, instr);
+}
+
+MidiChannel *PcSpkDriver::allocateChannel() {
+ for (uint i = 0; i < 6; ++i) {
+ if (_channels[i].allocate())
+ return &_channels[i];
+ }
+
+ return 0;
+}
+
+void PcSpkDriver::generateSamples(int16 *buf, int len) {
+ _pcSpk.readBuffer(buf, len);
+}
+
+void PcSpkDriver::onTimer() {
+ if (!_activeChannel)
+ return;
+
+ for (uint i = 0; i < 6; ++i) {
+ OutputChannel &out = _channels[i]._out;
+
+ if (!out.active)
+ continue;
+
+ if (out.length == 0 || --out.length != 0) {
+ if (out.unkB && out.unkC) {
+ out.unkA += out.unkB;
+ if (out.instrument)
+ out.unkE = ((int8)out.instrument[out.unkA] * out.unkC) >> 4;
+ }
+
+ ++_effectTimer;
+ if (_effectTimer > 3) {
+ _effectTimer = 0;
+
+ if (out.effectEnvelopeA.state)
+ updateEffectGenerator(_channels[i], out.effectEnvelopeA, out.effectDefA);
+ if (out.effectEnvelopeB.state)
+ updateEffectGenerator(_channels[i], out.effectEnvelopeB, out.effectDefB);
+ }
+ } else {
+ out.active = 0;
+ updateNote();
+ return;
+ }
+ }
+
+ if (_activeChannel->_tl) {
+ output((_activeChannel->_out.note << 7) + _activeChannel->_pitchBend + _activeChannel->_out.unk60 + _activeChannel->_out.unkE);
+ } else {
+ _pcSpk.stop();
+ _lastActiveChannel = 0;
+ _lastActiveOut = 0;
+ }
+}
+
+void PcSpkDriver::updateNote() {
+ uint8 priority = 0;
+ _activeChannel = 0;
+ for (uint i = 0; i < 6; ++i) {
+ if (_channels[i]._allocated && _channels[i]._out.active && _channels[i]._priority >= priority) {
+ priority = _channels[i]._priority;
+ _activeChannel = &_channels[i];
+ }
+ }
+
+ if (_activeChannel == 0 || _activeChannel->_tl == 0) {
+ _pcSpk.stop();
+ _lastActiveChannel = 0;
+ _lastActiveOut = 0;
+ } else {
+ output(_activeChannel->_pitchBend + (_activeChannel->_out.note << 7));
+ }
+}
+
+void PcSpkDriver::output(uint16 out) {
+ byte v1 = (out >> 7) & 0xFF;
+ byte v2 = (out >> 2) & 0x1E;
+
+ byte shift = _outputTable1[v1];
+ uint16 indexBase = _outputTable2[v1] << 5;
+ uint16 frequency = _frequencyTable[(indexBase + v2) / 2] >> shift;
+
+ // Only output in case the active channel changed or the frequency changed.
+ // This is not faithful to the original. Since our timings differ we would
+ // get distorted sound otherwise though.
+ if (_lastActiveChannel != _activeChannel || _lastActiveOut != out) {
+ _pcSpk.play(Audio::PCSpeaker::kWaveFormSquare, 1193180 / frequency, -1);
+ _lastActiveChannel = _activeChannel;
+ _lastActiveOut = out;
+ }
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::init(PcSpkDriver *owner, byte channel) {
+ _owner = owner;
+ _channel = channel;
+ _allocated = false;
+ memset(&_out, 0, sizeof(_out));
+}
+
+bool PcSpkDriver::MidiChannel_PcSpk::allocate() {
+ if (_allocated)
+ return false;
+
+ memset(&_out, 0, sizeof(_out));
+ memset(_instrument, 0, sizeof(_instrument));
+ _out.effectDefA.envelope = &_out.effectEnvelopeA;
+ _out.effectDefB.envelope = &_out.effectEnvelopeB;
+
+ _allocated = true;
+ return true;
+}
+
+MidiDriver *PcSpkDriver::MidiChannel_PcSpk::device() {
+ return _owner;
+}
+
+byte PcSpkDriver::MidiChannel_PcSpk::getNumber() {
+ return _channel;
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::release() {
+ _out.active = 0;
+ _allocated = false;
+ _owner->updateNote();
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::send(uint32 b) {
+ uint8 type = b & 0xF0;
+ uint8 p1 = (b >> 8) & 0xFF;
+ uint8 p2 = (b >> 16) & 0xFF;
+
+ switch (type) {
+ case 0x80:
+ noteOff(p1);
+ break;
+
+ case 0x90:
+ if (p2)
+ noteOn(p1, p2);
+ else
+ noteOff(p1);
+ break;
+
+ case 0xB0:
+ controlChange(p1, p2);
+ break;
+
+ case 0xE0:
+ pitchBend((p1 | (p2 << 7)) - 0x2000);
+ break;
+
+ default:
+ break;
+ }
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::noteOff(byte note) {
+ if (!_allocated)
+ return;
+
+ if (_sustain) {
+ if (_out.note == note)
+ _out.sustainNoteOff = 1;
+ } else {
+ if (_out.note == note) {
+ _out.active = 0;
+ _owner->updateNote();
+ }
+ }
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::noteOn(byte note, byte velocity) {
+ if (!_allocated)
+ return;
+
+ _out.note = note;
+ _out.sustainNoteOff = 0;
+ _out.length = _instrument[0];
+
+ if (_instrument[4] * 256 < ARRAYSIZE(PcSpkDriver::_outInstrumentData))
+ _out.instrument = _owner->_outInstrumentData + _instrument[4] * 256;
+ else
+ _out.instrument = 0;
+
+ _out.unkA = 0;
+ _out.unkB = _instrument[1];
+ _out.unkC = _instrument[2];
+ _out.unkE = 0;
+ _out.unk60 = 0;
+ _out.active = 1;
+
+ // In case we get a note on event on the last active channel, we reset the
+ // last active channel, thus we assure the frequency is correctly set, even
+ // when the same note was sent.
+ if (_owner->_lastActiveChannel == this) {
+ _owner->_lastActiveChannel = 0;
+ _owner->_lastActiveOut = 0;
+ }
+ _owner->updateNote();
+
+ _out.unkC += PcSpkDriver::getEffectModifier(_instrument[3] + ((velocity & 0xFE) << 4));
+ if (_out.unkC > 63)
+ _out.unkC = 63;
+
+ if ((_instrument[5] & 0x80) != 0)
+ _owner->setupEffects(*this, _out.effectEnvelopeA, _out.effectDefA, _instrument[5], _instrument + 6);
+
+ if ((_instrument[14] & 0x80) != 0)
+ _owner->setupEffects(*this, _out.effectEnvelopeB, _out.effectDefB, _instrument[14], _instrument + 15);
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::programChange(byte program) {
+ // Nothing to implement here, the iMuse code takes care of passing us the
+ // instrument data.
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::pitchBend(int16 bend) {
+ _pitchBend = (bend * _pitchBendFactor) >> 6;
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::controlChange(byte control, byte value) {
+ switch (control) {
+ case 1:
+ if (_out.effectEnvelopeA.state && _out.effectDefA.useModWheel)
+ _out.effectEnvelopeA.modWheelState = (value >> 2);
+ if (_out.effectEnvelopeB.state && _out.effectDefB.useModWheel)
+ _out.effectEnvelopeB.modWheelState = (value >> 2);
+ break;
+
+ case 7:
+ _tl = value;
+ if (_owner->_activeChannel == this) {
+ if (_tl == 0) {
+ _owner->_lastActiveChannel = 0;
+ _owner->_lastActiveOut = 0;
+ _owner->_pcSpk.stop();
+ } else {
+ _owner->output((_out.note << 7) + _pitchBend + _out.unk60 + _out.unkE);
+ }
+ }
+ break;
+
+ case 64:
+ _sustain = value;
+ if (!value && _out.sustainNoteOff) {
+ _out.active = 0;
+ _owner->updateNote();
+ }
+ break;
+
+ case 123:
+ _out.active = 0;
+ _owner->updateNote();
+ break;
+
+ default:
+ break;
+ }
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::pitchBendFactor(byte value) {
+ _pitchBendFactor = value;
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::priority(byte value) {
+ _priority = value;
+}
+
+void PcSpkDriver::MidiChannel_PcSpk::sysEx_customInstrument(uint32 type, const byte *instr) {
+ memcpy(_instrument, instr, sizeof(_instrument));
+}
+
+uint8 PcSpkDriver::getEffectModifier(uint16 level) {
+ uint8 base = level / 32;
+ uint8 index = level % 32;
+
+ if (index == 0)
+ return 0;
+
+ return (base * (index + 1)) >> 5;
+}
+
+int16 PcSpkDriver::getEffectModLevel(int16 level, int8 mod) {
+ if (!mod) {
+ return 0;
+ } else if (mod == 31) {
+ return level;
+ } else if (level < -63 || level > 63) {
+ return (mod * (level + 1)) >> 6;
+ } else if (mod < 0) {
+ if (level < 0)
+ return getEffectModifier(((-level) << 5) - mod);
+ else
+ return -getEffectModifier((level << 5) - mod);
+ } else {
+ if (level < 0)
+ return -getEffectModifier(((-level) << 5) + mod);
+ else
+ return getEffectModifier(((-level) << 5) + mod);
+ }
+}
+
+int16 PcSpkDriver::getRandScale(int16 input) {
+ if (_randBase & 1)
+ _randBase = (_randBase >> 1) ^ 0xB8;
+ else
+ _randBase >>= 1;
+
+ return (_randBase * input) >> 8;
+}
+
+void PcSpkDriver::setupEffects(MidiChannel_PcSpk &chan, EffectEnvelope &env, EffectDefinition &def, byte flags, const byte *data) {
+ def.phase = 0;
+ def.useModWheel = flags & 0x40;
+ env.loop = flags & 0x20;
+ def.type = flags & 0x1F;
+
+ env.modWheelSensitivity = 31;
+ if (def.useModWheel)
+ env.modWheelState = chan._modWheel >> 2;
+ else
+ env.modWheelState = 31;
+
+ switch (def.type) {
+ case 0:
+ env.maxLevel = 767;
+ env.startLevel = 383;
+ break;
+
+ case 1:
+ env.maxLevel = 31;
+ env.startLevel = 15;
+ break;
+
+ case 2:
+ env.maxLevel = 63;
+ env.startLevel = chan._out.unkB;
+ break;
+
+ case 3:
+ env.maxLevel = 63;
+ env.startLevel = chan._out.unkC;
+ break;
+
+ case 4:
+ env.maxLevel = 3;
+ env.startLevel = chan._instrument[4];
+ break;
+
+ case 5:
+ env.maxLevel = 62;
+ env.startLevel = 31;
+ env.modWheelState = 0;
+ break;
+
+ case 6:
+ env.maxLevel = 31;
+ env.startLevel = 0;
+ env.modWheelSensitivity = 0;
+ break;
+
+ default:
+ break;
+ }
+
+ startEffect(env, data);
+}
+
+void PcSpkDriver::startEffect(EffectEnvelope &env, const byte *data) {
+ env.state = 1;
+ env.currentLevel = 0;
+ env.modWheelLast = 31;
+ env.duration = data[0] * 63;
+
+ env.stateTargetLevels[0] = data[1];
+ env.stateTargetLevels[1] = data[3];
+ env.stateTargetLevels[2] = data[5];
+ env.stateTargetLevels[3] = data[6];
+
+ env.stateModWheelLevels[0] = data[2];
+ env.stateModWheelLevels[1] = data[4];
+ env.stateModWheelLevels[2] = 0;
+ env.stateModWheelLevels[3] = data[7];
+
+ initNextEnvelopeState(env);
+}
+
+void PcSpkDriver::initNextEnvelopeState(EffectEnvelope &env) {
+ uint8 lastState = env.state - 1;
+
+ uint16 stepCount = _effectEnvStepTable[getEffectModifier(((env.stateTargetLevels[lastState] & 0x7F) << 5) + env.modWheelSensitivity)];
+ if (env.stateTargetLevels[lastState] & 0x80)
+ stepCount = getRandScale(stepCount);
+ if (!stepCount)
+ stepCount = 1;
+
+ env.stateNumSteps = env.stateStepCounter = stepCount;
+
+ int16 totalChange = 0;
+ if (lastState != 2) {
+ totalChange = getEffectModLevel(env.maxLevel, (env.stateModWheelLevels[lastState] & 0x7F) - 31);
+ if (env.stateModWheelLevels[lastState] & 0x80)
+ totalChange = getRandScale(totalChange);
+
+ if (totalChange + env.startLevel > env.maxLevel)
+ totalChange = env.maxLevel - env.startLevel;
+ else if (totalChange + env.startLevel < 0)
+ totalChange = -env.startLevel;
+
+ totalChange -= env.currentLevel;
+ }
+
+ env.changePerStep = totalChange / stepCount;
+ if (totalChange < 0) {
+ totalChange = -totalChange;
+ env.dir = -1;
+ } else {
+ env.dir = 1;
+ }
+ env.changePerStepRem = totalChange % stepCount;
+ env.changeCountRem = 0;
+}
+
+void PcSpkDriver::updateEffectGenerator(MidiChannel_PcSpk &chan, EffectEnvelope &env, EffectDefinition &def) {
+ if (advanceEffectEnvelope(env, def) & 1) {
+ switch (def.type) {
+ case 0: case 1:
+ chan._out.unk60 = def.phase << 4;
+ break;
+
+ case 2:
+ chan._out.unkB = (def.phase & 0xFF) + chan._instrument[1];
+ break;
+
+ case 3:
+ chan._out.unkC = (def.phase & 0xFF) + chan._instrument[2];
+ break;
+
+ case 4:
+ if ((chan._instrument[4] + (def.phase & 0xFF)) * 256 < ARRAYSIZE(_outInstrumentData))
+ chan._out.instrument = _outInstrumentData + (chan._instrument[4] + (def.phase & 0xFF)) * 256;
+ else
+ chan._out.instrument = 0;
+ break;
+
+ case 5:
+ env.modWheelState = (def.phase & 0xFF);
+ break;
+
+ case 6:
+ env.modWheelSensitivity = (def.phase & 0xFF);
+ break;
+
+ default:
+ break;
+ }
+ }
+}
+
+uint8 PcSpkDriver::advanceEffectEnvelope(EffectEnvelope &env, EffectDefinition &def) {
+ if (env.duration != 0) {
+ env.duration -= 17;
+ if (env.duration <= 0) {
+ env.state = 0;
+ return 0;
+ }
+ }
+
+ uint8 changedFlags = 0;
+ int16 newLevel = env.currentLevel + env.changePerStep;
+ env.changeCountRem += env.changePerStepRem;
+ if (env.changeCountRem >= env.stateNumSteps) {
+ env.changeCountRem -= env.stateNumSteps;
+ newLevel += env.dir;
+ }
+
+ if (env.currentLevel != newLevel || env.modWheelLast != env.modWheelState) {
+ env.currentLevel = newLevel;
+ env.modWheelLast = env.modWheelState;
+
+ int16 newPhase = getEffectModLevel(newLevel, env.modWheelState);
+ if (def.phase != newPhase) {
+ changedFlags |= 1;
+ def.phase = newPhase;
+ }
+ }
+
+ --env.stateStepCounter;
+ if (!env.stateStepCounter) {
+ ++env.state;
+ if (env.state > 4) {
+ if (env.loop) {
+ env.state = 1;
+ changedFlags |= 2;
+ } else {
+ env.state = 0;
+ return changedFlags;
+ }
+ }
+
+ initNextEnvelopeState(env);
+ }
+
+ return changedFlags;
+}
+
+const byte PcSpkDriver::_outInstrumentData[1024] = {
+ 0x00, 0x03, 0x06, 0x09, 0x0C, 0x0F, 0x12, 0x15,
+ 0x18, 0x1B, 0x1E, 0x21, 0x24, 0x27, 0x2A, 0x2D,
+ 0x30, 0x33, 0x36, 0x39, 0x3B, 0x3E, 0x41, 0x43,
+ 0x46, 0x49, 0x4B, 0x4E, 0x50, 0x52, 0x55, 0x57,
+ 0x59, 0x5B, 0x5E, 0x60, 0x62, 0x64, 0x66, 0x67,
+ 0x69, 0x6B, 0x6C, 0x6E, 0x70, 0x71, 0x72, 0x74,
+ 0x75, 0x76, 0x77, 0x78, 0x79, 0x7A, 0x7B, 0x7B,
+ 0x7C, 0x7D, 0x7D, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E,
+ 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7E, 0x7D, 0x7D,
+ 0x7C, 0x7B, 0x7B, 0x7A, 0x79, 0x78, 0x77, 0x76,
+ 0x75, 0x74, 0x72, 0x71, 0x70, 0x6E, 0x6C, 0x6B,
+ 0x69, 0x67, 0x66, 0x64, 0x62, 0x60, 0x5E, 0x5B,
+ 0x59, 0x57, 0x55, 0x52, 0x50, 0x4E, 0x4B, 0x49,
+ 0x46, 0x43, 0x41, 0x3E, 0x3B, 0x39, 0x36, 0x33,
+ 0x30, 0x2D, 0x2A, 0x27, 0x24, 0x21, 0x1E, 0x1B,
+ 0x18, 0x15, 0x12, 0x0F, 0x0C, 0x09, 0x06, 0x03,
+ 0x00, 0xFD, 0xFA, 0xF7, 0xF4, 0xF1, 0xEE, 0xEB,
+ 0xE8, 0xE5, 0xE2, 0xDF, 0xDC, 0xD9, 0xD6, 0xD3,
+ 0xD0, 0xCD, 0xCA, 0xC7, 0xC5, 0xC2, 0xBF, 0xBD,
+ 0xBA, 0xB7, 0xB5, 0xB2, 0xB0, 0xAE, 0xAB, 0xA9,
+ 0xA7, 0xA5, 0xA2, 0xA0, 0x9E, 0x9C, 0x9A, 0x99,
+ 0x97, 0x95, 0x94, 0x92, 0x90, 0x8F, 0x8E, 0x8C,
+ 0x8B, 0x8A, 0x89, 0x88, 0x87, 0x86, 0x85, 0x85,
+ 0x84, 0x83, 0x83, 0x82, 0x82, 0x82, 0x82, 0x82,
+ 0x82, 0x82, 0x82, 0x82, 0x82, 0x82, 0x83, 0x83,
+ 0x84, 0x85, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A,
+ 0x8B, 0x8C, 0x8E, 0x8F, 0x90, 0x92, 0x94, 0x95,
+ 0x97, 0x99, 0x9A, 0x9C, 0x9E, 0xA0, 0xA2, 0xA5,
+ 0xA7, 0xA9, 0xAB, 0xAE, 0xB0, 0xB2, 0xB5, 0xB7,
+ 0xBA, 0xBD, 0xBF, 0xC2, 0xC5, 0xC7, 0xCA, 0xCD,
+ 0xD0, 0xD3, 0xD6, 0xD9, 0xDC, 0xDF, 0xE2, 0xE5,
+ 0xE8, 0xEB, 0xEE, 0xF1, 0xF4, 0xF7, 0xFA, 0xFD,
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0x3F,
+ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
+ 0x48, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F,
+ 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
+ 0x58, 0x59, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F,
+ 0x60, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
+ 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F,
+ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+ 0x78, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F,
+ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+ 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F,
+ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97,
+ 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F,
+ 0xA0, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7,
+ 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF,
+ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7,
+ 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF,
+ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7,
+ 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF,
+ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7,
+ 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF,
+ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7,
+ 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF,
+ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7,
+ 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88, 0x88,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78, 0x78,
+ 0x29, 0x23, 0xBE, 0x84, 0xE1, 0x6C, 0xD6, 0xAE,
+ 0x52, 0x90, 0x49, 0xF1, 0xF1, 0xBB, 0xE9, 0xEB,
+ 0xB3, 0xA6, 0xDB, 0x3C, 0x87, 0x0C, 0x3E, 0x99,
+ 0x24, 0x5E, 0x0D, 0x1C, 0x06, 0xB7, 0x47, 0xDE,
+ 0xB3, 0x12, 0x4D, 0xC8, 0x43, 0xBB, 0x8B, 0xA6,
+ 0x1F, 0x03, 0x5A, 0x7D, 0x09, 0x38, 0x25, 0x1F,
+ 0x5D, 0xD4, 0xCB, 0xFC, 0x96, 0xF5, 0x45, 0x3B,
+ 0x13, 0x0D, 0x89, 0x0A, 0x1C, 0xDB, 0xAE, 0x32,
+ 0x20, 0x9A, 0x50, 0xEE, 0x40, 0x78, 0x36, 0xFD,
+ 0x12, 0x49, 0x32, 0xF6, 0x9E, 0x7D, 0x49, 0xDC,
+ 0xAD, 0x4F, 0x14, 0xF2, 0x44, 0x40, 0x66, 0xD0,
+ 0x6B, 0xC4, 0x30, 0xB7, 0x32, 0x3B, 0xA1, 0x22,
+ 0xF6, 0x22, 0x91, 0x9D, 0xE1, 0x8B, 0x1F, 0xDA,
+ 0xB0, 0xCA, 0x99, 0x02, 0xB9, 0x72, 0x9D, 0x49,
+ 0x2C, 0x80, 0x7E, 0xC5, 0x99, 0xD5, 0xE9, 0x80,
+ 0xB2, 0xEA, 0xC9, 0xCC, 0x53, 0xBF, 0x67, 0xD6,
+ 0xBF, 0x14, 0xD6, 0x7E, 0x2D, 0xDC, 0x8E, 0x66,
+ 0x83, 0xEF, 0x57, 0x49, 0x61, 0xFF, 0x69, 0x8F,
+ 0x61, 0xCD, 0xD1, 0x1E, 0x9D, 0x9C, 0x16, 0x72,
+ 0x72, 0xE6, 0x1D, 0xF0, 0x84, 0x4F, 0x4A, 0x77,
+ 0x02, 0xD7, 0xE8, 0x39, 0x2C, 0x53, 0xCB, 0xC9,
+ 0x12, 0x1E, 0x33, 0x74, 0x9E, 0x0C, 0xF4, 0xD5,
+ 0xD4, 0x9F, 0xD4, 0xA4, 0x59, 0x7E, 0x35, 0xCF,
+ 0x32, 0x22, 0xF4, 0xCC, 0xCF, 0xD3, 0x90, 0x2D,
+ 0x48, 0xD3, 0x8F, 0x75, 0xE6, 0xD9, 0x1D, 0x2A,
+ 0xE5, 0xC0, 0xF7, 0x2B, 0x78, 0x81, 0x87, 0x44,
+ 0x0E, 0x5F, 0x50, 0x00, 0xD4, 0x61, 0x8D, 0xBE,
+ 0x7B, 0x05, 0x15, 0x07, 0x3B, 0x33, 0x82, 0x1F,
+ 0x18, 0x70, 0x92, 0xDA, 0x64, 0x54, 0xCE, 0xB1,
+ 0x85, 0x3E, 0x69, 0x15, 0xF8, 0x46, 0x6A, 0x04,
+ 0x96, 0x73, 0x0E, 0xD9, 0x16, 0x2F, 0x67, 0x68,
+ 0xD4, 0xF7, 0x4A, 0x4A, 0xD0, 0x57, 0x68, 0x76
+};
+
+const byte PcSpkDriver::_outputTable1[] = {
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4,
+ 4, 4, 4, 4, 5, 5, 5, 5,
+ 5, 5, 5, 5, 5, 5, 5, 5,
+ 6, 6, 6, 6, 6, 6, 6, 6,
+ 6, 6, 6, 6, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7,
+ 7, 7, 7, 7, 7, 7, 7, 7
+};
+
+const byte PcSpkDriver::_outputTable2[] = {
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7,
+ 8, 9, 10, 11,
+ 0, 1, 2, 3,
+ 4, 5, 6, 7
+};
+
+const uint16 PcSpkDriver::_effectEnvStepTable[] = {
+ 1, 2, 4, 5,
+ 6, 7, 8, 9,
+ 10, 12, 14, 16,
+ 18, 21, 24, 30,
+ 36, 50, 64, 82,
+ 100, 136, 160, 192,
+ 240, 276, 340, 460,
+ 600, 860, 1200, 1600
+};
+
+const uint16 PcSpkDriver::_frequencyTable[] = {
+ 0x8E84, 0x8E00, 0x8D7D, 0x8CFA,
+ 0x8C78, 0x8BF7, 0x8B76, 0x8AF5,
+ 0x8A75, 0x89F5, 0x8976, 0x88F7,
+ 0x8879, 0x87FB, 0x877D, 0x8700,
+ 0x8684, 0x8608, 0x858C, 0x8511,
+ 0x8496, 0x841C, 0x83A2, 0x8328,
+ 0x82AF, 0x8237, 0x81BF, 0x8147,
+ 0x80D0, 0x8059, 0x7FE3, 0x7F6D,
+ 0x7EF7, 0x7E82, 0x7E0D, 0x7D99,
+ 0x7D25, 0x7CB2, 0x7C3F, 0x7BCC,
+ 0x7B5A, 0x7AE8, 0x7A77, 0x7A06,
+ 0x7995, 0x7925, 0x78B5, 0x7846,
+ 0x77D7, 0x7768, 0x76FA, 0x768C,
+ 0x761F, 0x75B2, 0x7545, 0x74D9,
+ 0x746D, 0x7402, 0x7397, 0x732C,
+ 0x72C2, 0x7258, 0x71EF, 0x7186,
+ 0x711D, 0x70B5, 0x704D, 0x6FE5,
+ 0x6F7E, 0x6F17, 0x6EB0, 0x6E4A,
+ 0x6DE5, 0x6D7F, 0x6D1A, 0x6CB5,
+ 0x6C51, 0x6BED, 0x6B8A, 0x6B26,
+ 0x6AC4, 0x6A61, 0x69FF, 0x699D,
+ 0x693C, 0x68DB, 0x687A, 0x681A,
+ 0x67BA, 0x675A, 0x66FA, 0x669B,
+ 0x663D, 0x65DF, 0x6581, 0x6523,
+ 0x64C6, 0x6469, 0x640C, 0x63B0,
+ 0x6354, 0x62F8, 0x629D, 0x6242,
+ 0x61E7, 0x618D, 0x6133, 0x60D9,
+ 0x6080, 0x6027, 0x5FCE, 0x5F76,
+ 0x5F1E, 0x5EC6, 0x5E6E, 0x5E17,
+ 0x5DC1, 0x5D6A, 0x5D14, 0x5CBE,
+ 0x5C68, 0x5C13, 0x5BBE, 0x5B6A,
+ 0x5B15, 0x5AC1, 0x5A6E, 0x5A1A,
+ 0x59C7, 0x5974, 0x5922, 0x58CF,
+ 0x587D, 0x582C, 0x57DA, 0x5789,
+ 0x5739, 0x56E8, 0x5698, 0x5648,
+ 0x55F9, 0x55A9, 0x555A, 0x550B,
+ 0x54BD, 0x546F, 0x5421, 0x53D3,
+ 0x5386, 0x5339, 0x52EC, 0x52A0,
+ 0x5253, 0x5207, 0x51BC, 0x5170,
+ 0x5125, 0x50DA, 0x5090, 0x5046,
+ 0x4FFB, 0x4FB2, 0x4F68, 0x4F1F,
+ 0x4ED6, 0x4E8D, 0x4E45, 0x4DFC,
+ 0x4DB5, 0x4D6D, 0x4D25, 0x4CDE,
+ 0x4C97, 0x4C51, 0x4C0A, 0x4BC4,
+ 0x4B7E, 0x4B39, 0x4AF3, 0x4AAE,
+ 0x4A69, 0x4A24, 0x49E0, 0x499C,
+ 0x4958, 0x4914, 0x48D1, 0x488E,
+ 0x484B, 0x4808, 0x47C6, 0x4783
+};
+
+} // End of namespace Scumm
diff --git a/engines/scumm/imuse/pcspk.h b/engines/scumm/imuse/pcspk.h
new file mode 100644
index 0000000000..195bd34b07
--- /dev/null
+++ b/engines/scumm/imuse/pcspk.h
@@ -0,0 +1,160 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef SCUMM_IMUSE_PCSPK_H
+#define SCUMM_IMUSE_PCSPK_H
+
+#include "audio/softsynth/emumidi.h"
+#include "audio/softsynth/pcspk.h"
+
+namespace Scumm {
+
+class PcSpkDriver : public MidiDriver_Emulated {
+public:
+ PcSpkDriver(Audio::Mixer *mixer);
+ ~PcSpkDriver();
+
+ virtual int open();
+ virtual void close();
+
+ virtual void send(uint32 d);
+ virtual void sysEx_customInstrument(byte channel, uint32 type, const byte *instr);
+
+ virtual MidiChannel *allocateChannel();
+ virtual MidiChannel *getPercussionChannel() { return 0; }
+
+ bool isStereo() const { return _pcSpk.isStereo(); }
+ int getRate() const { return _pcSpk.getRate(); }
+protected:
+ void generateSamples(int16 *buf, int len);
+ void onTimer();
+
+private:
+ Audio::PCSpeaker _pcSpk;
+ int _effectTimer;
+ uint8 _randBase;
+
+ void updateNote();
+ void output(uint16 out);
+
+ static uint8 getEffectModifier(uint16 level);
+ int16 getEffectModLevel(int16 level, int8 mod);
+ int16 getRandScale(int16 input);
+
+ struct EffectEnvelope {
+ uint8 state;
+ int16 currentLevel;
+ int16 duration;
+ int16 maxLevel;
+ int16 startLevel;
+ uint8 loop;
+ uint8 stateTargetLevels[4];
+ uint8 stateModWheelLevels[4];
+ uint8 modWheelSensitivity;
+ uint8 modWheelState;
+ uint8 modWheelLast;
+ int16 stateNumSteps;
+ int16 stateStepCounter;
+ int16 changePerStep;
+ int8 dir;
+ int16 changePerStepRem;
+ int16 changeCountRem;
+ };
+
+ struct EffectDefinition {
+ int16 phase;
+ uint8 type;
+ uint8 useModWheel;
+ EffectEnvelope *envelope;
+ };
+
+ struct OutputChannel {
+ uint8 active;
+ uint8 note;
+ uint8 sustainNoteOff;
+ uint8 length;
+ const uint8 *instrument;
+ uint8 unkA;
+ uint8 unkB;
+ uint8 unkC;
+ int16 unkE;
+ EffectEnvelope effectEnvelopeA;
+ EffectDefinition effectDefA;
+ EffectEnvelope effectEnvelopeB;
+ EffectDefinition effectDefB;
+ int16 unk60;
+ };
+
+ struct MidiChannel_PcSpk : public MidiChannel {
+ virtual MidiDriver *device();
+ virtual byte getNumber();
+ virtual void release();
+
+ virtual void send(uint32 b);
+ virtual void noteOff(byte note);
+ virtual void noteOn(byte note, byte velocity);
+ virtual void programChange(byte program);
+ virtual void pitchBend(int16 bend);
+ virtual void controlChange(byte control, byte value);
+ virtual void pitchBendFactor(byte value);
+ virtual void priority(byte value);
+ virtual void sysEx_customInstrument(uint32 type, const byte *instr);
+
+ void init(PcSpkDriver *owner, byte channel);
+ bool allocate();
+
+ PcSpkDriver *_owner;
+ bool _allocated;
+ byte _channel;
+
+ OutputChannel _out;
+ uint8 _instrument[23];
+ uint8 _programNr;
+ uint8 _priority;
+ uint8 _tl;
+ uint8 _modWheel;
+ uint8 _sustain;
+ uint8 _pitchBendFactor;
+ int16 _pitchBend;
+ };
+
+ void setupEffects(MidiChannel_PcSpk &chan, EffectEnvelope &env, EffectDefinition &def, byte flags, const byte *data);
+ void startEffect(EffectEnvelope &env, const byte *data);
+ void initNextEnvelopeState(EffectEnvelope &env);
+ void updateEffectGenerator(MidiChannel_PcSpk &chan, EffectEnvelope &env, EffectDefinition &def);
+ uint8 advanceEffectEnvelope(EffectEnvelope &env, EffectDefinition &def);
+
+ MidiChannel_PcSpk _channels[6];
+ MidiChannel_PcSpk *_activeChannel;
+
+ MidiChannel_PcSpk *_lastActiveChannel;
+ uint16 _lastActiveOut;
+
+ static const byte _outInstrumentData[1024];
+ static const byte _outputTable1[];
+ static const byte _outputTable2[];
+ static const uint16 _effectEnvStepTable[];
+ static const uint16 _frequencyTable[];
+};
+
+} // End of namespace Scumm
+
+#endif
diff --git a/engines/scumm/imuse/sysex.h b/engines/scumm/imuse/sysex.h
index 7dd38e785e..06ac483afd 100644
--- a/engines/scumm/imuse/sysex.h
+++ b/engines/scumm/imuse/sysex.h
@@ -35,4 +35,3 @@ extern void sysexHandler_SamNMax(Player *, const byte *, uint16);
} // End of namespace Scumm
#endif
-
diff --git a/engines/scumm/imuse/sysex_samnmax.cpp b/engines/scumm/imuse/sysex_samnmax.cpp
index 4c4219e7bb..a4f525da56 100644
--- a/engines/scumm/imuse/sysex_samnmax.cpp
+++ b/engines/scumm/imuse/sysex_samnmax.cpp
@@ -53,8 +53,7 @@ void sysexHandler_SamNMax(Player *player, const byte *msg, uint16 len) {
// something magical is supposed to happen....
for (a = 0; a < ARRAYSIZE(se->_snm_triggers); ++a) {
if (se->_snm_triggers[a].sound == player->_id &&
- se->_snm_triggers[a].id == *p)
- {
+ se->_snm_triggers[a].id == *p) {
se->_snm_triggers[a].sound = se->_snm_triggers[a].id = 0;
se->doCommand(8, se->_snm_triggers[a].command);
break;
diff --git a/engines/scumm/imuse/sysex_scumm.cpp b/engines/scumm/imuse/sysex_scumm.cpp
index c3bec93a60..85ffc86f47 100644
--- a/engines/scumm/imuse/sysex_scumm.cpp
+++ b/engines/scumm/imuse/sysex_scumm.cpp
@@ -49,50 +49,52 @@ void sysexHandler_Scumm(Player *player, const byte *msg, uint16 len) {
switch (code = *p++) {
case 0:
// Allocate new part.
- // There are 17 bytes of useful information here.
+ // There are 8 bytes (after decoding!) of useful information here.
// Here is what we know about them so far:
- // BYTE 00: Channel #
- // BYTE 02: BIT 01(0x01): Part on?(1 = yes)
+ // BYTE 0: Channel #
+ // BYTE 1: BIT 01(0x01): Part on?(1 = yes)
// BIT 02(0x02): Reverb? (1 = yes) [bug #1088045]
- // BYTE 04: Priority adjustment [guessing]
- // BYTE 05: Volume(upper 4 bits) [guessing]
- // BYTE 06: Volume(lower 4 bits) [guessing]
- // BYTE 07: Pan(upper 4 bits) [bug #1088045]
- // BYTE 08: Pan(lower 4 bits) [bug #1088045]
- // BYTE 09: BIT 04(0x08): Percussion?(1 = yes)
- // BYTE 13: Pitchbend range(upper 4 bits) [bug #1088045]
- // BYTE 14: Pitchbend range(lower 4 bits) [bug #1088045]
- // BYTE 15: Program(upper 4 bits)
- // BYTE 16: Program(lower 4 bits)
-
- // athrxx (05-21-2011):
- // BYTE 9, 10: Transpose (if set to 0x80, this means that part->_transpose_eff will be 0 (also ignoring player->_transpose)
- // BYTE 11, 12: Detune
+ // BYTE 2: Priority adjustment
+ // BYTE 3: Volume [guessing]
+ // BYTE 4: Pan [bug #1088045]
+ // BYTE 5: BIT 8(0x80): Percussion?(1 = yes) [guessed?]
+ // BYTE 5: Transpose, if set to 0x80(=-1) it means no transpose
+ // BYTE 6: Detune
+ // BYTE 7: Pitchbend factor [bug #1088045]
+ // BYTE 8: Program
part = player->getPart(p[0] & 0x0F);
+ player->decode_sysex_bytes(p + 1, buf + 1, len - 1);
if (part) {
- part->set_onoff(p[2] & 0x01);
- part->effectLevel((p[2] & 0x02) ? 127 : 0);
- part->set_pri(p[4]);
- part->volume((p[5] & 0x0F) << 4 |(p[6] & 0x0F));
- part->set_pan((p[7] & 0x0F) << 4 | (p[8] & 0x0F));
- part->_percussion = player->_isMIDI ? ((p[9] & 0x08) > 0) : false;
- part->set_transpose((p[9] & 0x0F) << 4 | (p[10] & 0x0F));
- part->set_detune((p[11] & 0x0F) << 4 | (p[12] & 0x0F));
- part->pitchBendFactor((p[13] & 0x0F) << 4 | (p[14] & 0x0F));
+ part->set_onoff(buf[1] & 0x01);
+ part->effectLevel((buf[1] & 0x02) ? 127 : 0);
+ part->set_pri(buf[2]);
+ part->volume(buf[3]);
+ part->set_pan(buf[4]);
+ part->_percussion = player->_isMIDI ? ((buf[5] & 0x80) > 0) : false;
+ part->set_transpose(buf[5]);
+ part->set_detune(buf[6]);
+ part->pitchBendFactor(buf[7]);
if (part->_percussion) {
if (part->_mc) {
part->off();
se->reallocateMidiChannels(player->_midi);
}
} else {
- // Even in cases where a program does not seem to be specified,
- // i.e. bytes 15 and 16 are 0, we send a program change because
- // 0 is a valid program number. MI2 tests show that in such
- // cases, a regular program change message always seems to follow
- // anyway.
- if (player->_isMIDI)
- part->_instrument.program((p[15] & 0x0F) << 4 |(p[16] & 0x0F), player->_isMT32);
+ if (player->_isMIDI) {
+ // Even in cases where a program does not seem to be specified,
+ // i.e. bytes 15 and 16 are 0, we send a program change because
+ // 0 is a valid program number. MI2 tests show that in such
+ // cases, a regular program change message always seems to follow
+ // anyway.
+ part->_instrument.program(buf[8], player->_isMT32);
+ } else {
+ // Like the original we set up the instrument data of the
+ // specified program here too. In case the global
+ // instrument data is not loaded already, this will take
+ // care of setting a default instrument too.
+ se->copyGlobalInstrument(buf[8], &part->_instrument);
+ }
part->sendAll();
}
}
@@ -113,11 +115,10 @@ void sysexHandler_Scumm(Player *player, const byte *msg, uint16 len) {
++p; // Skip hardware type
part = player->getPart(a);
if (part) {
- if (len == 62) {
+ if (len == 62 || len == 48) {
player->decode_sysex_bytes(p, buf, len - 2);
part->set_instrument((byte *)buf);
} else {
- // SPK tracks have len == 48 here, and are not supported
part->programChange(254); // Must be invalid, but not 255 (which is reserved)
}
}
@@ -127,7 +128,8 @@ void sysexHandler_Scumm(Player *player, const byte *msg, uint16 len) {
p += 2; // Skip hardware type and... whatever came right before it
a = *p++;
player->decode_sysex_bytes(p, buf, len - 3);
- se->setGlobalAdLibInstrument(a, buf);
+ if (len == 63 || len == 49)
+ se->setGlobalInstrument(a, buf);
break;
case 33: // Parameter adjust
@@ -185,10 +187,9 @@ void sysexHandler_Scumm(Player *player, const byte *msg, uint16 len) {
case 80: // Loop
player->decode_sysex_bytes(p + 1, buf, len - 1);
- player->setLoop
- (READ_BE_UINT16(buf), READ_BE_UINT16(buf + 2),
- READ_BE_UINT16(buf + 4), READ_BE_UINT16(buf + 6),
- READ_BE_UINT16(buf + 8));
+ player->setLoop(READ_BE_UINT16(buf), READ_BE_UINT16(buf + 2),
+ READ_BE_UINT16(buf + 4), READ_BE_UINT16(buf + 6),
+ READ_BE_UINT16(buf + 8));
break;
case 81: // End loop
diff --git a/engines/scumm/imuse_digi/dimuse.cpp b/engines/scumm/imuse_digi/dimuse.cpp
index 23f57a01b9..eb3717494f 100644
--- a/engines/scumm/imuse_digi/dimuse.cpp
+++ b/engines/scumm/imuse_digi/dimuse.cpp
@@ -58,7 +58,7 @@ IMuseDigital::IMuseDigital(ScummEngine_v7 *scumm, Audio::Mixer *mixer, int fps)
memset(_track[l], 0, sizeof(Track));
_track[l]->trackId = l;
}
- _vm->getTimerManager()->installTimerProc(timer_handler, 1000000 / _callbackFps, this);
+ _vm->getTimerManager()->installTimerProc(timer_handler, 1000000 / _callbackFps, this, "IMuseDigital");
_audioNames = NULL;
_numAudioNames = 0;
diff --git a/engines/scumm/input.cpp b/engines/scumm/input.cpp
index 5eea7acc6b..6d9e1f3f72 100644
--- a/engines/scumm/input.cpp
+++ b/engines/scumm/input.cpp
@@ -324,7 +324,17 @@ void ScummEngine::processInput() {
VAR(VAR_LEFTBTN_HOLD) = (_leftBtnPressed & msDown) != 0;
VAR(VAR_RIGHTBTN_HOLD) = (_rightBtnPressed & msDown) != 0;
- if (_game.version >= 7) {
+ if (_game.heversion >= 72) {
+ // HE72 introduced a flag for whether or not this is a click
+ // or the player is continuing to hold the button down.
+ // 0x80 signifies that the button is continuing to be held down
+ // Backyard Soccer needs this in order to function
+ if (VAR(VAR_LEFTBTN_HOLD) && !(_leftBtnPressed & msClicked))
+ VAR(VAR_LEFTBTN_HOLD) |= 0x80;
+
+ if (VAR(VAR_RIGHTBTN_HOLD) && !(_rightBtnPressed & msClicked))
+ VAR(VAR_RIGHTBTN_HOLD) |= 0x80;
+ } else if (_game.version >= 7) {
VAR(VAR_LEFTBTN_DOWN) = (_leftBtnPressed & msClicked) != 0;
VAR(VAR_RIGHTBTN_DOWN) = (_rightBtnPressed & msClicked) != 0;
}
diff --git a/engines/scumm/insane/insane_enemy.cpp b/engines/scumm/insane/insane_enemy.cpp
index 68766ab72c..913f761f31 100644
--- a/engines/scumm/insane/insane_enemy.cpp
+++ b/engines/scumm/insane/insane_enemy.cpp
@@ -2779,4 +2779,3 @@ int32 Insane::actionEnemy() {
}
}
-
diff --git a/engines/scumm/insane/insane_iact.cpp b/engines/scumm/insane/insane_iact.cpp
index 3592d67c18..48c96b537c 100644
--- a/engines/scumm/insane/insane_iact.cpp
+++ b/engines/scumm/insane/insane_iact.cpp
@@ -520,4 +520,3 @@ void Insane::iactScene21(byte *renderBitmap, int32 codecparam, int32 setupsan12,
}
}
-
diff --git a/engines/scumm/insane/insane_scenes.cpp b/engines/scumm/insane/insane_scenes.cpp
index 841fedafe2..6db1cb5059 100644
--- a/engines/scumm/insane/insane_scenes.cpp
+++ b/engines/scumm/insane/insane_scenes.cpp
@@ -1506,4 +1506,3 @@ void Insane::postCaseMore(byte *renderBitmap, int32 codecparam, int32 setupsan12
}
}
-
diff --git a/engines/scumm/module.mk b/engines/scumm/module.mk
index 1a60564a9e..781ca30459 100644
--- a/engines/scumm/module.mk
+++ b/engines/scumm/module.mk
@@ -27,6 +27,7 @@ MODULE_OBJS := \
imuse/imuse_part.o \
imuse/imuse_player.o \
imuse/instrument.o \
+ imuse/pcspk.o \
imuse/sysex_samnmax.o \
imuse/sysex_scumm.o \
input.o \
@@ -123,7 +124,14 @@ MODULE_OBJS += \
he/script_v90he.o \
he/script_v100he.o \
he/sprite_he.o \
- he/wiz_he.o
+ he/wiz_he.o \
+ he/logic/baseball2001.o \
+ he/logic/basketball.o \
+ he/logic/football.o \
+ he/logic/funshop.o \
+ he/logic/moonbase.o \
+ he/logic/puttrace.o \
+ he/logic/soccer.o
endif
# This module can be built as a plugin
diff --git a/engines/scumm/palette.cpp b/engines/scumm/palette.cpp
index 51ba2195d7..30096000ce 100644
--- a/engines/scumm/palette.cpp
+++ b/engines/scumm/palette.cpp
@@ -544,6 +544,12 @@ void ScummEngine::palManipulateInit(int resID, int start, int end, int time) {
return;
#endif
+ // This function is actually a nullsub in Indy4 Amiga.
+ // It might very well be a nullsub in other Amiga games, but for now I
+ // limit this to Indy4 Amiga, since that is the only game I can check.
+ if (_game.platform == Common::kPlatformAmiga && _game.id == GID_INDY4)
+ return;
+
byte *string1 = getStringAddress(resID);
byte *string2 = getStringAddress(resID + 1);
byte *string3 = getStringAddress(resID + 2);
@@ -670,6 +676,12 @@ static inline uint colorWeight(int red, int green, int blue) {
}
void ScummEngine::setShadowPalette(int redScale, int greenScale, int blueScale, int startColor, int endColor, int start, int end) {
+ // This function is actually a nullsub in Indy4 Amiga.
+ // It might very well be a nullsub in other Amiga games, but for now I
+ // limit this to Indy4 Amiga, since that is the only game I can check.
+ if (_game.platform == Common::kPlatformAmiga && _game.id == GID_INDY4)
+ return;
+
const byte *basepal = getPalettePtr(_curPalIndex, _roomResource);
const byte *compareptr;
const byte *pal = basepal + start * 3;
diff --git a/engines/scumm/player_v2.h b/engines/scumm/player_v2.h
index 14a0b9c1e0..d932585b8e 100644
--- a/engines/scumm/player_v2.h
+++ b/engines/scumm/player_v2.h
@@ -46,10 +46,7 @@ public:
virtual int getSoundStatus(int sound) const;
// AudioStream API
- int readBuffer(int16 *buffer, const int numSamples);
- bool isStereo() const { return true; }
- bool endOfData() const { return false; }
- int getRate() const { return _sampleRate; }
+ virtual int readBuffer(int16 *buffer, const int numSamples);
protected:
unsigned int _update_step;
diff --git a/engines/scumm/player_v2base.h b/engines/scumm/player_v2base.h
index 2f048070ad..eb9ed941ca 100644
--- a/engines/scumm/player_v2base.h
+++ b/engines/scumm/player_v2base.h
@@ -86,9 +86,9 @@ public:
return numSamples;
}
*/
- bool isStereo() const { return true; }
- bool endOfData() const { return false; }
- int getRate() const { return _sampleRate; }
+ virtual bool isStereo() const { return true; }
+ virtual bool endOfData() const { return false; }
+ virtual int getRate() const { return _sampleRate; }
protected:
enum {
diff --git a/engines/scumm/player_v2cms.cpp b/engines/scumm/player_v2cms.cpp
index 21e7f193b5..d4b21774ed 100644
--- a/engines/scumm/player_v2cms.cpp
+++ b/engines/scumm/player_v2cms.cpp
@@ -28,162 +28,49 @@
namespace Scumm {
-#define PROCESS_ATTACK 1
-#define PROCESS_RELEASE 2
-#define PROCESS_SUSTAIN 3
-#define PROCESS_DECAY 4
-#define PROCESS_VIBRATO 5
-
-#define CMS_RATE 22050
-
-static const byte freqTable[] = {
- 3, 10, 17, 24, 31, 38, 45, 51,
- 58, 65, 71, 77, 83, 90, 96, 102,
- 107, 113, 119, 125, 130, 136, 141, 146,
- 151, 157, 162, 167, 172, 177, 181, 186,
- 191, 195, 200, 204, 209, 213, 217, 221,
- 226, 230, 234, 238, 242, 246, 249, 253
-};
-
-/*static const byte amplTable[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 0 %
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, // 10 %
- 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, // 20 %
- 0x10, 0x10, 0x20, 0x20, 0x20, 0x20, 0x20, 0x30,
- 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x20, // 30%
- 0x20, 0x20, 0x30, 0x30, 0x30, 0x30, 0x40, 0x40,
- 0x00, 0x00, 0x00, 0x10, 0x10, 0x20, 0x20, 0x20, // 40 %
- 0x30, 0x30, 0x40, 0x40, 0x40, 0x50, 0x50, 0x60,
- 0x00, 0x00, 0x10, 0x10, 0x20, 0x20, 0x30, 0x30, // 50%
- 0x40, 0x40, 0x50, 0x50, 0x60, 0x60, 0x70, 0x70,
- 0x00, 0x00, 0x10, 0x10, 0x20, 0x30, 0x30, 0x40, // 60 %
- 0x40, 0x50, 0x60, 0x60, 0x70, 0x70, 0x80, 0x90,
- 0x00, 0x00, 0x10, 0x20, 0x20, 0x30, 0x40, 0x40, // 70 %
- 0x50, 0x60, 0x70, 0x70, 0x80, 0x90, 0x90, 0xA0,
- 0x00, 0x00, 0x10, 0x20, 0x30, 0x40, 0x40, 0x50, // 80 %
- 0x60, 0x70, 0x80, 0x80, 0x90, 0xA0, 0xB0, 0xC0,
- 0x00, 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, // 90 %
- 0x70, 0x80, 0x90, 0x90, 0xA0, 0xB0, 0xC0, 0xD0,
- 0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, // 100 %
- 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0
-};*/
-
-static const byte octaveTable[] = {
- 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03,
- 0x00, 0x04, 0x00, 0x05, 0x00, 0x06, 0x00, 0x07,
- 0x00, 0x08, 0x00, 0x09, 0x00, 0x0A, 0x00, 0x0B,
- 0x01, 0x00, 0x01, 0x01, 0x01, 0x02, 0x01, 0x03,
- 0x01, 0x04, 0x01, 0x05, 0x01, 0x06, 0x01, 0x07,
- 0x01, 0x08, 0x01, 0x09, 0x01, 0x0A, 0x01, 0x0B,
- 0x02, 0x00, 0x02, 0x01, 0x02, 0x02, 0x02, 0x03,
- 0x02, 0x04, 0x02, 0x05, 0x02, 0x06, 0x02, 0x07,
- 0x02, 0x08, 0x02, 0x09, 0x02, 0x0A, 0x02, 0x0B,
- 0x03, 0x00, 0x03, 0x01, 0x03, 0x02, 0x03, 0x03,
- 0x03, 0x04, 0x03, 0x05, 0x03, 0x06, 0x03, 0x07,
- 0x03, 0x08, 0x03, 0x09, 0x03, 0x0A, 0x03, 0x0B,
- 0x04, 0x00, 0x04, 0x01, 0x04, 0x02, 0x04, 0x03,
- 0x04, 0x04, 0x04, 0x05, 0x04, 0x06, 0x04, 0x07,
- 0x04, 0x08, 0x04, 0x09, 0x04, 0x0A, 0x04, 0x0B,
- 0x05, 0x00, 0x05, 0x01, 0x05, 0x02, 0x05, 0x03,
- 0x05, 0x04, 0x05, 0x05, 0x05, 0x06, 0x05, 0x07,
- 0x05, 0x08, 0x05, 0x09, 0x05, 0x0A, 0x05, 0x0B,
- 0x06, 0x00, 0x06, 0x01, 0x06, 0x02, 0x06, 0x03,
- 0x06, 0x04, 0x06, 0x05, 0x06, 0x06, 0x06, 0x07,
- 0x06, 0x08, 0x06, 0x09, 0x06, 0x0A, 0x06, 0x0B,
- 0x07, 0x00, 0x07, 0x01, 0x07, 0x02, 0x07, 0x03,
- 0x07, 0x04, 0x07, 0x05, 0x07, 0x06, 0x07, 0x07,
- 0x07, 0x08, 0x07, 0x09, 0x07, 0x0A, 0x07, 0x0B,
- 0x08, 0x00, 0x08, 0x01, 0x08, 0x02, 0x08, 0x03,
- 0x08, 0x04, 0x08, 0x05, 0x08, 0x06, 0x08, 0x07,
- 0x08, 0x08, 0x08, 0x09, 0x08, 0x0A, 0x08, 0x0B,
- 0x09, 0x00, 0x09, 0x01, 0x09, 0x02, 0x09, 0x03,
- 0x09, 0x04, 0x09, 0x05, 0x09, 0x06, 0x09, 0x07,
- 0x09, 0x08, 0x09, 0x09, 0x09, 0x0A, 0x09, 0x0B,
- 0x0A, 0x00, 0x0A, 0x01, 0x0A, 0x02, 0x0A, 0x03,
- 0x0A, 0x04, 0x0A, 0x05, 0x0A, 0x06, 0x0A, 0x07,
- 0x0A, 0x08, 0x0A, 0x09, 0x0A, 0x0A, 0x0A, 0x0B
-};
-
-static const byte attackRate[] = {
- 0, 2, 4, 7, 14, 26, 48, 82,
- 128, 144, 160, 176, 192, 208, 224, 255
-};
-
-static const byte decayRate[] = {
- 0, 1, 2, 3, 4, 6, 12, 24,
- 48, 96, 192, 215, 255, 255, 255, 255
-};
-
-static const byte sustainRate[] = {
- 255, 180, 128, 96, 80, 64, 56, 48,
- 42, 36, 32, 28, 24, 20, 16, 0
-};
-
-static const byte releaseRate[] = {
- 0, 1, 2, 4, 6, 9, 14, 22,
- 36, 56, 80, 100, 120, 140, 160, 255
-};
-
-static const byte volumeTable[] = {
- 0x00, 0x10, 0x10, 0x11, 0x11, 0x21, 0x22, 0x22,
- 0x33, 0x44, 0x55, 0x66, 0x88, 0xAA, 0xCC, 0xFF
-};
-
Player_V2CMS::Player_V2CMS(ScummEngine *scumm, Audio::Mixer *mixer)
- : Player_V2Base(scumm, mixer, true) {
- int i;
-
+ : Player_V2Base(scumm, mixer, true), _cmsVoicesBase(), _cmsVoices(),
+ _cmsChips(), _midiDelay(0), _octaveMask(0), _looping(0), _tempo(0),
+ _tempoSum(0), _midiData(0), _midiSongBegin(0), _musicTimer(0),
+ _musicTimerTicks(0), _voiceTimer(0), _loadedMidiSong(0),
+ _outputTableReady(0), _midiChannel(), _midiChannelUse() {
setMusicVolume(255);
- memset(_cmsVoicesBase, 0, sizeof(Voice)*16);
- memset(_cmsVoices, 0, sizeof(Voice2)*8);
- memset(_cmsChips, 0, sizeof(MusicChip)*2);
- _midiDelay = _octaveMask = _looping = _tempo = 0;
- _midiData = _midiSongBegin = 0;
- _loadedMidiSong = 0;
- memset(_midiChannel, 0, sizeof(Voice2*)*16);
- memset(_midiChannelUse, 0, sizeof(byte)*16);
-
- _cmsVoices[0].amplitudeOutput = &(_cmsChips[0].ampl[0]);
- _cmsVoices[0].freqOutput = &(_cmsChips[0].freq[0]);
- _cmsVoices[0].octaveOutput = &(_cmsChips[0].octave[0]);
- _cmsVoices[1].amplitudeOutput = &(_cmsChips[0].ampl[1]);
- _cmsVoices[1].freqOutput = &(_cmsChips[0].freq[1]);
- _cmsVoices[1].octaveOutput = &(_cmsChips[0].octave[0]);
- _cmsVoices[2].amplitudeOutput = &(_cmsChips[0].ampl[2]);
- _cmsVoices[2].freqOutput = &(_cmsChips[0].freq[2]);
- _cmsVoices[2].octaveOutput = &(_cmsChips[0].octave[1]);
- _cmsVoices[3].amplitudeOutput = &(_cmsChips[0].ampl[3]);
- _cmsVoices[3].freqOutput = &(_cmsChips[0].freq[3]);
- _cmsVoices[3].octaveOutput = &(_cmsChips[0].octave[1]);
- _cmsVoices[4].amplitudeOutput = &(_cmsChips[1].ampl[0]);
- _cmsVoices[4].freqOutput = &(_cmsChips[1].freq[0]);
- _cmsVoices[4].octaveOutput = &(_cmsChips[1].octave[0]);
- _cmsVoices[5].amplitudeOutput = &(_cmsChips[1].ampl[1]);
- _cmsVoices[5].freqOutput = &(_cmsChips[1].freq[1]);
- _cmsVoices[5].octaveOutput = &(_cmsChips[1].octave[0]);
- _cmsVoices[6].amplitudeOutput = &(_cmsChips[1].ampl[2]);
- _cmsVoices[6].freqOutput = &(_cmsChips[1].freq[2]);
- _cmsVoices[6].octaveOutput = &(_cmsChips[1].octave[1]);
- _cmsVoices[7].amplitudeOutput = &(_cmsChips[1].ampl[3]);
- _cmsVoices[7].freqOutput = &(_cmsChips[1].freq[3]);
- _cmsVoices[7].octaveOutput = &(_cmsChips[1].octave[1]);
+ memset(_sfxFreq, 0xFF, sizeof(_sfxFreq));
+ memset(_sfxAmpl, 0x00, sizeof(_sfxAmpl));
+ memset(_sfxOctave, 0x66, sizeof(_sfxOctave));
+
+ _cmsVoices[0].amplitudeOutput = &_cmsChips[0].ampl[0];
+ _cmsVoices[0].freqOutput = &_cmsChips[0].freq[0];
+ _cmsVoices[0].octaveOutput = &_cmsChips[0].octave[0];
+ _cmsVoices[1].amplitudeOutput = &_cmsChips[0].ampl[1];
+ _cmsVoices[1].freqOutput = &_cmsChips[0].freq[1];
+ _cmsVoices[1].octaveOutput = &_cmsChips[0].octave[0];
+ _cmsVoices[2].amplitudeOutput = &_cmsChips[0].ampl[2];
+ _cmsVoices[2].freqOutput = &_cmsChips[0].freq[2];
+ _cmsVoices[2].octaveOutput = &_cmsChips[0].octave[1];
+ _cmsVoices[3].amplitudeOutput = &_cmsChips[0].ampl[3];
+ _cmsVoices[3].freqOutput = &_cmsChips[0].freq[3];
+ _cmsVoices[3].octaveOutput = &_cmsChips[0].octave[1];
+ _cmsVoices[4].amplitudeOutput = &_cmsChips[1].ampl[0];
+ _cmsVoices[4].freqOutput = &_cmsChips[1].freq[0];
+ _cmsVoices[4].octaveOutput = &_cmsChips[1].octave[0];
+ _cmsVoices[5].amplitudeOutput = &_cmsChips[1].ampl[1];
+ _cmsVoices[5].freqOutput = &_cmsChips[1].freq[1];
+ _cmsVoices[5].octaveOutput = &_cmsChips[1].octave[0];
+ _cmsVoices[6].amplitudeOutput = &_cmsChips[1].ampl[2];
+ _cmsVoices[6].freqOutput = &_cmsChips[1].freq[2];
+ _cmsVoices[6].octaveOutput = &_cmsChips[1].octave[1];
+ _cmsVoices[7].amplitudeOutput = &_cmsChips[1].ampl[3];
+ _cmsVoices[7].freqOutput = &_cmsChips[1].freq[3];
+ _cmsVoices[7].octaveOutput = &_cmsChips[1].octave[1];
// inits the CMS Emulator like in the original
_cmsEmu = new CMSEmulator(_sampleRate);
- static const byte cmsInitData[13*2] = {
- 0x1C, 0x02,
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00,
- 0x14, 0x3F, 0x15, 0x00, 0x16, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1C, 0x01
- };
-
- i = 0;
- for (int cmsPort = 0x220; i < 2; cmsPort += 2, ++i) {
+ for (int i = 0, cmsPort = 0x220; i < 2; cmsPort += 2, ++i) {
for (int off = 0; off < 13; ++off) {
- _cmsEmu->portWrite(cmsPort+1, cmsInitData[off*2]);
- _cmsEmu->portWrite(cmsPort, cmsInitData[off*2+1]);
+ _cmsEmu->portWrite(cmsPort+1, _cmsInitData[off*2]);
+ _cmsEmu->portWrite(cmsPort, _cmsInitData[off*2+1]);
}
}
@@ -200,6 +87,10 @@ Player_V2CMS::~Player_V2CMS() {
void Player_V2CMS::setMusicVolume(int vol) {
}
+int Player_V2CMS::getMusicTimer() {
+ return _midiData ? _musicTimer : Player_V2Base::getMusicTimer();
+}
+
void Player_V2CMS::stopAllSounds() {
Common::StackLock lock(_mutex);
@@ -211,6 +102,7 @@ void Player_V2CMS::stopAllSounds() {
_midiData = 0;
_midiSongBegin = 0;
_midiDelay = 0;
+ _musicTimer = _musicTimerTicks = 0;
offAllChannels();
}
@@ -244,6 +136,7 @@ void Player_V2CMS::startSound(int nr) {
assert(data);
if (data[6] == 0x80) {
+ _musicTimer = _musicTimerTicks = 0;
loadMidiData(data, nr);
} else {
int cprio = _current_data ? *(_current_data + _header_len) : 0;
@@ -282,7 +175,8 @@ void Player_V2CMS::startSound(int nr) {
}
void Player_V2CMS::loadMidiData(byte *data, int sound) {
- memset(_midiChannelUse, 0, sizeof(byte)*16);
+ memset(_midiChannelUse, 0, sizeof(_midiChannelUse));
+ memset(_midiChannel, 0, sizeof(_midiChannel));
_tempo = data[7];
_looping = data[8];
@@ -299,11 +193,11 @@ void Player_V2CMS::loadMidiData(byte *data, int sound) {
Voice *voiceDef = &_cmsVoicesBase[channel];
byte attackDecay = voice2[10];
- voiceDef->attack = attackRate[attackDecay >> 4];
- voiceDef->decay = decayRate[attackDecay & 0x0F];
+ voiceDef->attack = _attackRate[attackDecay >> 4];
+ voiceDef->decay = _decayRate[attackDecay & 0x0F];
byte sustainRelease = voice2[11];
- voiceDef->sustain = sustainRate[sustainRelease >> 4];
- voiceDef->release = releaseRate[sustainRelease & 0x0F];
+ voiceDef->sustain = _sustainRate[sustainRelease >> 4];
+ voiceDef->release = _releaseRate[sustainRelease & 0x0F];
if (voice2[3] & 0x40) {
voiceDef->vibrato = 0x0301;
@@ -331,12 +225,10 @@ void Player_V2CMS::loadMidiData(byte *data, int sound) {
}
}
- for (int i = 0, channel = 0; i < 8; ++i, channel += 2) {
+ for (int i = 0; i < 8; ++i) {
_cmsVoices[i].chanNumber = 0xFF;
_cmsVoices[i].curVolume = 0;
_cmsVoices[i].nextVoice = 0;
-
- _midiChannel[channel] = 0;
}
_midiDelay = 0;
@@ -351,11 +243,17 @@ int Player_V2CMS::getSoundStatus(int nr) const {
return _current_nr == nr || _next_nr == nr || _loadedMidiSong == nr;
}
-void Player_V2CMS::processMidiData(uint ticks) {
+void Player_V2CMS::processMidiData() {
byte *currentData = _midiData;
byte command = 0x00;
int16 temp = 0;
+ ++_musicTimerTicks;
+ if (_musicTimerTicks > 60) {
+ _musicTimerTicks = 0;
+ ++_musicTimer;
+ }
+
if (!_midiDelay) {
while (true) {
if ((command = *currentData++) == 0xFF) {
@@ -365,6 +263,8 @@ void Player_V2CMS::processMidiData(uint ticks) {
continue;
}
_midiData = _midiSongBegin = 0;
+ _midiDelay = 0;
+ _loadedMidiSong = 0;
offAllChannels();
return;
} else {
@@ -400,7 +300,7 @@ void Player_V2CMS::processMidiData(uint ticks) {
_midiDelay = temp;
}
- _midiDelay -= ticks;
+ --_midiDelay;
if (_midiDelay < 0)
_midiDelay = 0;
@@ -415,27 +315,21 @@ int Player_V2CMS::readBuffer(int16 *buffer, const int numSamples) {
// maybe this needs a complete rewrite
do {
- if (_midiData) {
- --_clkFrequenz;
- if (!(_clkFrequenz & 0x01)) {
- playVoice();
- }
-
- _tempoSum += _tempo;
- // FIXME: _tempoSum is declared as char; on some systems char is unsigned.
- // E.g. on OS X. Hence the following check is always false.
- // Moral of the story: Use uint8, int8 or any of the other types provided by
- // ScummVM if you want to ensure signedness and number of available bits.
- if (_tempoSum < 0) {
- // this have to be called in the same rate as in the original (I think)
- processMidiData(1);
+ if (!(_next_tick >> FIXP_SHIFT)) {
+ if (_midiData) {
+ --_voiceTimer;
+ if (!(_voiceTimer & 0x01))
+ playVoice();
+
+ int newTempoSum = _tempo + _tempoSum;
+ _tempoSum = newTempoSum & 0xFF;
+ if (newTempoSum > 0xFF)
+ processMidiData();
+ } else {
+ nextTick();
+ play();
}
- }
-
- if (!(_next_tick >> FIXP_SHIFT) && !_midiData) {
_next_tick += _tick_len;
- nextTick();
- play();
}
step = len;
@@ -456,99 +350,95 @@ void Player_V2CMS::playVoice() {
}
_octaveMask = 0xF0;
- Voice2 *voice =0;
+ Voice2 *voice = 0;
for (int i = 0; i < 8; ++i) {
voice = &_cmsVoices[i];
_octaveMask = ~_octaveMask;
if (voice->chanNumber != 0xFF) {
processChannel(voice);
- continue;
- }
-
- if (!voice->curVolume) {
- *(voice->amplitudeOutput) = 0;
- }
+ } else {
+ if (!voice->curVolume) {
+ *(voice->amplitudeOutput) = 0;
+ }
- int volume = voice->curVolume - voice->releaseRate;
- voice->curVolume = volume;
+ int volume = voice->curVolume - voice->releaseRate;
+ if (volume < 0)
+ volume = 0;
- if (volume < 0) {
- volume = voice->curVolume = 0;
+ voice->curVolume = volume;
+ *(voice->amplitudeOutput) = ((volume >> 4) | (volume & 0xF0)) & voice->channel;
+ ++_outputTableReady;
}
-
- *(voice->amplitudeOutput) = ((volume >> 4) | (volume & 0xF0)) & voice->channel;
- ++_outputTableReady;
}
}
void Player_V2CMS::processChannel(Voice2 *channel) {
++_outputTableReady;
switch (channel->nextProcessState) {
- case PROCESS_RELEASE:
- processRelease(channel);
- break;
-
- case PROCESS_ATTACK:
+ case Voice2::kEnvelopeAttack:
processAttack(channel);
break;
- case PROCESS_DECAY:
+ case Voice2::kEnvelopeDecay:
processDecay(channel);
break;
- case PROCESS_SUSTAIN:
+ case Voice2::kEnvelopeSustain:
processSustain(channel);
break;
- case PROCESS_VIBRATO:
- processVibrato(channel);
- break;
-
- default:
+ case Voice2::kEnvelopeRelease:
+ processRelease(channel);
break;
}
}
void Player_V2CMS::processRelease(Voice2 *channel) {
- channel->curVolume -= channel->releaseRate;
- if (channel->curVolume < 0)
- channel->curVolume = 0;
+ int newVolume = channel->curVolume - channel->releaseRate;
+ if (newVolume < 0)
+ newVolume = 0;
+
+ channel->curVolume = newVolume;
processVibrato(channel);
}
void Player_V2CMS::processAttack(Voice2 *channel) {
- channel->curVolume += channel->attackRate;
- if (channel->curVolume >= 0) {
- if (channel->curVolume <= channel->maxAmpl)
- return processVibrato(channel);
+ int newVolume = channel->curVolume + channel->attackRate;
+ if (newVolume > channel->maxAmpl) {
+ channel->curVolume = channel->maxAmpl;
+ channel->nextProcessState = Voice2::kEnvelopeDecay;
+ } else {
+ channel->curVolume = newVolume;
}
- channel->curVolume = channel->maxAmpl;
- channel->nextProcessState = PROCESS_DECAY;
+
processVibrato(channel);
}
void Player_V2CMS::processDecay(Voice2 *channel) {
- channel->curVolume -= channel->decayRate;
- if (channel->curVolume >= 0) {
- if (channel->curVolume > channel->sustainRate)
- return processVibrato(channel);
+ int newVolume = channel->curVolume - channel->decayRate;
+ if (newVolume <= channel->sustainRate) {
+ channel->curVolume = channel->sustainRate;
+ channel->nextProcessState = Voice2::kEnvelopeSustain;
+ } else {
+ channel->curVolume = newVolume;
}
- channel->curVolume = channel->sustainRate;
- channel->nextProcessState = PROCESS_SUSTAIN;
+
processVibrato(channel);
}
void Player_V2CMS::processSustain(Voice2 *channel) {
if (channel->unkVibratoRate) {
- int volume = (int)channel->curVolume + (int)channel->unkRate;
+ int16 volume = channel->curVolume + channel->unkRate;
if (volume & 0xFF00) {
- volume = ((~volume) >> 8) & 0xFF;
+ volume = int8(volume >> 8);
+ volume = -volume;
}
+
channel->curVolume = volume;
- --(channel->unkCount);
+ --channel->unkCount;
if (!channel->unkCount) {
- channel->unkRate = ~(channel->unkRate);
+ channel->unkRate = -channel->unkRate;
channel->unkCount = (channel->unkVibratoDepth & 0x0F) << 1;
}
}
@@ -557,12 +447,13 @@ void Player_V2CMS::processSustain(Voice2 *channel) {
void Player_V2CMS::processVibrato(Voice2 *channel) {
if (channel->vibratoRate) {
- uint16 temp = channel->curFreq + channel->curVibratoRate;
+ int16 temp = channel->curFreq + channel->curVibratoRate;
channel->curOctave += (temp & 0xFF00) >> 8;
channel->curFreq = temp & 0xFF;
- --(channel->curVibratoUnk);
+
+ --channel->curVibratoUnk;
if (!channel->curVibratoUnk) {
- channel->curVibratoRate = ~(channel->curVibratoRate);
+ channel->curVibratoRate = -channel->curVibratoRate;
channel->curVibratoUnk = (channel->vibratoDepth & 0x0F) << 1;
}
}
@@ -572,25 +463,16 @@ void Player_V2CMS::processVibrato(Voice2 *channel) {
output = channel->freqOutput;
*output = channel->curFreq;
output = channel->octaveOutput;
- *output = ((((channel->curOctave >> 4) | (channel->curOctave & 0x0F)) & _octaveMask) | ((~_octaveMask) & *output));
+ *output = (((channel->curOctave << 4) | (channel->curOctave & 0x0F)) & _octaveMask) | ((~_octaveMask) & *output);
}
void Player_V2CMS::offAllChannels() {
- warning("offAllChannels STUB");
-/*
- // after using this sound can not be played anymore (since it would deinit the emulator)
- static const byte cmsOffData[10*2] = {
- 0x1C, 0x02,
- 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00,
- 0x14, 0x3F, 0x15, 0x00, 0x16, 0x00
- };
-
for (int cmsPort = 0x220, i = 0; i < 2; cmsPort += 2, ++i) {
- for (int off = 0; off < 10; ++off) {
- _cmsEmu->portWrite(cmsPort+1, cmsOffData[off*2]);
- _cmsEmu->portWrite(cmsPort, cmsOffData[off*2+1]);
+ for (int off = 1; off <= 10; ++off) {
+ _cmsEmu->portWrite(cmsPort+1, _cmsInitData[off*2]);
+ _cmsEmu->portWrite(cmsPort, _cmsInitData[off*2+1]);
}
- }*/
+ }
}
Player_V2CMS::Voice2 *Player_V2CMS::getFreeVoice() {
@@ -637,8 +519,10 @@ void Player_V2CMS::playNote(byte *&data) {
freeVoice->sustainRate = voice->sustain;
freeVoice->releaseRate = voice->release;
freeVoice->octaveAdd = voice->octadd;
- freeVoice->vibratoRate = freeVoice->curVibratoRate = voice->vibrato;
- freeVoice->unkVibratoRate = freeVoice->unkRate = voice->vibrato2;
+ freeVoice->vibratoRate = freeVoice->curVibratoRate = voice->vibrato & 0xFF;
+ freeVoice->vibratoDepth = freeVoice->curVibratoUnk = voice->vibrato >> 8;
+ freeVoice->unkVibratoRate = freeVoice->unkRate = voice->vibrato2 & 0xFF;
+ freeVoice->unkVibratoDepth = freeVoice->unkCount = voice->vibrato2 >> 8;
freeVoice->maxAmpl = 0xFF;
uint8 rate = freeVoice->attackRate;
@@ -650,7 +534,14 @@ void Player_V2CMS::playNote(byte *&data) {
rate -= freeVoice->attackRate;
freeVoice->curVolume = rate;
freeVoice->playingNote = *data;
- int octave = octaveTable[(*data + 3) << 1] + freeVoice->octaveAdd - 3;
+
+ int effectiveNote = freeVoice->playingNote + 3;
+ if (effectiveNote < 0 || effectiveNote >= ARRAYSIZE(_midiNotes)) {
+ warning("Player_V2CMS::playNote: Note %d out of bounds", effectiveNote);
+ effectiveNote = CLIP<int>(effectiveNote, 0, ARRAYSIZE(_midiNotes) - 1);
+ }
+
+ int octave = _midiNotes[effectiveNote].baseOctave + freeVoice->octaveAdd - 3;
if (octave < 0)
octave = 0;
if (octave > 7)
@@ -658,10 +549,10 @@ void Player_V2CMS::playNote(byte *&data) {
if (!octave)
++octave;
freeVoice->curOctave = octave;
- freeVoice->curFreq = freqTable[volume << 2];
+ freeVoice->curFreq = _midiNotes[effectiveNote].frequency;
freeVoice->curVolume = 0;
- freeVoice->nextProcessState = PROCESS_ATTACK;
- if (_lastMidiCommand & 1)
+ freeVoice->nextProcessState = Voice2::kEnvelopeAttack;
+ if (!(_lastMidiCommand & 1))
freeVoice->channel = 0xF0;
else
freeVoice->channel = 0x0F;
@@ -672,35 +563,27 @@ void Player_V2CMS::playNote(byte *&data) {
Player_V2CMS::Voice2 *Player_V2CMS::getPlayVoice(byte param) {
byte channelNum = _lastMidiCommand & 0x0F;
- Voice2 *channel = _midiChannel[channelNum];
+ Voice2 *curVoice = _midiChannel[channelNum];
- if (channel) {
- Voice2 *backUp = 0;
+ if (curVoice) {
+ Voice2 *prevVoice = 0;
while (true) {
- if (channel->playingNote == param)
+ if (curVoice->playingNote == param)
break;
- backUp = channel;
- channel = channel->nextVoice;
- if (!channel)
+ prevVoice = curVoice;
+ curVoice = curVoice->nextVoice;
+ if (!curVoice)
return 0;
}
- Voice2 *backUp2 = channel->nextVoice;
- {
- Voice2 *temp = backUp;
- backUp = channel;
- channel = temp;
- }
- if (channel) {
- channel->nextVoice = backUp2;
- } else {
- _midiChannel[channelNum] = backUp2;
- }
- channel = backUp;
+ if (prevVoice)
+ prevVoice->nextVoice = curVoice->nextVoice;
+ else
+ _midiChannel[channelNum] = curVoice->nextVoice;
}
- return channel;
+ return curVoice;
}
void Player_V2CMS::clearNote(byte *&data) {
@@ -708,22 +591,17 @@ void Player_V2CMS::clearNote(byte *&data) {
if (voice) {
voice->chanNumber = 0xFF;
voice->nextVoice = 0;
- voice->nextProcessState = PROCESS_RELEASE;
+ voice->nextProcessState = Voice2::kEnvelopeRelease;
}
data += 2;
}
void Player_V2CMS::play() {
_octaveMask = 0xF0;
- channel_data *chan = &(_channels[0].d);
+ channel_data *chan = &_channels[0].d;
- static byte volumeReg[4] = { 0x00, 0x00, 0x00, 0x00 };
- static byte octaveReg[4] = { 0x66, 0x66, 0x66, 0x66 };
- static byte freqReg[4] = { 0xFF, 0xFF, 0xFF, 0xFF };
+ byte noiseGen = 3;
- static byte freqEnable = 0x3E;
- static byte noiseEnable = 0x01;
- static byte noiseGen = 0x02;
for (int i = 1; i <= 4; ++i) {
if (chan->time_left) {
uint16 freq = chan->freq;
@@ -733,8 +611,8 @@ void Player_V2CMS::play() {
noiseGen = freq & 0xFF;
} else {
noiseGen = 3;
- freqReg[0] = freqReg[3];
- octaveReg[0] = (octaveReg[0] & 0xF0) | ((octaveReg[1] & 0xF0) >> 4);
+ _sfxFreq[0] = _sfxFreq[3];
+ _sfxOctave[0] = (_sfxOctave[0] & 0xF0) | ((_sfxOctave[1] & 0xF0) >> 4);
}
} else {
if (freq == 0) {
@@ -760,17 +638,18 @@ void Player_V2CMS::play() {
oct |= cmsOct;
oct &= _octaveMask;
- oct |= ((~_octaveMask) & octaveReg[((i & 3) >> 1)]);
- octaveReg[((i & 3) >> 1)] = oct;
+ oct |= (~_octaveMask) & _sfxOctave[(i & 3) >> 1];
+ _sfxOctave[(i & 3) >> 1] = oct;
- freq >>= -(cmsOct-9);
- freqReg[(i&3)] = (-(freq-511)) & 0xFF;
+ freq >>= -(cmsOct - 9);
+ _sfxFreq[i & 3] = (-(freq - 511)) & 0xFF;
}
- volumeReg[i & 3] = volumeTable[chan->volume >> 12];
+ _sfxAmpl[i & 3] = _volumeTable[chan->volume >> 12];
} else {
- volumeReg[i & 3] = 0;
+ _sfxAmpl[i & 3] = 0;
}
- chan = &(_channels[i].d);
+
+ chan = &_channels[i].d;
_octaveMask ^= 0xFF;
}
@@ -778,29 +657,29 @@ void Player_V2CMS::play() {
// the right channels amplitude is set
// with the low value the left channels amplitude
_cmsEmu->portWrite(0x221, 0);
- _cmsEmu->portWrite(0x220, volumeReg[0]);
+ _cmsEmu->portWrite(0x220, _sfxAmpl[0]);
_cmsEmu->portWrite(0x221, 1);
- _cmsEmu->portWrite(0x220, volumeReg[1]);
+ _cmsEmu->portWrite(0x220, _sfxAmpl[1]);
_cmsEmu->portWrite(0x221, 2);
- _cmsEmu->portWrite(0x220, volumeReg[2]);
+ _cmsEmu->portWrite(0x220, _sfxAmpl[2]);
_cmsEmu->portWrite(0x221, 3);
- _cmsEmu->portWrite(0x220, volumeReg[3]);
+ _cmsEmu->portWrite(0x220, _sfxAmpl[3]);
_cmsEmu->portWrite(0x221, 8);
- _cmsEmu->portWrite(0x220, freqReg[0]);
+ _cmsEmu->portWrite(0x220, _sfxFreq[0]);
_cmsEmu->portWrite(0x221, 9);
- _cmsEmu->portWrite(0x220, freqReg[1]);
+ _cmsEmu->portWrite(0x220, _sfxFreq[1]);
_cmsEmu->portWrite(0x221, 10);
- _cmsEmu->portWrite(0x220, freqReg[2]);
+ _cmsEmu->portWrite(0x220, _sfxFreq[2]);
_cmsEmu->portWrite(0x221, 11);
- _cmsEmu->portWrite(0x220, freqReg[3]);
+ _cmsEmu->portWrite(0x220, _sfxFreq[3]);
_cmsEmu->portWrite(0x221, 0x10);
- _cmsEmu->portWrite(0x220, octaveReg[0]);
+ _cmsEmu->portWrite(0x220, _sfxOctave[0]);
_cmsEmu->portWrite(0x221, 0x11);
- _cmsEmu->portWrite(0x220, octaveReg[1]);
+ _cmsEmu->portWrite(0x220, _sfxOctave[1]);
_cmsEmu->portWrite(0x221, 0x14);
- _cmsEmu->portWrite(0x220, freqEnable);
+ _cmsEmu->portWrite(0x220, 0x3E);
_cmsEmu->portWrite(0x221, 0x15);
- _cmsEmu->portWrite(0x220, noiseEnable);
+ _cmsEmu->portWrite(0x220, 0x01);
_cmsEmu->portWrite(0x221, 0x16);
_cmsEmu->portWrite(0x220, noiseGen);
}
@@ -838,4 +717,71 @@ void Player_V2CMS::playMusicChips(const MusicChip *table) {
} while ((cmsPort & 2) == 0);
}
+const Player_V2CMS::MidiNote Player_V2CMS::_midiNotes[132] = {
+ { 3, 0 }, { 31, 0 }, { 58, 0 }, { 83, 0 },
+ { 107, 0 }, { 130, 0 }, { 151, 0 }, { 172, 0 },
+ { 191, 0 }, { 209, 0 }, { 226, 0 }, { 242, 0 },
+ { 3, 1 }, { 31, 1 }, { 58, 1 }, { 83, 1 },
+ { 107, 1 }, { 130, 1 }, { 151, 1 }, { 172, 1 },
+ { 191, 1 }, { 209, 1 }, { 226, 1 }, { 242, 1 },
+ { 3, 2 }, { 31, 2 }, { 58, 2 }, { 83, 2 },
+ { 107, 2 }, { 130, 2 }, { 151, 2 }, { 172, 2 },
+ { 191, 2 }, { 209, 2 }, { 226, 2 }, { 242, 2 },
+ { 3, 3 }, { 31, 3 }, { 58, 3 }, { 83, 3 },
+ { 107, 3 }, { 130, 3 }, { 151, 3 }, { 172, 3 },
+ { 191, 3 }, { 209, 3 }, { 226, 3 }, { 242, 3 },
+ { 3, 4 }, { 31, 4 }, { 58, 4 }, { 83, 4 },
+ { 107, 4 }, { 130, 4 }, { 151, 4 }, { 172, 4 },
+ { 191, 4 }, { 209, 4 }, { 226, 4 }, { 242, 4 },
+ { 3, 5 }, { 31, 5 }, { 58, 5 }, { 83, 5 },
+ { 107, 5 }, { 130, 5 }, { 151, 5 }, { 172, 5 },
+ { 191, 5 }, { 209, 5 }, { 226, 5 }, { 242, 5 },
+ { 3, 6 }, { 31, 6 }, { 58, 6 }, { 83, 6 },
+ { 107, 6 }, { 130, 6 }, { 151, 6 }, { 172, 6 },
+ { 191, 6 }, { 209, 6 }, { 226, 6 }, { 242, 6 },
+ { 3, 7 }, { 31, 7 }, { 58, 7 }, { 83, 7 },
+ { 107, 7 }, { 130, 7 }, { 151, 7 }, { 172, 7 },
+ { 191, 7 }, { 209, 7 }, { 226, 7 }, { 242, 7 },
+ { 3, 8 }, { 31, 8 }, { 58, 8 }, { 83, 8 },
+ { 107, 8 }, { 130, 8 }, { 151, 8 }, { 172, 8 },
+ { 191, 8 }, { 209, 8 }, { 226, 8 }, { 242, 8 },
+ { 3, 9 }, { 31, 9 }, { 58, 9 }, { 83, 9 },
+ { 107, 9 }, { 130, 9 }, { 151, 9 }, { 172, 9 },
+ { 191, 9 }, { 209, 9 }, { 226, 9 }, { 242, 9 },
+ { 3, 10 }, { 31, 10 }, { 58, 10 }, { 83, 10 },
+ { 107, 10 }, { 130, 10 }, { 151, 10 }, { 172, 10 },
+ { 191, 10 }, { 209, 10 }, { 226, 10 }, { 242, 10 }
+};
+
+const byte Player_V2CMS::_attackRate[16] = {
+ 0, 2, 4, 7, 14, 26, 48, 82,
+ 128, 144, 160, 176, 192, 208, 224, 255
+};
+
+const byte Player_V2CMS::_decayRate[16] = {
+ 0, 1, 2, 3, 4, 6, 12, 24,
+ 48, 96, 192, 215, 255, 255, 255, 255
+};
+
+const byte Player_V2CMS::_sustainRate[16] = {
+ 255, 180, 128, 96, 80, 64, 56, 48,
+ 42, 36, 32, 28, 24, 20, 16, 0
+};
+
+const byte Player_V2CMS::_releaseRate[16] = {
+ 0, 1, 2, 4, 6, 9, 14, 22,
+ 36, 56, 80, 100, 120, 140, 160, 255
+};
+
+const byte Player_V2CMS::_volumeTable[16] = {
+ 0x00, 0x10, 0x10, 0x11, 0x11, 0x21, 0x22, 0x22,
+ 0x33, 0x44, 0x55, 0x66, 0x88, 0xAA, 0xCC, 0xFF
+};
+
+const byte Player_V2CMS::_cmsInitData[26] = {
+ 0x1C, 0x02,
+ 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x03, 0x00, 0x04, 0x00, 0x05, 0x00,
+ 0x14, 0x3F, 0x15, 0x00, 0x16, 0x00, 0x18, 0x00, 0x19, 0x00, 0x1C, 0x01
+};
+
} // End of namespace Scumm
diff --git a/engines/scumm/player_v2cms.h b/engines/scumm/player_v2cms.h
index f7dc0c16b1..905c7c141e 100644
--- a/engines/scumm/player_v2cms.h
+++ b/engines/scumm/player_v2cms.h
@@ -42,18 +42,14 @@ public:
virtual void startSound(int sound);
virtual void stopSound(int sound);
virtual void stopAllSounds();
-// virtual int getMusicTimer();
+ virtual int getMusicTimer();
virtual int getSoundStatus(int sound) const;
// AudioStream API
- int readBuffer(int16 *buffer, const int numSamples);
- bool isStereo() const { return true; }
- bool endOfData() const { return false; }
- int getRate() const { return _sampleRate; }
+ virtual int readBuffer(int16 *buffer, const int numSamples);
+ virtual bool isStereo() const { return true; }
-protected:
-
-#include "common/pack-start.h" // START STRUCT PACKING
+private:
struct Voice {
byte attack;
byte decay;
@@ -63,7 +59,7 @@ protected:
int16 vibrato;
int16 vibrato2;
int16 noise;
- } PACKED_STRUCT;
+ };
struct Voice2 {
byte *amplitudeOutput;
@@ -72,12 +68,12 @@ protected:
uint8 channel;
int8 sustainLevel;
- int8 attackRate;
+ uint8 attackRate;
uint8 maxAmpl;
- int8 decayRate;
- int8 sustainRate;
- int8 releaseRate;
- int8 releaseTime;
+ uint8 decayRate;
+ uint8 sustainRate;
+ uint8 releaseRate;
+ uint8 releaseTime;
int8 vibratoRate;
int8 vibratoDepth;
@@ -90,10 +86,17 @@ protected:
int8 unkRate;
int8 unkCount;
- int nextProcessState;
- int8 curVolume;
- int8 curOctave;
- int8 curFreq;
+ enum EnvelopeState {
+ kEnvelopeAttack,
+ kEnvelopeDecay,
+ kEnvelopeSustain,
+ kEnvelopeRelease
+ };
+
+ EnvelopeState nextProcessState;
+ uint8 curVolume;
+ uint8 curOctave;
+ uint8 curFreq;
int8 octaveAdd;
@@ -101,21 +104,20 @@ protected:
Voice2 *nextVoice;
byte chanNumber;
- } PACKED_STRUCT;
+ };
struct MusicChip {
byte ampl[4];
byte freq[4];
byte octave[2];
- } PACKED_STRUCT;
-#include "common/pack-end.h" // END STRUCT PACKING
+ };
Voice _cmsVoicesBase[16];
Voice2 _cmsVoices[8];
MusicChip _cmsChips[2];
- int8 _tempo;
- int8 _tempoSum;
+ uint8 _tempo;
+ uint8 _tempoSum;
byte _looping;
byte _octaveMask;
int16 _midiDelay;
@@ -126,11 +128,13 @@ protected:
int _loadedMidiSong;
+ byte _sfxFreq[4], _sfxAmpl[4], _sfxOctave[2];
+
byte _lastMidiCommand;
uint _outputTableReady;
- byte _clkFrequenz;
- byte _restart;
- byte _curSno;
+ byte _voiceTimer;
+
+ int _musicTimer, _musicTimerTicks;
void loadMidiData(byte *data, int sound);
void play();
@@ -147,15 +151,25 @@ protected:
void clearNote(byte *&data);
void offAllChannels();
void playVoice();
- void processMidiData(uint ticks);
+ void processMidiData();
Voice2 *getFreeVoice();
Voice2 *getPlayVoice(byte param);
- // from Player_V2
-protected:
- CMSEmulator *_cmsEmu;
+ struct MidiNote {
+ byte frequency;
+ byte baseOctave;
+ };
+
+ static const MidiNote _midiNotes[132];
+ static const byte _attackRate[16];
+ static const byte _decayRate[16];
+ static const byte _sustainRate[16];
+ static const byte _releaseRate[16];
+ static const byte _volumeTable[16];
+ static const byte _cmsInitData[26];
+ CMSEmulator *_cmsEmu;
};
} // End of namespace Scumm
diff --git a/engines/scumm/saveload.cpp b/engines/scumm/saveload.cpp
index 3cc710c207..870ec8cdf7 100644
--- a/engines/scumm/saveload.cpp
+++ b/engines/scumm/saveload.cpp
@@ -686,12 +686,7 @@ Graphics::Surface *ScummEngine::loadThumbnailFromSlot(const char *target, int sl
Graphics::Surface *thumb = 0;
if (Graphics::checkThumbnailHeader(*in)) {
- thumb = new Graphics::Surface();
- assert(thumb);
- if (!Graphics::loadThumbnail(*in, *thumb)) {
- delete thumb;
- thumb = 0;
- }
+ thumb = Graphics::loadThumbnail(*in);
}
delete in;
diff --git a/engines/scumm/script_v4.cpp b/engines/scumm/script_v4.cpp
index 1302c8c28d..8340f62dbc 100644
--- a/engines/scumm/script_v4.cpp
+++ b/engines/scumm/script_v4.cpp
@@ -68,6 +68,18 @@ void ScummEngine_v4::o4_ifState() {
int a = getVarOrDirectWord(PARAM_1);
int b = getVarOrDirectByte(PARAM_2);
+ // WORKAROUND bug #3306145 (also occurs in original): Some old versions of
+ // Indy3 sometimes fail to allocate IQ points correctly. To quote:
+ // "About the points error leaving Castle Brunwald: It seems to "reversed"!
+ // When you get caught, free yourself and escape, you get 25 IQ points even
+ // though you're not supposed to. However if you escape WITHOUT getting
+ // caught, you get 0 IQ points (supposed to get 25 IQ points)."
+ // This workaround is meant to address that.
+ if (_game.id == GID_INDY3 && a == 367 &&
+ vm.slot[_currentScript].number == 363 && _currentRoom == 25) {
+ b = 0;
+ }
+
jumpRelative(getState(a) == b);
}
diff --git a/engines/scumm/script_v5.cpp b/engines/scumm/script_v5.cpp
index a6cf504586..02c8d977a5 100644
--- a/engines/scumm/script_v5.cpp
+++ b/engines/scumm/script_v5.cpp
@@ -2095,6 +2095,20 @@ void ScummEngine_v5::o5_startScript() {
if (_game.id == GID_ZAK && _game.platform == Common::kPlatformFMTowns && script == 171)
return;
+ // WORKAROUND bug #3306145 (also occurs in original): Some old versions of
+ // Indy3 sometimes fail to allocate IQ points correctly. To quote:
+ // "In the Amiga version you get the 15 points for puzzle 30 if you give the
+ // book or KO the guy. The PC version correctly gives 10 points for puzzle
+ // 29 for KO and 15 for puzzle 30 when giving the book."
+ // This workaround is meant to address that.
+ if (_game.id == GID_INDY3 && vm.slot[_currentScript].number == 106 && script == 125 && VAR(115) != 2) {
+ // If Var[115] != 2, then:
+ // Correct: startScript(125,[29,10]);
+ // Wrong : startScript(125,[30,15]);
+ data[0] = 29;
+ data[1] = 10;
+ }
+
// Method used by original games to skip copy protection scheme
if (!_copyProtection) {
// Copy protection was disabled in LucasArts Classic Adventures (PC Disk)
diff --git a/engines/scumm/scumm-md5.h b/engines/scumm/scumm-md5.h
index 8f555818f4..319eddf871 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 Sun Apr 17 10:46:26 2011
+ This file was generated by the md5table tool on Wed Aug 3 03:14:00 2011
DO NOT EDIT MANUALLY!
*/
@@ -99,7 +99,7 @@ static const MD5Table md5table[] = {
{ "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 },
- { "1ff5997c78fbd0a841a75ef15a05d9d5", "BluesBirthday", "", "Red", -1, Common::EN_ANY, Common::kPlatformWindows },
+ { "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 },
{ "204453e33456c4faa26e276229fe5b76", "spyfox2", "", "Demo", 14689, Common::DE_DEU, Common::kPlatformWindows },
@@ -403,7 +403,7 @@ static const MD5Table md5table[] = {
{ "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 },
- { "99128b6a5bdd9831d9682fb8b5cbf8d4", "BluesBirthday", "", "Yellow", -1, Common::EN_ANY, Common::kPlatformUnknown },
+ { "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 },
{ "9b7452b5cd6d3ffb2b2f5118010af84f", "ft", "Demo", "Demo", 116463537, Common::EN_ANY, Common::kPlatformMacintosh },
diff --git a/engines/scumm/scumm.cpp b/engines/scumm/scumm.cpp
index 7b136dc36d..3b83019275 100644
--- a/engines/scumm/scumm.cpp
+++ b/engines/scumm/scumm.cpp
@@ -71,6 +71,7 @@
#include "scumm/he/cup_player_he.h"
#include "scumm/util.h"
#include "scumm/verbs.h"
+#include "scumm/imuse/pcspk.h"
#include "backends/audiocd/audiocd.h"
@@ -283,8 +284,9 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
_16BitPalette = NULL;
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
_townsScreen = 0;
+#ifdef USE_RGB_COLOR
_cjkFont = 0;
- _cjkChar = 0;
+#endif
#endif
_shadowPalette = NULL;
_shadowPaletteSize = 0;
@@ -297,7 +299,6 @@ ScummEngine::ScummEngine(OSystem *syst, const DetectorResult &dr)
_haveActorSpeechMsg = false;
_useTalkAnims = false;
_defaultTalkDelay = 0;
- _musicType = MDT_NONE;
_saveSound = 0;
memset(_extraBoxFlags, 0, sizeof(_extraBoxFlags));
memset(_scaleSlots, 0, sizeof(_scaleSlots));
@@ -633,8 +634,10 @@ ScummEngine::~ScummEngine() {
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
delete _townsScreen;
+#ifdef USE_RGB_COLOR
delete _cjkFont;
#endif
+#endif
delete _debugger;
@@ -1350,13 +1353,23 @@ void ScummEngine::setupCharsetRenderer() {
_charset = new CharsetRendererPCE(this);
else
#endif
+ if (_game.platform == Common::kPlatformFMTowns)
+ _charset = new CharsetRendererTownsV3(this);
+ else
_charset = new CharsetRendererV3(this);
#ifdef ENABLE_SCUMM_7_8
} else if (_game.version == 8) {
_charset = new CharsetRendererNut(this);
#endif
} else {
- _charset = new CharsetRendererClassic(this);
+#ifdef USE_RGB_COLOR
+#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
+ if (_game.platform == Common::kPlatformFMTowns)
+ _charset = new CharsetRendererTownsClassic(this);
+ else
+#endif
+#endif
+ _charset = new CharsetRendererClassic(this);
}
}
@@ -1655,43 +1668,8 @@ void ScummEngine_v90he::resetScumm() {
_sprite->resetTables(0);
memset(&_wizParams, 0, sizeof(_wizParams));
- if (_game.heversion >= 98) {
- switch (_game.id) {
- case GID_PUTTRACE:
- _logicHE = new LogicHErace(this);
- break;
-
- case GID_FUNSHOP:
- _logicHE = new LogicHEfunshop(this);
- break;
-
- case GID_FOOTBALL:
- _logicHE = new LogicHEfootball(this);
- break;
-
- case GID_SOCCER:
- case GID_SOCCERMLS:
- case GID_SOCCER2004:
- _logicHE = new LogicHEsoccer(this);
- break;
-
- case GID_BASEBALL2001:
- _logicHE = new LogicHEbaseball2001(this);
- break;
-
- case GID_BASKETBALL:
- _logicHE = new LogicHEbasketball(this);
- break;
-
- case GID_MOONBASE:
- _logicHE = new LogicHEmoonbase(this);
- break;
-
- default:
- _logicHE = new LogicHE(this);
- break;
- }
- }
+ if (_game.heversion >= 98)
+ _logicHE = LogicHE::makeLogicHE(this);
}
void ScummEngine_v99he::resetScumm() {
@@ -1732,40 +1710,36 @@ void ScummEngine::setupMusic(int midi) {
switch (MidiDriver::getMusicType(dev)) {
case MT_NULL:
- _musicType = MDT_NONE;
+ _sound->_musicType = MDT_NONE;
break;
case MT_PCSPK:
- _musicType = MDT_PCSPK;
+ _sound->_musicType = MDT_PCSPK;
break;
case MT_PCJR:
- _musicType = MDT_PCJR;
+ _sound->_musicType = MDT_PCJR;
break;
- //case MT_CMS:
-#if 1
- _musicType = MDT_ADLIB;
-#else
- _musicType = MDT_CMS; // Still has number of bugs, disable by default
-#endif
+ case MT_CMS:
+ _sound->_musicType = MDT_CMS;
break;
case MT_TOWNS:
- _musicType = MDT_TOWNS;
+ _sound->_musicType = MDT_TOWNS;
break;
case MT_ADLIB:
- _musicType = MDT_ADLIB;
+ _sound->_musicType = MDT_ADLIB;
break;
case MT_C64:
- _musicType = MDT_C64;
+ _sound->_musicType = MDT_C64;
break;
case MT_APPLEIIGS:
- _musicType = MDT_APPLEIIGS;
+ _sound->_musicType = MDT_APPLEIIGS;
break;
default:
- _musicType = MDT_MIDI;
+ _sound->_musicType = MDT_MIDI;
break;
}
if ((_game.id == GID_MONKEY_EGA || (_game.id == GID_LOOM && _game.version == 3))
- && (_game.platform == Common::kPlatformPC) && _musicType == MDT_MIDI) {
+ && (_game.platform == Common::kPlatformPC) && _sound->_musicType == MDT_MIDI) {
Common::String fileName;
bool missingFile = false;
if (_game.id == GID_LOOM) {
@@ -1795,7 +1769,7 @@ void ScummEngine::setupMusic(int midi) {
"but %s is missing. Using AdLib instead."), fileName.c_str()),
_("OK"));
dialog.runModal();
- _musicType = MDT_ADLIB;
+ _sound->_musicType = MDT_ADLIB;
}
}
@@ -1809,9 +1783,9 @@ void ScummEngine::setupMusic(int midi) {
* automatically when samples need to be generated */
if (!_mixer->isReady()) {
warning("Sound mixer initialization failed");
- if (_musicType == MDT_ADLIB || _musicType == MDT_PCSPK || _musicType == MDT_PCJR || _musicType == MDT_CMS) {
+ if (_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_PCSPK || _sound->_musicType == MDT_PCJR || _sound->_musicType == MDT_CMS) {
dev = 0;
- _musicType = MDT_NONE;
+ _sound->_musicType = MDT_NONE;
warning("MIDI driver depends on sound mixer, switching to null MIDI driver");
}
}
@@ -1843,9 +1817,9 @@ void ScummEngine::setupMusic(int midi) {
_musicEngine = new Player_V1(this, _mixer, MidiDriver::getMusicType(dev) != MT_PCSPK);
} else if (_game.version <= 2) {
_musicEngine = new Player_V2(this, _mixer, MidiDriver::getMusicType(dev) != MT_PCSPK);
- } else if ((_musicType == MDT_PCSPK || _musicType == MDT_PCJR) && (_game.version > 2 && _game.version <= 4)) {
+ } else if ((_sound->_musicType == MDT_PCSPK || _sound->_musicType == MDT_PCJR) && (_game.version > 2 && _game.version <= 4)) {
_musicEngine = new Player_V2(this, _mixer, MidiDriver::getMusicType(dev) != MT_PCSPK);
- } else if (_musicType == MDT_CMS) {
+ } else if (_sound->_musicType == MDT_CMS) {
_musicEngine = new Player_V2CMS(this, _mixer);
} else if (_game.platform == Common::kPlatform3DO && _game.heversion <= 62) {
// 3DO versions use digital music and sound samples.
@@ -1857,14 +1831,16 @@ void ScummEngine::setupMusic(int midi) {
MidiDriver *nativeMidiDriver = 0;
MidiDriver *adlibMidiDriver = 0;
- if (_musicType != MDT_ADLIB && _musicType != MDT_TOWNS)
+ if (_sound->_musicType != MDT_ADLIB && _sound->_musicType != MDT_TOWNS && _sound->_musicType != MDT_PCSPK)
nativeMidiDriver = MidiDriver::createMidi(dev);
if (nativeMidiDriver != NULL && _native_mt32)
nativeMidiDriver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
- bool multi_midi = ConfMan.getBool("multi_midi") && _musicType != MDT_NONE && (midi & MDT_ADLIB);
- if (_musicType == MDT_ADLIB || _musicType == MDT_TOWNS || multi_midi) {
- adlibMidiDriver = MidiDriver::createMidi(MidiDriver::detectDevice(_musicType == MDT_TOWNS ? MDT_TOWNS : MDT_ADLIB));
+ bool multi_midi = ConfMan.getBool("multi_midi") && _sound->_musicType != MDT_NONE && _sound->_musicType != MDT_PCSPK && (midi & MDT_ADLIB);
+ if (_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_TOWNS || multi_midi) {
+ adlibMidiDriver = MidiDriver::createMidi(MidiDriver::detectDevice(_sound->_musicType == MDT_TOWNS ? MDT_TOWNS : MDT_ADLIB));
adlibMidiDriver->property(MidiDriver::PROP_OLD_ADLIB, (_game.features & GF_SMALL_HEADER) ? 1 : 0);
+ } else if (_sound->_musicType == MDT_PCSPK) {
+ adlibMidiDriver = new PcSpkDriver(_mixer);
}
_imuse = IMuse::create(_system, nativeMidiDriver, adlibMidiDriver);
@@ -1893,6 +1869,8 @@ void ScummEngine::setupMusic(int midi) {
_imuse->property(IMuse::PROP_LIMIT_PLAYERS, 1);
_imuse->property(IMuse::PROP_RECYCLE_PLAYERS, 1);
}
+ if (_sound->_musicType == MDT_PCSPK)
+ _imuse->property(IMuse::PROP_PC_SPEAKER, 1);
}
}
}
diff --git a/engines/scumm/scumm.h b/engines/scumm/scumm.h
index 01bde90e1c..04a175e732 100644
--- a/engines/scumm/scumm.h
+++ b/engines/scumm/scumm.h
@@ -40,15 +40,14 @@
#include "scumm/detection.h"
#include "scumm/script.h"
-#include "audio/mididrv.h"
-
#ifdef __DS__
/* This disables the dual layer mode which is used in FM-Towns versions
* of SCUMM games and which emulates the behavior of the original code.
* The only purpose is code size reduction for certain backends.
- * SCUMM 3 (FM-Towns) games will run in normal (DOS VGA) mode, which should
- * work just fine in most situations. Some glitches might occur. SCUMM 5 games
- * will not work without dual layer (and 16 bit color) support.
+ * SCUMM 3 (FM-Towns) games will run in English in normal (DOS VGA) mode,
+ * which should work just fine in most situations. Some glitches might
+ * occur. Japanese mode and SCUMM 5 FM-Towns games will not work without
+ * dual layer (and 16 bit color) support.
*/
#define DISABLE_TOWNS_DUAL_LAYER_MODE
#endif
@@ -234,7 +233,8 @@ enum ScummGameId {
GID_PUTTMOON,
GID_FUNPACK,
GID_FREDDI3,
- GID_BIRTHDAY,
+ GID_BIRTHDAYRED,
+ GID_BIRTHDAYYELLOW,
GID_TREASUREHUNT,
GID_PUTTRACE,
GID_FUNSHOP, // Used for all three funshops
@@ -345,6 +345,7 @@ class ResourceManager;
class ScummEngine : public Engine {
friend class ScummDebugger;
friend class CharsetRenderer;
+ friend class CharsetRendererTownsClassic;
friend class ResourceManager;
public:
@@ -1082,7 +1083,6 @@ protected:
int _saveSound;
bool _native_mt32;
bool _enable_gs;
- MidiDriverFlags _musicType;
bool _copyProtection;
public:
@@ -1326,14 +1326,17 @@ public:
// Exists both in V7 and in V72HE:
byte VAR_NUM_GLOBAL_OBJS;
+#ifdef USE_RGB_COLOR
+ // FM-Towns / PC-Engine specific
+ Graphics::FontSJIS *_cjkFont;
+#endif
+
// FM-Towns specific
#ifndef DISABLE_TOWNS_DUAL_LAYER_MODE
public:
bool towns_isRectInStringBox(int x1, int y1, int x2, int y2);
byte _townsPaletteFlags;
- byte _townsCharsetColorMap[16];
- Graphics::FontSJIS *_cjkFont;
- uint16 _cjkChar;
+ byte _townsCharsetColorMap[16];
protected:
void towns_drawStripToScreen(VirtScreen *vs, int dstX, int dstY, int srcX, int srcY, int w, int h);
diff --git a/engines/scumm/smush/channel.cpp b/engines/scumm/smush/channel.cpp
index 7f71d0549b..fd822f56b6 100644
--- a/engines/scumm/smush/channel.cpp
+++ b/engines/scumm/smush/channel.cpp
@@ -60,6 +60,8 @@ void SmushChannel::processBuffer() {
if (offset < _tbufferSize) {
int new_size = _tbufferSize - offset;
_tbuffer = (byte *)malloc(new_size);
+ // FIXME: _tbuffer might be 0 if new_size is 0.
+ // NB: Also check other "if (_tbuffer)" locations in smush
if (!_tbuffer)
error("smush channel failed to allocate memory");
memcpy(_tbuffer, _sbuffer + offset, new_size);
@@ -97,6 +99,8 @@ void SmushChannel::processBuffer() {
byte *old = _tbuffer;
int32 new_size = _tbufferSize - offset;
_tbuffer = (byte *)malloc(new_size);
+ // FIXME: _tbuffer might be 0 if new_size is 0.
+ // NB: Also check other "if (_tbuffer)" locations in smush
if (!_tbuffer)
error("smush channel failed to allocate memory");
memcpy(_tbuffer, old + offset, new_size);
diff --git a/engines/scumm/smush/codec37.cpp b/engines/scumm/smush/codec37.cpp
index dcc8ee3c19..344057e3ac 100644
--- a/engines/scumm/smush/codec37.cpp
+++ b/engines/scumm/smush/codec37.cpp
@@ -571,4 +571,3 @@ void Codec37Decoder::decode(byte *dst, const byte *src) {
}
} // End of namespace Scumm
-
diff --git a/engines/scumm/smush/smush_font.cpp b/engines/scumm/smush/smush_font.cpp
index 7765bf1292..5cfa0ea519 100644
--- a/engines/scumm/smush/smush_font.cpp
+++ b/engines/scumm/smush/smush_font.cpp
@@ -258,4 +258,3 @@ void SmushFont::drawStringWrap(const char *str, byte *buffer, int dst_width, int
}
} // End of namespace Scumm
-
diff --git a/engines/scumm/sound.cpp b/engines/scumm/sound.cpp
index 27e43b3740..d8235206f8 100644
--- a/engines/scumm/sound.cpp
+++ b/engines/scumm/sound.cpp
@@ -84,6 +84,8 @@ Sound::Sound(ScummEngine *parent, Audio::Mixer *mixer)
memset(_soundQue, 0, sizeof(_soundQue));
memset(_soundQue2, 0, sizeof(_soundQue2));
memset(_mouthSyncTimes, 0, sizeof(_mouthSyncTimes));
+
+ _musicType = MDT_NONE;
}
Sound::~Sound() {
@@ -1016,7 +1018,7 @@ void Sound::startCDTimer() {
// appears.
_vm->getTimerManager()->removeTimerProc(&cd_timer_handler);
- _vm->getTimerManager()->installTimerProc(&cd_timer_handler, 100700, _vm);
+ _vm->getTimerManager()->installTimerProc(&cd_timer_handler, 100700, _vm, "scummCDtimer");
}
void Sound::stopCDTimer() {
@@ -1094,7 +1096,7 @@ int ScummEngine::readSoundResource(ResId idx) {
switch (basetag) {
case MKTAG('M','I','D','I'):
case MKTAG('i','M','U','S'):
- if (_musicType != MDT_PCSPK && _musicType != MDT_PCJR) {
+ if (_sound->_musicType != MDT_PCSPK && _sound->_musicType != MDT_PCJR) {
_fileHandle->seek(-8, SEEK_CUR);
_fileHandle->read(_res->createResource(rtSound, idx, total_size + 8), total_size + 8);
return 1;
@@ -1118,7 +1120,7 @@ int ScummEngine::readSoundResource(ResId idx) {
break;
case MKTAG('A','D','L',' '):
pri = 1;
- if (_musicType == MDT_ADLIB || _musicType == MDT_TOWNS)
+ if (_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_TOWNS)
pri = 10;
break;
case MKTAG('A','M','I',' '):
@@ -1137,16 +1139,33 @@ int ScummEngine::readSoundResource(ResId idx) {
break;
case MKTAG('S','P','K',' '):
pri = -1;
-// if (_musicType == MDT_PCSPK || _musicType == MDT_PCJR)
-// pri = 11;
+ if (_sound->_musicType == MDT_PCSPK || _sound->_musicType == MDT_PCJR)
+ pri = 11;
break;
}
- if ((_musicType == MDT_PCSPK || _musicType == MDT_PCJR || _musicType == MDT_CMS) && pri != 11)
+ // We only allow SPK resources for PC Speaker and PCJr here
+ // since other resource would sound horribly with their output
+ // drivers.
+ if ((_sound->_musicType == MDT_PCSPK || _sound->_musicType == MDT_PCJR) && pri != 11)
pri = -1;
- debugC(DEBUG_RESOURCE, " tag: %s, total_size=%d, pri=%d", tag2str(tag), size, pri);
+ // We only allow ADL resources when AdLib or FM-Towns is used as
+ // primary audio output. This fixes some odd sounds when Indy and
+ // Sophia leave Atlantis with the submarine in Indy4. (Easy to
+ // check with bootparam 4061 in the CD version). It seems the game
+ // only contains a ROL resource for sound id 60. Formerly we tried
+ // to play that via the AdLib or FM-Towns audio driver resulting
+ // in strange noises. Now we behave like the original did.
+ // We make an exception for Macintosh, which uses priority 2 for
+ // its sound resources, and Amiga games, which feature only ROL
+ // resources, since we are a doing Midi -> AdLib conversion for
+ // these.
+ if ((_sound->_musicType == MDT_ADLIB || _sound->_musicType == MDT_TOWNS) && pri != 10
+ && pri != 2 && _game.platform != Common::kPlatformAmiga)
+ pri = -1;
+ debugC(DEBUG_RESOURCE, " tag: %s, total_size=%d, pri=%d", tag2str(tag), size, pri);
if (pri > best_pri) {
best_pri = pri;
@@ -1984,6 +2003,14 @@ static void convertADResource(ResourceManager *res, const GameSettings& game, Re
break;
case 0x80:
+ // FIXME: This is incorrect. The original uses 0x80 for
+ // looping a single channel. We currently interpret it as stop
+ // thus we won't get looping for sound effects. It should
+ // always jump to the start of the channel.
+ //
+ // Since we convert the data to MIDI and we cannot only loop a
+ // single channel via MIDI fixing this will require some more
+ // thought.
track_time[ch] = -1;
src_ptr ++;
break;
@@ -2074,7 +2101,7 @@ int ScummEngine::readSoundResourceSmallHeader(ResId idx) {
}
}
- if ((_musicType == MDT_PCSPK || _musicType == MDT_PCJR) && wa_offs != 0) {
+ if ((_sound->_musicType == MDT_PCSPK || _sound->_musicType == MDT_PCJR) && wa_offs != 0) {
if (_game.features & GF_OLD_BUNDLE) {
_fileHandle->seek(wa_offs, SEEK_SET);
_fileHandle->read(_res->createResource(rtSound, idx, wa_size), wa_size);
@@ -2083,18 +2110,37 @@ int ScummEngine::readSoundResourceSmallHeader(ResId idx) {
_fileHandle->read(_res->createResource(rtSound, idx, wa_size + 6), wa_size + 6);
}
return 1;
- } else if (_musicType == MDT_CMS && ad_offs != 0) {
+ } else if (_sound->_musicType == MDT_CMS) {
if (_game.features & GF_OLD_BUNDLE) {
- _fileHandle->seek(wa_offs + wa_size + 6, SEEK_SET);
- byte musType = _fileHandle->readByte();
+ bool hasAdLibMusicTrack = false;
+
+ if (ad_offs) {
+ _fileHandle->seek(ad_offs + 4 + 2, SEEK_SET);
+ hasAdLibMusicTrack = (_fileHandle->readByte() == 0x80);
+ }
- if (musType == 0x80) {
+ if (hasAdLibMusicTrack) {
_fileHandle->seek(ad_offs, SEEK_SET);
_fileHandle->read(_res->createResource(rtSound, idx, ad_size), ad_size);
} else {
_fileHandle->seek(wa_offs, SEEK_SET);
_fileHandle->read(_res->createResource(rtSound, idx, wa_size), wa_size);
}
+ } else {
+ bool hasAdLibMusicTrack = false;
+
+ if (ad_offs) {
+ _fileHandle->seek(ad_offs + 2, SEEK_SET);
+ hasAdLibMusicTrack = (_fileHandle->readByte() == 0x80);
+ }
+
+ if (hasAdLibMusicTrack) {
+ _fileHandle->seek(ad_offs - 4, SEEK_SET);
+ _fileHandle->read(_res->createResource(rtSound, idx, ad_size + 4), ad_size + 4);
+ } else {
+ _fileHandle->seek(wa_offs - 6, SEEK_SET);
+ _fileHandle->read(_res->createResource(rtSound, idx, wa_size + 6), wa_size + 6);
+ }
}
} else if (ad_offs != 0) {
// AD resources have a header, instrument definitions and one MIDI track.
diff --git a/engines/scumm/sound.h b/engines/scumm/sound.h
index 03659ceff1..e9a37ac9fa 100644
--- a/engines/scumm/sound.h
+++ b/engines/scumm/sound.h
@@ -24,6 +24,7 @@
#include "common/scummsys.h"
#include "audio/audiostream.h"
+#include "audio/mididrv.h"
#include "audio/mixer.h"
#include "scumm/saveload.h"
@@ -90,6 +91,8 @@ public:
byte _sfxMode;
uint _lastSound;
+ MidiDriverFlags _musicType;
+
public:
Sound(ScummEngine *parent, Audio::Mixer *mixer);
virtual ~Sound();
diff --git a/engines/scumm/string.cpp b/engines/scumm/string.cpp
index 2d2209c155..61bb89328d 100644
--- a/engines/scumm/string.cpp
+++ b/engines/scumm/string.cpp
@@ -1127,8 +1127,6 @@ int ScummEngine::convertMessageToString(const byte *msg, byte *dst, int dstSize)
}
num += (_game.version == 8) ? 4 : 2;
}
- } else if (_game.id == GID_DIG && (chr == 1 || chr == 2 || chr == 3 || chr == 8)) {
- // Skip these characters
} else {
if ((chr != '@') || (_game.id == GID_CMI && _language == Common::ZH_TWN) ||
(_game.id == GID_LOOM && _game.platform == Common::kPlatformPCEngine && _language == Common::JA_JPN) ||
@@ -1142,6 +1140,14 @@ int ScummEngine::convertMessageToString(const byte *msg, byte *dst, int dstSize)
if (dst >= end)
error("convertMessageToString: buffer overflow");
}
+
+ // WORKAROUND: Russian The Dig pads messages with 03. No idea why
+ // it does not work as is with our rendering code, thus fixing it
+ // with a workaround.
+ if (_game.id == GID_DIG) {
+ while (*(dst - 1) == 0x03)
+ dst--;
+ }
*dst = 0;
return dstSize - (end - dst);
diff --git a/engines/scumm/vars.cpp b/engines/scumm/vars.cpp
index 56f8de2ad1..26a6a2f3b1 100644
--- a/engines/scumm/vars.cpp
+++ b/engines/scumm/vars.cpp
@@ -25,9 +25,12 @@
#include "scumm/scumm.h"
#include "scumm/scumm_v0.h"
#include "scumm/scumm_v8.h"
+#include "scumm/sound.h"
#include "scumm/he/intern_he.h"
#include "scumm/he/logic_he.h"
+#include "audio/mididrv.h"
+
namespace Scumm {
void ScummEngine::setupScummVars() {
@@ -704,8 +707,12 @@ void ScummEngine_v99he::resetScummVars() {
VAR(VAR_NUM_UNK) = _numUnk;
if (_game.heversion >= 100 && (_game.features & GF_16BIT_COLOR)) {
- // Disable Bink and Smacker video in 16bit color games
+ // Enable Bink video in 16bit color games
+#ifdef USE_BINK
+ VAR(140) = 1;
+#else
VAR(140) = 0;
+#endif
}
}
#endif
@@ -718,7 +725,7 @@ void ScummEngine::resetScummVars() {
// 2 CMS
// 3 AdLib
// 4 Roland
- switch (_musicType) {
+ switch (_sound->_musicType) {
case MDT_NONE:
case MDT_PCSPK:
VAR(VAR_SOUNDCARD) = 0;
diff --git a/engines/sky/autoroute.h b/engines/sky/autoroute.h
index 2d01be01ec..8721ba6c54 100644
--- a/engines/sky/autoroute.h
+++ b/engines/sky/autoroute.h
@@ -56,4 +56,3 @@ private:
} // End of namespace Sky
#endif // AUTOROUTE_H
-
diff --git a/engines/sword1/control.h b/engines/sword1/control.h
index 6c0cf8b1ef..c3550e6f02 100644
--- a/engines/sword1/control.h
+++ b/engines/sword1/control.h
@@ -162,4 +162,3 @@ private:
} // End of namespace Sword1
#endif //BSCONTROL_H
-
diff --git a/engines/sword1/debug.h b/engines/sword1/debug.h
index e4f004dc63..1505ae28dd 100644
--- a/engines/sword1/debug.h
+++ b/engines/sword1/debug.h
@@ -39,4 +39,3 @@ private:
} // End of namespace Sword1
#endif // BSDEBUG_H
-
diff --git a/engines/sword1/detection.cpp b/engines/sword1/detection.cpp
index 0c1e74082f..4da636bce9 100644
--- a/engines/sword1/detection.cpp
+++ b/engines/sword1/detection.cpp
@@ -274,13 +274,7 @@ SaveStateDescriptor SwordMetaEngine::querySaveMetaInfos(const char *target, int
in->skip(1);
if (Graphics::checkThumbnailHeader(*in)) {
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*in, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
-
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*in);
desc.setThumbnail(thumbnail);
}
diff --git a/engines/sword1/object.h b/engines/sword1/object.h
index 5a6fd49c0b..4f5371fa72 100644
--- a/engines/sword1/object.h
+++ b/engines/sword1/object.h
@@ -123,4 +123,3 @@ struct Object {
} // End of namespace Sword1
#endif //BSOBJECT_H
-
diff --git a/engines/sword1/screen.h b/engines/sword1/screen.h
index ece37b0ecc..ff4df8c7c6 100644
--- a/engines/sword1/screen.h
+++ b/engines/sword1/screen.h
@@ -169,6 +169,3 @@ private:
} // End of namespace Sword1
#endif //BSSCREEN_H
-
-
-
diff --git a/engines/sword25/detection.cpp b/engines/sword25/detection.cpp
index b2f5795663..25a3df167b 100644
--- a/engines/sword25/detection.cpp
+++ b/engines/sword25/detection.cpp
@@ -99,4 +99,3 @@ SaveStateList Sword25MetaEngine::listSaves(const char *target) const {
#else
REGISTER_PLUGIN_STATIC(SWORD25, PLUGIN_TYPE_ENGINE, Sword25MetaEngine);
#endif
-
diff --git a/engines/sword25/gfx/image/vectorimage.cpp b/engines/sword25/gfx/image/vectorimage.cpp
index 45d43c465e..81f4fc2ad5 100644
--- a/engines/sword25/gfx/image/vectorimage.cpp
+++ b/engines/sword25/gfx/image/vectorimage.cpp
@@ -247,6 +247,9 @@ VectorImage::VectorImage(const byte *pFileData, uint fileSize, bool &success, co
return;
}
+ // readout SWF size
+ flashRectToBSRect(bs);
+
// Get frame rate and frame count
/* uint32 frameRate = */
bs.getUInt16();
diff --git a/engines/sword25/kernel/inputpersistenceblock.cpp b/engines/sword25/kernel/inputpersistenceblock.cpp
index 2d45dfb640..cdce539c31 100644
--- a/engines/sword25/kernel/inputpersistenceblock.cpp
+++ b/engines/sword25/kernel/inputpersistenceblock.cpp
@@ -55,8 +55,8 @@ void InputPersistenceBlock::read(int16 &value) {
void InputPersistenceBlock::read(signed int &value) {
if (checkMarker(SINT_MARKER)) {
- rawRead(&value, sizeof(signed int));
- value = convertEndianessFromStorageToSystem(value);
+ value = (int32)READ_LE_UINT32(_iter);
+ _iter += 4;
} else {
value = 0;
}
@@ -64,8 +64,8 @@ void InputPersistenceBlock::read(signed int &value) {
void InputPersistenceBlock::read(uint &value) {
if (checkMarker(UINT_MARKER)) {
- rawRead(&value, sizeof(uint));
- value = convertEndianessFromStorageToSystem(value);
+ value = READ_LE_UINT32(_iter);
+ _iter += 4;
} else {
value = 0;
}
@@ -73,8 +73,10 @@ void InputPersistenceBlock::read(uint &value) {
void InputPersistenceBlock::read(float &value) {
if (checkMarker(FLOAT_MARKER)) {
- rawRead(&value, sizeof(float));
- value = convertEndianessFromStorageToSystem(value);
+ uint32 tmp[1];
+ tmp[0] = READ_LE_UINT32(_iter);
+ value = ((float *)tmp)[0];
+ _iter += 4;
} else {
value = 0.0f;
}
@@ -82,12 +84,11 @@ void InputPersistenceBlock::read(float &value) {
void InputPersistenceBlock::read(bool &value) {
if (checkMarker(BOOL_MARKER)) {
- uint uintBool;
- rawRead(&uintBool, sizeof(float));
- uintBool = convertEndianessFromStorageToSystem(uintBool);
+ uint uintBool = READ_LE_UINT32(_iter);
+ _iter += 4;
value = uintBool == 0 ? false : true;
} else {
- value = 0.0f;
+ value = false;
}
}
@@ -117,13 +118,6 @@ void InputPersistenceBlock::readByteArray(Common::Array<byte> &value) {
}
}
-void InputPersistenceBlock::rawRead(void *destPtr, size_t size) {
- if (checkBlockSize(size)) {
- memcpy(destPtr, &*_iter, size);
- _iter += size;
- }
-}
-
bool InputPersistenceBlock::checkBlockSize(int size) {
if (_data.end() - _iter >= size) {
return true;
diff --git a/engines/sword25/kernel/inputpersistenceblock.h b/engines/sword25/kernel/inputpersistenceblock.h
index 7e68137246..2518d7e32c 100644
--- a/engines/sword25/kernel/inputpersistenceblock.h
+++ b/engines/sword25/kernel/inputpersistenceblock.h
@@ -69,7 +69,6 @@ public:
private:
bool checkMarker(byte marker);
bool checkBlockSize(int size);
- void rawRead(void *destPtr, size_t size);
Common::Array<byte> _data;
Common::Array<byte>::const_iterator _iter;
diff --git a/engines/sword25/kernel/outputpersistenceblock.cpp b/engines/sword25/kernel/outputpersistenceblock.cpp
index cf28ea401f..e29d956e5f 100644
--- a/engines/sword25/kernel/outputpersistenceblock.cpp
+++ b/engines/sword25/kernel/outputpersistenceblock.cpp
@@ -43,19 +43,23 @@ OutputPersistenceBlock::OutputPersistenceBlock() {
void OutputPersistenceBlock::write(signed int value) {
writeMarker(SINT_MARKER);
- value = convertEndianessFromSystemToStorage(value);
+ value = TO_LE_32(value);
rawWrite(&value, sizeof(value));
}
void OutputPersistenceBlock::write(uint value) {
writeMarker(UINT_MARKER);
- value = convertEndianessFromSystemToStorage(value);
+ value = TO_LE_32(value);
rawWrite(&value, sizeof(value));
}
void OutputPersistenceBlock::write(float value) {
writeMarker(FLOAT_MARKER);
- value = convertEndianessFromSystemToStorage(value);
+ uint32 tmp[1];
+
+ ((float *)tmp)[0] = value;
+ tmp[0] = TO_LE_32(tmp[0]);
+
rawWrite(&value, sizeof(value));
}
@@ -63,7 +67,7 @@ void OutputPersistenceBlock::write(bool value) {
writeMarker(BOOL_MARKER);
uint uintBool = value ? 1 : 0;
- uintBool = convertEndianessFromSystemToStorage(uintBool);
+ uintBool = TO_LE_32(uintBool);
rawWrite(&uintBool, sizeof(uintBool));
}
diff --git a/engines/sword25/kernel/persistenceblock.h b/engines/sword25/kernel/persistenceblock.h
index d8440faa50..8ac3e84a41 100644
--- a/engines/sword25/kernel/persistenceblock.h
+++ b/engines/sword25/kernel/persistenceblock.h
@@ -64,48 +64,6 @@ protected:
BLOCK_MARKER
};
- // -----------------------------------------------------------------------------
- // Endianess Conversions
- // -----------------------------------------------------------------------------
- //
- // Everything is stored in Little Endian
- // Big Endian Systems will need to be byte swapped during both saving and reading of saved values
- //
-
- template<typename T>
- static T convertEndianessFromSystemToStorage(T value) {
- if (isBigEndian())
- reverseByteOrder(&value);
- return value;
- }
-
- template<typename T>
- static T convertEndianessFromStorageToSystem(T value) {
- if (isBigEndian())
- reverseByteOrder(&value);
- return value;
- }
-
-private:
- static bool isBigEndian() {
- uint dummy = 1;
- byte *dummyPtr = reinterpret_cast<byte *>(&dummy);
- return dummyPtr[0] == 0;
- }
-
- template<typename T>
- static void swap(T &one, T &two) {
- T temp = one;
- one = two;
- two = temp;
- }
-
- static void reverseByteOrder(void *ptr) {
- // Reverses the byte order of the 32-bit word pointed to by Ptr
- byte *charPtr = static_cast<byte *>(ptr);
- swap(charPtr[0], charPtr[3]);
- swap(charPtr[1], charPtr[2]);
- }
};
#define CTASSERT(ex) typedef char ctassert_type[(ex) ? 1 : -1]
diff --git a/engines/sword25/sfx/soundengine.cpp b/engines/sword25/sfx/soundengine.cpp
index 1b424dac65..78b2db19eb 100644
--- a/engines/sword25/sfx/soundengine.cpp
+++ b/engines/sword25/sfx/soundengine.cpp
@@ -209,7 +209,7 @@ uint SoundEngine::playSoundEx(const Common::String &fileName, SOUND_TYPES type,
#ifdef USE_VORBIS
Audio::SeekableAudioStream *stream = Audio::makeVorbisStream(in, DisposeAfterUse::YES);
#endif
- uint id;
+ uint id = handleId;
SndHandle *handle;
if (handleId == 0x1337)
diff --git a/engines/sword25/util/lua/lapi.cpp b/engines/sword25/util/lua/lapi.cpp
index ff25cfc653..b97e90012c 100644
--- a/engines/sword25/util/lua/lapi.cpp
+++ b/engines/sword25/util/lua/lapi.cpp
@@ -1074,4 +1074,3 @@ LUA_API const char *lua_setupvalue (lua_State *L, int funcindex, int n) {
lua_unlock(L);
return name;
}
-
diff --git a/engines/sword25/util/lua/lauxlib.cpp b/engines/sword25/util/lua/lauxlib.cpp
index 1261777315..116d19dfce 100644
--- a/engines/sword25/util/lua/lauxlib.cpp
+++ b/engines/sword25/util/lua/lauxlib.cpp
@@ -655,4 +655,3 @@ LUALIB_API lua_State *luaL_newstate (void) {
if (L) lua_atpanic(L, &panic);
return L;
}
-
diff --git a/engines/sword25/util/lua/lauxlib.h b/engines/sword25/util/lua/lauxlib.h
index d58f290527..d3c1d5ca35 100644
--- a/engines/sword25/util/lua/lauxlib.h
+++ b/engines/sword25/util/lua/lauxlib.h
@@ -170,5 +170,3 @@ LUALIB_API void (luaL_pushresult) (luaL_Buffer *B);
#define luaL_reg luaL_Reg
#endif
-
-
diff --git a/engines/sword25/util/lua/lbaselib.cpp b/engines/sword25/util/lua/lbaselib.cpp
index 5032e6322a..3f0b645164 100644
--- a/engines/sword25/util/lua/lbaselib.cpp
+++ b/engines/sword25/util/lua/lbaselib.cpp
@@ -651,4 +651,3 @@ LUALIB_API int luaopen_base (lua_State *L) {
luaL_register(L, LUA_COLIBNAME, co_funcs);
return 2;
}
-
diff --git a/engines/sword25/util/lua/lcode.cpp b/engines/sword25/util/lua/lcode.cpp
index 6e7e10017f..ead780d359 100644
--- a/engines/sword25/util/lua/lcode.cpp
+++ b/engines/sword25/util/lua/lcode.cpp
@@ -836,4 +836,3 @@ void luaK_setlist (FuncState *fs, int base, int nelems, int tostore) {
}
fs->freereg = base + 1; /* free registers with list values */
}
-
diff --git a/engines/sword25/util/lua/ldblib.cpp b/engines/sword25/util/lua/ldblib.cpp
index 618e9a843f..e5cb8231c0 100644
--- a/engines/sword25/util/lua/ldblib.cpp
+++ b/engines/sword25/util/lua/ldblib.cpp
@@ -398,4 +398,3 @@ LUALIB_API int luaopen_debug (lua_State *L) {
luaL_register(L, LUA_DBLIBNAME, dblib);
return 1;
}
-
diff --git a/engines/sword25/util/lua/ldebug.cpp b/engines/sword25/util/lua/ldebug.cpp
index 85c492cc77..e89ae9cad5 100644
--- a/engines/sword25/util/lua/ldebug.cpp
+++ b/engines/sword25/util/lua/ldebug.cpp
@@ -619,4 +619,3 @@ void luaG_runerror (lua_State *L, const char *fmt, ...) {
va_end(argp);
luaG_errormsg(L);
}
-
diff --git a/engines/sword25/util/lua/ldo.cpp b/engines/sword25/util/lua/ldo.cpp
index 49e0881a45..5d9667f4f0 100644
--- a/engines/sword25/util/lua/ldo.cpp
+++ b/engines/sword25/util/lua/ldo.cpp
@@ -534,5 +534,3 @@ int luaD_protectedparser (lua_State *L, ZIO *z, const char *name) {
luaZ_freebuffer(L, &p.buff);
return status;
}
-
-
diff --git a/engines/sword25/util/lua/ldo.h b/engines/sword25/util/lua/ldo.h
index 4c97134805..e57b08dec0 100644
--- a/engines/sword25/util/lua/ldo.h
+++ b/engines/sword25/util/lua/ldo.h
@@ -54,4 +54,3 @@ LUAI_FUNC int luaD_rawrunprotected (lua_State *L, Pfunc f, void *ud);
LUAI_FUNC void luaD_seterrorobj (lua_State *L, int errcode, StkId oldtop);
#endif
-
diff --git a/engines/sword25/util/lua/lfunc.cpp b/engines/sword25/util/lua/lfunc.cpp
index ce7acf4e77..f8fa19e25a 100644
--- a/engines/sword25/util/lua/lfunc.cpp
+++ b/engines/sword25/util/lua/lfunc.cpp
@@ -171,4 +171,3 @@ const char *luaF_getlocalname (const Proto *f, int local_number, int pc) {
}
return NULL; /* not found */
}
-
diff --git a/engines/sword25/util/lua/lgc.cpp b/engines/sword25/util/lua/lgc.cpp
index 71e581ad30..54f7b548dd 100644
--- a/engines/sword25/util/lua/lgc.cpp
+++ b/engines/sword25/util/lua/lgc.cpp
@@ -708,4 +708,3 @@ void luaC_linkupval (lua_State *L, UpVal *uv) {
}
}
}
-
diff --git a/engines/sword25/util/lua/linit.cpp b/engines/sword25/util/lua/linit.cpp
index 93f41d0350..a01f28d1ff 100644
--- a/engines/sword25/util/lua/linit.cpp
+++ b/engines/sword25/util/lua/linit.cpp
@@ -35,4 +35,3 @@ LUALIB_API void luaL_openlibs (lua_State *L) {
lua_call(L, 1, 0);
}
}
-
diff --git a/engines/sword25/util/lua/liolib.cpp b/engines/sword25/util/lua/liolib.cpp
index 6c00de5094..0d27f9677f 100644
--- a/engines/sword25/util/lua/liolib.cpp
+++ b/engines/sword25/util/lua/liolib.cpp
@@ -590,4 +590,3 @@ LUALIB_API int luaopen_io (lua_State *L) {
lua_pop(L, 1); /* pop 'popen' */
return 1;
}
-
diff --git a/engines/sword25/util/lua/llex.cpp b/engines/sword25/util/lua/llex.cpp
index b456ee2dfe..464ab3ec15 100644
--- a/engines/sword25/util/lua/llex.cpp
+++ b/engines/sword25/util/lua/llex.cpp
@@ -472,4 +472,3 @@ void luaX_lookahead (LexState *ls) {
lua_assert(ls->lookahead.token == TK_EOS);
ls->lookahead.token = llex(ls, &ls->lookahead.seminfo);
}
-
diff --git a/engines/sword25/util/lua/lmathlib.cpp b/engines/sword25/util/lua/lmathlib.cpp
index 6c36bbcf4e..c1a645b296 100644
--- a/engines/sword25/util/lua/lmathlib.cpp
+++ b/engines/sword25/util/lua/lmathlib.cpp
@@ -274,4 +274,3 @@ LUALIB_API int luaopen_math (lua_State *L) {
#endif
return 1;
}
-
diff --git a/engines/sword25/util/lua/lmem.cpp b/engines/sword25/util/lua/lmem.cpp
index ccd69357e0..004a467dc8 100644
--- a/engines/sword25/util/lua/lmem.cpp
+++ b/engines/sword25/util/lua/lmem.cpp
@@ -83,4 +83,3 @@ void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) {
g->totalbytes = (g->totalbytes - osize) + nsize;
return block;
}
-
diff --git a/engines/sword25/util/lua/lmem.h b/engines/sword25/util/lua/lmem.h
index 97a888c7f8..6430912b41 100644
--- a/engines/sword25/util/lua/lmem.h
+++ b/engines/sword25/util/lua/lmem.h
@@ -46,4 +46,3 @@ LUAI_FUNC void *luaM_growaux_ (lua_State *L, void *block, int *size,
const char *errormsg);
#endif
-
diff --git a/engines/sword25/util/lua/loadlib.cpp b/engines/sword25/util/lua/loadlib.cpp
index f4cdd70a78..49934ce059 100644
--- a/engines/sword25/util/lua/loadlib.cpp
+++ b/engines/sword25/util/lua/loadlib.cpp
@@ -329,4 +329,3 @@ LUALIB_API int luaopen_package (lua_State *L) {
lua_pop(L, 1);
return 1; /* return 'package' table */
}
-
diff --git a/engines/sword25/util/lua/lobject.h b/engines/sword25/util/lua/lobject.h
index 5418a918b1..70b2c754ea 100644
--- a/engines/sword25/util/lua/lobject.h
+++ b/engines/sword25/util/lua/lobject.h
@@ -378,4 +378,3 @@ LUAI_FUNC void luaO_chunkid (char *out, const char *source, size_t len);
#endif
-
diff --git a/engines/sword25/util/lua/lopcodes.cpp b/engines/sword25/util/lua/lopcodes.cpp
index d9da16f689..255b2029e9 100644
--- a/engines/sword25/util/lua/lopcodes.cpp
+++ b/engines/sword25/util/lua/lopcodes.cpp
@@ -99,4 +99,3 @@ const lu_byte luaP_opmodes[NUM_OPCODES] = {
,opmode(0, 1, OpArgU, OpArgN, iABx) /* OP_CLOSURE */
,opmode(0, 1, OpArgU, OpArgN, iABC) /* OP_VARARG */
};
-
diff --git a/engines/sword25/util/lua/loslib.cpp b/engines/sword25/util/lua/loslib.cpp
index b61f8c65e1..25bfa2d1b5 100644
--- a/engines/sword25/util/lua/loslib.cpp
+++ b/engines/sword25/util/lua/loslib.cpp
@@ -243,4 +243,3 @@ LUALIB_API int luaopen_os (lua_State *L) {
luaL_register(L, LUA_OSLIBNAME, syslib);
return 1;
}
-
diff --git a/engines/sword25/util/lua/lstate.cpp b/engines/sword25/util/lua/lstate.cpp
index e542bcbacc..26bed7bec2 100644
--- a/engines/sword25/util/lua/lstate.cpp
+++ b/engines/sword25/util/lua/lstate.cpp
@@ -211,4 +211,3 @@ LUA_API void lua_close (lua_State *L) {
luai_userstateclose(L);
close_state(L);
}
-
diff --git a/engines/sword25/util/lua/lstate.h b/engines/sword25/util/lua/lstate.h
index 94a6249461..05ccb43d5e 100644
--- a/engines/sword25/util/lua/lstate.h
+++ b/engines/sword25/util/lua/lstate.h
@@ -166,4 +166,3 @@ LUAI_FUNC lua_State *luaE_newthread (lua_State *L);
LUAI_FUNC void luaE_freethread (lua_State *L, lua_State *L1);
#endif
-
diff --git a/engines/sword25/util/lua/lstring.cpp b/engines/sword25/util/lua/lstring.cpp
index cd55cc63bf..046b87ee1c 100644
--- a/engines/sword25/util/lua/lstring.cpp
+++ b/engines/sword25/util/lua/lstring.cpp
@@ -108,4 +108,3 @@ Udata *luaS_newudata (lua_State *L, size_t s, Table *e) {
G(L)->mainthread->next = obj2gco(u);
return u;
}
-
diff --git a/engines/sword25/util/lua/lstrlib.cpp b/engines/sword25/util/lua/lstrlib.cpp
index 2a1b8690e2..bcc869cb98 100644
--- a/engines/sword25/util/lua/lstrlib.cpp
+++ b/engines/sword25/util/lua/lstrlib.cpp
@@ -865,4 +865,3 @@ LUALIB_API int luaopen_string (lua_State *L) {
createmetatable(L);
return 1;
}
-
diff --git a/engines/sword25/util/lua/ltablib.cpp b/engines/sword25/util/lua/ltablib.cpp
index 607c09ae71..93be9e6077 100644
--- a/engines/sword25/util/lua/ltablib.cpp
+++ b/engines/sword25/util/lua/ltablib.cpp
@@ -276,4 +276,3 @@ LUALIB_API int luaopen_table (lua_State *L) {
luaL_register(L, LUA_TABLIBNAME, tab_funcs);
return 1;
}
-
diff --git a/engines/sword25/util/lua/ltm.cpp b/engines/sword25/util/lua/ltm.cpp
index 02856a58fc..60ca76689a 100644
--- a/engines/sword25/util/lua/ltm.cpp
+++ b/engines/sword25/util/lua/ltm.cpp
@@ -72,4 +72,3 @@ const TValue *luaT_gettmbyobj (lua_State *L, const TValue *o, TMS event) {
}
return (mt ? luaH_getstr(mt, G(L)->tmname[event]) : luaO_nilobject);
}
-
diff --git a/engines/sword25/util/lua/luaconf.h b/engines/sword25/util/lua/luaconf.h
index f3509e969b..f5affe9fd7 100644
--- a/engines/sword25/util/lua/luaconf.h
+++ b/engines/sword25/util/lua/luaconf.h
@@ -723,4 +723,3 @@ union luai_Cast { double l_d; long l_l; };
#endif
-
diff --git a/engines/sword25/util/lua/lvm.cpp b/engines/sword25/util/lua/lvm.cpp
index d0f2198651..d538d0b349 100644
--- a/engines/sword25/util/lua/lvm.cpp
+++ b/engines/sword25/util/lua/lvm.cpp
@@ -760,4 +760,3 @@ void luaV_execute (lua_State *L, int nexeccalls) {
}
}
}
-
diff --git a/engines/sword25/util/lua/lzio.cpp b/engines/sword25/util/lua/lzio.cpp
index e1e7b28a29..d05c613897 100644
--- a/engines/sword25/util/lua/lzio.cpp
+++ b/engines/sword25/util/lua/lzio.cpp
@@ -78,5 +78,3 @@ char *luaZ_openspace (lua_State *L, Mbuffer *buff, size_t n) {
}
return buff->buffer;
}
-
-
diff --git a/engines/sword25/util/pluto/CHANGELOG b/engines/sword25/util/pluto/CHANGELOG
index e31ed26044..1be321f898 100644
--- a/engines/sword25/util/pluto/CHANGELOG
+++ b/engines/sword25/util/pluto/CHANGELOG
@@ -35,4 +35,3 @@ Earlier versions are changelogged on the LuaForge site.
* Fixed all outstanding 5.0->5.1 conversion issues
* Made heavier use of size_t in preference to int
* Fixed GC/Upval issue (thanks to Eric Jacobs)
-
diff --git a/engines/sword25/util/pluto/FILEFORMAT b/engines/sword25/util/pluto/FILEFORMAT
index b3f10ee603..e7716675c7 100644
--- a/engines/sword25/util/pluto/FILEFORMAT
+++ b/engines/sword25/util/pluto/FILEFORMAT
@@ -165,4 +165,4 @@ struct LocVar {
Object name; /* Name of the local variable */
int startpc; /* Point where variable is active */
int endpc; /* Point where variable is dead */
-}; \ No newline at end of file
+};
diff --git a/engines/sword25/util/pluto/THANKS b/engines/sword25/util/pluto/THANKS
index fea3595dbf..443713fa61 100644
--- a/engines/sword25/util/pluto/THANKS
+++ b/engines/sword25/util/pluto/THANKS
@@ -7,4 +7,3 @@ Goran Adrinek
Eric Jacobs
Anolan Milanes
Malte Thiesen
-
diff --git a/engines/sword25/util/pluto/plzio.cpp b/engines/sword25/util/pluto/plzio.cpp
index 0efc3dfcf2..21f69a9e8d 100644
--- a/engines/sword25/util/pluto/plzio.cpp
+++ b/engines/sword25/util/pluto/plzio.cpp
@@ -72,5 +72,3 @@ char *pdep_openspace (lua_State *L, Mbuffer *buff, size_t n) {
}
return buff->buffer;
}
-
-
diff --git a/engines/teenagent/animation.cpp b/engines/teenagent/animation.cpp
index e945bda1e5..56107b67ca 100644
--- a/engines/teenagent/animation.cpp
+++ b/engines/teenagent/animation.cpp
@@ -106,11 +106,11 @@ void Animation::free() {
index = 0;
}
-void Animation::load(Common::SeekableReadStream *s, Type type) {
+void Animation::load(Common::SeekableReadStream &s, Type type) {
//fixme: do not reload the same animation each time
free();
- if (s == NULL || s->size() <= 1) {
+ if (s.size() <= 1) {
debug(1, "empty animation");
return;
}
@@ -119,29 +119,29 @@ void Animation::load(Common::SeekableReadStream *s, Type type) {
int off = 0;
switch (type) {
case kTypeLan:
- data_size = s->readUint16LE();
- if (s->eos()) {
+ data_size = s.readUint16LE();
+ if (s.eos()) {
debug(1, "empty animation");
return;
}
data_size -= 2;
data = new byte[data_size];
- data_size = s->read(data, data_size);
+ data_size = s.read(data, data_size);
/* for (int i = 0; i < data_size; ++i) {
debug(0, "%02x ", data[i]);
}
debug(0, ", %u frames", data_size / 3);
*/
- frames_count = s->readByte();
+ frames_count = s.readByte();
debug(1, "%u physical frames", frames_count);
if (frames_count == 0)
return;
frames = new Surface[frames_count];
- s->skip(frames_count * 2 - 2); //sizes
- /*pos = */s->readUint16LE();
+ s.skip(frames_count * 2 - 2); //sizes
+ /*pos = */s.readUint16LE();
//debug(0, "pos?: %04x", pos);
for (uint16 i = 0; i < frames_count; ++i) {
@@ -152,15 +152,15 @@ void Animation::load(Common::SeekableReadStream *s, Type type) {
break;
case kTypeInventory: {
- data_size = 3 * s->readByte();
+ data_size = 3 * s.readByte();
data = new byte[data_size];
frames_count = 0;
for (byte i = 0; i < data_size / 3; ++i) {
int idx = i * 3;
/* byte unk = */
- s->readByte();
- data[idx] = s->readByte();
+ s.readByte();
+ data[idx] = s.readByte();
if (data[idx] == 0)
data[idx] = 1; //fixme: investigate
if (data[idx] > frames_count)
@@ -179,17 +179,17 @@ void Animation::load(Common::SeekableReadStream *s, Type type) {
break;
case kTypeVaria:
- frames_count = s->readByte();
+ frames_count = s.readByte();
debug(1, "loading varia resource, %u physical frames", frames_count);
uint16 offset[255];
for (byte i = 0; i < frames_count; ++i) {
- offset[i] = s->readUint16LE();
+ offset[i] = s.readUint16LE();
//debug(0, "%u: %04x", i, offset[i]);
}
frames = new Surface[frames_count];
for (uint16 i = 0; i < frames_count; ++i) {
//debug(0, "%04x", offset[i]);
- s->seek(offset[i] + off);
+ s.seek(offset[i] + off);
frames[i].load(s, Surface::kTypeOns);
}
diff --git a/engines/teenagent/animation.h b/engines/teenagent/animation.h
index e98bb42ea0..d9092d1707 100644
--- a/engines/teenagent/animation.h
+++ b/engines/teenagent/animation.h
@@ -35,7 +35,7 @@ public:
enum Type {kTypeLan, kTypeVaria, kTypeInventory};
Animation();
- void load(Common::SeekableReadStream *s, Type type = kTypeLan);
+ void load(Common::SeekableReadStream&, Type type = kTypeLan);
void free();
Surface *firstFrame();
diff --git a/engines/teenagent/detection.cpp b/engines/teenagent/detection.cpp
index 72a338664b..fa5a578636 100644
--- a/engines/teenagent/detection.cpp
+++ b/engines/teenagent/detection.cpp
@@ -177,9 +177,8 @@ public:
ssd.setDeletableFlag(true);
//checking for the thumbnail
- Common::ScopedPtr<Graphics::Surface> thumb(new Graphics::Surface);
- if (Graphics::loadThumbnail(*in, *thumb))
- ssd.setThumbnail(thumb.release());
+ if (Graphics::Surface *const thumb = Graphics::loadThumbnail(*in))
+ ssd.setThumbnail(thumb);
return ssd;
}
diff --git a/engines/teenagent/font.h b/engines/teenagent/font.h
index 773edaf4e2..5146ace21f 100644
--- a/engines/teenagent/font.h
+++ b/engines/teenagent/font.h
@@ -47,4 +47,3 @@ private:
} // End of namespace TeenAgent
#endif
-
diff --git a/engines/teenagent/inventory.cpp b/engines/teenagent/inventory.cpp
index 4951b2d940..2b858bbb4d 100644
--- a/engines/teenagent/inventory.cpp
+++ b/engines/teenagent/inventory.cpp
@@ -43,7 +43,7 @@ Inventory::Inventory(TeenAgentEngine *engine) {
if (!s)
error("no inventory background");
debug(0, "loading inventory background...");
- _background.load(s, Surface::kTypeOns);
+ _background.load(*s, Surface::kTypeOns);
}
uint32 items_size = varia.getSize(4);
@@ -300,13 +300,13 @@ void Inventory::Item::load(Inventory *inventory, uint item_id) {
if (_animation.empty()) {
debug(0, "loading item %d from offset %x", obj->id, inventory->_offset[obj->id - 1]);
Common::MemoryReadStream s(inventory->_items + inventory->_offset[obj->id - 1], inventory->_offset[obj->id] - inventory->_offset[obj->id - 1]);
- _animation.load(&s, Animation::kTypeInventory);
+ _animation.load(s, Animation::kTypeInventory);
}
} else {
if (_surface.empty()) {
debug(0, "loading item %d from offset %x", obj->id, inventory->_offset[obj->id - 1]);
Common::MemoryReadStream s(inventory->_items + inventory->_offset[obj->id - 1], inventory->_offset[obj->id] - inventory->_offset[obj->id - 1]);
- _surface.load(&s, Surface::kTypeOns);
+ _surface.load(s, Surface::kTypeOns);
}
}
}
diff --git a/engines/teenagent/scene.cpp b/engines/teenagent/scene.cpp
index 4be6c9c31a..39b77ea447 100644
--- a/engines/teenagent/scene.cpp
+++ b/engines/teenagent/scene.cpp
@@ -57,7 +57,7 @@ Scene::Scene(TeenAgentEngine *engine, OSystem *system) : intro(false), _id(0), o
if (!s)
error("invalid resource data");
- teenagent.load(s, Animation::kTypeVaria);
+ teenagent.load(*s, Animation::kTypeVaria);
if (teenagent.empty())
error("invalid mark animation");
@@ -65,7 +65,7 @@ Scene::Scene(TeenAgentEngine *engine, OSystem *system) : intro(false), _id(0), o
if (!s)
error("invalid resource data");
- teenagent_idle.load(s, Animation::kTypeVaria);
+ teenagent_idle.load(*s, Animation::kTypeVaria);
if (teenagent_idle.empty())
error("invalid mark animation");
@@ -340,7 +340,7 @@ void Scene::loadOns() {
for (uint32 i = 0; i < ons_count; ++i) {
Common::ScopedPtr<Common::SeekableReadStream> s(res->ons.getStream(on_id[i]));
if (s) {
- ons[i].load(s, Surface::kTypeOns);
+ ons[i].load(*s, Surface::kTypeOns);
}
}
}
@@ -363,7 +363,7 @@ void Scene::loadLans() {
Common::ScopedPtr<Common::SeekableReadStream> s(res->loadLan000(res_id));
if (s) {
- animation[i].load(s, Animation::kTypeLan);
+ animation[i].load(*s, Animation::kTypeLan);
if (bxv != 0 && bxv != 0xff)
animation[i].id = bxv;
}
@@ -412,7 +412,7 @@ void Scene::init(int id, const Common::Point &pos) {
sub_hack = 2;
}
}
- on.load(stream, SurfaceList::kTypeOn, sub_hack);
+ on.load(*stream, SurfaceList::kTypeOn, sub_hack);
loadOns();
loadLans();
@@ -434,7 +434,7 @@ void Scene::playAnimation(byte idx, uint id, bool loop, bool paused, bool ignore
if (!s)
error("playing animation %u failed", id);
- custom_animation[idx].load(s);
+ custom_animation[idx].load(*s);
custom_animation[idx].loop = loop;
custom_animation[idx].paused = paused;
custom_animation[idx].ignore = ignore;
@@ -446,7 +446,7 @@ void Scene::playActorAnimation(uint id, bool loop, bool ignore) {
if (!s)
error("playing animation %u failed", id);
- actor_animation.load(s);
+ actor_animation.load(*s);
actor_animation.loop = loop;
actor_animation.ignore = ignore;
actor_animation.id = id;
diff --git a/engines/teenagent/surface.cpp b/engines/teenagent/surface.cpp
index 2e23c7a8ed..e8b5a8ad59 100644
--- a/engines/teenagent/surface.cpp
+++ b/engines/teenagent/surface.cpp
@@ -33,26 +33,26 @@ Surface::~Surface() {
free();
}
-void Surface::load(Common::SeekableReadStream *stream, Type type) {
+void Surface::load(Common::SeekableReadStream &stream, Type type) {
//debug(0, "load()");
free();
x = y = 0;
- uint16 w_ = stream->readUint16LE();
- uint16 h_ = stream->readUint16LE();
+ uint16 w_ = stream.readUint16LE();
+ uint16 h_ = stream.readUint16LE();
if (type != kTypeLan) {
- uint16 pos = stream->readUint16LE();
+ uint16 pos = stream.readUint16LE();
x = pos % 320;
y = pos / 320;
}
//debug(0, "declared info: %ux%u (%04xx%04x) -> %u,%u", w_, h_, w_, h_, x, y);
- if (stream->eos() || w_ == 0)
+ if (stream.eos() || w_ == 0)
return;
- if (w_ * h_ > stream->size()) {
+ if (w_ * h_ > stream.size()) {
debug(0, "invalid surface %ux%u -> %u,%u", w_, h_, x, y);
return;
}
@@ -60,7 +60,7 @@ void Surface::load(Common::SeekableReadStream *stream, Type type) {
//debug(0, "creating surface %ux%u -> %u,%u", w_, h_, x, y);
create(w_, h_, Graphics::PixelFormat::createFormatCLUT8());
- stream->read(pixels, w_ * h_);
+ stream.read(pixels, w_ * h_);
}
Common::Rect Surface::render(Graphics::Surface *surface, int dx, int dy, bool mirror, Common::Rect src_rect, uint zoom) const {
diff --git a/engines/teenagent/surface.h b/engines/teenagent/surface.h
index 5f74176c68..64e45a7330 100644
--- a/engines/teenagent/surface.h
+++ b/engines/teenagent/surface.h
@@ -40,7 +40,7 @@ public:
Surface();
~Surface();
- void load(Common::SeekableReadStream *stream, Type type);
+ void load(Common::SeekableReadStream&, Type type);
Common::Rect render(Graphics::Surface *surface, int dx = 0, int dy = 0, bool mirror = false, Common::Rect src_rect = Common::Rect(), uint zoom = 256) const;
bool empty() const { return pixels == NULL; }
diff --git a/engines/teenagent/surface_list.cpp b/engines/teenagent/surface_list.cpp
index e98153a935..7f7eb1dc38 100644
--- a/engines/teenagent/surface_list.cpp
+++ b/engines/teenagent/surface_list.cpp
@@ -31,11 +31,11 @@ SurfaceList::~SurfaceList() {
free();
}
-void SurfaceList::load(Common::SeekableReadStream *stream, Type type, int sub_hack) {
+void SurfaceList::load(Common::SeekableReadStream &stream, Type type, int sub_hack) {
free();
- byte fn = stream->readByte();
- if (stream->eos())
+ byte fn = stream.readByte();
+ if (stream.eos())
return;
surfaces_n = fn - sub_hack;
@@ -47,11 +47,11 @@ void SurfaceList::load(Common::SeekableReadStream *stream, Type type, int sub_ha
surfaces = new Surface[surfaces_n];
for (byte i = 0; i < surfaces_n; ++i) {
- uint offset = stream->readUint16LE();
- uint pos = stream->pos();
- stream->seek(offset);
+ uint offset = stream.readUint16LE();
+ uint pos = stream.pos();
+ stream.seek(offset);
surfaces[i].load(stream, Surface::kTypeOns);
- stream->seek(pos);
+ stream.seek(pos);
}
}
diff --git a/engines/teenagent/surface_list.h b/engines/teenagent/surface_list.h
index d949a722d6..fcb4fb25c5 100644
--- a/engines/teenagent/surface_list.h
+++ b/engines/teenagent/surface_list.h
@@ -33,7 +33,7 @@ public:
SurfaceList();
~SurfaceList();
- void load(Common::SeekableReadStream *stream, Type type, int sub_hack = 0);
+ void load(Common::SeekableReadStream&, Type type, int sub_hack = 0);
void free();
void render(Graphics::Surface *surface, const Common::Rect & clip) const;
@@ -45,4 +45,3 @@ protected:
}
#endif
-
diff --git a/engines/teenagent/teenagent.cpp b/engines/teenagent/teenagent.cpp
index 0289b994e6..e6a248334c 100644
--- a/engines/teenagent/teenagent.cpp
+++ b/engines/teenagent/teenagent.cpp
@@ -386,7 +386,7 @@ bool TeenAgentEngine::showLogo() {
}
Surface s;
- s.load(frame, Surface::kTypeOns);
+ s.load(*frame, Surface::kTypeOns);
if (s.empty()) {
free(bg);
return true;
diff --git a/engines/testbed/misc.cpp b/engines/testbed/misc.cpp
index 034d3eb27e..aee3ccd294 100644
--- a/engines/testbed/misc.cpp
+++ b/engines/testbed/misc.cpp
@@ -110,7 +110,7 @@ TestExitStatus MiscTests::testDateTime() {
TestExitStatus MiscTests::testTimers() {
int valToModify = 0;
- if (g_system->getTimerManager()->installTimerProc(timerCallback, 100000, &valToModify)) {
+ if (g_system->getTimerManager()->installTimerProc(timerCallback, 100000, &valToModify, "testbedTimer")) {
g_system->delayMillis(150);
g_system->getTimerManager()->removeTimerProc(timerCallback);
@@ -133,7 +133,7 @@ TestExitStatus MiscTests::testMutexes() {
SharedVars sv = {1, 1, true, g_system->createMutex()};
- if (g_system->getTimerManager()->installTimerProc(criticalSection, 100000, &sv)) {
+ if (g_system->getTimerManager()->installTimerProc(criticalSection, 100000, &sv, "testbedMutex")) {
g_system->delayMillis(150);
}
diff --git a/engines/tinsel/adpcm.cpp b/engines/tinsel/adpcm.cpp
index 4ea835586b..ca3150ca3d 100644
--- a/engines/tinsel/adpcm.cpp
+++ b/engines/tinsel/adpcm.cpp
@@ -61,7 +61,7 @@ void Tinsel_ADPCMStream::readBufferTinselHeader() {
int16 Tinsel_ADPCMStream::decodeTinsel(int16 code, double eVal) {
double sample;
- sample = (double) code;
+ sample = (double)code;
sample *= eVal * _status.predictor;
sample += (_status.d0 * _status.K0) + (_status.d1 * _status.K1);
diff --git a/engines/tinsel/coroutine.cpp b/engines/tinsel/coroutine.cpp
index 998d98b52a..ef0097f043 100644
--- a/engines/tinsel/coroutine.cpp
+++ b/engines/tinsel/coroutine.cpp
@@ -80,4 +80,3 @@ CoroBaseContext::~CoroBaseContext() {
}
} // End of namespace Tinsel
-
diff --git a/engines/tinsel/detection.cpp b/engines/tinsel/detection.cpp
index 9c52305a1c..1fce032633 100644
--- a/engines/tinsel/detection.cpp
+++ b/engines/tinsel/detection.cpp
@@ -322,9 +322,21 @@ int TinselMetaEngine::getMaximumSaveSlot() const { return 99; }
void TinselMetaEngine::removeSaveState(const char *target, int slot) const {
Tinsel::setNeedLoad();
- Tinsel::getList(g_system->getSavefileManager(), target);
+ // Same issue here as with loadGameState(): we need the physical savegame
+ // slot. Refer to bug #3387551.
+ int listSlot = -1;
+ const int numStates = Tinsel::getList(g_system->getSavefileManager(), target);
+ for (int i = 0; i < numStates; ++i) {
+ const char *fileName = Tinsel::ListEntry(i, Tinsel::LE_NAME);
+ const int saveSlot = atoi(fileName + strlen(fileName) - 3);
+
+ if (saveSlot == slot) {
+ listSlot = i;
+ break;
+ }
+ }
- g_system->getSavefileManager()->removeSavefile(Tinsel::ListEntry(slot, Tinsel::LE_NAME));
+ g_system->getSavefileManager()->removeSavefile(Tinsel::ListEntry(listSlot, Tinsel::LE_NAME));
Tinsel::setNeedLoad();
Tinsel::getList(g_system->getSavefileManager(), target);
}
diff --git a/engines/tinsel/detection_tables.h b/engines/tinsel/detection_tables.h
index 116322aa89..bea0938fad 100644
--- a/engines/tinsel/detection_tables.h
+++ b/engines/tinsel/detection_tables.h
@@ -214,7 +214,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -236,7 +236,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_DROPLANGUAGE,
+ ADGF_DROPLANGUAGE | ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -261,7 +261,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::FR_FRA,
Common::kPlatformPC,
- ADGF_DROPLANGUAGE,
+ ADGF_DROPLANGUAGE | ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -285,7 +285,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_DROPLANGUAGE,
+ ADGF_DROPLANGUAGE | ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -308,7 +308,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::IT_ITA,
Common::kPlatformPC,
- ADGF_DROPLANGUAGE,
+ ADGF_DROPLANGUAGE | ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -331,7 +331,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::ES_ESP,
Common::kPlatformPC,
- ADGF_DROPLANGUAGE,
+ ADGF_DROPLANGUAGE | ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -351,7 +351,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -371,7 +371,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::HE_ISR,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -390,7 +390,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPSX,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -434,7 +434,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -456,7 +456,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::EN_ANY,
Common::kPlatformMacintosh,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -475,7 +475,7 @@ static const TinselGameDescription gameDescriptions[] = {
AD_ENTRY1s("dw.scn", "6182c7986eaec893c62fb6ea13a9f225", 774556),
Common::DE_DEU,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
@@ -496,7 +496,7 @@ static const TinselGameDescription gameDescriptions[] = {
},
Common::RU_RUS,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD,
GUIO_NONE
},
GID_DW1,
diff --git a/engines/tinsel/saveload.cpp b/engines/tinsel/saveload.cpp
index 7a973ba4be..4ac172be43 100644
--- a/engines/tinsel/saveload.cpp
+++ b/engines/tinsel/saveload.cpp
@@ -154,8 +154,15 @@ static bool syncSaveGameHeader(Common::Serializer &s, SaveGameHeader &hdr) {
syncTime(s, hdr.dateTime);
int tmp = hdr.size - s.bytesSynced();
+
+ // NOTE: We can't use SAVEGAME_ID here when attempting to remove a saved game from the launcher,
+ // as there is no TinselEngine initialized then. This means that we can't check if this is a DW1
+ // or DW2 savegame in this case, but it doesn't really matter, as the saved game is about to be
+ // deleted anyway. Refer to bug #3387551.
+ bool correctID = _vm ? (hdr.id == SAVEGAME_ID) : (hdr.id == DW1_SAVEGAME_ID || hdr.id == DW2_SAVEGAME_ID);
+
// Perform sanity check
- if (tmp < 0 || hdr.id != SAVEGAME_ID || hdr.ver > CURRENT_VER || hdr.size > 1024)
+ if (tmp < 0 || !correctID || hdr.ver > CURRENT_VER || hdr.size > 1024)
return false;
// Skip over any extra bytes
s.skip(tmp);
diff --git a/engines/tinsel/strres.h b/engines/tinsel/strres.h
index a63824a863..f6e86951b6 100644
--- a/engines/tinsel/strres.h
+++ b/engines/tinsel/strres.h
@@ -96,4 +96,3 @@ SCNHANDLE LanguageFlag(LANGUAGE thisOne);
} // End of namespace Tinsel
#endif
-
diff --git a/engines/tinsel/tinsel.h b/engines/tinsel/tinsel.h
index 30b060766e..e18216cdf7 100644
--- a/engines/tinsel/tinsel.h
+++ b/engines/tinsel/tinsel.h
@@ -31,9 +31,6 @@
#include "common/random.h"
#include "common/util.h"
-#include "audio/mididrv.h"
-#include "audio/mixer.h"
-
#include "engines/engine.h"
#include "tinsel/debugger.h"
#include "tinsel/graphics.h"
@@ -53,6 +50,7 @@ namespace Tinsel {
class BMVPlayer;
class Config;
+class MidiDriver;
class MidiMusicPlayer;
class PCMMusicPlayer;
class Scheduler;
diff --git a/engines/toon/audio.cpp b/engines/toon/audio.cpp
index 0bf3316209..4a4a84e62c 100644
--- a/engines/toon/audio.cpp
+++ b/engines/toon/audio.cpp
@@ -613,4 +613,3 @@ void AudioManager::updateAmbientSFX()
}
} // End of namespace Toon
-
diff --git a/engines/toon/character.cpp b/engines/toon/character.cpp
index 06c6e21d21..7d9a31c170 100644
--- a/engines/toon/character.cpp
+++ b/engines/toon/character.cpp
@@ -596,7 +596,8 @@ int32 Character::getId() {
void Character::save(Common::WriteStream *stream) {
debugC(1, kDebugCharacter, "save(stream)");
- stream->writeSint32LE(_flags);
+ // we have to save visibility too, put in flags to not invalidate old savegames.
+ stream->writeSint32LE(_flags | ((_visible == false) ? 0x100 : 0));
stream->writeSint32LE(_x);
stream->writeSint32LE(_y);
stream->writeSint32LE(_z);
@@ -633,6 +634,12 @@ void Character::load(Common::ReadStream *stream) {
if (_sceneAnimationId > -1) {
setAnimationInstance(_vm->getSceneAnimation(_sceneAnimationId)->_animInstance);
}
+
+ // "not visible" flag.
+ if (_flags & 0x100) {
+ _flags &= ~0x100;
+ setVisible(false);
+ }
}
void Character::setAnimScript(int32 animScriptId) {
@@ -1102,4 +1109,3 @@ void Character::updateIdle() {
}
}
} // End of namespace Toon
-
diff --git a/engines/toon/detection.cpp b/engines/toon/detection.cpp
index 810a37720a..ac4caae8b2 100644
--- a/engines/toon/detection.cpp
+++ b/engines/toon/detection.cpp
@@ -224,12 +224,7 @@ SaveStateDescriptor ToonMetaEngine::querySaveMetaInfos(const char *target, int s
SaveStateDescriptor desc(slot, saveName);
- Graphics::Surface *thumbnail = new Graphics::Surface();
- assert(thumbnail);
- if (!Graphics::loadThumbnail(*file, *thumbnail)) {
- delete thumbnail;
- thumbnail = 0;
- }
+ Graphics::Surface *const thumbnail = Graphics::loadThumbnail(*file);
desc.setThumbnail(thumbnail);
desc.setDeletableFlag(true);
diff --git a/engines/toon/drew.cpp b/engines/toon/drew.cpp
index 89438fb35c..df5cfcfa03 100644
--- a/engines/toon/drew.cpp
+++ b/engines/toon/drew.cpp
@@ -129,4 +129,3 @@ void CharacterDrew::resetScale()
setPosition(_x, _y);
}
} // End of namespace Toon
-
diff --git a/engines/toon/hotspot.cpp b/engines/toon/hotspot.cpp
index 62458ad800..ee81b87417 100644
--- a/engines/toon/hotspot.cpp
+++ b/engines/toon/hotspot.cpp
@@ -149,4 +149,3 @@ HotspotData *Hotspots::Get(int32 id) {
}
} // End of namespace Toon
-
diff --git a/engines/toon/movie.cpp b/engines/toon/movie.cpp
index 2318eaaac7..7637f4e62f 100644
--- a/engines/toon/movie.cpp
+++ b/engines/toon/movie.cpp
@@ -94,7 +94,7 @@ void Movie::play(Common::String video, int32 flags) {
_vm->getAudioManager()->setMusicVolume(0);
_decoder->loadFile(video.c_str());
playVideo(isFirstIntroVideo);
- _vm->flushPalette(false);
+ _vm->flushPalette(true);
if (flags & 1)
_vm->getAudioManager()->setMusicVolume(_vm->getAudioManager()->isMusicMuted() ? 0 : 255);
_decoder->close();
@@ -103,7 +103,6 @@ void Movie::play(Common::String video, int32 flags) {
bool Movie::playVideo(bool isFirstIntroVideo) {
debugC(1, kDebugMovie, "playVideo(isFirstIntroVideo: %d)", isFirstIntroVideo);
-
while (!_vm->shouldQuit() && !_decoder->endOfVideo()) {
if (_decoder->needsUpdate()) {
const Graphics::Surface *frame = _decoder->decodeNextFrame();
diff --git a/engines/toon/path.cpp b/engines/toon/path.cpp
index 43a134e39b..60ca007930 100644
--- a/engines/toon/path.cpp
+++ b/engines/toon/path.cpp
@@ -28,54 +28,69 @@ namespace Toon {
PathFindingHeap::PathFindingHeap() {
_count = 0;
- _alloc = 0;
+ _size = 0;
_data = NULL;
}
PathFindingHeap::~PathFindingHeap() {
- delete[] _data;
+ free(_data);
}
-int32 PathFindingHeap::init(int32 size) {
+void PathFindingHeap::init(int32 size) {
debugC(1, kDebugPath, "init(%d)", size);
+ _size = size;
- delete[] _data;
- _data = new HeapDataGrid[size * 2];
- memset(_data, 0, sizeof(HeapDataGrid) * size * 2);
+ free(_data);
+ _data = (HeapDataGrid *)malloc(sizeof(HeapDataGrid) * _size);
+ memset(_data, 0, sizeof(HeapDataGrid) * _size);
_count = 0;
- _alloc = size;
- return size;
}
-int32 PathFindingHeap::unload() {
- delete[] _data;
+void PathFindingHeap::unload() {
+ _count = 0;
+ _size = 0;
+ free(_data);
_data = NULL;
- return 0;
}
-int32 PathFindingHeap::clear() {
- //debugC(1, kDebugPath, "clear()");
+void PathFindingHeap::clear() {
+ debugC(1, kDebugPath, "clear()");
_count = 0;
- memset(_data, 0, sizeof(HeapDataGrid) * _alloc * 2);
- return 1;
+ memset(_data, 0, sizeof(HeapDataGrid) * _size);
}
-int32 PathFindingHeap::push(int32 x, int32 y, int32 weight) {
- //debugC(6, kDebugPath, "push(%d, %d, %d)", x, y, weight);
+void PathFindingHeap::push(int32 x, int32 y, int32 weight) {
+ debugC(2, kDebugPath, "push(%d, %d, %d)", x, y, weight);
+
+ if (_count == _size) {
+ // Increase size by 50%
+ int newSize = _size + (_size >> 1) + 1;
+ HeapDataGrid *newData;
+
+ newData = (HeapDataGrid *)realloc(_data, sizeof(HeapDataGrid) * newSize);
+ if (newData == NULL) {
+ warning("Aborting attempt to push onto PathFindingHeap at maximum size: %d", _count);
+ return;
+ }
+
+ memset(newData + _size, 0, sizeof(HeapDataGrid) * (newSize - _size));
+ _data = newData;
+ _size = newSize;
+ }
- _count++;
_data[_count]._x = x;
_data[_count]._y = y;
_data[_count]._weight = weight;
+ _count++;
- int32 lMax = _count;
+ int32 lMax = _count-1;
int32 lT = 0;
while (1) {
- lT = lMax / 2;
- if (lT < 1)
+ if (lMax <= 0)
break;
+ lT = (lMax-1) / 2;
if (_data[lT]._weight > _data[lMax]._weight) {
HeapDataGrid temp;
@@ -87,31 +102,31 @@ int32 PathFindingHeap::push(int32 x, int32 y, int32 weight) {
break;
}
}
- return 1;
}
-int32 PathFindingHeap::pop(int32 *x, int32 *y, int32 *weight) {
- //debugC(6, kDebugPath, "pop(x, y, weight)");
+void PathFindingHeap::pop(int32 *x, int32 *y, int32 *weight) {
+ debugC(2, kDebugPath, "pop(x, y, weight)");
- if (!_count)
- return 0;
+ if (!_count) {
+ warning("Attempt to pop empty PathFindingHeap!");
+ return;
+ }
- *x = _data[1]._x;
- *y = _data[1]._y;
- *weight = _data[1]._weight;
+ *x = _data[0]._x;
+ *y = _data[0]._y;
+ *weight = _data[0]._weight;
- _data[1] = _data[_count];
- _count--;
+ _data[0] = _data[--_count];
if (!_count)
- return 0;
+ return;
- int32 lMin = 1;
- int32 lT = 1;
+ int32 lMin = 0;
+ int32 lT = 0;
while (1) {
- lT = lMin << 1;
- if (lT <= _count) {
- if (lT < _count) {
+ lT = (lMin << 1) + 1;
+ if (lT < _count) {
+ if (lT < _count-1) {
if (_data[lT + 1]._weight < _data[lT]._weight)
lT++;
}
@@ -129,7 +144,6 @@ int32 PathFindingHeap::pop(int32 *x, int32 *y, int32 *weight) {
break;
}
}
- return 0;
}
PathFinding::PathFinding(ToonEngine *vm) : _vm(vm) {
@@ -164,7 +178,7 @@ bool PathFinding::isLikelyWalkable(int32 x, int32 y) {
}
bool PathFinding::isWalkable(int32 x, int32 y) {
- //debugC(6, kDebugPath, "isWalkable(%d, %d)", x, y);
+ debugC(2, kDebugPath, "isWalkable(%d, %d)", x, y);
bool maskWalk = (_currentMask->getData(x, y) & 0x1f) > 0;
@@ -299,7 +313,7 @@ int32 PathFinding::findPath(int32 x, int32 y, int32 destx, int32 desty) {
_heap->push(curX, curY, abs(destx - x) + abs(desty - y));
int wei = 0;
- while (_heap->_count) {
+ while (_heap->getCount()) {
wei = 0;
_heap->pop(&curX, &curY, &curWeight);
int curNode = curX + curY * _width;
@@ -424,11 +438,7 @@ void PathFinding::init(Picture *mask) {
_height = mask->getHeight();
_currentMask = mask;
_heap->unload();
- // In order to reduce memory fragmentation on small devices, we use the maximum
- // possible size here which is TOON_BACKBUFFER_WIDTH. Even though this is
- // 1280 as opposed to the possible 640, it actually helps memory allocation on
- // those devices.
- _heap->init(TOON_BACKBUFFER_WIDTH * _height); // should really be _width
+ _heap->init(500);
delete[] _gridTemp;
_gridTemp = new int32[_width*_height];
}
diff --git a/engines/toon/path.h b/engines/toon/path.h
index 329127c9ce..2de58064f0 100644
--- a/engines/toon/path.h
+++ b/engines/toon/path.h
@@ -38,17 +38,18 @@ public:
PathFindingHeap();
~PathFindingHeap();
- int32 _alloc;
- int32 _count;
-
- int32 push(int32 x, int32 y, int32 weight);
- int32 pop(int32 *x, int32 *y, int32 *weight);
- int32 init(int32 size);
- int32 clear();
- int32 unload();
+ void push(int32 x, int32 y, int32 weight);
+ void pop(int32 *x, int32 *y, int32 *weight);
+ void init(int32 size);
+ void clear();
+ void unload();
+ int32 getCount() { return _count; }
private:
HeapDataGrid *_data;
+
+ int32 _size;
+ int32 _count;
};
class PathFinding {
diff --git a/engines/toon/picture.cpp b/engines/toon/picture.cpp
index 0257964fb5..295e304765 100644
--- a/engines/toon/picture.cpp
+++ b/engines/toon/picture.cpp
@@ -29,16 +29,14 @@
namespace Toon {
-bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
- debugC(1, kDebugPicture, "loadPicture(%s, %d)", file.c_str(), (totalPalette) ? 1 : 0);
+bool Picture::loadPicture(Common::String file) {
+ debugC(1, kDebugPicture, "loadPicture(%s)", file.c_str());
uint32 size = 0;
uint8 *fileData = _vm->resources()->getFileData(file, &size);
if (!fileData)
return false;
- _useFullPalette = totalPalette;
-
uint32 compId = READ_BE_UINT32(fileData);
switch (compId) {
@@ -57,6 +55,8 @@ bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
// do we have a palette ?
_paletteEntries = (dstsize & 0x7ff) / 3;
+ _useFullPalette = (_paletteEntries == 256);
+ // _useFullPalette = true;
if (_paletteEntries) {
_palette = new uint8[_paletteEntries * 3];
memcpy(_palette, _data + dstsize - (dstsize & 0x7ff), _paletteEntries * 3);
@@ -70,7 +70,8 @@ bool Picture::loadPicture(Common::String file, bool totalPalette /*= false*/) {
uint32 decSize = READ_LE_UINT32(fileData + 10);
_data = new uint8[decSize + 100];
_paletteEntries = READ_LE_UINT16(fileData + 14) / 3;
-
+ _useFullPalette = (_paletteEntries == 256);
+
if (_paletteEntries) {
_palette = new uint8[_paletteEntries * 3];
memcpy(_palette, fileData + 16, _paletteEntries * 3);
diff --git a/engines/toon/picture.h b/engines/toon/picture.h
index 23edbc91da..ee0e006702 100644
--- a/engines/toon/picture.h
+++ b/engines/toon/picture.h
@@ -38,7 +38,7 @@ class Picture {
public:
Picture(ToonEngine *vm);
~Picture();
- bool loadPicture(Common::String file, bool totalPalette = false);
+ bool loadPicture(Common::String file);
void setupPalette();
void draw(Graphics::Surface &surface, int32 x, int32 y, int32 dx, int32 dy);
void drawWithRectList(Graphics::Surface& surface, int32 x, int32 y, int32 dx, int32 dy, Common::Array<Common::Rect>& rectArray);
diff --git a/engines/toon/script.cpp b/engines/toon/script.cpp
index eed781295a..69ae727bb5 100644
--- a/engines/toon/script.cpp
+++ b/engines/toon/script.cpp
@@ -502,4 +502,3 @@ void EMCInterpreter::loadState(EMCState *script, Common::ReadStream *stream) {
}
} // End of namespace Toon
-
diff --git a/engines/toon/script.h b/engines/toon/script.h
index 9dd00dca80..8ef085f383 100644
--- a/engines/toon/script.h
+++ b/engines/toon/script.h
@@ -148,4 +148,3 @@ private:
} // End of namespace Toon
#endif
-
diff --git a/engines/toon/toon.cpp b/engines/toon/toon.cpp
index 26639d71f7..cff6c24469 100644
--- a/engines/toon/toon.cpp
+++ b/engines/toon/toon.cpp
@@ -614,7 +614,7 @@ struct MainMenuEntry {
bool ToonEngine::showMainmenu(bool &loadedGame) {
Picture *mainmenuPicture = new Picture(this);
- mainmenuPicture->loadPicture("TITLESCR.CPS", true);
+ mainmenuPicture->loadPicture("TITLESCR.CPS");
mainmenuPicture->setupPalette();
flushPalette(false);
@@ -690,6 +690,11 @@ bool ToonEngine::showMainmenu(bool &loadedGame) {
}
}
+ if (_needPaletteFlush) {
+ flushPalette(false);
+ _needPaletteFlush = false;
+ }
+
parseInput();
copyToVirtualScreen(true);
_system->delayMillis(17);
@@ -1547,7 +1552,7 @@ void ToonEngine::clickEvent() {
return;
}
} else {
- if (!_drew->walkTo(_mouseX, _mouseY)) {
+ if (!_drew->walkTo(_mouseX + _gameState->_currentScrollValue, _mouseY)) {
// walk was canceled ?
return;
}
@@ -2600,7 +2605,7 @@ int32 ToonEngine::showInventory() {
delete _inventoryPicture;
_inventoryPicture = new Picture(this);
fadeOut(5);
- _inventoryPicture->loadPicture("SACK128.CPS", true);
+ _inventoryPicture->loadPicture("SACK128.CPS");
_inventoryPicture->setupPalette();
dirtyAllScreen();
@@ -2786,7 +2791,7 @@ void ToonEngine::showCutaway(Common::String cutawayPicture) {
if (cutawayPicture == "") {
cutawayPicture = Common::String(_gameState->_locations[_gameState->_currentScene]._cutaway) + ".CPS";
}
- _currentCutaway->loadPicture(cutawayPicture, false);
+ _currentCutaway->loadPicture(cutawayPicture);
_currentCutaway->setupPalette();
_oldScrollValue = _gameState->_currentScrollValue;
_gameState->_currentScrollValue = 0;
@@ -3418,7 +3423,7 @@ void ToonEngine::viewInventoryItem(Common::String str, int32 lineId, int32 itemD
fadeOut(5);
Picture *pic = new Picture(this);
- pic->loadPicture(str, false);
+ pic->loadPicture(str);
pic->setupPalette();
dirtyAllScreen();
flushPalette();
diff --git a/engines/tsage/blue_force/blueforce_logic.cpp b/engines/tsage/blue_force/blueforce_logic.cpp
new file mode 100644
index 0000000000..46c9307632
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_logic.cpp
@@ -0,0 +1,355 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/blue_force/blueforce_logic.h"
+#include "tsage/blue_force/blueforce_scenes0.h"
+#include "tsage/blue_force/blueforce_scenes1.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/staticres.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+void BlueForceGame::start() {
+ // Start the game
+ _globals->_sceneManager.changeScene(50);
+
+ _globals->_events.setCursor(CURSOR_WALK);
+}
+
+Scene *BlueForceGame::createScene(int sceneNumber) {
+ switch (sceneNumber) {
+ /* Scene Group #0 */
+ case 20:
+ // Tsunami Title Screen
+ return new Scene20();
+ case 50:
+ return new Scene50();
+ case 60:
+ error("Scene group 0 not implemented");
+ /* Scene Group #1 */
+ case 100:
+ // Tsnunami Title Screen #2
+ return new Scene100();
+ case 109:
+ // Introduction Bar Room
+ return new Scene109();
+ case 110:
+
+ case 114:
+ case 115:
+ case 125:
+ case 140:
+ case 150:
+ case 160:
+ case 180:
+ case 190:
+ error("Scene group 1 not implemented");
+ case 200:
+ case 210:
+ case 220:
+ case 225:
+ case 265:
+ case 270:
+ case 271:
+ case 280:
+ error("Scene group 2 not implemented");
+ case 300:
+ case 315:
+ case 325:
+ case 330:
+ case 340:
+ case 342:
+ case 350:
+ case 355:
+ case 360:
+ case 370:
+ case 380:
+ case 385:
+ case 390:
+ error("Scene group 3 not implemented");
+ case 410:
+ case 415:
+ case 440:
+ case 450:
+ error("Scene group 4 not implemented");
+ case 550:
+ case 551:
+ case 560:
+ case 570:
+ case 580:
+ case 590:
+ error("Scene group 5 not implemented");
+ case 600:
+ case 620:
+ case 666:
+ case 690:
+ error("Scene group 6 not implemented");
+ case 710:
+ error("Scene group 7 not implemented");
+ case 800:
+ case 810:
+ case 820:
+ case 830:
+ case 840:
+ case 850:
+ case 860:
+ case 870:
+ case 880:
+ error("Scene group 8 not implemented");
+ case 900:
+ case 910:
+ case 920:
+ case 930:
+ case 935:
+ case 940:
+ error("Scene group 9 not implemented");
+ default:
+ error("Unknown scene number - %d", sceneNumber);
+ break;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+AObjectArray::AObjectArray(): EventHandler() {
+ _inUse = false;
+ clear();
+}
+
+void AObjectArray::clear() {
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i)
+ _objList[i] = NULL;
+}
+
+void AObjectArray::synchronize(Serializer &s) {
+ EventHandler::synchronize(s);
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i)
+ SYNC_POINTER(_objList[i]);
+}
+
+void AObjectArray::process(Event &event) {
+ if (_inUse)
+ error("Array error");
+ _inUse = true;
+
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i) {
+ if (_objList[i])
+ _objList[i]->process(event);
+ }
+
+ _inUse = false;
+}
+
+void AObjectArray::dispatch() {
+ if (_inUse)
+ error("Array error");
+ _inUse = true;
+
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i) {
+ if (_objList[i])
+ _objList[i]->dispatch();
+ }
+
+ _inUse = false;
+}
+
+int AObjectArray::getNewIndex() {
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i) {
+ if (!_objList[i])
+ return i;
+ }
+ error("AObjectArray too full.");
+}
+
+void AObjectArray::add(EventHandler *obj) {
+ int idx = getNewIndex();
+ _objList[idx] = obj;
+}
+
+void AObjectArray::remove(EventHandler *obj) {
+ for (int i = 0; i < OBJ_ARRAY_SIZE; ++i) {
+ if (_objList[i] == obj) {
+ _objList[i] = NULL;
+ return;
+ }
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Timer::Timer() {
+ _endFrame = 0;
+ _endAction = NULL;
+ _tickAction = NULL;
+}
+
+void Timer::remove() {
+ _endFrame = 0;
+ _endAction = NULL;
+
+ ((Scene100 *)BF_GLOBALS._sceneManager._scene)->removeTimer(this);
+}
+
+void Timer::signal() {
+ assert(_endAction);
+ Action *action = _endAction;
+ remove();
+ action->signal();
+}
+
+void Timer::dispatch() {
+ if (_tickAction)
+ _tickAction->dispatch();
+
+ if (_endFrame) {
+ uint32 frameNumber = BF_GLOBALS._events.getFrameNumber();
+ if (frameNumber > _endFrame)
+ // Timer has expired
+ signal();
+ }
+}
+
+void Timer::set(uint32 delay, Action *action) {
+ assert(delay != 0);
+
+ _endFrame = BF_GLOBALS._sceneHandler->getFrameDifference() + delay;
+ _endAction = action;
+
+ ((SceneExt *)BF_GLOBALS._sceneManager._scene)->addTimer(this);
+}
+
+/*--------------------------------------------------------------------------*/
+
+void SceneItemType1::process(Event &event) {
+ if (_action)
+ _action->process(event);
+}
+
+void SceneItemType1::startMove(SceneObject *sceneObj, va_list va) {
+ warning("TODO: sub_1621C");
+}
+
+/*--------------------------------------------------------------------------*/
+
+void SceneItemType2::startMove(SceneObject *sceneObj, va_list va) {
+}
+
+/*--------------------------------------------------------------------------*/
+
+SceneExt::SceneExt(): Scene() {
+ warning("TODO: dword_503AA/dword_503AE/dword_53030");
+
+ _field372 = 0;
+ _field37A = 0;
+ _field37C = NULL;
+}
+
+void SceneExt::postInit(SceneObjectList *OwnerList) {
+ Scene::postInit(OwnerList);
+ if (BF_GLOBALS._v4CEA2) {
+ // Blank out the bottom portion of the screen
+ BF_GLOBALS._interfaceY = BF_INTERFACE_Y;
+
+ Rect r(0, BF_INTERFACE_Y, SCREEN_WIDTH, SCREEN_HEIGHT);
+ BF_GLOBALS.gfxManager().getSurface().fillRect(r, 0);
+ }
+}
+
+void SceneExt::process(Event &event) {
+ _objArray2.process(event);
+ if (!event.handled)
+ Scene::process(event);
+}
+
+void SceneExt::dispatch() {
+ _timerList.dispatch();
+
+ if (_field37A) {
+ if ((--_field37A == 0) && BF_GLOBALS._v4CEA2) {
+ if (BF_GLOBALS._v4E238 && (BF_GLOBALS._v4CF9E == 1)) {
+ warning("sub_1B052");
+ }
+
+ _field37A = 0;
+ }
+ }
+
+ Scene::dispatch();
+}
+
+void SceneExt::loadScene(int sceneNum) {
+ Scene::loadScene(sceneNum);
+
+ _v51C34.top = 0;
+ _v51C34.bottom = 300;
+}
+
+/*--------------------------------------------------------------------------*/
+
+GameScene::GameScene() {
+
+}
+
+void GameScene::postInit(SceneObjectList *OwnerList) {
+ _field794 = 0;
+ _field412 = 1;
+ SceneExt::postInit(OwnerList);
+}
+
+void GameScene::remove() {
+ SceneExt::remove();
+ if (_field794 == 1) {
+ for (SynchronizedList<SceneObject *>::iterator i = BF_GLOBALS._sceneObjects->begin();
+ i != BF_GLOBALS._sceneObjects->end(); ++i)
+ (*i)->remove();
+
+ BF_GLOBALS._sceneObjects->draw();
+ BF_GLOBALS._scenePalette.loadPalette(2);
+ BF_GLOBALS._v51C44 = 1;
+ BF_GLOBALS._v51C42 = 1;
+ }
+
+ BF_GLOBALS._scenePalette._field412 = 1;
+}
+
+/*--------------------------------------------------------------------------*/
+
+void SceneHandlerExt::postInit(SceneObjectList *OwnerList) {
+ SceneHandler::postInit(OwnerList);
+
+ // Load the low end palette data
+ GLOBALS._scenePalette.loadPalette(2);
+ GLOBALS._scenePalette.refresh();
+}
+
+void SceneHandlerExt::process(Event &event) {
+ SceneHandler::process(event);
+
+ // TODO: All the new stuff from Blue Force
+}
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_logic.h b/engines/tsage/blue_force/blueforce_logic.h
new file mode 100644
index 0000000000..9ab8a87a0c
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_logic.h
@@ -0,0 +1,137 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_BLUEFORCE_LOGIC_H
+#define TSAGE_BLUEFORCE_LOGIC_H
+
+#include "common/scummsys.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+
+#define BF_INTERFACE_Y 168
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class BlueForceGame: public Game {
+public:
+ virtual void start();
+ virtual Scene *createScene(int sceneNumber);
+};
+
+#define OBJ_ARRAY_SIZE 10
+class AObjectArray: public EventHandler {
+public:
+ EventHandler *_objList[OBJ_ARRAY_SIZE];
+ bool _inUse;
+ int getNewIndex();
+public:
+ AObjectArray();
+ void clear();
+
+ virtual Common::String getClassName() { return "AObjectArray"; }
+ virtual void synchronize(Serializer &s);
+ virtual void process(Event &event);
+ virtual void dispatch();
+
+ void add(EventHandler *obj);
+ void remove(EventHandler *obj);
+};
+
+class Timer: public EventHandler {
+public:
+ Action *_tickAction;
+ Action *_endAction;
+ uint32 _endFrame;
+public:
+ Timer();
+ void set(uint32 delay, Action *action);
+
+ virtual void remove();
+ virtual void signal();
+ virtual void dispatch();
+};
+
+class SceneItemType1: public SceneItem {
+public:
+ virtual void process(Event &event);
+ virtual void startMove(SceneObject *sceneObj, va_list va);
+};
+
+class SceneItemType2: public SceneItemType1 {
+public:
+ virtual void startMove(SceneObject *sceneObj, va_list va);
+};
+
+class SceneExt: public Scene {
+public:
+ AObjectArray _timerList, _objArray2;
+ int _field372;
+ int _field37A;
+ EventHandler *_field37C;
+
+ Rect _v51C34;
+public:
+ SceneExt();
+
+ virtual Common::String getClassName() { return "SceneExt"; }
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void process(Event &event);
+ virtual void dispatch();
+ virtual void loadScene(int sceneNum);
+ virtual void proc13() { warning("TODO: SceneExt::proc13"); }
+
+ void addTimer(Timer *timer) { _timerList.add(timer); }
+ void removeTimer(Timer *timer) { _timerList.remove(timer); }
+};
+
+class GameScene: public SceneExt {
+public:
+ int _field412;
+ int _field794;
+public:
+ GameScene();
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void remove();
+};
+
+class SceneHandlerExt: public SceneHandler {
+public:
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void process(Event &event);
+};
+
+class BlueAnimatedSpeaker: public Speaker {
+public:
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/blue_force/blueforce_scenes0.cpp b/engines/tsage/blue_force/blueforce_scenes0.cpp
new file mode 100644
index 0000000000..f1b714ec6c
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes0.cpp
@@ -0,0 +1,501 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "tsage/blue_force/blueforce_scenes0.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/staticres.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+/*--------------------------------------------------------------------------
+ * Scene 20 - Tsunami Title Screen
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene20::Action1::signal() {
+ Scene20 *scene = (Scene20 *)BF_GLOBALS._sceneManager._scene;
+ static byte black[3] = { 0, 0, 0 };
+
+ switch (_actionIndex++) {
+ case 0:
+ setDelay(2);
+ break;
+ case 1:
+ _sound.play(1);
+ BF_GLOBALS._scenePalette.addRotation(64, 127, -1, 1, this);
+ break;
+ case 2:
+ scene->_object1.setVisage(22);
+ scene->_object1._strip = 1;
+ scene->_object1._frame = 1;
+ scene->_object1.changeZoom(100);
+
+ scene->_object2.setVisage(22);
+ scene->_object2._strip = 2;
+ scene->_object2._frame = 1;
+ scene->_object2.changeZoom(100);
+
+ scene->_object3.setVisage(22);
+ scene->_object3._strip = 3;
+ scene->_object3._frame = 1;
+ scene->_object3.changeZoom(100);
+
+ scene->_object4.setVisage(22);
+ scene->_object4._strip = 4;
+ scene->_object4._frame = 1;
+ scene->_object4.changeZoom(100);
+
+ scene->_object5.setVisage(22);
+ scene->_object5._strip = 5;
+ scene->_object5._frame = 1;
+ scene->_object5.changeZoom(100);
+
+ scene->_object6.setVisage(22);
+ scene->_object6._strip = 6;
+ scene->_object6._frame = 1;
+ scene->_object6.changeZoom(100);
+
+ scene->_object7.setVisage(22);
+ scene->_object7._strip = 7;
+ scene->_object7._frame = 1;
+ scene->_object7.changeZoom(100);
+
+ scene->_object8.setVisage(22);
+ scene->_object8._strip = 8;
+ scene->_object8._frame = 1;
+ scene->_object8.changeZoom(100);
+
+ setDelay(1);
+ break;
+ case 3:
+ BF_GLOBALS._scenePalette.addFader(scene->_scenePalette._palette, 256, 8, this);
+ break;
+ case 4:
+ setDelay(60);
+ break;
+ case 5:
+ scene->_object2.animate(ANIM_MODE_5, NULL);
+ scene->_object3.animate(ANIM_MODE_5, NULL);
+ scene->_object4.animate(ANIM_MODE_5, NULL);
+ scene->_object5.animate(ANIM_MODE_5, NULL);
+ scene->_object6.animate(ANIM_MODE_5, NULL);
+ scene->_object7.animate(ANIM_MODE_5, this);
+ break;
+ case 6:
+ setDelay(120);
+ break;
+ case 7:
+ BF_GLOBALS._scenePalette.addFader(black, 1, 5, this);
+ break;
+ case 8:
+ BF_GLOBALS._sceneManager.changeScene(100);
+ remove();
+ break;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+void Scene20::postInit(SceneObjectList *OwnerList) {
+ loadScene(20);
+ Scene::postInit();
+ setZoomPercents(60, 85, 200, 100);
+
+ _scenePalette.loadPalette(1);
+ _scenePalette.loadPalette(22);
+
+ _object1.postInit();
+ _object1.setVisage(21);
+ _object1._strip = 1;
+ _object1._frame = 1;
+ _object1.animate(ANIM_MODE_NONE, NULL);
+ _object1.setPosition(Common::Point(62, 85));
+ _object1.changeZoom(100);
+
+ _object2.postInit();
+ _object2.setVisage(21);
+ _object2._strip = 2;
+ _object2._frame = 1;
+ _object2.animate(ANIM_MODE_NONE, NULL);
+ _object2.setPosition(Common::Point(27, 94));
+ _object2.changeZoom(100);
+
+ _object3.postInit();
+ _object3.setVisage(21);
+ _object3._strip = 2;
+ _object3._frame = 2;
+ _object3.animate(ANIM_MODE_NONE, NULL);
+ _object3.setPosition(Common::Point(68, 94));
+ _object3.changeZoom(100);
+
+ _object4.postInit();
+ _object4.setVisage(21);
+ _object4._strip = 2;
+ _object4._frame = 3;
+ _object4.animate(ANIM_MODE_NONE, NULL);
+ _object4.setPosition(Common::Point(110, 94));
+ _object4.changeZoom(100);
+
+ _object5.postInit();
+ _object5.setVisage(21);
+ _object5._strip = 2;
+ _object5._frame = 4;
+ _object5.animate(ANIM_MODE_NONE, NULL);
+ _object5.setPosition(Common::Point(154, 94));
+ _object5.changeZoom(100);
+
+ _object6.postInit();
+ _object6.setVisage(21);
+ _object6._strip = 2;
+ _object6._frame = 5;
+ _object6.animate(ANIM_MODE_NONE, NULL);
+ _object6.setPosition(Common::Point(199, 94));
+ _object6.changeZoom(100);
+
+ _object7.postInit();
+ _object7.setVisage(21);
+ _object7._strip = 2;
+ _object7._frame = 6;
+ _object7.animate(ANIM_MODE_NONE, NULL);
+ _object7.setPosition(Common::Point(244, 94));
+ _object7.changeZoom(100);
+
+ _object8.postInit();
+ _object8.setVisage(21);
+ _object8._strip = 2;
+ _object8._frame = 7;
+ _object8.animate(ANIM_MODE_NONE, NULL);
+ _object8.setPosition(Common::Point(286, 94));
+ _object8.changeZoom(100);
+
+ setAction(&_action1);
+}
+
+/*--------------------------------------------------------------------------
+ * Scene 50 - Map Screen
+ *
+ *--------------------------------------------------------------------------*/
+
+Scene50::Tooltip::Tooltip(): SavedObject() {
+ _newSceneNumber = _locationId = 0;
+}
+
+void Scene50::Tooltip::synchronize(Serializer &s) {
+ SavedObject::synchronize(s);
+ _bounds.synchronize(s);
+ s.syncString(_msg);
+}
+
+void Scene50::Tooltip2::signal() {
+ switch (_actionIndex++) {
+ case 0:
+ setDelay(60);
+ break;
+ case 1: {
+ Common::Point pt(410, 181);
+ NpcMover *mover = new NpcMover();
+ ((SceneObject *)_owner)->addMover(mover, &pt, this);
+ break;
+ }
+ case 2:
+ _owner->remove();
+ break;
+ default:
+ break;
+ }
+}
+
+void Scene50::Tooltip2::dispatch() {
+ Action::dispatch();
+ SceneObject *owner = (SceneObject *)_owner;
+
+ if ((_actionIndex == 2) && (owner->_percent < 100)) {
+ owner->changeZoom(owner->_percent + 1);
+ }
+}
+
+void Scene50::Tooltip::set(const Rect &bounds, int v60, const Common::String &msg, int v62) {
+ _bounds = bounds;
+ _newSceneNumber = v60;
+ _msg = msg;
+ _locationId = v62;
+}
+
+void Scene50::Tooltip::update() {
+ // Set up the text object for the scene with the appropriate settings
+ Scene50 *scene = (Scene50 *)BF_GLOBALS._sceneManager._scene;
+ scene->_text._fontNumber = 10;
+ scene->_text._color1 = BF_GLOBALS._scenePalette._colors.foreground;
+ scene->_text._color2 = BF_GLOBALS._scenePalette._colors.background;
+ scene->_text.setup(_msg);
+
+ int yp = (scene->_text._textSurface.getBounds().height() == 0) ? _bounds.bottom : _bounds.top;
+ scene->_text.setPosition(Common::Point(_bounds.left, yp));
+}
+
+void Scene50::Tooltip::highlight(bool btnDown) {
+ Scene50 *scene = (Scene50 *)BF_GLOBALS._sceneManager._scene;
+
+ scene->_field382 = _newSceneNumber;
+ if ((scene->_field380 != 0) || (scene->_field380 != _newSceneNumber))
+ update();
+
+ if (btnDown) {
+ if ((BF_GLOBALS._bikiniHutState == 14) && BF_GLOBALS.getFlag(98))
+ scene->_sceneNumber = 600;
+ else if (BF_GLOBALS._bikiniHutState == 5)
+ scene->_sceneNumber = 410;
+ else {
+ BF_GLOBALS._v4CEF4 = _newSceneNumber;
+
+ switch (BF_GLOBALS._v4CEF2) {
+ case 330:
+ case 340:
+ case 342:
+ BF_GLOBALS._player.disableControl();
+ if (_locationId != BF_GLOBALS._mapLocationId) {
+ scene->_sceneNumber = 330;
+ } else {
+ scene->_sceneNumber = (BF_GLOBALS._v4CEA2 != 1) || (BF_GLOBALS._bikiniHutState < 1) ||
+ (BF_GLOBALS._bikiniHutState >= 2) ? 342 : 340;
+ }
+ break;
+
+ case 410:
+ case 551:
+ if (BF_GLOBALS.getFlag((BF_GLOBALS._v4CEF2 == 410) ? 41 : 40)) {
+ BF_GLOBALS._mapLocationId = _locationId;
+ BF_GLOBALS._player.disableControl();
+ scene->_sceneNumber = _newSceneNumber;
+ } else {
+ BF_GLOBALS._v4CEA8 = 4;
+ BF_GLOBALS._sceneManager.changeScene(666);
+ return;
+ }
+ break;
+
+ case 300:
+ if (_locationId == 1) {
+ BF_GLOBALS._v4CEF4 = 300;
+ _newSceneNumber = 300;
+ }
+ // Deliberate fall through to default
+ default:
+ BF_GLOBALS._mapLocationId = _locationId;
+ BF_GLOBALS._player.disableControl();
+ scene->_sceneNumber = _newSceneNumber;
+ break;
+ }
+
+ // Signal the scene to change to the new scene
+ scene->_sceneMode = 1;
+ scene->signal();
+ }
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene50::Scene50(): SceneExt() {
+ _field382 = 0;
+ _field380 = 0;
+}
+
+void Scene50::postInit(SceneObjectList *OwnerList) {
+ SceneExt::postInit();
+
+ BF_GLOBALS._interfaceY = 200;
+ BF_GLOBALS._player.postInit();
+ BF_GLOBALS._player.setVisage(830);
+ BF_GLOBALS._player.setStrip(3);
+ BF_GLOBALS._player.setPosition(Common::Point(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2));
+ BF_GLOBALS._player.hide();
+ BF_GLOBALS._player.enableControl();
+ BF_GLOBALS._player._uiEnabled = false;
+
+ BF_GLOBALS._scrollFollower = NULL;
+ _text._color1 = 19;
+ _text._color2 = 9;
+ _text._color3 = 9;
+ _text._width = 75;
+ _text._fontNumber = 4;
+ _text._textMode = ALIGN_LEFT;
+ _text.fixPriority(256);
+
+ // Set all the hotspots
+ _location3.set(Rect(10, 92, 24, 105), 180, GRANDMA_FRANNIE, 4);
+ _location2.set(Rect(443, 149, 508, 178), 330, MARINA, 2);
+ _location1.set(Rect(573, 103, 604, 130), 190, POLICE_DEPARTMENT, 1);
+ _location4.set(Rect(313, 21, 325, 33), 114, TONYS_BAR, 8);
+ _location8.set(Rect(69, 79, 82, 88), 580, CHILD_PROTECTIVE_SERVICES, 256);
+ _location6.set(Rect(242, 131, 264, 144), 440, ALLEY_CAT, 64);
+ _location5.set(Rect(383, 57, 402, 70), 380, CITY_HALL_JAIL, 32);
+ _location7.set(Rect(128, 32, 143, 42), 800, JAMISON_RYAN, 128);
+ _location9.set(Rect(349, 125, 359, 132),
+ (BF_GLOBALS._bikiniHutState == 13) || (BF_GLOBALS._bikiniHutState == 14) ? 551 : 550,
+ BIKINI_HUT, 16);
+
+ _item.setBounds(Rect(0, 0, SCREEN_WIDTH * 2, SCREEN_HEIGHT));
+ BF_GLOBALS._sceneItems.push_back(&_item);
+
+ // Find the location to start at
+ int selectedTooltip = BF_GLOBALS._mapLocationId;
+ Tooltip *tooltip = NULL;
+ int xp = 0;
+
+ switch (selectedTooltip) {
+ case 1:
+ tooltip = &_location1;
+ xp = 588;
+ break;
+ case 2:
+ tooltip = &_location2;
+ xp = 475;
+ break;
+ case 4:
+ tooltip = &_location3;
+ xp = 17;
+ break;
+ case 8:
+ tooltip = &_location4;
+ xp = 319;
+ break;
+ case 32:
+ tooltip = &_location5;
+ xp = 392;
+ break;
+ case 64:
+ tooltip = &_location6;
+ xp = 253;
+ break;
+ case 128:
+ tooltip = &_location7;
+ xp = 135;
+ break;
+ case 16:
+ tooltip = &_location9;
+ xp = 354;
+ break;
+ case 256:
+ tooltip = &_location8;
+ xp = 75;
+ break;
+ }
+
+ _timer.set(240, this);
+ _sceneBounds.center(xp, SCREEN_HEIGHT / 2);
+ loadScene(55);
+ _sceneMode = 2;
+
+ loadBackground(xp - 160, 0);
+ tooltip->update();
+}
+
+void Scene50::remove() {
+ // Blank out the screen
+ BF_GLOBALS._screenSurface.fillRect(BF_GLOBALS._screenSurface.getBounds(), 0);
+
+ SceneExt::remove();
+ BF_GLOBALS._v4E238 = 1;
+}
+
+void Scene50::signal() {
+ if (_sceneMode == 1) {
+ // Destination selected
+ if ((BF_GLOBALS._v4CEF2 == 551) && (_sceneNumber != BF_GLOBALS._v4CEF2)) {
+ BF_GLOBALS.setFlag(109);
+ BF_GLOBALS.setFlag(115);
+ BF_GLOBALS.setFlag(121);
+ BF_GLOBALS.setFlag(127);
+ BF_GLOBALS.setFlag(133);
+ }
+
+ if ((BF_GLOBALS._v4CEF2 == 410) && (_sceneNumber != BF_GLOBALS._v4CEF2)) {
+ BF_GLOBALS.setFlag(125);
+ }
+
+ if ((BF_GLOBALS._v4CEF2 == 340) && (_sceneNumber != BF_GLOBALS._v4CEF2)) {
+ BF_GLOBALS.setFlag(123);
+ }
+
+ if ((BF_GLOBALS._v4CEF2 == 380) && (_sceneNumber != BF_GLOBALS._v4CEF2)) {
+ if (BF_GLOBALS._bikiniHutState >= 4)
+ BF_GLOBALS.setFlag(129);
+ if (BF_GLOBALS._bikiniHutState >= 6)
+ BF_GLOBALS.setFlag(131);
+ if (BF_GLOBALS._bikiniHutState == 3) {
+ BF_GLOBALS._v4CEA8 = 19;
+ _sceneNumber = 666;
+ }
+ }
+
+ if ((_sceneNumber == 551) && BF_GLOBALS.getFlag(147))
+ _sceneNumber = 550;
+
+ BF_GLOBALS._sound1.fadeOut2(NULL);
+ BF_GLOBALS._sceneManager.changeScene(_sceneNumber);
+
+ } else if (_sceneMode == 2) {
+ // Initial delay complete, time to switch to interactive mode
+ _text.remove();
+ BF_GLOBALS._player.enableControl();
+ _sceneMode = 0;
+ _field380 = 0;
+ }
+}
+
+void Scene50::process(Event &event) {
+ SceneExt::process(event);
+ Common::Point pt(event.mousePos.x + _sceneBounds.left, event.mousePos.y + _sceneBounds.top);
+ bool mouseDown = false;
+ _field382 = 0;
+
+ if ((event.mousePos.x > 270 && (_sceneBounds.right < (SCREEN_WIDTH * 2))))
+ loadBackground(4, 0);
+ else if ((event.mousePos.x < 50) && (_sceneBounds.left > 0))
+ loadBackground(-4, 0);
+ else
+ mouseDown = event.eventType == EVENT_BUTTON_DOWN;
+
+ if (BF_GLOBALS._player._uiEnabled) {
+ Tooltip *tooltipList[9] = { &_location1, &_location2, &_location3, &_location4,
+ &_location5, &_location6, &_location7, &_location8, &_location9 };
+
+ for (int idx = 0; idx < 9; ++idx) {
+ if (tooltipList[idx]->_bounds.contains(pt)) {
+ // Found a tooltip to highlight
+ tooltipList[idx]->highlight(mouseDown);
+ return;
+ }
+ }
+
+ // No hotspot selected, so remove any current tooltip display
+ _text.remove();
+ }
+}
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_scenes0.h b/engines/tsage/blue_force/blueforce_scenes0.h
new file mode 100644
index 0000000000..5c98184ed8
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes0.h
@@ -0,0 +1,103 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_BLUEFORCE_SCENES0_H
+#define TSAGE_BLUEFORCE_SCENES0_H
+
+#include "common/scummsys.h"
+#include "tsage/blue_force/blueforce_logic.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/sound.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class Scene20 : public SceneExt {
+ /* Actions */
+ class Action1 : public Action {
+ private:
+ ASoundExt _sound;
+ public:
+ virtual void signal();
+ };
+public:
+ Action1 _action1;
+ ScenePalette _scenePalette;
+ SceneObject _object1, _object2, _object3, _object4;
+ SceneObject _object5, _object6, _object7, _object8;
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+};
+
+class Scene50: public SceneExt {
+ class Tooltip: public SavedObject {
+ public:
+ Rect _bounds;
+ Common::String _msg;
+ int _newSceneNumber;
+ int _locationId;
+ public:
+ Tooltip();
+ void set(const Rect &bounds, int v60, const Common::String &msg, int v62);
+ void update();
+ void highlight(bool btnDown);
+
+ virtual Common::String getClassName() { return "Scene50_Tooltip"; }
+ virtual void synchronize(Serializer &s);
+ };
+ class Tooltip2: public Action {
+ public:
+ Tooltip2(): Action() {}
+
+ virtual Common::String getClassName() { return "Scene50_Tooltip2"; }
+ virtual void signal();
+ virtual void dispatch();
+ };
+public:
+ int _field380, _field382;
+ int _sceneNumber;
+ SceneText _text;
+ SceneItemType2 _item;
+ Tooltip _location1, _location2, _location3, _location4, _location5;
+ Tooltip _location6, _location7, _location8, _location9;
+ Timer _timer;
+public:
+ Scene50();
+ virtual Common::String getClassName() { return "Scene50"; }
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void remove();
+ virtual void signal();
+ virtual void process(Event &event);
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/blue_force/blueforce_scenes1.cpp b/engines/tsage/blue_force/blueforce_scenes1.cpp
new file mode 100644
index 0000000000..650b63c24b
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes1.cpp
@@ -0,0 +1,432 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "common/config-manager.h"
+#include "tsage/blue_force/blueforce_scenes1.h"
+#include "tsage/scenes.h"
+#include "tsage/tsage.h"
+#include "tsage/staticres.h"
+#include "tsage/globals.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+/*--------------------------------------------------------------------------
+ * Scene 100 - Tsunami Title Screen #2
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene100::Text::dispatch() {
+ SceneText::dispatch();
+
+ // Keep the second text string below the first one
+ Scene100 *scene = (Scene100 *)BF_GLOBALS._sceneManager._scene;
+ Common::Point &pt = scene->_action1._sceneText1._position;
+ scene->_action1._sceneText2.setPosition(Common::Point(pt.x,
+ pt.y + scene->_action1._textHeight));
+}
+
+
+void Scene100::Action1::signal() {
+ static byte black[3] = { 0, 0, 0 };
+
+ switch (_actionIndex++) {
+ case 0:
+ _state = 0;
+ setDelay(6);
+ break;
+ case 1: {
+ Common::String msg1 = _resourceManager->getMessage(100, _state++);
+ if (msg1.compareTo("LASTCREDIT")) {
+ Common::String msg2 = _resourceManager->getMessage(100, _state++);
+ setTextStrings(msg1, msg2, this);
+ --_actionIndex;
+ } else {
+ setTextStrings(BF_NAME, BF_ALL_RIGHTS_RESERVED, this);
+
+ Common::Point pt(_sceneText1._position.x, 80);
+ NpcMover *mover = new NpcMover();
+ _sceneText1.addMover(mover, &pt, this);
+ }
+ break;
+ }
+ case 2:
+ setDelay(600);
+ break;
+ case 3:
+ BF_GLOBALS._sound1.fade(0, 10, 10, 1, this);
+ GLOBALS._scenePalette.addFader(black, 1, 2, NULL);
+ break;
+ case 4:
+ error("??exit");
+ break;
+ }
+}
+
+void Scene100::Action1::setTextStrings(const Common::String &msg1, const Common::String &msg2, Action *action) {
+ // Set data for first text control
+ _sceneText1._fontNumber = 10;
+ _sceneText1._width = 160;
+ _sceneText1._textMode = ALIGN_RIGHT;
+ _sceneText1._color1 = BF_GLOBALS._scenePalette._colors.foreground;
+ _sceneText1._color2 = BF_GLOBALS._scenePalette._colors.background;
+ _sceneText1._color3 = BF_GLOBALS._scenePalette._colors.foreground;
+ _sceneText1.setup(msg1);
+ _sceneText1.fixPriority(255);
+ _sceneText1.setPosition(Common::Point(
+ (SCREEN_WIDTH - _sceneText1.getFrame().getBounds().width()) / 2, 202));
+ _sceneText1._moveRate = 30;
+ _sceneText1._moveDiff.y = 1;
+
+ // Set data for second text control
+ _sceneText2._fontNumber = 10;
+ _sceneText2._width = _sceneText1._width;
+ _sceneText2._textMode = _sceneText1._textMode;
+ _sceneText2._color1 = _sceneText1._color1;
+ _sceneText2._color2 = 31;
+ _sceneText2._color3 = _sceneText1._color3;
+ _sceneText2.setup(msg2);
+ _sceneText2.fixPriority(255);
+ GfxSurface textSurface = _sceneText2.getFrame();
+ _sceneText2.setPosition(Common::Point((SCREEN_WIDTH - textSurface.getBounds().width()) / 2, 202));
+ _sceneText2._moveRate = 30;
+ _sceneText2._moveDiff.y = 1;
+
+ _textHeight = textSurface.getBounds().height();
+ int yp = -(_textHeight * 2);
+
+ Common::Point pt(_sceneText1._position.x, yp);
+ NpcMover *mover = new NpcMover();
+ _sceneText1.addMover(mover, &pt, action);
+}
+
+void Scene100::Action2::signal() {
+ Scene100 *scene = (Scene100 *)_globals->_sceneManager._scene;
+ static byte black[3] = {0, 0, 0};
+
+ switch (_actionIndex++) {
+ case 0:
+ BF_GLOBALS._scenePalette.addFader(black, 1, -2, this);
+ break;
+ case 1:
+ setDelay(180);
+ break;
+ case 2: {
+ const char *SEEN_INTRO = "seen_intro";
+ if (!ConfMan.hasKey(SEEN_INTRO) || !ConfMan.getBool(SEEN_INTRO)) {
+ // First time being played, so will need to show the intro
+ ConfMan.setBool(SEEN_INTRO, true);
+ ConfMan.flushToDisk();
+ } else {
+ // Prompt user for whether to start play or watch introduction
+ _globals->_player.enableControl();
+
+ if (MessageDialog::show2(WATCH_INTRO_MSG, START_PLAY_BTN_STRING, INTRODUCTION_BTN_STRING) == 0) {
+ // Signal to start the game
+ scene->_index = 190;
+ remove();
+ return;
+ }
+ }
+
+ // At this point the introduction needs to start
+ _globals->_scenePalette.addFader(black, 1, 2, this);
+ break;
+ }
+ case 3:
+ remove();
+ break;
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene100::Scene100(): SceneExt() {
+ _index = 0;
+}
+
+void Scene100::postInit(SceneObjectList *OwnerList) {
+ BF_GLOBALS._scenePalette.loadPalette(2);
+ BF_GLOBALS._v51C44 = 1;
+ Scene::postInit();
+ BF_GLOBALS._interfaceY = SCREEN_HEIGHT;
+
+ _globals->_player.enableControl();
+ _globals->_player.hide();
+ _globals->_player.disableControl();
+ _index = 109;
+
+ if (BF_GLOBALS._v4CEA2 < 6) {
+ // Title
+ loadScene(100);
+ BF_GLOBALS._sound1.play(2);
+ setAction(&_action2, this);
+ } else {
+ // Credits
+ loadScene(101);
+ BF_GLOBALS._sound1.play(118);
+ setAction(&_action1, this);
+ }
+}
+
+void Scene100::signal() {
+ ++_sceneMode;
+ if (BF_GLOBALS._v4CEA2 < 6) {
+ BF_GLOBALS._scenePalette.clearListeners();
+ BF_GLOBALS._scenePalette.loadPalette(100);
+ BF_GLOBALS._sceneManager.changeScene(_index);
+ } else {
+ if (_sceneMode > 1)
+ BF_GLOBALS._events.setCursor(CURSOR_ARROW);
+
+ setAction(this, &_action1, this);
+ }
+}
+
+/*--------------------------------------------------------------------------
+ * Scene 109 - Introduction Bar Room
+ *
+ *--------------------------------------------------------------------------*/
+
+void Scene109::Action1::signal() {
+ Scene109 *scene = (Scene109 *)BF_GLOBALS._sceneManager._scene;
+
+ switch (_actionIndex++) {
+ case 0:
+ setDelay(30);
+ break;
+ case 1:
+ BF_GLOBALS._sound1.play(12);
+ BF_GLOBALS._sceneObjects->draw();
+ BF_GLOBALS._scenePalette.loadPalette(2);
+ BF_GLOBALS._scenePalette.refresh();
+ setDelay(10);
+ break;
+ case 2:
+ scene->_text.setup(BF_19840515, this);
+ break;
+ case 3:
+ BF_GLOBALS._v51C44 = 1;
+ scene->loadScene(115);
+
+ scene->_protaginist2.show();
+ scene->_protaginist2.setPriority(133);
+ scene->_protaginist1.show();
+ scene->_bartender.show();
+ scene->_object1.show();
+ scene->_drunk.show();
+ scene->_drunk.setAction(&scene->_action3);
+ scene->_object2.show();
+ scene->_object9.show();
+ scene->_object9.setAction(&scene->_action2);
+
+ BF_GLOBALS._v501FC = 170;
+ setDelay(60);
+ break;
+ case 4:
+ // Start drinking
+ scene->_bartender.setAction(&scene->_sequenceManager4, NULL, 109, &scene->_bartender, &scene->_object2, NULL);
+ scene->_protaginist1.setAction(&scene->_sequenceManager5, NULL, 107, &scene->_protaginist1, NULL);
+ scene->_protaginist2.setAction(&scene->_sequenceManager6, this, 106, &scene->_protaginist2, NULL);
+ break;
+ case 5:
+ // Open briefcase and pass over disk
+ setAction(&scene->_sequenceManager6, this, 105, &scene->_object10, NULL);
+ break;
+ case 6:
+ // Protaginist 2 walk to the bar
+ scene->_object10.remove();
+ setAction(&scene->_sequenceManager6, this, 100, &scene->_protaginist2, NULL);
+ break;
+ case 7:
+ // Two thugs enter and walk to table
+ scene->_object7.setAction(&scene->_sequenceManager7, NULL, 103, &scene->_object7, NULL);
+ scene->_object5.setAction(&scene->_sequenceManager8, this, 102, &scene->_object5, NULL);
+ scene->_protaginist2.setAction(&scene->_sequenceManager6, NULL, 104, &scene->_protaginist2, &scene->_bartender, NULL);
+ break;
+ case 8:
+ // Protaginist 1 leaves, protaginist 2 stands up
+ setAction(&scene->_sequenceManager8, this, 101, &scene->_object5, &scene->_protaginist1, NULL);
+ break;
+ case 9:
+ // Shots fired!
+ scene->_protaginist1.setAction(&scene->_sequenceManager5, this, 98, &scene->_protaginist1, NULL);
+ scene->_object7.setAction(&scene->_sequenceManager7, NULL, 99, &scene->_object7, NULL);
+ break;
+ case 10:
+ // End scene
+ scene->_sceneMode = 1;
+ remove();
+ break;
+ }
+}
+
+void Scene109::Action2::signal() {
+ Scene109 *scene = (Scene109 *)BF_GLOBALS._sceneManager._scene;
+ scene->setAction(&scene->_sequenceManager2, this, 3117, &scene->_object9, NULL);
+}
+
+void Scene109::Action3::signal() {
+ Scene109 *scene = (Scene109 *)BF_GLOBALS._sceneManager._scene;
+ scene->setAction(&scene->_sequenceManager3, this, 108, &scene->_drunk, NULL);
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene109::Text::Text(): SceneText() {
+ _action = NULL;
+ _frameNumber = 0;
+ _diff = 0;
+}
+
+void Scene109::Text::setup(const Common::String &msg, Action *action) {
+ _frameNumber = BF_GLOBALS._events.getFrameNumber();
+ _diff = 180;
+ _action = action;
+ _fontNumber = 4;
+ _width = 300;
+ _textMode = ALIGN_CENTER;
+ _color1 = BF_GLOBALS._scenePalette._colors.background;
+ _color2 = _color3 = 0;
+
+ SceneText::setup(msg);
+
+ // Center the text on-screen
+ reposition();
+ _bounds.center(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2);
+
+ // Set the new position
+ _position.x = _bounds.left;
+ _position.y = _bounds.top;
+}
+
+void Scene109::Text::synchronize(Serializer &s) {
+ SceneText::synchronize(s);
+ SYNC_POINTER(_action);
+ s.syncAsUint32LE(_frameNumber);
+ s.syncAsSint16LE(_diff);
+}
+
+void Scene109::Text::dispatch() {
+ if (_diff) {
+ uint32 frameNumber = BF_GLOBALS._events.getFrameNumber();
+ if (_frameNumber < frameNumber) {
+ _diff -= frameNumber - _frameNumber;
+ _frameNumber = frameNumber;
+
+ if (_diff <= 0) {
+ // Time has expired, so remove the text and signal the designated action
+ remove();
+ if (_action)
+ _action->signal();
+ }
+ }
+ }
+}
+
+/*--------------------------------------------------------------------------*/
+
+Scene109::Scene109(): GameScene() {
+}
+
+void Scene109::postInit(SceneObjectList *OwnerList) {
+ GameScene::postInit(OwnerList);
+ loadScene(999);
+
+ _protaginist2.postInit();
+ _protaginist2.setVisage(119);
+ _protaginist2.setFrame(11);
+ _protaginist2.fixPriority(133);
+ _protaginist2.setPosition(Common::Point(165, 124));
+ _protaginist2.hide();
+
+ _protaginist1.postInit();
+ _protaginist1.setVisage(118);
+ _protaginist1.setStrip(1);
+ _protaginist1.setFrame(8);
+ _protaginist1.fixPriority(132);
+ _protaginist1.setPosition(Common::Point(143, 125));
+ _protaginist1.hide();
+
+ _bartender.postInit();
+ _bartender.setVisage(121);
+ _bartender.setStrip(2);
+ _bartender.setFrame(1);
+ _bartender.setPriority(-1);
+ _bartender.setPosition(Common::Point(92, 64));
+ _bartender.hide();
+
+ _object1.postInit();
+ _object1.setVisage(121);
+ _object1.setStrip(6);
+ _object1.setFrame(1);
+ _object1.setPriority(-1);
+ _object1.setPosition(Common::Point(110, 64));
+ _object1.hide();
+
+ _drunk.postInit();
+ _drunk.setVisage(120);
+ _drunk.setStrip(2);
+ _drunk.setFrame(5);
+ _drunk.setPriority(-1);
+ _drunk.setPosition(Common::Point(127, 97));
+ _drunk.hide();
+
+ _object2.postInit();
+ _object2.setVisage(121);
+ _object2.setStrip(5);
+ _object2.setFrame(1);
+ _object2.setPriority(-1);
+ _object2.setPosition(Common::Point(104, 64));
+ _object2.hide();
+
+ _object9.postInit();
+ _object9.setVisage(115);
+ _object9.setStrip(4);
+ _object9.setFrame(1);
+ _object9.setPosition(Common::Point(262, 29));
+ _object9.hide();
+
+ _object5.postInit();
+ _object5.hide();
+
+ _object7.postInit();
+ _object7.hide();
+
+ _object10.postInit();
+ _object10.hide();
+
+ BF_GLOBALS._player.disableControl();
+ setAction(&_action1, this);
+}
+
+void Scene109::signal() {
+ if (_sceneMode == 1) {
+ BF_GLOBALS._scenePalette.clearListeners();
+ BF_GLOBALS._sceneManager.changeScene(110);
+ }
+}
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/blue_force/blueforce_scenes1.h b/engines/tsage/blue_force/blueforce_scenes1.h
new file mode 100644
index 0000000000..0769c6e3c6
--- /dev/null
+++ b/engines/tsage/blue_force/blueforce_scenes1.h
@@ -0,0 +1,132 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef TSAGE_BLUEFORCE_SCENES1_H
+#define TSAGE_BLUEFORCE_SCENES1_H
+
+#include "common/scummsys.h"
+#include "tsage/blue_force/blueforce_logic.h"
+#include "tsage/converse.h"
+#include "tsage/events.h"
+#include "tsage/core.h"
+#include "tsage/scenes.h"
+#include "tsage/globals.h"
+#include "tsage/sound.h"
+
+namespace TsAGE {
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class Scene100: public SceneExt {
+ /* Support classes */
+ class Text: public SceneText {
+ public:
+ virtual Common::String getClassName() { return "BF100Text"; }
+ virtual void dispatch();
+ };
+
+ /* Actions */
+ class Action1: public ActionExt {
+ private:
+ void setTextStrings(const Common::String &msg1, const Common::String &msg2, Action *action);
+ public:
+ Text _sceneText1;
+ SceneText _sceneText2;
+ int _textHeight;
+
+ virtual Common::String getClassName() { return "BF100Action1"; }
+ virtual void synchronize(Serializer &s) {
+ ActionExt::synchronize(s);
+ s.syncAsSint16LE(_textHeight);
+ }
+ virtual void signal();
+ };
+ class Action2: public ActionExt {
+ public:
+ virtual void signal();
+ };
+public:
+ SequenceManager _sequenceManager;
+ Action1 _action1;
+ Action2 _action2;
+ ScenePalette _scenePalette;
+ SceneObjectExt2 _object1, _object2, _object3, _object4, _object5;
+ int _index;
+
+ Scene100();
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
+
+class Scene109: public GameScene {
+ /* Actions */
+ class Action1: public Action {
+ public:
+ virtual void signal();
+ };
+ class Action2: public Action {
+ public:
+ virtual void signal();
+ };
+ class Action3: public Action {
+ public:
+ virtual void signal();
+ };
+
+ /* Texts */
+ class Text: public SceneText {
+ public:
+ Action *_action;
+ uint32 _frameNumber;
+ int _diff;
+ public:
+ Text();
+ void setup(const Common::String &msg, Action *action);
+
+ virtual Common::String getClassName() { return "BF109Text"; }
+ virtual void synchronize(Serializer &s);
+ virtual void dispatch();
+ };
+public:
+ SequenceManager _sequenceManager1, _sequenceManager2, _sequenceManager3;
+ SequenceManager _sequenceManager4, _sequenceManager5, _sequenceManager6;
+ SequenceManager _sequenceManager7, _sequenceManager8;
+ SceneObject _object1, _object2, _protaginist2, _protaginist1, _object5;
+ SceneObject _drunk, _object7, _bartender, _object9, _object10;
+ Text _text;
+ BlueAnimatedSpeaker _speaker;
+ Action1 _action1;
+ Action _action2, _action3;
+public:
+ Scene109();
+
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+ virtual void signal();
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
+
+#endif
diff --git a/engines/tsage/blueforce_logic.cpp b/engines/tsage/blueforce_logic.cpp
deleted file mode 100644
index d266d5e1d9..0000000000
--- a/engines/tsage/blueforce_logic.cpp
+++ /dev/null
@@ -1,120 +0,0 @@
-/* ScummVM - Graphic Adventure Engine
- *
- * ScummVM is the legal property of its developers, whose names
- * are too numerous to list here. Please refer to the COPYRIGHT
- * file distributed with this source distribution.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- *
- */
-
-#include "tsage/blueforce_logic.h"
-#include "tsage/scenes.h"
-#include "tsage/tsage.h"
-#include "tsage/staticres.h"
-
-namespace tSage {
-
-void BlueForceGame::start() {
- // Start the game
- _globals->_sceneManager.changeScene(20);
-
- _globals->_events.setCursor(CURSOR_WALK);
-}
-
-Scene *BlueForceGame::createScene(int sceneNumber) {
- switch (sceneNumber) {
- case 20:
- case 50:
- case 60:
- error("Scene group 0 not implemented");
- case 100:
- case 109:
- case 110:
- case 114:
- case 115:
- case 125:
- case 140:
- case 150:
- case 160:
- case 180:
- case 190:
- error("Scene group 1 not implemented");
- case 200:
- case 210:
- case 220:
- case 225:
- case 265:
- case 270:
- case 271:
- case 280:
- error("Scene group 2 not implemented");
- case 300:
- case 315:
- case 325:
- case 330:
- case 340:
- case 342:
- case 350:
- case 355:
- case 360:
- case 370:
- case 380:
- case 385:
- case 390:
- error("Scene group 3 not implemented");
- case 410:
- case 415:
- case 440:
- case 450:
- error("Scene group 4 not implemented");
- case 550:
- case 551:
- case 560:
- case 570:
- case 580:
- case 590:
- error("Scene group 5 not implemented");
- case 600:
- case 620:
- case 666:
- case 690:
- error("Scene group 6 not implemented");
- case 710:
- error("Scene group 7 not implemented");
- case 800:
- case 810:
- case 820:
- case 830:
- case 840:
- case 850:
- case 860:
- case 870:
- case 880:
- error("Scene group 8 not implemented");
- case 900:
- case 910:
- case 920:
- case 930:
- case 935:
- case 940:
- error("Scene group 9 not implemented");
- default:
- error("Unknown scene number - %d", sceneNumber);
- break;
- }
-}
-
-} // End of namespace tSage
diff --git a/engines/tsage/converse.cpp b/engines/tsage/converse.cpp
index b475310533..615b1c36fd 100644
--- a/engines/tsage/converse.cpp
+++ b/engines/tsage/converse.cpp
@@ -26,7 +26,7 @@
#include "tsage/globals.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
#define STRIP_WORD_DELAY 30
@@ -34,7 +34,7 @@ namespace tSage {
SequenceManager::SequenceManager() : Action() {
Common::set_to(&_objectList[0], &_objectList[6], (SceneObject *)NULL);
_sequenceData.clear();
- _field24 = 0;
+ _fontNum = 0;
_sequenceOffset = 0;
_resNum = 0;
_field26 = 0;
@@ -56,7 +56,7 @@ void SequenceManager::synchronize(Serializer &s) {
s.syncAsSint32LE(_resNum);
s.syncAsSint32LE(_sequenceOffset);
s.syncAsByte(_keepActive);
- s.syncAsSint32LE(_field24);
+ s.syncAsSint32LE(_fontNum);
s.syncAsSint32LE(_field26);
s.syncAsSint32LE(_objectIndex);
@@ -284,6 +284,32 @@ void SequenceManager::signal() {
_objectList[objIndex3], _objectList[objIndex4], _objectList[objIndex5], _objectList[objIndex6], NULL);
break;
}
+ /* Following indexes were introduced for Blue Force */
+ case 35:
+ v1 = getNextValue();
+ _sceneObject->updateAngle(_objectList[v1]);
+ break;
+ case 36:
+ _sceneObject->animate(ANIM_MODE_9, NULL);
+ break;
+ case 37:
+ v1 = getNextValue();
+ v2 = getNextValue();
+ warning("TODO: dword_53030(%d,%d)", v1, v2);
+ break;
+ case 38: {
+ int resNum = getNextValue();
+ int lineNum = getNextValue();
+ int fontNum = getNextValue();
+ int color1 = getNextValue();
+ int color2 = getNextValue();
+ int color3 = getNextValue();
+ int xp = getNextValue();
+ int yp = getNextValue();
+ int width = getNextValue();
+ setMessage(resNum, lineNum, fontNum, color1, color2, color3, Common::Point(xp, yp), width);
+ break;
+ }
default:
error("SequenceManager::signal - Unknown action %d at offset %xh", idx, _sequenceOffset - 2);
break;
@@ -337,10 +363,15 @@ uint16 SequenceManager::getNextValue() {
}
void SequenceManager::setMessage(int resNum, int lineNum, int color, const Common::Point &pt, int width) {
- _sceneText._color1 = color;
- _sceneText._color2 = 0;
- _sceneText._color3 = 0;
- _sceneText._fontNumber = 2;
+ setMessage(resNum, lineNum, 2, color, 0, 0, pt, width);
+}
+
+void SequenceManager::setMessage(int resNum, int lineNum, int fontNum, int color1, int color2, int color3,
+ const Common::Point &pt, int width) {
+ _sceneText._color1 = color1;
+ _sceneText._color2 = color2;
+ _sceneText._color3 = color3;
+ _sceneText._fontNumber = fontNum;
_sceneText._width = width;
// Get the display message
@@ -416,13 +447,13 @@ int ConversationChoiceDialog::execute(const Common::StringArray &choiceList) {
// Event handling loop
Event event;
- while (!_vm->getEventManager()->shouldQuit()) {
+ while (!_vm->shouldQuit()) {
while (!_globals->_events.getEvent(event, EVENT_KEYPRESS | EVENT_BUTTON_DOWN | EVENT_MOUSE_MOVE) &&
- !_vm->getEventManager()->shouldQuit()) {
+ !_vm->shouldQuit()) {
g_system->delayMillis(10);
g_system->updateScreen();
}
- if (_vm->getEventManager()->shouldQuit())
+ if (_vm->shouldQuit())
break;
if ((event.eventType == EVENT_KEYPRESS) && (event.kbd.keycode >= Common::KEYCODE_1) &&
@@ -954,4 +985,4 @@ void AnimatedSpeaker::removeText() {
_objectList.draw();
}
-} // end of namespace tSage
+} // end of namespace TsAGE
diff --git a/engines/tsage/converse.h b/engines/tsage/converse.h
index 13c490e995..e263a12d12 100644
--- a/engines/tsage/converse.h
+++ b/engines/tsage/converse.h
@@ -27,7 +27,7 @@
#include "tsage/dialogs.h"
#include "tsage/sound.h"
-namespace tSage {
+namespace TsAGE {
class StripCallback : public Action {
public:
@@ -39,13 +39,15 @@ private:
void setup();
uint16 getNextValue();
void setMessage(int resNum, int lineNum, int color, const Common::Point &pt, int width);
+ void setMessage(int resNum, int lineNum, int fontNum, int color1, int color2, int color3,
+ const Common::Point &pt, int width);
SequenceManager *globalManager();
public:
SceneText _sceneText;
int _resNum;
uint _sequenceOffset;
bool _keepActive;
- int _field24;
+ int _fontNum;
int _field26;
Common::Array<byte> _sequenceData;
int _objectIndex;
@@ -222,6 +224,6 @@ public:
void addSpeaker(Speaker *speaker);
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/core.cpp b/engines/tsage/core.cpp
index 76714a6f10..42cb1d039f 100644
--- a/engines/tsage/core.cpp
+++ b/engines/tsage/core.cpp
@@ -33,7 +33,7 @@
#include "tsage/globals.h"
#include "tsage/sound.h"
-namespace tSage {
+namespace TsAGE {
// The engine uses ScumMVM screen buffering, so all logic is hardcoded to use pane buffer 0
#define CURRENT_PANENUM 0
@@ -1161,6 +1161,20 @@ void PaletteFader::remove() {
action->signal();
}
+void PaletteFader::setPalette(ScenePalette *palette, int step) {
+ if (step < 0) {
+ // Reverse step means moving from dest palette to source, so swap the two palettes
+ byte tempPal[256 * 3];
+ Common::copy(&palette->_palette[0], &palette->_palette[256 * 3], &tempPal[0]);
+ Common::copy(&this->_palette[0], &this->_palette[256 * 3], &palette->_palette[0]);
+ Common::copy(&tempPal[0], &tempPal[256 * 3], &this->_palette[0]);
+
+ step = -step;
+ }
+
+ PaletteModifierCached::setPalette(palette, step);
+}
+
/*--------------------------------------------------------------------------*/
ScenePalette::ScenePalette() {
@@ -1314,7 +1328,7 @@ PaletteRotation *ScenePalette::addRotation(int start, int end, int rotationMode,
return obj;
}
-PaletteFader *ScenePalette::addFader(const byte *arrBufferRGB, int palSize, int percent, Action *action) {
+PaletteFader *ScenePalette::addFader(const byte *arrBufferRGB, int palSize, int step, Action *action) {
PaletteFader *fader = new PaletteFader();
fader->_action = action;
for (int i = 0; i < 256 * 3; i += 3) {
@@ -1326,7 +1340,7 @@ PaletteFader *ScenePalette::addFader(const byte *arrBufferRGB, int palSize, int
arrBufferRGB += 3;
}
- fader->setPalette(this, percent);
+ fader->setPalette(this, step);
_globals->_scenePalette._listeners.push_back(fader);
return fader;
}
@@ -1552,7 +1566,7 @@ void SceneItem::display(int resNum, int lineNum, ...) {
Event event;
// Keep event on-screen until a mouse or keypress
- while (!_vm->getEventManager()->shouldQuit() && !_globals->_events.getEvent(event,
+ while (!_vm->shouldQuit() && !_globals->_events.getEvent(event,
EVENT_BUTTON_DOWN | EVENT_KEYPRESS)) {
g_system->updateScreen();
g_system->delayMillis(10);
@@ -1641,6 +1655,11 @@ void SceneObjectWrapper::remove() {
}
void SceneObjectWrapper::dispatch() {
+ if (_vm->getGameID() == GType_Ringworld)
+ check();
+}
+
+void SceneObjectWrapper::check() {
_visageImages.setVisage(_sceneObject->_visage);
int frameCount = _visageImages.getFrameCount();
int angle = _sceneObject->_angle;
@@ -1699,6 +1718,7 @@ SceneObject::SceneObject() : SceneHotspot() {
_sceneRegionId = 0;
_percent = 100;
_flags |= OBJFLAG_PANES;
+ _priority = 0;
_frameChange = 0;
_visage = 0;
@@ -2263,6 +2283,18 @@ void SceneObject::updateScreen() {
}
}
+void SceneObject::updateAngle(SceneObject *sceneObj) {
+ checkAngle(sceneObj);
+ if (_objectWrapper)
+ _objectWrapper->check();
+}
+
+void SceneObject::changeAngle(int angle) {
+ _angle = angle;
+ if (_objectWrapper)
+ _objectWrapper->check();
+}
+
void SceneObject::setup(int visage, int stripFrameNum, int frameNum, int posX, int posY, int priority) {
postInit();
setVisage(visage);
@@ -2274,6 +2306,22 @@ void SceneObject::setup(int visage, int stripFrameNum, int frameNum, int posX, i
/*--------------------------------------------------------------------------*/
+void SceneObjectExt2::postInit(SceneObjectList *OwnerList) {
+ _v8A = -1;
+ _v8C = -1;
+ _v8E = -1;
+ SceneObject::postInit();
+}
+
+void SceneObjectExt2::synchronize(Serializer &s) {
+ SceneObject::synchronize(s);
+ s.syncAsSint16LE(_v8A);
+ s.syncAsSint16LE(_v8C);
+ s.syncAsSint16LE(_v8E);
+}
+
+/*--------------------------------------------------------------------------*/
+
void SceneObjectList::draw() {
Common::Array<SceneObject *> objList;
int paneNum = 0;
@@ -3426,6 +3474,7 @@ void GameHandler::synchronize(Serializer &s) {
SceneHandler::SceneHandler() {
_saveGameSlot = -1;
_loadGameSlot = -1;
+ _prevFrameNumber = 0;
}
void SceneHandler::registerHandler() {
@@ -3433,6 +3482,10 @@ void SceneHandler::registerHandler() {
_globals->_game->addHandler(this);
}
+uint32 SceneHandler::getFrameDifference() {
+ return GLOBALS._events.getFrameNumber() - _prevFrameNumber;
+}
+
void SceneHandler::postInit(SceneObjectList *OwnerList) {
_delayTicks = 2;
@@ -3547,10 +3600,19 @@ void SceneHandler::dispatch() {
// Not actually used
//_eventListeners.forEach(SceneHandler::handleListener);
- // Handle pending eents
+ // Handle pending events
Event event;
- while (_globals->_events.getEvent(event))
+ if (_globals->_events.getEvent(event)) {
+ // Process pending events
+ do {
+ process(event);
+ } while (_globals->_events.getEvent(event));
+ } else if (_vm->getGameID() == GType_BlueForce) {
+ // For Blue Force, 'none' events need to be generated in the absence of any
+ event.eventType = EVENT_NONE;
+ event.mousePos = _globals->_events._mousePos;
process(event);
+ }
// Handle drawing the contents of the scene
if (_globals->_sceneManager._scene)
@@ -3573,4 +3635,4 @@ void SceneHandler::dispatchObject(EventHandler *obj) {
void SceneHandler::saveListener(Serializer &ser) {
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/core.h b/engines/tsage/core.h
index b86e2f63fe..19987ed399 100644
--- a/engines/tsage/core.h
+++ b/engines/tsage/core.h
@@ -34,7 +34,7 @@
#include "tsage/resources.h"
#include "tsage/saveload.h"
-namespace tSage {
+namespace TsAGE {
#define MAX_FLAGS 256
@@ -287,7 +287,7 @@ public:
PaletteModifierCached();
- void setPalette(ScenePalette *palette, int step);
+ virtual void setPalette(ScenePalette *palette, int step);
virtual Common::String getClassName() { return "PaletteModifierCached"; }
virtual void synchronize(Serializer &s);
};
@@ -323,6 +323,7 @@ public:
virtual void synchronize(Serializer &s);
virtual void signal();
virtual void remove();
+ virtual void setPalette(ScenePalette *palette, int step);
};
/*--------------------------------------------------------------------------*/
@@ -356,7 +357,7 @@ public:
void clearListeners();
void fade(const byte *adjustData, bool fullAdjust, int percent);
PaletteRotation *addRotation(int start, int end, int rotationMode, int duration = 0, Action *action = NULL);
- PaletteFader *addFader(const byte *arrBufferRGB, int palSize, int percent, Action *action);
+ PaletteFader *addFader(const byte *arrBufferRGB, int palSize, int step, Action *action);
static void changeBackground(const Rect &bounds, FadeMode fadeMode);
@@ -436,7 +437,10 @@ public:
};
enum AnimateMode {ANIM_MODE_NONE = 0, ANIM_MODE_1 = 1, ANIM_MODE_2 = 2, ANIM_MODE_3 = 3,
- ANIM_MODE_4 = 4, ANIM_MODE_5 = 5, ANIM_MODE_6 = 6, ANIM_MODE_7 = 7, ANIM_MODE_8 = 8};
+ ANIM_MODE_4 = 4, ANIM_MODE_5 = 5, ANIM_MODE_6 = 6, ANIM_MODE_7 = 7, ANIM_MODE_8 = 8,
+ // Introduced in Blue Force
+ ANIM_MODE_9 = 9
+};
class SceneObject;
@@ -467,6 +471,7 @@ public:
virtual ~SceneObjectWrapper() {}
void setSceneObject(SceneObject *so);
+ void check();
virtual void synchronize(Serializer &s);
virtual Common::String getClassName() { return "SceneObjectWrapper"; }
@@ -555,6 +560,10 @@ public:
virtual void draw();
virtual void proc19() {}
virtual void updateScreen();
+ // New methods introduced by Blue FOrce
+ virtual void updateAngle(SceneObject *sceneObj);
+ virtual void changeAngle(int angle);
+
void setup(int visage, int stripFrameNum, int frameNum, int posX, int posY, int priority);
};
@@ -569,6 +578,16 @@ public:
virtual Common::String getClassName() { return "SceneObjectExt"; }
};
+class SceneObjectExt2: public SceneObject {
+public:
+ int _v88, _v8A, _v8C, _v8E;
+
+ virtual Common::String getClassName() { return "BF100Object"; }
+ virtual void synchronize(Serializer &s);
+ virtual void postInit(SceneObjectList *OwnerList = NULL);
+};
+
+
class SceneText : public SceneObject {
public:
int _fontNumber;
@@ -695,7 +714,7 @@ public:
SynchronizedList<SceneObject *>::iterator begin() { return _objList.begin(); }
SynchronizedList<SceneObject *>::iterator end() { return _objList.end(); }
int size() const { return _objList.size(); }
- bool contains(SceneObject *sceneObj) { return tSage::contains(_objList, sceneObj); }
+ bool contains(SceneObject *sceneObj) { return TsAGE::contains(_objList, sceneObj); }
void push_back(SceneObject *sceneObj) { _objList.push_back(sceneObj); }
void push_front(SceneObject *sceneObj) { _objList.push_front(sceneObj); }
void remove(SceneObject *sceneObj) {
@@ -827,9 +846,11 @@ public:
int _loadGameSlot;
int _delayTicks;
Common::String _saveName;
+ uint32 _prevFrameNumber;
public:
SceneHandler();
void registerHandler();
+ uint32 getFrameDifference();
virtual Common::String getClassName() { return "SceneHandler"; }
virtual void postInit(SceneObjectList *OwnerList = NULL);
@@ -840,6 +861,6 @@ public:
static void saveListener(Serializer &ser);
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/debugger.cpp b/engines/tsage/debugger.cpp
index 9277fd429a..e3c4569dd2 100644
--- a/engines/tsage/debugger.cpp
+++ b/engines/tsage/debugger.cpp
@@ -23,9 +23,9 @@
#include "tsage/debugger.h"
#include "tsage/globals.h"
#include "tsage/graphics.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
Debugger::Debugger() : GUI::Debugger() {
DCmd_Register("continue", WRAP_METHOD(Debugger, Cmd_Exit));
@@ -38,6 +38,7 @@ Debugger::Debugger() : GUI::Debugger() {
DCmd_Register("listobjects", WRAP_METHOD(Debugger, Cmd_ListObjects));
DCmd_Register("moveobject", WRAP_METHOD(Debugger, Cmd_MoveObject));
DCmd_Register("hotspots", WRAP_METHOD(Debugger, Cmd_Hotspots));
+ DCmd_Register("sound", WRAP_METHOD(Debugger, Cmd_Sound));
}
static int strToInt(const char *s) {
@@ -434,5 +435,18 @@ bool Debugger::Cmd_Hotspots(int argc, const char **argv) {
return false;
}
+/**
+ * Play the specified sound
+ */
+bool Debugger::Cmd_Sound(int argc, const char **argv) {
+ if (argc != 2) {
+ DebugPrintf("Usage: %s <sound number>\n", argv[0]);
+ return true;
+ }
+
+ int soundNum = strToInt(argv[1]);
+ _globals->_soundHandler.play(soundNum);
+ return false;
+}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/debugger.h b/engines/tsage/debugger.h
index 3c14cd7bed..8bc1b06336 100644
--- a/engines/tsage/debugger.h
+++ b/engines/tsage/debugger.h
@@ -26,7 +26,7 @@
#include "common/scummsys.h"
#include "gui/debugger.h"
-namespace tSage {
+namespace TsAGE {
class Debugger : public GUI::Debugger {
public:
@@ -42,10 +42,10 @@ protected:
bool Cmd_ClearFlag(int argc, const char **argv);
bool Cmd_ListObjects(int argc, const char **argv);
bool Cmd_MoveObject(int argc, const char **argv);
-
bool Cmd_Hotspots(int argc, const char **argv);
+ bool Cmd_Sound(int argc, const char **argv);
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/detection.cpp b/engines/tsage/detection.cpp
index aaa9030a04..f12efc02e8 100644
--- a/engines/tsage/detection.cpp
+++ b/engines/tsage/detection.cpp
@@ -30,7 +30,7 @@
#include "tsage/tsage.h"
-namespace tSage {
+namespace TsAGE {
struct tSageGameDescription {
ADGameDescription desc;
@@ -55,11 +55,11 @@ Common::String TSageEngine::getPrimaryFilename() const {
return Common::String(_gameDescription->desc.filesDescriptions[0].fileName);
}
-} // End of namespace tSage
+} // End of namespace TsAGE
static const PlainGameDescriptor tSageGameTitles[] = {
{ "tsage", "Unknown Tsunami TSAGE-based Game" },
- { "ring", "Ringworld: Revenge of the Patriarch" },
+ { "ringworld", "Ringworld: Revenge of the Patriarch" },
{ "blueforce", "Blue Force" },
{ 0, 0 }
};
@@ -72,7 +72,7 @@ enum {
class TSageMetaEngine : public AdvancedMetaEngine {
public:
- TSageMetaEngine() : AdvancedMetaEngine(tSage::gameDescriptions, sizeof(tSage::tSageGameDescription), tSageGameTitles) {
+ TSageMetaEngine() : AdvancedMetaEngine(TsAGE::gameDescriptions, sizeof(TsAGE::tSageGameDescription), tSageGameTitles) {
_md5Bytes = 5000;
_singleid = "tsage";
_guioptions = Common::GUIO_NOSPEECH;
@@ -103,7 +103,7 @@ public:
virtual bool createInstance(OSystem *syst, Engine **engine, const ADGameDescription *desc) const {
if (desc) {
- *engine = new tSage::TSageEngine(syst, (const tSage::tSageGameDescription *)desc);
+ *engine = new TsAGE::TSageEngine(syst, (const TsAGE::tSageGameDescription *)desc);
}
return desc != 0;
}
@@ -118,7 +118,7 @@ public:
Common::StringArray filenames = g_system->getSavefileManager()->listSavefiles(pattern);
sort(filenames.begin(), filenames.end());
- tSage::tSageSavegameHeader header;
+ TsAGE::tSageSavegameHeader header;
SaveStateList saveList;
for (Common::StringArray::const_iterator file = filenames.begin(); file != filenames.end(); ++file) {
@@ -129,7 +129,7 @@ public:
Common::InSaveFile *in = g_system->getSavefileManager()->openForLoading(*file);
if (in) {
- if (tSage::Saver::readSavegameHeader(in, header)) {
+ if (TsAGE::Saver::readSavegameHeader(in, header)) {
saveList.push_back(SaveStateDescriptor(slot, header.saveName));
delete header.thumbnail;
}
@@ -156,8 +156,8 @@ public:
generateGameStateFileName(target, slot));
assert(f);
- tSage::tSageSavegameHeader header;
- tSage::Saver::readSavegameHeader(f, header);
+ TsAGE::tSageSavegameHeader header;
+ TsAGE::Saver::readSavegameHeader(f, header);
delete f;
// Create the return descriptor
diff --git a/engines/tsage/detection_tables.h b/engines/tsage/detection_tables.h
index 8b80edf89d..4b69549673 100644
--- a/engines/tsage/detection_tables.h
+++ b/engines/tsage/detection_tables.h
@@ -20,19 +20,33 @@
*
*/
-namespace tSage {
+namespace TsAGE {
static const tSageGameDescription gameDescriptions[] = {
- // Ringworld CD and First Wave versions
+ // Ringworld English CD and First Wave versions
{
{
- "ring",
+ "ringworld",
"CD",
AD_ENTRY1s("ring.rlb", "466f0e6492d9d0f34d35c5cd088de90f", 37847618),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_UNSTABLE,
+ ADGF_TESTING | ADGF_CD,
+ Common::GUIO_NOSPEECH | Common::GUIO_NOSFX
+ },
+ GType_Ringworld,
+ GF_CD | GF_ALT_REGIONS
+ },
+ // Ringworld Spanish CD
+ {
+ {
+ "ringworld",
+ "CD",
+ AD_ENTRY1s("ring.rlb", "cb8bba91b30cd172712371d7123bd763", 7427980),
+ Common::ES_ESP,
+ Common::kPlatformPC,
+ ADGF_TESTING | ADGF_CD,
Common::GUIO_NOSPEECH | Common::GUIO_NOSFX
},
GType_Ringworld,
@@ -41,12 +55,12 @@ static const tSageGameDescription gameDescriptions[] = {
// Ringworld English Floppy version
{
{
- "ring",
+ "ringworld",
"Floppy",
AD_ENTRY1s("ring.rlb", "7b7f0c5b37b58fa5ec06ebb2ca0d0d9d", 8438770),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_UNSTABLE,
+ ADGF_TESTING,
Common::GUIO_NOSPEECH | Common::GUIO_NOSFX
},
GType_Ringworld,
@@ -55,7 +69,7 @@ static const tSageGameDescription gameDescriptions[] = {
// Ringworld English Floppy Demo #1 version
{
{
- "ring",
+ "ringworld",
"Floppy Demo",
AD_ENTRY1s("tsage.rlb", "3b3604a97c06c91f3735d3e9d341f63f", 833453),
Common::EN_ANY,
@@ -70,7 +84,7 @@ static const tSageGameDescription gameDescriptions[] = {
// Ringworld English Floppy Demo #2 version
{
{
- "ring",
+ "ringworld",
"Floppy Demo",
AD_ENTRY1s("demoring.rlb", "64050e1806203b15bb03876140eb4f56", 832206),
Common::EN_ANY,
@@ -106,11 +120,11 @@ static const tSageGameDescription gameDescriptions[] = {
AD_ENTRY1s("blue.rlb", "17eabb456cb1546c66baf1aff387ba6a", 10032614),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_UNSTABLE,
Common::GUIO_NOSPEECH | Common::GUIO_NOSFX
},
GType_BlueForce,
- GF_FLOPPY
+ GF_FLOPPY | GF_ALT_REGIONS
},
// Blue Force CD and First Wave use the same files
{
@@ -120,13 +134,13 @@ static const tSageGameDescription gameDescriptions[] = {
AD_ENTRY1s("blue.rlb", "99983f48cb218f1f3760cf2f9a7ef11d", 63863322),
Common::EN_ANY,
Common::kPlatformPC,
- ADGF_NO_FLAGS,
+ ADGF_CD | ADGF_UNSTABLE,
Common::GUIO_NOSPEECH | Common::GUIO_NOSFX
},
GType_BlueForce,
- GF_CD
+ GF_CD | GF_ALT_REGIONS
},
{ AD_TABLE_END_MARKER, 0, 0 }
};
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/dialogs.cpp b/engines/tsage/dialogs.cpp
index 86fbbc8e43..ae385b8c15 100644
--- a/engines/tsage/dialogs.cpp
+++ b/engines/tsage/dialogs.cpp
@@ -30,9 +30,9 @@
#include "tsage/dialogs.h"
#include "tsage/staticres.h"
#include "tsage/globals.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
/*--------------------------------------------------------------------------*/
@@ -243,7 +243,7 @@ void RightClickDialog::execute() {
// Dialog event handler loop
_gfxManager.activate();
- while (!_vm->getEventManager()->shouldQuit() && (_selectedAction == -1)) {
+ while (!_vm->shouldQuit() && (_selectedAction == -1)) {
Event evt;
while (_globals->_events.getEvent(evt, EVENT_MOUSE_MOVE | EVENT_BUTTON_DOWN)) {
evt.mousePos.x -= _bounds.left;
@@ -465,14 +465,14 @@ void InventoryDialog::execute() {
bool lookFlag = false;
_gfxManager.activate();
- while (!_vm->getEventManager()->shouldQuit()) {
+ while (!_vm->shouldQuit()) {
// Get events
Event event;
- while (!_globals->_events.getEvent(event) && !_vm->getEventManager()->shouldQuit()) {
+ while (!_globals->_events.getEvent(event) && !_vm->shouldQuit()) {
g_system->delayMillis(10);
g_system->updateScreen();
}
- if (_vm->getEventManager()->shouldQuit())
+ if (_vm->shouldQuit())
break;
hiliteObj = NULL;
@@ -595,4 +595,4 @@ OptionsDialog::OptionsDialog() {
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/dialogs.h b/engines/tsage/dialogs.h
index a50307f775..55adb6c813 100644
--- a/engines/tsage/dialogs.h
+++ b/engines/tsage/dialogs.h
@@ -30,7 +30,7 @@
#include "common/rect.h"
#include "common/system.h"
-namespace tSage {
+namespace TsAGE {
class MessageDialog : public GfxDialog {
public:
@@ -128,6 +128,6 @@ public:
static void show();
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/events.cpp b/engines/tsage/events.cpp
index a24f65421b..44c79bd2fe 100644
--- a/engines/tsage/events.cpp
+++ b/engines/tsage/events.cpp
@@ -31,7 +31,7 @@
#include "tsage/tsage.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
EventsClass::EventsClass() {
_currentCursor = CURSOR_NONE;
@@ -40,6 +40,7 @@ EventsClass::EventsClass() {
_priorFrameTime = 0;
_prevDelayFrame = 0;
_saver->addListener(this);
+ _saver->addLoadNotifier(&EventsClass::loadNotifierProc);
}
bool EventsClass::pollEvent() {
@@ -78,7 +79,7 @@ bool EventsClass::pollEvent() {
void EventsClass::waitForPress(int eventMask) {
Event evt;
- while (!_vm->getEventManager()->shouldQuit() && !getEvent(evt, eventMask))
+ while (!_vm->shouldQuit() && !getEvent(evt, eventMask))
g_system->delayMillis(10);
}
@@ -86,7 +87,7 @@ void EventsClass::waitForPress(int eventMask) {
* Standard event retrieval, which only returns keyboard and mouse clicks
*/
bool EventsClass::getEvent(Event &evt, int eventMask) {
- while (pollEvent() && !_vm->getEventManager()->shouldQuit()) {
+ while (pollEvent() && !_vm->shouldQuit()) {
evt.handled = false;
evt.eventType = EVENT_NONE;
evt.mousePos = _event.mouse;
@@ -154,7 +155,7 @@ void EventsClass::setCursor(CursorType cursorType) {
// No cursor
_globals->setFlag(122);
- if (_vm->getFeatures() & GF_DEMO) {
+ if ((_vm->getFeatures() & GF_DEMO) || (_vm->getGameID() == GType_BlueForce)) {
CursorMan.showMouse(false);
return;
}
@@ -315,4 +316,13 @@ void EventsClass::listenerSynchronize(Serializer &s) {
}
}
-} // end of namespace tSage
+void EventsClass::loadNotifierProc(bool postFlag) {
+ if (postFlag) {
+ if (_globals->_events._lastCursor == CURSOR_NONE)
+ _globals->_events._lastCursor = _globals->_events._currentCursor;
+ else
+ _globals->_events._lastCursor = CURSOR_NONE;
+ }
+}
+
+} // end of namespace TsAGE
diff --git a/engines/tsage/events.h b/engines/tsage/events.h
index e0fbd88745..c36db59270 100644
--- a/engines/tsage/events.h
+++ b/engines/tsage/events.h
@@ -29,7 +29,7 @@
#include "graphics/surface.h"
#include "tsage/saveload.h"
-namespace tSage {
+namespace TsAGE {
enum EventType {EVENT_NONE = 0, EVENT_BUTTON_DOWN = 1, EVENT_BUTTON_UP = 2, EVENT_KEYPRESS = 4,
EVENT_MOUSE_MOVE = 8};
@@ -100,8 +100,9 @@ public:
void delay(int numFrames);
virtual void listenerSynchronize(Serializer &s);
+ static void loadNotifierProc(bool postFlag);
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/globals.cpp b/engines/tsage/globals.cpp
index 34b26ec311..27067c7d1c 100644
--- a/engines/tsage/globals.cpp
+++ b/engines/tsage/globals.cpp
@@ -22,11 +22,11 @@
#include "tsage/globals.h"
#include "tsage/tsage.h"
-#include "tsage/blueforce_logic.h"
-#include "tsage/ringworld_demo.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/blue_force/blueforce_logic.h"
+#include "tsage/ringworld/ringworld_demo.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
Globals *_globals = NULL;
ResourceManager *_resourceManager = NULL;
@@ -51,7 +51,7 @@ static SavedObject *classFactoryProc(const Common::String &className) {
/*--------------------------------------------------------------------------*/
Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface),
- _randomSource("tsage"), _unkColor1(0), _unkColor2(255), _unkColor3(255) {
+ _randomSource("tsage"), _color1(0), _color2(255), _color3(255) {
reset();
_stripNum = 0;
_gfxEdgeAdjust = 3;
@@ -64,18 +64,26 @@ Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface
_fontColors.foreground = 6;
_dialogCenter.y = 80;
// Workaround in order to use later version of the engine
- _unkColor1 = _gfxColors.foreground;
- _unkColor2 = _gfxColors.foreground;
- _unkColor3 = _gfxColors.foreground;
+ _color1 = _gfxColors.foreground;
+ _color2 = _gfxColors.foreground;
+ _color3 = _gfxColors.foreground;
+ } else if (_vm->getGameID() == GType_BlueForce) {
+ // Blue Force
+ _gfxFontNumber = 0;
+ _gfxColors.background = 89;
+ _gfxColors.foreground = 83;
+ _fontColors.background = 88;
+ _fontColors.foreground = 92;
+ _dialogCenter.y = 165;
} else if ((_vm->getGameID() == GType_Ringworld) && (_vm->getFeatures() & GF_CD)) {
_gfxFontNumber = 50;
_gfxColors.background = 53;
_gfxColors.foreground = 0;
_fontColors.background = 51;
_fontColors.foreground = 54;
- _unkColor1 = 18;
- _unkColor2 = 18;
- _unkColor3 = 18;
+ _color1 = 18;
+ _color2 = 18;
+ _color3 = 18;
} else {
_gfxFontNumber = 50;
_gfxColors.background = 53;
@@ -83,9 +91,9 @@ Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface
_fontColors.background = 51;
_fontColors.foreground = 54;
// Workaround in order to use later version of the engine
- _unkColor1 = _gfxColors.foreground;
- _unkColor2 = _gfxColors.foreground;
- _unkColor3 = _gfxColors.foreground;
+ _color1 = _gfxColors.foreground;
+ _color2 = _gfxColors.foreground;
+ _color3 = _gfxColors.foreground;
}
_screenSurface.setScreenSurface();
_gfxManagers.push_back(&_gfxManagerInstance);
@@ -103,21 +111,25 @@ Globals::Globals() : _dialogCenter(160, 140), _gfxManagerInstance(_screenSurface
switch (_vm->getGameID()) {
case GType_Ringworld:
if (!(_vm->getFeatures() & GF_DEMO)) {
- _inventory = new RingworldInvObjectList();
- _game = new RingworldGame();
+ _inventory = new Ringworld::RingworldInvObjectList();
+ _game = new Ringworld::RingworldGame();
} else {
- _game = new RingworldDemoGame();
+ _game = new Ringworld::RingworldDemoGame();
}
+ _sceneHandler = new SceneHandler();
break;
case GType_BlueForce:
- _game = new BlueForceGame();
+ _game = new BlueForce::BlueForceGame();
+ _sceneHandler = new BlueForce::SceneHandlerExt();
break;
}
}
Globals::~Globals() {
+ _scenePalette.clearListeners();
delete _inventory;
+ delete _sceneHandler;
delete _game;
_globals = NULL;
}
@@ -142,9 +154,9 @@ void Globals::synchronize(Serializer &s) {
s.syncAsSint32LE(_fontColors.foreground);
if (s.getVersion() >= 4) {
- s.syncAsByte(_unkColor1);
- s.syncAsByte(_unkColor2);
- s.syncAsByte(_unkColor3);
+ s.syncAsByte(_color1);
+ s.syncAsByte(_color2);
+ s.syncAsByte(_color3);
}
s.syncAsSint16LE(_dialogCenter.x); s.syncAsSint16LE(_dialogCenter.y);
@@ -166,5 +178,39 @@ void Globals::dispatchSounds() {
Common::for_each(_sounds.begin(), _sounds.end(), Globals::dispatchSound);
}
+/*--------------------------------------------------------------------------*/
+
+namespace BlueForce {
+
+BlueForceGlobals::BlueForceGlobals(): Globals() {
+ _interfaceY = 0;
+ _v51C44 = 1;
+ _v4CEA2 = 0;
+ _v4CEA8 = 0;
+ _v4CEF2 = 0;
+ _v4CEF4 = 0;
+ _v4CF9E = 0;
+ _v4E238 = 0;
+ _v501FC = 0;
+ _v51C42 = 0;
+ _bikiniHutState = 0;
+ _mapLocationId = 1;
+ Common::set_to(&_globalFlags[0], &_globalFlags[12], 0);
+}
+
+void BlueForceGlobals::synchronize(Serializer &s) {
+ Globals::synchronize(s);
+ error("Sync variables");
+}
+
+bool BlueForceGlobals::getFlag(int v) {
+ return _globalFlags[v / 16] & (1 << (v % 8));
+}
+
+void BlueForceGlobals::setFlag(int v) {
+ _globalFlags[v / 16] |= 1 << (v % 8);
+}
+
+} // end of namespace BlueForce
-} // end of namespace tSage
+} // end of namespace TsAGE
diff --git a/engines/tsage/globals.h b/engines/tsage/globals.h
index 7cfec718e2..2d409b6343 100644
--- a/engines/tsage/globals.h
+++ b/engines/tsage/globals.h
@@ -31,7 +31,7 @@
#include "tsage/sound.h"
#include "tsage/saveload.h"
-namespace tSage {
+namespace TsAGE {
class Globals : public SavedObject {
private:
@@ -40,7 +40,7 @@ public:
GfxSurface _screenSurface;
GfxManager _gfxManagerInstance;
Common::List<GfxManager *> _gfxManagers;
- SceneHandler _sceneHandler;
+ SceneHandler *_sceneHandler;
Game *_game;
EventsClass _events;
SceneManager _sceneManager;
@@ -54,7 +54,7 @@ public:
int _gfxFontNumber;
GfxColors _gfxColors;
GfxColors _fontColors;
- byte _unkColor1, _unkColor2, _unkColor3;
+ byte _color1, _color2, _color3;
SoundManager _soundManager;
Common::Point _dialogCenter;
WalkRegions _walkRegions;
@@ -98,10 +98,45 @@ public:
extern Globals *_globals;
+#define GLOBALS (*_globals)
+#define BF_GLOBALS (*((::TsAGE::BlueForce::BlueForceGlobals *)_globals))
+
// Note: Currently this can't be part of the _globals structure, since it needs to be constructed
// prior to many of the fields in Globals execute their constructors
extern ResourceManager *_resourceManager;
-} // End of namespace tSage
+
+namespace BlueForce {
+
+using namespace TsAGE;
+
+class BlueForceGlobals: public Globals {
+public:
+ ASoundExt _sound1, _sound2, _sound3;
+ int _v4CEA2;
+ int _v4CEA8;
+ int _v4CEF2;
+ int _v4CEF4;
+ int _v4CF9E;
+ int _v4E238;
+ int _v501FC;
+ int _v51C42;
+ int _v51C44;
+ int _interfaceY;
+ int _bikiniHutState;
+ int _mapLocationId;
+ uint8 _globalFlags[12];
+
+ BlueForceGlobals();
+ virtual Common::String getClassName() { return "BFGlobals"; }
+ virtual void synchronize(Serializer &s);
+
+ void setFlag(int v);
+ bool getFlag(int v);
+};
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/graphics.cpp b/engines/tsage/graphics.cpp
index fce9e1317d..1884bfb4f5 100644
--- a/engines/tsage/graphics.cpp
+++ b/engines/tsage/graphics.cpp
@@ -30,7 +30,7 @@
#include "graphics/surface.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
/**
* Creates a new graphics surface with the specified area of another surface
@@ -408,7 +408,7 @@ bool GfxSurface::displayText(const Common::String &msg, const Common::Point &pt)
// Write for a mouse or keypress
Event event;
- while (!_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !_vm->getEventManager()->shouldQuit())
+ while (!_globals->_events.getEvent(event, EVENT_BUTTON_DOWN | EVENT_KEYPRESS) && !_vm->shouldQuit())
;
// Restore the display area
@@ -626,9 +626,9 @@ void GfxElement::setDefaults() {
_fontNumber = _globals->_gfxFontNumber;
_colors = _globals->_gfxColors;
_fontColors = _globals->_fontColors;
- _unkColor1 = _globals->_unkColor1;
- _unkColor2 = _globals->_unkColor2;
- _unkColor3 = _globals->_unkColor3;
+ _color1 = _globals->_color1;
+ _color2 = _globals->_color2;
+ _color3 = _globals->_color3;
}
/**
@@ -718,7 +718,7 @@ bool GfxElement::focusedEvent(Event &event) {
int xOffset = mousePos.x - _globals->_events._mousePos.x;
int yOffset = mousePos.y - _globals->_events._mousePos.y;
- while (event.eventType != EVENT_BUTTON_UP && !_vm->getEventManager()->shouldQuit()) {
+ while (event.eventType != EVENT_BUTTON_UP && !_vm->shouldQuit()) {
g_system->delayMillis(10);
if (_bounds.contains(mousePos)) {
@@ -824,9 +824,9 @@ void GfxMessage::draw() {
gfxManager.setFillFlag(false);
gfxManager._font.setFontNumber(_fontNumber);
- gfxManager._font._colors.foreground = this->_unkColor1;
- gfxManager._font._colors2.background = this->_unkColor2;
- gfxManager._font._colors2.foreground = this->_unkColor3;
+ gfxManager._font._colors.foreground = this->_color1;
+ gfxManager._font._colors2.background = this->_color2;
+ gfxManager._font._colors2.foreground = this->_color3;
// Display the text
gfxManager._font.writeLines(_message.c_str(), _bounds, _textAlign);
@@ -867,9 +867,9 @@ void GfxButton::draw() {
gfxManager._font.setFontNumber(_fontNumber);
//
- gfxManager._font._colors.foreground = this->_unkColor1;
- gfxManager._font._colors2.background = this->_unkColor2;
- gfxManager._font._colors2.foreground = this->_unkColor3;
+ gfxManager._font._colors.foreground = this->_color1;
+ gfxManager._font._colors2.background = this->_color2;
+ gfxManager._font._colors2.foreground = this->_color3;
// Display the button's text
Rect tempRect(_bounds);
@@ -1029,7 +1029,7 @@ GfxButton *GfxDialog::execute(GfxButton *defaultButton) {
GfxButton *selectedButton = NULL;
bool breakFlag = false;
- while (!_vm->getEventManager()->shouldQuit() && !breakFlag) {
+ while (!_vm->shouldQuit() && !breakFlag) {
Event event;
while (_globals->_events.getEvent(event) && !breakFlag) {
// Adjust mouse positions to be relative within the dialog
@@ -1512,4 +1512,4 @@ GfxFontBackup::~GfxFontBackup() {
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/graphics.h b/engines/tsage/graphics.h
index e09e1093a3..06b482d7b5 100644
--- a/engines/tsage/graphics.h
+++ b/engines/tsage/graphics.h
@@ -30,7 +30,7 @@
#include "common/system.h"
#include "graphics/surface.h"
-namespace tSage {
+namespace TsAGE {
class GfxSurface;
class Region;
@@ -177,7 +177,7 @@ public:
uint16 _fontNumber;
GfxColors _colors;
GfxColors _fontColors;
- byte _unkColor1, _unkColor2, _unkColor3;
+ byte _color1, _color2, _color3;
uint16 _keycode;
public:
GfxElement();
@@ -343,6 +343,6 @@ GfxSurface *Surface_getArea(GfxSurface &src, const Rect &bounds);
GfxSurface surfaceFromRes(const byte *imgData);
GfxSurface surfaceFromRes(int resNum, int rlbNum, int subNum);
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/module.mk b/engines/tsage/module.mk
index aefc8b0992..5c7104936e 100644
--- a/engines/tsage/module.mk
+++ b/engines/tsage/module.mk
@@ -1,7 +1,9 @@
MODULE := engines/tsage
MODULE_OBJS := \
- blueforce_logic.o \
+ blue_force/blueforce_logic.o \
+ blue_force/blueforce_scenes0.o \
+ blue_force/blueforce_scenes1.o \
converse.o \
core.o \
debugger.o \
@@ -11,16 +13,16 @@ MODULE_OBJS := \
globals.o \
graphics.o \
resources.o \
- ringworld_demo.o \
- ringworld_logic.o \
- ringworld_scenes1.o \
- ringworld_scenes2.o \
- ringworld_scenes3.o \
- ringworld_scenes4.o \
- ringworld_scenes5.o \
- ringworld_scenes6.o \
- ringworld_scenes8.o \
- ringworld_scenes10.o \
+ ringworld/ringworld_demo.o \
+ ringworld/ringworld_logic.o \
+ ringworld/ringworld_scenes1.o \
+ ringworld/ringworld_scenes2.o \
+ ringworld/ringworld_scenes3.o \
+ ringworld/ringworld_scenes4.o \
+ ringworld/ringworld_scenes5.o \
+ ringworld/ringworld_scenes6.o \
+ ringworld/ringworld_scenes8.o \
+ ringworld/ringworld_scenes10.o \
saveload.o \
scenes.o \
sound.o \
@@ -34,4 +36,3 @@ endif
# Include common rules
include $(srcdir)/rules.mk
-
diff --git a/engines/tsage/resources.cpp b/engines/tsage/resources.cpp
index 6d2c6b5837..99b431b5dc 100644
--- a/engines/tsage/resources.cpp
+++ b/engines/tsage/resources.cpp
@@ -28,7 +28,7 @@
#include "tsage/resources.h"
#include "tsage/tsage.h"
-namespace tSage {
+namespace TsAGE {
MemoryManager::MemoryManager() {
@@ -504,4 +504,4 @@ Common::String ResourceManager::getMessage(int resNum, int lineNum, bool suppres
return result;
}
-} // end of namespace tSage
+} // end of namespace TsAGE
diff --git a/engines/tsage/resources.h b/engines/tsage/resources.h
index efbb86b24e..176d60fcc4 100644
--- a/engines/tsage/resources.h
+++ b/engines/tsage/resources.h
@@ -33,7 +33,7 @@
#include "common/util.h"
#include "graphics/surface.h"
-namespace tSage {
+namespace TsAGE {
// Magic number used by original game to identify valid memory blocks
const uint32 MEMORY_ENTRY_ID = 0xE11DA722;
@@ -175,6 +175,6 @@ public:
};
-} // end of namespace tSage
+} // end of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_demo.cpp b/engines/tsage/ringworld/ringworld_demo.cpp
index b24fec98f9..5612325aff 100644
--- a/engines/tsage/ringworld_demo.cpp
+++ b/engines/tsage/ringworld/ringworld_demo.cpp
@@ -20,12 +20,14 @@
*
*/
-#include "tsage/ringworld_demo.h"
+#include "tsage/ringworld/ringworld_demo.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
void RingworldDemoGame::start() {
// Start the demo's single scene
@@ -117,4 +119,6 @@ void RingworldDemoScene::process(Event &event) {
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_demo.h b/engines/tsage/ringworld/ringworld_demo.h
index 3e7431e107..30527b0aea 100644
--- a/engines/tsage/ringworld_demo.h
+++ b/engines/tsage/ringworld/ringworld_demo.h
@@ -30,7 +30,11 @@
#include "tsage/globals.h"
#include "tsage/sound.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class RingworldDemoGame: public Game {
private:
@@ -54,6 +58,8 @@ public:
virtual void signal();
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_logic.cpp b/engines/tsage/ringworld/ringworld_logic.cpp
index 58501172af..2a34e49b39 100644
--- a/engines/tsage/ringworld_logic.cpp
+++ b/engines/tsage/ringworld/ringworld_logic.cpp
@@ -23,21 +23,23 @@
#include "common/config-manager.h"
#include "common/translation.h"
#include "gui/saveload.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-#include "tsage/ringworld_demo.h"
-#include "tsage/ringworld_scenes1.h"
-#include "tsage/ringworld_scenes2.h"
-#include "tsage/ringworld_scenes3.h"
-#include "tsage/ringworld_scenes4.h"
-#include "tsage/ringworld_scenes5.h"
-#include "tsage/ringworld_scenes6.h"
-#include "tsage/ringworld_scenes8.h"
-#include "tsage/ringworld_scenes10.h"
-
-namespace tSage {
+#include "tsage/ringworld/ringworld_demo.h"
+#include "tsage/ringworld/ringworld_scenes1.h"
+#include "tsage/ringworld/ringworld_scenes2.h"
+#include "tsage/ringworld/ringworld_scenes3.h"
+#include "tsage/ringworld/ringworld_scenes4.h"
+#include "tsage/ringworld/ringworld_scenes5.h"
+#include "tsage/ringworld/ringworld_scenes6.h"
+#include "tsage/ringworld/ringworld_scenes8.h"
+#include "tsage/ringworld/ringworld_scenes10.h"
+
+namespace TsAGE {
+
+namespace Ringworld {
Scene *RingworldGame::createScene(int sceneNumber) {
switch (sceneNumber) {
@@ -296,7 +298,7 @@ void SceneArea::draw(bool flag) {
void SceneArea::wait() {
// Wait until a mouse or keypress
Event event;
- while (!_vm->getEventManager()->shouldQuit() && !_globals->_events.getEvent(event)) {
+ while (!_vm->shouldQuit() && !_globals->_events.getEvent(event)) {
g_system->updateScreen();
g_system->delayMillis(10);
}
@@ -1285,7 +1287,7 @@ void RingworldGame::saveGame() {
MessageDialog::show(SAVING_NOT_ALLOWED_MSG, OK_BTN_STRING);
else {
// Show the save dialog
- handleSaveLoad(true, _globals->_sceneHandler._saveGameSlot, _globals->_sceneHandler._saveName);
+ handleSaveLoad(true, _globals->_sceneHandler->_saveGameSlot, _globals->_sceneHandler->_saveName);
}
}
@@ -1294,7 +1296,7 @@ void RingworldGame::restoreGame() {
MessageDialog::show(RESTORING_NOT_ALLOWED_MSG, OK_BTN_STRING);
else {
// Show the load dialog
- handleSaveLoad(false, _globals->_sceneHandler._loadGameSlot, _globals->_sceneHandler._saveName);
+ handleSaveLoad(false, _globals->_sceneHandler->_loadGameSlot, _globals->_sceneHandler->_saveName);
}
}
@@ -1346,7 +1348,7 @@ void RingworldGame::start() {
}
if (slot >= 0)
- _globals->_sceneHandler._loadGameSlot = slot;
+ _globals->_sceneHandler->_loadGameSlot = slot;
else
// Switch to the title screen
_globals->_sceneManager.setNewScene(1000);
@@ -1363,8 +1365,8 @@ void RingworldGame::restart() {
_globals->setFlag(34);
// Clear save/load slots
- _globals->_sceneHandler._saveGameSlot = -1;
- _globals->_sceneHandler._loadGameSlot = -1;
+ _globals->_sceneHandler->_saveGameSlot = -1;
+ _globals->_sceneHandler->_loadGameSlot = -1;
_globals->_stripNum = 0;
_globals->_events.setCursor(CURSOR_WALK);
@@ -1429,8 +1431,8 @@ void RingworldGame::endGame(int resNum, int lineNum) {
restart();
breakFlag = true;
} else {
- handleSaveLoad(false, _globals->_sceneHandler._loadGameSlot, _globals->_sceneHandler._saveName);
- breakFlag = _globals->_sceneHandler._loadGameSlot >= 0;
+ handleSaveLoad(false, _globals->_sceneHandler->_loadGameSlot, _globals->_sceneHandler->_saveName);
+ breakFlag = _globals->_sceneHandler->_loadGameSlot >= 0;
}
} while (!breakFlag);
}
@@ -1487,4 +1489,6 @@ void RingworldGame::processEvent(Event &event) {
}
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_logic.h b/engines/tsage/ringworld/ringworld_logic.h
index 19b0f10b42..73ecc9722b 100644
--- a/engines/tsage/ringworld_logic.h
+++ b/engines/tsage/ringworld/ringworld_logic.h
@@ -29,7 +29,11 @@
#include "tsage/scenes.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
#define ADD_PLAYER_MOVER(X, Y) { Common::Point pt(X, Y); PlayerMover *mover = new PlayerMover(); \
_globals->_player.addMover(mover, &pt, this); }
@@ -438,7 +442,7 @@ public:
virtual Common::String getClassName() { return "RingworldInvObjectList"; }
};
-#define RING_INVENTORY (*((RingworldInvObjectList *)_globals->_inventory))
+#define RING_INVENTORY (*((::TsAGE::Ringworld::RingworldInvObjectList *)_globals->_inventory))
class RingworldGame: public Game {
protected:
@@ -456,6 +460,8 @@ public:
virtual void processEvent(Event &event);
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes1.cpp b/engines/tsage/ringworld/ringworld_scenes1.cpp
index 8299a05967..20af25561c 100644
--- a/engines/tsage/ringworld_scenes1.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes1.cpp
@@ -20,12 +20,14 @@
*
*/
-#include "tsage/ringworld_scenes1.h"
+#include "tsage/ringworld/ringworld_scenes1.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 10 - Kziniti Palace (Introduction)
@@ -1330,6 +1332,24 @@ void Scene40::Action8::signal() {
}
}
+void Scene40::Action8::dispatch() {
+ if (_action)
+ _action->dispatch();
+
+ if (_delayFrames) {
+ uint32 frameNumber = _globals->_events.getFrameNumber();
+ if ((_startFrame + 60) < frameNumber) {
+ --_delayFrames;
+ _startFrame = frameNumber;
+
+ if (_delayFrames <= 0) {
+ _delayFrames = 0;
+ signal();
+ }
+ }
+ }
+}
+
/*--------------------------------------------------------------------------*/
void Scene40::DyingKzin::doAction(int action) {
@@ -1416,7 +1436,7 @@ void Scene40::Item2::doAction(int action) {
SceneItem::display2(40, 37);
break;
default:
- SceneItem::doAction(action);
+ SceneHotspot::doAction(action);
break;
}
}
@@ -1437,7 +1457,7 @@ void Scene40::Item6::doAction(int action) {
SceneItem::display2(40, 36);
break;
default:
- SceneItem::doAction(action);
+ SceneHotspot::doAction(action);
break;
}
}
@@ -1446,7 +1466,7 @@ void Scene40::Item6::doAction(int action) {
Scene40::Scene40() :
_item1(2, OBJECT_SCANNER, 40, 24, OBJECT_STUNNER, 40, 25, CURSOR_LOOK, 40, 7, CURSOR_USE, 40, 16, LIST_END),
- _item3(5, OBJECT_SCANNER, 40, 26, OBJECT_STUNNER, 40, 27, CURSOR_LOOK, 40, 9, CURSOR_USE, 40, 17, LIST_END),
+ _item3(5, OBJECT_SCANNER, 40, 28, OBJECT_STUNNER, 40, 27, CURSOR_LOOK, 40, 2, CURSOR_USE, 40, 30, LIST_END),
_item4(6, OBJECT_SCANNER, 40, 31, OBJECT_STUNNER, 40, 32, CURSOR_LOOK, 40, 5, CURSOR_USE, 40, 33, LIST_END),
_item5(0, CURSOR_LOOK, 40, 11, LIST_END),
_item7(4, OBJECT_SCANNER, 40, 26, OBJECT_STUNNER, 40, 27, CURSOR_LOOK, 40, 9, CURSOR_USE, 40, 17, LIST_END),
@@ -2271,7 +2291,7 @@ void Scene60::Item::doAction(int action) {
setAction(&scene->_sequenceManager, this, 62, NULL);
break;
default:
- SceneItem::doAction(action);
+ SceneHotspot::doAction(action);
break;
}
}
@@ -3148,7 +3168,7 @@ Scene6100::Scene6100(): Scene() {
_angle = 0;
_msgActive = false;
- _globals->_sceneHandler._delayTicks = 8;
+ _globals->_sceneHandler->_delayTicks = 8;
_globals->_player.disableControl();
_globals->_events.setCursor(CURSOR_WALK);
@@ -3324,4 +3344,6 @@ void Scene6100::showMessage(const Common::String &msg, int color, Action *action
}
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes1.h b/engines/tsage/ringworld/ringworld_scenes1.h
index 283cf68e07..49ea65eb3a 100644
--- a/engines/tsage/ringworld_scenes1.h
+++ b/engines/tsage/ringworld/ringworld_scenes1.h
@@ -24,7 +24,7 @@
#define TSAGE_RINGWORLD_SCENES1_H
#include "common/scummsys.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/converse.h"
#include "tsage/events.h"
#include "tsage/core.h"
@@ -32,7 +32,11 @@
#include "tsage/globals.h"
#include "tsage/sound.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene10 : public Scene {
/* Actions */
@@ -201,6 +205,7 @@ class Scene40 : public Scene {
class Action8 : public Action {
public:
virtual void signal();
+ virtual void dispatch();
};
/* Objects */
@@ -214,15 +219,15 @@ class Scene40 : public Scene {
};
/* Items */
- class Item2 : public SceneItem {
+ class Item2 : public SceneHotspot {
public:
virtual void doAction(int action);
};
- class Item6 : public SceneItem {
+ class Item6 : public SceneHotspot {
public:
virtual void doAction(int action);
};
- class Item8 : public SceneItem {
+ class Item8 : public SceneHotspot {
public:
virtual void doAction(int action);
};
@@ -532,6 +537,8 @@ public:
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes10.cpp b/engines/tsage/ringworld/ringworld_scenes10.cpp
index ba4060548e..df25c324ab 100644
--- a/engines/tsage/ringworld_scenes10.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes10.cpp
@@ -21,12 +21,14 @@
*/
#include "graphics/cursorman.h"
-#include "tsage/ringworld_scenes10.h"
+#include "tsage/ringworld/ringworld_scenes10.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
Scene2::Scene2() : Scene() {
_sceneState = 0;
@@ -1746,7 +1748,8 @@ void Scene9900::strAction2::signal() {
frameWidth = _txtArray2[_txtArray1Index].getFrame().getBounds().width();
_txtArray2[_txtArray1Index].setPosition(Common::Point((320 - frameWidth) / 2, 200 + frameHeight));
} else {
- _globals->_player.enableControl();
+ // WORKAROUND: Fix inventory becoming available at end of credits
+ _globals->_events.setCursor(CURSOR_WALK);
_actionIndex = 3;
signal();
}
@@ -2085,4 +2088,6 @@ void Scene9999::postInit(SceneObjectList *OwnerList) {
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes10.h b/engines/tsage/ringworld/ringworld_scenes10.h
index 33b16d0014..02c42f3d01 100644
--- a/engines/tsage/ringworld_scenes10.h
+++ b/engines/tsage/ringworld/ringworld_scenes10.h
@@ -24,13 +24,17 @@
#define TSAGE_RINGWORLD_SCENES10_H
#include "common/scummsys.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class SceneObject9150 : public SceneObject {
public:
@@ -526,7 +530,8 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
+} // End of namespace Ringworld
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes2.cpp b/engines/tsage/ringworld/ringworld_scenes2.cpp
index 0154123c3d..cfd3e3d8f7 100644
--- a/engines/tsage/ringworld_scenes2.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes2.cpp
@@ -21,12 +21,14 @@
*/
#include "common/config-manager.h"
-#include "tsage/ringworld_scenes2.h"
+#include "tsage/ringworld/ringworld_scenes2.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 1000 - Title Screen
@@ -925,4 +927,6 @@ void Scene1500::postInit(SceneObjectList *OwnerList) {
}
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes2.h b/engines/tsage/ringworld/ringworld_scenes2.h
index 93a8f04fd4..3502aea15b 100644
--- a/engines/tsage/ringworld_scenes2.h
+++ b/engines/tsage/ringworld/ringworld_scenes2.h
@@ -24,13 +24,17 @@
#define TSAGE_RINGWORLD_SCENES2_H
#include "common/scummsys.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene1000 : public Scene {
/* Actions */
@@ -142,8 +146,8 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
+} // End of namespace Ringworld
-
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes3.cpp b/engines/tsage/ringworld/ringworld_scenes3.cpp
index 824a96a18b..f744a98c33 100644
--- a/engines/tsage/ringworld_scenes3.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes3.cpp
@@ -21,12 +21,14 @@
*/
#include "common/config-manager.h"
-#include "tsage/ringworld_scenes3.h"
+#include "tsage/ringworld/ringworld_scenes3.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 2000 - Cockpit cutscenes
@@ -324,7 +326,7 @@ void Scene2000::Action14::signal() {
scene->_stripManager.start(2001, this, scene);
break;
case 6:
- _globals->_soundHandler.fadeOut(0/* was false */);
+ _globals->_soundHandler.fadeOut(NULL);
scene->_object8.setStrip(1);
scene->_object8.setFrame(scene->_object8.getFrameCount());
scene->_object8.animate(ANIM_MODE_6, this);
@@ -526,7 +528,7 @@ void Scene2100::Action1::signal() {
_state = 0;
_globals->_events.setCursor(CURSOR_USE);
- while (!_state && !_vm->getEventManager()->shouldQuit()) {
+ while (!_state && !_vm->shouldQuit()) {
// Wait for an event
Event event;
if (!_globals->_events.getEvent(event)) {
@@ -786,7 +788,7 @@ void Scene2100::Action9::signal() {
scene->_stripManager.start(6051, this, scene);
break;
case 4:
- scene->_soundHandler.fadeOut(0/* was false */);
+ scene->_soundHandler.fadeOut(NULL);
scene->_object4.setStrip(1);
scene->_object4.setFrame(scene->_object4.getFrameCount());
scene->_object4.animate(ANIM_MODE_6, this);
@@ -1105,7 +1107,7 @@ void Scene2100::Action14::signal() {
scene->_stripManager.start(6009, this, scene);
break;
case 6:
- scene->_soundHandler.fadeOut(0/* was false */);
+ scene->_soundHandler.fadeOut(NULL);
scene->_object4.setStrip(1);
scene->_object4.setFrame(scene->_object4.getFrameCount());
scene->_object4.animate(ANIM_MODE_6, this);
@@ -2257,7 +2259,7 @@ void Scene2150::Action1::signal() {
_state = 0;
_globals->_events.setCursor(CURSOR_USE);
- while (!_state && !_vm->getEventManager()->shouldQuit()) {
+ while (!_state && !_vm->shouldQuit()) {
// Wait for an event
Event event;
if (!_globals->_events.getEvent(event)) {
@@ -5112,7 +5114,7 @@ void Scene2320::Action3::signal() {
_state = 0;
_globals->_events.setCursor(CURSOR_USE);
- while (!_state && !_vm->getEventManager()->shouldQuit()) {
+ while (!_state && !_vm->shouldQuit()) {
// Wait for an event
Event event;
if (!_globals->_events.getEvent(event)) {
@@ -6130,4 +6132,6 @@ void Scene2400::postInit(SceneObjectList *OwnerList) {
_globals->_soundHandler.play(153);
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes3.h b/engines/tsage/ringworld/ringworld_scenes3.h
index 711360c190..2dbdc27211 100644
--- a/engines/tsage/ringworld_scenes3.h
+++ b/engines/tsage/ringworld/ringworld_scenes3.h
@@ -26,9 +26,13 @@
#include "common/scummsys.h"
#include "tsage/core.h"
#include "tsage/converse.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene2000 : public Scene {
/* Actions */
@@ -890,6 +894,8 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes4.cpp b/engines/tsage/ringworld/ringworld_scenes4.cpp
index 838769e4af..0f4c3e49a0 100644
--- a/engines/tsage/ringworld_scenes4.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes4.cpp
@@ -21,12 +21,14 @@
*/
#include "common/config-manager.h"
-#include "tsage/ringworld_scenes4.h"
+#include "tsage/ringworld/ringworld_scenes4.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 3500 - Ringworld Scan
@@ -227,7 +229,7 @@ void Scene3700::Action1::signal() {
/*--------------------------------------------------------------------------*/
-void Scene3700::postInit(tSage::SceneObjectList *OwnerList) {
+void Scene3700::postInit(TsAGE::SceneObjectList *OwnerList) {
Scene::postInit();
loadScene(3700);
@@ -247,4 +249,6 @@ void Scene3700::postInit(tSage::SceneObjectList *OwnerList) {
_globals->_soundHandler.play(195);
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes4.h b/engines/tsage/ringworld/ringworld_scenes4.h
index 0b575d02d3..af31de84b9 100644
--- a/engines/tsage/ringworld_scenes4.h
+++ b/engines/tsage/ringworld/ringworld_scenes4.h
@@ -26,9 +26,13 @@
#include "common/scummsys.h"
#include "tsage/core.h"
#include "tsage/converse.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene3500 : public Scene {
/* Actions */
@@ -87,6 +91,8 @@ public:
virtual void postInit(SceneObjectList *OwnerList = NULL);
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes5.cpp b/engines/tsage/ringworld/ringworld_scenes5.cpp
index fccc7e1b50..58f47d7f82 100644
--- a/engines/tsage/ringworld_scenes5.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes5.cpp
@@ -21,12 +21,14 @@
*/
#include "common/config-manager.h"
-#include "tsage/ringworld_scenes5.h"
+#include "tsage/ringworld/ringworld_scenes5.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 4000 - Village
@@ -3520,7 +3522,7 @@ Scene4250::Scene4250() :
_hotspot7(0, CURSOR_LOOK, 4250, 0, LIST_END) {
}
-void Scene4250::postInit(tSage::SceneObjectList *OwnerList) {
+void Scene4250::postInit(TsAGE::SceneObjectList *OwnerList) {
loadScene(4250);
Scene::postInit();
setZoomPercents(160, 90, 185, 100);
@@ -4438,4 +4440,6 @@ void Scene4301::dispatch() {
}
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes5.h b/engines/tsage/ringworld/ringworld_scenes5.h
index c3ae9f4aa9..6c6b6b6f32 100644
--- a/engines/tsage/ringworld_scenes5.h
+++ b/engines/tsage/ringworld/ringworld_scenes5.h
@@ -26,9 +26,13 @@
#include "common/scummsys.h"
#include "tsage/core.h"
#include "tsage/converse.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene4000 : public Scene {
/* Actions */
@@ -687,7 +691,8 @@ public:
}
};
+} // End of namespace Ringworld
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes6.cpp b/engines/tsage/ringworld/ringworld_scenes6.cpp
index 68c184196c..f21ae59478 100644
--- a/engines/tsage/ringworld_scenes6.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes6.cpp
@@ -20,12 +20,14 @@
*
*/
-#include "tsage/ringworld_scenes6.h"
+#include "tsage/ringworld/ringworld_scenes6.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
/*--------------------------------------------------------------------------
* Scene 5000 - Caverns - Entrance
@@ -2196,5 +2198,6 @@ void Scene5300::signal() {
}
}
+} // End of namespace Ringworld
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes6.h b/engines/tsage/ringworld/ringworld_scenes6.h
index 2e99f5ab87..79e604a177 100644
--- a/engines/tsage/ringworld_scenes6.h
+++ b/engines/tsage/ringworld/ringworld_scenes6.h
@@ -24,13 +24,17 @@
#define TSAGE_RINGWORLD_SCENES6_H
#include "common/scummsys.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class Scene5000 : public Scene {
/* Actions */
@@ -324,7 +328,8 @@ public:
}
};
+} // End of namespace Ringworld
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/ringworld_scenes8.cpp b/engines/tsage/ringworld/ringworld_scenes8.cpp
index 2b329b958a..5f1ff5cdca 100644
--- a/engines/tsage/ringworld_scenes8.cpp
+++ b/engines/tsage/ringworld/ringworld_scenes8.cpp
@@ -21,12 +21,14 @@
*/
#include "graphics/cursorman.h"
-#include "tsage/ringworld_scenes8.h"
+#include "tsage/ringworld/ringworld_scenes8.h"
#include "tsage/scenes.h"
#include "tsage/tsage.h"
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
void NamedHotspotMult::synchronize(Serializer &s) {
SceneHotspot::synchronize(s);
@@ -2223,7 +2225,7 @@ void Scene7700::signal() {
}
break;
case 7702:
- _soundHandler.fadeOut(0);
+ _globals->_soundHandler.fadeOut(NULL);
_globals->_sceneManager.changeScene(7600);
break;
case 7703:
@@ -2542,4 +2544,6 @@ void Scene7700::synchronize(Serializer &s) {
}
}
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/ringworld_scenes8.h b/engines/tsage/ringworld/ringworld_scenes8.h
index fe9560d9d8..4878db5cc8 100644
--- a/engines/tsage/ringworld_scenes8.h
+++ b/engines/tsage/ringworld/ringworld_scenes8.h
@@ -24,13 +24,17 @@
#define TSAGE_RINGWORLD_SCENES8_H
#include "common/scummsys.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/events.h"
#include "tsage/core.h"
#include "tsage/scenes.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
+
+namespace Ringworld {
+
+using namespace TsAGE;
class NamedHotspotMult : public SceneHotspot {
public:
@@ -485,6 +489,8 @@ public:
virtual void synchronize(Serializer &s);
};
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/saveload.cpp b/engines/tsage/saveload.cpp
index 40444cd630..45e655037d 100644
--- a/engines/tsage/saveload.cpp
+++ b/engines/tsage/saveload.cpp
@@ -30,7 +30,7 @@
#include "tsage/sound.h"
#include "tsage/tsage.h"
-namespace tSage {
+namespace TsAGE {
Saver *_saver;
@@ -249,12 +249,9 @@ bool Saver::readSavegameHeader(Common::InSaveFile *in, tSageSavegameHeader &head
while ((ch = (char)in->readByte()) != '\0') header.saveName += ch;
// Get the thumbnail
- header.thumbnail = new Graphics::Surface();
- if (!Graphics::loadThumbnail(*in, *header.thumbnail)) {
- delete header.thumbnail;
- header.thumbnail = NULL;
+ header.thumbnail = Graphics::loadThumbnail(*in);
+ if (!header.thumbnail)
return false;
- }
// Read in save date/time
header.saveYear = in->readSint16LE();
@@ -413,4 +410,4 @@ void Saver::resolveLoadPointers() {
error("Could not resolve savegame block pointers");
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/saveload.h b/engines/tsage/saveload.h
index ce181cbc8f..03beafed7c 100644
--- a/engines/tsage/saveload.h
+++ b/engines/tsage/saveload.h
@@ -29,7 +29,7 @@
#include "common/savefile.h"
#include "common/serializer.h"
-namespace tSage {
+namespace TsAGE {
typedef void (*SaveNotifierFn)(bool postFlag);
@@ -222,6 +222,6 @@ public:
extern Saver *_saver;
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/scenes.cpp b/engines/tsage/scenes.cpp
index 18b3da2698..5aeacda6fe 100644
--- a/engines/tsage/scenes.cpp
+++ b/engines/tsage/scenes.cpp
@@ -22,11 +22,11 @@
#include "tsage/scenes.h"
#include "tsage/globals.h"
-#include "tsage/ringworld_logic.h"
+#include "tsage/ringworld/ringworld_logic.h"
#include "tsage/tsage.h"
#include "tsage/saveload.h"
-namespace tSage {
+namespace TsAGE {
SceneManager::SceneManager() {
_scene = NULL;
@@ -38,6 +38,7 @@ SceneManager::SceneManager() {
_scrollerRect = Rect(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
_saver->addListener(this);
_objectCount = 0;
+ _loadMode = 0;
}
SceneManager::~SceneManager() {
@@ -45,7 +46,7 @@ SceneManager::~SceneManager() {
}
void SceneManager::setNewScene(int sceneNumber) {
- warning("SetNewScene(%d)", sceneNumber);
+ debug(1, "SetNewScene(%d)", sceneNumber);
_nextSceneNumber = sceneNumber;
}
@@ -113,7 +114,7 @@ void SceneManager::sceneChange() {
assert(_objectCount == _saver->getObjectCount());
}
_objectCount = _saver->getObjectCount();
- _globals->_sceneHandler._delayTicks = 2;
+ _globals->_sceneHandler->_delayTicks = 2;
// Instantiate and set the new scene
_scene = getNewScene();
@@ -146,7 +147,7 @@ void SceneManager::fadeInIfNecessary() {
}
void SceneManager::changeScene(int newSceneNumber) {
- warning("changeScene(%d)", newSceneNumber);
+ debug(1, "changeScene(%d)", newSceneNumber);
// Fade out the scene
ScenePalette scenePalette;
uint32 adjustData = 0;
@@ -173,6 +174,11 @@ void SceneManager::changeScene(int newSceneNumber) {
// Blank out the screen
_globals->_screenSurface.fillRect(_globals->_screenSurface.getBounds(), 0);
+ // If there are any fading sounds, wait until fading is complete
+ while (_globals->_soundManager.isFading()) {
+ g_system->delayMillis(10);
+ }
+
// Set the new scene to be loaded
setNewScene(newSceneNumber);
}
@@ -252,6 +258,7 @@ void SceneManager::listenerSynchronize(Serializer &s) {
Scene::Scene() : _sceneBounds(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT),
_backgroundBounds(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT) {
_sceneMode = 0;
+ _activeScreenNumber = 0;
_oldSceneBounds = Rect(4000, 4000, 4100, 4100);
Common::set_to(&_zoomPercents[0], &_zoomPercents[256], 0);
}
@@ -296,7 +303,7 @@ void Scene::dispatch() {
}
void Scene::loadScene(int sceneNum) {
- warning("loadScene(%d)", sceneNum);
+ debug(1, "loadScene(%d)", sceneNum);
_screenNumber = sceneNum;
if (_globals->_scenePalette.loadPalette(sceneNum))
_globals->_sceneManager._hasPalette = true;
@@ -419,6 +426,11 @@ void Scene::refreshBackground(int xAmount, int yAmount) {
(xSectionSrc + 1) * 160, (ySectionSrc + 1) * 100);
Rect destBounds(xSectionDest * 160, ySectionDest * 100,
(xSectionDest + 1) * 160, (ySectionDest + 1) * 100);
+ if (_vm->getGameID() == GType_BlueForce) {
+ // For Blue Force, if the scene has an interface area, exclude it from the copy
+ srcBounds.bottom = MIN<int16>(srcBounds.bottom, BF_GLOBALS._interfaceY);
+ destBounds.bottom = MIN<int16>(destBounds.bottom, BF_GLOBALS._interfaceY);
+ }
_backSurface.copyFrom(_backSurface, srcBounds, destBounds);
}
@@ -511,7 +523,7 @@ void Game::execute() {
activeFlag = true;
}
}
- } while (activeFlag && !_vm->getEventManager()->shouldQuit());
+ } while (activeFlag && !_vm->shouldQuit());
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/scenes.h b/engines/tsage/scenes.h
index 5845efaec9..7e8c26f912 100644
--- a/engines/tsage/scenes.h
+++ b/engines/tsage/scenes.h
@@ -29,7 +29,7 @@
#include "tsage/core.h"
#include "tsage/saveload.h"
-namespace tSage {
+namespace TsAGE {
class Scene : public StripCallback {
private:
@@ -134,6 +134,6 @@ public:
virtual void processEvent(Event &event) {}
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/sound.cpp b/engines/tsage/sound.cpp
index e26b3d1544..0b77628801 100644
--- a/engines/tsage/sound.cpp
+++ b/engines/tsage/sound.cpp
@@ -20,6 +20,7 @@
*
*/
+#include "audio/decoders/raw.h"
#include "common/config-manager.h"
#include "tsage/core.h"
#include "tsage/globals.h"
@@ -27,7 +28,7 @@
#include "tsage/graphics.h"
#include "tsage/tsage.h"
-namespace tSage {
+namespace TsAGE {
static SoundManager *_soundManager = NULL;
@@ -53,6 +54,7 @@ SoundManager::SoundManager() {
SoundManager::~SoundManager() {
if (__sndmgrReady) {
Common::StackLock slock(_serverDisabledMutex);
+ _vm->_mixer->stopAll();
for (Common::List<Sound *>::iterator i = _soundList.begin(); i != _soundList.end(); ) {
Sound *s = *i;
@@ -66,7 +68,15 @@ SoundManager::~SoundManager() {
}
_sfTerminate();
- g_system->getTimerManager()->removeTimerProc(_sfUpdateCallback);
+// g_system->getTimerManager()->removeTimerProc(_sfUpdateCallback);
+ }
+
+ // Free any allocated voice type structures
+ for (int idx = 0; idx < SOUND_ARR_SIZE; ++idx) {
+ if (sfManager()._voiceTypeStructPtrs[idx]) {
+ delete sfManager()._voiceTypeStructPtrs[idx];
+ sfManager()._voiceTypeStructPtrs[idx] = NULL;
+ }
}
_soundManager = NULL;
@@ -78,9 +88,12 @@ void SoundManager::postInit() {
_saver->addLoadNotifier(&SoundManager::loadNotifier);
_saver->addListener(this);
- // Install a timer for handling sound manager updates at 60Hz
- g_system->getTimerManager()->installTimerProc(_sfUpdateCallback, 1000000 / GAME_FRAME_RATE, NULL);
+// I originally separated the sound manager update method into a separate thread, since
+// it handles updates for both music and Fx. However, since Adlib updates also get done in a
+// thread, and doesn't get too far ahead, I've left it to the AdlibSoundDriver class to
+// call the update method, rather than having it be called separately
+// g_system->getTimerManager()->installTimerProc(_sfUpdateCallback, 1000000 / SOUND_FREQUENCY, NULL, "tsageSoundUpdate");
__sndmgrReady = true;
}
}
@@ -155,9 +168,7 @@ Common::List<SoundDriverEntry> &SoundManager::buildDriverList(bool detectFlag) {
void SoundManager::installConfigDrivers() {
installDriver(ADLIB_DRIVER_NUM);
-#ifdef DEBUG
installDriver(SBLASTER_DRIVER_NUM);
-#endif
}
Common::List<SoundDriverEntry> &SoundManager::getDriverList(bool detectFlag) {
@@ -226,7 +237,7 @@ SoundDriver *SoundManager::instantiateDriver(int driverNum) {
case ADLIB_DRIVER_NUM:
return new AdlibSoundDriver();
case SBLASTER_DRIVER_NUM:
- return new AdlibFxSoundDriver();
+ return new SoundBlasterDriver();
default:
error("Unknown sound driver - %d", driverNum);
}
@@ -357,9 +368,6 @@ void SoundManager::rethinkVoiceTypes() {
}
void SoundManager::_sfSoundServer() {
- Common::StackLock slock1(sfManager()._serverDisabledMutex);
- Common::StackLock slock2(sfManager()._serverSuspendedMutex);
-
if (sfManager()._needToRethink) {
_sfRethinkVoiceTypes();
sfManager()._needToRethink = false;
@@ -451,6 +459,22 @@ void SoundManager::_sfProcessFading() {
}
}
+bool SoundManager::isFading() {
+ Common::StackLock slock(sfManager()._serverSuspendedMutex);
+
+ // Loop through any active sounds to see if any are being actively faded
+ Common::List<Sound *>::iterator i = sfManager()._playList.begin();
+ while (i != sfManager()._playList.end()) {
+ Sound *s = *i;
+ ++i;
+
+ if (s->_fadeDest != -1)
+ return true;
+ }
+
+ return false;
+}
+
void SoundManager::_sfUpdateVoiceStructs() {
for (int voiceIndex = 0; voiceIndex < SOUND_ARR_SIZE; ++voiceIndex) {
VoiceTypeStruct *vs = sfManager()._voiceTypeStructPtrs[voiceIndex];
@@ -1341,7 +1365,7 @@ bool SoundManager::_sfInstallDriver(SoundDriver *driver) {
sfManager()._installedDrivers.push_back(driver);
driver->_groupOffset = driver->getGroupData();
- driver->_groupMask = READ_LE_UINT32(driver->_groupOffset);
+ driver->_groupMask = driver->_groupOffset->groupMask;
_sfExtractGroupMask();
_sfRethinkSoundDrivers();
@@ -1967,9 +1991,9 @@ void Sound::_soServiceTrackType0(int trackIndex, const byte *channelData) {
if (channelNum != -1) {
if (voiceType != VOICETYPE_0) {
if (chFlags & 0x10)
- _soProc42(vtStruct, channelNum, chVoiceType, v);
+ _soPlaySound2(vtStruct, channelData, channelNum, chVoiceType, v);
else
- _soProc32(vtStruct, channelNum, chVoiceType, v, b);
+ _soPlaySound(vtStruct, channelData, channelNum, chVoiceType, v, b);
} else if (voiceNum != -1) {
assert(driver);
driver->proc20(voiceNum, chVoiceType);
@@ -2137,7 +2161,7 @@ void Sound::_soUpdateDamper(VoiceTypeStruct *voiceType, int channelNum, VoiceTyp
}
}
-void Sound::_soProc32(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voiceType, int v0, int v1) {
+void Sound::_soPlaySound(VoiceTypeStruct *vtStruct, const byte *channelData, int channelNum, VoiceType voiceType, int v0, int v1) {
int entryIndex = _soFindSound(vtStruct, channelNum);
if (entryIndex != -1) {
SoundDriver *driver = vtStruct->_entries[entryIndex]._driver;
@@ -2147,11 +2171,11 @@ void Sound::_soProc32(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voice
vtStruct->_entries[entryIndex]._type1._field4 = v0;
vtStruct->_entries[entryIndex]._type1._field5 = 0;
- driver->proc32(this, vtStruct->_entries[entryIndex]._voiceNum, _chProgram[channelNum], v0, v1);
+ driver->playSound(channelData, 0, _chProgram[channelNum], vtStruct->_entries[entryIndex]._voiceNum, v0, v1);
}
}
-void Sound::_soProc42(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voiceType, int v0) {
+void Sound::_soPlaySound2(VoiceTypeStruct *vtStruct, const byte *channelData, int channelNum, VoiceType voiceType, int v0) {
for (int trackCtr = 0; trackCtr < _trackInfo._numTracks; ++trackCtr) {
const byte *instrument = _channelData[trackCtr];
if ((*(instrument + 13) == v0) && (*instrument == 1)) {
@@ -2160,13 +2184,14 @@ void Sound::_soProc42(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voice
if (entryIndex != -1) {
SoundDriver *driver = vtStruct->_entries[entryIndex]._driver;
assert(driver);
+ byte *trackData = _channelData[trackCtr];
vtStruct->_entries[entryIndex]._type1._field6 = 0;
vtStruct->_entries[entryIndex]._type1._field4 = v0;
vtStruct->_entries[entryIndex]._type1._field5 = 0;
int v1, v2;
- driver->proc32(this, vtStruct->_entries[entryIndex]._voiceNum, -1, v0, 0x7F);
+ driver->playSound(trackData, 14, -1, vtStruct->_entries[entryIndex]._voiceNum, v0, 0x7F);
driver->proc42(vtStruct->_entries[entryIndex]._voiceNum, voiceType, 0, &v1, &v2);
}
break;
@@ -2295,24 +2320,26 @@ void Sound::_soServiceTrackType1(int trackIndex, const byte *channelData) {
vtStruct->_entries[entryIndex]._type1._field5 = 0;
int v1, v2;
- driver->proc32(this, vtStruct->_entries[entryIndex]._voiceNum, -1, *(channelData + 1), 0x7f);
+ driver->playSound(channelData, 14, -1, vtStruct->_entries[entryIndex]._voiceNum, *(channelData + 1), 0x7f);
driver->proc42(vtStruct->_entries[entryIndex]._voiceNum, *(channelData + 1), _loop ? 1 : 0,
&v1, &v2);
+ _trkState[trackIndex] = 2;
}
} else {
for (uint entryIndex = 0; entryIndex < vtStruct->_entries.size(); ++entryIndex) {
VoiceStructEntry &vte = vtStruct->_entries[entryIndex];
VoiceStructEntryType1 &vse = vte._type1;
- if ((vse._sound == this) && (vse._channelNum == channel) && (vse._field4 == vtStruct->_total)) {
+ if ((vse._sound == this) && (vse._channelNum == channel) && (vse._field4 == *(channelData + 1))) {
SoundDriver *driver = vte._driver;
- int v1, v2;
- driver->proc42(vte._voiceNum, vtStruct->_total, _loop ? 1 : 0, &v1, &v2);
- if (v2) {
+ int isEnded, resetTimer;
+ driver->proc42(vte._voiceNum, vtStruct->_total, _loop ? 1 : 0, &isEnded, &resetTimer);
+ if (isEnded) {
_trkState[trackIndex] = 0;
- } else if (vtStruct->_total) {
+ } else if (resetTimer) {
_timer = 0;
}
+ return;
}
}
@@ -2436,6 +2463,31 @@ void ASound::fade(int fadeDest, int fadeSteps, int fadeTicks, bool stopAfterFade
_sound.fade(fadeDest, fadeSteps, fadeTicks, stopAfterFadeFlag);
}
+void ASound::fadeSound(int soundNum) {
+ play(soundNum, NULL, 0);
+ fade(127, 5, 1, false, NULL);
+}
+
+/*--------------------------------------------------------------------------*/
+
+ASoundExt::ASoundExt(): ASound() {
+ _soundNum = 0;
+}
+
+void ASoundExt::synchronize(Serializer &s) {
+ ASound::synchronize(s);
+ s.syncAsSint16LE(_soundNum);
+}
+
+void ASoundExt::signal() {
+ if (_soundNum != 0) {
+ fadeSound(_soundNum);
+ }
+}
+
+void ASoundExt::fadeOut2(Action *action) {
+ fade(0, 10, 10, true, action);
+}
/*--------------------------------------------------------------------------*/
@@ -2488,7 +2540,12 @@ AdlibSoundDriver::AdlibSoundDriver(): SoundDriver() {
_opl = OPL::Config::create();
assert(_opl);
_opl->init(_sampleRate);
-
+
+ _samplesTillCallback = 0;
+ _samplesTillCallbackRemainder = 0;
+ _samplesPerCallback = getRate() / CALLBACKS_PER_SECOND;
+ _samplesPerCallbackRemainder = getRate() % CALLBACKS_PER_SECOND;
+
_mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
Common::set_to(_channelVoiced, _channelVoiced + ADLIB_CHANNEL_COUNT, false);
@@ -2558,7 +2615,7 @@ int AdlibSoundDriver::setMasterVolume(int volume) {
return oldVolume;
}
-void AdlibSoundDriver::proc32(Sound *sound, int channel, int program, int v0, int v1) {
+void AdlibSoundDriver::playSound(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1) {
if (program == -1)
return;
@@ -2750,34 +2807,38 @@ void AdlibSoundDriver::setFrequency(int channel) {
}
int AdlibSoundDriver::readBuffer(int16 *buffer, const int numSamples) {
- update(buffer, numSamples);
- return numSamples;
-}
-
-void AdlibSoundDriver::update(int16 *buf, int len) {
- static int samplesLeft = 0;
- while (len != 0) {
- int count = samplesLeft;
- if (count > len) {
- count = len;
- }
- samplesLeft -= count;
- len -= count;
- _opl->readBuffer(buf, count);
- if (samplesLeft == 0) {
+ Common::StackLock slock1(SoundManager::sfManager()._serverDisabledMutex);
+ Common::StackLock slock2(SoundManager::sfManager()._serverSuspendedMutex);
+
+ int32 samplesLeft = numSamples;
+ memset(buffer, 0, sizeof(int16) * numSamples);
+ while (samplesLeft) {
+ if (!_samplesTillCallback) {
+ SoundManager::_sfUpdateCallback(NULL);
flush();
- samplesLeft = _sampleRate / 50;
+
+ _samplesTillCallback = _samplesPerCallback;
+ _samplesTillCallbackRemainder += _samplesPerCallbackRemainder;
+ if (_samplesTillCallbackRemainder >= CALLBACKS_PER_SECOND) {
+ _samplesTillCallback++;
+ _samplesTillCallbackRemainder -= CALLBACKS_PER_SECOND;
+ }
}
- buf += count;
+
+ int32 render = MIN<int>(samplesLeft, _samplesTillCallback);
+ samplesLeft -= render;
+ _samplesTillCallback -= render;
+
+ _opl->readBuffer(buffer, render);
+ buffer += render;
}
+ return numSamples;
}
/*--------------------------------------------------------------------------*/
-const byte adlibFx_group_data[] = { 3, 1, 1, 0, 0xff };
-
-AdlibFxSoundDriver::AdlibFxSoundDriver(): SoundDriver() {
+SoundBlasterDriver::SoundBlasterDriver(): SoundDriver() {
_minVersion = 0x102;
_maxVersion = 0x10A;
_masterVolume = 0;
@@ -2785,167 +2846,99 @@ AdlibFxSoundDriver::AdlibFxSoundDriver(): SoundDriver() {
_groupData.groupMask = 1;
_groupData.v1 = 0x3E;
_groupData.v2 = 0;
- _groupData.pData = &adlib_group_data[0];
+ static byte const group_data[] = { 3, 1, 1, 0, 0xff };
+ _groupData.pData = group_data;
_mixer = _vm->_mixer;
_sampleRate = _mixer->getOutputRate();
- _mixer->playStream(Audio::Mixer::kPlainSoundType, &_soundHandle, this, -1, Audio::Mixer::kMaxChannelVolume, 0, DisposeAfterUse::NO, true);
-/*
- Common::set_to(_channelVoiced, _channelVoiced + ADLIB_CHANNEL_COUNT, false);
- memset(_channelVolume, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- memset(_v4405E, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- memset(_v44067, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- memset(_v44070, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- memset(_v44079, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- memset(_v44082, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- _v44082[ADLIB_CHANNEL_COUNT] = 0x90;
- Common::set_to(_pitchBlend, _pitchBlend + ADLIB_CHANNEL_COUNT, 0x2000);
- memset(_v4409E, 0, ADLIB_CHANNEL_COUNT * sizeof(int));
- _patchData = NULL;
-*/
+ _audioStream = NULL;
+ _channelData = NULL;
}
-AdlibFxSoundDriver::~AdlibFxSoundDriver() {
+SoundBlasterDriver::~SoundBlasterDriver() {
_mixer->stopHandle(_soundHandle);
}
-bool AdlibFxSoundDriver::open() {
- write209();
- write(64);
- write(165);
-
- // for (int idx = 0; idx < 5000 * 16; ++idx) al = port[21h]
-
-// _v45071 = 1;
-// _v4506F = 0;
-
+bool SoundBlasterDriver::open() {
return true;
}
-void AdlibFxSoundDriver::close() {
- write(208);
- write211();
-
+void SoundBlasterDriver::close() {
}
-bool AdlibFxSoundDriver::reset() {
-
+bool SoundBlasterDriver::reset() {
return true;
}
-const GroupData *AdlibFxSoundDriver::getGroupData() {
+const GroupData *SoundBlasterDriver::getGroupData() {
return &_groupData;
}
-void AdlibFxSoundDriver::poll() {
- if (!_masterVolume || !_channelVolume) {
- if (_v45046)
- write211();
- } else {
- if (!_v45046)
- write209();
- }
-}
-
-int AdlibFxSoundDriver::setMasterVolume(int volume) {
+int SoundBlasterDriver::setMasterVolume(int volume) {
int oldVolume = _masterVolume;
_masterVolume = volume;
return oldVolume;
}
-void AdlibFxSoundDriver::proc32(Sound *sound, int channel, int program, int v0, int v1) {
- if (program == -1)
+void SoundBlasterDriver::playSound(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1) {
+ if (program != -1)
return;
- if (_sound)
+ assert(channel == 0);
+
+ // If sound data has been previously set, then release it
+ if (_channelData)
updateVoice(channel);
- // TODO: Stuff
+ // Set the new channel data
+ _channelData = channelData + dataOffset;
+ // Make a copy of the buffer
+ int dataSize = _vm->_memoryManager.getSize(channelData);
+ byte *soundData = (byte *)malloc(dataSize - dataOffset);
+ Common::copy(_channelData, _channelData + (dataSize - dataOffset), soundData);
+ _audioStream = Audio::makeQueuingAudioStream(11025, false);
+ _audioStream->queueBuffer(soundData, dataSize - dataOffset, DisposeAfterUse::YES, Audio::FLAG_UNSIGNED);
+ // Start the new sound
+ if (!_mixer->isSoundHandleActive(_soundHandle))
+ _mixer->playStream(Audio::Mixer::kSFXSoundType, &_soundHandle, _audioStream);
}
-void AdlibFxSoundDriver::updateVoice(int channel) {
- if (_sound) {
- write(208);
+void SoundBlasterDriver::updateVoice(int channel) {
+ // Stop the playing voice
+ if (_mixer->isSoundHandleActive(_soundHandle))
+ _mixer->stopHandle(_soundHandle);
- _sound = NULL;
- _v45062 = 0;
- _v45066 = 0;
- _v45068 = 0;
- }
+ _audioStream = NULL;
+ _channelData = NULL;
}
-void AdlibFxSoundDriver::proc38(int channel, int cmd, int value) {
+void SoundBlasterDriver::proc38(int channel, int cmd, int value) {
if (cmd == 7) {
// Set channel volume
_channelVolume = value;
+ _mixer->setChannelVolume(_soundHandle, (byte)MIN(255, value * 2));
}
}
-void AdlibFxSoundDriver::proc42(int channel, int cmd, int value, int *v1, int *v2) {
- _v4506A = value;
- *v1 = _v4506B;
+void SoundBlasterDriver::proc42(int channel, int cmd, int value, int *v1, int *v2) {
+ // TODO: v2 is used for flagging a reset of the timer. I'm not sure if it's needed
+ *v1 = 0;
*v2 = 0;
- _v4506B = 0;
-
- if (!_sound)
- *v2 = 1;
-}
-
-void AdlibFxSoundDriver::write(int v) {
- /*
- port[adlib_port + 12] = v;
- for (int i = 0; i < 100; ++i) {
- if (!port[adlib_port + 12] & 0x80)
- break;
- }
- */
-}
-
-void AdlibFxSoundDriver::flush() {
- Common::StackLock slock(SoundManager::sfManager()._serverDisabledMutex);
-
- // No data output yet
-}
-
-
-int AdlibFxSoundDriver::readBuffer(int16 *buffer, const int numSamples) {
- update(buffer, numSamples);
- return numSamples;
-}
-
-void AdlibFxSoundDriver::update(int16 *buf, int len) {
-/*
- static int samplesLeft = 0;
- while (len != 0) {
- int count = samplesLeft;
- if (count > len) {
- count = len;
- }
- samplesLeft -= count;
- len -= count;
- YM3812UpdateOne(_opl, buf, count);
- if (samplesLeft == 0) {
- flush();
- samplesLeft = _sampleRate / 50;
- }
- buf += count;
+ // Note: Checking whether a playing Fx sound had finished was originally done in another
+ // method in the sample playing code. But since we're using the ScummVM audio soundsystem,
+ // it's easier simply to do the check right here
+ if (_audioStream && (_audioStream->numQueuedStreams() == 0)) {
+ updateVoice(channel);
}
-*/
-}
-
-void AdlibFxSoundDriver::write209() {
- write(209);
- _v45046 = true;
-}
-void AdlibFxSoundDriver::write211() {
- write(211);
- _v45046 = false;
+ if (!_channelData)
+ // Flag that sound isn't playing
+ *v1 = 1;
}
-} // End of namespace tSage
+} // End of namespace TsAGE
diff --git a/engines/tsage/sound.h b/engines/tsage/sound.h
index 6a47a1aaf5..afcc8f6377 100644
--- a/engines/tsage/sound.h
+++ b/engines/tsage/sound.h
@@ -33,7 +33,7 @@
#include "tsage/saveload.h"
#include "tsage/core.h"
-namespace tSage {
+namespace TsAGE {
class Sound;
@@ -41,6 +41,7 @@ class Sound;
#define ROLAND_DRIVER_NUM 2
#define ADLIB_DRIVER_NUM 3
#define SBLASTER_DRIVER_NUM 4
+#define CALLBACKS_PER_SECOND 60
struct trackInfoStruct {
int _numTracks;
@@ -107,7 +108,7 @@ public:
virtual void setProgram(int channel, int program) {} // Method #13
virtual void setVolume1(int channel, int v2, int v3, int volume) {}
virtual void setPitchBlend(int channel, int pitchBlend) {} // Method #15
- virtual void proc32(Sound *sound, int channel, int program, int v0, int v1) {}// Method #16
+ virtual void playSound(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1) {}// Method #16
virtual void updateVoice(int channel) {} // Method #17
virtual void proc36() {} // Method #18
virtual void proc38(int channel, int cmd, int value) {} // Method #19
@@ -224,6 +225,7 @@ public:
int getMasterVol() const;
void loadSound(int soundNum, bool showErrors);
void unloadSound(int soundNum);
+ bool isFading();
// _sf methods
static SoundManager &sfManager();
@@ -348,8 +350,8 @@ public:
void _soRemoteReceive();
void _soServiceTrackType0(int trackIndex, const byte *channelData);
void _soUpdateDamper(VoiceTypeStruct *voiceType, int channelNum, VoiceType mode, int v0);
- void _soProc32(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voiceType, int v0, int v1);
- void _soProc42(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voiceType, int v0);
+ void _soPlaySound(VoiceTypeStruct *vtStruct, const byte *channelData, int channelNum, VoiceType voiceType, int v0, int v1);
+ void _soPlaySound2(VoiceTypeStruct *vtStruct, const byte *channelData, int channelNum, VoiceType voiceType, int v0);
void _soProc38(VoiceTypeStruct *vtStruct, int channelNum, VoiceType voiceType, int cmd, int value);
void _soProc40(VoiceTypeStruct *vtStruct, int channelNum, int pitchBlend);
void _soDoTrackCommand(int channelNum, int command, int value);
@@ -396,8 +398,22 @@ public:
int getVol() const { return _sound.getVol(); }
void holdAt(int v) { _sound.holdAt(v); }
void release() { _sound.release(); }
+ void fadeSound(int soundNum);
};
+class ASoundExt: public ASound {
+public:
+ int _soundNum;
+
+ ASoundExt();
+ void fadeOut2(Action *action);
+
+ virtual Common::String getClassName() { return "ASoundExt"; }
+ virtual void synchronize(Serializer &s);
+ virtual void signal();
+};
+
+
#define ADLIB_CHANNEL_COUNT 9
class AdlibSoundDriver: public SoundDriver, Audio::AudioStream {
@@ -411,6 +427,10 @@ private:
const byte *_patchData;
int _masterVolume;
Common::Queue<RegisterValue> _queue;
+ int _samplesTillCallback;
+ int _samplesTillCallbackRemainder;
+ int _samplesPerCallback;
+ int _samplesPerCallbackRemainder;
bool _channelVoiced[ADLIB_CHANNEL_COUNT];
int _channelVolume[ADLIB_CHANNEL_COUNT];
@@ -440,7 +460,7 @@ public:
virtual const GroupData *getGroupData();
virtual void installPatch(const byte *data, int size);
virtual int setMasterVolume(int volume);
- virtual void proc32(Sound *sound, int channel, int program, int v0, int v1);
+ virtual void playSound(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1);
virtual void updateVoice(int channel);
virtual void proc38(int channel, int cmd, int value);
virtual void setPitch(int channel, int pitchBlend);
@@ -454,54 +474,33 @@ public:
void update(int16 *buf, int len);
};
-class AdlibFxSoundDriver: public SoundDriver, Audio::AudioStream {
+class SoundBlasterDriver: public SoundDriver {
private:
- Common::Queue<RegisterValue> _queue;
GroupData _groupData;
Audio::Mixer *_mixer;
Audio::SoundHandle _soundHandle;
+ Audio::QueuingAudioStream *_audioStream;
int _sampleRate;
- int _v45062;
- int _v45066;
- int _v45068;
- int _v4506A;
- int _v4506B;
- bool _v45046;
byte _masterVolume;
byte _channelVolume;
- Sound *_sound;
-
- void write(int v);
- void flush();
- void sub_4556E();
- void write209();
- void write211();
+ const byte *_channelData;
public:
- AdlibFxSoundDriver();
- virtual ~AdlibFxSoundDriver();
+ SoundBlasterDriver();
+ virtual ~SoundBlasterDriver();
virtual bool open();
virtual void close();
virtual bool reset();
virtual const GroupData *getGroupData();
- virtual void poll();
virtual int setMasterVolume(int volume);
- virtual void proc32(Sound *sound, int channel, int program, int v0, int v1);
+ virtual void playSound(const byte *channelData, int dataOffset, int program, int channel, int v0, int v1);
virtual void updateVoice(int channel);
virtual void proc38(int channel, int cmd, int value);
virtual void proc42(int channel, int cmd, int value, int *v1, int *v2);
-
- // AudioStream interface
- virtual int readBuffer(int16 *buffer, const int numSamples);
- virtual bool isStereo() const { return false; }
- virtual bool endOfData() const { return false; }
- virtual int getRate() const { return _sampleRate; }
-
- void update(int16 *buf, int len);
};
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/staticres.cpp b/engines/tsage/staticres.cpp
index 9f36268ce3..819cf56f31 100644
--- a/engines/tsage/staticres.cpp
+++ b/engines/tsage/staticres.cpp
@@ -22,7 +22,7 @@
#include "tsage/staticres.h"
-namespace tSage {
+namespace TsAGE {
const byte CURSOR_ARROW_DATA[] = {
15, 0, 15, 0, 0, 0, 0, 0, 9, 0,
@@ -73,7 +73,6 @@ const char *SAVE_ERROR_MSG = "Error occurred saving game. Please do not try to r
const char *SAVING_NOT_ALLOWED_MSG = "Saving is not allowed at this time.";
const char *RESTORING_NOT_ALLOWED_MSG = "Restoring is not allowed at this time.";
const char *RESTART_CONFIRM_MSG = "Do you want to restart your game?";
-const char *WATCH_INTRO_MSG = "Do you wish to watch the introduction?";
const char *INV_EMPTY_MSG = "You have nothing in your possesion.";
const char *HELP_MSG = "Ringworld\rRevenge of the Patriarch\x14\rScummVM Version\r\r\
@@ -93,9 +92,16 @@ const char *SOUND_BTN_STRING = "Sound";
const char *RESUME_BTN_STRING = " Resume \rplay";
const char *LOOK_BTN_STRING = "Look";
const char *PICK_BTN_STRING = "Pick";
+
+
+namespace Ringworld {
+
+// Dialog resources
+const char *WATCH_INTRO_MSG = "Do you wish to watch the introduction?";
const char *START_PLAY_BTN_STRING = " Start Play ";
const char *INTRODUCTION_BTN_STRING = "Introduction";
+// Scene specific resources
const char *EXIT_MSG = " EXIT ";
const char *SCENE6100_CAREFUL = "Be careful! The probe cannot handle too much of that.";
const char *SCENE6100_TOUGHER = "Hey! This is tougher than it looks!";
@@ -118,4 +124,37 @@ const char *EXIT_BTN_STRING = "Exit";
const char *DEMO_BTN_STRING = "Demo";
const char *DEMO_RESUME_BTN_STRING = "Resume";
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+namespace BlueForce {
+
+// Dialog resources
+const char *WATCH_INTRO_MSG = "Do you wish to watch the introduction?";
+const char *START_PLAY_BTN_STRING = " Play ";
+const char *INTRODUCTION_BTN_STRING = " Watch ";
+
+// Blue Force general messages
+const char *BF_NAME = "Blue Force";
+const char *BF_COPYRIGHT = " Copyright, 1993 Tsunami Media, Inc.";
+const char *BF_ALL_RIGHTS_RESERVED = "All Rights Reserved";
+const char *BF_19840518 = "May 18, 1984";
+const char *BF_19840515 = "May 15, 1984";
+const char *BF_3_DAYS = "Three days later";
+const char *BF_11_YEARS = "Eleven years later.";
+const char *BF_NEXT_DAY = "The Next Day";
+const char *BF_ACADEMY = "Here we are at the Academy";
+
+// Scene 50 hotspots
+const char *GRANDMA_FRANNIE = "Grandma Frannie";
+const char *MARINA = "Marina";
+const char *POLICE_DEPARTMENT = "Police Department";
+const char *TONYS_BAR = "Tony's Bar";
+const char *CHILD_PROTECTIVE_SERVICES = "Child Protective Services";
+const char *ALLEY_CAT = "Alley Cat";
+const char *CITY_HALL_JAIL = "City Hall & Jail";
+const char *JAMISON_RYAN = "Jamison & Ryan";
+const char *BIKINI_HUT = "Bikini Hut";
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/staticres.h b/engines/tsage/staticres.h
index fa93511779..b08e92def2 100644
--- a/engines/tsage/staticres.h
+++ b/engines/tsage/staticres.h
@@ -25,7 +25,7 @@
#include "common/scummsys.h"
-namespace tSage {
+namespace TsAGE {
extern const byte CURSOR_ARROW_DATA[];
@@ -40,7 +40,6 @@ extern const char *SAVE_ERROR_MSG;
extern const char *SAVING_NOT_ALLOWED_MSG;
extern const char *RESTORING_NOT_ALLOWED_MSG;
extern const char *RESTART_CONFIRM_MSG;
-extern const char *WATCH_INTRO_MSG;
// Dialogs
extern const char *HELP_MSG;
@@ -59,6 +58,11 @@ extern const char *RESUME_BTN_STRING;
extern const char *LOOK_BTN_STRING;
extern const char *PICK_BTN_STRING;
extern const char *INV_EMPTY_MSG;
+
+namespace Ringworld {
+
+// Dialog resources
+extern const char *WATCH_INTRO_MSG;
extern const char *START_PLAY_BTN_STRING;
extern const char *INTRODUCTION_BTN_STRING;
@@ -86,6 +90,39 @@ extern const char *EXIT_BTN_STRING;
extern const char *DEMO_BTN_STRING;
extern const char *DEMO_RESUME_BTN_STRING;
-} // End of namespace tSage
+} // End of namespace Ringworld
+
+namespace BlueForce {
+
+// Dialog resources
+extern const char *WATCH_INTRO_MSG;
+extern const char *START_PLAY_BTN_STRING;
+extern const char *INTRODUCTION_BTN_STRING;
+
+// Blue Force messages
+extern const char *BF_NAME;
+extern const char *BF_COPYRIGHT;
+extern const char *BF_ALL_RIGHTS_RESERVED;
+extern const char *BF_19840518;
+extern const char *BF_19840515;
+extern const char *BF_3_DAYS;
+extern const char *BF_11_YEARS;
+extern const char *BF_NEXT_DAY;
+extern const char *BF_ACADEMY;
+
+// Scene 50 tooltips
+extern const char *GRANDMA_FRANNIE;
+extern const char *MARINA;
+extern const char *POLICE_DEPARTMENT;
+extern const char *TONYS_BAR;
+extern const char *CHILD_PROTECTIVE_SERVICES;
+extern const char *ALLEY_CAT;
+extern const char *CITY_HALL_JAIL;
+extern const char *JAMISON_RYAN;
+extern const char *BIKINI_HUT;
+
+} // End of namespace BlueForce
+
+} // End of namespace TsAGE
#endif
diff --git a/engines/tsage/tsage.cpp b/engines/tsage/tsage.cpp
index 41f3d58897..2fcabff16c 100644
--- a/engines/tsage/tsage.cpp
+++ b/engines/tsage/tsage.cpp
@@ -30,7 +30,7 @@
#include "tsage/resources.h"
#include "tsage/globals.h"
-namespace tSage {
+namespace TsAGE {
TSageEngine *_vm = NULL;
@@ -68,18 +68,22 @@ void TSageEngine::initialize() {
if (_vm->getFeatures() & GF_DEMO) {
// Add the single library file associated with the demo
_resourceManager->addLib(getPrimaryFilename());
+ _globals = new Globals();
+
} else if (_vm->getGameID() == GType_Ringworld) {
_resourceManager->addLib("RING.RLB");
_resourceManager->addLib("TSAGE.RLB");
+ _globals = new Globals();
+
} else if (_vm->getGameID() == GType_BlueForce) {
_resourceManager->addLib("BLUE.RLB");
if (_vm->getFeatures() & GF_FLOPPY) {
_resourceManager->addLib("FILES.RLB");
_resourceManager->addLib("TSAGE.RLB");
}
+ _globals = new BlueForce::BlueForceGlobals();
}
- _globals = new Globals();
_globals->gfxManager().setDefaults();
// Setup sound settings
@@ -98,7 +102,7 @@ Common::Error TSageEngine::run() {
// Basic initialisation
initialize();
- _globals->_sceneHandler.registerHandler();
+ _globals->_sceneHandler->registerHandler();
_globals->_game->execute();
deinitialize();
@@ -147,4 +151,8 @@ void TSageEngine::syncSoundSettings() {
_globals->_soundManager.syncSounds();
}
-} // End of namespace tSage
+bool TSageEngine::shouldQuit() {
+ return getEventManager()->shouldQuit() || getEventManager()->shouldRTL();
+}
+
+} // End of namespace TsAGE
diff --git a/engines/tsage/tsage.h b/engines/tsage/tsage.h
index f004c7f625..88175f92ce 100644
--- a/engines/tsage/tsage.h
+++ b/engines/tsage/tsage.h
@@ -36,7 +36,7 @@
#include "tsage/resources.h"
-namespace tSage {
+namespace TsAGE {
enum {
GType_Ringworld = 0,
@@ -78,6 +78,7 @@ public:
uint32 getGameID() const;
uint32 getFeatures() const;
Common::String getPrimaryFilename() const;
+ bool shouldQuit();
virtual Common::Error init();
virtual Common::Error run();
@@ -98,6 +99,6 @@ extern TSageEngine *_vm;
#define ALLOCATE(x) _vm->_memoryManager.allocate2(x)
#define DEALLOCATE(x) _vm->_memoryManager.deallocate(x)
-} // End of namespace tSage
+} // End of namespace TsAGE
#endif
diff --git a/graphics/cursor.h b/graphics/cursor.h
new file mode 100644
index 0000000000..b04d9c04e2
--- /dev/null
+++ b/graphics/cursor.h
@@ -0,0 +1,63 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef GRAPHICS_CURSOR_H
+#define GRAPHICS_CURSOR_H
+
+#include "common/scummsys.h"
+
+namespace Graphics {
+
+/**
+ * A simple cursor representation
+ * TODO: Switch to using Graphics::Surface instead of a byte*
+ */
+class Cursor {
+public:
+ Cursor() {}
+ virtual ~Cursor() {}
+
+ /** Return the cursor's width. */
+ virtual uint16 getWidth() const = 0;
+ /** Return the cursor's height. */
+ virtual uint16 getHeight() const = 0;
+ /** Return the cursor's hotspot's x coordinate. */
+ virtual uint16 getHotspotX() const = 0;
+ /** Return the cursor's hotspot's y coordinate. */
+ virtual uint16 getHotspotY() const = 0;
+ /** Return the cursor's transparent key. */
+ virtual byte getKeyColor() const = 0;
+
+ /** Return the cursor's surface. */
+ virtual const byte *getSurface() const = 0;
+
+ /** Return the cursor's palette in RGB format. */
+ virtual const byte *getPalette() const = 0;
+ /** Return the starting index of the palette. */
+ virtual byte getPaletteStartIndex() const = 0;
+ /** Return the number of colors in the palette. */
+ virtual uint16 getPaletteCount() const = 0;
+};
+
+} // End of namespace Graphics
+
+#endif
diff --git a/graphics/fontman.cpp b/graphics/fontman.cpp
index e59e5a33c5..a10d27a2b0 100644
--- a/graphics/fontman.cpp
+++ b/graphics/fontman.cpp
@@ -79,6 +79,26 @@ bool FontManager::assignFontToName(const Common::String &name, const Font *font)
return true;
}
+bool FontManager::setFont(FontUsage usage, const Font *font) {
+ switch (usage) {
+ case kConsoleFont:
+ delete g_consolefont;
+ g_consolefont = (const BdfFont *)font;
+ break;
+ case kGUIFont:
+ delete g_sysfont;
+ g_sysfont = (const BdfFont *)font;
+ break;
+ case kBigGUIFont:
+ delete g_sysfont_big;
+ g_sysfont_big = (const BdfFont *)font;
+ break;
+ default:
+ return false;
+ }
+ return true;
+}
+
void FontManager::removeFontName(const Common::String &name) {
Common::String lowercaseName = name;
lowercaseName.toLowercase();
diff --git a/graphics/fontman.h b/graphics/fontman.h
index 858a733d45..09c1a198ff 100644
--- a/graphics/fontman.h
+++ b/graphics/fontman.h
@@ -60,6 +60,16 @@ public:
bool assignFontToName(const Common::String &name, const Font *font);
/**
+ * Associates a BDF font object with an 'usage'. This is useful for platforms
+ * with a screen DPI much larger than a regular desktop workstation.
+ *
+ * @param name the name of the font
+ * @param font the font object
+ * @return true on success, false on failure
+ */
+ bool setFont(FontUsage usage, const Font *font);
+
+ /**
* Removes binding from name to font
*
* @param name name which should be removed
diff --git a/graphics/fonts/bdf.cpp b/graphics/fonts/bdf.cpp
index b7d0f7749e..58c48ed877 100644
--- a/graphics/fonts/bdf.cpp
+++ b/graphics/fonts/bdf.cpp
@@ -81,7 +81,8 @@ void drawCharIntern(byte *ptr, uint pitch, const bitmap_t *src, int h, int minX,
void BdfFont::drawChar(Surface *dst, byte chr, const int tx, const int ty, const uint32 color) const {
assert(dst != 0);
- assert(_desc.bits != 0 && _desc.maxwidth <= 16);
+ // asserting _desc.maxwidth <= 50: let the theme designer decide what looks best
+ assert(_desc.bits != 0 && _desc.maxwidth <= 50);
assert(dst->format.bytesPerPixel == 1 || dst->format.bytesPerPixel == 2);
// If this character is not included in the font, use the default char.
@@ -793,4 +794,3 @@ BdfFont *BdfFont::loadFromCache(Common::SeekableReadStream &stream) {
}
} // End of namespace Graphics
-
diff --git a/graphics/fonts/bdf.h b/graphics/fonts/bdf.h
index 31c009eb27..0d60693736 100644
--- a/graphics/fonts/bdf.h
+++ b/graphics/fonts/bdf.h
@@ -97,4 +97,3 @@ public:
} // End of namespace Graphics
#endif
-
diff --git a/graphics/imagedec.h b/graphics/imagedec.h
index da45ecca4f..e839d097b2 100644
--- a/graphics/imagedec.h
+++ b/graphics/imagedec.h
@@ -64,4 +64,3 @@ public:
} // End of namespace Graphics
#endif
-
diff --git a/graphics/maccursor.h b/graphics/maccursor.h
index cca7f3456b..f5efc20655 100644
--- a/graphics/maccursor.h
+++ b/graphics/maccursor.h
@@ -28,18 +28,19 @@
* - scumm
*/
-#include "common/stream.h"
-
#ifndef GRAPHICS_MACCURSOR_H
#define GRAPHICS_MACCURSOR_H
+#include "common/stream.h"
+
+#include "graphics/cursor.h"
+
namespace Graphics {
/**
* A Mac crsr or CURS cursor
- * TODO: Think about making a base class with WinCursor
*/
-class MacCursor {
+class MacCursor : public Cursor {
public:
MacCursor();
~MacCursor();
@@ -56,7 +57,10 @@ public:
byte getKeyColor() const { return 0xFF; }
const byte *getSurface() const { return _surface; }
+
const byte *getPalette() const { return _palette; }
+ byte getPaletteStartIndex() const { return 0; }
+ uint16 getPaletteCount() const { return 256; }
/** Read the cursor's data out of a stream. */
bool readFromStream(Common::SeekableReadStream &stream, bool forceMonochrome = false);
diff --git a/graphics/primitives.h b/graphics/primitives.h
index 6055404b96..0ab2dabcd8 100644
--- a/graphics/primitives.h
+++ b/graphics/primitives.h
@@ -30,4 +30,3 @@ void drawThickLine(int x0, int y0, int x1, int y1, int thickness, int color, voi
} // End of namespace Graphics
#endif
-
diff --git a/graphics/scaler/aspect.cpp b/graphics/scaler/aspect.cpp
index b12fac418b..7ad37b1ba8 100644
--- a/graphics/scaler/aspect.cpp
+++ b/graphics/scaler/aspect.cpp
@@ -292,4 +292,3 @@ void Normal2xAspect(const uint8 *srcPtr,
}
#endif // USE_ARM_SCALER_ASM
-
diff --git a/graphics/scaler/hq2x_i386.asm b/graphics/scaler/hq2x_i386.asm
index 9393f00e01..4f8e0713b7 100644
--- a/graphics/scaler/hq2x_i386.asm
+++ b/graphics/scaler/hq2x_i386.asm
@@ -1901,4 +1901,3 @@ FuncTable2:
%ifidn __OUTPUT_FORMAT__,elf
section .note.GNU-stack noalloc noexec nowrite progbits
%endif
-
diff --git a/graphics/scaler/hq3x_i386.asm b/graphics/scaler/hq3x_i386.asm
index 92c0058711..209a7b8a34 100644
--- a/graphics/scaler/hq3x_i386.asm
+++ b/graphics/scaler/hq3x_i386.asm
@@ -2477,4 +2477,3 @@ FuncTable2:
%ifidn __OUTPUT_FORMAT__,elf
section .note.GNU-stack noalloc noexec nowrite progbits
%endif
-
diff --git a/graphics/scaler/scale2x.cpp b/graphics/scaler/scale2x.cpp
index ec2aa2086e..ac2dbadefa 100644
--- a/graphics/scaler/scale2x.cpp
+++ b/graphics/scaler/scale2x.cpp
@@ -500,4 +500,3 @@ void scale2x_32_mmx(scale2x_uint32* dst0, scale2x_uint32* dst1, const scale2x_ui
}
#endif
-
diff --git a/graphics/scaler/scale2x.h b/graphics/scaler/scale2x.h
index a6365c113e..b0c887d43c 100644
--- a/graphics/scaler/scale2x.h
+++ b/graphics/scaler/scale2x.h
@@ -66,4 +66,3 @@ extern "C" void scale2x_32_arm(scale2x_uint32* dst0, scale2x_uint32* dst1, const
#endif
#endif
-
diff --git a/graphics/scaler/scale3x.cpp b/graphics/scaler/scale3x.cpp
index 788c8694c5..4ce738a37a 100644
--- a/graphics/scaler/scale3x.cpp
+++ b/graphics/scaler/scale3x.cpp
@@ -220,4 +220,3 @@ void scale3x_32_def(scale3x_uint32* dst0, scale3x_uint32* dst1, scale3x_uint32*
scale3x_32_def_center(dst1, src0, src1, src2, count);
scale3x_32_def_border(dst2, src2, src1, src0, count);
}
-
diff --git a/graphics/scaler/scale3x.h b/graphics/scaler/scale3x.h
index 671a207570..ad5604d086 100644
--- a/graphics/scaler/scale3x.h
+++ b/graphics/scaler/scale3x.h
@@ -38,4 +38,3 @@ void scale3x_16_def(scale3x_uint16* dst0, scale3x_uint16* dst1, scale3x_uint16*
void scale3x_32_def(scale3x_uint32* dst0, scale3x_uint32* dst1, scale3x_uint32* dst2, const scale3x_uint32* src0, const scale3x_uint32* src1, const scale3x_uint32* src2, unsigned count);
#endif
-
diff --git a/graphics/scaler/scalebit.cpp b/graphics/scaler/scalebit.cpp
index c6d2a0d752..c8b54f4b25 100644
--- a/graphics/scaler/scalebit.cpp
+++ b/graphics/scaler/scalebit.cpp
@@ -340,4 +340,3 @@ void scale(unsigned scale, void* void_dst, unsigned dst_slice, const void* void_
break;
}
}
-
diff --git a/graphics/scaler/scalebit.h b/graphics/scaler/scalebit.h
index dd46883f97..6e4a30caf0 100644
--- a/graphics/scaler/scalebit.h
+++ b/graphics/scaler/scalebit.h
@@ -40,4 +40,3 @@ int scale_precondition(unsigned scale, unsigned pixel, unsigned width, unsigned
void scale(unsigned scale, void* void_dst, unsigned dst_slice, const void* void_src, unsigned src_slice, unsigned pixel, unsigned width, unsigned height);
#endif
-
diff --git a/graphics/scaler/thumbnail_intern.cpp b/graphics/scaler/thumbnail_intern.cpp
index 154763070a..ef540b8cd8 100644
--- a/graphics/scaler/thumbnail_intern.cpp
+++ b/graphics/scaler/thumbnail_intern.cpp
@@ -236,4 +236,3 @@ bool createThumbnail(Graphics::Surface *surf, const uint8 *pixels, int w, int h,
return createThumbnail(*surf, screen);
}
-
diff --git a/graphics/sjis.cpp b/graphics/sjis.cpp
index 10c780b156..4dd24d9dcc 100644
--- a/graphics/sjis.cpp
+++ b/graphics/sjis.cpp
@@ -40,10 +40,27 @@ FontSJIS *FontSJIS::createFont(const Common::Platform platform) {
// Try the font ROM of the specified platform
if (platform == Common::kPlatformFMTowns) {
ret = new FontTowns();
- if (ret && ret->loadData())
- return ret;
+ if (ret) {
+ if (ret->loadData())
+ return ret;
+ }
delete ret;
- }
+ } else if (platform == Common::kPlatformPCEngine) {
+ ret = new FontPCEngine();
+ if (ret) {
+ if (ret->loadData())
+ return ret;
+ }
+ delete ret;
+ } // TODO: PC98 font rom support
+ /* else if (platform == Common::kPlatformPC98) {
+ ret = new FontPC98();
+ if (ret) {
+ if (ret->loadData())
+ return ret;
+ }
+ delete ret;
+ }*/
// Try ScummVM's font.
ret = new FontSjisSVM(platform);
@@ -59,15 +76,21 @@ void FontSJIS::drawChar(Graphics::Surface &dst, uint16 ch, int x, int y, uint32
}
FontSJISBase::FontSJISBase()
- : _drawMode(kDefaultMode), _flippedMode(false), _fontWidth(16), _fontHeight(16) {
+ : _drawMode(kDefaultMode), _flippedMode(false), _fontWidth(16), _fontHeight(16), _bitPosNewLineMask(0) {
}
void FontSJISBase::setDrawingMode(DrawingMode mode) {
- _drawMode = mode;
+ if (hasFeature(1 << mode))
+ _drawMode = mode;
+ else
+ warning("Unsupported drawing mode selected");
}
void FontSJISBase::toggleFlippedMode(bool enable) {
- _flippedMode = enable;
+ if (hasFeature(kFeatFlipped))
+ _flippedMode = enable;
+ else
+ warning("Flipped mode unsupported by this font");
}
uint FontSJISBase::getFontHeight() const {
@@ -98,26 +121,30 @@ uint FontSJISBase::getMaxFontWidth() const {
uint FontSJISBase::getCharWidth(uint16 ch) const {
if (isASCII(ch))
- return (_drawMode == kOutlineMode) ? 10 : (_drawMode == kDefaultMode ? 8 : 9);
+ return ((_drawMode == kOutlineMode) ? 10 : (_drawMode == kDefaultMode ? 8 : 9));
else
return getMaxFontWidth();
}
template<typename Color>
void FontSJISBase::blitCharacter(const uint8 *glyph, const int w, const int h, uint8 *dst, int pitch, Color c) const {
+ uint8 bitPos = 0;
+ uint8 mask = 0;
+
for (int y = 0; y < h; ++y) {
Color *d = (Color *)dst;
dst += pitch;
- uint8 mask = 0;
+ bitPos &= _bitPosNewLineMask;
for (int x = 0; x < w; ++x) {
- if (!(x % 8))
+ if (!(bitPos % 8))
mask = *glyph++;
if (mask & 0x80)
*d = c;
++d;
+ ++bitPos;
mask <<= 1;
}
}
@@ -176,9 +203,6 @@ const uint8 *FontSJISBase::flipCharacter(const uint8 *glyph, const int w) const
0x0F, 0x8F, 0x4F, 0xC7, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x97, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF
};
- // TODO: This code looks like it will only work with 16 pixel wide
- // characters we should really take care that we only call it on these
- // or we fix this to support a generic width.
for (int i = 0; i < w; i++) {
_tempGlyph[i] = flipData[glyph[(w * 2 - 1) - i]];
_tempGlyph[(w * 2 - 1) - i] = flipData[glyph[i]];
@@ -225,9 +249,6 @@ void FontSJISBase::drawChar(void *dst, uint16 ch, int pitch, int bpp, uint32 c1,
}
#ifndef DISABLE_FLIPPED_MODE
- // TODO: This code inside flopCharater looks like it will only work with
- // 16 pixel wide characters we should really take care that we only call
- // it on these or we fix it to support a generic width.
if (_flippedMode)
glyphSource = flipCharacter(glyphSource, width);
#endif
@@ -303,7 +324,7 @@ const uint8 *FontTowns::getCharData(uint16 ch) const {
uint8 f = ch & 0xFF;
uint8 s = ch >> 8;
- // copied from scumm\charset.cpp
+ // moved from scumm\charset.cpp
enum {
KANA = 0,
KANJI = 1,
@@ -392,6 +413,98 @@ const uint8 *FontTowns::getCharData(uint16 ch) const {
}
}
+bool FontTowns::hasFeature(int feat) const {
+ static const int features = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+ return (features & feat) ? true : false;
+}
+
+// PC-Engine ROM font
+
+bool FontPCEngine::loadData() {
+ Common::SeekableReadStream *data = SearchMan.createReadStreamForMember("pce.cdbios");
+ if (!data)
+ return false;
+
+ data->seek((data->size() & 0x200) ? 0x30200 : 0x30000);
+ data->read(_fontData12x12, kFont12x12Chars * 18);
+
+ _fontWidth = _fontHeight = 12;
+ _bitPosNewLineMask = _fontWidth & 7;
+
+ bool retValue = !data->err();
+ delete data;
+ return retValue;
+}
+
+const uint8 *FontPCEngine::getCharData(uint16 ch) const {
+ // Converts sjis code to pce font offset
+ // (moved from scumm\charset.cpp).
+ // rangeTbl maps SJIS char-codes to the PCE System Card font rom.
+ // Each pair {<upperBound>,<lowerBound>} in the array represents a SJIS range.
+ const int rangeCnt = 45;
+ static const uint16 rangeTbl[rangeCnt][2] = {
+ // Symbols
+ {0x8140,0x817E},{0x8180,0x81AC},
+ // 0-9
+ {0x824F,0x8258},
+ // Latin upper
+ {0x8260,0x8279},
+ // Latin lower
+ {0x8281,0x829A},
+ // Kana
+ {0x829F,0x82F1},{0x8340,0x837E},{0x8380,0x8396},
+ // Greek upper
+ {0x839F,0x83B6},
+ // Greek lower
+ {0x83BF,0x83D6},
+ // Cyrillic upper
+ {0x8440,0x8460},
+ // Cyrillic lower
+ {0x8470,0x847E},{0x8480,0x8491},
+ // Kanji
+ {0x889F,0x88FC},
+ {0x8940,0x897E},{0x8980,0x89FC},
+ {0x8A40,0x8A7E},{0x8A80,0x8AFC},
+ {0x8B40,0x8B7E},{0x8B80,0x8BFC},
+ {0x8C40,0x8C7E},{0x8C80,0x8CFC},
+ {0x8D40,0x8D7E},{0x8D80,0x8DFC},
+ {0x8E40,0x8E7E},{0x8E80,0x8EFC},
+ {0x8F40,0x8F7E},{0x8F80,0x8FFC},
+ {0x9040,0x907E},{0x9080,0x90FC},
+ {0x9140,0x917E},{0x9180,0x91FC},
+ {0x9240,0x927E},{0x9280,0x92FC},
+ {0x9340,0x937E},{0x9380,0x93FC},
+ {0x9440,0x947E},{0x9480,0x94FC},
+ {0x9540,0x957E},{0x9580,0x95FC},
+ {0x9640,0x967E},{0x9680,0x96FC},
+ {0x9740,0x977E},{0x9780,0x97FC},
+ {0x9840,0x9872}
+ };
+
+ ch = (ch << 8) | (ch >> 8);
+ int offset = 0;
+ for (int i = 0; i < rangeCnt; ++i) {
+ if (ch >= rangeTbl[i][0] && ch <= rangeTbl[i][1]) {
+ return _fontData12x12 + 18 * (offset + ch - rangeTbl[i][0]);
+ break;
+ }
+ offset += rangeTbl[i][1] - rangeTbl[i][0] + 1;
+ }
+
+ debug(4, "Invalid Char: 0x%x", ch);
+ return 0;
+}
+
+bool FontPCEngine::hasFeature(int feat) const {
+ // Outline mode not supported due to use of _bitPosNewLineMask. This could be implemented,
+ // but is not needed for any particular target at the moment.
+ // Flipped mode is also not supported since the hard coded table (taken from SCUMM 5 FM-TOWNS)
+ // is set up for font sizes of 8/16. This mode is also not required at the moment, since
+ // there aren't any SCUMM 5 PC-Engine games.
+ static const int features = kFeatDefault | kFeatShadow | kFeatFMTownsShadow;
+ return (features & feat) ? true : false;
+}
+
// ScummVM SJIS font
FontSjisSVM::FontSjisSVM(const Common::Platform platform)
@@ -464,6 +577,15 @@ const uint8 *FontSjisSVM::getCharData(uint16 c) const {
return getCharDataDefault(c);
}
+bool FontSjisSVM::hasFeature(int feat) const {
+ // Flipped mode is not supported since the hard coded table (taken from SCUMM 5 FM-TOWNS)
+ // is set up for font sizes of 8/16. This mode is also not required at the moment, since
+ // there aren't any SCUMM 5 PC-Engine games.
+ static const int features16 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow | kFeatFlipped;
+ static const int features12 = kFeatDefault | kFeatOutline | kFeatShadow | kFeatFMTownsShadow;
+ return (((_fontWidth == 12) ? features12 : features16) & feat) ? true : false;
+}
+
const uint8 *FontSjisSVM::getCharDataPCE(uint16 c) const {
if (isASCII(c))
return 0;
@@ -533,4 +655,3 @@ void FontSjisSVM::mapKANJIChar(const uint8 fB, const uint8 sB, int &base, int &i
} // End of namespace Graphics
#endif // defined(GRAPHICS_SJIS_H)
-
diff --git a/graphics/sjis.h b/graphics/sjis.h
index 62e68013da..185b6cc593 100644
--- a/graphics/sjis.h
+++ b/graphics/sjis.h
@@ -75,7 +75,7 @@ public:
virtual bool loadData() = 0;
/**
- * Enable drawing with outline or shadow.
+ * Enable drawing with outline or shadow if supported by the Font.
*
* After changing outline state, getFontHeight and getMaxFontWidth / getCharWidth might return
* different values!
@@ -90,11 +90,17 @@ public:
virtual void setDrawingMode(DrawingMode mode) {}
/**
- * Enable flipped character drawing (e.g. in the MI1 circus scene after Guybrush gets shot out of the cannon).
+ * Enable flipped character drawing if supported by the Font (e.g. in the MI1 circus scene after Guybrush gets shot out of the cannon).
*/
virtual void toggleFlippedMode(bool enable) {}
/**
+ * Set spacing between characters and lines. This affects font height / char width
+ */
+ virtual void setCharSpacing(int spacing) {}
+ virtual void setLineSpacing(int spacing) {}
+
+ /**
* Returns the height of the font.
*/
virtual uint getFontHeight() const = 0;
@@ -162,16 +168,27 @@ protected:
DrawingMode _drawMode;
bool _flippedMode;
int _fontWidth, _fontHeight;
-
+ uint8 _bitPosNewLineMask;
+
bool isASCII(uint16 ch) const;
virtual const uint8 *getCharData(uint16 c) const = 0;
+
+ enum DrawingFeature {
+ kFeatDefault = 1 << 0,
+ kFeatOutline = 1 << 1,
+ kFeatShadow = 1 << 2,
+ kFeatFMTownsShadow = 1 << 3,
+ kFeatFlipped = 1 << 4
+ };
+
+ virtual bool hasFeature(int feat) const = 0;
};
/**
* FM-TOWNS ROM based SJIS compatible font.
*
- * This is used in KYRA and SCI.
+ * This is used in KYRA, SCUMM and SCI.
*/
class FontTowns : public FontSJISBase {
public:
@@ -189,6 +206,31 @@ private:
uint8 _fontData8x16[kFont8x16Chars * 32];
virtual const uint8 *getCharData(uint16 c) const;
+
+ bool hasFeature(int feat) const;
+};
+
+/**
+ * PC-Engine System Card based SJIS compatible font.
+ *
+ * This is used in LOOM.
+ */
+class FontPCEngine : public FontSJISBase {
+public:
+ /**
+ * Loads the ROM data from "pce.cdbios".
+ */
+ bool loadData();
+private:
+ enum {
+ kFont12x12Chars = 3418
+ };
+
+ uint8 _fontData12x12[kFont12x12Chars * 18];
+
+ virtual const uint8 *getCharData(uint16 c) const;
+
+ bool hasFeature(int feat) const;
};
/**
@@ -215,6 +257,8 @@ private:
virtual const uint8 *getCharData(uint16 c) const;
+ bool hasFeature(int feat) const;
+
const uint8 *getCharDataPCE(uint16 c) const;
const uint8 *getCharDataDefault(uint16 c) const;
@@ -228,4 +272,3 @@ private:
#endif
#endif // engine and dynamic plugins guard
-
diff --git a/graphics/surface.cpp b/graphics/surface.cpp
index 0fad25734c..e0b25f22e9 100644
--- a/graphics/surface.cpp
+++ b/graphics/surface.cpp
@@ -56,8 +56,10 @@ void Surface::create(uint16 width, uint16 height, const PixelFormat &f) {
format = f;
pitch = w * format.bytesPerPixel;
- pixels = calloc(width * height, format.bytesPerPixel);
- assert(pixels);
+ if (width && height) {
+ pixels = calloc(width * height, format.bytesPerPixel);
+ assert(pixels);
+ }
}
void Surface::free() {
diff --git a/graphics/thumbnail.cpp b/graphics/thumbnail.cpp
index 5fad25967e..db61d828d2 100644
--- a/graphics/thumbnail.cpp
+++ b/graphics/thumbnail.cpp
@@ -94,23 +94,24 @@ bool skipThumbnail(Common::SeekableReadStream &in) {
return true;
}
-bool loadThumbnail(Common::SeekableReadStream &in, Graphics::Surface &to) {
+Graphics::Surface *loadThumbnail(Common::SeekableReadStream &in) {
ThumbnailHeader header;
if (!loadHeader(in, header, true))
- return false;
+ return 0;
if (header.bpp != 2) {
warning("trying to load thumbnail with unsupported bit depth %d", header.bpp);
- return false;
+ return 0;
}
Graphics::PixelFormat format = g_system->getOverlayFormat();
- to.create(header.width, header.height, format);
+ Graphics::Surface *const to = new Graphics::Surface();
+ to->create(header.width, header.height, format);
- OverlayColor *pixels = (OverlayColor *)to.pixels;
- for (int y = 0; y < to.h; ++y) {
- for (int x = 0; x < to.w; ++x) {
+ OverlayColor *pixels = (OverlayColor *)to->pixels;
+ for (int y = 0; y < to->h; ++y) {
+ for (int x = 0; x < to->w; ++x) {
uint8 r, g, b;
colorToRGB<ColorMasks<565> >(in.readUint16BE(), r, g, b);
@@ -119,7 +120,7 @@ bool loadThumbnail(Common::SeekableReadStream &in, Graphics::Surface &to) {
}
}
- return true;
+ return to;
}
bool saveThumbnail(Common::WriteStream &out) {
@@ -166,4 +167,3 @@ bool saveThumbnail(Common::WriteStream &out, const Graphics::Surface &thumb) {
}
} // End of namespace Graphics
-
diff --git a/graphics/thumbnail.h b/graphics/thumbnail.h
index bf48fd1189..df99568f42 100644
--- a/graphics/thumbnail.h
+++ b/graphics/thumbnail.h
@@ -53,7 +53,7 @@ bool skipThumbnail(Common::SeekableReadStream &in);
* The loaded thumbnail will be automatically converted to the
* current overlay pixelformat.
*/
-bool loadThumbnail(Common::SeekableReadStream &in, Graphics::Surface &to);
+Graphics::Surface *loadThumbnail(Common::SeekableReadStream &in);
/**
* Saves a thumbnail to the given write stream.
@@ -69,4 +69,3 @@ bool saveThumbnail(Common::WriteStream &out, const Graphics::Surface &thumb);
} // End of namespace Graphics
#endif
-
diff --git a/graphics/wincursor.cpp b/graphics/wincursor.cpp
index 6208f5f053..2db72a2874 100644
--- a/graphics/wincursor.cpp
+++ b/graphics/wincursor.cpp
@@ -308,4 +308,61 @@ WinCursorGroup *WinCursorGroup::createCursorGroup(Common::PEResources &exe, cons
return group;
}
+/**
+ * The default Windows cursor
+ */
+class DefaultWinCursor : public Cursor {
+public:
+ DefaultWinCursor() {}
+ ~DefaultWinCursor() {}
+
+ uint16 getWidth() const { return 12; }
+ uint16 getHeight() const { return 20; }
+ uint16 getHotspotX() const { return 0; }
+ uint16 getHotspotY() const { return 0; }
+ byte getKeyColor() const { return 0; }
+
+ const byte *getSurface() const {
+ static const byte defaultCursor[] = {
+ 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0,
+ 1, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0, 0,
+ 1, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0, 0,
+ 1, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0, 0,
+ 1, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0, 0,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0, 0,
+ 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 0,
+ 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1,
+ 1, 2, 2, 2, 1, 2, 2, 1, 0, 0, 0, 0,
+ 1, 2, 2, 1, 1, 2, 2, 1, 0, 0, 0, 0,
+ 1, 2, 1, 0, 1, 1, 2, 2, 1, 0, 0, 0,
+ 1, 1, 0, 0, 0, 1, 2, 2, 1, 0, 0, 0,
+ 1, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 1, 2, 2, 1, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0
+ };
+
+ return defaultCursor;
+ }
+
+ const byte *getPalette() const {
+ static const byte bwPalette[] = {
+ 0x00, 0x00, 0x00, // Black
+ 0xFF, 0xFF, 0xFF // White
+ };
+
+ return bwPalette;
+ }
+ byte getPaletteStartIndex() const { return 1; }
+ uint16 getPaletteCount() const { return 2; }
+};
+
+Cursor *makeDefaultWinCursor() {
+ return new DefaultWinCursor();
+}
+
} // End of namespace Graphics
diff --git a/graphics/wincursor.h b/graphics/wincursor.h
index 86693db88b..e6b35dc80c 100644
--- a/graphics/wincursor.h
+++ b/graphics/wincursor.h
@@ -26,6 +26,8 @@
#include "common/array.h"
#include "common/winexe.h"
+#include "graphics/cursor.h"
+
namespace Common {
class NEResources;
class PEResources;
@@ -35,7 +37,7 @@ class SeekableReadStream;
namespace Graphics {
/** A Windows cursor. */
-class WinCursor {
+class WinCursor : public Cursor {
public:
WinCursor();
~WinCursor();
@@ -52,7 +54,10 @@ public:
byte getKeyColor() const;
const byte *getSurface() const { return _surface; }
+
const byte *getPalette() const { return _palette; }
+ byte getPaletteStartIndex() const { return 0; }
+ uint16 getPaletteCount() const { return 256; }
/** Read the cursor's data out of a stream. */
bool readFromStream(Common::SeekableReadStream &stream);
@@ -97,6 +102,13 @@ struct WinCursorGroup {
static WinCursorGroup *createCursorGroup(Common::PEResources &exe, const Common::WinResourceID &id);
};
+/**
+ * Create a Cursor for the default Windows cursor.
+ *
+ * @note The calling code is responsible for deleting the returned pointer.
+ */
+Cursor *makeDefaultWinCursor();
+
} // End of namespace Graphics
#endif
diff --git a/graphics/yuv_to_rgb.cpp b/graphics/yuv_to_rgb.cpp
index bdc481016e..feda48bf6d 100644
--- a/graphics/yuv_to_rgb.cpp
+++ b/graphics/yuv_to_rgb.cpp
@@ -8,19 +8,16 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
// The YUV to RGB conversion code is derived from SDL's YUV overlay code, which
diff --git a/graphics/yuv_to_rgb.h b/graphics/yuv_to_rgb.h
index 9b561f2002..2d3b9e634e 100644
--- a/graphics/yuv_to_rgb.h
+++ b/graphics/yuv_to_rgb.h
@@ -8,24 +8,22 @@
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
-
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
-
+ *
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
- * $URL$
- * $Id$
- *
*/
/**
* @file
* YUV to RGB conversion used in engines:
+ * - scumm (he)
* - sword25
*/
diff --git a/gui/credits.h b/gui/credits.h
index cc9698195a..13898e03a0 100644
--- a/gui/credits.h
+++ b/gui/credits.h
@@ -2,9 +2,20 @@
static const char *credits[] = {
"C1""ScummVM Team",
"",
-"C1""Project Leaders",
+"C1""Project Leader",
"C0""Eugene Sandulenko",
"",
+"C1""PR Office",
+"C0""Arnaud Boutonn\351",
+"C2""Public Relations Officer, Project Administrator",
+"C0""Eugene Sandulenko",
+"C2""Project Leader",
+"",
+"C1""Core Team",
+"C0""Willem Jan Palenstijn",
+"C0""Eugene Sandulenko",
+"C0""Johannes Schickel",
+"",
"C1""Retired Project Leaders",
"C0""James Brown",
"C0""Vincent Hamm",
@@ -85,6 +96,7 @@ static const char *credits[] = {
"C1""DreamWeb",
"C0""Vladimir Menshakov",
"C0""Torbj\366rn Andersson",
+"C0""Bertrand Augereau",
"",
"C1""Gob",
"C0""Torbj\366rn Andersson",
@@ -229,6 +241,9 @@ static const char *credits[] = {
"C0""Andre Heider",
"C0""Angus Lees",
"",
+"C1""BADA",
+"C0""Chris Warren-Smith",
+"",
"C1""Dreamcast",
"C0""Marcus Comstedt",
"",
@@ -249,6 +264,8 @@ static const char *credits[] = {
"",
"C1""Nintendo DS",
"C0""Neil Millstone",
+"C0""Bertrand Augereau",
+"C2""HQ software scaler",
"",
"C1""OpenPandora",
"C0""John Willis",
diff --git a/gui/launcher.cpp b/gui/launcher.cpp
index 6920e0ccd2..5fafcfbad4 100644
--- a/gui/launcher.cpp
+++ b/gui/launcher.cpp
@@ -1052,7 +1052,7 @@ void LauncherDialog::updateButtons() {
const char *newAddButtonLabel = massAdd
? (lowRes ? _c("Mass Add...", "lowres") : _("Mass Add..."))
- : (lowRes ? _c("Add Game...", "lowres") : _("Add Game..."));
+ : (lowRes ? _c("~A~dd Game...", "lowres") : _("~A~dd Game..."));
if (_addButton->getLabel() != newAddButtonLabel)
_addButton->setLabel(newAddButtonLabel);
diff --git a/gui/themebrowser.cpp b/gui/themebrowser.cpp
index 831cee1996..c22603b822 100644
--- a/gui/themebrowser.cpp
+++ b/gui/themebrowser.cpp
@@ -117,4 +117,3 @@ void ThemeBrowser::updateListing() {
}
} // End of namespace GUI
-
diff --git a/gui/themebrowser.h b/gui/themebrowser.h
index 9da57622db..daea3836fc 100644
--- a/gui/themebrowser.h
+++ b/gui/themebrowser.h
@@ -54,4 +54,3 @@ private:
} // End of namespace GUI
#endif
-
diff --git a/gui/themes/fonts/topaz/README.ScummVM b/gui/themes/fonts/topaz/README.ScummVM
index 3beea8a048..55b0b16856 100644
--- a/gui/themes/fonts/topaz/README.ScummVM
+++ b/gui/themes/fonts/topaz/README.ScummVM
@@ -3,4 +3,3 @@ You will find detailed information in topazLT.readme.
The Parallaction engine in ScummVM uses this font's bitmap, namely file topazlt/8.
Data has been extracted and placed in the array named _amigaTopazFont which can be found in engines/parallaction/staticres.cpp.
-
diff --git a/gui/themes/translations.dat b/gui/themes/translations.dat
index df15d72567..a9f51c6ddd 100644
--- a/gui/themes/translations.dat
+++ b/gui/themes/translations.dat
Binary files differ
diff --git a/gui/widget.cpp b/gui/widget.cpp
index 8420391a3f..c4d288eb11 100644
--- a/gui/widget.cpp
+++ b/gui/widget.cpp
@@ -298,6 +298,10 @@ void ButtonWidget::drawWidget() {
g_gui.theme()->drawButton(Common::Rect(_x, _y, _x+_w, _y+_h), _label, _state, getFlags());
}
+void ButtonWidget::setLabel(const Common::String &label) {
+ StaticTextWidget::setLabel(cleanupHotkey(label));
+}
+
#pragma mark -
PicButtonWidget::PicButtonWidget(GuiObject *boss, int x, int y, int w, int h, const char *tooltip, uint32 cmd, uint8 hotkey)
diff --git a/gui/widget.h b/gui/widget.h
index 70f2da4c98..acd575a90b 100644
--- a/gui/widget.h
+++ b/gui/widget.h
@@ -186,6 +186,8 @@ public:
void setCmd(uint32 cmd) { _cmd = cmd; }
uint32 getCmd() const { return _cmd; }
+ void setLabel(const Common::String &label);
+
void handleMouseUp(int x, int y, int button, int clickCount);
void handleMouseEntered(int button) { setFlags(WIDGET_HILITED); draw(); }
void handleMouseLeft(int button) { clearFlags(WIDGET_HILITED); draw(); }
diff --git a/gui/widgets/scrollbar.cpp b/gui/widgets/scrollbar.cpp
index cc8e587668..e0dbcec59c 100644
--- a/gui/widgets/scrollbar.cpp
+++ b/gui/widgets/scrollbar.cpp
@@ -55,7 +55,7 @@ static void upArrowRepeater(void *ref) {
sb->checkBounds(old_pos);
g_system->getTimerManager()->removeTimerProc(&upArrowRepeater);
- g_system->getTimerManager()->installTimerProc(&upArrowRepeater, 1000000/10, ref);
+ g_system->getTimerManager()->installTimerProc(&upArrowRepeater, 1000000/10, ref, "guiScrollBarUp");
}
static void downArrowRepeater(void *ref) {
@@ -66,7 +66,7 @@ static void downArrowRepeater(void *ref) {
sb->checkBounds(old_pos);
g_system->getTimerManager()->removeTimerProc(&downArrowRepeater);
- g_system->getTimerManager()->installTimerProc(&downArrowRepeater, 1000000/10, ref);
+ g_system->getTimerManager()->installTimerProc(&downArrowRepeater, 1000000/10, ref, "guiScrollBarDown");
}
void ScrollBarWidget::handleMouseDown(int x, int y, int button, int clickCount) {
@@ -80,12 +80,12 @@ void ScrollBarWidget::handleMouseDown(int x, int y, int button, int clickCount)
// Up arrow
_currentPos--;
_draggingPart = kUpArrowPart;
- g_system->getTimerManager()->installTimerProc(&upArrowRepeater, 1000000/2, this);
+ g_system->getTimerManager()->installTimerProc(&upArrowRepeater, 1000000/2, this, "guiScrollBarUp");
} else if (y >= _h - UP_DOWN_BOX_HEIGHT) {
// Down arrow
_currentPos++;
_draggingPart = kDownArrowPart;
- g_system->getTimerManager()->installTimerProc(&downArrowRepeater, 1000000/2, this);
+ g_system->getTimerManager()->installTimerProc(&downArrowRepeater, 1000000/2, this, "guiScrollBarDown");
} else if (y < _sliderPos) {
_currentPos -= _entriesPerPage - 1;
} else if (y >= _sliderPos + _sliderHeight) {
diff --git a/icons/scummvm.svg b/icons/scummvm.svg
index 8fcdf6af40..abf5b79e07 100644
--- a/icons/scummvm.svg
+++ b/icons/scummvm.svg
@@ -108,4 +108,4 @@
id="image5920"
x="9"
y="26.110352"
- style="display:inline" /></g></svg> \ No newline at end of file
+ style="display:inline" /></g></svg>
diff --git a/po/POTFILES b/po/POTFILES
index 3ffb587f01..0d0a4270b0 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -63,6 +63,7 @@ backends/keymapper/remap-dialog.cpp
backends/midi/windows.cpp
backends/platform/ds/arm9/source/dsoptions.cpp
backends/platform/iphone/osys_events.cpp
+backends/platform/sdl/macosx/appmenu_osx.mm
backends/graphics/surfacesdl/surfacesdl-graphics.cpp
backends/graphics/opengl/opengl-graphics.cpp
backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -77,3 +78,5 @@ backends/platform/wince/wince-sdl.cpp
backends/events/default/default-events.cpp
backends/events/gph/gph-events.cpp
backends/events/openpandora/op-events.cpp
+backends/updates/macosx/macosx-updates.mm
+backends/platform/bada/form.cpp
diff --git a/po/ca_ES.po b/po/ca_ES.po
index d837be093f..de046908ec 100644
--- a/po/ca_ES.po
+++ b/po/ca_ES.po
@@ -1,2646 +1,2773 @@
-# Catalan translation for ScummVM.
-# Copyright (C) 2007-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Jordi Vilalta Prat <jvprat@jvprat.com>, 2007-2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2010-09-21 23:12+0100\n"
-"Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n"
-"Language-Team: Catalan <scummvm-devel@lists.sf.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Catalan\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(compilat el %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Característiques compilades:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Motors disponibles:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Amunt"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Torna al nivell de directoris anterior"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Amunt"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Cancel·la"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Escull"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Tanca"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Clic del ratolí"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Mostra el teclat"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Remapeja les tecles"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Sel·leccioneu una acció a mapejar"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Mapeja"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "D'acord"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Seleccioneu una acció i cliqueu 'Mapeja'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Tecla associada : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Tecla associada : cap"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Seleccioneu una acció"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Premeu la tecla a associar"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Joc"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "Identificador:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Identificador de joc curt utilitzat per referir-se a les partides i per "
-"executar el joc des de la línia de comandes"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nom:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Títol complet del joc"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nom:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Idioma:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Idioma del joc. Això no convertirà la vostra versió Espanyola del joc a "
-"Anglès"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<per defecte>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plataforma:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plataforma per la que el joc es va dissenyar originalment"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Platafor.:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Gràfics"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Fer canvis sobre les opcions globals de gràfics"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Canviar les opcions de gràfics"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Àudio"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Fer canvis sobre les opcions globals d'àudio"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Canviar les opcions d'àudio"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Fer canvis sobre les opcions globals de volum"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Canviar les opcions de volum"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Fer canvis sobre les opcions globals de MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Canviar les opcions de MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Fer canvis sobre les opcions globals de MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Canviar les opcions de MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Camins"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Camins"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Camí del joc:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Camí joc:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Camí extra:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Especifica el camí de dades addicionals utilitzades pel joc"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Camí extra:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Camí de partides:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Especifica on es desaran les partides"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Partides:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Cap"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Per defecte"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Seleccioneu el fitxer SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Seleccioneu el directori amb les dades del joc"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Seleccioneu el directori addicional del joc"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Seleccioneu el directori de les partides desades"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr ""
-"Aquest identificador de joc ja està en ús. Si us plau, trieu-ne un altre."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~T~anca"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Surt de ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~Q~uant a..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Quant a ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pcions..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Canvia les opcions globals de ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~I~nicia"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Iniciant el joc seleccionat"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~C~arrega..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Carrega una partida pel joc seleccionat"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~A~fegeix Joc..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Mantingueu premut Shift per a l'Addició Massiva"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~E~dita Joc..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Canvia les opcions del joc"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~S~uprimeix Joc"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr ""
-"Elimina un joc de la llista. Els fitxers de dades del joc es mantenen "
-"intactes"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~A~fegeix Joc..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~E~dita Joc..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~S~uprimeix"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Cerca a la llista de jocs"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Cerca:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Neteja el valor"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Carrega partida:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Carrega"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Esteu segur que voleu executar el detector massiu de jocs? Això pot afegir "
-"una gran quantitat de jocs."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Sí"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "No"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM no ha pogut obrir el directori especificat!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM no ha pogut trobar cap joc al directori especificat!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Seleccioneu el joc:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Realment voleu suprimir la configuració d'aquest joc?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Aquest joc no suporta la càrrega de partides des del llançador."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM no ha pogut trobar cap motor capaç d'executar el joc seleccionat!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Afegeix Jocs"
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Addició Massiva..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Afegeix Joc..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Afegeix Joc..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... progrés ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "S'ha acabat la cerca!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "S'han cercat %d directoris ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "S'han trobat %d jocs nous ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Mai"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "cada 5 minuts"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "cada 10 minuts"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "cada 15 minuts"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "cada 30 minuts"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Cap"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Mode gràfic:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Mode de pintat:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Modes de dispersió especials suportats per alguns jocs"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Mode pantalla completa"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Correcció de la relació d'aspecte"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Corregeix la relació d'aspecte per jocs de 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr ""
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr ""
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Disp. preferit:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Disp. de música:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Especifica el dispositiu de so o l'emulador de tarja de so preferit"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Especifica el dispositiu de so o l'emulador de tarja de so de sortida"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Disp. preferit:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Disp. de música:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Emulador AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib s'utilitza per la música de molts jocs"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Freq. sortida:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Valors més alts especifiquen millor qualitat de so però pot ser que la "
-"vostra tarja de so no ho suporti"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Dispositiu GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr ""
-"Especifica el dispositiu de so per defecte per a la sortida General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr ""
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr ""
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "Fitxer SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "Algunes targes de so, Fluidsynth i Timidity suporten SoundFont"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Mode combinat AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Utilitza MIDI i la generació de so AdLib alhora"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Guany MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Disposit. MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Especifica el dispositiu de so per defecte per a la sortida de Roland MT-32/"
-"LAPC1/CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 real (desactiva l'emulació GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Marqueu si voleu utilitzar el vostre dispositiu hardware real de so "
-"compatible amb Roland connectat al vostre ordinador"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 real (sense emulació GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Activa el Mode Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Desactiva la conversió General MIDI pels jocs que tenen banda sonora per a "
-"Roland MT-32"
-
-#: gui/options.cpp:861
-#, fuzzy
-msgid "Don't use Roland MT-32 music"
-msgstr "Roland MT-32 real (sense emulació GM)"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Text i Veus:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Veus"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Subtítols"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Ambdós"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Velocitat de subt.:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Text i Veus:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Veus"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Subt"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Ambdós"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Mostra els subtítols i reprodueix la veu"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Veloc. de subt.:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Volum de música:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Volum de música:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Silenciar tot"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Volum d'efectes:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volum dels sons d'efectes especials"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Volum d'efectes:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Volum de veus:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Volum de veus:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Camí dels temes:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Camí temes:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"Especifica el camí de les dades addicionals utilitzades per tots els jocs o "
-"pel ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Camí dels connectors:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Camí de connectors:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Misc"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Misc"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Pintat GUI:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Desat automàtic:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Auto-desat:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Tecles"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Idioma GUI:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Idioma de la interfície d'usuari de ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Heu de reiniciar ScummVM perquè tots els canvis tingui efecte."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Seleccioneu el directori de les partides desades"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr ""
-"No es pot escriure al directori seleccionat. Si us plau, escolliu-ne un "
-"altre."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Seleccioneu el directori dels temes"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Seleccioneu el directori dels fitxers extra"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Seleccioneu el directori dels connectors"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"El tema que heu seleccionat no suporta l'idioma actual. Si voleu utilitzar "
-"aquest tema primer haureu de canviar a un altre idioma."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "No hi ha data desada"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "No hi ha hora desada"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "No hi ha temps de joc desat"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Suprimeix"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Realment voleu suprimir aquesta partida?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Data: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Hora: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Temps de joc: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Partida sense títol"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Seleccioneu un Tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX desactivats"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX desactivats"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Pintat estàndard (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Estàndard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Pintat amb antialias (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Amb antialias (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "El motor no suporta el nivell de depuració '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menú"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Salta"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pausa"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Salta la línia"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Error al executar el joc:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "No s'ha pogut trobar cap motor capaç d'executar el joc seleccionat"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr ""
-
-#: common/error.cpp:40
-#, fuzzy
-msgid "Game data not found"
-msgstr "No s'han trobat les dades del joc"
-
-#: common/error.cpp:42
-#, fuzzy
-msgid "Game id not supported"
-msgstr "Identificador de joc no suportat"
-
-#: common/error.cpp:44
-#, fuzzy
-msgid "Unsupported color mode"
-msgstr "Mode de color no suportat"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "S'ha denegat el permís de lectura"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "S'ha denegat el permís d'escriptura"
-
-#: common/error.cpp:52
-#, fuzzy
-msgid "Path does not exist"
-msgstr "El camí no existeix"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "El camí no és un directori"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "El camí no és un fitxer"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "No s'ha pogut crear el fitxer"
-
-#: common/error.cpp:61
-#, fuzzy
-msgid "Reading data failed"
-msgstr "Ha fallat la lectura"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Ha fallat l'escriptura de dades"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr ""
-
-#: common/error.cpp:68
-#, fuzzy
-msgid "Engine plugin does not support save states"
-msgstr "El motor no suporta el nivell de depuració '%s'"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-#, fuzzy
-msgid "Unknown error"
-msgstr "Error desconegut"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Verd"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Àmbar"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Verd"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Àmbar"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~C~ontinua"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "C~a~rrega"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~D~esa"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pcions"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~A~juda"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~Q~uant a"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~R~etorna al Llançador"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~R~etorna al Llançador"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Desa la partida:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Desa"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~D~'acord"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~C~ancel·la"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~ecles"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Mode de vídeo actual:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Correcció de la relació d'aspecte"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~A~nterior"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~S~egüent"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~T~anca"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr ""
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr ""
-
-#: engines/scumm/help.cpp:76
-#, fuzzy
-msgid "Skip line of text"
-msgstr "Salta la línia"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr ""
-
-#: engines/scumm/help.cpp:77
-#, fuzzy
-msgid "Skip cutscene"
-msgstr "Salta la línia"
-
-#: engines/scumm/help.cpp:78
-#, fuzzy
-msgid "Space"
-msgstr "Veus"
-
-#: engines/scumm/help.cpp:78
-#, fuzzy
-msgid "Pause game"
-msgstr "Desa la partida:"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr ""
-
-#: engines/scumm/help.cpp:79
-#, fuzzy
-msgid "Load game state 1-10"
-msgstr "Carrega partida:"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr ""
-
-#: engines/scumm/help.cpp:80
-#, fuzzy
-msgid "Save game state 1-10"
-msgstr "Desa la partida:"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Surt"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr ""
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr ""
-
-#: engines/scumm/help.cpp:87
-#, fuzzy
-msgid "Music volume up / down"
-msgstr "Volum de música:"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr ""
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr ""
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr ""
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr ""
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr ""
-
-#: engines/scumm/help.cpp:94
-#, fuzzy
-msgid "Show / Hide console"
-msgstr "Mostra/Oculta el cursor"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr ""
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr ""
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr ""
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr ""
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr ""
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr ""
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr ""
-
-#: engines/scumm/help.cpp:102
-#, fuzzy
-msgid "Toggle aspect-ratio correction"
-msgstr "Correcció de la relació d'aspecte"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr ""
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr ""
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr ""
-
-#: engines/scumm/help.cpp:110
-msgid " or incorrect game behavior."
-msgstr ""
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr ""
-
-#: engines/scumm/help.cpp:116
-#, fuzzy
-msgid "Main game controls:"
-msgstr "Canvia les opcions del joc"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-#, fuzzy
-msgid "Push"
-msgstr "Pausa"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr ""
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr ""
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr ""
-
-#: engines/scumm/help.cpp:126
-#, fuzzy
-msgid "Go to"
-msgstr "Amunt"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr ""
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr ""
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr ""
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr ""
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr ""
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-#, fuzzy
-msgid "Turn off"
-msgstr "So engegat/parat"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr ""
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr ""
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr ""
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr ""
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr ""
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr ""
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr ""
-
-#: engines/scumm/help.cpp:158
-#, fuzzy
-msgid "Switch"
-msgstr "Veus"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr ""
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr ""
-
-#: engines/scumm/help.cpp:174
-#, fuzzy
-msgid "Travel"
-msgstr "Desa"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr ""
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr ""
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr ""
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr ""
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr ""
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr ""
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr ""
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr ""
-
-#: engines/scumm/help.cpp:216
-#, fuzzy
-msgid "KeyUp"
-msgstr "Tecles"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr ""
-
-#: engines/scumm/help.cpp:217
-#, fuzzy
-msgid "KeyDown"
-msgstr "Avall"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr ""
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr ""
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr ""
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr ""
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr ""
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr ""
-
-#: engines/scumm/help.cpp:232
-#, fuzzy
-msgid "Tongue"
-msgstr "Zona"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr ""
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr ""
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr ""
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr ""
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr ""
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr ""
-
-#: engines/scumm/help.cpp:253
-#, fuzzy
-msgid "Other game controls:"
-msgstr "Canvia les opcions del joc"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr ""
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr ""
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr ""
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr ""
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr ""
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr ""
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr ""
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr ""
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr ""
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-#, fuzzy
-msgid "Switching characters:"
-msgstr "Commuta el personatge"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr ""
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr ""
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr ""
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr ""
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr ""
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr ""
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr ""
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr ""
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr ""
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr ""
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr ""
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr ""
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr ""
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr ""
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr ""
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr ""
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr ""
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr ""
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr ""
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr ""
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr ""
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr ""
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr ""
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr ""
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"No s'ha pogut desar l'estat del joc al fitxer:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"No s'ha pogut carregar l'estat del joc del fitxer:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"S'ha desat l'estat del joc en el fitxer:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "Mode ~Z~ip activat"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~T~ransicions activades"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~E~fecte de l'aigua activat"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Desa la partida:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Restaura"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"No s'ha pogut carregar l'estat del joc del fitxer:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"No s'ha pogut desar l'estat del joc al fitxer:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"No s'ha pogut desar l'estat del joc al fitxer:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"No s'ha pogut desar l'estat del joc al fitxer:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Desa la partida:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Carrega partida:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Desa la partida:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Emulador OPL de MAME"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Emulador OPL DOSBox"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Sense música"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulador d'àudio Amiga"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Emulador d'AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Emulador d'Apple II GS (NO IMPLEMENTAT)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulador d'àudio C64"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Iniciant l'Emulador de MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Emulador de MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Emulador Altaveu PC"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Emulador d'IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Mapa de teclat:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Actiu)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Joc)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "MIDI de Windows"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Menú Principal de ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "Mode ~e~squerrà"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "Controls de lluita de l'~I~ndy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Mostra el cursor del ratolí"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Enganxa a les vores"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Desplaçament X del toc"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Desplaçament Y del toc"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Utilitza el control del cursor a l'estil del trackpad dels portàtils"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Toc per a clic esquerre, doble toc per a clic dret"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensibilitat"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Escalat inicial de la pantalla superior:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Escalat de la pantalla principal:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Escalat per hardware (ràpid, però de baixa qualitat)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Escalat per software (bona qualitat, però més lent)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Sense escalar (haureu de desplaçar-vos a esquerra i dreta)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Lluminositat:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Alta qualitat d'àudio (més lent) (reiniciar)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Desactiva l'apagat automàtic"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Mode Touchpad activat."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Mode Touchpad desactivat."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Mode Touchpad activat."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Mode Touchpad desactivat."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (sense escalar)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (no escalat)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Correcció de la relació d'aspecte"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Correcció de la relació d'aspecte"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-msgid "Active graphics filter:"
-msgstr ""
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Mode de pintat:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr ""
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr ""
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Mode de vídeo actual:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Amunt"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Avall"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Esquerra"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Dreta"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Clic esquerre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Clic dret"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zona"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Funció Múltiple"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Commuta el personatge"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Salta el text"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Mode ràpid"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Depurador"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menú global"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Teclat virtual"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Mapejador de tecles"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Vols sortir?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Vídeo"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Mode de vídeo actual:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Double-strike"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Underscan horitzontal:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Underscan vertical:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Entrada"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Sensibilitat del Pad GC:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Acceleració del Pad GC:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Estat:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Desconegut"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Munta el DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Desmunta el DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Servidor:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Compartició:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Nom d'usuari:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Contrasenya:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Inicia la xarxa"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Munta SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Desmunta SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "El DVD s'ha muntat satisfactòriament"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Error al muntar el DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "El DVD no està muntat"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Xarxa activa, compartició muntada"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Xarxa activa"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", error al muntar la compartició"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", compartició no muntada"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Xarxa inactiva"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Iniciant la xarxa"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "S'ha excedit el temps d'iniciació de la xarxa"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Xarxa no iniciada (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Oculta la barra d'eines"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Mostra el teclat"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "So engegat/parat"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Clic dret"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Mostra/Oculta el cursor"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Vista lliure"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Amplia"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Redueix"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Mapeja tecles"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Cursor Amunt"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Cursor Avall"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Cursor Esquerra"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Cursor Dreta"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Voleu carregar o desar el joc?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Esteu segur de voler sortir? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Teclat"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Rotar"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Utilitzant el controlador SDL "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Pantalla "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Voleu fer una cerca automàtica?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr ""
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Realment voleu suprimir aquesta partida?"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Launcher"
-msgstr ""
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Vols sortir?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "S'han trobat %d jocs nous."
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Emulador de FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Camí incorrecte"
+# Catalan translation for ScummVM.
+# Copyright (C) 2007-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Jordi Vilalta Prat <jvprat@jvprat.com>, 2007-2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-08-18 11:38+0100\n"
+"Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n"
+"Language-Team: Catalan <scummvm-devel@lists.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Catalan\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(compilat el %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Característiques compilades:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Motors disponibles:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Amunt"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Torna al nivell de directoris anterior"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Amunt"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Escull"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Tanca"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Clic del ratolí"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Mostra el teclat"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Assigna les tecles"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Sel·leccioneu una acció a assignar"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Assigna"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "D'acord"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Seleccioneu una acció i cliqueu 'Assigna'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Tecla associada : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Tecla associada : cap"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Seleccioneu una acció"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Premeu la tecla a associar"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Joc"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "Identificador:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Identificador de joc curt utilitzat per referir-se a les partides i per "
+"executar el joc des de la línia de comandes"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nom:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Títol complet del joc"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nom:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Idioma:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Idioma del joc. Això no convertirà la vostra versió Espanyola del joc a "
+"Anglès"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<per defecte>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plataforma:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plataforma per la que el joc es va dissenyar originalment"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Platafor.:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Gràfics"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Fer canvis sobre les opcions globals de gràfics"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Canviar les opcions de gràfics"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Àudio"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Fer canvis sobre les opcions globals d'àudio"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Canviar les opcions d'àudio"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Fer canvis sobre les opcions globals de volum"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Canviar les opcions de volum"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Fer canvis sobre les opcions globals de MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Canviar les opcions de MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Fer canvis sobre les opcions globals de MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Canviar les opcions de MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Camins"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Camins"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Camí del joc:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Camí joc:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Camí extra:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Especifica el camí de dades addicionals utilitzades pel joc"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Camí extra:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Camí de partides:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Especifica on es desaran les partides"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Partides:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Cap"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Per defecte"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Seleccioneu el fitxer SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Seleccioneu el directori amb les dades del joc"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Seleccioneu el directori addicional del joc"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Seleccioneu el directori de les partides desades"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr ""
+"Aquest identificador de joc ja està en ús. Si us plau, trieu-ne un altre."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~T~anca"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Surt de ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~Q~uant a..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Quant a ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pcions..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Canvia les opcions globals de ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~I~nicia"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Iniciant el joc seleccionat"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~C~arrega..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Carrega una partida pel joc seleccionat"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~A~fegeix Joc..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Mantingueu premut Shift per a l'Addició Massiva"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~E~dita Joc..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Canvia les opcions del joc"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~S~uprimeix Joc"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr ""
+"Elimina un joc de la llista. Els fitxers de dades del joc es mantenen "
+"intactes"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~A~fegeix Joc..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~E~dita Joc..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~S~uprimeix"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Cerca a la llista de jocs"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Cerca:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Neteja el valor"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Carrega partida:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Carrega"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Esteu segur que voleu executar el detector massiu de jocs? Això pot afegir "
+"una gran quantitat de jocs."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Sí"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "No"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM no ha pogut obrir el directori especificat!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM no ha pogut trobar cap joc al directori especificat!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Seleccioneu el joc:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Realment voleu suprimir la configuració d'aquest joc?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Aquest joc no suporta la càrrega de partides des del llançador."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM no ha pogut trobar cap motor capaç d'executar el joc seleccionat!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Afegeix Jocs"
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Addició Massiva..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... progrés ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "S'ha acabat la cerca!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "S'han trobat %d jocs nous, s'han ignorat %d jocs afegits prèviament."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "S'han cercat %d directoris ..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr ""
+"S'han trobat %d jocs nous, s'han ignorat %d jocs afegits anteriorment ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Mai"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "cada 5 minuts"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "cada 10 minuts"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "cada 15 minuts"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "cada 30 minuts"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Cap"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "No s'han pogut aplicar alguns canvis de les opcions gràfiques:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "no s'ha pogut canviar el mode de vídeo"
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "no s'ha pogut canviar l'ajust de pantalla completa"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "no s'ha pogut canviar l'ajust de la correcció d'aspecte"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Mode gràfic:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Mode de pintat:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Modes de tramat especials suportats per alguns jocs"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Mode pantalla completa"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Correcció de la relació d'aspecte"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Corregeix la relació d'aspecte per jocs de 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Elimina el tramat d'EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Activa l'eliminació del tramat en els jocs EGA que ho suportin"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Disp. preferit:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Disp. de música:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Especifica el dispositiu de so o l'emulador de tarja de so preferit"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Especifica el dispositiu de so o l'emulador de tarja de so de sortida"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Disp. preferit:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Disp. de música:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Emulador AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib s'utilitza per la música de molts jocs"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Freq. sortida:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Valors més alts especifiquen millor qualitat de so però pot ser que la "
+"vostra tarja de so no ho suporti"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Dispositiu GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr ""
+"Especifica el dispositiu de so per defecte per a la sortida General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "No utilitzis música General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Utilitza el primer dispositiu disponible"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "Fitxer SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "Algunes targes de so, Fluidsynth i Timidity suporten SoundFont"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Mode combinat AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Utilitza MIDI i la generació de so AdLib alhora"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Guany MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Disposit. MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Especifica el dispositiu de so per defecte per a la sortida de Roland MT-32/"
+"LAPC1/CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 real (desactiva l'emulació GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Marqueu si voleu utilitzar el vostre dispositiu hardware real de so "
+"compatible amb Roland connectat al vostre ordinador"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 real (sense emulació GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Activa el Mode Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Desactiva la conversió General MIDI pels jocs que tenen banda sonora per a "
+"Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "No utilitzis música de Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Text i Veus:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Veus"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Subtítols"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Ambdós"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Velocitat de subt.:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Text i Veus:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Veus"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Subt"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Ambdós"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Mostra els subtítols i reprodueix la veu"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Veloc. de subt.:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Volum de música:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Volum de música:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Silenciar tot"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Volum d'efectes:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volum dels sons d'efectes especials"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Volum d'efectes:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Volum de veus:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Volum de veus:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Camí dels temes:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Camí temes:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"Especifica el camí de les dades addicionals utilitzades per tots els jocs o "
+"pel ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Camí dels connectors:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Camí de connectors:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Misc"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Misc"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Pintat GUI:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Desat automàtic:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Auto-desat:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Tecles"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Idioma GUI:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Idioma de la interfície d'usuari de ScummVM"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Heu de reiniciar ScummVM perquè tots els canvis tinguin efecte."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Seleccioneu el directori de les partides desades"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr ""
+"No es pot escriure al directori seleccionat. Si us plau, escolliu-ne un "
+"altre."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Seleccioneu el directori dels temes"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Seleccioneu el directori dels fitxers extra"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Seleccioneu el directori dels connectors"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"El tema que heu seleccionat no suporta l'idioma actual. Si voleu utilitzar "
+"aquest tema primer haureu de canviar a un altre idioma."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "No hi ha data desada"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "No hi ha hora desada"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "No hi ha temps de joc desat"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Suprimeix"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Realment voleu suprimir aquesta partida?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Data: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Hora: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Temps de joc: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Partida sense títol"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Seleccioneu un Tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX desactivats"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX desactivats"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Pintat estàndard (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Estàndard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Pintat amb antialias (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Amb antialias (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "El motor no suporta el nivell de depuració '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menú"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Salta"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pausa"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Salta la línia"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Error al executar el joc:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "No s'ha pogut trobar cap motor capaç d'executar el joc seleccionat"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Cap error"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "No s'han trobat les dades del joc"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Identificador de joc no suportat"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Mode de color no suportat"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "S'ha denegat el permís de lectura"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "S'ha denegat el permís d'escriptura"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "El camí no existeix"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "El camí no és un directori"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "El camí no és un fitxer"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "No s'ha pogut crear el fitxer"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Ha fallat la lectura de dades"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Ha fallat l'escriptura de dades"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "No s'ha pogut trobar un connector de motor apropiat"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "El connector de motor no suporta el nivell partides desades'"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "Cancel·lat per l'usuari"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Error desconegut"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Verd"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Àmbar"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Verd"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Àmbar"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "El joc a '%s' sembla ser desconegut."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+"Informeu de la següent informació a l'equip de ScummVM juntament amb el"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr "nom del joc que heu provat d'afegir i la seva versió/llengua/etc.:"
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~C~ontinua"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "C~a~rrega"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~D~esa"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pcions"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~A~juda"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~Q~uant a"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~R~etorna al Llançador"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~R~etorna al Llançador"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Desa la partida:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Desa"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"Aquest motor no ofereix ajuda dins el joc. Consulteu el fitxer README per a "
+"la informació bàsica i les instruccions sobre com obtenir més assistència."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~D~'acord"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~C~ancel·la"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~ecles"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "No s'ha pogut iniciar el format de color."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "No s'ha pogut canviar al mode de vídeo: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "No s'ha pogut aplicar la configuració de la relació d'aspecte."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "No s'ha pogut aplicar l'ajust de pantalla completa."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"Sembla que esteu jugant a aquest joc\n"
+"directament des del CD. Això causa\n"
+"problemes i es recomana que copieu\n"
+"els fitxers de dades al disc dur.\n"
+"Consulteu el fitxer README per a més detalls."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"Aquest joc té pistes d'àudio al disc. Aquestes\n"
+"pistes s'han d'extreure del disc utilitzant una\n"
+"eina d'extracció d'àudio de CD apropiada per\n"
+"tal de poder sentir la música del joc.\n"
+"Consulteu el fitxer README per a més detalls."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"AVÍS: El joc que esteu a punt d'iniciar encara no està completament suportat "
+"pel ScummVM. Com a tal, probablement serà inestable, i pot ser que les "
+"partides que deseu no funcionin en versions futures de ScummVM."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "Inicia de totes maneres"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Esteu segur de voler sortir? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Esteu segur de voler sortir? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Surt"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Seleccioneu un Tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~A~nterior"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~S~egüent"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~T~anca"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Veus"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Subtítols"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Subtítols"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Veus"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Comandes comuns de teclat:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Diàleg de desat / càrrega"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Salta la línia de text"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Salta la seqüència de video"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Espai"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pausa la partida"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Carrega partida 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Desa partida 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Intro"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Commuta la pantalla completa"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Puja / Baixa el volum de la música"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Velocitat de text més lenta / més ràpida"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simula el botó esquerre del ratolí"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simula el botó dret del ratolí"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Comandes especials de teclat:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Mostra / Oculta la consola"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Inicia el depurador"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Mostra el consum de memòria"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Executa en mode ràpid (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Executa en mode realment ràpid (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Commuta la captura del ratolí"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Commuta entre els filtres gràfics"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Augmenta / Disminueix el factor d'escala"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Commuta la correcció de la relació d'aspecte"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Tingueu en compte que no es"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " recomana utilitzar ctrl-f i ctrl-g"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " ja que poden provocar errors o"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " comportament del joc incorrecte."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Filant des del teclat:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Controls principals del joc:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Empeny"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Estira"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Dóna"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Obre"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Vés a"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Obté"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Utilitza"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Llegeix"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Nou noi"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Engega"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Apaga"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Vés a"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Agafa"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Què és"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Desbloqueja"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Posa a"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Aixecar el vol"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Arregla"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Commuta"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Mira"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Parla"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Viatja"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "A en Henry / A l'Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "toca un Do menor amb la filosa"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "toca un Re amb la filosa"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "toca un Mi amb la filosa"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "toca un Fa amb la filosa"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "toca un Sol amb la filosa"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "toca un La amb la filosa"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "toca un Si amb la filosa"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "toca un Do major amb la filosa"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "empentar"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "estirar"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Parla amb"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Mira"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "engega"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "apaga"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Tecla amunt"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Remarcar el diàleg anterior"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Tecla avall"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Remarcar el diàleg següent"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Camina"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventari"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objecte"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Blanc i negre / Color"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Ulls"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Llengua"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Cop de puny"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Puntada"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Examina"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Cursor normal"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comunicador"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Desa / Carrega / Opcions"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Altres controls del joc"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventari:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Desplaça la llista amunt"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Desplaça la llista avall"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Element superior esquerre"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Element inferior esquerre"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Element superior dret"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Element inferior dret"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Element mig esquerre"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Element mig dret"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Canvia els personatges:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Segon noi"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tercer noi"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Controls de lluita (teclat numèric):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Pas enrere"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Bloqueig alt"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Bloqueig mig"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Bloqueig baix"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Puntada alta"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Puntada mitja"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Puntada baixa"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Aquests són per l'Indy a l'esquerra."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Quan l'Indy és a la dreta,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "el 7, el 4 i l'1 s'intercanvien amb"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "el 9, el 6 i el 3, respectivament."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Controls del biplà (teclat numèric):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Vola amunt i a l'esquerra"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Vola a l'esquerra"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Vola avall i a l'esquerra"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Vola amunt"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Vola recte"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Vola avall"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Vola amunt i a la dreta"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Vola a la dreta"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Vola avall i a la dreta"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"El suport de MIDI natiu requereix l'actualització Roland de LucasArts,\n"
+"però no s'ha trobat %s. S'utilitzarà AdLib."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"No s'ha pogut desar l'estat del joc al fitxer:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"No s'ha pogut carregar l'estat del joc del fitxer:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"S'ha desat l'estat del joc en el fitxer:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Normalment, en aquest punt s'engegaria el Maniac Mansion. Però ScummVM no ho "
+"fa encara. Per jugar-hi, aneu a 'Afegir joc' al menú principal de ScummVM i "
+"seleccioneu el directori 'Maniac' de dins del directori del joc Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Mode ~Z~ip activat"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~T~ransicions activades"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "~L~lença la pàgina"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "~M~ostra el mapa"
+
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr "~M~enú Principal"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~E~fecte de l'aigua activat"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Recupera la partida:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Restaura"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "No s'ha trobat el fitxer d'escena '%s'!"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "No s'ha pogut carregar l'estat del joc del fitxer."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "No s'ha pogut desar l'estat del joc al fitxer."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "No s'ha pogut esborrar el fitxer."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "No s'ha pogut desar l'estat del joc"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"Sembla que esteu utilitzant un dispositiu General\n"
+"MIDI, però el joc només suporta MIDI de Roland\n"
+"MT32. Intentarem convertir els instruments de\n"
+"Roland MT32 als de General MIDI. És possible\n"
+"que algunes pistes no es reprodueixin correctament."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "No s'ha pogut desar la partida!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"No s'ha pogut trobar el fitxer \"sky.cpt\"!\n"
+"Baixeu-lo de www.scummvm.org"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"El fitxer \"sky.cpt\" té una mida incorrecta.\n"
+"Torneu a baixar-lo de www.scummvm.org"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+"S'han trobat escenes en DXA, però s'ha compilat el ScummVM sense suport de "
+"zlib"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "Les escenes MPEG2 ja no estan suportades"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "No s'ha trobat l'escena '%s'"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"El ScummVM ha trobat que teniu partides desades antigues de Broken Sword 1 "
+"que s'haurien de convertir.\n"
+"El format de les partides desades antigues no està suportat, per la qual "
+"cosa no podreu carregar aquestes partides si no les convertiu.\n"
+"\n"
+"Premeu D'Acord per convertir-les ara, en cas contrari se us tornarà a "
+"demanar la propera vegada que engegueu el joc.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"La nova partida guardada d'aquest joc ja existeix!\n"
+"Voleu conservar la partida guardada antiga (%s) o la nova (%s)?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "Mantingues el vell"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "Mantingues el nou"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "Aquest és el final de la Demo del Broken Sword 1"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"No s'ha pogut desar a l'espai %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "Carregant la partida..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "Desant la partida..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"El ScummVM ha trobat que teniu partides desades antigues de Nippon Safes que "
+"s'haurien de reanomenar.\n"
+"El noms antics de les partides desades no estan suportats, per la qual cosa "
+"no podreu carregar aquestes partides si no les convertiu.\n"
+"\n"
+"Premeu D'Acord per convertir-les ara, en cas contrari se us tornarà a "
+"demanar la propera vegada.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM ha convertit satisfactòriament totes les partides desades."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM ha mostrat avisos a la finestra de consola i no es pot garantir que "
+"tots els fitxers s'hagin convertit.\n"
+"\n"
+"Informeu-ne a l'equip."
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Emulador OPL de MAME"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Emulador OPL de DOSBox"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"No s'ha pogut trobar el dispositiu d'àudio seleccionat '%s' (p.e. pot estar "
+"desactivat o desconnectat)."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr "Provant de recórrer al següent dispositiu disponible..."
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"No es pot utilitzar el dispositiu d'àudio seleccionat '%s'. Vegeu el fitxer "
+"de registre per a més informació."
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"No s'ha pogut trobar el dispositiu d'àudio preferit '%s' (p.e. pot estar "
+"desactivat o desconnectat)."
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"No es pot utilitzar el dispositiu d'àudio preferit '%s'. Vegeu el fitxer de "
+"registre per a més informació."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Sense música"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulador d'àudio Amiga"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Emulador d'AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Emulador d'Apple II GS (NO IMPLEMENTAT)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulador d'àudio C64"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "Iniciant l'Emulador de MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Emulador de MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Emulador Altaveu PC"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Emulador d'IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Assignacions de teclat:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Actiu)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Joc)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "MIDI de Windows"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Menú Principal de ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "Mode ~e~squerrà"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "Controls de lluita de l'~I~ndy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Mostra el cursor del ratolí"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Enganxa a les vores"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Desplaçament X del toc"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Desplaçament Y del toc"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Utilitza el control del cursor a l'estil del trackpad dels portàtils"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Toc per a clic esquerre, doble toc per a clic dret"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensibilitat"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Escalat inicial de la pantalla superior:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Escalat de la pantalla principal:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Escalat per hardware (ràpid, però de baixa qualitat)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Escalat per software (bona qualitat, però més lent)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Sense escalar (haureu de desplaçar-vos a esquerra i dreta)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Lluminositat:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Alta qualitat d'àudio (més lent) (reiniciar)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Desactiva l'apagat automàtic"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "S'ha activat el mode de clic-i-arrossega."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "S'ha desactivat el mode clic-i-arrossega."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Mode Touchpad activat."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Mode Touchpad desactivat."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr "Amaga ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr "Oculta els altres"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr "Mostra-ho tot"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr "Finestra"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr "Minimitza"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (sense escalar)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (no escalat)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "S'ha activat la correcció de la relació d'aspecte"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "S'ha desactivat la correcció de la relació d'aspecte"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "Filtre de gràfics actiu:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "Mode de finestra"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Conserva"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "Mode de vídeo actual"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "Escala actual"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "Mode de filtre actiu: Lineal"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "Mode de filtre actiu: Pròxim"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Amunt"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Avall"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Esquerra"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Dreta"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Clic esquerre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Clic dret"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zona"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Funció Múltiple"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Commuta el personatge"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Salta el text"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Mode ràpid"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Depurador"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menú global"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Teclat virtual"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Assignador de tecles"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Vols sortir?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Vídeo"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Mode de vídeo actual:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Double-strike"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Underscan horitzontal:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Underscan vertical:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Entrada"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Sensibilitat del Pad GC:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Acceleració del Pad GC:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Estat:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Desconegut"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Munta el DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Desmunta el DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Servidor:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Compartició:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Nom d'usuari:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Contrasenya:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Inicia la xarxa"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Munta SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Desmunta SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "El DVD s'ha muntat satisfactòriament"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Error al muntar el DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "El DVD no està muntat"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Xarxa activa, compartició muntada"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Xarxa activa"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", error al muntar la compartició"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", compartició no muntada"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Xarxa inactiva"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "Iniciant la xarxa"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "S'ha excedit el temps d'iniciació de la xarxa"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "Xarxa no iniciada (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Oculta la barra d'eines"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Mostra el teclat"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "So engegat/parat"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Clic dret"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Mostra/Oculta el cursor"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Vista lliure"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Amplia"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Redueix"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Mapeja tecles"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Cursor Amunt"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Cursor Avall"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Cursor Esquerra"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Cursor Dreta"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Voleu carregar o desar el joc?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Esteu segur de voler sortir? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Teclat"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Rotar"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Utilitzant el controlador SDL "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Pantalla "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Voleu fer una cerca automàtica?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Assigna l'acció del clic dret"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "Heu d'assignar una tecla a l'acció 'Clic dret' per jugar a aquest joc"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Assigna l'acció d'ocultar la barra d'eines"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Heu d'assignar una tecla a l'acció 'Ocultar la barra d'eines' per jugar a "
+"aquest joc"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Assigna l'acció d'Ampliar el Zoom (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Assigna l'acció de Reduir el Zoom (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"No us oblideu d'assignar una tecla a l'acció 'Ocultar la barra d'eines' per "
+"veure l'inventari complet"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "Realment voleu tornar al Llançador?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "Llançador"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "Estàs segur de voler sortir?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "'Mode Toc' de pantalla tàctil - Clic esquerre"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "'Mode Toc' de pantalla tàctil - Clic dret"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "'Mode Toc' de pantalla tàctil - Flotant (sense clic)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "Volum màxim"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "Pujant el volum"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "Volum mínim"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "Baixant el volum"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr "Comprova les actualitzacions..."
diff --git a/po/cs_CZ.po b/po/cs_CZ.po
index 9d2751a711..07bcad74a0 100644
--- a/po/cs_CZ.po
+++ b/po/cs_CZ.po
@@ -1,2655 +1,2797 @@
-# Czech translation for ScummVM.
-# Copyright (C) 2001-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Zbynìk Schwarz <zbynek.schwarz@gmail.com>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-06-24 06:44+0100\n"
-"Last-Translator: Zbynìk Schwarz <zbynek.schwarz@gmail.com>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Cesky\n"
-"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
-"X-Poedit-Language: Czech\n"
-"X-Poedit-Country: CZECH REPUBLIC\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(sestaveno na %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Zakompilované Funkce:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Dostupná jádra:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Jít nahoru"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Jít na pøedchozí úroveò adresáøe"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Jít nahoru"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Zru¹it"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Zvolit"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Zavøít"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Kliknutí my¹í"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Zobrazit klávesnici"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Pøemapovat klávesy"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Zvolte èinnost k mapování"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Mapovat"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Zvolte èinnost a kliknìte 'Mapovat'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Pøiøazená klávesa: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Pøiøazená klávesa: ¾ádná"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Prosím vyberte èinnost"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Zmáèknìte klávesu pro pøiøazení"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Hra"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Krátký identifikátor her, pou¾ívaný jako odkaz k ulo¾eným hrám a spu¹tìní "
-"hry z pøíkazového øádku"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Jméno"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Úplný název hry"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Jméno:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Jazyk:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr "Jazyk hry. Toto z Va¹í ©panìlské verze neudìlá Anglickou"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<výchozí>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Platforma:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Platforma, pro kterou byla hra pùvodnì vytvoøena"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Platforma:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Obraz"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Potlaèit globální nastavení obrazu"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Potlaèit globální nastavení obrazu"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Zvuk"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Potlaèit globální nastavení zvuku"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Potlaèit globální nastavení zvuku"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Hlasitost"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Hlasitost"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Potlaèit globální nastavení hlasitosti"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Potlaèit globální nastavení hlasitosti"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Potlaèit globální nastavení MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Potlaèit globální nastavení MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Potlaèit globální nastavení MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Potlaèit globální nastavení MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Cesty"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Cesty"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Cesta Hry:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Cesta Hry:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Dodateèná Cesta:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Stanoví cestu pro dodateèná data pou¾itá ve høe"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Dodateèná Cesta:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Cesta pro ulo¾ení:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Stanovuje, kam jsou umístìny Va¹e ulo¾ené hry"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Cesta pro ulo¾ení:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "®ádné"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Výchozí"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Vybrat SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Vyberte adresáø s daty hry"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Vyberte dodateèný adresáø hry"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Vyberte adresáø pro ulo¾ené hry"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Toto ID hry je u¾ zabrané. Vyberte si, prosím, jiné."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~U~konèit"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Ukonèit ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~O~ Programu..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "O ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~V~olby..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Zmìnit globální volby ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~pustit"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Spustit zvolenou hru"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~N~ahrát..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Nahrát ulo¾enou pozici pro zvolenou hru"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~P~øidat hru..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Podr¾te Shift pro Hromadné Pøidání"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~U~pravit Hru..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Zmìnit volby hry"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~O~dstranit Hru"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Odstranit hru ze seznamu. Herní data zùstanou zachována"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~P~øidat hru..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~U~pravit hru..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~O~dstranit hru"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Hledat v seznamu her"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Hledat:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Vyèistit hodnotu"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Nahrát hru:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Nahrát"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Opravdu chcete spustit hromadnou detekci her? Toto by mohlo potenciálnì "
-"pøidat velkou spoustu her. "
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ano"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Ne"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM nemohl tento adresáø otevøít!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM nemohl v zadaném adresáøi najít ¾ádnou hru!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Vybrat hru:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Opravdu chcete odstranit nastavení této hry?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Tato hra nepodporuje spou¹tìní her ze spou¹tìèe"
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM nemohl najít ¾ádné jádro schopné vybranou hru spustit!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Hromadné Pøidání..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Hromadné Pøidání..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Pøidat Hru..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Pøidat Hru..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... prùbìh ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Hledání dokonèeno!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr "Objeveno %d nových her, ignorováno %d døíve pøidaných her."
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Prohledáno %d adresáøù..."
-
-#: gui/massadd.cpp:253
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Objeveno %d nových her, ignorováno %d døíve pøidaných her ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Nikdy"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "Ka¾dých 5 min"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "Ka¾dých 10 min"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "Ka¾dých 15 min"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "Ka¾dých 30 min"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "®ádné"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr "Nelze pou¾ít nìkteré zmìny mo¾ností grafiky:"
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr "re¾im obrazu nemohl být zmìnìn."
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr "nastavení celé obrazovky nemohlo být zmìnìno"
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr "nastavení pomìru stran nemohlo být zmìnìno"
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Re¾im obrazu:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Re¾im vykreslení:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Speciální re¾imy chvìní podporované nìkterými hrami"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Re¾im celé obrazovky"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Korekce pomìru stran"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Korigovat pomìr stran pro hry 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "Nerozkládání EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Povolit nerozkládání v EGA hrách, které to podporují"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Prioritní Zaøízení:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Hudební zaøízení"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Stanoví prioritní zvukové zaøízení nebo emulátor zvukové karty"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Stanoví výstupní zvukové zaøízení nebo emulátor zvukové karty"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Prioritní Zaø.:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Hudební zaøízení"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib emulátor"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib se pou¾ívá pro hudbu v mnoha hrách"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Výstup. frekvence:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Vy¹¹í hodnota zpùsobí lep¹í kvalitu zvuku, ale nemusí být podporována Va¹i "
-"zvukovou kartou"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM Zaøízení:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Stanoví výchozí zvukové zaøízení pro výstup General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Nepou¾ívat hudbu General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Pou¾ít první dostupné zaøízení"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFont je podporován nìkterými zvukovými kartami, Fluidsynth a Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Smí¹ený re¾im AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Pou¾ít obì zvukové generace MIDI a AdLib"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Zesílení MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Zaøízení MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Stanoví výchozí zvukové výstupní zaøízení pro Roland MT-32/LAPC1/CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Opravdový Roland MT-32 (vypne GM emulaci)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Za¹krtnìte, pokud chcete pou¾ít pravé hardwarové zaøízení kompatibilní s "
-"Roland, pøipojené k Va¹emu poèítaèi"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Opravdový Roland MT-32 (¾ádná GM emulace)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Zapnout re¾im Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Vypne mapování General MIDI pro hry s Roland MT-32 zvukovým doprovodem"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Nepou¾ívat hudbu Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Text a Øeè"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Øeè"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Titulky"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Oba"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Rychlost titulkù:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Text a Øeè:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Øeè"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Titl"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Oba"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Zobrazit titulky a pøehrávat øeè"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Rychlost titulkù"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Hlasitost hudby"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Hlasitost hudby"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Ztlumit V¹e"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Hlasitost zvukù"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Hlasitost speciálních zvukových efektù"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Hlasitost zvukù"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Hlasitost øeèi"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Hlasitost øeèi"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Cesta ke Vzhledu:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Cesta ke Vzhledu:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Stanoví cestu k dodateèným datùm pou¾ívaná v¹emi hrami nebo ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Cesta k Pluginùm:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Cesta k Pluginùm:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Rùzné"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Rùzné"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Vzhled:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI Vykreslovaè:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autoukládání:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autoukládání:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Klávesy"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Jazyk GUI"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Jazyk GUI ScummVM"
-
-#: gui/options.cpp:1295
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Pro pou¾ití tìchto nastavení musíte restartovat ScummVM."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Vybrat adresáø pro ulo¾ené hry"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "Do zvoleného adresáøe nelze zapisovat. Vyberte, prosím, jiný."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Vyberte adresáø pro vhledy GUI"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Vyberte adresáø pro dodateèné soubory"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Vyberte adresáø pro zásuvné moduly"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Vzhled, který jste zvolili, nepodporuje Vá¹ souèasný jazyk. Pokud chcete "
-"tento vzhled pou¾ít, musíte nejdøíve pøepnout na jiný jazyk."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Neulo¾ena ¾ádná data"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "®ádný ulo¾ený èas"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "®ádná ulo¾ená doba hraní"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Smazat"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Opravdu chcete tuto ulo¾enou hru vymazat"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Datum:"
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Èas:"
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Doba hraní:"
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Bezejmenný ulo¾ený stav"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Vyberte Vzhled"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX zakázáno"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX zakázáno"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standardní Vykreslovaè (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standardní (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Vykreslovaè s vyhlazenými hranami (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "S vyhlazenými hranami (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Jádro nepodporuje úroveò ladìní '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Pøeskoèit"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pauza"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Pøeskoèit øádek"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Chyba pøi spu¹tìní hry:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Nelze nalézt ¾ádné jádro schopné vybranou hru spustit"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "®ádná chyba"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Data hry nenalezena"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Id hry není podporováno"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Nepodporovaný barevný re¾im"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Oprávnìní ke ètení zamítnuto"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Oprávnìní k zápisu zamítnuto"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Cesta neexistuje"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Cesta není adresáø"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Cesta není soubor"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Nelze vytvoøit soubor"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Ètení dat selhalo"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Zápis dat selhal"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Nelze nalézt vhodný zás. modul jádra"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Zás. modul jádra nepodporuje ulo¾ené stavy"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr "Zru¹eno u¾ivatelem"
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Neznámá chyba"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Zelená"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Jantarová"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Zelená"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Jantarová"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr "Hra v '%s' se zdá být neznámá."
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr "Prosím nahlaste následující data týmu ScummVM spolu se jménem"
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr "hry, kterou jste se pokusili pøidat a její verzi/jazyk/atd.:"
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~P~okraèovat"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~N~ahrát"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~U~lo¾it"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~V~olby"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~N~ápovìda"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~O~ programu"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~N~ávrat do Spou¹tìèe"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~N~ávrat do Spou¹tìèe"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Ulo¾it hru:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Ulo¾it"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-"Je nám líto, ale toto jádro v souèasnosti nepodporuje herní nápovìdu. Prosím "
-"prohlédnìte si README pro základní informace a pro instrukce jak získat "
-"dal¹í pomoc."
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~Z~ru¹it"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~K~lávesy"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr "Nelze zavést barevný formát."
-
-#: engines/engine.cpp:228
-msgid "Could not switch to video mode: '"
-msgstr "Nelze pøepnout na re¾im obrazu: '"
-
-#: engines/engine.cpp:237
-msgid "Could not apply aspect ratio setting."
-msgstr "Nelze pou¾ít nastavení pomìru stran."
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr "Nelze pou¾ít nastavení celé obrazovky."
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-"Vypadá to, ¾e tuto hru hrajete pøímo z\n"
-" CD. Je známo, ¾e toto zpùsobuje problémy\n"
-" a je tedy doporuèeno, a» místo toho zkopírujete\n"
-"datové soubory na Vá¹ pevný disk.\n"
-"Pro podrobnosti si pøeètìte README."
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-"Tato hra má na svém disku zvukové stopy. Tyto\n"
-"stopy musí být z disku zkopírovány pou¾itím\n"
-"vhodného nástroje pro extrakci zvuku z CD,\n"
-"abyste mohli poslouchat hudbu ve høe.\n"
-"Pro podrobnosti si pøeètìte README."
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-"VAROVÁNÍ: Hra, kterou se chystáte spustit, není je¹tì plnì podporována "
-"ScummVM. Proto je mo¾né, ¾e bude nestabilní a jakékoli ulo¾ené hry nemusí "
-"fungovat v budoucích verzích ScummVM."
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr "Pøesto spustit"
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~P~øedchozí"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~D~al¹í"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~Z~avøít"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Bì¾né klávesové pøíkazy"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Dialog Nahrát / Ulo¾it"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Pøeskoèit øádek textu"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Mezerník"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Pøeskoèit video"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Mezerník"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pozastavit hru"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Nahrát stav hry 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Ulo¾it stav hry 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Ukonèit"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Zapnout celou obrazovku"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Hlasitost hudby nahoru / dolù"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Zvý¹it / Sní¾it rychlost textu"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Napodobit levé tlaèítko my¹i"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Napodobit pravé tlaèítko my¹i"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Speciální klávesové pøíkazy"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Ukázat / Skrýt konzoli"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Spustit ladící program"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Zobrazit spotøebu pamìti"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Spustit v rychlém re¾imu (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Spustit ve velmi rychlém re¾imu (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Povolit zachycování my¹i"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Pøepínat mezi grafickými filtry"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Zvìt¹it / Zmen¹it faktor zmìny velikosti"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Povolit korekci pomìru stran"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "Upozoròujeme, ¾e pou¾ívání ctrl-f a"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g není doporuèeno"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr "jeliko¾ mù¾ou zpùsobit pád"
-
-#: engines/scumm/help.cpp:110
-msgid " or incorrect game behavior."
-msgstr " nebo nesprávné chování hry."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Pletení náèrtkù na klávesnici:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Hlavní ovládací prvky:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Tlaèit"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Táhnout"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Dát"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Otevøít"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Jít do"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Vzít"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Pou¾ít"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Pøeèíst"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Nové dítì"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Zapnout"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Vypnout"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Pøejít na"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Sebrat"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Co je"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Odemknout"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Obléct"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Svléct"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Spravit"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Pøepnout"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Dívat se"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Mluvit"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Cestovat"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Henrymu / Indymu"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "zahrát c moll na pøeslici"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "zahrát D na pøeslici"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "zahrát E na pøeslici"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "zahrát F na pøeslici"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "zahrát G na pøeslici"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "zahrát A na pøeslici"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "zahrát B na pøeslici"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "zahrát C dur na pøeslici"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "tlaèIt"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "táhnout (©kubnout)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Mluvit s"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Dívat se na"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "zapnouT"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "vypnoUt"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "KlávesaNahoru"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Zvýraznit pøedchozí dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "KlávesaDolù"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Zvýraznit následující dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Jít"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventáø"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objekt"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Èernobílé / Barva"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Oèi"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Jazyk"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Udeøit"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Kopnout"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Prohlédnout"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Obyèejný kurzor"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Komunikace"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Ulo¾it / Nahrát / Volby"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Dal¹í ovládací prvky hry"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventáø:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Posunout seznam nahoru"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Posunout seznam dolu"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Polo¾ka vlevo nahoøe"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Polo¾ka vlevo dole"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Polo¾ka vpravo nahoøe"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Polo¾ka vpravo dole"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Polo¾ka vlevo uprostøed"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Polo¾ka vpravo uprostøed"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Mìnìní postav:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Druhé dítì"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tøetí dítì"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Ovládání boje (num. kláv.)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Ustoupit"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Bránit nahoøe"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Bránit uprostøed"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Bránit dole"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Udeøit nahoru"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Udeøit doprostøed"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Udeøit dolù"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Tyto jsou pro Indyho nalevo."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Kdy¾ je Indy napravo,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "71 4 a 1 jsou zamìnìny s"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 a 3, v tomto poøadí."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Kontrola dvojplo¹níku (numerická klávesnice)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Letìt doprava nahoru"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Letìt doleva"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Letìt doleva dolù"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Letìt nahoru"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Letìt rovnì"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Letìt dolù"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Letìt doprava nahoru"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Letìt doprava"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Letìt doprava dolù"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-"Pøirozená podpora MIDI vy¾aduje Aktualizaci Roland od LucasArts,\n"
-"ale %s chybí. Místo toho je pou¾it AdLib."
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Ulo¾ení stavu hry selhalo do souboru:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Nahrání stavu hry selhalo ze souboru:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Stav hry úspì¹nì ulo¾en do:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Normálnì by teï Maniac Mansion byl spu¹tìn. Ale ScummVM toto zatím nedìlá. "
-"Abyste toto mohli hrát, pøejdìte do 'Pøidat Hru' v poèáteèním menu ScummVM a "
-"vyberte adresáø 'Maniac' uvnitø herního adresáøe Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~R~e¾im Svi¹tìní Aktivován"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~P~øechody zapnuty"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr "~Z~ahodit Stránku"
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr "~Z~obrazit Mapu"
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~E~fekt Vody Zapnut"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Obnovit hru"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Obnovit"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr "Soubor videa '%s' nenalezen'"
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-msgid "Failed to load game state from file."
-msgstr "Nelze naèíst stav hry ze souboru."
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-msgid "Failed to save game state to file."
-msgstr "Nelze ulo¾it stav hry do souboru."
-
-#: engines/gob/inter_v5.cpp:107
-msgid "Failed to delete file."
-msgstr "Nelze smazat soubor."
-
-#: engines/groovie/script.cpp:417
-msgid "Failed to save game"
-msgstr "Nelze ulo¾it hru."
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-"Zdá se, ¾e pou¾íváte zaøízení General MIDI,\n"
-"ale Va¹e hra podporuje pouze Roland MT32 MIDI.\n"
-"Sna¾íme se mapovat nástroje Roland MT32 na\n"
-"ty od General MIDI. Po tomto se mù¾e stát,\n"
-"¾e pár stop nebude správnì pøehráno."
-
-#: engines/m4/m4_menus.cpp:138
-msgid "Save game failed!"
-msgstr "Ukládání hry selhalo!"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-"Nelze nalézt soubor \"sky.cpt\"!\n"
-"Stáhnìte si ho, prosím z www.scummvm.org"
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-"Soubor \"sky.cpt\" má nesprávnou velikost.\n"
-"Stáhnìte si ho, prosím, (znovu) z www.scummvm.org"
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr "Videa DXA nalezena, ale ScummVM byl sestaven bez podpory zlib"
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr "Videa MPGE2 ji¾ nejsou podporována"
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr "Video '%s' nenalezeno"
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-"ScummVM zjistil, ¾e máte staré ulo¾ené pozice pro Broken Sword 1, které by "
-"mìly být pøevedeny.\n"
-"Starý formát ulo¾ených her ji¾ není podporován, tak¾e pokud je nepøevedete, "
-"nebudete moci Va¹e hry naèíst.\n"
-"\n"
-"Stisknìte OK, abyste je pøevedli teï, jinak budete po¾ádáni znovu, pøi "
-"spu¹tìní této hry.\n"
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-"Nová cílová ulo¾ená hra ji¾ existuje!\n"
-"Chtìli byste ponechat starou ulo¾enou hru (%s), nebo novou (%s)?\n"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr "Ponechat starou"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr "Ponechat novou"
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr "Toto je konec Dema Broken Sword 1"
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-"Nelze ulo¾it hru do pozice %i\n"
-"\n"
-
-#: engines/parallaction/saveload.cpp:211
-msgid "Loading game..."
-msgstr "Nahrávání hry..."
-
-#: engines/parallaction/saveload.cpp:226
-msgid "Saving game..."
-msgstr "Ukládání hry..."
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-"ScummVM zjistil, ¾e máte staré ulo¾ené pozice pro Nippon Safes, které by "
-"mìly být pøejmenovány.\n"
-"Staré názvy ji¾ nejsou podporovány, tak¾e pokud je nepøevedete, nebudete "
-"moci Va¹e hry naèíst.\n"
-"\n"
-"Stisknìte OK, abyste je pøevedli teï, jinak budete po¾ádáni pøí¹tì.\n"
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr "ScummVM úspì¹nì pøevedl v¹echny Va¹e ulo¾ené pozice. "
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-"ScummVM vytiskl nìkterá varování ve Va¹em oknì konzole a nemù¾e zaruèit, ¾e "
-"v¹echny Va¹e soubory byly pøevedeny.\n"
-"\n"
-"Prosím nahlaste to týmu"
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL Emulátor"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL Emulátor"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"Zvolené zaøízení '%s' nebylo nalezeno (napø. mù¾e být vypnuto nebo "
-"odpojeno). Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"Zvolené zaøízení '%s' nelze pou¾ít.. Podívejte se na záznam pro více "
-"informací. Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"Upøednostòované zaøízení '%s' nebylo nalezeno (napø. mù¾e být vypnuto nebo "
-"odpojeno). Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"Upøednostòované zaøízení '%s' nelze pou¾ít. Podívejte se na záznam pro více "
-"informací. Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Bez hudby"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulátor zvuku Amiga"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib Emulátor"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS Emulátor (NENÍ ZAVEDEN)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulátor zvuku C64"
-
-#: audio/softsynth/mt32.cpp:329
-msgid "Initializing MT-32 Emulator"
-msgstr "Zavádím MT-32 Emulátor"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 Emulátor"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker Emulátor"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr Emulátor"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Mapa Kláves:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr "(Aktivní)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr "(Globální)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr "(Hra)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Hlavní Menu ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~R~e¾im pro leváky"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~O~vládání Indyho boje"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Zobrazit kurzor my¹i"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Pøichytit k okrajùm"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Dotykové vyrovnáni na ose X"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Dotykové vyrovnáni na ose Y"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Pou¾ít styl kontroly kurzoru jako u ovládací podu¹ky laptopu"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "«uknìte pro levé kliknutí, dvakrát pro pravé kliknutí"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Citlivost"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Poèáteèní zmìna velikosti horní obrazovky:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Zmìna velikosti hlavní obrazovky:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Hardwarová zmìna velikosti (rychlé, ale nízká kvalita)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Softwarová zmìna velikosti (dobrá kvalita, ale pomalej¹í)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Beze zmìny velikosti (musíte posunovat doleva a doprava)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Jas:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Vysoká kvalita zvuku (pomalej¹í) (restart) "
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Zakázat vypnutí"
-
-#: backends/platform/iphone/osys_events.cpp:338
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Re¾im pøetáhnutí my¹i zapnut."
-
-#: backends/platform/iphone/osys_events.cpp:340
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Re¾im pøetáhnutí my¹i vypnut."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Touchpad re¾im zapnut"
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Touchpad re¾im vypnut"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normální (bez zmìny velikosti)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normální (bez zmìny velikosti)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-msgid "Enabled aspect ratio correction"
-msgstr "Povolena korekce pomìru stran"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-msgid "Disabled aspect ratio correction"
-msgstr "Zakázána korekce pomìru stran"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-msgid "Active graphics filter:"
-msgstr "Aktivní grafický filtr:"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-msgid "Windowed mode"
-msgstr "Re¾im do okna"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normální"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Zachovávající"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Pùvodní"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-msgid "Current display mode"
-msgstr "Souèasný re¾im obrazu"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr "Souèasná velikost"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr "Aktivní re¾im filtru: Lineární"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr "Aktivní re¾im filtru: Nejbli¾¹í"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Nahoru"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Dolù"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Doleva"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Doprava"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Levé Kliknutí"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Pravé kliknutí"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Oblast"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multi Funkce"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Zamìnit znaky"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Pøeskoèit text"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Rychlý re¾im"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Ladící program"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Globální menu"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuální klávesnice"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Mapovaè kláves"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Chcete ukonèit ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Souèasný re¾im obrazu:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Dvojité pøe¹krtnutí"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Horizontální zmen¹ení"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Vertikální zmen¹ení"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Vstup"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Citlivost GC Padu"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Zrychlení GC Padu"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Stav:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Neznámé"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Pøipojit DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Odpojit DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Sdílení:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "U¾ivatelské jméno"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Heslo"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Spustit sí»"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Pøipojit SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Odpojit SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD úspì¹nì pøipojeno"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Chyba pøi pøipojování DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD nepøipojeno"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Sí» je zapnuta, sdílení pøipojeno"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Sí» je zapnuta"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", chyba pøi pøipojování sdílení"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", sdílení není pøipojeno"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Sí» je nedostupná"
-
-#: backends/platform/wii/options.cpp:178
-msgid "Initializing network"
-msgstr "Zavádím sí»"
-
-#: backends/platform/wii/options.cpp:182
-msgid "Timeout while initializing network"
-msgstr "Pøi zavádìní sítì vypr¹el limit"
-
-#: backends/platform/wii/options.cpp:186
-#, c-format
-msgid "Network not initialized (%d)"
-msgstr "Sí» není zavedena (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Skrýt Panel nástrojù"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Zobrazit klávesnici"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Zvuk zapnout/vypnout"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Pravé kliknutí"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Ukázat/Skrýt Kurzor"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Rozhlí¾ení pomocí my¹i"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Pøiblí¾ení nahoru"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Pøiblí¾ení dolù"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Pøiøadit klávesy"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "©ipka Nahoru"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "©ipka Dolù"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "©ipka Doleva"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "©ipka Doprava"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Chcete hru nahrát nebo ulo¾it?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Jste si jisti, ¾e chcete odejít ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Klávesnice"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Otáèet"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Pou¾ívá ovladaè SDL"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Displej"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Chcete provést automatické hledání ?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Mapovat èinnost pravé kliknutí"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Musíte namapovat klávesu pro èinnost 'Pravé Kliknutí', abyste tuto hru mohli "
-"hrát"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Mapovat èinnost skrýt panel nástrojù"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Musíte namapovat klávesu pro èinnost 'Skrýt Panel nástrojù', abyste tuto hru "
-"mohli hrát"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Namapovat èinnost Pøiblí¾it Nahoru (nepovinné)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Namapovat èinnost Pøiblí¾it Dolù (nepovinné)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Nezapomeòte namapovat klávesu k èinnosti 'Skrýt Panel Nástrojù, abyste "
-"vidìli celý inventáø"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Do you really want to return to the Launcher?"
-msgstr "Opravdu se chcete vrátit tuto do Spou¹tìèe?"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Launcher"
-msgstr "Spou¹tìè"
-
-#: backends/events/default/default-events.cpp:244
-msgid "Do you really want to quit?"
-msgstr "Opravdu chcete skonèit?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Levé Kliknutí"
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Pravé Kliknutí"
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Najetí (Bez Kliknutí)"
-
-#: backends/events/gph/gph-events.cpp:390
-msgid "Maximum Volume"
-msgstr "Maximální Hlasitost"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr "Zvy¹uji Hlasitost"
-
-#: backends/events/gph/gph-events.cpp:398
-msgid "Minimal Volume"
-msgstr "Minimální Hlasitost"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr "Sni¾uji Hlasitost"
-
-#~ msgid ""
-#~ "Your game version has been detected using filename matching as a variant "
-#~ "of %s."
-#~ msgstr ""
-#~ "Bylo zji¹tìno, ¾e Va¹e verze hry pou¾ívá jméno souboru shodující se s "
-#~ "variantou %s."
-
-#~ msgid "If this is an original and unmodified version, please report any"
-#~ msgstr "Pokud je toto pùvodní a nezmìnìná verze, ohlaste prosím jakékoli"
-
-#~ msgid "information previously printed by ScummVM to the team."
-#~ msgstr "pøede¹le vypsané informace od ScummVM zpátky týmu."
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Objeveno %d nových her."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argument pøíkazové øádky nebyl zpracován"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns Emulátor"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Neplatná Cesta"
+# Czech translation for ScummVM.
+# Copyright (C) 2001-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Zbynìk Schwarz <zbynek.schwarz@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-06-24 06:44+0100\n"
+"Last-Translator: Zbynìk Schwarz <zbynek.schwarz@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Cesky\n"
+"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2\n"
+"X-Poedit-Language: Czech\n"
+"X-Poedit-Country: CZECH REPUBLIC\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(sestaveno na %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Zakompilované Funkce:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Dostupná jádra:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Jít nahoru"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Jít na pøedchozí úroveò adresáøe"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Jít nahoru"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Zru¹it"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Zvolit"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Zavøít"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Kliknutí my¹í"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Zobrazit klávesnici"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Pøemapovat klávesy"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Zvolte èinnost k mapování"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Mapovat"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Zvolte èinnost a kliknìte 'Mapovat'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Pøiøazená klávesa: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Pøiøazená klávesa: ¾ádná"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Prosím vyberte èinnost"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Zmáèknìte klávesu pro pøiøazení"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Hra"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Krátký identifikátor her, pou¾ívaný jako odkaz k ulo¾eným hrám a spu¹tìní "
+"hry z pøíkazového øádku"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Jméno"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Úplný název hry"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Jméno:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Jazyk:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr "Jazyk hry. Toto z Va¹í ©panìlské verze neudìlá Anglickou"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<výchozí>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Platforma:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Platforma, pro kterou byla hra pùvodnì vytvoøena"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Platforma:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Obraz"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Potlaèit globální nastavení obrazu"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Potlaèit globální nastavení obrazu"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Zvuk"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Potlaèit globální nastavení zvuku"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Potlaèit globální nastavení zvuku"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Hlasitost"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Hlasitost"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Potlaèit globální nastavení hlasitosti"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Potlaèit globální nastavení hlasitosti"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Potlaèit globální nastavení MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Potlaèit globální nastavení MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Potlaèit globální nastavení MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Potlaèit globální nastavení MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Cesty"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Cesty"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Cesta Hry:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Cesta Hry:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Dodateèná Cesta:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Stanoví cestu pro dodateèná data pou¾itá ve høe"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Dodateèná Cesta:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Cesta pro ulo¾ení:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Stanovuje, kam jsou umístìny Va¹e ulo¾ené hry"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Cesta pro ulo¾ení:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "®ádné"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Výchozí"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Vybrat SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Vyberte adresáø s daty hry"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Vyberte dodateèný adresáø hry"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Vyberte adresáø pro ulo¾ené hry"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Toto ID hry je u¾ zabrané. Vyberte si, prosím, jiné."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~U~konèit"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Ukonèit ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~O~ Programu..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "O ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~V~olby..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Zmìnit globální volby ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~pustit"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Spustit zvolenou hru"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~N~ahrát..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Nahrát ulo¾enou pozici pro zvolenou hru"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~P~øidat hru..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Podr¾te Shift pro Hromadné Pøidání"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~U~pravit Hru..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Zmìnit volby hry"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~O~dstranit Hru"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Odstranit hru ze seznamu. Herní data zùstanou zachována"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~P~øidat hru..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~U~pravit hru..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~O~dstranit hru"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Hledat v seznamu her"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Hledat:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Vyèistit hodnotu"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Nahrát hru:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Nahrát"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Opravdu chcete spustit hromadnou detekci her? Toto by mohlo potenciálnì "
+"pøidat velkou spoustu her. "
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ano"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Ne"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM nemohl tento adresáø otevøít!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM nemohl v zadaném adresáøi najít ¾ádnou hru!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Vybrat hru:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Opravdu chcete odstranit nastavení této hry?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Tato hra nepodporuje spou¹tìní her ze spou¹tìèe"
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM nemohl najít ¾ádné jádro schopné vybranou hru spustit!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Hromadné Pøidání..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Hromadné Pøidání..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... prùbìh ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Hledání dokonèeno!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "Objeveno %d nových her, ignorováno %d døíve pøidaných her."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Prohledáno %d adresáøù..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Objeveno %d nových her, ignorováno %d døíve pøidaných her ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Nikdy"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "Ka¾dých 5 min"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "Ka¾dých 10 min"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "Ka¾dých 15 min"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "Ka¾dých 30 min"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "®ádné"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "Nelze pou¾ít nìkteré zmìny mo¾ností grafiky:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "re¾im obrazu nemohl být zmìnìn."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "nastavení celé obrazovky nemohlo být zmìnìno"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "nastavení pomìru stran nemohlo být zmìnìno"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Re¾im obrazu:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Re¾im vykreslení:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Speciální re¾imy chvìní podporované nìkterými hrami"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Re¾im celé obrazovky"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Korekce pomìru stran"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Korigovat pomìr stran pro hry 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Nerozkládání EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Povolit nerozkládání v EGA hrách, které to podporují"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Prioritní Zaøízení:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Hudební zaøízení"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Stanoví prioritní zvukové zaøízení nebo emulátor zvukové karty"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Stanoví výstupní zvukové zaøízení nebo emulátor zvukové karty"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Prioritní Zaø.:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Hudební zaøízení"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib emulátor"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib se pou¾ívá pro hudbu v mnoha hrách"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Výstup. frekvence:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Vy¹¹í hodnota zpùsobí lep¹í kvalitu zvuku, ale nemusí být podporována Va¹i "
+"zvukovou kartou"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM Zaøízení:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Stanoví výchozí zvukové zaøízení pro výstup General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Nepou¾ívat hudbu General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Pou¾ít první dostupné zaøízení"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFont je podporován nìkterými zvukovými kartami, Fluidsynth a Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Smí¹ený re¾im AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Pou¾ít obì zvukové generace MIDI a AdLib"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Zesílení MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Zaøízení MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Stanoví výchozí zvukové výstupní zaøízení pro Roland MT-32/LAPC1/CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Opravdový Roland MT-32 (vypne GM emulaci)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Za¹krtnìte, pokud chcete pou¾ít pravé hardwarové zaøízení kompatibilní s "
+"Roland, pøipojené k Va¹emu poèítaèi"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Opravdový Roland MT-32 (¾ádná GM emulace)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Zapnout re¾im Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Vypne mapování General MIDI pro hry s Roland MT-32 zvukovým doprovodem"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Nepou¾ívat hudbu Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Text a Øeè"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Øeè"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Titulky"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Oba"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Rychlost titulkù:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Text a Øeè:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Øeè"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Titl"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Oba"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Zobrazit titulky a pøehrávat øeè"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Rychlost titulkù"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Hlasitost hudby"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Hlasitost hudby"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Ztlumit V¹e"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Hlasitost zvukù"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Hlasitost speciálních zvukových efektù"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Hlasitost zvukù"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Hlasitost øeèi"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Hlasitost øeèi"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Cesta ke Vzhledu:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Cesta ke Vzhledu:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Stanoví cestu k dodateèným datùm pou¾ívaná v¹emi hrami nebo ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Cesta k Pluginùm:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Cesta k Pluginùm:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Rùzné"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Rùzné"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Vzhled:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI Vykreslovaè:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autoukládání:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autoukládání:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Klávesy"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Jazyk GUI"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Jazyk GUI ScummVM"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Pro pou¾ití tìchto nastavení musíte restartovat ScummVM."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Vybrat adresáø pro ulo¾ené hry"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "Do zvoleného adresáøe nelze zapisovat. Vyberte, prosím, jiný."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Vyberte adresáø pro vhledy GUI"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Vyberte adresáø pro dodateèné soubory"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Vyberte adresáø pro zásuvné moduly"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Vzhled, který jste zvolili, nepodporuje Vá¹ souèasný jazyk. Pokud chcete "
+"tento vzhled pou¾ít, musíte nejdøíve pøepnout na jiný jazyk."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Neulo¾ena ¾ádná data"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "®ádný ulo¾ený èas"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "®ádná ulo¾ená doba hraní"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Smazat"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Opravdu chcete tuto ulo¾enou hru vymazat"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Datum:"
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Èas:"
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Doba hraní:"
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Bezejmenný ulo¾ený stav"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Vyberte Vzhled"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX zakázáno"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX zakázáno"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standardní Vykreslovaè (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standardní (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Vykreslovaè s vyhlazenými hranami (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "S vyhlazenými hranami (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Jádro nepodporuje úroveò ladìní '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Pøeskoèit"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pauza"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Pøeskoèit øádek"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Chyba pøi spu¹tìní hry:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Nelze nalézt ¾ádné jádro schopné vybranou hru spustit"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "®ádná chyba"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Data hry nenalezena"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Id hry není podporováno"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Nepodporovaný barevný re¾im"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Oprávnìní ke ètení zamítnuto"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Oprávnìní k zápisu zamítnuto"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Cesta neexistuje"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Cesta není adresáø"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Cesta není soubor"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Nelze vytvoøit soubor"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Ètení dat selhalo"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Zápis dat selhal"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Nelze nalézt vhodný zás. modul jádra"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Zás. modul jádra nepodporuje ulo¾ené stavy"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "Zru¹eno u¾ivatelem"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Neznámá chyba"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Zelená"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Jantarová"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Zelená"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Jantarová"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "Hra v '%s' se zdá být neznámá."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr "Prosím nahlaste následující data týmu ScummVM spolu se jménem"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr "hry, kterou jste se pokusili pøidat a její verzi/jazyk/atd.:"
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~P~okraèovat"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~N~ahrát"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~U~lo¾it"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~V~olby"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~N~ápovìda"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~O~ programu"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~N~ávrat do Spou¹tìèe"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~N~ávrat do Spou¹tìèe"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Ulo¾it hru:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Ulo¾it"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"Je nám líto, ale toto jádro v souèasnosti nepodporuje herní nápovìdu. Prosím "
+"prohlédnìte si README pro základní informace a pro instrukce jak získat "
+"dal¹í pomoc."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~Z~ru¹it"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~K~lávesy"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "Nelze zavést barevný formát."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "Nelze pøepnout na re¾im obrazu: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "Nelze pou¾ít nastavení pomìru stran."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "Nelze pou¾ít nastavení celé obrazovky."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"Vypadá to, ¾e tuto hru hrajete pøímo z\n"
+" CD. Je známo, ¾e toto zpùsobuje problémy\n"
+" a je tedy doporuèeno, a» místo toho zkopírujete\n"
+"datové soubory na Vá¹ pevný disk.\n"
+"Pro podrobnosti si pøeètìte README."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"Tato hra má na svém disku zvukové stopy. Tyto\n"
+"stopy musí být z disku zkopírovány pou¾itím\n"
+"vhodného nástroje pro extrakci zvuku z CD,\n"
+"abyste mohli poslouchat hudbu ve høe.\n"
+"Pro podrobnosti si pøeètìte README."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"VAROVÁNÍ: Hra, kterou se chystáte spustit, není je¹tì plnì podporována "
+"ScummVM. Proto je mo¾né, ¾e bude nestabilní a jakékoli ulo¾ené hry nemusí "
+"fungovat v budoucích verzích ScummVM."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "Pøesto spustit"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Jste si jisti, ¾e chcete odejít ? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Jste si jisti, ¾e chcete odejít ? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Ukonèit"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Vyberte Vzhled"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~P~øedchozí"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~D~al¹í"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~Z~avøít"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Øeè"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Titulky"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Titulky"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Øeè"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Bì¾né klávesové pøíkazy"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Dialog Nahrát / Ulo¾it"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Pøeskoèit øádek textu"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Mezerník"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Pøeskoèit video"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Mezerník"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pozastavit hru"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Nahrát stav hry 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Ulo¾it stav hry 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Zapnout celou obrazovku"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Hlasitost hudby nahoru / dolù"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Zvý¹it / Sní¾it rychlost textu"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Napodobit levé tlaèítko my¹i"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Napodobit pravé tlaèítko my¹i"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Speciální klávesové pøíkazy"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Ukázat / Skrýt konzoli"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Spustit ladící program"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Zobrazit spotøebu pamìti"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Spustit v rychlém re¾imu (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Spustit ve velmi rychlém re¾imu (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Povolit zachycování my¹i"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Pøepínat mezi grafickými filtry"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Zvìt¹it / Zmen¹it faktor zmìny velikosti"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Povolit korekci pomìru stran"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "Upozoròujeme, ¾e pou¾ívání ctrl-f a"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g není doporuèeno"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr "jeliko¾ mù¾ou zpùsobit pád"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " nebo nesprávné chování hry."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Pletení náèrtkù na klávesnici:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Hlavní ovládací prvky:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Tlaèit"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Táhnout"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Dát"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Otevøít"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Jít do"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Vzít"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Pou¾ít"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Pøeèíst"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Nové dítì"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Zapnout"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Vypnout"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Pøejít na"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Sebrat"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Co je"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Odemknout"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Obléct"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Svléct"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Spravit"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Pøepnout"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Dívat se"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Mluvit"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Cestovat"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Henrymu / Indymu"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "zahrát c moll na pøeslici"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "zahrát D na pøeslici"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "zahrát E na pøeslici"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "zahrát F na pøeslici"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "zahrát G na pøeslici"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "zahrát A na pøeslici"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "zahrát B na pøeslici"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "zahrát C dur na pøeslici"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "tlaèIt"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "táhnout (©kubnout)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Mluvit s"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Dívat se na"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "zapnouT"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "vypnoUt"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "KlávesaNahoru"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Zvýraznit pøedchozí dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "KlávesaDolù"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Zvýraznit následující dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Jít"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventáø"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objekt"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Èernobílé / Barva"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Oèi"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Jazyk"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Udeøit"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Kopnout"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Prohlédnout"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Obyèejný kurzor"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Komunikace"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Ulo¾it / Nahrát / Volby"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Dal¹í ovládací prvky hry"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventáø:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Posunout seznam nahoru"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Posunout seznam dolu"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Polo¾ka vlevo nahoøe"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Polo¾ka vlevo dole"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Polo¾ka vpravo nahoøe"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Polo¾ka vpravo dole"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Polo¾ka vlevo uprostøed"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Polo¾ka vpravo uprostøed"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Mìnìní postav:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Druhé dítì"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tøetí dítì"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Ovládání boje (num. kláv.)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Ustoupit"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Bránit nahoøe"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Bránit uprostøed"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Bránit dole"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Udeøit nahoru"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Udeøit doprostøed"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Udeøit dolù"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Tyto jsou pro Indyho nalevo."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Kdy¾ je Indy napravo,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "71 4 a 1 jsou zamìnìny s"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 a 3, v tomto poøadí."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Kontrola dvojplo¹níku (numerická klávesnice)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Letìt doprava nahoru"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Letìt doleva"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Letìt doleva dolù"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Letìt nahoru"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Letìt rovnì"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Letìt dolù"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Letìt doprava nahoru"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Letìt doprava"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Letìt doprava dolù"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"Pøirozená podpora MIDI vy¾aduje Aktualizaci Roland od LucasArts,\n"
+"ale %s chybí. Místo toho je pou¾it AdLib."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Ulo¾ení stavu hry selhalo do souboru:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Nahrání stavu hry selhalo ze souboru:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Stav hry úspì¹nì ulo¾en do:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Normálnì by teï Maniac Mansion byl spu¹tìn. Ale ScummVM toto zatím nedìlá. "
+"Abyste toto mohli hrát, pøejdìte do 'Pøidat Hru' v poèáteèním menu ScummVM a "
+"vyberte adresáø 'Maniac' uvnitø herního adresáøe Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~R~e¾im Svi¹tìní Aktivován"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~P~øechody zapnuty"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "~Z~ahodit Stránku"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "~Z~obrazit Mapu"
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "Hlavní Menu ScummVM"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~E~fekt Vody Zapnut"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Obnovit hru"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Obnovit"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "Soubor videa '%s' nenalezen'"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "Nelze naèíst stav hry ze souboru."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "Nelze ulo¾it stav hry do souboru."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "Nelze smazat soubor."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "Nelze ulo¾it hru."
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"Zdá se, ¾e pou¾íváte zaøízení General MIDI,\n"
+"ale Va¹e hra podporuje pouze Roland MT32 MIDI.\n"
+"Sna¾íme se mapovat nástroje Roland MT32 na\n"
+"ty od General MIDI. Po tomto se mù¾e stát,\n"
+"¾e pár stop nebude správnì pøehráno."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "Ukládání hry selhalo!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"Nelze nalézt soubor \"sky.cpt\"!\n"
+"Stáhnìte si ho, prosím z www.scummvm.org"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"Soubor \"sky.cpt\" má nesprávnou velikost.\n"
+"Stáhnìte si ho, prosím, (znovu) z www.scummvm.org"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr "Videa DXA nalezena, ale ScummVM byl sestaven bez podpory zlib"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "Videa MPGE2 ji¾ nejsou podporována"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "Video '%s' nenalezeno"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"ScummVM zjistil, ¾e máte staré ulo¾ené pozice pro Broken Sword 1, které by "
+"mìly být pøevedeny.\n"
+"Starý formát ulo¾ených her ji¾ není podporován, tak¾e pokud je nepøevedete, "
+"nebudete moci Va¹e hry naèíst.\n"
+"\n"
+"Stisknìte OK, abyste je pøevedli teï, jinak budete po¾ádáni znovu, pøi "
+"spu¹tìní této hry.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"Nová cílová ulo¾ená hra ji¾ existuje!\n"
+"Chtìli byste ponechat starou ulo¾enou hru (%s), nebo novou (%s)?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "Ponechat starou"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "Ponechat novou"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "Toto je konec Dema Broken Sword 1"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"Nelze ulo¾it hru do pozice %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "Nahrávání hry..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "Ukládání hry..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"ScummVM zjistil, ¾e máte staré ulo¾ené pozice pro Nippon Safes, které by "
+"mìly být pøejmenovány.\n"
+"Staré názvy ji¾ nejsou podporovány, tak¾e pokud je nepøevedete, nebudete "
+"moci Va¹e hry naèíst.\n"
+"\n"
+"Stisknìte OK, abyste je pøevedli teï, jinak budete po¾ádáni pøí¹tì.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM úspì¹nì pøevedl v¹echny Va¹e ulo¾ené pozice. "
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM vytiskl nìkterá varování ve Va¹em oknì konzole a nemù¾e zaruèit, ¾e "
+"v¹echny Va¹e soubory byly pøevedeny.\n"
+"\n"
+"Prosím nahlaste to týmu"
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL Emulátor"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL Emulátor"
+
+#: audio/mididrv.cpp:205
+#, fuzzy, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Zvolené zaøízení '%s' nebylo nalezeno (napø. mù¾e být vypnuto nebo "
+"odpojeno). Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, fuzzy, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Zvolené zaøízení '%s' nelze pou¾ít.. Podívejte se na záznam pro více "
+"informací. Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
+
+#: audio/mididrv.cpp:253
+#, fuzzy, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Upøednostòované zaøízení '%s' nebylo nalezeno (napø. mù¾e být vypnuto nebo "
+"odpojeno). Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
+
+#: audio/mididrv.cpp:268
+#, fuzzy, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Upøednostòované zaøízení '%s' nelze pou¾ít. Podívejte se na záznam pro více "
+"informací. Pokus o navrácení na nejbli¾¹í dostupné zaøízení..."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Bez hudby"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulátor zvuku Amiga"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib Emulátor"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS Emulátor (NENÍ ZAVEDEN)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulátor zvuku C64"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "Zavádím MT-32 Emulátor"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 Emulátor"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker Emulátor"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr Emulátor"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Mapa Kláves:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr "(Aktivní)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr "(Globální)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr "(Hra)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Hlavní Menu ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~R~e¾im pro leváky"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~O~vládání Indyho boje"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Zobrazit kurzor my¹i"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Pøichytit k okrajùm"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Dotykové vyrovnáni na ose X"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Dotykové vyrovnáni na ose Y"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Pou¾ít styl kontroly kurzoru jako u ovládací podu¹ky laptopu"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "«uknìte pro levé kliknutí, dvakrát pro pravé kliknutí"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Citlivost"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Poèáteèní zmìna velikosti horní obrazovky:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Zmìna velikosti hlavní obrazovky:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Hardwarová zmìna velikosti (rychlé, ale nízká kvalita)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Softwarová zmìna velikosti (dobrá kvalita, ale pomalej¹í)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Beze zmìny velikosti (musíte posunovat doleva a doprava)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Jas:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Vysoká kvalita zvuku (pomalej¹í) (restart) "
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Zakázat vypnutí"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Re¾im pøetáhnutí my¹i zapnut."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Re¾im pøetáhnutí my¹i vypnut."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Touchpad re¾im zapnut"
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Touchpad re¾im vypnut"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Ukonèit ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normální (bez zmìny velikosti)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normální (bez zmìny velikosti)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "Povolena korekce pomìru stran"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "Zakázána korekce pomìru stran"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "Aktivní grafický filtr:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "Re¾im do okna"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normální"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Zachovávající"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Pùvodní"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "Souèasný re¾im obrazu"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "Souèasná velikost"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "Aktivní re¾im filtru: Lineární"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "Aktivní re¾im filtru: Nejbli¾¹í"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Nahoru"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Dolù"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Doleva"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Doprava"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Levé Kliknutí"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Pravé kliknutí"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Oblast"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multi Funkce"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Zamìnit znaky"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Pøeskoèit text"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Rychlý re¾im"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Ladící program"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Globální menu"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuální klávesnice"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Mapovaè kláves"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Chcete ukonèit ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Souèasný re¾im obrazu:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Dvojité pøe¹krtnutí"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Horizontální zmen¹ení"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Vertikální zmen¹ení"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Vstup"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Citlivost GC Padu"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Zrychlení GC Padu"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Stav:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Neznámé"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Pøipojit DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Odpojit DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Sdílení:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "U¾ivatelské jméno"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Heslo"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Spustit sí»"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Pøipojit SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Odpojit SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD úspì¹nì pøipojeno"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Chyba pøi pøipojování DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD nepøipojeno"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Sí» je zapnuta, sdílení pøipojeno"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Sí» je zapnuta"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", chyba pøi pøipojování sdílení"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", sdílení není pøipojeno"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Sí» je nedostupná"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "Zavádím sí»"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "Pøi zavádìní sítì vypr¹el limit"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "Sí» není zavedena (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Skrýt Panel nástrojù"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Zobrazit klávesnici"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Zvuk zapnout/vypnout"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Pravé kliknutí"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Ukázat/Skrýt Kurzor"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Rozhlí¾ení pomocí my¹i"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Pøiblí¾ení nahoru"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Pøiblí¾ení dolù"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Pøiøadit klávesy"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "©ipka Nahoru"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "©ipka Dolù"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "©ipka Doleva"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "©ipka Doprava"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Chcete hru nahrát nebo ulo¾it?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Jste si jisti, ¾e chcete odejít ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Klávesnice"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Otáèet"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Pou¾ívá ovladaè SDL"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Displej"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Chcete provést automatické hledání ?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Mapovat èinnost pravé kliknutí"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Musíte namapovat klávesu pro èinnost 'Pravé Kliknutí', abyste tuto hru mohli "
+"hrát"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Mapovat èinnost skrýt panel nástrojù"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Musíte namapovat klávesu pro èinnost 'Skrýt Panel nástrojù', abyste tuto hru "
+"mohli hrát"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Namapovat èinnost Pøiblí¾it Nahoru (nepovinné)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Namapovat èinnost Pøiblí¾it Dolù (nepovinné)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Nezapomeòte namapovat klávesu k èinnosti 'Skrýt Panel Nástrojù, abyste "
+"vidìli celý inventáø"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "Opravdu se chcete vrátit tuto do Spou¹tìèe?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "Spou¹tìè"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "Opravdu chcete skonèit?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Levé Kliknutí"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Pravé Kliknutí"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "'Re¾im «uknutí' Dotykové Obrazovky - Najetí (Bez Kliknutí)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "Maximální Hlasitost"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "Zvy¹uji Hlasitost"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "Minimální Hlasitost"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "Sni¾uji Hlasitost"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Pøidat Hru..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Pøidat Hru..."
+
+#~ msgid ""
+#~ "Your game version has been detected using filename matching as a variant "
+#~ "of %s."
+#~ msgstr ""
+#~ "Bylo zji¹tìno, ¾e Va¹e verze hry pou¾ívá jméno souboru shodující se s "
+#~ "variantou %s."
+
+#~ msgid "If this is an original and unmodified version, please report any"
+#~ msgstr "Pokud je toto pùvodní a nezmìnìná verze, ohlaste prosím jakékoli"
+
+#~ msgid "information previously printed by ScummVM to the team."
+#~ msgstr "pøede¹le vypsané informace od ScummVM zpátky týmu."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Objeveno %d nových her."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argument pøíkazové øádky nebyl zpracován"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns Emulátor"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Neplatná Cesta"
diff --git a/po/da_DA.po b/po/da_DA.po
index 9bb43f7784..695848c437 100644
--- a/po/da_DA.po
+++ b/po/da_DA.po
@@ -1,2621 +1,2763 @@
-# Copyright (C) 2010 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Steffen Nyeland <steffen@nyeland.dk>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-01-08 22:53+0100\n"
-"Last-Translator: Steffen Nyeland <steffen@nyeland.dk>\n"
-"Language-Team: Steffen Nyeland <steffen@nyeland.dk>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Dansk\n"
-"Plural-Forms: nplurals=2; plural=(n != 1);\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(bygget den %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Funktioner kompileret ind:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Tilgængelige \"motorer\":"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Gå op"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Gå til forrige biblioteks niveau"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Gå op"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Fortryd"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Vælg"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Luk"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Muse klik"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Vis tastatur"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Kortlæg taster"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Vælg en handling at kortlægge"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Kortlæg"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Vælg en handling og klik 'Kortlæg'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Tilknyttet tast : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Tilknyttet tast : ingen"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Vælg venligst en handling"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Tryk tasten for at tilknytte"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Spil"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Kort spil identifikator til brug for gemmer, og for at køre spillet fra "
-"kommandolinien"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Navn:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Fuld titel på spillet"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Navn:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Sprog:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Spillets sprog. Dette vil ikke ændre din spanske version af spillet til "
-"engelsk"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<standard>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Platform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Platform som spillet oprindeligt var designet til"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Platform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafik"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafik indstillinger"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafik indstillinger"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Lyd"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Overstyr globale lyd indstillinger"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Overstyr globale lyd indstillinger"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Lydstyrke"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Lydstyrke"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Overstyr globale lydstyrke indstillinger"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Overstyr globale lydstyrke indstillinger"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI indstillinger"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI indstillinger"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32 indstillinger"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32 indstillinger"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Stier"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Stier"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Spil sti:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Spil sti:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Ekstra sti:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Angiver sti til ekstra data der bruges i spillet"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Ekstra sti:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Gemme sti:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Angiver hvor dine gemmer bliver lagt"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Gemme sti:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Standard"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Vælg SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Vælg bibliotek med spil data"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Vælg ekstra spil bibliotek"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Vælg bibliotek til spil gemmer"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Dette spil ID er allerede i brug. Vælg venligst et andet."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~A~fslut"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Afslut ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~O~m..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Om ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~I~ndstillinger..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Ændre globale ScummVM indstillinger"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tart"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Start det valgte spil"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~H~ent..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Hent gemmer for det valgte spil"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~T~ilføj spil..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Hold Skift for at tilføje flere"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~R~ediger spil..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Ændre spil indstillinger"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~F~jern spil"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Fjerner spil fra listen. Spillets data filer forbliver uberørt"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~T~ilføj spil..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~R~ediger spil..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~F~jern spil"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Søg i spil liste"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Søg:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Slet værdi"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Indlæs spil:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Indlæs"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Vil du virkelig køre fler spils detektoren? Dette kunne potentielt tilføje "
-"et stort antal spil."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ja"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nej"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM kunne ikke åbne det angivne bibliotek!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM kunne ikke finde noget spil i det angivne bibliotek!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Vælg spillet:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Vil du virkelig fjerne denne spil konfiguration?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Dette spil understøtter ikke hentning af spil fra spiloversigten."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM kunne ikke finde en motor, istand til at afvikle det valgte spil!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Tilføj flere..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Tilføj flere..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Tilføj spil..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Tilføj spil..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... fremskridt ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Skan gennemført!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Gennemset %d biblioteker ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Fundet %d nye spil ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Aldrig"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "hvert 5. minut"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "hvert 10. minut"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "hvert 15. minut"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "hvert 30. minut"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafik tilstand:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Rendere tilstand:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Speciel farvereduceringstilstand understøttet a nogle spil"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Fuldskærms tilstand"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Billedformat korrektion"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Korrekt billedformat til 320x200 spil"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA farveforøgelse"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Aktiver farveforøgelse i EGA spil der understøtter det"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Foretruk. enhed:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Musik enhed:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Angiver foretukket lyd enhed eller lydkort emulator"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Angiver lyd udgangsenhed eller lydkorts emulator"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Foretruk. enh.:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Musik enhed:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib emulator:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib bliver brugt til musik i mange spil"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Udgangsfrekvens:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Højere værdi angiver bedre lyd kvalitet, men understøttes måske ikke af dit "
-"lydkort"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM enhed:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Angiver standard lyd enhed for General MIDI udgang"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Brug ikke General MIDI musik"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Brug første tilgængelig enhed"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont er understøttet af nogle lydkort, Fluidsynth og Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Blandet AdLib/MIDI tilstand"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Brug både MIDI og AdLib lyd generering"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI lydstyrke:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "MT-32 enhed:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr "Angiver standard lyd enhed for Roland MT-32/LAPC1/CM32I/CM64 udgang"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Ægte Roland MT-32 (undlad GM emulering)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Kontroller om du vil bruge din rigtige hardware Roland-kompatible lyd enhed "
-"tilsluttet til din computer"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Ægte Roland MT-32 (ingen GM emulering)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Aktivér Roland GS tilstand"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Sluk for General MIDI kortlægning for spil med Roland MT-32 lydspor"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Brug ikke Roland MT-32 musik"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Tekst og tale:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Tale"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Undertekster"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Begge"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Tekst hastighed:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Tekst og tale:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Tale"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Tekst"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Begge"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Vis undertekster og afspil tale"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Tekst hastighed:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Musik lydstyrke:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musik lydstyrke:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Mute alle"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "SFX lydstyrke:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Lydstyrke for specielle lydeffekter"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "SFX lydstyrke:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Tale lydstyrke:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Tale lydstyrke:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Tema sti:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Tema sti:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Angiver sti til ekstra data brugt af alle spil eller ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Plugin sti:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Plugin sti:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Andet"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Andet"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI renderer:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Auto gemme:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Auto gemme:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Taster"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Sprog:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Sprog for brugerfladen i ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du skal genstarte ScummVM for at ændringer vises."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Vælg bibliotek til gemmer"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "Der kan ikke skrives til det valgte bibliotek. Vælg venligst et andet."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Vælg bibliotek for GUI temaer"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Vælg bibliotek for ekstra filer"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Vælg bibliotek for plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du valgte understøtter ikke dit aktuelle sprog. Hvis du ønsker at "
-"bruge dette tema, skal du skifte til et andet sprog først."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Ingen dato gemt"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Intet tidspunkt gemt"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Ingen spilletid gemt"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Slet"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Vil du virkelig slette denne gemmer?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Dato:"
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Tid:"
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Spilletid:"
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Unavngivet gemmetilstand"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Vælg et tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Deaktiveret GFX"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Deaktiveret GFX"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard renderer (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Antialias renderer (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Antialias (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Motor understøtter ikke fejlfindingsniveau '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Spring over"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pause"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Spring linje over"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Fejl ved kørsel af spil:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Kunne ikke finde nogen motor istand til at afvikle det valgte spil"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr ""
-
-#: common/error.cpp:40
-#, fuzzy
-msgid "Game data not found"
-msgstr "Spil data ikke fundet"
-
-#: common/error.cpp:42
-#, fuzzy
-msgid "Game id not supported"
-msgstr "Spil id ikke understøttet"
-
-#: common/error.cpp:44
-#, fuzzy
-msgid "Unsupported color mode"
-msgstr "Ikke understøttet farve tilstand"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Læse rettighed nægtet"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Skrive rettighed nægtet"
-
-#: common/error.cpp:52
-#, fuzzy
-msgid "Path does not exist"
-msgstr "Sti eksistere ikke"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Sti ikke et bibliotek"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Sti ikke en fil"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Kan ikke oprette fil"
-
-#: common/error.cpp:61
-#, fuzzy
-msgid "Reading data failed"
-msgstr "Læsning fejlet"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Skrivning af data fejlet"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr ""
-
-#: common/error.cpp:68
-#, fuzzy
-msgid "Engine plugin does not support save states"
-msgstr "Motor understøtter ikke fejlfindingsniveau '%s'"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-#, fuzzy
-msgid "Unknown error"
-msgstr "Ukendt fejl"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules grøn"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules brun"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules grøn"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules brun"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "Gen~o~ptag"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~H~ent"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~G~em"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~I~ndstillinger"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "H~j~ælp"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~O~m"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~R~etur til spiloversigt"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~R~etur til oversigt"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Gemmer:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Gem"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~F~ortryd"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~aster"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Aktuel videotilstand:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Skift billedformat korrektion"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "Fo~r~rige"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~N~æste"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~L~uk"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Almindelige tastatur kommandoer:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Gem / Hent dialog"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Spring tekstlinje over"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Spring mellemscene over"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Mellemrum"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pause spil"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Hent spil tilstand 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Gem spil tilstand 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Afslut"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Skift fuldskærm"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Musik lydstyrke op / ned"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Tekst hastighed langsommere / hurtigere"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simulere venstre museknap"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simulere højre museknap"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Specielle tastatur kommandoer:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Vis / Skjul konsol"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Start fejlfinder"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Vis hukommelsesforbrug"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Kør i hurtig tilstand (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Kør i meget hurtig tilstand (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Skift muse fanger"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Skift mellem grafik filtre"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Hæv / Sænk skaleringsfaktor"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Skift billedformat korrektion"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Bemærk at brug af ctrl-f og"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g ikke kan ikke anbefales"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " siden de kan skabe nedbrud"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " eller ukorrekt opførsel af spil."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Spind ordspil på tastaturet:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Vigtigste spilstyring:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Skub"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Træk"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Giv"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Åbn"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Tag"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Brug"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Læs"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Nyt barn"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Tænd"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Sluk"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Tag op"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Hvad er"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Lås op"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Tag på"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Tag af"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Lav"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Skift"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Se"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Tal"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Rejs"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Til Henry / Til Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "spil C-mol på rok"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "spil D på rok"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "spil E på rok"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "spil F på rok"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "spil G på rok"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "spil A på rok"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "spil H på rok"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "spil C-dur på rok"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Skub"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "træk (Y)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Tal til"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Lur på"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "tæNd"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "sluk (F)"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "TastOp"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Fremhæv forrige dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "TastNed"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Fremhæv næste dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Gå"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Oversigt"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objekt"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Sort og hvid / Farve"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Øjne"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Tunge"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Slag"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Spark"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Undersøg"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Normal markør"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Komm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Gem / Hent / Indstillinger"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Andre spil kontroller"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Oversigt:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Rul liste op"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Rul liste ned"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Øverste venstre punkt"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Nederste højre punkt"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Øverste højre punkt"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Nederste venstre punkt"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Midterste højre punkt"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Midterste højre punkt"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Skift personer:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Andet barn"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tredie barn"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Kamp kontroller (numtast):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Skridt tilbage"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Blokér højt"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Blokér midtfor"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Blokér lavt"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Slå højt"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Slå midtfor"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Slå lavt"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Disse er for Indy til venstre"
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Når Indy er til højre,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4 og 1 bliver bytte med"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "repektivt 9, 6 og 3."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Biplan kontroller (numtast):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Flyv øverst til venste"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Flyv til venstre"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Flyv nederst til venstre"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Flyv opad"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Flyv ligeud"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Flyv nedad"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Flyv øverst til højre"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Flyv til højre"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Flyv nederst til højre"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Mislykkedes at gemme spil tilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Mislykkedes at hente spil tilstand fra fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Gemt spil tilstand problemfrit i fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ip tilstand aktiveret"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~O~vergange aktiveret"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~V~andeffekter aktiveret"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Gendan spil:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Gendan"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Mislykkedes at hente spil tilstand fra fil:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Mislykkedes at gemme spil tilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Mislykkedes at gemme spil tilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Mislykkedes at gemme spil tilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Gemmer:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Indlæs spil:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Gemmer:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL emulator"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL emulator"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Ingen musik"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga lyd emulator"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib emulator"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS emulator (IKKE IMPLEMENTERET)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 lyd emulator"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Initialisere MT-32 emulator"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 emulator"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker emulator"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr emulator"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Tasteoversigt:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktiv)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Spil)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM Hovedmenu"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~V~enstrehåndstilstand "
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~I~ndy kamp styring"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Vis muse markør"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Hæft til hjørner"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Touch X forskydning"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Touch Y forskydning"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Brug bærbar museplade-agtig markør kontrol"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Tryk for venstre klik, dobbelt tryk for højre klik"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Følsomhed"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Skalering af øverste skærm ved opstart:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Hovedskærm skalering"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Hardware skalering (hurtig, men lav kvalitet)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Software skalering (god kvalitet, men langsommere)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Ikke skaleret (du skal rulle til venstre og højre)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Lysstyrke:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Høj lydkvalitet (langsommere) (genstart)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Deaktiver slukning"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Pegeplade tilstand aktiveret."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Pegeplade tilstand deaktiveret."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Pegeplade tilstand aktiveret."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Pegeplade tilstand deaktiveret."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Skift billedformat korrektion"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Skift billedformat korrektion"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Skift mellem grafik filtre"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Rendere tilstand:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Bevar"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Aktuel videotilstand:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Op"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Ned"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Venstre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Højre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Venstre klik"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Højre klik"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zone"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multi funktion"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Skift person"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Spring tekst over"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Hurtig tilstand"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Fejlsøger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Global menu"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuelt tastatur"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Tastetildeling"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Vil du afslutte?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Aktuel videotilstand:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Double-strike (ikke-interlaced)"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Vandret underskan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Lodret underskan:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Input"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "GC Pad følsomhed:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "GC Pad acceleration:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Ukendt"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Montere DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Afmontere DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Mappe:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Bruger:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Kodeord:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Init netværk"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Montere SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Afmonterer SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD montering lykkedes"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Fejl ved montering af DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ikke monteret"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Netværk oppe, delt mappe monteret"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Netværk oppe"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", fejl imens montering af delt mappe"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", delt mappe ikke monteret"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Netværk nede"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Initialisere netværk"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Tidsgrænse nået ved initialisering af netværk"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Netværk ikke initialiseret (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Skjul værktøjslinje"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Vis tastatur"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Lyd til/fra"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Højre klik"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Vis/skjul markør"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Fri udsigt"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Formindsk"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Forstør"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Tildel taster"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Pil op"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Pil ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Pil til venstre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Pil til højre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Vil du hente eller gemme spillet?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Er du sikker på at du vil afslutte ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Drej"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Brug SDL driver"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Vis"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Vil du udføre en automatisk skanning ?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Tildel højreklikshandling"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Du skal tildele en tast til 'Højreklik' handlingen for at spille dette spil"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Tildel \"skjul værktøjslinje\" handling"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Du skal tildele en tast til 'Skjul værktøjslinje' handlingen for at spille "
-"dette spil"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Tildel Formindsk handling (valgfri)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Tildel Forstør handling (valgfri)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Glem ikke at tildele en tast til 'Skjul værktøjslinje' handling for at se "
-"hele oversigten"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Vil du virkelig slette denne gemmer?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Slag"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Vil du afslutte?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Lydstyrke"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Lydstyrke"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Fundet %d nye spil."
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns emulator"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ugyldig sti"
+# Copyright (C) 2010 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Steffen Nyeland <steffen@nyeland.dk>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-01-08 22:53+0100\n"
+"Last-Translator: Steffen Nyeland <steffen@nyeland.dk>\n"
+"Language-Team: Steffen Nyeland <steffen@nyeland.dk>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Dansk\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(bygget den %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Funktioner kompileret ind:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Tilgængelige \"motorer\":"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Gå op"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Gå til forrige biblioteks niveau"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Gå op"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Fortryd"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Vælg"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Luk"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Muse klik"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Vis tastatur"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Kortlæg taster"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Vælg en handling at kortlægge"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Kortlæg"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Vælg en handling og klik 'Kortlæg'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Tilknyttet tast : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Tilknyttet tast : ingen"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Vælg venligst en handling"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Tryk tasten for at tilknytte"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Spil"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kort spil identifikator til brug for gemmer, og for at køre spillet fra "
+"kommandolinien"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Navn:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Fuld titel på spillet"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Navn:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Sprog:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Spillets sprog. Dette vil ikke ændre din spanske version af spillet til "
+"engelsk"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<standard>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Platform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Platform som spillet oprindeligt var designet til"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Platform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafik"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafik indstillinger"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafik indstillinger"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Lyd"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Overstyr globale lyd indstillinger"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Overstyr globale lyd indstillinger"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Lydstyrke"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Lydstyrke"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Overstyr globale lydstyrke indstillinger"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Overstyr globale lydstyrke indstillinger"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI indstillinger"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI indstillinger"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32 indstillinger"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32 indstillinger"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Stier"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Stier"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Spil sti:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Spil sti:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Ekstra sti:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Angiver sti til ekstra data der bruges i spillet"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Ekstra sti:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Gemme sti:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Angiver hvor dine gemmer bliver lagt"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Gemme sti:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Standard"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Vælg SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Vælg bibliotek med spil data"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Vælg ekstra spil bibliotek"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Vælg bibliotek til spil gemmer"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Dette spil ID er allerede i brug. Vælg venligst et andet."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~A~fslut"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Afslut ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~O~m..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Om ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~I~ndstillinger..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Ændre globale ScummVM indstillinger"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tart"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Start det valgte spil"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~H~ent..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Hent gemmer for det valgte spil"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~T~ilføj spil..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Hold Skift for at tilføje flere"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~R~ediger spil..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Ændre spil indstillinger"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~F~jern spil"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Fjerner spil fra listen. Spillets data filer forbliver uberørt"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~T~ilføj spil..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~R~ediger spil..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~F~jern spil"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Søg i spil liste"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Søg:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Slet værdi"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Indlæs spil:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Indlæs"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Vil du virkelig køre fler spils detektoren? Dette kunne potentielt tilføje "
+"et stort antal spil."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ja"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nej"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM kunne ikke åbne det angivne bibliotek!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM kunne ikke finde noget spil i det angivne bibliotek!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Vælg spillet:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Vil du virkelig fjerne denne spil konfiguration?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Dette spil understøtter ikke hentning af spil fra spiloversigten."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM kunne ikke finde en motor, istand til at afvikle det valgte spil!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Tilføj flere..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Tilføj flere..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... fremskridt ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Skan gennemført!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Gennemset %d biblioteker ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Fundet %d nye spil ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Aldrig"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "hvert 5. minut"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "hvert 10. minut"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "hvert 15. minut"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "hvert 30. minut"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafik tilstand:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Rendere tilstand:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Speciel farvereduceringstilstand understøttet a nogle spil"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Fuldskærms tilstand"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Billedformat korrektion"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Korrekt billedformat til 320x200 spil"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA farveforøgelse"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Aktiver farveforøgelse i EGA spil der understøtter det"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Foretruk. enhed:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Musik enhed:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Angiver foretukket lyd enhed eller lydkort emulator"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Angiver lyd udgangsenhed eller lydkorts emulator"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Foretruk. enh.:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Musik enhed:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib emulator:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib bliver brugt til musik i mange spil"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Udgangsfrekvens:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Højere værdi angiver bedre lyd kvalitet, men understøttes måske ikke af dit "
+"lydkort"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM enhed:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Angiver standard lyd enhed for General MIDI udgang"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Brug ikke General MIDI musik"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Brug første tilgængelig enhed"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont er understøttet af nogle lydkort, Fluidsynth og Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Blandet AdLib/MIDI tilstand"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Brug både MIDI og AdLib lyd generering"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI lydstyrke:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "MT-32 enhed:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr "Angiver standard lyd enhed for Roland MT-32/LAPC1/CM32I/CM64 udgang"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Ægte Roland MT-32 (undlad GM emulering)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Kontroller om du vil bruge din rigtige hardware Roland-kompatible lyd enhed "
+"tilsluttet til din computer"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Ægte Roland MT-32 (ingen GM emulering)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Aktivér Roland GS tilstand"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Sluk for General MIDI kortlægning for spil med Roland MT-32 lydspor"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Brug ikke Roland MT-32 musik"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Tekst og tale:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Tale"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Undertekster"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Begge"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Tekst hastighed:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Tekst og tale:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Tale"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Tekst"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Begge"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Vis undertekster og afspil tale"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Tekst hastighed:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Musik lydstyrke:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musik lydstyrke:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Mute alle"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "SFX lydstyrke:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Lydstyrke for specielle lydeffekter"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "SFX lydstyrke:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Tale lydstyrke:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Tale lydstyrke:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Tema sti:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Tema sti:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Angiver sti til ekstra data brugt af alle spil eller ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Plugin sti:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Plugin sti:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Andet"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Andet"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI renderer:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Auto gemme:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Auto gemme:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Taster"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Sprog:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Sprog for brugerfladen i ScummVM"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Du skal genstarte ScummVM for at ændringer vises."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Vælg bibliotek til gemmer"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "Der kan ikke skrives til det valgte bibliotek. Vælg venligst et andet."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Vælg bibliotek for GUI temaer"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Vælg bibliotek for ekstra filer"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Vælg bibliotek for plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du valgte understøtter ikke dit aktuelle sprog. Hvis du ønsker at "
+"bruge dette tema, skal du skifte til et andet sprog først."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Ingen dato gemt"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Intet tidspunkt gemt"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Ingen spilletid gemt"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Slet"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Vil du virkelig slette denne gemmer?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Dato:"
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Tid:"
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Spilletid:"
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Unavngivet gemmetilstand"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Vælg et tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Deaktiveret GFX"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Deaktiveret GFX"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard renderer (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Antialias renderer (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Antialias (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Motor understøtter ikke fejlfindingsniveau '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Spring over"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pause"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Spring linje over"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Fejl ved kørsel af spil:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Kunne ikke finde nogen motor istand til at afvikle det valgte spil"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr ""
+
+#: common/error.cpp:40
+#, fuzzy
+msgid "Game data not found"
+msgstr "Spil data ikke fundet"
+
+#: common/error.cpp:42
+#, fuzzy
+msgid "Game id not supported"
+msgstr "Spil id ikke understøttet"
+
+#: common/error.cpp:44
+#, fuzzy
+msgid "Unsupported color mode"
+msgstr "Ikke understøttet farve tilstand"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Læse rettighed nægtet"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Skrive rettighed nægtet"
+
+#: common/error.cpp:52
+#, fuzzy
+msgid "Path does not exist"
+msgstr "Sti eksistere ikke"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Sti ikke et bibliotek"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Sti ikke en fil"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Kan ikke oprette fil"
+
+#: common/error.cpp:61
+#, fuzzy
+msgid "Reading data failed"
+msgstr "Læsning fejlet"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Skrivning af data fejlet"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr ""
+
+#: common/error.cpp:68
+#, fuzzy
+msgid "Engine plugin does not support save states"
+msgstr "Motor understøtter ikke fejlfindingsniveau '%s'"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+#, fuzzy
+msgid "Unknown error"
+msgstr "Ukendt fejl"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules grøn"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules brun"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules grøn"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules brun"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "Gen~o~ptag"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~H~ent"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~G~em"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~I~ndstillinger"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "H~j~ælp"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~O~m"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~R~etur til spiloversigt"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~R~etur til oversigt"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Gemmer:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Gem"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~F~ortryd"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~aster"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Aktuel videotilstand:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Skift billedformat korrektion"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Er du sikker på at du vil afslutte ? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Er du sikker på at du vil afslutte ? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Afslut"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Vælg et tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "Fo~r~rige"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~N~æste"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~L~uk"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Tale"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Undertekster"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Undertekster"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Tale"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Almindelige tastatur kommandoer:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Gem / Hent dialog"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Spring tekstlinje over"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Spring mellemscene over"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Mellemrum"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pause spil"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Hent spil tilstand 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Gem spil tilstand 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Skift fuldskærm"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Musik lydstyrke op / ned"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Tekst hastighed langsommere / hurtigere"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simulere venstre museknap"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simulere højre museknap"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Specielle tastatur kommandoer:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Vis / Skjul konsol"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Start fejlfinder"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Vis hukommelsesforbrug"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Kør i hurtig tilstand (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Kør i meget hurtig tilstand (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Skift muse fanger"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Skift mellem grafik filtre"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Hæv / Sænk skaleringsfaktor"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Skift billedformat korrektion"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Bemærk at brug af ctrl-f og"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g ikke kan ikke anbefales"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " siden de kan skabe nedbrud"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " eller ukorrekt opførsel af spil."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Spind ordspil på tastaturet:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Vigtigste spilstyring:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Skub"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Træk"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Giv"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Åbn"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Tag"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Brug"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Læs"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Nyt barn"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Tænd"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Sluk"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Tag op"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Hvad er"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Lås op"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Tag på"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Tag af"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Lav"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Skift"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Se"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Tal"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Rejs"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Til Henry / Til Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "spil C-mol på rok"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "spil D på rok"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "spil E på rok"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "spil F på rok"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "spil G på rok"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "spil A på rok"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "spil H på rok"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "spil C-dur på rok"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Skub"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "træk (Y)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Tal til"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Lur på"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "tæNd"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "sluk (F)"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "TastOp"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Fremhæv forrige dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "TastNed"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Fremhæv næste dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Gå"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Oversigt"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objekt"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Sort og hvid / Farve"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Øjne"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Tunge"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Slag"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Spark"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Undersøg"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Normal markør"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Komm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Gem / Hent / Indstillinger"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Andre spil kontroller"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Oversigt:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Rul liste op"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Rul liste ned"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Øverste venstre punkt"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Nederste højre punkt"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Øverste højre punkt"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Nederste venstre punkt"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Midterste højre punkt"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Midterste højre punkt"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Skift personer:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Andet barn"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tredie barn"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Kamp kontroller (numtast):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Skridt tilbage"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Blokér højt"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Blokér midtfor"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Blokér lavt"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Slå højt"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Slå midtfor"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Slå lavt"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Disse er for Indy til venstre"
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Når Indy er til højre,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4 og 1 bliver bytte med"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "repektivt 9, 6 og 3."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Biplan kontroller (numtast):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Flyv øverst til venste"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Flyv til venstre"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Flyv nederst til venstre"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Flyv opad"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Flyv ligeud"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Flyv nedad"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Flyv øverst til højre"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Flyv til højre"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Flyv nederst til højre"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Mislykkedes at gemme spil tilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Mislykkedes at hente spil tilstand fra fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Gemt spil tilstand problemfrit i fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~Z~ip tilstand aktiveret"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~O~vergange aktiveret"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "ScummVM Hovedmenu"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~V~andeffekter aktiveret"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Gendan spil:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Gendan"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Mislykkedes at hente spil tilstand fra fil:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Mislykkedes at gemme spil tilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Mislykkedes at gemme spil tilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Mislykkedes at gemme spil tilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Gemmer:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Indlæs spil:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Gemmer:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL emulator"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL emulator"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Ingen musik"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga lyd emulator"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib emulator"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS emulator (IKKE IMPLEMENTERET)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 lyd emulator"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Initialisere MT-32 emulator"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 emulator"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker emulator"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr emulator"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Tasteoversigt:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktiv)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Spil)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM Hovedmenu"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~V~enstrehåndstilstand "
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~I~ndy kamp styring"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Vis muse markør"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Hæft til hjørner"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Touch X forskydning"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Touch Y forskydning"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Brug bærbar museplade-agtig markør kontrol"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Tryk for venstre klik, dobbelt tryk for højre klik"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Følsomhed"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Skalering af øverste skærm ved opstart:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Hovedskærm skalering"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Hardware skalering (hurtig, men lav kvalitet)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Software skalering (god kvalitet, men langsommere)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Ikke skaleret (du skal rulle til venstre og højre)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Høj lydkvalitet (langsommere) (genstart)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Deaktiver slukning"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Pegeplade tilstand aktiveret."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Pegeplade tilstand deaktiveret."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Pegeplade tilstand aktiveret."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Pegeplade tilstand deaktiveret."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Afslut ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Skift billedformat korrektion"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Skift billedformat korrektion"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Skift mellem grafik filtre"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Rendere tilstand:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Bevar"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Aktuel videotilstand:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Op"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Ned"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Venstre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Højre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Venstre klik"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Højre klik"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zone"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multi funktion"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Skift person"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Spring tekst over"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Hurtig tilstand"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Fejlsøger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Global menu"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuelt tastatur"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Tastetildeling"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Vil du afslutte?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Aktuel videotilstand:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Double-strike (ikke-interlaced)"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Vandret underskan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Lodret underskan:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Input"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "GC Pad følsomhed:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "GC Pad acceleration:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Ukendt"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Montere DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Afmontere DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Mappe:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Bruger:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Kodeord:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Init netværk"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Montere SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Afmonterer SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD montering lykkedes"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Fejl ved montering af DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ikke monteret"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Netværk oppe, delt mappe monteret"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Netværk oppe"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", fejl imens montering af delt mappe"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", delt mappe ikke monteret"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Netværk nede"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Initialisere netværk"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Tidsgrænse nået ved initialisering af netværk"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Netværk ikke initialiseret (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Skjul værktøjslinje"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Vis tastatur"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Lyd til/fra"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Højre klik"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Vis/skjul markør"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Fri udsigt"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Formindsk"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Forstør"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Tildel taster"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Pil op"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Pil ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Pil til venstre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Pil til højre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Vil du hente eller gemme spillet?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Er du sikker på at du vil afslutte ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tastatur"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Drej"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Brug SDL driver"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Vis"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Vil du udføre en automatisk skanning ?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Tildel højreklikshandling"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Du skal tildele en tast til 'Højreklik' handlingen for at spille dette spil"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Tildel \"skjul værktøjslinje\" handling"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Du skal tildele en tast til 'Skjul værktøjslinje' handlingen for at spille "
+"dette spil"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Tildel Formindsk handling (valgfri)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Tildel Forstør handling (valgfri)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Glem ikke at tildele en tast til 'Skjul værktøjslinje' handling for at se "
+"hele oversigten"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Vil du virkelig slette denne gemmer?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Slag"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Vil du afslutte?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Lydstyrke"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Lydstyrke"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Tilføj spil..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Tilføj spil..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Fundet %d nye spil."
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns emulator"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Ugyldig sti"
diff --git a/po/de_DE.po b/po/de_DE.po
index d823212316..3295c1a53d 100644
--- a/po/de_DE.po
+++ b/po/de_DE.po
@@ -1,2684 +1,2795 @@
-# German translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Lothar Serra Mari <Lothar@Windowsbase.de> & Simon Sawatzki <SimSaw@gmx.de>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-06-20 09:45+0100\n"
-"Last-Translator: Simon Sawatzki <SimSaw@gmx.de>\n"
-"Language-Team: Lothar Serra Mari <Lothar@Windowsbase.de> & Simon Sawatzki "
-"<SimSaw@gmx.de>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Deutsch\n"
-"Plural-Forms: nplurals=2; plural=n != 1;\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(erstellt am %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Verwendete Funktionen:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Verfügbare Spiele-Engines:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Pfad hoch"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Zu höherer Pfadebene wechseln"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Pfad hoch"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Abbrechen"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Auswählen"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Schließen"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Mausklick"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Tastatur anzeigen"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Tasten neu zuweisen"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Eine Aktion zum Zuweisen auswählen"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Zuweisen"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Aktion auswählen und \"Zuweisen\" klicken"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Zugewiesene Taste: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Zugewiesene Taste: keine"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Bitte eine Aktion auswählen"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Taste drücken, um sie zuzuweisen"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Spiel"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "Kennung:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Kurzer Spielname, um die Spielstände zuzuordnen und das Spiel von der "
-"Kommandozeile aus starten zu können"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Name:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Voller Name des Spiels"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Name:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Sprache:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Sprache des Spiels. Diese Funktion wird nicht eine spanische Version des "
-"Spiels in eine deutsche verwandeln."
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<Standard>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plattform, für die das Spiel ursprünglich erstellt wurde"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafik"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Globale Grafikeinstellungen übergehen"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Globale Grafikeinstellungen übergehen"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Audio"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Globale Audioeinstellungen übergehen"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Globale Audioeinstellungen übergehen"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Lautstärke"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Lautst."
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Globale Lautstärke-Einstellungen übergehen"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Globale Lautstärkeeinstellungen übergehen"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Globale MIDI-Einstellungen übergehen"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Globale MIDI-Einstellungen übergehen"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Globale MT-32-Einstellungen übergehen"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Globale MT-32-Einstellungen übergehen"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Pfade"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Pfade"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Spielpfad:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Spielpfad:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Extrapfad:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Legt das Verzeichnis für zusätzliche Spieldateien fest."
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Extrapfad:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Spielstände:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Legt fest, wo die Spielstände abgelegt werden."
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Speichern:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Keiner"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Standard"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "SoundFont auswählen"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Verzeichnis mit Spieldateien auswählen"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Verzeichnis mit zusätzlichen Dateien auswählen"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Verzeichnis für Spielstände auswählen"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Diese Spielkennung ist schon vergeben. Bitte eine andere wählen."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~B~eenden"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "ScummVM beenden"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "Übe~r~"
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Über ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~ptionen"
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Globale ScummVM-Einstellungen bearbeiten"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tarten"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Ausgewähltes Spiel starten"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~L~aden..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Spielstand für ausgewähltes Spiel laden"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "Spiel ~h~inzufügen"
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr ""
-"Umschalttaste (Shift) gedrückt halten, um Verzeichnisse nach Spielen zu "
-"durchsuchen"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "Spielo~p~tionen"
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Spieloptionen ändern"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "Spiel ~e~ntfernen"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Spiel aus der Liste entfernen. Die Spieldateien bleiben erhalten."
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~H~inzufügen"
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "Spielo~p~tion"
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~E~ntfernen"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "In Spieleliste suchen"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Suchen:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Wert löschen"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Spiel laden:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Laden"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Möchten Sie wirklich den PC nach Spielen durchsuchen? Möglicherweise wird "
-"dabei eine größere Menge an Spielen hinzugefügt."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ja"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nein"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM konnte das gewählte Verzeichnis nicht öffnen!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM konnte im gewählten Verzeichnis kein Spiel finden!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Spiel auswählen:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Möchten Sie wirklich diese Spielkonfiguration entfernen?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr ""
-"Für dieses Spiel wird das Laden aus der Spieleliste heraus nicht unterstützt."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM konnte keine Engine finden, um das Spiel zu starten!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Durchsuchen"
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Durchsuchen"
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Hinzufügen"
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Spiel hinzufügen"
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... läuft..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Suchlauf abgeschlossen!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr "%d neue Spiele gefunden, %d bereits hinzugefügte Spiele ignoriert."
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "%d Ordner durchsucht..."
-
-#: gui/massadd.cpp:253
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "%d neue Spiele gefunden, %d bereits hinzugefügte Spiele ignoriert..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Niemals"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "alle 5 Minuten"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "alle 10 Minuten"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "alle 15 Minuten"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "alle 30 Minuten"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "-"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr "Fehler bei einigen Änderungen in Grafikoptionen:"
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr "Grafikmodus konnte nicht geändert werden."
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr "Vollbildeinstellung konnte nicht geändert werden."
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-"Einstellung für Seitenverhältniskorrektur konnte nicht geändert werden."
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafikmodus:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Render-Modus:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr ""
-"Spezielle Farbmischungsmethoden werden von manchen Spielen unterstützt."
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Vollbildmodus"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Seitenverhältnis korrigieren"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Seitenverhältnis für Spiele mit der Auflösung 320x200 korrigieren"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "Antifehlerdiffusion für EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr ""
-"Aktiviert die Aufhebung der Fehlerdiffusion in EGA-Spielen, die dies "
-"unterstützen."
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Standard-Gerät:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Musikgerät:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-"Legt das bevorzugte Tonwiedergabe-Gerät oder den Soundkarten-Emulator fest."
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Legt das Musikwiedergabe-Gerät oder den Soundkarten-Emulator fest."
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Standard-Gerät:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Musikgerät:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib-Emulator"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib wird für die Musik in vielen Spielen verwendet."
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Ausgabefrequenz:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Höhere Werte bewirken eine bessere Soundqualität, werden aber möglicherweise "
-"nicht von jeder Soundkarte unterstützt."
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM-Gerät:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr ""
-"Legt das standardmäßige Musikwiedergabe-Gerät für General-MIDI-Ausgabe fest."
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Keine General-MIDI-Musik"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Erstes verfügbares Gerät"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFont wird von einigen Soundkarten, Fluidsynth und Timidity unterstützt."
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "AdLib-/MIDI-Modus"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Benutzt MIDI und AdLib zur Sounderzeugung."
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI-Lautstärke:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "MT-32-Gerät:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Legt das standardmäßige Tonwiedergabe-Gerät für die Ausgabe von Roland MT-32/"
-"LAPC1/CM32l/CM64 fest."
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Echte Roland-MT-32-Emulation (GM-Emulation deaktiviert)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Wählen Sie dies aus, wenn Sie Ihre echte Hardware, die mit einer Roland-"
-"kompatiblen Soundkarte verbunden ist, verwenden möchten."
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Echte Roland-MT-32-Emulation (kein GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Roland-GS-Modus"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Schaltet die General-MIDI-Zuweisung für Spiele mit Roland-MT-32-Audiospur "
-"aus."
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Keine Roland-MT-32-Musik"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Sprache und Text:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Sprache"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Untertitel"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Beides"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Untertitel-Tempo:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Sprache + Text:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Spr."
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "TXT"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "S+T"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Untertitel anzeigen und Sprachausgabe aktivieren"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Text-Tempo:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Musiklautstärke:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musiklautstärke:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Alles aus"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Effektlautstärke:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Lautstärke spezieller Soundeffekte"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Effektlautst.:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Sprachlautstärke:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Sprachlautst.:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Themenpfad:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Themenpfad:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"Legt das Verzeichnis für zusätzliche Spieldateien für alle Spiele in ScummVM "
-"fest."
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Plugin-Pfad:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Plugin-Pfad:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Sonstiges"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Andere"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Thema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI-Renderer:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autom. Speichern:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Speich.(auto)"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Tasten"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Sprache:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Sprache der ScummVM-Oberfläche"
-
-#: gui/options.cpp:1295
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Sie müssen ScummVM neu starten, damit die Änderungen wirksam werden."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Verzeichnis für Spielstände auswählen"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr ""
-"In das gewählte Verzeichnis kann nicht geschrieben werden. Bitte ein anderes "
-"auswählen."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Verzeichnis für Oberflächen-Themen"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Verzeichnis für zusätzliche Dateien auswählen"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Verzeichnis für Erweiterungen auswählen"
-
-# Nicht übersetzen, da diese Nachricht nur für nicht-lateinische Sprachen relevant ist.
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Kein Datum gespeichert"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Keine Zeit gespeichert"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Keine Spielzeit gespeichert"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Löschen"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Diesen Spielstand wirklich löschen?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Datum: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Zeit: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Spieldauer: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Unbenannt"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Thema auswählen"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX ausgeschaltet"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX ausgeschaltet"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard-Renderer (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Kantenglättung (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Kantenglättung (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Engine unterstützt den Debug-Level \"%s\" nicht."
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menü"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Überspringen"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pause"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Zeile überspringen"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Fehler beim Ausführen des Spiels:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Konnte keine Spiel-Engine finden, die dieses Spiel starten kann."
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Kein Fehler"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Spieldaten nicht gefunden"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Spielkennung nicht unterstützt"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Farbmodus nicht unterstützt"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Lese-Berechtigung nicht vorhanden"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Schreib-Berechtigung nicht vorhanden"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Verzeichnis existiert nicht."
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Ungültiges Verzeichnis"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Pfad ist keine Datei."
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Kann Datei nicht erstellen."
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Daten konnten nicht gelesen werden."
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Daten konnten nicht geschrieben werden."
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Konnte kein passendes Engine-Plugin finden."
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Engine-Plugin unterstützt keine Speicherstände."
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Unbekannter Fehler"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules-Grün"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules-Bernsteingelb"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules-Grün"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules-Gelb"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr "Das Spiel im Verzeichnis \"%s\" scheint nicht bekannt zu sein."
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-"Bitte berichten Sie die folgenden Daten auf Englisch an das ScummVM-Team "
-"sowie"
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-"den Namen des Spiels, das Sie hinzufügen wollten, als auch die Version/"
-"Sprache/usw.:"
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~F~ortsetzen"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~L~aden"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~S~peichern"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~ptionen"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~H~ilfe"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "Übe~r~"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "Zur Spiele~l~iste zurück"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "Zur Spiele~l~iste"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Speichern:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Speichern"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-"Leider bietet diese Engine keine Spielhilfe. Bitte lesen Sie die LIESMICH-"
-"Datei für grundlegende Informationen und Anweisungen dazu, wie man an "
-"weitere Hilfe gelangt."
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~bbrechen"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~asten"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr "Konnte Farbenformat nicht initialisieren."
-
-#: engines/engine.cpp:228
-msgid "Could not switch to video mode: '"
-msgstr "Konnte nicht zu Grafikmodus wechseln: '"
-
-#: engines/engine.cpp:237
-msgid "Could not apply aspect ratio setting."
-msgstr "Konnte Einstellung für Seitenverhältniskorrektur nicht anwenden."
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr "Konnte Einstellung für Vollbildmodus nicht anwenden."
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-"Sie scheinen dieses Spiel direkt von CD zu\n"
-"spielen. Dies kann bekanntermaßen zu Problemen\n"
-"führen und es wird deshalb empfohlen, die\n"
-"Dateien des Spiels auf die Festplatte zu\n"
-"kopieren und von dort aus zu spielen.\n"
-"Lesen Sie die LIESMICH-Datei für\n"
-"weitere Informationen."
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-"Dieses Spiel hat Audio-Titel auf seiner CD.\n"
-"Diese Titel müssen von der CD mittels eines\n"
-"geeigneten Extrahierungsprogramms für\n"
-"Audio-CDs beschafft werden, um diese im\n"
-"Spiel hören zu können. Lesen Sie die\n"
-"LIESMICH-Datei für weitere Informationen."
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~Z~urück"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~W~eiter"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~S~chließen"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Allgemeine Tastenbefehle:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Menü zum Speichern/Laden"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Textzeile überspringen"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Zwischensequenz überspringen"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Leertaste"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Spielpause"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Strg"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Spielstand 1-10 laden"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Spielstand 1-10 speichern"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Beenden"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Vollbild-/Fenster-Modus"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Musiklautstärke höher/niedriger"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Texttempo langsamer/schneller"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Linke Maustaste simulieren"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tabulator"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Rechte Maustaste simulieren"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Spezielle Tastenbefehle:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Konsole zeigen/verbergen"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Debugger starten"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Speicherverbrauch anzeigen"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Schneller Modus (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Sehr schneller Modus (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Mauseingrenzung in Fenster an/aus"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Zwischen Grafikfiltern wechseln"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Größenverhätlnis höher/niedriger"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Seitenverhältnis anpassen: an/aus"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Es wird davon abgeraten,"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " Strg+f und Strg+g zu verwenden,"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " da dies Abstürze oder fehlerhaftes"
-
-#: engines/scumm/help.cpp:110
-msgid " or incorrect game behavior."
-msgstr " Spielverhalten verursachen kann."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Sprüche mit Tastatur spinnen:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Hauptspielsteuerung:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Drücke"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Ziehe"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Gib"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Öffne"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Gehe zu"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Nimm"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Benutze"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Lies"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Person"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Schalt ein"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Schalt aus"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Gehe zu"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Nimm"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Was ist"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Schließ auf"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Zieh an"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Nimm ab"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Reparier"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Wechsle"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Schau"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Rede"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Reise"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Zu Henry/Zu Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "spiele tiefes C auf Stab"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "spiele D auf Stab"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "spiele E auf Stab"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "spiele F auf Stab"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "spiele G auf Stab"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "spiele A auf Stab"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "spiele B auf Stab"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "spiele hohes C auf Stab"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Drücke"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Ziehe"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Rede mit"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Schau an"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Mach an"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Mach aus"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Hoch-Taste"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Vorige Dialogwahl markieren"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Runter-Taste"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Nächste Dialogwahl markieren"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Gehe"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventar"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objekt"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Graustufen-Modus/Farbe"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Augen"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Zunge"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Schlage"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Tritt"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Betrachte"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Normaler Mauszeiger"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Kommunikation"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Speichern / Laden / Optionen"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Weitere Steuerung:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventar:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Liste hochblättern"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Liste runterblättern"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Oberer linker Gegenstand"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Unterer linker Gegenstand"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Oberer rechter Gegenstand"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Unterer rechter Gegenstand"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Mittlerer linker Gegenstand"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Mittlerer rechter Gegenstand"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Figuren wechseln:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Zweites Kind"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Drittes Kind"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Kampfsteuerung (Ziffernblock):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Schritt zurück"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Deckung oben"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Deckung Mitte"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Deckung unten"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Schlag oben"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Schlag Mitte"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Schlag unten"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Dies gilt für Indy links."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Wenn Indy rechts steht,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "werden 7, 4 und 1 je mit"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 und 3 vertauscht."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Doppeldecker (Ziffernblock):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Nach oben links fliegen"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Nach links fliegen"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Nach unten links fliegen"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Nach oben fliegen"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Geradeaus fliegen"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Nach unten fliegen"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Nach oben rechts fliegen"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Nach rechts fliegen"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Nach unten rechts fliegen"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-"Systemeigene MIDI-Ünterstützung erfordert das Roland-Upgrade von LucasArts,\n"
-"aber %s fehlt. Stattdessen wird AdLib verwendet."
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Konnte Spielstand nicht in folgender Datei speichern:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Konnte Spielstand nicht aus folgender Datei laden:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Spielstand erfolgreich in folgender Datei gespeichert:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Normalerweise würde jetzt Maniac Mansion starten. ScummVM kann das jedoch "
-"noch nicht. Um dieses Spiel zu spielen, klicken Sie auf \"Spiel hinzufügen\" "
-"im Startmenü von ScummVM und wählen das Verzeichnis \"Maniac\" im "
-"Verzeichnis dieses Spiels aus."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ip-Modus aktiviert"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "Über~g~änge aktiviert"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~W~assereffekt aktiviert"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Spiel laden:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Laden"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr "Zwischensequenz \"%s\" nicht gefunden!"
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-msgid "Failed to load game state from file."
-msgstr "Konnte Spielstand aus Datei nicht laden."
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-msgid "Failed to save game state to file."
-msgstr "Konnte Spielstand nicht in Datei speichern."
-
-#: engines/gob/inter_v5.cpp:107
-msgid "Failed to delete file."
-msgstr "Konnte Datei nicht löschen."
-
-#: engines/groovie/script.cpp:417
-msgid "Failed to save game"
-msgstr "Konnte Spielstand nicht speichern."
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-"Sie scheinen ein General-MIDI-Gerät zu\n"
-"verwenden, aber das Spiel unterstützt nur\n"
-"Roland MT-32 MIDI. Es wird versucht, die\n"
-"Roland-MT-32-Instrumente denen von General MIDI\n"
-"zuzuordnen. Es kann jedoch vorkommen, dass ein\n"
-"paar Musikstücke nicht richtig abgespielt werden."
-
-#: engines/m4/m4_menus.cpp:138
-msgid "Save game failed!"
-msgstr "Konnte Spielstand nicht speichern!"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-"Konnte \"sky.cpt\" nicht finden!\n"
-"Bitte laden Sie die Datei von\n"
-"www.scummvm.org herunter."
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-"Die Datei \"sky.cpt\" hat eine ungültige Größe.\n"
-"Bitte laden Sie diese Datei (erneut) von\n"
-"www.scummvm.org herunter."
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-"DXA-Zwischensequenzen gefunden, aber ScummVM wurde ohne Zlib-Unterstützung "
-"erstellt."
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr "MPEG2-Zwischensequenzen werden nicht mehr unterstützt."
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr "Zwischensequenz \"%s\" gefunden"
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-"ScummVM hat erkannt, dass Sie alte Speicherstände von Baphomets Fluch 1 "
-"haben, die umgewandelt werden sollten.\n"
-"Das alte Spielstandsformat wird nicht mehr unterstützt, also können Sie "
-"diese Speicherstände nicht laden, wenn Sie diese nicht konvertieren.\n"
-"\n"
-"Klicken Sie auf OK, um diese jetzt umzuwandeln, ansonsten werden Sie erneut "
-"gefragt, wenn Sie das nächste Mal dieses Spiel starten.\n"
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-"Die für den neuen Spielstand vorgesehene Datei existiert bereits!\n"
-"Möchten Sie den alten Speicherstand (%s) oder den neuen (%s) behalten?\n"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr "Den alten behalten"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr "Den neuen behalten"
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr "Das ist das Ende der Demo von Broken Sword 1 (Baphomets Fluch 1)."
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-"Kann Spiel nicht speichern auf Speicherplatz %i\n"
-"\n"
-
-#: engines/parallaction/saveload.cpp:211
-msgid "Loading game..."
-msgstr "Spiel wird geladen..."
-
-#: engines/parallaction/saveload.cpp:226
-msgid "Saving game..."
-msgstr "Spiel wird gespeichert..."
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-"ScummVM hat erkannt, dass Sie alte Speicherstände von Nippon Safes haben, "
-"die umbenannt werden sollten.\n"
-"Die alten Dateinamen werden nicht mehr unterstützt, also können Sie diese "
-"Speicherstände nicht laden, wenn Sie diese nicht konvertieren.\n"
-"\n"
-"Klicken Sie auf OK, um diese jetzt umzuwandeln, ansonsten werden Sie erneut "
-"gefragt, wenn Sie das nächste Mal dieses Spiel starten.\n"
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr "ScummVM hat alle Speicherstände erfolgreich umgewandelt."
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-"ScummVM hat ein paar Warnungen im Konsolenfenster ausgegeben und kann nicht "
-"gewährleisten, dass alle Speicherstände umgewandelt wurden.\n"
-"\n"
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME-OPL-Emulator"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox-OPL-Emulator"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"Das ausgewählte Audiogerät \"%s\" wurde nicht gefunden (könnte "
-"beispielsweise ausgeschaltet oder nicht angeschlossen sein). Es wird "
-"versucht, auf das nächste verfügbare Gerät zurückzugreifen."
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"Das ausgewählte Audiogerät \"%s\" kann nicht verwendet werden. Schauen Sie "
-"für weitere Informationen in der Log-Datei nach. Es wird versucht, auf das "
-"nächste verfügbare Gerät zurückzugreifen."
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"Das bevorzugte Audiogerät \"%s\" wurde nicht gefunden (könnte beispielsweise "
-"ausgeschaltet oder nicht angeschlossen sein). Es wird versucht, auf das "
-"nächste verfügbare Gerät zurückzugreifen."
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"Das bevorzugte Audiogerät \"%s\" kann nicht verwendet werden. Schauen Sie "
-"für weitere Informationen in der Log-Datei nach. Es wird versucht, auf das "
-"nächste verfügbare Gerät zurückzugreifen."
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Keine Musik"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga-Audio-Emulator"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib-Emulator"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple-II-GS-Emulator (NICHT INTEGRIERT)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64-Audio-Emulator"
-
-#: audio/softsynth/mt32.cpp:329
-msgid "Initializing MT-32 Emulator"
-msgstr "MT-32-Emulator wird gestartet"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32-Emulation"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC-Lautsprecher-Emulator"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM-PCjr-Emulator"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Tasten-Layout:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktiv)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Spiel)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM-Hauptmenü"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~L~inke-Hand-Modus"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~K~ampfsteuerung für Indiana Jones"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Mauszeiger anzeigen"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "An Ecken anheften"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Zu X-Position gehen"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Zu Y-Position gehen"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Den Trackpad-Style für Maussteuerung benutzen"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Tippen für Linksklick, Doppeltippen für Rechtsklick"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Empfindlichkeit"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Vergößerung des oberen Bildschirms:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Hauptbildschirm-Skalierung:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Hardware-Skalierung (schnell, aber schlechte Qualität)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Software-Skalierung (gute Qualität, aber langsamer)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Nicht skalieren (Sie müssen nach links und nach rechts scrollen)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Helligkeit:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Hohe Audioqualität (lansamer) (erfordert Neustart)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Stromsparmodus abschalten"
-
-#: backends/platform/iphone/osys_events.cpp:338
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Maus-klick-und-zieh-Modus aktiviert."
-
-#: backends/platform/iphone/osys_events.cpp:340
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Maus-klick-und-zieh-Modus ausgeschaltet."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Touchpad-Modus aktiviert."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Touchpad-Modus ausgeschaltet."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (keine Skalierung)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal ohn.Skalieren"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-msgid "Enabled aspect ratio correction"
-msgstr "Seitenverhältniskorrektur an"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-msgid "Disabled aspect ratio correction"
-msgstr "Seitenverhältniskorrektur aus"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-msgid "Active graphics filter:"
-msgstr "Aktiver Grafikfilter:"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-msgid "Windowed mode"
-msgstr "Fenstermodus"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr ""
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr ""
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-msgid "Current display mode"
-msgstr "Aktueller Grafikmodus"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr "Aktueller Vergrößerungsfaktor"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr "Aktiver Filtermodus: linear"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr "Aktiver Filtermodus: nächste Nachbarn"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Hoch"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Runter"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Links"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Rechts"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Linksklick"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Rechtsklick"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zone"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multifunktion"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Figur wechseln"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Text überspringen"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Schneller Modus"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Hauptmenü"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuelle Tastatur"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Tasten zuordnen"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Möchten Sie beenden?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Aktueller Grafikmodus:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Doppelzeilen (kein Zeilensprungverfahren)"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Horizontale Bildverkleinerung:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Vertikale Bildverkleinerung:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Eingabe"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "GC-Pad-Empfindlichkeit:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "GC-Pad-Beschleunigung:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Unbekannt"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "DVD einbinden"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "DVD aushängen"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Öffentliches Verzeichnis:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Benutzername:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Passwort:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Netzwerk starten"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "SMB einbinden"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "SMB aushängen"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD erfolgreich eingebunden"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Fehler beim Einbinden der DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD nicht eingebunden"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Netzwerk gestartet, öffentliches Verzeichnis eingebunden"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Netzwerk gestartet"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", Fehler beim Einbinden des öffentlichen Verzeichnisses"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", öffentliches Verzeichnis nicht eingebunden"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Netzwerk ist aus."
-
-#: backends/platform/wii/options.cpp:178
-msgid "Initializing network"
-msgstr "Netzwerk wird gestartet"
-
-#: backends/platform/wii/options.cpp:182
-msgid "Timeout while initializing network"
-msgstr "Zeitüberschreitung beim Starten des Netzwerks"
-
-#: backends/platform/wii/options.cpp:186
-#, c-format
-msgid "Network not initialized (%d)"
-msgstr "Netzwerk nicht gestartet (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Werkzeugleiste verbergen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Tastatur zeigen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Ton ein/aus"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Rechtsklick"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Cursor zeigen/verbergen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Freie Ansicht"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Herauszoomen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Hineinzoomen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Tasten zuweisen"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Zeiger hoch"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Zeiger runter"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Zeiger nach links"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Zeiger nach rechts"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Möchten Sie ein Spiel laden oder speichern?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Möchten Sie wirklich beenden? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Drehen"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Verwende SDL-Treiber "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Anzeige "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Möchten Sie eine automatische Suche durchführen?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Aktion \"Rechtsklick\" zuweisen"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Sie müssen der Aktion \"Rechtsklick\" eine Taste zuweisen, um dieses Spiel "
-"spielen zu können."
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Aktion \"Werkzeugleiste verbergen\" zuweisen"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Sie müssen der Aktion \"Werkzeugleiste verbergen\" eine Taste zuweisen, um "
-"dieses Spiel spielen zu können."
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Aktion \"Herauszoomen\" zuweisen (optional)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Aktion \"Hineinzoomen\" zuweisen (optional)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Vergessen Sie nicht, der Aktion \"Werkzeugleiste verbergen\" eine Taste "
-"zuzuweisen, um das ganze Inventar sehen zu können."
-
-#: backends/events/default/default-events.cpp:222
-msgid "Do you really want to return to the Launcher?"
-msgstr "Möchten Sie wirklich zur Spieleliste zurückkehren?"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Launcher"
-msgstr "Spieleliste"
-
-#: backends/events/default/default-events.cpp:244
-msgid "Do you really want to quit?"
-msgstr "Möchten Sie wirklich beenden?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr "Berührungsbildschirm-Tipp-Modus - Linksklick"
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr "Berührungsbildschirm-Tipp-Modus - Rechtsklick"
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr "Berührungsbildschirm-Tipp-Modus - schweben (kein Klick)"
-
-#: backends/events/gph/gph-events.cpp:390
-msgid "Maximum Volume"
-msgstr "Höchste Lautstärke"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr "Lautstärke höher"
-
-#: backends/events/gph/gph-events.cpp:398
-msgid "Minimal Volume"
-msgstr "Niedrigste Lautstärke"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr "Lautstärke niedriger"
-
-#~ msgid ""
-#~ "Your game version has been detected using filename matching as a variant "
-#~ "of %s."
-#~ msgstr ""
-#~ "Ihre Spielversion wurde durch Dateinamen-Übereinstimmung als Variante von "
-#~ "%s erkannt."
-
-#~ msgid "If this is an original and unmodified version, please report any"
-#~ msgstr ""
-#~ "Sollte es sich hierbei um eine unmodifizierte Originalversion handeln,"
-
-#~ msgid "information previously printed by ScummVM to the team."
-#~ msgstr ""
-#~ "so teilen Sie bitte dem Team die von ScummVM zuvor ausgegebenen Daten auf "
-#~ "Englisch mit."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argument in Kommandozeile nicht verarbeitet"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM-Towns-Emulator"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ungültiges Verzeichnis"
+# German translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Simon Sawatzki <SimSaw@gmx.de>, Lothar Serra Mari <Lothar@Windowsbase.de>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-06-20 09:45+0100\n"
+"Last-Translator: Simon Sawatzki <SimSaw@gmx.de>\n"
+"Language-Team: Simon Sawatzki <SimSaw@gmx.de> (Lead)\n"
+"Lothar Serra Mari <Lothar@Windowsbase.de> (Contributor)"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Deutsch\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(erstellt am %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Verwendete Funktionen:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Verfügbare Spiele-Engines:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Pfad hoch"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Zu höherer Pfadebene wechseln"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Pfad hoch"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Abbrechen"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Auswählen"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Schließen"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Mausklick"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Tastatur anzeigen"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Tasten neu zuweisen"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Eine Aktion zum Zuweisen auswählen"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Zuweisen"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Aktion auswählen und \"Zuweisen\" klicken"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Zugewiesene Taste: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Zugewiesene Taste: keine"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Bitte eine Aktion auswählen"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Taste drücken, um sie zuzuweisen"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Spiel"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "Kennung:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kurzer Spielname, um die Spielstände zuzuordnen und das Spiel von der "
+"Kommandozeile aus starten zu können"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Name:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Voller Name des Spiels"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Name:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Sprache:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Sprache des Spiels. Diese Funktion wird nicht eine spanische Version des "
+"Spiels in eine deutsche verwandeln."
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<Standard>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plattform, für die das Spiel ursprünglich erstellt wurde"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafik"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Globale Grafikeinstellungen übergehen"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Globale Grafikeinstellungen übergehen"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Audio"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Globale Audioeinstellungen übergehen"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Globale Audioeinstellungen übergehen"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Lautstärke"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Lautst."
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Globale Lautstärke-Einstellungen übergehen"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Globale Lautstärkeeinstellungen übergehen"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Globale MIDI-Einstellungen übergehen"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Globale MIDI-Einstellungen übergehen"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Globale MT-32-Einstellungen übergehen"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Globale MT-32-Einstellungen übergehen"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Pfade"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Pfade"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Spielpfad:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Spielpfad:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Extrapfad:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Legt das Verzeichnis für zusätzliche Spieldateien fest."
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Extrapfad:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Spielstände:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Legt fest, wo die Spielstände abgelegt werden."
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Speichern:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Keiner"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Standard"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "SoundFont auswählen"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Verzeichnis mit Spieldateien auswählen"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Verzeichnis mit zusätzlichen Dateien auswählen"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Verzeichnis für Spielstände auswählen"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Diese Spielkennung ist schon vergeben. Bitte eine andere wählen."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~B~eenden"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "ScummVM beenden"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "Übe~r~"
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Über ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~ptionen"
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Globale ScummVM-Einstellungen bearbeiten"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tarten"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Ausgewähltes Spiel starten"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~L~aden..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Spielstand für ausgewähltes Spiel laden"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "Spiel ~h~inzufügen"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr ""
+"Umschalttaste (Shift) gedrückt halten, um Verzeichnisse nach Spielen zu "
+"durchsuchen"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "Spielo~p~tionen"
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Spieloptionen ändern"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "Spiel ~e~ntfernen"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Spiel aus der Liste entfernen. Die Spieldateien bleiben erhalten."
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~H~inzufügen"
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "Spielo~p~tion"
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~E~ntfernen"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "In Spieleliste suchen"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Suchen:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Wert löschen"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Spiel laden:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Laden"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Möchten Sie wirklich den PC nach Spielen durchsuchen? Möglicherweise wird "
+"dabei eine größere Menge an Spielen hinzugefügt."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ja"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nein"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM konnte das gewählte Verzeichnis nicht öffnen!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM konnte im gewählten Verzeichnis kein Spiel finden!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Spiel auswählen:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Möchten Sie wirklich diese Spielkonfiguration entfernen?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr ""
+"Für dieses Spiel wird das Laden aus der Spieleliste heraus nicht unterstützt."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM konnte keine Engine finden, um das Spiel zu starten!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Durchsuchen"
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Durchsuchen"
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... läuft..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Suchlauf abgeschlossen!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "%d neue Spiele gefunden, %d bereits hinzugefügte Spiele ignoriert."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "%d Ordner durchsucht..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "%d neue Spiele gefunden, %d bereits hinzugefügte Spiele ignoriert..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Niemals"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "alle 5 Minuten"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "alle 10 Minuten"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "alle 15 Minuten"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "alle 30 Minuten"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "-"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "Fehler bei einigen Änderungen in Grafikoptionen:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "Grafikmodus konnte nicht geändert werden."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "Vollbildeinstellung konnte nicht geändert werden."
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+"Einstellung für Seitenverhältniskorrektur konnte nicht geändert werden."
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafikmodus:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Render-Modus:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr ""
+"Spezielle Farbmischungsmethoden werden von manchen Spielen unterstützt."
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Vollbildmodus"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Seitenverhältnis korrigieren"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Seitenverhältnis für Spiele mit der Auflösung 320x200 korrigieren"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Antifehlerdiffusion für EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr ""
+"Aktiviert die Aufhebung der Fehlerdiffusion in EGA-Spielen, die dies "
+"unterstützen."
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Standard-Gerät:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Musikgerät:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+"Legt das bevorzugte Tonwiedergabe-Gerät oder den Soundkarten-Emulator fest."
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Legt das Musikwiedergabe-Gerät oder den Soundkarten-Emulator fest."
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Standard-Gerät:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Musikgerät:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib-Emulator"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib wird für die Musik in vielen Spielen verwendet."
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Ausgabefrequenz:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Höhere Werte bewirken eine bessere Soundqualität, werden aber möglicherweise "
+"nicht von jeder Soundkarte unterstützt."
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM-Gerät:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr ""
+"Legt das standardmäßige Musikwiedergabe-Gerät für General-MIDI-Ausgabe fest."
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Keine General-MIDI-Musik"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Erstes verfügbares Gerät"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFont wird von einigen Soundkarten, Fluidsynth und Timidity unterstützt."
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "AdLib-/MIDI-Modus"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Benutzt MIDI und AdLib zur Sounderzeugung."
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI-Lautstärke:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "MT-32-Gerät:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Legt das standardmäßige Tonwiedergabe-Gerät für die Ausgabe von Roland MT-32/"
+"LAPC1/CM32l/CM64 fest."
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Echte Roland-MT-32-Emulation (GM-Emulation deaktiviert)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Wählen Sie dies aus, wenn Sie Ihre echte Hardware, die mit einer Roland-"
+"kompatiblen Soundkarte verbunden ist, verwenden möchten."
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Echte Roland-MT-32-Emulation (kein GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Roland-GS-Modus"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Schaltet die General-MIDI-Zuweisung für Spiele mit Roland-MT-32-Audiospur "
+"aus."
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Keine Roland-MT-32-Musik"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Sprache und Text:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Sprache"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Untertitel"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Beides"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Untertitel-Tempo:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Sprache + Text:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Spr."
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "TXT"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "S+T"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Untertitel anzeigen und Sprachausgabe aktivieren"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Text-Tempo:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Musiklautstärke:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musiklautstärke:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Alles aus"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Effektlautstärke:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Lautstärke spezieller Soundeffekte"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Effektlautst.:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Sprachlautstärke:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Sprachlautst.:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Themenpfad:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Themenpfad:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"Legt das Verzeichnis für zusätzliche Spieldateien für alle Spiele in ScummVM "
+"fest."
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Plugin-Pfad:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Plugin-Pfad:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Sonstiges"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Andere"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Thema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI-Renderer:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autom. Speichern:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Speich.(auto)"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Tasten"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Sprache:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Sprache der ScummVM-Oberfläche"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Sie müssen ScummVM neu starten, damit die Änderungen wirksam werden."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Verzeichnis für Spielstände auswählen"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr ""
+"In das gewählte Verzeichnis kann nicht geschrieben werden. Bitte ein anderes "
+"auswählen."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Verzeichnis für Oberflächen-Themen"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Verzeichnis für zusätzliche Dateien auswählen"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Verzeichnis für Erweiterungen auswählen"
+
+# Nicht übersetzen, da diese Nachricht nur für nicht-lateinische Sprachen relevant ist.
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Kein Datum gespeichert"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Keine Zeit gespeichert"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Keine Spielzeit gespeichert"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Löschen"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Diesen Spielstand wirklich löschen?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Datum: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Zeit: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Spieldauer: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Unbenannt"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Thema auswählen"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX ausgeschaltet"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX ausgeschaltet"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard-Renderer (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Kantenglättung (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Kantenglättung (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Engine unterstützt den Debug-Level \"%s\" nicht."
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menü"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Überspringen"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pause"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Zeile überspringen"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Fehler beim Ausführen des Spiels:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Konnte keine Spiel-Engine finden, die dieses Spiel starten kann."
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Kein Fehler"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Spieldaten nicht gefunden"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Spielkennung nicht unterstützt"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Farbmodus nicht unterstützt"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Lese-Berechtigung nicht vorhanden"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Schreib-Berechtigung nicht vorhanden"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Verzeichnis existiert nicht."
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Ungültiges Verzeichnis"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Pfad ist keine Datei."
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Kann Datei nicht erstellen."
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Daten konnten nicht gelesen werden."
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Daten konnten nicht geschrieben werden."
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Konnte kein passendes Engine-Plugin finden."
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Engine-Plugin unterstützt keine Speicherstände."
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "Abbruch durch Benutzer"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Unbekannter Fehler"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules-Grün"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules-Bernsteingelb"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules-Grün"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules-Gelb"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "Das Spiel im Verzeichnis \"%s\" scheint nicht bekannt zu sein."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+"Bitte geben Sie die folgenden Daten auf Englisch an das ScummVM-Team "
+"weiter sowie"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+"den Namen des Spiels, das Sie hinzufügen wollten, als auch die Version/"
+"Sprache/usw.:"
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~F~ortsetzen"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~L~aden"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~S~peichern"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~ptionen"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~H~ilfe"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "Übe~r~"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "Zur Spiele~l~iste zurück"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "Zur Spiele~l~iste"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Speichern:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Speichern"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"Leider bietet diese Engine keine Spielhilfe. Bitte lesen Sie die Liesmich-"
+"Datei für grundlegende Informationen und Anweisungen dazu, wie man an "
+"weitere Hilfe gelangt."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~bbrechen"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~asten"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "Konnte Farbenformat nicht initialisieren."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "Konnte nicht zu Grafikmodus wechseln: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "Konnte Einstellung für Seitenverhältniskorrektur nicht anwenden."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "Konnte Einstellung für Vollbildmodus nicht anwenden."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"Sie scheinen dieses Spiel direkt von CD zu\n"
+"spielen. Dies kann bekanntermaßen zu Problemen\n"
+"führen und es wird deshalb empfohlen, die\n"
+"Dateien des Spiels auf die Festplatte zu\n"
+"kopieren und von dort aus zu spielen.\n"
+"Lesen Sie die Liesmich-Datei für\n"
+"weitere Informationen."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"Dieses Spiel hat Audio-Titel auf seiner CD.\n"
+"Diese Titel müssen von der CD mittels eines\n"
+"geeigneten Extrahierungsprogramms für\n"
+"Audio-CDs beschafft werden, um diese im\n"
+"Spiel hören zu können. Lesen Sie die\n"
+"Liesmich-Datei für weitere Informationen."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"WARNUNG: Das Spiel, welches Sie starten wollen, wird noch nicht vollständig "
+"von ScummVM unterstützt. Somit ist es wahrscheinlich, dass es instabil ist "
+"und jegliche Spielstände, die Sie erstellen, könnten in zukünftigen "
+"Versionen von ScummVM nicht mehr funktionieren."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "Trotzdem starten"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr "Bitte Disk %c einlegen und Taste drücken"
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr "Kann %s (%c%d) nicht finden, bitte Taste drücken."
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr "Fehler beim Lesen von Disk %c (%c%d), bitte Taste drücken."
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr "Spielpause. Zum Weiterspielen Leertaste drücken."
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "Möchten Sie wirklich neu starten? (J/N)J"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "Möchten Sie wirklich beenden? (J/N)J"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr "Spielen"
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Beenden"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr "Legen Sie eine Spielstand-Disk ein."
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr "Sie müssen eine Bezeichnung eingeben."
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr "Spiel wurde NICHT gespeichert. (Datenträger voll?)"
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr "Spiel wurde NICHT geladen."
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr "Speichere \"%s\""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr "Lade \"%s\""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr "Name für Spielstand eingeben"
+
+#: engines/scumm/dialogs.cpp:200
+msgid "Select a game to LOAD"
+msgstr "Spielstand zum LADEN auswählen"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr "Spieltitel)"
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~Z~urück"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~W~eiter"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~S~chließen"
+
+#: engines/scumm/dialogs.cpp:597
+msgid "Speech Only"
+msgstr "Nur Sprachausgabe"
+
+#: engines/scumm/dialogs.cpp:598
+msgid "Speech and Subtitles"
+msgstr "Sprachausgabe und Untertitel"
+
+#: engines/scumm/dialogs.cpp:599
+msgid "Subtitles Only"
+msgstr "Nur Untertitel"
+
+#: engines/scumm/dialogs.cpp:607
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Sprache & Text"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Allgemeine Tastenbefehle:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Menü zum Speichern/Laden"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Textzeile überspringen"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Zwischensequenz überspringen"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Leertaste"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Spielpause"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Strg"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Spielstand 1-10 laden"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Spielstand 1-10 speichern"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Vollbild-/Fenster-Modus"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Musiklautstärke höher/niedriger"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Texttempo langsamer/schneller"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Linke Maustaste simulieren"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tabulator"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Rechte Maustaste simulieren"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Spezielle Tastenbefehle:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Konsole zeigen/verbergen"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Debugger starten"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Speicherverbrauch anzeigen"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Schneller Modus (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Sehr schneller Modus (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Mauseingrenzung in Fenster an/aus"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Zwischen Grafikfiltern wechseln"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Größenverhätlnis höher/niedriger"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Seitenverhältnis anpassen: an/aus"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Es wird davon abgeraten,"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " Strg+f und Strg+g zu verwenden,"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " da dies Abstürze oder fehlerhaftes"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " Spielverhalten verursachen kann."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Sprüche mit Tastatur spinnen:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Hauptspielsteuerung:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Drücke"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Ziehe"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Gib"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Öffne"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Gehe zu"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Nimm"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Benutze"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Lies"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Person"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Schalt ein"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Schalt aus"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Gehe zu"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Nimm"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Was ist"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Schließ auf"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Zieh an"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Nimm ab"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Reparier"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Wechsle"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Schau"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Rede"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Reise"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Zu Henry/Zu Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "spiele tiefes C auf Stab"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "spiele D auf Stab"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "spiele E auf Stab"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "spiele F auf Stab"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "spiele G auf Stab"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "spiele A auf Stab"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "spiele B auf Stab"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "spiele hohes C auf Stab"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Drücke"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Ziehe"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Rede mit"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Schau an"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Mach an"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Mach aus"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Hoch-Taste"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Vorige Dialogwahl markieren"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Runter-Taste"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Nächste Dialogwahl markieren"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Gehe"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventar"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objekt"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Graustufen-Modus/Farbe"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Augen"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Zunge"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Schlage"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Tritt"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Betrachte"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Normaler Mauszeiger"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Kommunikation"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Speichern / Laden / Optionen"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Weitere Steuerung:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventar:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Liste hochblättern"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Liste runterblättern"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Oberer linker Gegenstand"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Unterer linker Gegenstand"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Oberer rechter Gegenstand"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Unterer rechter Gegenstand"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Mittlerer linker Gegenstand"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Mittlerer rechter Gegenstand"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Figuren wechseln:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Zweites Kind"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Drittes Kind"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Kampfsteuerung (Ziffernblock):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Schritt zurück"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Deckung oben"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Deckung Mitte"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Deckung unten"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Schlag oben"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Schlag Mitte"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Schlag unten"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Dies gilt für Indy links."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Wenn Indy rechts steht,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "werden 7, 4 und 1 je mit"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 und 3 vertauscht."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Doppeldecker (Ziffernblock):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Nach oben links fliegen"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Nach links fliegen"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Nach unten links fliegen"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Nach oben fliegen"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Geradeaus fliegen"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Nach unten fliegen"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Nach oben rechts fliegen"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Nach rechts fliegen"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Nach unten rechts fliegen"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"Systemeigene MIDI-Ünterstützung erfordert das Roland-Upgrade von LucasArts,\n"
+"aber %s fehlt. Stattdessen wird AdLib verwendet."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Konnte Spielstand nicht in folgender Datei speichern:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Konnte Spielstand nicht aus folgender Datei laden:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Spielstand erfolgreich in folgender Datei gespeichert:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Normalerweise würde jetzt Maniac Mansion starten. ScummVM kann das jedoch "
+"noch nicht. Um dieses Spiel zu spielen, klicken Sie auf \"Spiel hinzufügen\" "
+"im Startmenü von ScummVM und wählen das Verzeichnis \"Maniac\" im "
+"Verzeichnis dieses Spiels aus."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Schneller ~R~aumwechsel aktiviert"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "Über~g~änge aktiviert"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "Seite ~w~egwerfen"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "~K~arte anzeigen"
+
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr "Haupt~m~enü"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~W~assereffekt aktiviert"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Spiel laden:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Laden"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "Zwischensequenz \"%s\" nicht gefunden!"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "Konnte Spielstand aus Datei nicht laden."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "Konnte Spielstand nicht in Datei speichern."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "Konnte Datei nicht löschen."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "Konnte Spielstand nicht speichern."
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"Sie scheinen ein General-MIDI-Gerät zu\n"
+"verwenden, aber das Spiel unterstützt nur\n"
+"Roland MT-32 MIDI. Es wird versucht, die\n"
+"Roland-MT-32-Instrumente denen von General MIDI\n"
+"zuzuordnen. Es kann jedoch vorkommen, dass ein\n"
+"paar Musikstücke nicht richtig abgespielt werden."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "Konnte Spielstand nicht speichern!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"Konnte \"sky.cpt\" nicht finden!\n"
+"Bitte laden Sie die Datei von\n"
+"www.scummvm.org herunter."
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"Die Datei \"sky.cpt\" hat eine ungültige Größe.\n"
+"Bitte laden Sie diese Datei (erneut) von\n"
+"www.scummvm.org herunter."
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+"DXA-Zwischensequenzen gefunden, aber ScummVM wurde ohne Zlib-Unterstützung "
+"erstellt."
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "MPEG2-Zwischensequenzen werden nicht mehr unterstützt."
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "Zwischensequenz \"%s\" gefunden"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"ScummVM hat erkannt, dass Sie alte Speicherstände von Baphomets Fluch 1 "
+"haben, die umgewandelt werden sollten.\n"
+"Das alte Spielstandsformat wird nicht mehr unterstützt, also können Sie "
+"diese Speicherstände nicht laden, wenn Sie diese nicht konvertieren.\n"
+"\n"
+"Klicken Sie auf OK, um diese jetzt umzuwandeln, ansonsten werden Sie erneut "
+"gefragt, wenn Sie das nächste Mal dieses Spiel starten.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"Die für den neuen Spielstand vorgesehene Datei existiert bereits!\n"
+"Möchten Sie den alten Speicherstand (%s) oder den neuen (%s) behalten?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "Den alten behalten"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "Den neuen behalten"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "Das ist das Ende der Demo von Broken Sword 1 (Baphomets Fluch 1)."
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"Kann Spiel nicht speichern auf Speicherplatz %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "Spiel wird geladen..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "Spiel wird gespeichert..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"ScummVM hat erkannt, dass Sie alte Speicherstände von Nippon Safes haben, "
+"die umbenannt werden sollten.\n"
+"Die alten Dateinamen werden nicht mehr unterstützt, also können Sie diese "
+"Speicherstände nicht laden, wenn Sie diese nicht konvertieren.\n"
+"\n"
+"Klicken Sie auf OK, um diese jetzt umzuwandeln, ansonsten werden Sie erneut "
+"gefragt, wenn Sie das nächste Mal dieses Spiel starten.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM hat alle Speicherstände erfolgreich umgewandelt."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM hat ein paar Warnungen im Konsolenfenster ausgegeben und kann nicht "
+"gewährleisten, dass alle Speicherstände umgewandelt wurden.\n"
+"\n"
+"Bitte berichten Sie dies dem Team auf Englisch."
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME-OPL-Emulator"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox-OPL-Emulator"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Das ausgewählte Audiogerät \"%s\" wurde nicht gefunden (könnte "
+"beispielsweise ausgeschaltet oder nicht angeschlossen sein)."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr "Es wird versucht, auf das nächste verfügbare Gerät zurückzugreifen."
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Das ausgewählte Audiogerät \"%s\" kann nicht verwendet werden. Schauen Sie "
+"für weitere Informationen in der Log-Datei nach."
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Das bevorzugte Audiogerät \"%s\" wurde nicht gefunden (könnte beispielsweise "
+"ausgeschaltet oder nicht angeschlossen sein)."
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Das bevorzugte Audiogerät \"%s\" kann nicht verwendet werden. Schauen Sie "
+"für weitere Informationen in der Log-Datei nach."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Keine Musik"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga-Audio-Emulator"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib-Emulator"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple-II-GS-Emulator (NICHT INTEGRIERT)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64-Audio-Emulator"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "MT-32-Emulator wird gestartet"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32-Emulation"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC-Lautsprecher-Emulator"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM-PCjr-Emulator"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Tasten-Layout:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktiv)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Spiel)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM-Hauptmenü"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~L~inke-Hand-Modus"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~K~ampfsteuerung für Indiana Jones"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Mauszeiger anzeigen"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "An Ecken anheften"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Zu X-Position gehen"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Zu Y-Position gehen"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Den Trackpad-Style für Maussteuerung benutzen"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Tippen für Linksklick, Doppeltippen für Rechtsklick"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Empfindlichkeit"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Vergößerung des oberen Bildschirms:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Hauptbildschirm-Skalierung:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Hardware-Skalierung (schnell, aber schlechte Qualität)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Software-Skalierung (gute Qualität, aber langsamer)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Nicht skalieren (Sie müssen nach links und nach rechts scrollen)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Helligkeit:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Hohe Audioqualität (lansamer) (erfordert Neustart)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Stromsparmodus abschalten"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Maus-klick-und-zieh-Modus aktiviert."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Maus-klick-und-zieh-Modus ausgeschaltet."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Touchpad-Modus aktiviert."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Touchpad-Modus ausgeschaltet."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr "ScummVM verbergen"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr "Andere verbergen"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr "Alles zeigen"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr "Fenster"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr "Minimieren"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (keine Skalierung)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal ohn.Skalieren"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "Seitenverhältniskorrektur an"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "Seitenverhältniskorrektur aus"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "Aktiver Grafikfilter:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "Fenstermodus"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL: normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL: beibehalten"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL: original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "Aktueller Grafikmodus"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "Aktueller Vergrößerungsfaktor"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "Aktiver Filtermodus: linear"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "Aktiver Filtermodus: nächste Nachbarn"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Hoch"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Runter"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Links"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Rechts"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Linksklick"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Rechtsklick"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zone"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multifunktion"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Figur wechseln"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Text überspringen"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Schneller Modus"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Hauptmenü"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuelle Tastatur"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Tasten zuordnen"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Möchten Sie beenden?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Aktueller Grafikmodus:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Doppelzeilen (kein Zeilensprungverfahren)"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Horizontale Bildverkleinerung:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Vertikale Bildverkleinerung:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Eingabe"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "GC-Pad-Empfindlichkeit:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "GC-Pad-Beschleunigung:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Unbekannt"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "DVD einbinden"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "DVD aushängen"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Öffentliches Verzeichnis:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Benutzername:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Passwort:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Netzwerk starten"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "SMB einbinden"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "SMB aushängen"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD erfolgreich eingebunden"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Fehler beim Einbinden der DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD nicht eingebunden"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Netzwerk gestartet, öffentliches Verzeichnis eingebunden"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Netzwerk gestartet"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", Fehler beim Einbinden des öffentlichen Verzeichnisses"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", öffentliches Verzeichnis nicht eingebunden"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Netzwerk ist aus."
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "Netzwerk wird gestartet"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "Zeitüberschreitung beim Starten des Netzwerks"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "Netzwerk nicht gestartet (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Werkzeugleiste verbergen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Tastatur zeigen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Ton ein/aus"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Rechtsklick"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Cursor zeigen/verbergen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Freie Ansicht"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Herauszoomen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Hineinzoomen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Tasten zuweisen"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Zeiger hoch"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Zeiger runter"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Zeiger nach links"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Zeiger nach rechts"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Möchten Sie ein Spiel laden oder speichern?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Möchten Sie wirklich beenden? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tastatur"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Drehen"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Verwende SDL-Treiber "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Anzeige "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Möchten Sie eine automatische Suche durchführen?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Aktion \"Rechtsklick\" zuweisen"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Sie müssen der Aktion \"Rechtsklick\" eine Taste zuweisen, um dieses Spiel "
+"spielen zu können."
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Aktion \"Werkzeugleiste verbergen\" zuweisen"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Sie müssen der Aktion \"Werkzeugleiste verbergen\" eine Taste zuweisen, um "
+"dieses Spiel spielen zu können."
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Aktion \"Herauszoomen\" zuweisen (optional)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Aktion \"Hineinzoomen\" zuweisen (optional)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Vergessen Sie nicht, der Aktion \"Werkzeugleiste verbergen\" eine Taste "
+"zuzuweisen, um das ganze Inventar sehen zu können."
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "Möchten Sie wirklich zur Spieleliste zurückkehren?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "Spieleliste"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "Möchten Sie wirklich beenden?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "Berührungsbildschirm-Tipp-Modus - Linksklick"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "Berührungsbildschirm-Tipp-Modus - Rechtsklick"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "Berührungsbildschirm-Tipp-Modus - schweben (kein Klick)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "Höchste Lautstärke"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "Lautstärke höher"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "Niedrigste Lautstärke"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "Lautstärke niedriger"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr "Suche nach Aktualisierungen..."
+
+#~ msgid ""
+#~ "Your game version has been detected using filename matching as a variant "
+#~ "of %s."
+#~ msgstr ""
+#~ "Ihre Spielversion wurde durch Dateinamen-Übereinstimmung als Variante von "
+#~ "%s erkannt."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argument in Kommandozeile nicht verarbeitet"
diff --git a/po/es_ES.po b/po/es_ES.po
index 730b8d48b0..71148f3efe 100644
--- a/po/es_ES.po
+++ b/po/es_ES.po
@@ -1,2628 +1,2725 @@
-# Spanish translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Tomás Maidagan, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-05-08 13:31+0100\n"
-"Last-Translator: Tomás Maidagan\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Espanol\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(compilado el %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Características incluidas:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Motores disponibles:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Arriba"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Ir al directorio anterior"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Arriba"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Aceptar"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Cerrar"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Clic de ratón"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Mostrar el teclado"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Asignar teclas"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Elige la acción a asociar"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Asignar"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "Aceptar"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Selecciona una acción y pulsa \"Asignar\""
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Tecla asociada: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Tecla asociada: ninguna"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Por favor, selecciona una acción"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Pulsa la tecla a asignar"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Juego"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Identificador usado para las partidas guardadas y para ejecutar el juego "
-"desde la línea de comando"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nombre:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Título completo del juego"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nom.:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Idioma:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Idioma del juego. No sirve para pasar al inglés la versión española de un "
-"juego"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<por defecto>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plataforma:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plataforma para la que se diseñó el juego"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Plat.:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Gráficos"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Ignorar opciones gráficas generales"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Opciones gráficas específicas"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Sonido"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Ignorar opciones de sonido generales"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Opciones de sonido específicas"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volumen"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volumen"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Ignorar opciones de volumen generales"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Opciones de volumen específicas"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Ignorar opciones de MIDI generales"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Opciones de MIDI específicas"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Ignorar opciones de MT-32 generales"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Opciones de MT-32 específicas"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Rutas"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Rutas"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Juego:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Juego:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Adicional:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Especifica un directorio para datos adicionales del juego"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Adicional:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Partidas:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Especifica dónde guardar tus partidas"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Partidas:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Ninguna"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Por defecto"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Selecciona un SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Selecciona el directorio del juego"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Selecciona el directorio adicional"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Selecciona el directorio para partidas guardadas"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Esta ID ya está siendo usada. Por favor, elige otra."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~S~alir"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Cerrar ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "Acerca ~d~e"
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Acerca de ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pciones..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Cambiar opciones generales de ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~J~ugar"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Jugar al juego seleccionado"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~C~argar..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Cargar partida del juego seleccionado"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~A~ñadir juego..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Mantener pulsado Mayús para añadir varios juegos"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~E~ditar juego..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Cambiar opciones de juego"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "E~l~iminar juego"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Eliminar el juego de la lista. Los archivos no se borran"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~A~ñadir..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~E~ditar..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "E~l~iminar"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Buscar en la lista de juegos"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Buscar:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Eliminar valor"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Cargar juego:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Cargar"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"¿Seguro que quieres ejecutar la detección masiva? Puede que se añada un gran "
-"número de juegos."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Sí"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "No"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "¡ScummVM no ha podido abrir el directorio!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "¡ScummVM no ha encontrado ningún juego en el directorio!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Elige el juego:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "¿Seguro que quieres eliminar la configuración de este juego?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Este juego no permite cargar partidas desde el lanzador."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"¡ScummVM no ha podido encontrar ningún motor capaz de ejecutar el juego!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Añad. varios"
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Añadir varios..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Añadir..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Añadir juego..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... progreso..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "¡Búsqueda completada!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Se ha buscado en %d directorios..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Se han encontrado %d juegos nuevos..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Nunca"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "cada 5 minutos"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "cada 10 minutos"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "cada 15 minutos"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "cada 30 minutos"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Ninguno"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Modo gráfico:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Renderizado:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Modos especiales de expansión soportados por algunos juegos"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Pantalla completa"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Corrección de aspecto"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Corregir relación de aspecto en juegos 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "Difuminado EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Activar difuminado en los juegos EGA compatibles"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Disp. preferido:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Disp. de música:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-"Especifica qué dispositivo de sonido o emulador de tarjeta de sonido "
-"prefieres"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr ""
-"Especifica el dispositivo de sonido o emulador de tarjeta de sonido de salida"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Disp. preferido:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Disp. de música:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Emul. de AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib se usa para la música en muchos juegos"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Frec. de salida:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Los valores más altos ofrecen mayor calidad, pero puede que tu tarjeta de "
-"sonido no sea compatible"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Dispositivo GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Especifica el dispositivo de salida General MIDI por defecto"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "No usar música General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Utilizar el primer dispositivo disponible"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFont está soportado por algunas tarjetas de sonido, además de "
-"Fluidsynth y Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Modo AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Usar tanto MIDI como AdLib en la generación de sonido"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Ganancia MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Disp. MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Especifica el dispositivo de sonido para la salida Roland MT-32/LAPC1/CM32l/"
-"CM64 por defecto"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 auténtica (desactivar emulación GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Marcar si se quiere usar un dispositivo de sonido real conectado al "
-"ordenador y compatible con Roland"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 real (sin emulación GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Activar modo Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Desactiva la conversión General MIDI en juegos con sonido Roland MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "No usar música Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Texto y voces:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Voces"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Subtítulos"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Ambos"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Vel. de subtítulos:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Texto y voces:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Voz"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Subt"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "V&S"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Reproducir voces y subtítulos"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Vel. de subt.:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Música:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Música:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Silenciar"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Efectos:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volumen de los efectos de sonido"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Efectos:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Voces:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Voces:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Temas:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Temas:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Especifica el directorio adicional usado por los juegos y ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Plugins:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Plugins:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Otras"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Otras"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Interfaz:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autoguardado:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autoguardado:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Teclas"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Idioma:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Idioma de la interfaz de ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Tienes que reiniciar ScummVM para aplicar los cambios."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Selecciona el directorio de guardado"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr ""
-"No se puede escribir en el directorio elegido. Por favor, selecciona otro."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Selecciona el directorio de temas"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Selecciona el directorio adicional"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Selecciona el directorio de plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"El tema seleccionado no es compatible con el idioma actual. Si quieres usar "
-"este tema debes cambiar a otro idioma primero."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "No hay fecha guardada"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "No hay hora guardada"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "No hay tiempo guardado"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Borrar"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "¿Seguro que quieres borrar esta partida?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Fecha: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Hora: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Tiempo: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Partida sin nombre"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Selecciona un tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX desactivados"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX desactivados"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Estándar (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Estándar (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Suavizado (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Suavizado (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "El motor no soporta el nivel de debug '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menú"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Saltar"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pausar"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Saltar frase"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Error al ejecutar el juego:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "No se ha podido encontrar ningún motor capaz de ejecutar el juego"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Ningún error"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "No se han encontrado datos de juego"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "ID del juego no soportada"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Modo de color no soportado"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Permiso de lectura denegado"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Permiso de escritura denegado"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "La ruta no existe"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "La ruta no es un directorio"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "La ruta no es un archivo"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Imposible crear el archivo"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Fallo de lectura"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Fallo en la escritura de datos"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "No se ha encontrado un plugin adecuado"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "El plugin del motor no es compatible con partidas guardadas"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Error desconocido"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules verde"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules ámbar"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules verde"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules ámbar"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~R~eanudar"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~C~argar"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~G~uardar"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pciones"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~A~yuda"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "Acerca ~d~e"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~V~olver al lanzador"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~V~olver al lanzador"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Guardar partida"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Guardar"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~S~í"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~C~ancelar"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~eclas"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Modo de vídeo actual:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Corrección de aspecto"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~A~nterior"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "Si~g~uiente"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "Cerra~r~"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Comandos básicos de teclado:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Pantalla de Guardar / Cargar"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Saltar frase"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Saltar escena"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Espacio"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pausar el juego"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Cargar partida 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Guardar partida 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Salir"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Activar pantalla completa"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Subir / Bajar el volumen de la música"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Aumentar / Disminuir la vel. de texto"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simular botón izquierdo del ratón"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simular botón derecho del ratón"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Comandos especiales de teclado:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Mostrar / Ocultar consola"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Iniciar debugger"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Mostrar consumo de memoria"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Ejecutar en modo rápido (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Ejecutar en modo muy rápido (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Captura de ratón"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Alternar entre filtros gráficos"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Aumentar / Disminuir factor de escalado"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Corrección de aspecto"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* No se recomienda utilizar"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-f y ctrl-g, ya que pueden"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " provocar cuelgues o un"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " funcionamiento incorrecto del juego"
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Tejer hechizos con el teclado:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Controles básicos:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Empujar"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Tirar"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Dar"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Abrir"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Ir a"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Coger"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Usar"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Leer"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Cambiar personaje"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Encender"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Apagar"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Ir a"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Recoger"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Qué es"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Abrir con llave"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Ponerse"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Quitarse"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Arreglar"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Cambiar"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Mirar"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Hablar"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Viajar"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Henry / Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "Tocar C menor con el bastón"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "Tocar D con el bastón"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "Tocar E con el bastón"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "Tocar F con el bastón"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "Tocar G con el bastón"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "Tocar A con el bastón"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "Tocar B con el bastón"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "Tocar C mayor con el bastón"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Empujar"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Tirar"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Hablar con"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Mirar"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Encender"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Apagar"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Arriba"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Seleccionar diálogo anterior"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Abajo"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Seleccionar diálogo siguiente"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Caminar"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventario"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objeto"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Blanco y negro / Color"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Ojos"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Lengua"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Puñetazo"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Patada"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Examinar"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Cursor normal"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Guardar / Cargar / Opciones"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Otros controles:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventario:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Subir"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Bajar"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Objeto superior izquierdo"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Objeto inferior izquierdo"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Objeto superior derecho"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Objeto inferior derecho"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Objeto izquierdo del medio"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Objeto derecho del medio"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Cambiar personaje:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Segundo chaval"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tercer chaval"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Controles de lucha (tecl. num.)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Retroceder"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Bloqueo alto"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Bloqueo medio"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Bloqueo bajo"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Puñetazo alto"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Puñetazo medio"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Puñetazo bajo"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Válidos cuando Indy está a la izquierda."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Cuando Indy está a la derecha,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4 y 1 se cambian por"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 y 3, respectivamente."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Controles del biplano (tecl. num.)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Volar arriba y a la izquierda"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Volar a la izquierda"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Volar abajo y a la izquierda"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Volar arriba"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Volar recto"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Volar abajo"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Volar arriba y a la derecha"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Volar a la derecha"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Volar abajo y a la derecha"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Fallo al guardar en el archivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Fallo al cargar desde el archivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Partida guardada en el archivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Maniac Mansion debería arrancar en este momento, pero ScummVM aún no lo "
-"permite. Para jugar, ve a 'Añadir juego' en el menú de inicio de ScummVM y "
-"selecciona el directorio 'Maniac', dentro del directorio de DOTT."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "Modo ~Z~ip activado"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "Tra~n~siciones activadas"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "Efecto ag~u~a activado"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Cargar partida:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Cargar"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Fallo al cargar desde el archivo:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Fallo al guardar en el archivo:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Fallo al guardar en el archivo:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Fallo al guardar en el archivo:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Guardar partida"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Cargar juego:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Guardar partida"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Emulador OPL de MAME"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Emulador OPL de DOSBox"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Sin música"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulador de Amiga Audio"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Emulador de AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Emulador de Apple II GS (NO IMPLEMENTADO)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulador de C64 Audio"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Iniciando emulador de MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Emulador de MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Emulador del altavoz de PC"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Emulador de IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Asignación de teclas:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr "(Activa)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr "(General)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr "(Juego)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Menú principal de ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "Modo para ~z~urdos"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "Controles para pelear de ~I~ndy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Mostrar el cursor"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Pegar a los bordes"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Compensación X del toque"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Compensación Y del toque"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Activar el sistema de control tipo trackpad de los portátiles"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Un toque para clic izquierdo, dos para clic derecho"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensibilidad"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Escalado inicial de la pantalla superior:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Escalado de la pantalla principal:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Escalado por hardware (rápido, pero de baja calidad)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Escalado por software (buena calidad, pero más lento)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Sin escalado (debes desplazar la pantalla a los lados)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Brillo:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Sonido de alta calidad (más lento) (reinicio)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Desactivar apagado"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Modo Touchpad activado."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Modo Touchpad desactivado."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Modo Touchpad activado."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Modo Touchpad desactivado."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (sin reescalado)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Corrección de aspecto"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Corrección de aspecto"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Alternar entre filtros gráficos"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Renderizado:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Conservar"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Modo de vídeo actual:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Arriba"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Abajo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Izquierda"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Derecha"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Clic izquierdo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Clic derecho"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zona"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multifunción"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Cambiar personaje"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Saltar texto"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Modo rápido"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menú general"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Teclado virtual"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Asignación de teclas"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "¿Quieres salir?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Vídeo"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Modo de vídeo actual:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Doble golpe"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Underscan horizontal"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Underscan vertical:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Entrada"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Sensibilidad del pad GC:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Aceleración del pad GC:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Estado:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Desconocido"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Montar DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Desmontar DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Servidor:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Disco compartido:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Usuario:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Contraseña:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Inicializar red"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Montar SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Desmontar SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD montado con éxito"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Error al montar el DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD no montado"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Red conectada, disco compartido montado"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Red conectada"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", error al montar el disco compartido"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", disco compartido no montado"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Red desconectada"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Inicializando red"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Se ha excedido el tiempo de inicialización de red"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Red no inicializada (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Ocultar barra de tareas"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Mostrar teclado"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Sonido activado/desactivado"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Clic derecho"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Mostrar/Ocultar cursor"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Vista libre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Aumentar zoom"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Disminuir zoom"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Asignar teclas"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Arriba"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Abajo"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Izquierda"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Derecha"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "¿Quieres cargar o guardar el juego?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr "¿Seguro que quieres salir?"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Teclado"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Rotar"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Usando driver SDL"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Pantalla"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "¿Quieres realizar una búsqueda automática?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Asignar acción 'Clic derecho'"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Debes asignar una tecla a la acción 'Clic derecho' para jugar a este juego"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Asignar acción 'Ocultar barra de tareas'"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Debes asignar una tecla a la acción 'Ocultar barra de tareas' para jugar a "
-"este juego"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Asignar acción 'Zoom' (opcional)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Asignar acción 'Disminuir zoom' (opcional)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"No olvides asignar una tecla a la acción 'Ocultar barra de tareas' para ver "
-"todo el inventario"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "¿Seguro que quieres borrar esta partida?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Puñetazo"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "¿Quieres salir?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volumen"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volumen"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Se han encontrado %d juegos nuevos."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argumento no válido de la línea de comando"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Emulador de FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ruta no válida"
+# Spanish translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Tomás Maidagan, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-08-18 11:54+0100\n"
+"Last-Translator: Jordi Vilalta Prat <jvprat@jvprat.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Espanol\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(compilado el %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Características incluidas:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Motores disponibles:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Arriba"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Ir al directorio anterior"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Arriba"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Aceptar"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Cerrar"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Clic de ratón"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Mostrar el teclado"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Asignar teclas"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Elige la acción a asociar"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Asignar"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "Aceptar"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Selecciona una acción y pulsa \"Asignar\""
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Tecla asociada: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Tecla asociada: ninguna"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Por favor, selecciona una acción"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Pulsa la tecla a asignar"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Juego"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Identificador usado para las partidas guardadas y para ejecutar el juego "
+"desde la línea de comando"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nombre:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Título completo del juego"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nom.:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Idioma:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Idioma del juego. No sirve para pasar al inglés la versión española de un "
+"juego"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<por defecto>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plataforma:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plataforma para la que se diseñó el juego"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Plat.:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Gráficos"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Ignorar opciones gráficas generales"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Opciones gráficas específicas"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Sonido"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Ignorar opciones de sonido generales"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Opciones de sonido específicas"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volumen"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volumen"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Ignorar opciones de volumen generales"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Opciones de volumen específicas"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Ignorar opciones de MIDI generales"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Opciones de MIDI específicas"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Ignorar opciones de MT-32 generales"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Opciones de MT-32 específicas"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Rutas"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Rutas"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Juego:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Juego:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Adicional:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Especifica un directorio para datos adicionales del juego"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Adicional:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Partidas:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Especifica dónde guardar tus partidas"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Partidas:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Ninguna"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Por defecto"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Selecciona un SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Selecciona el directorio del juego"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Selecciona el directorio adicional"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Selecciona el directorio para partidas guardadas"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Esta ID ya está siendo usada. Por favor, elige otra."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~S~alir"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Cerrar ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "Acerca ~d~e"
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Acerca de ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pciones..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Cambiar opciones generales de ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~J~ugar"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Jugar al juego seleccionado"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~C~argar..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Cargar partida del juego seleccionado"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~A~ñadir juego..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Mantener pulsado Mayús para añadir varios juegos"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~E~ditar juego..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Cambiar opciones de juego"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "E~l~iminar juego"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Eliminar el juego de la lista. Los archivos no se borran"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~A~ñadir..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~E~ditar..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "E~l~iminar"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Buscar en la lista de juegos"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Buscar:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Eliminar valor"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Cargar juego:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Cargar"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"¿Seguro que quieres ejecutar la detección masiva? Puede que se añada un gran "
+"número de juegos."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Sí"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "No"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "¡ScummVM no ha podido abrir el directorio!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "¡ScummVM no ha encontrado ningún juego en el directorio!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Elige el juego:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "¿Seguro que quieres eliminar la configuración de este juego?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Este juego no permite cargar partidas desde el lanzador."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"¡ScummVM no ha podido encontrar ningún motor capaz de ejecutar el juego!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Añad. varios"
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Añadir varios..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... progreso..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "¡Búsqueda completada!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+"Se han encontrado %d juegos nuevos, se han ignorado %d juegos añadidos "
+"previamente."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Se ha buscado en %d directorios..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr ""
+"Se han encontrado %d juegos nuevos, se han ignorado %d juegos añadidos "
+"previamente..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Nunca"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "cada 5 minutos"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "cada 10 minutos"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "cada 15 minutos"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "cada 30 minutos"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Ninguno"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "Fallo al aplicar algunos cambios en las opciones gráficas:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "no se ha podido cambiar el modo de vídeo."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "no se ha podido cambiar el ajuste de pantalla completa"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "no se ha podido cambiar el ajuste de corrección de aspecto"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Modo gráfico:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Renderizado:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Modos especiales de expansión soportados por algunos juegos"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Pantalla completa"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Corrección de aspecto"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Corregir relación de aspecto en juegos 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Difuminado EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Activar difuminado en los juegos EGA compatibles"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Disp. preferido:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Disp. de música:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+"Especifica qué dispositivo de sonido o emulador de tarjeta de sonido "
+"prefieres"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr ""
+"Especifica el dispositivo de sonido o emulador de tarjeta de sonido de salida"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Disp. preferido:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Disp. de música:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Emul. de AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib se usa para la música en muchos juegos"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Frec. de salida:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Los valores más altos ofrecen mayor calidad, pero puede que tu tarjeta de "
+"sonido no sea compatible"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Dispositivo GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Especifica el dispositivo de salida General MIDI por defecto"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "No usar música General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Utilizar el primer dispositivo disponible"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFont está soportado por algunas tarjetas de sonido, además de "
+"Fluidsynth y Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Modo AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Usar tanto MIDI como AdLib en la generación de sonido"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Ganancia MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Disp. MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Especifica el dispositivo de sonido para la salida Roland MT-32/LAPC1/CM32l/"
+"CM64 por defecto"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 auténtica (desactivar emulación GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Marcar si se quiere usar un dispositivo de sonido real conectado al "
+"ordenador y compatible con Roland"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 real (sin emulación GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Activar modo Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Desactiva la conversión General MIDI en juegos con sonido Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "No usar música Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Texto y voces:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Voces"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Subtítulos"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Ambos"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Vel. de subtítulos:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Texto y voces:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Voz"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Subt"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "V&S"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Reproducir voces y subtítulos"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Vel. de subt.:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Música:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Música:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Silenciar"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Efectos:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volumen de los efectos de sonido"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Efectos:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Voces:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Voces:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Temas:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Temas:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Especifica el directorio adicional usado por los juegos y ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Plugins:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Plugins:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Otras"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Otras"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Interfaz:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autoguardado:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autoguardado:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Teclas"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Idioma:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Idioma de la interfaz de ScummVM"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Tienes que reiniciar ScummVM para que los cambios surjan efecto."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Selecciona el directorio de guardado"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr ""
+"No se puede escribir en el directorio elegido. Por favor, selecciona otro."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Selecciona el directorio de temas"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Selecciona el directorio adicional"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Selecciona el directorio de plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"El tema seleccionado no es compatible con el idioma actual. Si quieres usar "
+"este tema debes cambiar a otro idioma primero."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "No hay fecha guardada"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "No hay hora guardada"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "No hay tiempo guardado"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Borrar"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "¿Seguro que quieres borrar esta partida?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Fecha: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Hora: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Tiempo: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Partida sin nombre"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Selecciona un tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX desactivados"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX desactivados"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Estándar (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Estándar (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Suavizado (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Suavizado (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "El motor no soporta el nivel de debug '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menú"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Saltar"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pausar"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Saltar frase"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Error al ejecutar el juego:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "No se ha podido encontrar ningún motor capaz de ejecutar el juego"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Ningún error"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "No se han encontrado datos de juego"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "ID del juego no soportada"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Modo de color no soportado"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Permiso de lectura denegado"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Permiso de escritura denegado"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "La ruta no existe"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "La ruta no es un directorio"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "La ruta no es un archivo"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Imposible crear el archivo"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Fallo de lectura"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Fallo en la escritura de datos"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "No se ha encontrado un plugin adecuado"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "El plugin del motor no es compatible con partidas guardadas"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "Cancel·lat per l'usuari"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Error desconocido"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules verde"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules ámbar"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules verde"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules ámbar"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "El juego en '%s' parece ser desconocido."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~R~eanudar"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~C~argar"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~G~uardar"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pciones"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~A~yuda"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "Acerca ~d~e"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~V~olver al lanzador"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~V~olver al lanzador"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Guardar partida"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Guardar"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~S~í"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~C~ancelar"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~eclas"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "No se ha podido iniciar el formato de color."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "No se ha podido cambiar al modo de video: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "No se ha podido aplicar el ajuste de corrección de aspecto"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "No se ha podido aplicar el ajuste de pantalla completa."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"AVISO: El juego que vais a arrancar aún no está completamente soportado por "
+"ScummVM. Así pues, es normal que sea inestable y que las partidas que hagáis "
+"no funcionen en versiones futuras de ScummVM."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "Iniciar de todos modos"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "¿Seguro que quieres salir?"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "¿Seguro que quieres salir?"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Salir"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Selecciona un tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~A~nterior"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "Si~g~uiente"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "Cerra~r~"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Voces"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Subtítulos"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Subtítulos"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Voces"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Comandos básicos de teclado:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Pantalla de Guardar / Cargar"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Saltar frase"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Saltar escena"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Espacio"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pausar el juego"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Cargar partida 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Guardar partida 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Activar pantalla completa"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Subir / Bajar el volumen de la música"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Aumentar / Disminuir la vel. de texto"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simular botón izquierdo del ratón"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simular botón derecho del ratón"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Comandos especiales de teclado:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Mostrar / Ocultar consola"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Iniciar debugger"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Mostrar consumo de memoria"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Ejecutar en modo rápido (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Ejecutar en modo muy rápido (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Captura de ratón"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Alternar entre filtros gráficos"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Aumentar / Disminuir factor de escalado"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Corrección de aspecto"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* No se recomienda utilizar"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-f y ctrl-g, ya que pueden"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " provocar cuelgues o un"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " funcionamiento incorrecto del juego."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Tejer hechizos con el teclado:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Controles básicos:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Empujar"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Tirar"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Dar"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Abrir"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Ir a"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Coger"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Usar"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Leer"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Cambiar personaje"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Encender"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Apagar"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Ir a"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Recoger"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Qué es"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Abrir con llave"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Ponerse"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Quitarse"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Arreglar"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Cambiar"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Mirar"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Hablar"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Viajar"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Henry / Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "Tocar C menor con el bastón"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "Tocar D con el bastón"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "Tocar E con el bastón"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "Tocar F con el bastón"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "Tocar G con el bastón"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "Tocar A con el bastón"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "Tocar B con el bastón"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "Tocar C mayor con el bastón"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Empujar"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Tirar"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Hablar con"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Mirar"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Encender"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Apagar"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Arriba"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Seleccionar diálogo anterior"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Abajo"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Seleccionar diálogo siguiente"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Caminar"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventario"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objeto"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Blanco y negro / Color"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Ojos"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Lengua"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Puñetazo"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Patada"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Examinar"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Cursor normal"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Guardar / Cargar / Opciones"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Otros controles:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventario:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Subir"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Bajar"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Objeto superior izquierdo"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Objeto inferior izquierdo"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Objeto superior derecho"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Objeto inferior derecho"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Objeto izquierdo del medio"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Objeto derecho del medio"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Cambiar personaje:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Segundo chaval"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tercer chaval"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Controles de lucha (tecl. num.)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Retroceder"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Bloqueo alto"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Bloqueo medio"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Bloqueo bajo"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Puñetazo alto"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Puñetazo medio"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Puñetazo bajo"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Válidos cuando Indy está a la izquierda."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Cuando Indy está a la derecha,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4 y 1 se cambian por"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 y 3, respectivamente."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Controles del biplano (tecl. num.)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Volar arriba y a la izquierda"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Volar a la izquierda"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Volar abajo y a la izquierda"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Volar arriba"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Volar recto"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Volar abajo"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Volar arriba y a la derecha"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Volar a la derecha"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Volar abajo y a la derecha"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Fallo al guardar en el archivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Fallo al cargar desde el archivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Partida guardada en el archivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Maniac Mansion debería arrancar en este momento, pero ScummVM aún no lo "
+"permite. Para jugar, ve a 'Añadir juego' en el menú de inicio de ScummVM y "
+"selecciona el directorio 'Maniac', dentro del directorio de DOTT."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Modo ~Z~ip activado"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "Tra~n~siciones activadas"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "~T~irar página"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "~M~ostrar el mapa"
+
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr "~M~enú principal"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "Efecto ag~u~a activado"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Cargar partida:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Cargar"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "No se ha encontrado el fichero de escena '%s'!"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "Fallo al cargar el estado del juego desde el fichero."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "Fallo al guardar el estado del juego en el archivo."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "Fallo al borrar el fichero."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "Fallo al guardar la partida"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "No se ha podido guardar la partida!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"No se ha encontrado el fichero \"sky.cpt\"!\n"
+"Bajadlo de www.scummvm.org"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"El fichero \"sky.cpt\" tiene un tamaño incorrecto.\n"
+"Bajadlo de www.scummvm.org"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+"Se han encontrado escenas DXA pero se ha compilado ScummVM sin el soporte de "
+"zlib"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "Las escenas en MPEG2 ya no están soportadas"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "No se ha encontrado la escena '%s'"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "Mantener el antiguo"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "Mantener el nuevo"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "Este es el final de la Demo de Broken Sword 1"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"No se puede guardar en la ranura %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "Cargando partida..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "Guardando partida..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM ha convertido todas las partidas guardadas correctamente."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Emulador OPL de MAME"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Emulador OPL de DOSBox"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr "Recorriendo al siguiente dispositivo disponible..."
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Sin música"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulador de Amiga Audio"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Emulador de AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Emulador de Apple II GS (NO IMPLEMENTADO)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulador de C64 Audio"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "Iniciando el emulador de MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Emulador de MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Emulador del altavoz de PC"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Emulador de IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Asignación de teclas:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr "(Activa)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr "(General)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr "(Juego)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Menú principal de ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "Modo para ~z~urdos"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "Controles para pelear de ~I~ndy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Mostrar el cursor"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Pegar a los bordes"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Compensación X del toque"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Compensación Y del toque"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Activar el sistema de control tipo trackpad de los portátiles"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Un toque para clic izquierdo, dos para clic derecho"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensibilidad"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Escalado inicial de la pantalla superior:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Escalado de la pantalla principal:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Escalado por hardware (rápido, pero de baja calidad)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Escalado por software (buena calidad, pero más lento)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Sin escalado (debes desplazar la pantalla a los lados)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Brillo:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Sonido de alta calidad (más lento) (reinicio)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Desactivar apagado"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Modo clic-de-ratón-y-arrastrar activado."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Modo clic-de-ratón-y-arrastrar desactivado."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Modo Touchpad activado."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Modo Touchpad desactivado."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr "Oculta ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr "Ocultar otros"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr "Mostrar todo"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr "Window"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr "Minimiza"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (sin reescalado)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "Activar la corrección de aspecto"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "Desactivar la corrección de aspecto"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "Filtro de gráficos activo:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "Modo ventana"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Conservar"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "Modo de vídeo actual"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "Escala actual"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "Modo de filtro activo: Lineal"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "Modo de filtro activo: El más cercano"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Arriba"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Abajo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Izquierda"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Derecha"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Clic izquierdo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Clic derecho"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zona"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multifunción"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Cambiar personaje"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Saltar texto"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Modo rápido"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menú general"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Teclado virtual"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Asignación de teclas"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "¿Quieres salir?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Vídeo"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Modo de vídeo actual:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Doble golpe"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Underscan horizontal"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Underscan vertical:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Entrada"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Sensibilidad del pad GC:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Aceleración del pad GC:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Estado:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Desconocido"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Montar DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Desmontar DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Servidor:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Disco compartido:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Usuario:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Contraseña:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Iniciar red"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Montar SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Desmontar SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD montado con éxito"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Error al montar el DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD no montado"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Red conectada, disco compartido montado"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Red conectada"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", error al montar el disco compartido"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", disco compartido no montado"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Red desconectada"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "Iniciando la red"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "Se ha excedido el tiempo de iniciación de red"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "Red no iniciada (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Ocultar barra de tareas"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Mostrar teclado"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Sonido activado/desactivado"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Clic derecho"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Mostrar/Ocultar cursor"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Vista libre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Aumentar zoom"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Disminuir zoom"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Asignar teclas"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Arriba"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Abajo"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Izquierda"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Derecha"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "¿Quieres cargar o guardar el juego?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr "¿Seguro que quieres salir?"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Teclado"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Rotar"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Usando el controlador SDL"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Pantalla"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "¿Quieres realizar una búsqueda automática?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Asignar acción 'Clic derecho'"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Debes asignar una tecla a la acción 'Clic derecho' para jugar a este juego"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Asignar acción 'Ocultar barra de tareas'"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Debes asignar una tecla a la acción 'Ocultar barra de tareas' para jugar a "
+"este juego"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Asignar acción 'Zoom' (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Asignar acción 'Disminuir zoom' (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"No olvides asignar una tecla a la acción 'Ocultar barra de tareas' para ver "
+"todo el inventario"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "¿Seguro que quieres volver al Lanzador?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "Lanzador"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "¿Realmente quieres salir?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "'Modo Toque' de pantalla táctil - Clic izquierdo"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "'Modo Toque' de pantalla táctil - Clic derecho"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "'Modo Toque' de pantalla táctil - Flotante (sin clicar)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "Volumen máximo"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "Aumentando el volumen"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "Volumen mínimo"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "Bajando el volumen"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr "Comprobando las actualizaciones..."
diff --git a/po/fr_FR.po b/po/fr_FR.po
index 7b6326a75b..3824352106 100644
--- a/po/fr_FR.po
+++ b/po/fr_FR.po
@@ -1,2635 +1,2777 @@
-# French translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Thierry Crozat <criezy@scummvm.org>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-05-02 19:50+0100\n"
-"Last-Translator: Thierry Crozat <criezy@scummvm.org>\n"
-"Language-Team: French <scummvm-devel@lists.sf.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Francais\n"
-"Plural-Forms: nplurals=2; plural=n>1;\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(compilé sur %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Options incluses:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Moteurs disponibles:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Remonter"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Remonte d'un niveau dans la hiérarchie de répertoire"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Remonter"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Annuler"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Choisir"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Fermer"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Clic de souris"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Afficher le clavier"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Changer l'affectation des touches"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Sélectionnez une action à affecter"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Affecter"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Selectionez une action et cliquez 'Affecter'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Touche associée: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Touche associée: aucune"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Selectionnez une action"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Appuyez sur la touche à associer"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Jeu"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"ID compact du jeu utilisée pour identifier les sauvegardes et démarrer le "
-"jeu depuis la ligne de commande"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nom:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Nom complet du jeu"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nom:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Langue:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Langue du jeu. Cela ne traduira pas en anglais par magie votre version "
-"espagnole du jeu."
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<defaut>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plateforme:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plateforme pour laquelle votre jeu a été conçu"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Système:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Graphique"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Utiliser des réglages graphiques spécifiques à ce jeux"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Réglages spécifiques à ce jeux"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Audio"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Utiliser des réglages audio spécifiques à ce jeux"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Réglages spécifiques à ce jeux"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Utiliser des réglages de volume sonore spécifiques à ce jeux"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Réglages spécifiques à ce jeux"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Utiliser des réglages MIDI spécifiques à ce jeux"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Réglages spécifiques à ce jeux"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Utiliser des réglages MT-32 spécifiques à ce jeux"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Réglages spécifiques à ce jeux"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Chemins"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Chemins"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Chemin du Jeu:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Chemin du Jeu:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Extra:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Définie un chemin vers des données suplémentaires utilisées par le jeu"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Extra:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Sauvegardes:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Définie l'emplacement où les fichiers de sauvegarde sont créés"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Sauvegardes:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Aucun"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Défaut"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Choisir une banque de sons"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Sélectionner le répertoire contenant les données du jeu"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Sélectionner un répertoire supplémentaire"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Sélectionner le répertoire pour les sauvegardes"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Cet ID est déjà utilisé par un autre jeu. Choisissez en un autre svp."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~Q~uitter"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Quitter ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "À ~P~ropos..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "À propos de ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~ptions..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Change les options globales de ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~D~émarrer"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Démarre le jeu sélectionné"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~C~harger"
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Charge une sauvegarde pour le jeu sélectionné"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~A~jouter..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr ""
-"Ajoute un jeu à la Liste. Maintenez Shift enfoncée pour un Ajout Massif"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~E~diter..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Change les options du jeu"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~S~upprimer"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Supprime le jeu de la liste. Les fichiers sont conservés"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~A~jouter..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~E~diter..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~S~upprimer"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Recherche dans la liste de jeux"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Filtre:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Effacer la valeur"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Charger le jeu:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Charger"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Voulez-vous vraiment lancer la détection automatique des jeux? Cela peut "
-"potentiellement ajouter un grand nombre de jeux."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Oui"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Non"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM n'a pas pu ouvrir le répertoire sélectionné."
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM n'a pas trouvé de jeux dans le répertoire sélectionné."
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Choisissez le jeu:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Voulez-vous vraiment supprimer ce jeu?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr ""
-"Le chargement de sauvegarde depuis le lanceur n'est pas supporté pour ce jeu."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM n'a pas pu trouvé de moteur pour lancer le jeu sélectionné."
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Ajout Massif..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Ajout Massif..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Ajouter..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Ajouter..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... en cours ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Examen terminé!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "%d répertoires examinés ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "%d nouveaux jeux trouvés ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Jamais"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "Toutes les 5 mins"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "Toutes les 10 mins"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "Toutes les 15 mins"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "Toutes les 30 mins"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Aucune"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Mode graphique:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Mode de rendu:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Mode spécial de tramage supporté par certains jeux"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Plein écran"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Correction du rapport d'aspect"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Corrige le rapport d'aspect pour les jeu 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "Détramage EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Active le détramage dans les jeux EGA qui le supporte"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Sortie Préféré:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Sortie Audio:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-"Spécifie le périphérique de sortie audio ou l'émulateur de carte audio "
-"préféré"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Spécifie le périphérique de sortie audio ou l'émulateur de carte audio"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Sortie Préféré:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Sortie Audio:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Émulateur AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib est utilisé pour la musique dans de nombreux jeux"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Fréquence:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Une valeur plus élevée donne une meilleure qualité audio mais peut ne pas "
-"être supporté par votre carte son"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Sortie GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Spécifie le périphérique audio par défaut pour la sortie General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Ne pas utiliser la musique General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Utiliser le premier périphérique disponible"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "Banque de sons:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"La banque de sons (SoundFont) est utilisée par certaines cartes audio, "
-"Fluidsynth et Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Mode mixe AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Utiliser à la fois MIDI et AdLib"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Gain MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Sortie MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Spécifie le périphérique audio par défaut pour la sortie Roland MT-32/LAPC1/"
-"CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 exacte (désactive l'émulation GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Vérifie si vous voulez utiliser un périphérique audio compatible Roland "
-"connecté à l'ordinateur"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 exacte (pas d'ému GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Activer le mode Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Désactiver la conversion des pistes MT-32 en General MIDI"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Ne pas utiliser la musique Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Dialogue:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Voix"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Sous-titres"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Les deux"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Vitesse des ST:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Dialogue:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Voix"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Subs"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "V&S"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Affiche les sous-titres et joue les dialogues audio"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Vitesse des ST:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Volume Musique:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musique:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Silence"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Volume Bruitage:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volume des effets spéciaux sonores"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Bruitage:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Volume Dialogues:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Dialogues:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Thèmes:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Thèmes:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"Spécifie un chemin vers des données supplémentaires utilisées par tous les "
-"jeux ou ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Plugins:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Plugins:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Divers"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Divers"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Thème:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Interface:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Sauvegarde auto:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Sauvegarde:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Touches"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Langue:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Langue de l'interface graphique de ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr ""
-"Vous devez relancer ScummVM pour que le changement soit pris en compte."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Sélectionner le répertoire pour les sauvegardes"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr ""
-"Le répertoire sélectionné est vérouillé en écriture. Sélectionnez un autre "
-"répertoire."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Sélectionner le répertoire des thèmes d'interface"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Sélectionner le répertoire pour les fichiers suplémentaires"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Sélectionner le répertoire des plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Le thème que vous avez sélectioné ne support pas la langue française. Si "
-"vous voulez l'utiliser vous devez d'abord changer de langue."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Date inconnue"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Heure inconnue"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Durée de jeu inconnue"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Supprimer"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Voulez-vous vraiment supprimer cette sauvegarde?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Date: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Heure: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Durée de jeu: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Sauvegarde sans nom"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Sélectionnez un Thème"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX désactivé"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX désactivé"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Rendu Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Rendu Anti-crénelé (16 bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Anti-crénelé (16 bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Le niveau de debug '%s' n'est pas supporté par ce moteur de jeu"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Passer"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Mettre en pause"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Passer la phrase"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Erreur lors de l'éxécution du jeu:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Impossible de trouver un moteur pour exécuter le jeu sélectionné"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Pas d'erreur"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Fichier de donées introuvable"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "ID de jeu non supporté"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Mode de couleurs non supporté"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Véroullié en lecture"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Verrouillé en écriture"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Chemin inexistant"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Chemin n'est pas un répertoire"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Chemin n'est pas un fichier"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Impossible de créer le fichier"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Echec de la lecture"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Echec de l'écriture des données"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Aucun plugin n'a pu être trouvé pour ce jeu"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Ce moteur de jeu ne supporte pas les sauvegardes"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Erreur inconnue"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Vert"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Ambre"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Vert"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Ambre"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~R~eprendre"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~C~harger"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~S~auver"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~ptions"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~A~ide"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "À ~P~ropos"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "Retour au ~L~anceur"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "Retour au ~L~anceur"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Sauvegarde:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Sauver"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~nnuler"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~ouches"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Mode vidéo actuel"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Changer correction du rapport d'aspect"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~P~récédent"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~S~uivant"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~F~ermer"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Commandes clavier communes:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Dialogue de Sauvegarde/Chargement"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Passer la phrase"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Passer la séquence"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Espace"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Mettre en pause:"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Charger sauvegarde 1-10:"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Écrire sauvegarde 1-10:"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Quitter"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Entrer"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Basculer en plein écran"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Augmenter / Diminuer volume musique"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Diminuer/Augmenter vitesse du texte"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simuler bouton gauche de la souris"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simuler bouton droit de la souris"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Commandes clavier spéciales:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Afficher/Cacher la console"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Ouvrir le débugger"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Afficher la consomation de mémoire"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Jouer en mode rapide (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Jouer en mode très rapide (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Capturer/Libérer la souris"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Changer de filtre graphique"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Augmenter/Diminuer le facteur d'échelle"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Changer correction du rapport d'aspect"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Note que l'utilisation de crtl-f et"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " crtl-g n'est pas recommandé car"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " elle peut causer des plantages ou"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " un comportement incorrect du jeu"
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Filage au clavier:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Controles principaux du jeu:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Pousser"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Tirer"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Donner"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Ouvrir"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Aller"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Prendre"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Utiliser"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Lire"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Changer"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Allumer"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Éteindre"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Aller"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Prendre"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Qu'est-ce"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Déverrouiller"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Mettre"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Enlever"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Réparer"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Commuter"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Regarder"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Parler"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Voyager"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Henry / Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "jouer Do mineur sur la quenouille"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "jouer Ré sur la quenouille"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "jouer Mi sur la quenouille"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "jouer Fa sur la quenouille"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "jouer Sol sur la quenouille"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "jouer La sur la quenouille"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "jouer Si sur la quenouille"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "jouer Do Majeur sur la quenouille"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Pousser"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Tirer"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Parler à"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Regarder"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Allumer"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Éteindre"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Touche Haut"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Sélectionner le dialogue précédent"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Touche Bas"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Sélectionner le dialogue suivant"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Marcher"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventaire"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objet"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Noir et Blanc / Couleur"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Yeux"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Langue"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Frapper"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Coup de pied"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Examiner"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Curseur normal"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Sauvegarder / Charger / Options"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Autres controles du jeu:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventaires:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Faire défiler vers le haut"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Faire défiler vers le bas"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Élément en haut à gauche"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Élément en bas à gauche"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Élément en haut à droite"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Élément en bas à droite"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Élément au milieu à gauche"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Élément au milieu à droite"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Changer de personnage"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Second enfant"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Troisième enfant"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Controles de combat (pavet numérique):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Pas en arrière"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Bloquer haut"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Bloquer milieu"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Bloquer bas"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Fraper haut"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Frapper milieu"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Frapper bas"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Correct quand Indy est à gauche."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Quand Indy est à droite, 7, 4 et 1"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "sont interverties avec 9, 6 et 3"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "respectivement."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Controles du biplane (paver numérique):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Voler vers le haut à gauche"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Voler vers la gauche"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Voler vers le bas à gauche"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Voler vers le haut"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Voler tout droit"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Voler vers le bas"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Voler vers le haut à droite"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Voler vers la droite"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Voler vers la bas à droite"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Échec du chargement de l'état du jeu depuis le fichier:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"État du jeu enregistré avec succès dans le fichier:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Normalement, Maniac Mansion devrait démarrer maintenant. Cependant ScummVM "
-"ne supporte pas encore cette fonctionalité. Pour jouer à Maniac Mansion, "
-"choisissez 'Ajouter...' dans le Lanceur de ScummVM et sélectionnez le "
-"répertoire 'Maniac Mansion' dans le répertoire du jeu Day Of The Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "Mode ~Z~ip Activé"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "T~r~ansitions activées"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~E~ffets de l'Eau Activés"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Charger le jeu:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Charger"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Échec du chargement de l'état du jeu depuis le fichier:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Sauvegarde:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Charger le jeu:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Sauvegarde:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Émulateur MAME OPL"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Émulateur DOSBox OPL"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Pas de musique"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Émulateur Amiga Audio"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Émulateur AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Émulateur Apple II GS (PAS IMPLÉMENTÉ)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Émulateur C64 Audio"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Initialisation de l'Émulateur MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Émulateur MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Émulateur Haut Parleur PC"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Émulateur IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Affectation des touches:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr "(Actif)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr "(Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr "(Jeu)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "MIDI Windows"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Menu Principal ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "Mode ~G~aucher"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "Contrôle des combats d'~I~ndy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Afficher le curseur de la souris"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Aligner sur les bords"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Décalage X du toucher"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Décallage Y du toucher"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Activer le contrôle du curseur de type trackpad"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Toucher pour un clic gauche, toucher deux fois pour un clic droit"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensibilité"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Échelle initiale de l'écran du haut"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Échelle de l'écran principal"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Mise à l'echelle matérielle (rapide mais qualité faible)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Mise à l'échelle logicielle (bonne qualité mais plus lent)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Sans changement d'échelle (vous devez faire défiler l'écran)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Luminosité:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Audio haute qualité (plus lent) (redémarrer)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Désactivé l'extinction"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Mode touchpad activé"
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Mode touchpad désactivé"
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Mode touchpad activé"
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Mode touchpad désactivé"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (échelle d'origine)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Changer correction du rapport d'aspect"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Changer correction du rapport d'aspect"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Changer de filtre graphique"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Mode de rendu:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Préserve"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Originel"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Mode vidéo actuel"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Haut"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Bas"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Gauche"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Droite"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Clic Gauche"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Clic Droit"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zone"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Fonction Multiple"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Changement de personnage"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Sauter le texte"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Mode rapide"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menu global"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Clavier virtuel"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Affectation des touches"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Voulez-vous quitter?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Vidéo"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Mode vidéo actuel"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Coup double"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Underscan horizontal:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Underscan vertical:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Entrée"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Sensibilité du pad GC:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Acceleration du pad GC:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Inconue"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Monter le DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Démonter le DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Serveur:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Disque partagé:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Nom d'utilisateur:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Mot de passe:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Initialiser le réseau"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Monter SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Démonter SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD monté avec succès"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Échec du montage du DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD non monté"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Réseau connecté, disque partagé monté"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Réseau connecté"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", échec du montage du disque partagé"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", disque partagé non monté"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Réseau déconnecté"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Initialisation du réseau"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Dépassement du délai lors de l'initialisation du réseau"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Réseau non initialisé (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Caché la barre d'outils"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Afficher le clavier"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Audio marche/arrêt"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Clic droit"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Afficher/Cacher le curseur"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Regarder autour"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Dézoomer"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zoomer"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Affecter les touches"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Haut"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Bas"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Gauche"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Droit"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Voulez-vous charger ou enregistrer le jeu?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr "Voulez-vous vraiment quitter?"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Clavier"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Pivoter"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Utilise le pilote SDL"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Affichage"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Voulez-vous exécuter une recherche automatique?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Affecter l'action 'Clic Droit'"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Vous devez affecter une touche à l'action de 'Clic Droit' pour pouvoir jouer "
-"à ce jeu"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Affecter l'action 'Cacher Bar d'Outils'"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Vous devez affecter une touche à l'action 'Cacher Bar d'Outils' pour pouvoir "
-"jouer à ce jeu"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Affecter l'action 'Dézoomer' (optionnelle)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Affecter l'action 'Zoomer' (optionnelle)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Noubliez pas d'affecter une touche à l'action 'Cacher Bar d'Outils' pour "
-"pouvoir voir entièrement l'inventaire"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Voulez-vous vraiment supprimer cette sauvegarde?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Frapper"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Voulez-vous quitter?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "%d nouveaux jeux trouvés."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argument de ligne de commande non traité"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Émulateur FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Chemin Invalide"
+# French translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Thierry Crozat <criezy@scummvm.org>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-05-02 19:50+0100\n"
+"Last-Translator: Thierry Crozat <criezy@scummvm.org>\n"
+"Language-Team: French <scummvm-devel@lists.sf.net>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Francais\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(compilé sur %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Options incluses:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Moteurs disponibles:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Remonter"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Remonte d'un niveau dans la hiérarchie de répertoire"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Remonter"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Annuler"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Choisir"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Fermer"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Clic de souris"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Afficher le clavier"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Changer l'affectation des touches"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Sélectionnez une action à affecter"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Affecter"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Selectionez une action et cliquez 'Affecter'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Touche associée: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Touche associée: aucune"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Selectionnez une action"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Appuyez sur la touche à associer"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Jeu"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"ID compact du jeu utilisée pour identifier les sauvegardes et démarrer le "
+"jeu depuis la ligne de commande"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nom:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Nom complet du jeu"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nom:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Langue:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Langue du jeu. Cela ne traduira pas en anglais par magie votre version "
+"espagnole du jeu."
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<defaut>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plateforme:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plateforme pour laquelle votre jeu a été conçu"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Système:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Graphique"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Utiliser des réglages graphiques spécifiques à ce jeux"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Réglages spécifiques à ce jeux"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Audio"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Utiliser des réglages audio spécifiques à ce jeux"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Réglages spécifiques à ce jeux"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Utiliser des réglages de volume sonore spécifiques à ce jeux"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Réglages spécifiques à ce jeux"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Utiliser des réglages MIDI spécifiques à ce jeux"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Réglages spécifiques à ce jeux"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Utiliser des réglages MT-32 spécifiques à ce jeux"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Réglages spécifiques à ce jeux"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Chemins"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Chemins"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Chemin du Jeu:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Chemin du Jeu:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Extra:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Définie un chemin vers des données suplémentaires utilisées par le jeu"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Extra:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Sauvegardes:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Définie l'emplacement où les fichiers de sauvegarde sont créés"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Sauvegardes:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Aucun"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Défaut"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Choisir une banque de sons"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Sélectionner le répertoire contenant les données du jeu"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Sélectionner un répertoire supplémentaire"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Sélectionner le répertoire pour les sauvegardes"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Cet ID est déjà utilisé par un autre jeu. Choisissez en un autre svp."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~Q~uitter"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Quitter ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "À ~P~ropos..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "À propos de ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~ptions..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Change les options globales de ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~D~émarrer"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Démarre le jeu sélectionné"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~C~harger"
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Charge une sauvegarde pour le jeu sélectionné"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~A~jouter..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr ""
+"Ajoute un jeu à la Liste. Maintenez Shift enfoncée pour un Ajout Massif"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~E~diter..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Change les options du jeu"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~S~upprimer"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Supprime le jeu de la liste. Les fichiers sont conservés"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~A~jouter..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~E~diter..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~S~upprimer"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Recherche dans la liste de jeux"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Filtre:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Effacer la valeur"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Charger le jeu:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Charger"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Voulez-vous vraiment lancer la détection automatique des jeux? Cela peut "
+"potentiellement ajouter un grand nombre de jeux."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Oui"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Non"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM n'a pas pu ouvrir le répertoire sélectionné."
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM n'a pas trouvé de jeux dans le répertoire sélectionné."
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Choisissez le jeu:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Voulez-vous vraiment supprimer ce jeu?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr ""
+"Le chargement de sauvegarde depuis le lanceur n'est pas supporté pour ce jeu."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM n'a pas pu trouvé de moteur pour lancer le jeu sélectionné."
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Ajout Massif..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Ajout Massif..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... en cours ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Examen terminé!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "%d répertoires examinés ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "%d nouveaux jeux trouvés ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Jamais"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "Toutes les 5 mins"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "Toutes les 10 mins"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "Toutes les 15 mins"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "Toutes les 30 mins"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Aucune"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Mode graphique:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Mode de rendu:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Mode spécial de tramage supporté par certains jeux"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Plein écran"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Correction du rapport d'aspect"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Corrige le rapport d'aspect pour les jeu 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Détramage EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Active le détramage dans les jeux EGA qui le supporte"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Sortie Préféré:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Sortie Audio:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+"Spécifie le périphérique de sortie audio ou l'émulateur de carte audio "
+"préféré"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Spécifie le périphérique de sortie audio ou l'émulateur de carte audio"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Sortie Préféré:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Sortie Audio:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Émulateur AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib est utilisé pour la musique dans de nombreux jeux"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Fréquence:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Une valeur plus élevée donne une meilleure qualité audio mais peut ne pas "
+"être supporté par votre carte son"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Sortie GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Spécifie le périphérique audio par défaut pour la sortie General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Ne pas utiliser la musique General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Utiliser le premier périphérique disponible"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "Banque de sons:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"La banque de sons (SoundFont) est utilisée par certaines cartes audio, "
+"Fluidsynth et Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Mode mixe AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Utiliser à la fois MIDI et AdLib"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Gain MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Sortie MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Spécifie le périphérique audio par défaut pour la sortie Roland MT-32/LAPC1/"
+"CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 exacte (désactive l'émulation GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Vérifie si vous voulez utiliser un périphérique audio compatible Roland "
+"connecté à l'ordinateur"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 exacte (pas d'ému GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Activer le mode Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Désactiver la conversion des pistes MT-32 en General MIDI"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Ne pas utiliser la musique Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Dialogue:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Voix"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Sous-titres"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Les deux"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Vitesse des ST:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Dialogue:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Voix"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Subs"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "V&S"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Affiche les sous-titres et joue les dialogues audio"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Vitesse des ST:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Volume Musique:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musique:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Silence"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Volume Bruitage:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volume des effets spéciaux sonores"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Bruitage:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Volume Dialogues:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Dialogues:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Thèmes:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Thèmes:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"Spécifie un chemin vers des données supplémentaires utilisées par tous les "
+"jeux ou ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Plugins:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Plugins:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Divers"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Divers"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Thème:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Interface:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Sauvegarde auto:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Sauvegarde:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Touches"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Langue:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Langue de l'interface graphique de ScummVM"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr ""
+"Vous devez relancer ScummVM pour que le changement soit pris en compte."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Sélectionner le répertoire pour les sauvegardes"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr ""
+"Le répertoire sélectionné est vérouillé en écriture. Sélectionnez un autre "
+"répertoire."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Sélectionner le répertoire des thèmes d'interface"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Sélectionner le répertoire pour les fichiers suplémentaires"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Sélectionner le répertoire des plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Le thème que vous avez sélectioné ne support pas la langue française. Si "
+"vous voulez l'utiliser vous devez d'abord changer de langue."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Date inconnue"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Heure inconnue"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Durée de jeu inconnue"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Supprimer"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Voulez-vous vraiment supprimer cette sauvegarde?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Date: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Heure: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Durée de jeu: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Sauvegarde sans nom"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Sélectionnez un Thème"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX désactivé"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX désactivé"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Rendu Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Rendu Anti-crénelé (16 bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Anti-crénelé (16 bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Le niveau de debug '%s' n'est pas supporté par ce moteur de jeu"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Passer"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Mettre en pause"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Passer la phrase"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Erreur lors de l'éxécution du jeu:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Impossible de trouver un moteur pour exécuter le jeu sélectionné"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Pas d'erreur"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Fichier de donées introuvable"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "ID de jeu non supporté"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Mode de couleurs non supporté"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Véroullié en lecture"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Verrouillé en écriture"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Chemin inexistant"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Chemin n'est pas un répertoire"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Chemin n'est pas un fichier"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Impossible de créer le fichier"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Echec de la lecture"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Echec de l'écriture des données"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Aucun plugin n'a pu être trouvé pour ce jeu"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Ce moteur de jeu ne supporte pas les sauvegardes"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Erreur inconnue"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Vert"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Ambre"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Vert"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Ambre"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~R~eprendre"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~C~harger"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~S~auver"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~ptions"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~A~ide"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "À ~P~ropos"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "Retour au ~L~anceur"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "Retour au ~L~anceur"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Sauvegarde:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Sauver"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~nnuler"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~ouches"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Mode vidéo actuel"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Changer correction du rapport d'aspect"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "Voulez-vous vraiment quitter?"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "Voulez-vous vraiment quitter?"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Quitter"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Sélectionnez un Thème"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~P~récédent"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~S~uivant"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~F~ermer"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Voix"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Sous-titres"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Sous-titres"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Voix"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Commandes clavier communes:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Dialogue de Sauvegarde/Chargement"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Passer la phrase"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Passer la séquence"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Espace"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Mettre en pause:"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Charger sauvegarde 1-10:"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Écrire sauvegarde 1-10:"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Entrer"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Basculer en plein écran"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Augmenter / Diminuer volume musique"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Diminuer/Augmenter vitesse du texte"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simuler bouton gauche de la souris"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simuler bouton droit de la souris"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Commandes clavier spéciales:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Afficher/Cacher la console"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Ouvrir le débugger"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Afficher la consomation de mémoire"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Jouer en mode rapide (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Jouer en mode très rapide (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Capturer/Libérer la souris"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Changer de filtre graphique"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Augmenter/Diminuer le facteur d'échelle"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Changer correction du rapport d'aspect"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Note que l'utilisation de crtl-f et"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " crtl-g n'est pas recommandé car"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " elle peut causer des plantages ou"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " un comportement incorrect du jeu"
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Filage au clavier:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Controles principaux du jeu:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Pousser"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Tirer"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Donner"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Ouvrir"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Aller"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Prendre"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Utiliser"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Lire"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Changer"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Allumer"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Éteindre"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Aller"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Prendre"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Qu'est-ce"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Déverrouiller"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Mettre"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Enlever"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Réparer"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Commuter"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Regarder"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Parler"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Voyager"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Henry / Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "jouer Do mineur sur la quenouille"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "jouer Ré sur la quenouille"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "jouer Mi sur la quenouille"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "jouer Fa sur la quenouille"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "jouer Sol sur la quenouille"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "jouer La sur la quenouille"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "jouer Si sur la quenouille"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "jouer Do Majeur sur la quenouille"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Pousser"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Tirer"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Parler à"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Regarder"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Allumer"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Éteindre"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Touche Haut"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Sélectionner le dialogue précédent"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Touche Bas"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Sélectionner le dialogue suivant"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Marcher"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventaire"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objet"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Noir et Blanc / Couleur"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Yeux"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Langue"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Frapper"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Coup de pied"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Examiner"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Curseur normal"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Sauvegarder / Charger / Options"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Autres controles du jeu:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventaires:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Faire défiler vers le haut"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Faire défiler vers le bas"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Élément en haut à gauche"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Élément en bas à gauche"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Élément en haut à droite"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Élément en bas à droite"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Élément au milieu à gauche"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Élément au milieu à droite"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Changer de personnage"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Second enfant"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Troisième enfant"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Controles de combat (pavet numérique):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Pas en arrière"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Bloquer haut"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Bloquer milieu"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Bloquer bas"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Fraper haut"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Frapper milieu"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Frapper bas"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Correct quand Indy est à gauche."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Quand Indy est à droite, 7, 4 et 1"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "sont interverties avec 9, 6 et 3"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "respectivement."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Controles du biplane (paver numérique):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Voler vers le haut à gauche"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Voler vers la gauche"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Voler vers le bas à gauche"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Voler vers le haut"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Voler tout droit"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Voler vers le bas"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Voler vers le haut à droite"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Voler vers la droite"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Voler vers la bas à droite"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Échec du chargement de l'état du jeu depuis le fichier:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"État du jeu enregistré avec succès dans le fichier:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Normalement, Maniac Mansion devrait démarrer maintenant. Cependant ScummVM "
+"ne supporte pas encore cette fonctionalité. Pour jouer à Maniac Mansion, "
+"choisissez 'Ajouter...' dans le Lanceur de ScummVM et sélectionnez le "
+"répertoire 'Maniac Mansion' dans le répertoire du jeu Day Of The Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Mode ~Z~ip Activé"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "T~r~ansitions activées"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "Menu Principal ScummVM"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~E~ffets de l'Eau Activés"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Charger le jeu:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Charger"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Échec du chargement de l'état du jeu depuis le fichier:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Échec de l'enregistrement de l'état du jeu dans le fichier:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Sauvegarde:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Charger le jeu:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Sauvegarde:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Émulateur MAME OPL"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Émulateur DOSBox OPL"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Pas de musique"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Émulateur Amiga Audio"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Émulateur AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Émulateur Apple II GS (PAS IMPLÉMENTÉ)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Émulateur C64 Audio"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Initialisation de l'Émulateur MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Émulateur MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Émulateur Haut Parleur PC"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Émulateur IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Affectation des touches:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr "(Actif)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr "(Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr "(Jeu)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "MIDI Windows"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Menu Principal ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "Mode ~G~aucher"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "Contrôle des combats d'~I~ndy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Afficher le curseur de la souris"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Aligner sur les bords"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Décalage X du toucher"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Décallage Y du toucher"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Activer le contrôle du curseur de type trackpad"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Toucher pour un clic gauche, toucher deux fois pour un clic droit"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensibilité"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Échelle initiale de l'écran du haut"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Échelle de l'écran principal"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Mise à l'echelle matérielle (rapide mais qualité faible)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Mise à l'échelle logicielle (bonne qualité mais plus lent)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Sans changement d'échelle (vous devez faire défiler l'écran)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Luminosité:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Audio haute qualité (plus lent) (redémarrer)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Désactivé l'extinction"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Mode touchpad activé"
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Mode touchpad désactivé"
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Mode touchpad activé"
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Mode touchpad désactivé"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Quitter ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "MIDI Windows"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (échelle d'origine)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Changer correction du rapport d'aspect"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Changer correction du rapport d'aspect"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Changer de filtre graphique"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Mode de rendu:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Préserve"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Originel"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Mode vidéo actuel"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Haut"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Bas"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Gauche"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Droite"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Clic Gauche"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Clic Droit"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zone"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Fonction Multiple"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Changement de personnage"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Sauter le texte"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Mode rapide"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menu global"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Clavier virtuel"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Affectation des touches"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Voulez-vous quitter?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Vidéo"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Mode vidéo actuel"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Coup double"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Underscan horizontal:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Underscan vertical:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Entrée"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Sensibilité du pad GC:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Acceleration du pad GC:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Inconue"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Monter le DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Démonter le DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Serveur:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Disque partagé:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Nom d'utilisateur:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Mot de passe:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Initialiser le réseau"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Monter SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Démonter SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD monté avec succès"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Échec du montage du DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD non monté"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Réseau connecté, disque partagé monté"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Réseau connecté"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", échec du montage du disque partagé"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", disque partagé non monté"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Réseau déconnecté"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Initialisation du réseau"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Dépassement du délai lors de l'initialisation du réseau"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Réseau non initialisé (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Caché la barre d'outils"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Afficher le clavier"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Audio marche/arrêt"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Clic droit"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Afficher/Cacher le curseur"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Regarder autour"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Dézoomer"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zoomer"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Affecter les touches"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Haut"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Bas"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Gauche"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Droit"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Voulez-vous charger ou enregistrer le jeu?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr "Voulez-vous vraiment quitter?"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Clavier"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Pivoter"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Utilise le pilote SDL"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Affichage"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Voulez-vous exécuter une recherche automatique?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Affecter l'action 'Clic Droit'"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Vous devez affecter une touche à l'action de 'Clic Droit' pour pouvoir jouer "
+"à ce jeu"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Affecter l'action 'Cacher Bar d'Outils'"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Vous devez affecter une touche à l'action 'Cacher Bar d'Outils' pour pouvoir "
+"jouer à ce jeu"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Affecter l'action 'Dézoomer' (optionnelle)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Affecter l'action 'Zoomer' (optionnelle)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Noubliez pas d'affecter une touche à l'action 'Cacher Bar d'Outils' pour "
+"pouvoir voir entièrement l'inventaire"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Voulez-vous vraiment supprimer cette sauvegarde?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Frapper"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Voulez-vous quitter?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Ajouter..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Ajouter..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "%d nouveaux jeux trouvés."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argument de ligne de commande non traité"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "Émulateur FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Chemin Invalide"
diff --git a/po/hu_HU.po b/po/hu_HU.po
index 4663df0ded..cbd9ae902b 100644
--- a/po/hu_HU.po
+++ b/po/hu_HU.po
@@ -1,2647 +1,2789 @@
-# Hungarian translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# George Kormendi <grubycza@hotmail.com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-06-21 09:54+0100\n"
-"Last-Translator: Gruby <grubycza@hotmail.com>\n"
-"Language-Team: Hungarian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Magyar\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Poedit-Language: Hungarian\n"
-"X-Poedit-Country: HUNGARY\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(készült %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Lefordított összetevõk:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Támogatott játékmotorok:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Feljebb"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Vissza az elõzõ könyvtárszintre"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Feljebb"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Mégse"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Választ"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Bezár"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Egérkattintás"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Billentyûzet beállítások"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Billentyûk átállítása"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Válassz mûveletet a kiosztáshoz"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Kiosztás"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Válassz mûveletet és katt a 'Kiosztás'-ra"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Társított billentyû: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Társított billentyû: nincs"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Válassz egy mûveletet"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Nyomj egy billentyût a társításhoz"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Játék"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Rövid játékazonosító a játékmentésekhez és a játék parancssori futtatásához"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Név:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "A játék teljes neve"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Név:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Nyelv:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"A játék nyelve. Ne állítsd át a pl. Spanyol nyelvû játékodat Angolra nyelvre"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<alapértelmezett>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Platform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Platform amire a játékot eredetileg készítették"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Platform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafika"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Globális grafikai beállítások felülbírálása"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Globális grafikai beállítások felülbírálása"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Audió"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Globális audió beállítások felülbírálása"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Globális audió beállítások felülbírálása"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Hangerõ"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Hangerõ"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Globális hangerõbeállítások felülbírálása"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Globális hangerõbeállítások felülbírálása"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Globális MIDI beállítások felülbírálása"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Globális MIDI beállítások felülbírálása"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Globális MT-32 beállítások felülbírálása"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Globális MT-32 beállítások felülbírálása"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Mappák"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Mappák"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Játék Mappa:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Játék Mappa:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Extra Mappa:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Mappa kiválasztás a játékok kiegészítõ fájljaihoz"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Extra Mappa:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Mentés Mappa:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Játékmentések helyének meghatározása"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Mentés Mappa:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Nincs"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Alapértelmezett"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "SoundFont kiválasztás"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Játékok helyének kiválasztása"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Válassz mappát a játék kiegészítõkhöz"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Válaszz játékmentéseknek mappát"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Ez a játékazonosító ID már foglalt, Válassz egy másikat."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "Kilépés"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "ScummVM bezárása"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "Névjegy"
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "ScummVM névjegy"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pciók..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Globális ScummVM opciók cseréje"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "Indítás"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "A választott játék indítása"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "Betöltés"
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Kimentett játékállás betöltése"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "Játék hozzáadás"
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Tratsd lenyomva a Shift-et a Masszív módhoz"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "Játékopciók"
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Játék beállítások megváltoztatása"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "Játék törlése"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Törli a játék nevét a listáról. A játékfájlok megmaradnak"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "Játék hozzáadás"
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "Játékopciók"
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "Játék törlése"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Keresés a játéklistában"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Keresés:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Érték törlése"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Játék betöltése:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Betöltés"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Biztos hogy futtatod a Masszív játékdetektort? Ez potenciálisan sok játékot "
-"hozzáad a listához."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Igen"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nem"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM nem tudja megnyitni a választott mappát!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "A ScummVM nem talált egy játékot sem a választott mappában!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Válassztott játék:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Biztosan törölni akarod ezt a játékkonfigurációt?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Ez a játék nem támogatja a játékállás betöltést az indítóból."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM nem talált olyan játékmotort ami a választott játékot támogatja!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Masszív mód..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Masszív mód..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Játék hozzáadás"
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Játék hozzáadás"
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... folyamatban ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Vizsgálat kész!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr "%d új játékot találtam, %d elõzõleg hozzáadott játék kihagyva..."
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "%d Mappa átvizsgálva..."
-
-#: gui/massadd.cpp:253
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "%d új játékot találtam, %d elõzõleg hozzáadott játék kihagyva..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Soha"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "5 percenként"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "10 percenként"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "15 percenként"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "30 percenként"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Nincs"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr "Néhány grafikus opció változtatása sikertelen:"
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr "a videómód nem változott."
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr "a teljesképernyõs beállítás nem változott"
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr "a képméretarány beállítások nem változtak"
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafikus mód:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Kirajzolás mód:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Néhány játék támogatja a speciális árnyalási módokat"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Teljesképernyõs mód:"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Képméretarány korrekció"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Helyes oldalarány a 320x200 játékokhoz"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA szinjavítás"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "EGA színjavítás támogatott EGA játékokban"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Elsõdleges eszköz:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Zene eszköz:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Elsõdleges hangeszköz vagy hang emulátor beállítások"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Hangeszköz vagy hangkártya emulátor beállítások"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Elsõdleges eszk.:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Zene eszköz:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib emulátor:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib meghajtót sok játék használja zenéhez"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Kimeneti ráta:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Nagyobb értékek jobb hangminõséget adnak, de nem minden hangkártya támogatja"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM Eszköz:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Alapértelmezett hangeszköz General MIDI kimenethez"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Ne használj General MIDI zenét"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Elsõ elérhetõ eszköz használata"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"Néhány hangkárya, Fluidsynth és Timidyti támogatja a SoundFont betöltését"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Vegyes AdLib/MIDI mód"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "MIDI és AdLib hanggenerátorok használata"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI erõsítés:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "MT-32 Eszköz:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr "Roland MT-32/LAPC1/CM32l/CM64 alapértelmezett hangeszközök beállítása"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 Hardver (GM emuláció tiltva)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Jelöld be, ha hardveres Roland-Kompatibilis hangeszköz van csatlakoztatva a "
-"gépedhez és használni akarod"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 Hardver (GM emuláció nincs)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Roland GS Mód engedélyezve"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "General MIDI leképezés Roland MT-32 zenés játékokhoz kikapcsolva"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Ne használj Roland MT-32 zenét"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Szöveg és beszéd:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Csak beszéd"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Csak felirat"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Mind"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Felirat sebesség:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Felirat és beszéd:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Besz"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Text"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Mind"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Hang és feliratok megjelenítése"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Felirat sebesség:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Zene hangerõ:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Zene hangerõ:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Összes némítása"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "SFX hangerõ:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Speciális hangeffektusok hangereje"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "SFX hangerõ:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Beszéd hangerõ:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Beszéd hangerõ:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Téma Mappa:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Téma Mappa:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Minden jéték és ScummVM kiegészítõ fájljainak mappája:"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Plugin Mappa:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Plugin Mappa:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Vegyes"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Vegyes"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Téma:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI Renderelõ:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Automentés:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Automentés:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Billentyûk"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "GUI nyelve:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "A ScummVM GUI nyelve"
-
-#: gui/options.cpp:1295
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Indítsd újra a ScummVM-et a változások érvényesítéséhez."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Válassz játékmentés mappát"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "A kiválasztott mappába nem lehet írni, válassz egy másikat"
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "GUI téma mappa kiválasztása"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Mappa választás az extra fájloknak"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Plugin mappa kiválasztása"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"A kiválasztott téma nem támogatja a nyelvedet. Ha használni akarod ezt a "
-"témát, elõszõr válts át egy másik nyelvre."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Dátum nincs mentve"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Idõ nincs mentve"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Játékidõ nincs mentve"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Töröl"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Biztos hogy törölni akarod ezt a játékállást?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Dátum:"
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Idõ:"
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Játékidõ:"
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Névtelen játékállás"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Válassz témát"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX letiltva"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX letiltva"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard leképezõ (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Élsimításos leképezõ (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Élsimított (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "A motor nem támogatja a '%s' debug szintet"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menü"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Tovább"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Szünet"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Sor átlépése"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Hiba a játék futtatásakor:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Nem található olyan játékmotor ami a választott játékot támogatja"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Nincs hiba"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Játék adat nem található"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Játék id nem támogatott"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Nem támogatott színmód"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Olvasás hozzáfárés megtagadva"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Írás hozzáférés megtagadva"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Mappa nem létezik"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Mappa nem egy könyvtár"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Mappa nem egy fájl"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Fájl nem hozható létre"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "A Beolvasott adat hibás"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Kiírt adat hibás"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Nem található alkalmas motor plugin"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "A motor nem támogatja a játékállás mentését"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr "Felhasználói megszakítás"
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Ismeretlen hiba"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Zöld"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Sárga"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Zöld"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Sárga"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr "A '%s' játék ismeretlennek tûnik."
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr "Kérlek jelezd a ScummVM csapatnak a következõ adatokat, együtt a játék"
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr "címével és megbízható adataival játékverzió/nyelv(ek)/stb.:"
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "Folytatás"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "Betöltés"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "Mentés"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pciók"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "Súgó"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "Névjegy"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "Visszatérés az indítóba"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "Visszatérés az indítóba"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Játék mentése:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Mentés"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-"Sajnálom, a motor jelenleg nem tartalmaz játék közbeni súgót. Olvassd el a "
-"README-t az alap információkról, és hogy hogyan segíthetsz a késõbbiekben."
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "Mégse"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "Billentyük"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr "Szín formátum nincs alkalmazva"
-
-#: engines/engine.cpp:228
-msgid "Could not switch to video mode: '"
-msgstr "Videómód nincs átállítva: ' "
-
-#: engines/engine.cpp:237
-msgid "Could not apply aspect ratio setting."
-msgstr "Méretarány korrekció nem változott."
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr "Teljesképernyõs beállítás nincs alkalmazva"
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-"Úgy néz ki, ezt a játékot CD-rõl futtatod\n"
-"Ez ismert problémákat okoz, ezért\n"
-"ajánlatos átmásolni a játék\n"
-"adatfájljait a merevlemezedre.\n"
-"Nézd meg a README fájlt a részletekért."
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-"A játékhoz audiósávok tartoznak a lemezen\n"
-"ezeket a sávokat másold ki egy megfelelõ\n"
-"CD audió kitömörítõ programmal\n"
-"hogy a játék zenéje hallható legyen.\n"
-"Nézd meg a README fájlt a részletekért."
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-"FIGYELEM: A játékot amit indítani akarsz még nem teljesen támogatotja a "
-"ScummVM. Számíts rá hogy nem stabilan fut, és a mentések nem mûködnek a "
-"jövõbeni ScummVM verziókkal."
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr "Indítás így is"
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "Elõzõ"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "Következõ"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "Bezár"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Általános billentyûparancsok:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Ment / Tölt dialógus"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Szövegsor átugrása"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Bevezetõ átugrása"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Szóköz"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Szünet a játékban"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "1-10 Játékállás betöltése"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "1-10 Játékállás mentése"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Kilépés"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Teljesképernyõ kapcsoló"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Zene hangerõ fel / le"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Szövegsebesség gyors / lassú"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Bal egérgomb szimuláció"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Jobb egérgomb szimuláció"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Speciális billentyûparancsok:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Konzol be / ki kapcsolás"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Hibakeresõ indítása"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Memóriakihasználtság látszik"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Futtatás gyors módban (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Futtatás túlgyors módban (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Egér rögzítés kapcsoló"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Kapcsolás grafikus szûrõk között"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Lépték növelés / csökkentés"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Méretarány korrekció kapcsoló"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Megjegyzés, ctrl-f és"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g használata nem javasolt"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " mert rendszerösszeomlást vagy"
-
-#: engines/scumm/help.cpp:110
-msgid " or incorrect game behavior."
-msgstr " vagy hibás játékmûködést okoz."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Forgó draftok a billentyûzeten:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Fõ játékvezérlõk:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Tol"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Húz"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Ad"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Nyit"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Menj"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Vesz"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Használ"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Olvas"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Új gyerek"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Bekapcsol"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Kikapcsol"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Odamegy"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Felvesz"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Mi ez"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Felold"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Felvesz"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Letesz"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Javít"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Kapcsol"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Megnéz"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Beszél"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Utazás"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Henrytõl / Indytõl"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "C moll játék a bottal"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "Játék D-ben a bottal"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "Játék E-ben a bottal"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "Játék F-ben a bottal"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "Játék G-ben a bottal"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "Játék A-ban a bottal"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "Játék B-ben a bottal"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "C dúr játék a bottal"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Megtol"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "húz (Ránt)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Beszél"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Megnézi"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Bekapcsol"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Kikapcsol"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "FelGomb"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Elõzõ dialógus kiemelése"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "LeGomb"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Következõ dialógus kiemelése"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Megy"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Tárgylista"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Tárgy"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Fekete fehér / Színes"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Szemek"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Nyelv"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Megüt"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Megüt"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Vizsgál"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Szabvány kurzor"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Ment / Tölt / Opciók"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Egyébb játékvezérlõk:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Tárgylista:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Listagörgetés fel"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Listagörgetés le"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Bal felsõ tárgy"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Bal alsó tárgy"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Jobb felsõ tárgy"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Jobb alsó tárgy"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Bal középsõ tárgy"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Jobb középsõ tárgy"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Karakterek cseréje:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Második gyerek"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Harmadik gyerek"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Verekedés irányítók (numpad):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Hátralép"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Felsõ védés"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Védés középen"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Alsó védés"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Felsõ ütés"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Ütés középen"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Alsó ütés"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Indytõl balra levõ."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Indytõl jobbra levõ,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4, és 1 átkapcsolva"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6, és 3-ra, egyenként."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Repülõ vezérlõk (numpad):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Balra fel repülés"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Balra repülés"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Balra le repülés"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Repülés fel"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Repülés elõre"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Repülés le"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Jobbra fel repülés"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Jobbra repülés"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Jobbra le repülés"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-"Native MIDI támogatáshoz kell a Roland Upgrade a LucasArts-tól,\n"
-"a %s hiányzik. AdLib-ot használok helyette."
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Játékállás mentése:\n"
-"\n"
-"%s fájlba nem sikerült"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Játékállás betöltése:\n"
-"\n"
-"%s fájlból nem sikerült"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Játékállás mentése:\n"
-"\n"
-"%s fájlba elkészült"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Általában a Maniac Mansion indulna itt. De a ScummVM most nem indítja el. Ha "
-"játszani akarsz vele menj a ScummVM fõmenüben a 'Játék hozzáadás' ra és "
-"válaszd a 'Maniac' mappát a 'Tentacle' könyvtárában."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ip Mód aktiválva"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "Átmenetek engedélyezve"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr "Oldal~D~obás"
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr "~S~ Térkép"
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "Vízeffektus engedélyezve"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Játékmenet visszaállítása:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Visszaállítás"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr "'%s' átvezetõ fájl nem található"
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-msgid "Failed to load game state from file."
-msgstr "Játékállás betöltése fájlból nem sikerült."
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-msgid "Failed to save game state to file."
-msgstr "Játékállás mentése fájlba nem sikerült."
-
-#: engines/gob/inter_v5.cpp:107
-msgid "Failed to delete file."
-msgstr "Fájl törlés sikertelen."
-
-#: engines/groovie/script.cpp:417
-msgid "Failed to save game"
-msgstr "Játék mentés nem sikerült"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-"Úgy néz ki egy General MIDI eszközt használsz,\n"
-"a játék csak Roland MT32 MIDI eszközt támogat.\n"
-"Cseréld ki Roland MT32 hangszerekre\n"
-"a General MIDI-t. Különben néhány\n"
-"sávot nem lehet rendesen lejátszani."
-
-#: engines/m4/m4_menus.cpp:138
-msgid "Save game failed!"
-msgstr "Játék mentése nem sikerült!"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-"A \"sky.cpt\" fájl nem található!\n"
-"Töltsd le a www.scummvm.org oldaláról"
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-"A \"sky.cpt\" fájl mérete nem megfelelõ.\n"
-"Töltsd le a www.scummvm.org oldaláról"
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr "DXA átvezetõ elérhetõ, de a ScummVM zlib támogatás nincs lefordítva"
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr "MPEG2 átvezetõk már nem támogatottak"
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr "'%s' átvezetõ nem található"
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-"ScummVM régi játékmentést talált a Broken Sword 1 hez, ezt át kell "
-"alakítani.\n"
-"A régi játékmentés nem támogatott, ezért a játék nem töltõdik be átalakítás "
-"nélkül.\n"
-"\n"
-"Nyomj OK-t az átalakításhoz, vagy rákérdezzek ha legközelebb elindítod a "
-"játékot.\n"
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-"A választott játékmentés már létezik!\n"
-"Megtartod a régi játékmentést (%s) vagy kicseréled az újra (%s)?\n"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr "A régit megtartom"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr "Az újat megtartom"
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr "Ez a Broken Sword 1 Demo vége"
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-"Játékállás nem menthetõ %i slotba\n"
-"\n"
-
-#: engines/parallaction/saveload.cpp:211
-msgid "Loading game..."
-msgstr "Játék betöltés..."
-
-#: engines/parallaction/saveload.cpp:226
-msgid "Saving game..."
-msgstr "Játék mentés..."
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-"ScummVM régi játékmentést talált a Nippon Safes hez ezt át kell nevezni.\n"
-"A régi játékmentés nem támogatott, ezért a játék nem töltõdik be átnevezés "
-"nélkül..\n"
-"\n"
-"Nyomj OK-t az átalakításhoz, vagy rákérdezzek ha legközelebb elindítod a "
-"játékot.\n"
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr "ScummVM konvertálta az összes játékállásodat."
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-"ScummVM kiírt néhány figyelmeztetést a konzolablakba és nem biztos hogy az "
-"összes fájlod át lett alakítva.\n"
-"\n"
-"Légyszíves jelentsd a csapatnak."
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL emulátor"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL emulátor"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"A kiválasztott '%s' hangeszköz nem található. (Lekapcsoltad, vagy kihúztad). "
-"A következõ elérhetõ eszköz keresése..."
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"A kiválasztott '%s' hangeszköz nem használható. Bõvebb információ a "
-"naplófájlban. A következõ elérhetõ eszköz keresése..."
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"Az elsõdleges '%s' hangeszköz nem található. (Lekapcsoltad, vagy kihúztad). "
-"A következõ elérhetõ eszköz keresése..."
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"Az elsõdleges '%s' hangeszköz nem használható. Bõvebb információ a "
-"naplófájlban. A következõ elérhetõ eszköz keresése..."
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Nincs zene"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga Audió Emulátor"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib Emulátor"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS Emulátor (NEM TÁMOGATOTT)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 Audio Emulátor"
-
-#: audio/softsynth/mt32.cpp:329
-msgid "Initializing MT-32 Emulator"
-msgstr "MT-32 Emulátor inicializálása"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 Emulátor"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker Emulátor"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr Emulátor"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Billentyûzet kiosztás:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktív)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Globális)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Játék)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM Fõmenü"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "Balkezes mód:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~I~ndy fight controls"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Egérkurzor látszik"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Élekre illesztés"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Touch X Eltolás"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Touch Y Eltolás"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Laptop trackpad stílusu kurzor vezérlõ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Érintés balkatt, duplaérintés jobbkatt"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Érzékenység"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Képernyõ felsõ kezdõpont:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Fõképernyõ átméretezés:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Hardveres átméretezés (gyors, alacsony minõség)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Szoftveres átméretezés (jó minõség, lassú)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Eredeti (görgethetsz jobbra és balra)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Fényerõ:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Jóminõségü audió (lassabb)(újraindítás)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Leállítás tiltva"
-
-#: backends/platform/iphone/osys_events.cpp:338
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Egér kattint-és-húz mód engedélyezve."
-
-#: backends/platform/iphone/osys_events.cpp:340
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Egér kattint-és-húz mód letiltva."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Touchpad mód engedélyezve."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Touchpad mód letiltva."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normál (nincs átméretezés)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normál (nincs átméretezés)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-msgid "Enabled aspect ratio correction"
-msgstr "Méretarány korrekció engedélyezve"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-msgid "Disabled aspect ratio correction"
-msgstr "Méretarány korrekció letiltva"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-msgid "Active graphics filter:"
-msgstr "Aktív grafikus szûrõk:"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-msgid "Windowed mode"
-msgstr "Ablakos mód"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normál"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Megtartott"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Eredeti"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-msgid "Current display mode"
-msgstr "Jelenlegi videómód"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr "Aktuális méretezés"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr "Aktív filter mód: Lineáris"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr "Aktív filter mód: Közelítõ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Fel"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Le"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Bal"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Jobb"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Bal katt"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Jobb katt"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zóna"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Többfunkciós"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Karakter csere"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Szöveg átugrása"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Gyors mód"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Hibakeresõ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Globális menü"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuális billentyûzet"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Billentyû kiosztás"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Ki akarsz lépni ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Videó"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Jelenlegi videómód:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Dupla érintés"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Vízszintes eltolás:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Függõleges eltolás:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Bemenet"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "GC Pad érzékenység:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "GC Pad felbontás:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Státusz:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Ismeretlen"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "DVD csatolás"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "DVD kiadás"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Szerver:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Megoszt:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Felhasználó:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Jelszó:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Hálózat inicializálás"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "SMB csatolás"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "SMB kiadás"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD csatlakoztatva"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Hiba a DVD csatlakoztatásakor"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD nincs csatolva"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Hálózat és megosztás csatlakozva"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Hálózat csatlakozva"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", hiba a megosztás csatolásakor"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", megosztás nincs csatolva"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Nincs hálózat"
-
-#: backends/platform/wii/options.cpp:178
-msgid "Initializing network"
-msgstr "Hálózat inicializálása"
-
-#: backends/platform/wii/options.cpp:182
-msgid "Timeout while initializing network"
-msgstr "Idõtúllépés a hálózat inicializálásakor"
-
-#: backends/platform/wii/options.cpp:186
-#, c-format
-msgid "Network not initialized (%d)"
-msgstr "(%d) Hálózat nincs inicializálva"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Eszköztár rejtés"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Billentyûzet megjelenítés"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Hang be/ki"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Jobb katt"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Kurzor be/ki"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Szabad nézet"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Nagyítás"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Kicsinyítés"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Kapcsolódás kulcsok"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Kurzor Fel"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Kurzor Le"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Kurzor Bal"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Kurzor Jobb"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Játékállás betöltése vagy mentése?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Biztos hogy ki akarsz lépni ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Billentyûzet"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Forgatás"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "SDL meghajtó használata"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Kijelzõ"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "El akarod kezdeni az automatikus vizsgálatot ?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Jobbkatt mûvelet gomb"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "Válassz egy billentyût a 'Jobbkatt' mûvelethez"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Eszköztár rejtés gomb"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr "Válassz egy billentyût az 'Eszköztár rejtés' mûvelethez"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Nagyítás mûvelet (opcionális)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Kicsinyítés mûvelet (opcionális)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Ne felejts billentyût társítani az 'Eszköztár rejtés' mûvelethez, hogy lásd "
-"a teljes listát"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Do you really want to return to the Launcher?"
-msgstr "Biztos hogy visszatérsz az indítópulthoz?"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Launcher"
-msgstr "Indítópult"
-
-#: backends/events/default/default-events.cpp:244
-msgid "Do you really want to quit?"
-msgstr "Biztos hogy ki akarsz lépni ?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr "Érintõképernyõ 'Tap Mód' - Bal katt"
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr "Érintõképernyõ 'Tap Mód' - Jobb katt"
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr "Érintõképernyõ 'Tap Mód' - Lebegõ (Nincs katt)"
-
-#: backends/events/gph/gph-events.cpp:390
-msgid "Maximum Volume"
-msgstr "Maximum Hangerõ"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr "Hangerõ növelése"
-
-#: backends/events/gph/gph-events.cpp:398
-msgid "Minimal Volume"
-msgstr "Minimum Hangerõ"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr "Hangerõ csökkentése"
-
-#~ msgid ""
-#~ "Your game version has been detected using filename matching as a variant "
-#~ "of %s."
-#~ msgstr "A felismert játékverziód a használt fájlnévvel a %s egy változata."
-
-#~ msgid "If this is an original and unmodified version, please report any"
-#~ msgstr "Ha ez egy eredeti nem változtatott verzió, kérlek jelezd minden"
-
-#~ msgid "information previously printed by ScummVM to the team."
-#~ msgstr "elõzõleg kiírt információt a ScummVM csapatnak."
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "%d Új játékot találtam."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Parancssori paraméter nem mûködik"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns Emulátor"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Érvénytelen mappa"
+# Hungarian translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# George Kormendi <grubycza@hotmail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-06-21 09:54+0100\n"
+"Last-Translator: Gruby <grubycza@hotmail.com>\n"
+"Language-Team: Hungarian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Magyar\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Poedit-Language: Hungarian\n"
+"X-Poedit-Country: HUNGARY\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(készült %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Lefordított összetevõk:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Támogatott játékmotorok:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Feljebb"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Vissza az elõzõ könyvtárszintre"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Feljebb"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Mégse"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Választ"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Bezár"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Egérkattintás"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Billentyûzet beállítások"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Billentyûk átállítása"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Válassz mûveletet a kiosztáshoz"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Kiosztás"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Válassz mûveletet és katt a 'Kiosztás'-ra"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Társított billentyû: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Társított billentyû: nincs"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Válassz egy mûveletet"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Nyomj egy billentyût a társításhoz"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Játék"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Rövid játékazonosító a játékmentésekhez és a játék parancssori futtatásához"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Név:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "A játék teljes neve"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Név:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Nyelv:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"A játék nyelve. Ne állítsd át a pl. Spanyol nyelvû játékodat Angolra nyelvre"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<alapértelmezett>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Platform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Platform amire a játékot eredetileg készítették"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Platform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafika"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Globális grafikai beállítások felülbírálása"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Globális grafikai beállítások felülbírálása"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Audió"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Globális audió beállítások felülbírálása"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Globális audió beállítások felülbírálása"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Hangerõ"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Hangerõ"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Globális hangerõbeállítások felülbírálása"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Globális hangerõbeállítások felülbírálása"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Globális MIDI beállítások felülbírálása"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Globális MIDI beállítások felülbírálása"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Globális MT-32 beállítások felülbírálása"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Globális MT-32 beállítások felülbírálása"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Mappák"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Mappák"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Játék Mappa:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Játék Mappa:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Extra Mappa:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Mappa kiválasztás a játékok kiegészítõ fájljaihoz"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Extra Mappa:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Mentés Mappa:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Játékmentések helyének meghatározása"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Mentés Mappa:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Nincs"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Alapértelmezett"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "SoundFont kiválasztás"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Játékok helyének kiválasztása"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Válassz mappát a játék kiegészítõkhöz"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Válaszz játékmentéseknek mappát"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Ez a játékazonosító ID már foglalt, Válassz egy másikat."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "Kilépés"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "ScummVM bezárása"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "Névjegy"
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "ScummVM névjegy"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pciók..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Globális ScummVM opciók cseréje"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "Indítás"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "A választott játék indítása"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "Betöltés"
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Kimentett játékállás betöltése"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "Játék hozzáadás"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Tratsd lenyomva a Shift-et a Masszív módhoz"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "Játékopciók"
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Játék beállítások megváltoztatása"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "Játék törlése"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Törli a játék nevét a listáról. A játékfájlok megmaradnak"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "Játék hozzáadás"
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "Játékopciók"
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "Játék törlése"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Keresés a játéklistában"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Keresés:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Érték törlése"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Játék betöltése:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Betöltés"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Biztos hogy futtatod a Masszív játékdetektort? Ez potenciálisan sok játékot "
+"hozzáad a listához."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Igen"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nem"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM nem tudja megnyitni a választott mappát!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "A ScummVM nem talált egy játékot sem a választott mappában!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Válassztott játék:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Biztosan törölni akarod ezt a játékkonfigurációt?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Ez a játék nem támogatja a játékállás betöltést az indítóból."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM nem talált olyan játékmotort ami a választott játékot támogatja!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Masszív mód..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Masszív mód..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... folyamatban ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Vizsgálat kész!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "%d új játékot találtam, %d elõzõleg hozzáadott játék kihagyva..."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "%d Mappa átvizsgálva..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "%d új játékot találtam, %d elõzõleg hozzáadott játék kihagyva..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Soha"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "5 percenként"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "10 percenként"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "15 percenként"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "30 percenként"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Nincs"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "Néhány grafikus opció változtatása sikertelen:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "a videómód nem változott."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "a teljesképernyõs beállítás nem változott"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "a képméretarány beállítások nem változtak"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafikus mód:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Kirajzolás mód:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Néhány játék támogatja a speciális árnyalási módokat"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Teljesképernyõs mód:"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Képméretarány korrekció"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Helyes oldalarány a 320x200 játékokhoz"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA szinjavítás"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "EGA színjavítás támogatott EGA játékokban"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Elsõdleges eszköz:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Zene eszköz:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Elsõdleges hangeszköz vagy hang emulátor beállítások"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Hangeszköz vagy hangkártya emulátor beállítások"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Elsõdleges eszk.:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Zene eszköz:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib emulátor:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib meghajtót sok játék használja zenéhez"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Kimeneti ráta:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Nagyobb értékek jobb hangminõséget adnak, de nem minden hangkártya támogatja"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM Eszköz:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Alapértelmezett hangeszköz General MIDI kimenethez"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Ne használj General MIDI zenét"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Elsõ elérhetõ eszköz használata"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"Néhány hangkárya, Fluidsynth és Timidyti támogatja a SoundFont betöltését"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Vegyes AdLib/MIDI mód"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "MIDI és AdLib hanggenerátorok használata"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI erõsítés:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "MT-32 Eszköz:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr "Roland MT-32/LAPC1/CM32l/CM64 alapértelmezett hangeszközök beállítása"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 Hardver (GM emuláció tiltva)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Jelöld be, ha hardveres Roland-Kompatibilis hangeszköz van csatlakoztatva a "
+"gépedhez és használni akarod"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 Hardver (GM emuláció nincs)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Roland GS Mód engedélyezve"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "General MIDI leképezés Roland MT-32 zenés játékokhoz kikapcsolva"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Ne használj Roland MT-32 zenét"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Szöveg és beszéd:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Csak beszéd"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Csak felirat"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Mind"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Felirat sebesség:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Felirat és beszéd:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Besz"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Text"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Mind"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Hang és feliratok megjelenítése"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Felirat sebesség:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Zene hangerõ:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Zene hangerõ:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Összes némítása"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "SFX hangerõ:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Speciális hangeffektusok hangereje"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "SFX hangerõ:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Beszéd hangerõ:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Beszéd hangerõ:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Téma Mappa:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Téma Mappa:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Minden jéték és ScummVM kiegészítõ fájljainak mappája:"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Plugin Mappa:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Plugin Mappa:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Vegyes"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Vegyes"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Téma:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI Renderelõ:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Automentés:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Automentés:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Billentyûk"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "GUI nyelve:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "A ScummVM GUI nyelve"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Indítsd újra a ScummVM-et a változások érvényesítéséhez."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Válassz játékmentés mappát"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "A kiválasztott mappába nem lehet írni, válassz egy másikat"
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "GUI téma mappa kiválasztása"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Mappa választás az extra fájloknak"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Plugin mappa kiválasztása"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"A kiválasztott téma nem támogatja a nyelvedet. Ha használni akarod ezt a "
+"témát, elõszõr válts át egy másik nyelvre."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Dátum nincs mentve"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Idõ nincs mentve"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Játékidõ nincs mentve"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Töröl"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Biztos hogy törölni akarod ezt a játékállást?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Dátum:"
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Idõ:"
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Játékidõ:"
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Névtelen játékállás"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Válassz témát"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX letiltva"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX letiltva"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard leképezõ (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Élsimításos leképezõ (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Élsimított (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "A motor nem támogatja a '%s' debug szintet"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menü"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Tovább"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Szünet"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Sor átlépése"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Hiba a játék futtatásakor:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Nem található olyan játékmotor ami a választott játékot támogatja"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Nincs hiba"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Játék adat nem található"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Játék id nem támogatott"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Nem támogatott színmód"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Olvasás hozzáfárés megtagadva"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Írás hozzáférés megtagadva"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Mappa nem létezik"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Mappa nem egy könyvtár"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Mappa nem egy fájl"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Fájl nem hozható létre"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "A Beolvasott adat hibás"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Kiírt adat hibás"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Nem található alkalmas motor plugin"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "A motor nem támogatja a játékállás mentését"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "Felhasználói megszakítás"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Ismeretlen hiba"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Zöld"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Sárga"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Zöld"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Sárga"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "A '%s' játék ismeretlennek tûnik."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr "Kérlek jelezd a ScummVM csapatnak a következõ adatokat, együtt a játék"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr "címével és megbízható adataival játékverzió/nyelv(ek)/stb.:"
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "Folytatás"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "Betöltés"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "Mentés"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pciók"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "Súgó"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "Névjegy"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "Visszatérés az indítóba"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "Visszatérés az indítóba"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Játék mentése:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Mentés"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"Sajnálom, a motor jelenleg nem tartalmaz játék közbeni súgót. Olvassd el a "
+"README-t az alap információkról, és hogy hogyan segíthetsz a késõbbiekben."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "Mégse"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "Billentyük"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "Szín formátum nincs alkalmazva"
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "Videómód nincs átállítva: ' "
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "Méretarány korrekció nem változott."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "Teljesképernyõs beállítás nincs alkalmazva"
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"Úgy néz ki, ezt a játékot CD-rõl futtatod\n"
+"Ez ismert problémákat okoz, ezért\n"
+"ajánlatos átmásolni a játék\n"
+"adatfájljait a merevlemezedre.\n"
+"Nézd meg a README fájlt a részletekért."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"A játékhoz audiósávok tartoznak a lemezen\n"
+"ezeket a sávokat másold ki egy megfelelõ\n"
+"CD audió kitömörítõ programmal\n"
+"hogy a játék zenéje hallható legyen.\n"
+"Nézd meg a README fájlt a részletekért."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"FIGYELEM: A játékot amit indítani akarsz még nem teljesen támogatotja a "
+"ScummVM. Számíts rá hogy nem stabilan fut, és a mentések nem mûködnek a "
+"jövõbeni ScummVM verziókkal."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "Indítás így is"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Biztos hogy ki akarsz lépni ? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Biztos hogy ki akarsz lépni ? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Kilépés"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Válassz témát"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "Elõzõ"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "Következõ"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "Bezár"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Csak beszéd"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Csak felirat"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Csak felirat"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Csak beszéd"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Általános billentyûparancsok:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Ment / Tölt dialógus"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Szövegsor átugrása"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Bevezetõ átugrása"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Szóköz"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Szünet a játékban"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "1-10 Játékállás betöltése"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "1-10 Játékállás mentése"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Teljesképernyõ kapcsoló"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Zene hangerõ fel / le"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Szövegsebesség gyors / lassú"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Bal egérgomb szimuláció"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Jobb egérgomb szimuláció"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Speciális billentyûparancsok:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Konzol be / ki kapcsolás"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Hibakeresõ indítása"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Memóriakihasználtság látszik"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Futtatás gyors módban (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Futtatás túlgyors módban (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Egér rögzítés kapcsoló"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Kapcsolás grafikus szûrõk között"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Lépték növelés / csökkentés"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Méretarány korrekció kapcsoló"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Megjegyzés, ctrl-f és"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g használata nem javasolt"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " mert rendszerösszeomlást vagy"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " vagy hibás játékmûködést okoz."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Forgó draftok a billentyûzeten:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Fõ játékvezérlõk:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Tol"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Húz"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Ad"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Nyit"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Menj"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Vesz"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Használ"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Olvas"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Új gyerek"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Bekapcsol"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Kikapcsol"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Odamegy"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Felvesz"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Mi ez"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Felold"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Felvesz"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Letesz"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Javít"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Kapcsol"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Megnéz"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Beszél"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Utazás"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Henrytõl / Indytõl"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "C moll játék a bottal"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "Játék D-ben a bottal"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "Játék E-ben a bottal"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "Játék F-ben a bottal"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "Játék G-ben a bottal"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "Játék A-ban a bottal"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "Játék B-ben a bottal"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "C dúr játék a bottal"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Megtol"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "húz (Ránt)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Beszél"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Megnézi"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Bekapcsol"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Kikapcsol"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "FelGomb"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Elõzõ dialógus kiemelése"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "LeGomb"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Következõ dialógus kiemelése"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Megy"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Tárgylista"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Tárgy"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Fekete fehér / Színes"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Szemek"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Nyelv"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Megüt"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Megüt"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Vizsgál"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Szabvány kurzor"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Ment / Tölt / Opciók"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Egyébb játékvezérlõk:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Tárgylista:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Listagörgetés fel"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Listagörgetés le"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Bal felsõ tárgy"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Bal alsó tárgy"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Jobb felsõ tárgy"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Jobb alsó tárgy"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Bal középsõ tárgy"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Jobb középsõ tárgy"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Karakterek cseréje:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Második gyerek"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Harmadik gyerek"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Verekedés irányítók (numpad):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Hátralép"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Felsõ védés"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Védés középen"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Alsó védés"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Felsõ ütés"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Ütés középen"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Alsó ütés"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Indytõl balra levõ."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Indytõl jobbra levõ,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4, és 1 átkapcsolva"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6, és 3-ra, egyenként."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Repülõ vezérlõk (numpad):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Balra fel repülés"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Balra repülés"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Balra le repülés"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Repülés fel"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Repülés elõre"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Repülés le"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Jobbra fel repülés"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Jobbra repülés"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Jobbra le repülés"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"Native MIDI támogatáshoz kell a Roland Upgrade a LucasArts-tól,\n"
+"a %s hiányzik. AdLib-ot használok helyette."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Játékállás mentése:\n"
+"\n"
+"%s fájlba nem sikerült"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Játékállás betöltése:\n"
+"\n"
+"%s fájlból nem sikerült"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Játékállás mentése:\n"
+"\n"
+"%s fájlba elkészült"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Általában a Maniac Mansion indulna itt. De a ScummVM most nem indítja el. Ha "
+"játszani akarsz vele menj a ScummVM fõmenüben a 'Játék hozzáadás' ra és "
+"válaszd a 'Maniac' mappát a 'Tentacle' könyvtárában."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~Z~ip Mód aktiválva"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "Átmenetek engedélyezve"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "Oldal~D~obás"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "~S~ Térkép"
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "ScummVM Fõmenü"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "Vízeffektus engedélyezve"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Játékmenet visszaállítása:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Visszaállítás"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "'%s' átvezetõ fájl nem található"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "Játékállás betöltése fájlból nem sikerült."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "Játékállás mentése fájlba nem sikerült."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "Fájl törlés sikertelen."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "Játék mentés nem sikerült"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"Úgy néz ki egy General MIDI eszközt használsz,\n"
+"a játék csak Roland MT32 MIDI eszközt támogat.\n"
+"Cseréld ki Roland MT32 hangszerekre\n"
+"a General MIDI-t. Különben néhány\n"
+"sávot nem lehet rendesen lejátszani."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "Játék mentése nem sikerült!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"A \"sky.cpt\" fájl nem található!\n"
+"Töltsd le a www.scummvm.org oldaláról"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"A \"sky.cpt\" fájl mérete nem megfelelõ.\n"
+"Töltsd le a www.scummvm.org oldaláról"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr "DXA átvezetõ elérhetõ, de a ScummVM zlib támogatás nincs lefordítva"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "MPEG2 átvezetõk már nem támogatottak"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "'%s' átvezetõ nem található"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"ScummVM régi játékmentést talált a Broken Sword 1 hez, ezt át kell "
+"alakítani.\n"
+"A régi játékmentés nem támogatott, ezért a játék nem töltõdik be átalakítás "
+"nélkül.\n"
+"\n"
+"Nyomj OK-t az átalakításhoz, vagy rákérdezzek ha legközelebb elindítod a "
+"játékot.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"A választott játékmentés már létezik!\n"
+"Megtartod a régi játékmentést (%s) vagy kicseréled az újra (%s)?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "A régit megtartom"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "Az újat megtartom"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "Ez a Broken Sword 1 Demo vége"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"Játékállás nem menthetõ %i slotba\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "Játék betöltés..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "Játék mentés..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"ScummVM régi játékmentést talált a Nippon Safes hez ezt át kell nevezni.\n"
+"A régi játékmentés nem támogatott, ezért a játék nem töltõdik be átnevezés "
+"nélkül..\n"
+"\n"
+"Nyomj OK-t az átalakításhoz, vagy rákérdezzek ha legközelebb elindítod a "
+"játékot.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM konvertálta az összes játékállásodat."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM kiírt néhány figyelmeztetést a konzolablakba és nem biztos hogy az "
+"összes fájlod át lett alakítva.\n"
+"\n"
+"Légyszíves jelentsd a csapatnak."
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL emulátor"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL emulátor"
+
+#: audio/mididrv.cpp:205
+#, fuzzy, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"A kiválasztott '%s' hangeszköz nem található. (Lekapcsoltad, vagy kihúztad). "
+"A következõ elérhetõ eszköz keresése..."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, fuzzy, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"A kiválasztott '%s' hangeszköz nem használható. Bõvebb információ a "
+"naplófájlban. A következõ elérhetõ eszköz keresése..."
+
+#: audio/mididrv.cpp:253
+#, fuzzy, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"Az elsõdleges '%s' hangeszköz nem található. (Lekapcsoltad, vagy kihúztad). "
+"A következõ elérhetõ eszköz keresése..."
+
+#: audio/mididrv.cpp:268
+#, fuzzy, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"Az elsõdleges '%s' hangeszköz nem használható. Bõvebb információ a "
+"naplófájlban. A következõ elérhetõ eszköz keresése..."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Nincs zene"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga Audió Emulátor"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib Emulátor"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS Emulátor (NEM TÁMOGATOTT)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 Audio Emulátor"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "MT-32 Emulátor inicializálása"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 Emulátor"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker Emulátor"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr Emulátor"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Billentyûzet kiosztás:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktív)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Globális)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Játék)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM Fõmenü"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "Balkezes mód:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~I~ndy fight controls"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Egérkurzor látszik"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Élekre illesztés"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Touch X Eltolás"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Touch Y Eltolás"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Laptop trackpad stílusu kurzor vezérlõ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Érintés balkatt, duplaérintés jobbkatt"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Érzékenység"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Képernyõ felsõ kezdõpont:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Fõképernyõ átméretezés:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Hardveres átméretezés (gyors, alacsony minõség)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Szoftveres átméretezés (jó minõség, lassú)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Eredeti (görgethetsz jobbra és balra)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Fényerõ:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Jóminõségü audió (lassabb)(újraindítás)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Leállítás tiltva"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Egér kattint-és-húz mód engedélyezve."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Egér kattint-és-húz mód letiltva."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Touchpad mód engedélyezve."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Touchpad mód letiltva."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "ScummVM bezárása"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normál (nincs átméretezés)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normál (nincs átméretezés)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "Méretarány korrekció engedélyezve"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "Méretarány korrekció letiltva"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "Aktív grafikus szûrõk:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "Ablakos mód"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normál"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Megtartott"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Eredeti"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "Jelenlegi videómód"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "Aktuális méretezés"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "Aktív filter mód: Lineáris"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "Aktív filter mód: Közelítõ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Fel"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Le"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Bal"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Jobb"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Bal katt"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Jobb katt"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zóna"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Többfunkciós"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Karakter csere"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Szöveg átugrása"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Gyors mód"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Hibakeresõ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Globális menü"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuális billentyûzet"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Billentyû kiosztás"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Ki akarsz lépni ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Videó"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Jelenlegi videómód:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Dupla érintés"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Vízszintes eltolás:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Függõleges eltolás:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Bemenet"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "GC Pad érzékenység:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "GC Pad felbontás:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Státusz:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Ismeretlen"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "DVD csatolás"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "DVD kiadás"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Szerver:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Megoszt:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Felhasználó:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Jelszó:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Hálózat inicializálás"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "SMB csatolás"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "SMB kiadás"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD csatlakoztatva"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Hiba a DVD csatlakoztatásakor"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD nincs csatolva"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Hálózat és megosztás csatlakozva"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Hálózat csatlakozva"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", hiba a megosztás csatolásakor"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", megosztás nincs csatolva"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Nincs hálózat"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "Hálózat inicializálása"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "Idõtúllépés a hálózat inicializálásakor"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "(%d) Hálózat nincs inicializálva"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Eszköztár rejtés"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Billentyûzet megjelenítés"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Hang be/ki"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Jobb katt"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Kurzor be/ki"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Szabad nézet"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Nagyítás"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Kicsinyítés"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Kapcsolódás kulcsok"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Kurzor Fel"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Kurzor Le"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Kurzor Bal"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Kurzor Jobb"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Játékállás betöltése vagy mentése?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Biztos hogy ki akarsz lépni ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Billentyûzet"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Forgatás"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "SDL meghajtó használata"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Kijelzõ"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "El akarod kezdeni az automatikus vizsgálatot ?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Jobbkatt mûvelet gomb"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "Válassz egy billentyût a 'Jobbkatt' mûvelethez"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Eszköztár rejtés gomb"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr "Válassz egy billentyût az 'Eszköztár rejtés' mûvelethez"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Nagyítás mûvelet (opcionális)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Kicsinyítés mûvelet (opcionális)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Ne felejts billentyût társítani az 'Eszköztár rejtés' mûvelethez, hogy lásd "
+"a teljes listát"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "Biztos hogy visszatérsz az indítópulthoz?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "Indítópult"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "Biztos hogy ki akarsz lépni ?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "Érintõképernyõ 'Tap Mód' - Bal katt"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "Érintõképernyõ 'Tap Mód' - Jobb katt"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "Érintõképernyõ 'Tap Mód' - Lebegõ (Nincs katt)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "Maximum Hangerõ"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "Hangerõ növelése"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "Minimum Hangerõ"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "Hangerõ csökkentése"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Játék hozzáadás"
+
+#~ msgid "Add Game..."
+#~ msgstr "Játék hozzáadás"
+
+#~ msgid ""
+#~ "Your game version has been detected using filename matching as a variant "
+#~ "of %s."
+#~ msgstr "A felismert játékverziód a használt fájlnévvel a %s egy változata."
+
+#~ msgid "If this is an original and unmodified version, please report any"
+#~ msgstr "Ha ez egy eredeti nem változtatott verzió, kérlek jelezd minden"
+
+#~ msgid "information previously printed by ScummVM to the team."
+#~ msgstr "elõzõleg kiírt információt a ScummVM csapatnak."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "%d Új játékot találtam."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Parancssori paraméter nem mûködik"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns Emulátor"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Érvénytelen mappa"
diff --git a/po/it_IT.po b/po/it_IT.po
index 1386e41973..449bc41e79 100644
--- a/po/it_IT.po
+++ b/po/it_IT.po
@@ -1,2629 +1,2771 @@
-# Italian translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Matteo 'Maff' Angelino <matteo.maff at gmail dot com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-04-24 14:46+0100\n"
-"Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n"
-"Language-Team: Italian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Italiano\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(build creata il %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Funzionalità compilate in:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Motori disponibili:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Cartella superiore"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Vai alla cartella superiore"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Su"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Annulla"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Scegli"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Chiudi"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Clic del mouse"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Mostra tastiera"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Riprogramma tasti"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Scegli un'azione da mappare"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Mappa"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Seleziona un'azione e clicca 'Mappa'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Tasto associato: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Tasto associato: nessuno"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Seleziona un'azione"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Premi il tasto da associare"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Gioco"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Breve identificatore di gioco utilizzato per il riferimento a salvataggi e "
-"per l'esecuzione del gioco dalla riga di comando"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nome:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Titolo completo del gioco"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nome:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Lingua:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Lingua del gioco. Un gioco inglese non potrà risultare tradotto in italiano"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<predefinito>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Piattaforma:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "La piattaforma per la quale il gioco è stato concepito"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Piattaf.:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafica"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "Grafica"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Ignora le impostazioni grafiche globali"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Ignora le impostazioni grafiche globali"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Audio"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Ignora le impostazioni audio globali"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Ignora le impostazioni audio globali"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Ignora le impostazioni globali di volume"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Ignora le impostazioni globali di volume"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Ignora le impostazioni MIDI globali"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Ignora le impostazioni MIDI globali"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Ignora le impostazioni MT-32 globali"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Ignora le impostazioni MT-32 globali"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Percorsi"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Perc."
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Percorso gioco:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Perc. gioco:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Percorso extra:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Specifica il percorso di ulteriori dati usati dal gioco"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Perc. extra:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Salvataggi:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Specifica dove archiviare i salvataggi"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Salvataggi:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Nessuno"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Predefinito"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Seleziona SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Seleziona la cartella contenente i file di gioco"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Seleziona la cartella di gioco aggiuntiva"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Seleziona la cartella dei salvataggi"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Questo ID di gioco è già in uso. Si prega di sceglierne un'altro."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "C~h~iudi"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Chiudi ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~I~nfo..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Informazioni su ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pzioni..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Modifica le opzioni globali di ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~G~ioca"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Esegue il gioco selezionato"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~C~arica..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Carica un salvataggio del gioco selezionato"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~A~ggiungi gioco..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Tieni premuto Shift per l'aggiunta in massa"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~M~odifica gioco..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Modifica le opzioni di gioco"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~R~imuovi gioco"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Rimuove il gioco dalla lista. I file del gioco rimarranno intatti"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~A~gg. gioco..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~M~odif. gioco..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~R~im. gioco"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Cerca nella lista dei giochi"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Cerca:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Cancella"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Carica gioco:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Carica"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Vuoi davvero eseguire il rilevatore di giochi in massa? Potrebbe aggiungere "
-"un numero enorme di giochi."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Sì"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "No"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM non ha potuto aprire la cartella specificata!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM non ha potuto trovare nessun gioco nella cartella specificata!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Scegli il gioco:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Sei sicuro di voler rimuovere questa configurazione di gioco?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr ""
-"Questo gioco non supporta il caricamento di salvataggi dalla schermata di "
-"avvio."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM non ha potuto trovare un motore in grado di eseguire il gioco "
-"selezionato!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Agg. massa..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Agg. in massa..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Agg. gioco..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Aggiungi gioco..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... progresso ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Scansione completa!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "%d cartelle analizzate..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Rilevati %d nuovi giochi..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Mai"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "ogni 5 minuti"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "ogni 10 minuti"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "ogni 15 minuti"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "ogni 30 minuti"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Nessuno"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Modalità:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Resa grafica:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Modalità di resa grafica speciali supportate da alcuni giochi"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Modalità a schermo intero"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Correzione proporzioni"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Corregge le proporzioni dei giochi 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "Undithering EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Attiva undithering nei giochi EGA che lo supportano"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Disp. preferito:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Dispositivo audio:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-"Specifica il dispositivo audio o l'emulatore della scheda audio preferiti"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr ""
-"Specifica il dispositivo di output audio o l'emulatore della scheda audio"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Disp. preferito:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Disposit. audio:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Emulatore AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib è utilizzato per la musica in molti giochi"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Frequenza:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Valori più alti restituiscono un suono di maggior qualità, ma potrebbero non "
-"essere supportati dalla tua scheda audio"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Dispositivo GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Specifica il dispositivo audio predefinito per l'output General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Non utilizzare la musica General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Utilizza il primo dispositivo disponibile"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont è supportato da alcune schede audio, Fluidsynth e Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Modalità mista AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Utilizza generazione di suono sia MIDI che AdLib"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Guadagno MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Disposit. MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Specifica il dispositivo audio predefinito per l'output Roland MT-32/LAPC1/"
-"CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 effettivo (disattiva emulazione GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Seleziona se vuoi usare il dispositivo hardware audio compatibile con Roland "
-"che è connesso al tuo computer"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 effettivo (disat.emul.GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Attiva la modalità Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Disattiva la mappatura General MIDI per i giochi con colonna sonora Roland "
-"MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Non utilizzare la musica Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Testo e voci:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Voci"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Sottotitoli"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Entrambi"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Velocità testo:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Testo e voci:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Voci"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Sub"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Entr."
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Mostra i sottotitoli e attiva le voci"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Velocità testo:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Volume musica:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Volume musica:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Disattiva audio"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Volume effetti:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volume degli effetti sonori"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Volume effetti:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Volume voci:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Volume voci:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Percorso tema:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Perc. tema:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Specifica il percorso di ulteriori dati usati dai giochi o da ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Percorso plugin:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Perc. plugin:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Varie"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Varie"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Renderer GUI:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autosalva:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autosalva:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Tasti"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Lingua GUI:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Lingua dell'interfaccia grafica di ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Devi riavviare ScummVM affinché le modifiche abbiano effetto."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Seleziona la cartella per i salvataggi"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "La cartella scelta è in sola lettura. Si prega di sceglierne un'altra."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Seleziona la cartella dei temi dell'interfaccia"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Seleziona la cartella dei file aggiuntivi"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Seleziona la cartella dei plugin"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Il tema che hai selezionato non supporta la lingua attuale. Se vuoi "
-"utilizzare questo tema devi prima cambiare la lingua."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Nessuna data salvata"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Nessun orario salvato"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Nessun tempo salvato"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Elimina"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Sei sicuro di voler eliminare questo salvataggio?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Data: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Ora: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Tempo di gioco: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Salvataggio senza titolo"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Seleziona un tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Grafica disattivata"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Grafica disattivata"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Renderer standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Renderer con antialiasing (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Con antialiasing (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Il motore non supporta il livello di debug '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Salta"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pausa"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Salta battuta"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Errore nell'esecuzione del gioco:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr ""
-"Impossibile trovare un motore in grado di eseguire il gioco selezionato"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Nessun errore"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Dati di gioco non trovati"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "ID di gioco non supportato"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Modalità colore non supportata"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Autorizzazione di lettura negata"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Autorizzazione di scrittura negata"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Il percorso non esiste"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Il percorso non è una cartella"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Il percorso non è un file"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Impossibile creare il file"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Lettura dei dati fallita"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Scrittura dati fallita"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Impossibile trovare un plugin idoneo"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Il plugin del motore non supporta i salvataggi"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Errore sconosciuto"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules verde"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules ambra"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules verde"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules ambra"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~R~ipristina"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~C~arica"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~S~alva"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pzioni"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~A~iuto"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~I~nfo"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~T~orna a elenco giochi"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~V~ai a elenco giochi"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Salva gioco:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Salva"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~nnulla"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~asti"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Modalità video attuale:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Cambia correzione proporzioni"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~P~recedenti"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~S~uccessivi"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~C~hiudi"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Comandi da tastiera comuni:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Finestra di salvataggio / caricamento"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Salta battuta"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Salta scena di intermezzo"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Spazio"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Metti in pausa"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Carica salvataggio 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Salva nella posizione 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Esci"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Invio"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Attiva / disattiva schermo intero"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Volume musica su / giù"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Testo più veloce / meno veloce"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simula clic sinistro del mouse"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simula clic destro del mouse"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Comandi da tastiera speciali:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Mostra/nascondi console"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Avvia il debugger"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Mostra consumo memoria"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Esegui in modalità veloce (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Esegui in modalità molto veloce (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Attiva / disattiva ancoraggio del mouse"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Cambia filtro grafico"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Aumenta / diminuisci dimensioni"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Cambia correzione proporzioni"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Nota che l'utilizzo di ctrl-f e"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g non è consigliato perché"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " potrebbe causare blocchi o un"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " comportamento errato del gioco."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Tessere melodie da tastiera:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Controlli principali di gioco:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Premi"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Tira"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Dai"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Apri"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Vai verso"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Prendi"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Usa"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Leggi"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Cambia personaggio"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Accendi"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Spegni"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Cammina verso"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Raccogli"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Che cos'è"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Apri"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Indossa"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Togli"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Ripara"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Sposta"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Guarda"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Parla"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Viaggio"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "A Henry / a Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "suona Do (C) minore sul bastone"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "suona Re (D) sul bastone"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "suona Mi (E) sul bastone"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "suona Fa (F) sul bastone"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "suona Sol (G) sul bastone"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "suona La (A) sul bastone"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "suona Si (B) sul bastone"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "suona Do (C) maggiore sul bastone"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Premi"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Tira"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Parla con"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Esamina"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Accendi"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Spegni"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Tasto su"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Evidenzia dialogo precedente"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Tasto giù"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Evidenzia dialogo successivo"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Cammina"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventario"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Oggetto"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Bianco e nero / colori"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Occhi"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Lingua"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Pugno"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Calcio"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Esamina"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Cursore normale"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Salva / Carica / Opzioni"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Altre opzioni di gioco:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventario:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Scorri lista verso l'alto"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Scorri lista verso il basso"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Oggetto in alto a sinistra"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Oggetto in basso a sinistra"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Oggetto in alto a destra"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Oggetto in basso a destra"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Oggetto al centro a sinistra"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Oggetto al centro a destra"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Cambio personaggio:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Secondo ragazzo"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Terzo ragazzo"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Controlli di combattimento (tastierino numerico):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Passo indietro"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Para in alto"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Para al centro"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Para in basso"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Colpisci in alto"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Colpisci al centro"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Colpisci in basso"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Questi sono i controlli quando"
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Indy è sulla sinistra. Quando è"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "sulla destra, 7, 4 e 1 sostituiscono"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "rispettivamente 9, 6 e 3."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Controlli biplano (tastierino numerico):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Vola in alto a sinistra"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Vola a sinistra"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Vola in basso a sinistra"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Vola in alto"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Vola diritto"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Vola in basso"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Vola in alto a destra"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Vola a destra"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Vola in basso a destra"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Impossibile salvare il gioco nel file:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Impossibile caricare il gioco dal file:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Gioco salvato con successo nel file:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Originariamente, a questo punto dovrebbe partire Maniac Mansion. Ma ScummVM "
-"non lo può ancora fare. Per giocarci, vai a \"Aggiungi gioco\" nel menu "
-"principale di ScummVM e seleziona la cartella \"Maniac\" all'interno della "
-"cartella di Day Of The Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "Modalità ~Z~ip attivata"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~T~ransizioni attive"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~E~ffetto acqua attivo"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Ripristina gioco:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Ripristina"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Impossibile caricare il gioco dal file:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Impossibile salvare il gioco nel file:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Impossibile salvare il gioco nel file:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Impossibile salvare il gioco nel file:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Salva gioco:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Carica gioco:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Salva gioco:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Emulatore OPL MAME"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Emulatore OPL DOSBox"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Nessuna musica"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulatore audio Amiga"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Emulatore AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Emulatore Apple II GS (NON IMPLEMENTATO)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulatore audio C64"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Avvio in corso dell'emulatore MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Emulatore MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Emulatore PC Speaker"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Emulatore IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Mappa tasti:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Attivo)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Globale)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Gioco)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "MIDI Windows"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Menu principale di ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~M~odalità mancini"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "Controlli combattimento di ~I~ndy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Mostra cursore del mouse"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Aggancia ai bordi"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Compensa X del tocco"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Compensa Y del tocco"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Utilizza il controllo del cursore stile trackpad del portatile"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Un tocco per il clic sinistro, doppio tocco per il clic destro"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensibilità"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Schermo in primo piano:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Schermo principale:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Ridimensionamento hardware (veloce, ma di bassa qualità)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Ridimensionamento software (di buona qualità, ma più lento)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Non ridimensionato (devi scorrere a sinistra e a destra)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Luminosità:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Audio ad alta qualità (più lento) (riavviare)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Disattiva spegnimento in chiusura"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Modalità touchpad attivata."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Modalità touchpad disattivata."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Modalità touchpad attivata."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Modalità touchpad disattivata."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normale (nessun ridimensionamento)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normale (no ridim.)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Cambia correzione proporzioni"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Cambia correzione proporzioni"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Cambia filtro grafico"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Resa grafica:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Conserve"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Modalità video attuale:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Su"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Giù"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Sinistra"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Destra"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Clic sinistro"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Clic destro"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zona"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multifunzione"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Cambia personaggio"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Salta testo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Modalità veloce"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menu globale"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Tastiera virtuale"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Programmatore tasti"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Sei sicuro di voler uscire?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Modalità video attuale:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Double-strike"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Underscan orizzontale:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Underscan verticale:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Input"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Sensibilità pad GC:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Accelerazione pad GC:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Stato:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Sconosciuto"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Monta DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Smonta DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Condivisione:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Nome utente:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Password:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Avvia rete"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Monta SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Smonta SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD montato con successo"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Errore nel montare il DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD non montato"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Rete attiva, condivisione montata"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Rete attiva"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", errore nel montare la condivisione"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", condivisione non montata"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Rete disattivata"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Avvio rete in corso"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Attesa per l'avvio della rete"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Rete non avviata (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Nascondi la barra degli strumenti"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Mostra tastiera"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Suono on/off"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Clic destro"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Mostra/nascondi cursore"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Osservazione libera"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Zoom avanti"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zoom indietro"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Associa tasti"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Cursore su"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Cursore giù"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Cursore a sinistra"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Cursore a destra"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Vuoi caricare o salvare il gioco?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Sei sicuro di voler uscire? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tastiera"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Rotazione"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Utilizzo del driver SDL "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Visualizza "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Vuoi eseguire una scansione automatica?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Mappa l'azione del tasto destro"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "Devi mappare un tasto per l'azione \"Tasto destro\" per giocare"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Mappa l'azione nascondi barra degli strumenti"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Devi mappare un tasto per l'azione \"Nascondi barra degli strumenti\" per "
-"giocare"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Mappa l'azione Zoom Up (opzionale)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Mappa l'azione Zoom Down (opzionale)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Non dimenticare di mappare un tasto per l'azione \"Nascondi barra degli "
-"strumenti\" per vedere l'intero inventario"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Sei sicuro di voler eliminare questo salvataggio?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Pugno"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Sei sicuro di voler uscire?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Rilevati %d nuovi giochi."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argomento della linea di comando non eseguito"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Emulatore FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Percorso non valido"
+# Italian translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Matteo 'Maff' Angelino <matteo.maff at gmail dot com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-04-24 14:46+0100\n"
+"Last-Translator: Matteo 'Maff' Angelino <matteo.maff at gmail dot com>\n"
+"Language-Team: Italian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Italiano\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(build creata il %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Funzionalità compilate in:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Motori disponibili:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Cartella superiore"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Vai alla cartella superiore"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Su"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Annulla"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Scegli"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Chiudi"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Clic del mouse"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Mostra tastiera"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Riprogramma tasti"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Scegli un'azione da mappare"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Mappa"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Seleziona un'azione e clicca 'Mappa'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Tasto associato: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Tasto associato: nessuno"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Seleziona un'azione"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Premi il tasto da associare"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Gioco"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Breve identificatore di gioco utilizzato per il riferimento a salvataggi e "
+"per l'esecuzione del gioco dalla riga di comando"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nome:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Titolo completo del gioco"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nome:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Lingua:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Lingua del gioco. Un gioco inglese non potrà risultare tradotto in italiano"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<predefinito>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Piattaforma:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "La piattaforma per la quale il gioco è stato concepito"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Piattaf.:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafica"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "Grafica"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Ignora le impostazioni grafiche globali"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Ignora le impostazioni grafiche globali"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Audio"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Ignora le impostazioni audio globali"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Ignora le impostazioni audio globali"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Ignora le impostazioni globali di volume"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Ignora le impostazioni globali di volume"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Ignora le impostazioni MIDI globali"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Ignora le impostazioni MIDI globali"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Ignora le impostazioni MT-32 globali"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Ignora le impostazioni MT-32 globali"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Percorsi"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Perc."
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Percorso gioco:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Perc. gioco:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Percorso extra:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Specifica il percorso di ulteriori dati usati dal gioco"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Perc. extra:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Salvataggi:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Specifica dove archiviare i salvataggi"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Salvataggi:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Nessuno"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Predefinito"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Seleziona SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Seleziona la cartella contenente i file di gioco"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Seleziona la cartella di gioco aggiuntiva"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Seleziona la cartella dei salvataggi"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Questo ID di gioco è già in uso. Si prega di sceglierne un'altro."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "C~h~iudi"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Chiudi ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~I~nfo..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Informazioni su ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pzioni..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Modifica le opzioni globali di ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~G~ioca"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Esegue il gioco selezionato"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~C~arica..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Carica un salvataggio del gioco selezionato"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~A~ggiungi gioco..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Tieni premuto Shift per l'aggiunta in massa"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~M~odifica gioco..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Modifica le opzioni di gioco"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~R~imuovi gioco"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Rimuove il gioco dalla lista. I file del gioco rimarranno intatti"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~A~gg. gioco..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~M~odif. gioco..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~R~im. gioco"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Cerca nella lista dei giochi"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Cerca:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Cancella"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Carica gioco:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Carica"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Vuoi davvero eseguire il rilevatore di giochi in massa? Potrebbe aggiungere "
+"un numero enorme di giochi."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Sì"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "No"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM non ha potuto aprire la cartella specificata!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM non ha potuto trovare nessun gioco nella cartella specificata!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Scegli il gioco:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Sei sicuro di voler rimuovere questa configurazione di gioco?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr ""
+"Questo gioco non supporta il caricamento di salvataggi dalla schermata di "
+"avvio."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM non ha potuto trovare un motore in grado di eseguire il gioco "
+"selezionato!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Agg. massa..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Agg. in massa..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... progresso ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Scansione completa!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "%d cartelle analizzate..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Rilevati %d nuovi giochi..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Mai"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "ogni 5 minuti"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "ogni 10 minuti"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "ogni 15 minuti"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "ogni 30 minuti"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Nessuno"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Modalità:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Resa grafica:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Modalità di resa grafica speciali supportate da alcuni giochi"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Modalità a schermo intero"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Correzione proporzioni"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Corregge le proporzioni dei giochi 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "Undithering EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Attiva undithering nei giochi EGA che lo supportano"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Disp. preferito:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Dispositivo audio:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+"Specifica il dispositivo audio o l'emulatore della scheda audio preferiti"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr ""
+"Specifica il dispositivo di output audio o l'emulatore della scheda audio"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Disp. preferito:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Disposit. audio:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Emulatore AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib è utilizzato per la musica in molti giochi"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Frequenza:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Valori più alti restituiscono un suono di maggior qualità, ma potrebbero non "
+"essere supportati dalla tua scheda audio"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Dispositivo GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Specifica il dispositivo audio predefinito per l'output General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Non utilizzare la musica General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Utilizza il primo dispositivo disponibile"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont è supportato da alcune schede audio, Fluidsynth e Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Modalità mista AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Utilizza generazione di suono sia MIDI che AdLib"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Guadagno MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Disposit. MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Specifica il dispositivo audio predefinito per l'output Roland MT-32/LAPC1/"
+"CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 effettivo (disattiva emulazione GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Seleziona se vuoi usare il dispositivo hardware audio compatibile con Roland "
+"che è connesso al tuo computer"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 effettivo (disat.emul.GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Attiva la modalità Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Disattiva la mappatura General MIDI per i giochi con colonna sonora Roland "
+"MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Non utilizzare la musica Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Testo e voci:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Voci"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Sottotitoli"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Entrambi"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Velocità testo:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Testo e voci:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Voci"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Sub"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Entr."
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Mostra i sottotitoli e attiva le voci"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Velocità testo:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Volume musica:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Volume musica:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Disattiva audio"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Volume effetti:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volume degli effetti sonori"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Volume effetti:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Volume voci:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Volume voci:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Percorso tema:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Perc. tema:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Specifica il percorso di ulteriori dati usati dai giochi o da ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Percorso plugin:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Perc. plugin:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Varie"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Varie"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Renderer GUI:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autosalva:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autosalva:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Tasti"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Lingua GUI:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Lingua dell'interfaccia grafica di ScummVM"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Devi riavviare ScummVM affinché le modifiche abbiano effetto."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Seleziona la cartella per i salvataggi"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "La cartella scelta è in sola lettura. Si prega di sceglierne un'altra."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Seleziona la cartella dei temi dell'interfaccia"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Seleziona la cartella dei file aggiuntivi"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Seleziona la cartella dei plugin"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Il tema che hai selezionato non supporta la lingua attuale. Se vuoi "
+"utilizzare questo tema devi prima cambiare la lingua."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Nessuna data salvata"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Nessun orario salvato"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Nessun tempo salvato"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Elimina"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Sei sicuro di voler eliminare questo salvataggio?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Data: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Ora: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Tempo di gioco: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Salvataggio senza titolo"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Seleziona un tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Grafica disattivata"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Grafica disattivata"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Renderer standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Renderer con antialiasing (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Con antialiasing (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Il motore non supporta il livello di debug '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Salta"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pausa"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Salta battuta"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Errore nell'esecuzione del gioco:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr ""
+"Impossibile trovare un motore in grado di eseguire il gioco selezionato"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Nessun errore"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Dati di gioco non trovati"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "ID di gioco non supportato"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Modalità colore non supportata"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Autorizzazione di lettura negata"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Autorizzazione di scrittura negata"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Il percorso non esiste"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Il percorso non è una cartella"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Il percorso non è un file"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Impossibile creare il file"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Lettura dei dati fallita"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Scrittura dati fallita"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Impossibile trovare un plugin idoneo"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Il plugin del motore non supporta i salvataggi"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Errore sconosciuto"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules verde"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules ambra"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules verde"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules ambra"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~R~ipristina"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~C~arica"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~S~alva"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pzioni"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~A~iuto"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~I~nfo"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~T~orna a elenco giochi"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~V~ai a elenco giochi"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Salva gioco:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Salva"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~nnulla"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~asti"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Modalità video attuale:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Cambia correzione proporzioni"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Sei sicuro di voler uscire? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Sei sicuro di voler uscire? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Esci"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Seleziona un tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~P~recedenti"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~S~uccessivi"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~C~hiudi"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Voci"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Sottotitoli"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Sottotitoli"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Voci"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Comandi da tastiera comuni:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Finestra di salvataggio / caricamento"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Salta battuta"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Salta scena di intermezzo"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Spazio"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Metti in pausa"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Carica salvataggio 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Salva nella posizione 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Invio"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Attiva / disattiva schermo intero"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Volume musica su / giù"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Testo più veloce / meno veloce"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simula clic sinistro del mouse"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simula clic destro del mouse"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Comandi da tastiera speciali:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Mostra/nascondi console"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Avvia il debugger"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Mostra consumo memoria"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Esegui in modalità veloce (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Esegui in modalità molto veloce (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Attiva / disattiva ancoraggio del mouse"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Cambia filtro grafico"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Aumenta / diminuisci dimensioni"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Cambia correzione proporzioni"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Nota che l'utilizzo di ctrl-f e"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g non è consigliato perché"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " potrebbe causare blocchi o un"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " comportamento errato del gioco."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Tessere melodie da tastiera:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Controlli principali di gioco:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Premi"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Tira"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Dai"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Apri"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Vai verso"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Prendi"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Usa"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Leggi"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Cambia personaggio"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Accendi"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Spegni"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Cammina verso"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Raccogli"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Che cos'è"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Apri"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Indossa"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Togli"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Ripara"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Sposta"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Guarda"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Parla"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Viaggio"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "A Henry / a Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "suona Do (C) minore sul bastone"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "suona Re (D) sul bastone"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "suona Mi (E) sul bastone"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "suona Fa (F) sul bastone"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "suona Sol (G) sul bastone"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "suona La (A) sul bastone"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "suona Si (B) sul bastone"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "suona Do (C) maggiore sul bastone"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Premi"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Tira"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Parla con"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Esamina"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Accendi"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Spegni"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Tasto su"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Evidenzia dialogo precedente"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Tasto giù"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Evidenzia dialogo successivo"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Cammina"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventario"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Oggetto"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Bianco e nero / colori"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Occhi"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Lingua"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Pugno"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Calcio"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Esamina"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Cursore normale"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Salva / Carica / Opzioni"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Altre opzioni di gioco:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventario:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Scorri lista verso l'alto"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Scorri lista verso il basso"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Oggetto in alto a sinistra"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Oggetto in basso a sinistra"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Oggetto in alto a destra"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Oggetto in basso a destra"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Oggetto al centro a sinistra"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Oggetto al centro a destra"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Cambio personaggio:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Secondo ragazzo"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Terzo ragazzo"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Controlli di combattimento (tastierino numerico):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Passo indietro"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Para in alto"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Para al centro"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Para in basso"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Colpisci in alto"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Colpisci al centro"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Colpisci in basso"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Questi sono i controlli quando"
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Indy è sulla sinistra. Quando è"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "sulla destra, 7, 4 e 1 sostituiscono"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "rispettivamente 9, 6 e 3."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Controlli biplano (tastierino numerico):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Vola in alto a sinistra"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Vola a sinistra"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Vola in basso a sinistra"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Vola in alto"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Vola diritto"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Vola in basso"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Vola in alto a destra"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Vola a destra"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Vola in basso a destra"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Impossibile salvare il gioco nel file:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Impossibile caricare il gioco dal file:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Gioco salvato con successo nel file:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Originariamente, a questo punto dovrebbe partire Maniac Mansion. Ma ScummVM "
+"non lo può ancora fare. Per giocarci, vai a \"Aggiungi gioco\" nel menu "
+"principale di ScummVM e seleziona la cartella \"Maniac\" all'interno della "
+"cartella di Day Of The Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Modalità ~Z~ip attivata"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~T~ransizioni attive"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "Menu principale di ScummVM"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~E~ffetto acqua attivo"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Ripristina gioco:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Ripristina"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Impossibile caricare il gioco dal file:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Impossibile salvare il gioco nel file:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Impossibile salvare il gioco nel file:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Impossibile salvare il gioco nel file:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Salva gioco:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Carica gioco:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Salva gioco:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Emulatore OPL MAME"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Emulatore OPL DOSBox"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Nessuna musica"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulatore audio Amiga"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Emulatore AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Emulatore Apple II GS (NON IMPLEMENTATO)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulatore audio C64"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Avvio in corso dell'emulatore MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Emulatore MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Emulatore PC Speaker"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Emulatore IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Mappa tasti:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Attivo)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Globale)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Gioco)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "MIDI Windows"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Menu principale di ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~M~odalità mancini"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "Controlli combattimento di ~I~ndy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Mostra cursore del mouse"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Aggancia ai bordi"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Compensa X del tocco"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Compensa Y del tocco"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Utilizza il controllo del cursore stile trackpad del portatile"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Un tocco per il clic sinistro, doppio tocco per il clic destro"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensibilità"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Schermo in primo piano:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Schermo principale:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Ridimensionamento hardware (veloce, ma di bassa qualità)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Ridimensionamento software (di buona qualità, ma più lento)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Non ridimensionato (devi scorrere a sinistra e a destra)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Luminosità:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Audio ad alta qualità (più lento) (riavviare)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Disattiva spegnimento in chiusura"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Modalità touchpad attivata."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Modalità touchpad disattivata."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Modalità touchpad attivata."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Modalità touchpad disattivata."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Chiudi ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "MIDI Windows"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normale (nessun ridimensionamento)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normale (no ridim.)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Cambia correzione proporzioni"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Cambia correzione proporzioni"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Cambia filtro grafico"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Resa grafica:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Conserve"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Modalità video attuale:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Su"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Giù"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Sinistra"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Destra"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Clic sinistro"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Clic destro"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zona"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multifunzione"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Cambia personaggio"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Salta testo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Modalità veloce"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menu globale"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Tastiera virtuale"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Programmatore tasti"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Sei sicuro di voler uscire?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Modalità video attuale:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Double-strike"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Underscan orizzontale:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Underscan verticale:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Input"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Sensibilità pad GC:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Accelerazione pad GC:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Stato:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Sconosciuto"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Monta DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Smonta DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Condivisione:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Nome utente:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Password:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Avvia rete"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Monta SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Smonta SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD montato con successo"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Errore nel montare il DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD non montato"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Rete attiva, condivisione montata"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Rete attiva"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", errore nel montare la condivisione"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", condivisione non montata"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Rete disattivata"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Avvio rete in corso"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Attesa per l'avvio della rete"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Rete non avviata (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Nascondi la barra degli strumenti"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Mostra tastiera"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Suono on/off"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Clic destro"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Mostra/nascondi cursore"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Osservazione libera"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Zoom avanti"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zoom indietro"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Associa tasti"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Cursore su"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Cursore giù"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Cursore a sinistra"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Cursore a destra"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Vuoi caricare o salvare il gioco?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Sei sicuro di voler uscire? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tastiera"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Rotazione"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Utilizzo del driver SDL "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Visualizza "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Vuoi eseguire una scansione automatica?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Mappa l'azione del tasto destro"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "Devi mappare un tasto per l'azione \"Tasto destro\" per giocare"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Mappa l'azione nascondi barra degli strumenti"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Devi mappare un tasto per l'azione \"Nascondi barra degli strumenti\" per "
+"giocare"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Mappa l'azione Zoom Up (opzionale)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Mappa l'azione Zoom Down (opzionale)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Non dimenticare di mappare un tasto per l'azione \"Nascondi barra degli "
+"strumenti\" per vedere l'intero inventario"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Sei sicuro di voler eliminare questo salvataggio?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Pugno"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Sei sicuro di voler uscire?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Agg. gioco..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Aggiungi gioco..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Rilevati %d nuovi giochi."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argomento della linea di comando non eseguito"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "Emulatore FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Percorso non valido"
diff --git a/po/module.mk b/po/module.mk
index d2d6127321..ef3e0589fc 100644
--- a/po/module.mk
+++ b/po/module.mk
@@ -2,7 +2,7 @@ POTFILE := $(srcdir)/po/scummvm.pot
POFILES := $(wildcard $(srcdir)/po/*.po)
updatepot:
- xgettext -f $(srcdir)/po/POTFILES -D $(srcdir) -d scummvm --c++ -k_ -k_s -k_c:1,2c -k_sc:1,2c \
+ xgettext -f $(srcdir)/po/POTFILES -D $(srcdir) -d scummvm --c++ -k_ -k_s -k_c:1,2c -k_sc:1,2c --add-comments=I18N\
-kDECLARE_TRANSLATION_ADDITIONAL_CONTEXT:1,2c -o $(POTFILE) \
--copyright-holder="ScummVM Team" --package-name=ScummVM \
--package-version=$(VERSION) --msgid-bugs-address=scummvm-devel@lists.sf.net -o $(POTFILE)_
diff --git a/po/nb_NO.po b/po/nb_NO.po
index eb895ed8c4..4deb36f65c 100644
--- a/po/nb_NO.po
+++ b/po/nb_NO.po
@@ -1,2625 +1,2767 @@
-# Norwegian (Bokmaal) translation for ScummVM.
-# Copyright (C) 2010 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Einar Johan T. Sømåen <einarjohants@gmail.com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-04-25 22:56+0100\n"
-"Last-Translator: Einar Johan T. Sømåen <einarjohants@gmail.com>\n"
-"Language-Team: somaen <einarjohants@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Norsk (bokmaal)\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Poedit-Language: Norsk Bokmål\n"
-"X-Poedit-Country: NORWAY\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(bygd den %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Funksjoner innkompilert:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Tilgjengelige motorer:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Gå tilbake"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Gå til forrige mappenivå"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Gå tilbake"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Velg"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Lukk"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Musklikk"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Vis tastatur"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Omkoble taster"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Velg en handling for kobling"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Koble"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Velg en handling, og trykk 'Koble'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Koblet tast : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Koblet tast: ingen"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Vennligst velg en handling"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Trykk tasten som skal kobles"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Spill"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Kort spill-identifikator, brukt for å referere til lagrede spill, og å kjøre "
-"spillet fra kommandolinjen"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Navn:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Full spilltittel"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Navn:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Språk:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Spillets språk. Dette vil ikke gjøre din spanske spillversjon om til engelsk "
-"versjon"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<standard>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plattform spillet opprinnelig ble designet for"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafikk"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafikkinstillinger"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafikkinstillinger"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Lyd"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Overstyr globale lydinstillinger"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Overstyr globale lydinstillinger"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Overstyr globale voluminstillinger"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Overstyr globale voluminstillinger"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI-instillinger"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI-instillinger"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32-instillinger"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32-instillinger"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Sti"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Sti"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Spillsti:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Spillsti:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Ekstrasti:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Bestemmer sti til ytterligere data brukt av spillet"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Ekstrasti:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Lagringssti:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Bestemmer sti til lagrede spill"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Lagringssti:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Standard"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Velg SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Velg mappe med spilldata"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Velg mappe med ytterligere data"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Velg mappe for lagrede spill"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Denne spill-IDen er allerede i bruk. Vennligst velg en annen."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~A~vslutt"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Avslutt ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~O~m..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Om ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~V~alg..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Endre globale ScummVM-innstillinger"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tart"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Start valgt spill"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~Å~pne..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Åpne lagret spill for det valgte spillet"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~L~egg til spill..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Hold Shift for å legge til flere"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~R~ediger spill..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Endre spillinstillinger"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~F~jern spill"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Fjern spill fra listen. Spilldataene forblir intakte"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~L~egg til spill..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~R~ediger spill..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~F~jern spill"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Søk i spilliste"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Søk:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Tøm verdi"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Åpne spill:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Åpne"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Vil du virkelig kjøre flerspill-finneren? Dette kan potensielt legge til et "
-"stort antall spill."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ja"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nei"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM kunne ikke åpne den valgte mappen!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM kunne ikke finne noe spill i den valgte mappen!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Velg spill:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Vil du virkelig fjerne denne spillkonfigurasjonen?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Dette spillet støtter ikke lasting av spill fra oppstarteren."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM kunne ikke finne noen motor som kunne kjøre det valgte spillet!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Legg til flere..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Legg til flere..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Legg til spill..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Legg til spill..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... fremdrift ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Søk fullført!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Sjekket %d mapper ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Fant %d nye spill ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Aldri"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "hvert 5. min"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "hvert 10. min"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "hvert 15. min"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "hvert 30. min"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafikkmodus:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Tegnemodus:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Spesiel dithering-modus støttet av enkelte spill"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Fullskjermsmodus"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Aspekt-rate korrigering"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Korriger aspekt-rate for 320x200-spill"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA av-dithering"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Slår av dithering i EGA-spill som støtter det."
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Foretrukket enhet:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Musikkenhet:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Velger foretrukket lydenhet eller lydkort-emulator"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Velger ut-lydenhet eller lydkortemulator"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Foretrukket enh.:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Musikkenhet:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib-emulator:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib brukes til musikk i mange spill"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Utrate:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Høyere verdier gir bedre lydkvalitet, men støttes kanskje ikke av ditt "
-"lydkort "
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM-enhet:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Velger standard lydenhet for General MIDI-utdata"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Ikke bruk General MIDI-musikk"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Bruk første tilgjengelige enhet"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont støttes ikke av enkelte lydkort, FluidSynth og Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Mikset AdLib/MIDI-modus"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Bruk både MIDI- og AdLib- lydgenerering"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI gain:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "MT-32 Enhet:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr "Velger standard lydenhet for Roland MT-32/LAPC1/CM32I/CM64-avspilling"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Velg hvis du har et ekte Roland-kompatible lydkort tilkoblet maskinen, og "
-"vil bruke dette."
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Aktiver Roland GS-modus"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Slå av General MIDI-kobling for spill som har Roland MT-32-lydspor"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Ikke bruk Roland MT-32-musikk"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Tekst og Tale:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Tale"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Undertekster"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Begge"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Teksthastighet:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Tekst og Tale:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Tale"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Tekst"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Begge"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Vis undertekster, og spill av tale"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Underteksthastighet:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Musikkvolum:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musikkvolum:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Demp alle"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Lydeffektvolum:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volum for spesielle lydeffekter"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Lydeffektvolum:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Talevolum:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Talevolum:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Temasti:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Temasti:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Velger sti for ytterligere data brukt av alle spill eller ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Pluginsti:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Pluginsti:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Div"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Div"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI-tegner:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autolagre:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autolagre:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Taster"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "GUI-språk:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Språk i ScummVM-GUIet"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du må omstarte ScummVM for at endringene skal skje. "
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Velg mappe for lagrede spill"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "Den valgte mappen kan ikke skrives til. Vennligst velg en annen."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Velg mappe for GUI-temaer"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Velg mappe for ytterligere filer"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Velg mappe for plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du valgte støtter ikke det aktive språket. Hvis du vil bruke dette "
-"temaet, må du bytte til et annet språk først."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Ingen dato lagret"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Ingen tid lagret"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Ingen spilltid lagret"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Slett"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Vil du virkelig slette dette lagrede spillet?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Dato: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Tid: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Spilltid: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Ikke navngitt spilltilstand"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Velg et tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Deaktivert GFX"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Deaktivert GFX"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard Tegner (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Antialiased Tegner (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Antialiased (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Motoren støtter ikke debug-nivå '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Meny"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Hopp over"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pause"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Hopp over linje"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Problem ved kjøring av spill:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Kunne ikke finne noen motor som kunne kjøre det valgte spillet"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Ingen feil"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Spilldata ikke funnet"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Spill-ID ikke støttet"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Ustøttet fargemodus"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Lesetilgang nektet"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Skrivetilgang nektet"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Stien eksisterer ikke"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Stien er ikke en mappe"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Stien er ikke en fil"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Kan ikke opprette fil"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Lesing av data feilet"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Dataskriving feilet"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Kunne ikke finne en passende engine-plugin"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Spillmotor-plugin støtter ikke lagrede tilstander"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Ukjent feil"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Grønn"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Oransje"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Grønn"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Oransje"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~F~ortsett"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~Å~pne"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~L~agre"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~V~alg"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~H~jelp"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~O~m"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Lagret spill:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Lagre"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~vbryt"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~aster"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Nåværende videomodus:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Veksle aspekt-rate korrigering"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~F~orrige"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~N~este"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~L~ukk"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Vanlige tastaturkommandoer:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Lagre- / åpne-dialog"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Hopp over tekstlinje"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Hopp over cutscene"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Space"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pause spill"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Åpne spilltilstand 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Lagre spilltilstand 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Avslutt"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Veksle fullskjerm"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Musikkvolum opp/ned"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Tekstfart saktere/raskere"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simuler venstre mustast"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simuler høyre mustast"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Spesielle tastaturkommandoer:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Vis / Skjul konsollen"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Start debuggeren"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Vis minneforbruk"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Kjør i rask modus (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Kjør i virkelig rask modus (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Veksle muslåsing"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Bytt grafikkfiltre"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Øk / Minsk skaleringsfaktor"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Veksle aspekt-rate korrigering"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Merk at å bruke ctrl-f og"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g anbefales ikke, siden"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " de kan forårsake kræsj, eller"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " feilaktig spilloppførsel."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Spinne drafts på tastaturet:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Hovedkontroller for spill:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Dytt"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Gi"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Åpne"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Få"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Bruk"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Les"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Bytt unge"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Slå på"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Slå av"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Plukk opp"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Hva er"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Lås opp"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Ta på tøy"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Ta av tøy"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Fiks"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Bytt"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Kikk"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Snakk"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Reis"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Til Henry / Til Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "Spill C moll på distaffen"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "spill D på distaffen"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "spill E på distaffen"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "spill F på distaffen"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "spill G på distaffen"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "spill A på distaffen"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "spill H på distaffen"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "spill C dur på distaffen"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Dytt"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Snakk til"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Se på"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Slå på"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Slå av"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Ned-tast"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Merk forrige dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Opp-tast"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Merk neste dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Gå"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventar"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Gjenstand"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Svart/Hvitt / Farger"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Øyne"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Tunge"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Slå"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Spark"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Undersøk"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Vanlig muspeker"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Lagre / Åpne / Valg"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Andre spillkontroller"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventar:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Bla liste opp"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Bla liste ned"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Øvre venstre gjenstand"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Nedre venstre gjenstand"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Øvre høyre gjenstand"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Nedre høyre gjenstand"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Midtre venstre gjenstand"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Midtre høyre gjenstand"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Bytte av karakterer:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Andre unge"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tredje unge"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Kampkontroller (talltastatur)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Bakoversteg"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Høy blokk"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Mid-blokk"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Lav blokk"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Slå høyt"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Slå midje"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Slå lavt"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Gjelder når Indy er til venstre."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Når Indy er til høyre,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "Byttes 7, 4, og 1 med"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "henholdsvis 9, 6, og 3."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Flykontroller (talltastatur)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Fly til øvre venstre"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Fly til venstre"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Fly til nedre venstre"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Fly oppover"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Fly rett"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Fly ned"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Fly til øvre høyre"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Fly til høyre"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Fly til nedre høyre"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Klarte ikke lagre spilltilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Klarte ikke åpne spilltilstand fra fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Fullførte lagring av spilltilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Vanligvis, ville Maniac Mansion ha startet nå. Men ScummVM støtter ikke det "
-"ennå. Så, for å spille Maniac Mansion, gå til 'Legg til spill' i ScummVM-"
-"hovedmenyen og velg 'Maniac'-undermappa i Tentacle-mappa."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ipmodus aktivert"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~O~verganger aktivert"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~V~anneffekt aktivert"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Gjennopprett spill:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Gjenopprett"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Klarte ikke åpne spilltilstand fra fil:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Klarte ikke lagre spilltilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Klarte ikke lagre spilltilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Klarte ikke lagre spilltilstand til fil:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Lagret spill:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Åpne spill:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Lagret spill:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL emulator"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL emulator"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Ingen musikk"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga Lydemulator"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib Emulator"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS Emulator (IKKE IMPLEMENTERT)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 Lydemulator"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Initialiserer MT-32-Emulator"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 Emulator"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker Emulator"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr Emulator"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Tastkobling:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktiv)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Spill)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM Hovedmeny"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~V~enstrehendt modus"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~I~ndy kampkontroller"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Vis muspeker"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Hopp til kanter"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Gå til X-posisjon"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Gå til Y-posisjon"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Bruk bærbar trackpad-stil muspekerkontroll"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Tap for venstreklikk, dobbelt-tap for høyreklikk"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Følsomhet"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Skalering for øvre skjerm:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Hovedskjermsskalering:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Maskinvareskalering (rask, men lav kvalitet)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Programvareskalering (god kvalitet, men tregere)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Uskalert (du må scrolle til venstre og høyre)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Lysstyrke:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Høy lydkvalitet (tregere) (omstart)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Deaktiver strømsparing"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Touchpad-modus aktivert."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Touchpad-modus deaktivert."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Touchpad-modus aktivert."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Touchpad-modus deaktivert."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (ingen skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Veksle aspekt-rate korrigering"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Veksle aspekt-rate korrigering"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Bytt grafikkfiltre"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Tegnemodus:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Bevar"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Nåværende videomodus:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Opp"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Ned"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Venstre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Høyre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Venstreklikk"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Høyreklikk"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Sone"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multifunksjon"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Bytt karakter"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Hopp over tekst"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Rask modus"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Global meny"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuelt tastatur"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Tastkobler"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Vil du avslutte?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Nåværende videomodus:"
-
-#: backends/platform/wii/options.cpp:56
-#, fuzzy
-msgid "Double-strike"
-msgstr "Doble linjer"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Horisontal underscan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Vertikal underscan"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Input"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "GC Pad-følsomhet:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "GC Pad-aksellerasjon:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Ukjent"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Monter DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Løs ut DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Delt Ressurs:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Brukernavn:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Passord:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Init nettverk"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Monter SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Løs ut SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD montering fullført"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Feil under montering av DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ikke montert"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Nettverket er oppe, delt ressurs montert"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Nettverket er oppe"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", feil under montering av den delte ressursen"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", delt ressurs ikke montert"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Nettverket er nede"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Initialiserer nettverk"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Timeout under initialisering av nettverk"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Nettverk ikke initialisert (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Skjul verktøylinje"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Vis tastatur"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Lyd av/på"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Høyreklikk"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Vis/Skjul muspeker"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Frikikking"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Zoom opp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zoom ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Koble taster"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Peker opp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Peker ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Peker venstre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Peker høyre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Vil du åpne eller lagre spillet?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Er du sikker på at du vil avslutte ?"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Roter"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Bruk SDL-driver"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Skjerm"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Vil du utføre et automatisk søk?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Koble handling til høyreklikk"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Du må koble en tast til handlingen 'Høyreklikk' for å spille dette spillet"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Koble skjul-verktøylinje-handlingen"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Du må koble en tast til 'Skjul verktøylinje'-handlingen for å spille dette "
-"spillet"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Koble handlingen Zoom Opp (valgfritt)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Koble handlingen Zoom Ned (valgfritt)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Ikke glem å koble en tast til handlingen 'Skjul verktøylinje' for å se hele "
-"inventaret"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Vil du virkelig slette dette lagrede spillet?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Slå"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Vil du avslutte?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Oppdaget %d nye spill."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Kommandolinjeargument ikke behandlet"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns Emulator"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ugyldig sti"
+# Norwegian (Bokmaal) translation for ScummVM.
+# Copyright (C) 2010 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Einar Johan T. Sømåen <einarjohants@gmail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-04-25 22:56+0100\n"
+"Last-Translator: Einar Johan T. Sømåen <einarjohants@gmail.com>\n"
+"Language-Team: somaen <einarjohants@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Norsk (bokmaal)\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Poedit-Language: Norsk Bokmål\n"
+"X-Poedit-Country: NORWAY\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(bygd den %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Funksjoner innkompilert:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Tilgjengelige motorer:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Gå tilbake"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Gå til forrige mappenivå"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Gå tilbake"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Velg"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Lukk"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Musklikk"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Vis tastatur"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Omkoble taster"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Velg en handling for kobling"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Koble"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Velg en handling, og trykk 'Koble'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Koblet tast : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Koblet tast: ingen"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Vennligst velg en handling"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Trykk tasten som skal kobles"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Spill"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kort spill-identifikator, brukt for å referere til lagrede spill, og å kjøre "
+"spillet fra kommandolinjen"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Navn:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Full spilltittel"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Navn:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Språk:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Spillets språk. Dette vil ikke gjøre din spanske spillversjon om til engelsk "
+"versjon"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<standard>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plattform spillet opprinnelig ble designet for"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafikk"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafikkinstillinger"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafikkinstillinger"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Lyd"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Overstyr globale lydinstillinger"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Overstyr globale lydinstillinger"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Overstyr globale voluminstillinger"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Overstyr globale voluminstillinger"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI-instillinger"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI-instillinger"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32-instillinger"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32-instillinger"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Sti"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Sti"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Spillsti:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Spillsti:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Ekstrasti:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Bestemmer sti til ytterligere data brukt av spillet"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Ekstrasti:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Lagringssti:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Bestemmer sti til lagrede spill"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Lagringssti:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Standard"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Velg SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Velg mappe med spilldata"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Velg mappe med ytterligere data"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Velg mappe for lagrede spill"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Denne spill-IDen er allerede i bruk. Vennligst velg en annen."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~A~vslutt"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Avslutt ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~O~m..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Om ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~V~alg..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Endre globale ScummVM-innstillinger"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tart"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Start valgt spill"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~Å~pne..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Åpne lagret spill for det valgte spillet"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~L~egg til spill..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Hold Shift for å legge til flere"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~R~ediger spill..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Endre spillinstillinger"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~F~jern spill"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Fjern spill fra listen. Spilldataene forblir intakte"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~L~egg til spill..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~R~ediger spill..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~F~jern spill"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Søk i spilliste"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Søk:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Tøm verdi"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Åpne spill:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Åpne"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Vil du virkelig kjøre flerspill-finneren? Dette kan potensielt legge til et "
+"stort antall spill."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ja"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nei"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM kunne ikke åpne den valgte mappen!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM kunne ikke finne noe spill i den valgte mappen!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Velg spill:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Vil du virkelig fjerne denne spillkonfigurasjonen?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Dette spillet støtter ikke lasting av spill fra oppstarteren."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM kunne ikke finne noen motor som kunne kjøre det valgte spillet!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Legg til flere..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Legg til flere..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... fremdrift ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Søk fullført!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Sjekket %d mapper ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Fant %d nye spill ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Aldri"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "hvert 5. min"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "hvert 10. min"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "hvert 15. min"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "hvert 30. min"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafikkmodus:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Tegnemodus:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Spesiel dithering-modus støttet av enkelte spill"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Fullskjermsmodus"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Aspekt-rate korrigering"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Korriger aspekt-rate for 320x200-spill"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA av-dithering"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Slår av dithering i EGA-spill som støtter det."
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Foretrukket enhet:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Musikkenhet:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Velger foretrukket lydenhet eller lydkort-emulator"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Velger ut-lydenhet eller lydkortemulator"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Foretrukket enh.:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Musikkenhet:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib-emulator:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib brukes til musikk i mange spill"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Utrate:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Høyere verdier gir bedre lydkvalitet, men støttes kanskje ikke av ditt "
+"lydkort "
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM-enhet:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Velger standard lydenhet for General MIDI-utdata"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Ikke bruk General MIDI-musikk"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Bruk første tilgjengelige enhet"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont støttes ikke av enkelte lydkort, FluidSynth og Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Mikset AdLib/MIDI-modus"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Bruk både MIDI- og AdLib- lydgenerering"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI gain:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "MT-32 Enhet:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr "Velger standard lydenhet for Roland MT-32/LAPC1/CM32I/CM64-avspilling"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Velg hvis du har et ekte Roland-kompatible lydkort tilkoblet maskinen, og "
+"vil bruke dette."
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Aktiver Roland GS-modus"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Slå av General MIDI-kobling for spill som har Roland MT-32-lydspor"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Ikke bruk Roland MT-32-musikk"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Tekst og Tale:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Tale"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Undertekster"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Begge"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Teksthastighet:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Tekst og Tale:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Tale"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Tekst"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Begge"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Vis undertekster, og spill av tale"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Underteksthastighet:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Musikkvolum:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musikkvolum:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Demp alle"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Lydeffektvolum:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volum for spesielle lydeffekter"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Lydeffektvolum:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Talevolum:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Talevolum:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Temasti:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Temasti:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Velger sti for ytterligere data brukt av alle spill eller ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Pluginsti:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Pluginsti:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Div"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Div"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI-tegner:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autolagre:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autolagre:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Taster"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "GUI-språk:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Språk i ScummVM-GUIet"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Du må omstarte ScummVM for at endringene skal skje. "
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Velg mappe for lagrede spill"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "Den valgte mappen kan ikke skrives til. Vennligst velg en annen."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Velg mappe for GUI-temaer"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Velg mappe for ytterligere filer"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Velg mappe for plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du valgte støtter ikke det aktive språket. Hvis du vil bruke dette "
+"temaet, må du bytte til et annet språk først."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Ingen dato lagret"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Ingen tid lagret"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Ingen spilltid lagret"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Slett"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Vil du virkelig slette dette lagrede spillet?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Dato: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Tid: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Spilltid: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Ikke navngitt spilltilstand"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Velg et tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Deaktivert GFX"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Deaktivert GFX"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard Tegner (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Antialiased Tegner (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Antialiased (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Motoren støtter ikke debug-nivå '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Meny"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Hopp over"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pause"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Hopp over linje"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Problem ved kjøring av spill:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Kunne ikke finne noen motor som kunne kjøre det valgte spillet"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Ingen feil"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Spilldata ikke funnet"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Spill-ID ikke støttet"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Ustøttet fargemodus"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Lesetilgang nektet"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Skrivetilgang nektet"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Stien eksisterer ikke"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Stien er ikke en mappe"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Stien er ikke en fil"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Kan ikke opprette fil"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Lesing av data feilet"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Dataskriving feilet"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Kunne ikke finne en passende engine-plugin"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Spillmotor-plugin støtter ikke lagrede tilstander"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Ukjent feil"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Grønn"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Oransje"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Grønn"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Oransje"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~F~ortsett"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~Å~pne"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~L~agre"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~V~alg"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~H~jelp"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~O~m"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~T~ilbake til oppstarter"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~T~ilbake til oppstarter"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Lagret spill:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Lagre"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~vbryt"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~aster"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Nåværende videomodus:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Veksle aspekt-rate korrigering"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Er du sikker på at du vil avslutte ?"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Er du sikker på at du vil avslutte ?"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Avslutt"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Velg et tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~F~orrige"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~N~este"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~L~ukk"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Tale"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Undertekster"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Undertekster"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Tale"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Vanlige tastaturkommandoer:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Lagre- / åpne-dialog"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Hopp over tekstlinje"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Hopp over cutscene"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Space"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pause spill"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Åpne spilltilstand 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Lagre spilltilstand 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Veksle fullskjerm"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Musikkvolum opp/ned"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Tekstfart saktere/raskere"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simuler venstre mustast"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simuler høyre mustast"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Spesielle tastaturkommandoer:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Vis / Skjul konsollen"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Start debuggeren"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Vis minneforbruk"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Kjør i rask modus (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Kjør i virkelig rask modus (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Veksle muslåsing"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Bytt grafikkfiltre"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Øk / Minsk skaleringsfaktor"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Veksle aspekt-rate korrigering"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Merk at å bruke ctrl-f og"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g anbefales ikke, siden"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " de kan forårsake kræsj, eller"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " feilaktig spilloppførsel."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Spinne drafts på tastaturet:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Hovedkontroller for spill:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Dytt"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Gi"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Åpne"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Få"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Bruk"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Les"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Bytt unge"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Slå på"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Slå av"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Plukk opp"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Hva er"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Lås opp"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Ta på tøy"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Ta av tøy"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Fiks"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Bytt"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Kikk"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Snakk"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Reis"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Til Henry / Til Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "Spill C moll på distaffen"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "spill D på distaffen"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "spill E på distaffen"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "spill F på distaffen"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "spill G på distaffen"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "spill A på distaffen"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "spill H på distaffen"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "spill C dur på distaffen"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Dytt"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Snakk til"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Se på"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Slå på"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Slå av"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Ned-tast"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Merk forrige dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Opp-tast"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Merk neste dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Gå"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventar"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Gjenstand"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Svart/Hvitt / Farger"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Øyne"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Tunge"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Slå"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Spark"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Undersøk"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Vanlig muspeker"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Lagre / Åpne / Valg"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Andre spillkontroller"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventar:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Bla liste opp"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Bla liste ned"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Øvre venstre gjenstand"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Nedre venstre gjenstand"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Øvre høyre gjenstand"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Nedre høyre gjenstand"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Midtre venstre gjenstand"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Midtre høyre gjenstand"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Bytte av karakterer:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Andre unge"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tredje unge"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Kampkontroller (talltastatur)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Bakoversteg"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Høy blokk"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Mid-blokk"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Lav blokk"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Slå høyt"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Slå midje"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Slå lavt"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Gjelder når Indy er til venstre."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Når Indy er til høyre,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "Byttes 7, 4, og 1 med"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "henholdsvis 9, 6, og 3."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Flykontroller (talltastatur)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Fly til øvre venstre"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Fly til venstre"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Fly til nedre venstre"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Fly oppover"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Fly rett"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Fly ned"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Fly til øvre høyre"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Fly til høyre"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Fly til nedre høyre"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Klarte ikke lagre spilltilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Klarte ikke åpne spilltilstand fra fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Fullførte lagring av spilltilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Vanligvis, ville Maniac Mansion ha startet nå. Men ScummVM støtter ikke det "
+"ennå. Så, for å spille Maniac Mansion, gå til 'Legg til spill' i ScummVM-"
+"hovedmenyen og velg 'Maniac'-undermappa i Tentacle-mappa."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~Z~ipmodus aktivert"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~O~verganger aktivert"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "ScummVM Hovedmeny"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~V~anneffekt aktivert"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Gjennopprett spill:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Gjenopprett"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Klarte ikke åpne spilltilstand fra fil:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Klarte ikke lagre spilltilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Klarte ikke lagre spilltilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Klarte ikke lagre spilltilstand til fil:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Lagret spill:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Åpne spill:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Lagret spill:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL emulator"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL emulator"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Ingen musikk"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga Lydemulator"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib Emulator"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS Emulator (IKKE IMPLEMENTERT)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 Lydemulator"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Initialiserer MT-32-Emulator"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 Emulator"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker Emulator"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr Emulator"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Tastkobling:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktiv)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Spill)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM Hovedmeny"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~V~enstrehendt modus"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~I~ndy kampkontroller"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Vis muspeker"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Hopp til kanter"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Gå til X-posisjon"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Gå til Y-posisjon"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Bruk bærbar trackpad-stil muspekerkontroll"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Tap for venstreklikk, dobbelt-tap for høyreklikk"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Følsomhet"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Skalering for øvre skjerm:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Hovedskjermsskalering:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Maskinvareskalering (rask, men lav kvalitet)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Programvareskalering (god kvalitet, men tregere)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Uskalert (du må scrolle til venstre og høyre)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Høy lydkvalitet (tregere) (omstart)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Deaktiver strømsparing"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Touchpad-modus aktivert."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Touchpad-modus deaktivert."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Touchpad-modus aktivert."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Touchpad-modus deaktivert."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Avslutt ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (ingen skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Veksle aspekt-rate korrigering"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Veksle aspekt-rate korrigering"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Bytt grafikkfiltre"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Tegnemodus:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Bevar"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Nåværende videomodus:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Opp"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Ned"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Venstre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Høyre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Venstreklikk"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Høyreklikk"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Sone"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multifunksjon"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Bytt karakter"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Hopp over tekst"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Rask modus"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Global meny"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuelt tastatur"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Tastkobler"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Vil du avslutte?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Nåværende videomodus:"
+
+#: backends/platform/wii/options.cpp:56
+#, fuzzy
+msgid "Double-strike"
+msgstr "Doble linjer"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Horisontal underscan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Vertikal underscan"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Input"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "GC Pad-følsomhet:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "GC Pad-aksellerasjon:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Ukjent"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Monter DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Løs ut DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Delt Ressurs:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Brukernavn:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Passord:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Init nettverk"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Monter SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Løs ut SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD montering fullført"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Feil under montering av DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ikke montert"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Nettverket er oppe, delt ressurs montert"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Nettverket er oppe"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", feil under montering av den delte ressursen"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", delt ressurs ikke montert"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Nettverket er nede"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Initialiserer nettverk"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Timeout under initialisering av nettverk"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Nettverk ikke initialisert (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Skjul verktøylinje"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Vis tastatur"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Lyd av/på"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Høyreklikk"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Vis/Skjul muspeker"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Frikikking"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Zoom opp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zoom ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Koble taster"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Peker opp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Peker ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Peker venstre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Peker høyre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Vil du åpne eller lagre spillet?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Er du sikker på at du vil avslutte ?"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tastatur"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Roter"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Bruk SDL-driver"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Skjerm"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Vil du utføre et automatisk søk?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Koble handling til høyreklikk"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Du må koble en tast til handlingen 'Høyreklikk' for å spille dette spillet"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Koble skjul-verktøylinje-handlingen"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Du må koble en tast til 'Skjul verktøylinje'-handlingen for å spille dette "
+"spillet"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Koble handlingen Zoom Opp (valgfritt)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Koble handlingen Zoom Ned (valgfritt)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Ikke glem å koble en tast til handlingen 'Skjul verktøylinje' for å se hele "
+"inventaret"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Vil du virkelig slette dette lagrede spillet?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Slå"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Vil du avslutte?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volum"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volum"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Legg til spill..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Legg til spill..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Oppdaget %d nye spill."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Kommandolinjeargument ikke behandlet"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns Emulator"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Ugyldig sti"
diff --git a/po/nn_NO.po b/po/nn_NO.po
index ff43eb2a17..16fe93238d 100644
--- a/po/nn_NO.po
+++ b/po/nn_NO.po
@@ -1,2593 +1,2735 @@
-# Norwegian (Nynorsk) translation for ScummVM.
-# Copyright (C) 2010 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Einar Johan T. Sømåen <einarjohants@gmail.com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-04-25 23:07+0100\n"
-"Last-Translator: Einar Johan T. Sømåen <einarjohants@gmail.com>\n"
-"Language-Team: somaen <einarjohants@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Norsk (nynorsk)\n"
-"X-Poedit-Language: Norwegian Nynorsk\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Poedit-Country: NORWAY\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(bygd den %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Funksjonar innkompilert:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Tilgjengelege motorar:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Gå tilbake"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Gå til forrige mappenivå"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Gå tilbake"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Vel"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Steng"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Musklikk"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Syn Tastatur"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Omkople tastar"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Vel ei handling for kopling:"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Kople"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Vel ei handling, og klikk 'Kople'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Kopla tast : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Kopla tast: ingen"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Vel ei handling"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Trykk tasten du vil kople"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Spel"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Kort spelidentifikator nytta for å referere til lagra spel, og å køyre "
-"spelet frå kommandolinja"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Namn:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Full speltittel:"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Namn:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Språk:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Spelets språk. Dette vil ikkje gjere den spanske versjonen av spelet til ein "
-"engelsk versjon"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<standard>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plattform spelet opprineleg vart designa for"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafikk"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafikkinstillingar"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Overstyr globale grafikkinstillingar"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Lyd"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Overstyr globale lydinstillingar"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Overstyr globale lydinstillingar"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volum"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Overstyr globale voluminstillingar"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Overstyr globale voluminstillingar"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI-instillingar"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Overstyr globale MIDI-instillingar"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32-instillingar"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Overstyr globale MT-32-instillingar"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Stiar"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Stiar"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Spelsti:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Spelsti:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Ekstrasti:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr ""
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Ekstrasti:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Lagringssti:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr ""
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Lagringssti:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Standard"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Vel SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Vel mappe med speldata"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr ""
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Vel mappe for lagra spel"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr ""
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~A~vslutt"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Avslutt ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "~O~m..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Om ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~V~al..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Endre globale ScummVM-instillingar"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tart"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Start det velde spelet"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~Å~pne..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Åpne eit lagra spel for the velde spelet"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~L~egg til spel..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Hold Shift nede for å legge til fleire"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~R~ediger spel..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Endre spelinstillingar"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~F~jern spel"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr ""
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~L~egg til spel..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~R~ediger spel..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~F~jern spel"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Søk i spelliste"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Søk:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Tøm verdi"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Åpne spel:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Åpne"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ja"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nei"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM kunne ikkje åpne den velde mappa!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM kunne ikkje finne noko spel i den velde mappa!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Vel spelet:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Vil du verkeleg fjerne denne spelkonfigurasjonen?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Dette spelet støttar ikkje åpning av lagra spel frå oppstartaren."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM kunne ikkje finne nokon motor som var i stand til å køyre det velde "
-"spelet!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Legg til fleire..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Legg til fleire..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Legg til spill..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Legg til spill..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... fremdrift ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Søk fullført!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Søkt i %d mappar ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Oppdaga %d nye spel ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Aldri"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "kvart 5. min"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "kvart 10. min"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "kvart 15. min"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "kvart 30. min"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafikkmodus:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Teiknemodus:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Spesielle dithering-modus som støttast av nokre spel"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Fullskjermsmodus"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Aspekt-korrigering"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Rett opp aspekt for 320x200 spel"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr ""
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr ""
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Føretrukken eining:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr ""
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr ""
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr ""
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr ""
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib emulator:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib nyttast til musikk i mange spel"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr ""
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Høgare verdier gir betre lydkvalitet, men støttast kanskje ikkje av "
-"lydkortet ditt"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr ""
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr ""
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Ikkje nytt General MIDI musikk"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr ""
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont støttast av enkelte lydkort, Fluidsynth og Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Blanda AdLib/MIDI-modus"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Nytt båe MIDI og AdLib lydskaping"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI gain:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr ""
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Ekte Roland MT-32 (ingen GS-emulering)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Aktiver Roland GS-modus"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr "Slår av General MIDI-kopling for spel med Roland MT-32 lydspor"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Ikkje nytt Roland MT-32 musikk"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Tekst og Tale:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Tale"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Teksting"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Begge"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Undertekstfart:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Tekst og Tale:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Tale"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Tekst"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Båe"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Vis teksting og spel av tale"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Undertekstfart:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Musikkvolum:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musikkvolum:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Demp alle"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Lydeffektvolum:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr ""
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Lydeffektvolum:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Talevolum:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Talevolum:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Temasti:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Temasti:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Pluginsti:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Pluginsti:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Div"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Div"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI-teiknar:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autolagre:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autolagre:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Tastar"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "GUI-språk:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Språk i ScummVM-GUIet"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du må omstarte ScummVM for at endringane skal skje."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Vel mappe for lagra spel"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "Den velde mappa kan ikkje skrivast til. Vennlegst vel ein annan."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Vel ei mappe for GUI-tema:"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Vel ei mappe for ekstra filer"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Vel ei mappe for plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temaet du har valt støttar ikkje det aktive språket. Om du vil nytte dette "
-"temaet må du bytte til eit anna språk først."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Ingen dato lagra"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Inga tid lagra"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Inga speletid lagra"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Slett"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Vil du verkeleg slette det lagra spelet?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Dato: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Tid: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Speletid: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Ikkje navngjeven speltilstand"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Vel eit tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Deaktivert GFX"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Deaktivert GFX"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard Teiknar (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Antialiased Teiknar (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Antialiased (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Motoren støttar ikkje debug-nivå '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Meny"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Hopp over"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pause"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Hopp over linje"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Feil under køyring av spel:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Kunne ikkje finne nokon motor som kunne køyre det velde spelet."
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Ingen feil"
-
-#: common/error.cpp:40
-#, fuzzy
-msgid "Game data not found"
-msgstr "Speldata ikkje funne"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Spel ID ikkje støtta"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Ustøtta fargemodus"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Lesetilgang nekta"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Skrivetilgang nekta"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Stien eksisterar ikkje"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Stien er ikkje ei mappe"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Stien er ikkje ei fil"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Kan ikkje lage fil"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Lesing av data feila"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Dataskriving feila"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Kunne ikkje finne ein passande spelmotor-plugin"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Spelmotor-plugin støttar ikkje lagra tilstandar."
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Ukjend feil"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Grønn"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Raudgul"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Grønn"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Raudgul"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~F~ortsett"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~Å~pne"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~L~agre"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~V~al"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~H~jelp"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~O~m"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-#, fuzzy
-msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-#, fuzzy
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~T~ilbake til oppstarter"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Lagra spel:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Lagre"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~vbryt"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~astar"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Gjeldende videomodus:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Veksle aspekt-korrigering"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~F~orrige"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~N~este"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~L~ukk"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Vanlege tastaturkommandoar:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Åpne- / Lagre-dialog"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Hopp over tekstlinje"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Hopp over cutscene"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Opprom"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pause spel"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Åpne speltilstand 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Lagre speltilstand 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Avslutt"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Veksle fullskjerm"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Musikkvolum opp / ned"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Tekstfart saktare / fortare"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simuler venstre musknapp"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simuler høgre musknapp"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Spesielle tastaturkommandoar:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Vis / Skjul konsoll"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Start debuggaren"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Vis minneforbruk"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Køyr i rask modus (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Køyr i verkeleg rask modus (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Veksle muslåsing"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Veksle grafikkfiltre"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Øk/Minsk skaleringsfaktor"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Veksle aspekt-korrigering"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Merk at å bruke ctrl-f og"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g er ikkje anbefalt då"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " dei kan forårsake kræsj og"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " feilaktig speloppførsel."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Spinne drafts på tastaturet:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Hovedkontrollar for spel:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Dytt"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Gi"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Åpne"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Få"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Nytt"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Les"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Bytt unge"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Slå på"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Slå av"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Gå til"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Plukk opp"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Kva er"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Lås opp"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Ta på (klede)"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Ta av (klede)"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Fiks"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Bytt"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Kikk"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Snakk"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Reis"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Til Henry / Til Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "spel C moll på distaffen "
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "spel D på distaffen"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "spel E på distaffen"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "spel F på distaffen"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "spel G på distaffen"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "spel A på distaffen"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "spel H på distaffen"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "spel C dur på distaffen"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Dytt"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Snakk til"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Se på"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Slå på"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Slå av"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Opp-tast"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Merk forrige dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Ned-tast"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Merk neste dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Gå"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventar"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objekt"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Svart-Kvitt / Fargar"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Auger"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Tunge"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Slå"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Spark"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Undersøk"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Vanleg peikar"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Åpne / Lagre / Val"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Andre spelkontrollar:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventar:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Bla liste opp"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Bla liste ned"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Øvre venstre gjenstand"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Nedre venstre gjenstand"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Øvre høgre gjenstand"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Nedre høgre gjenstand"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Midtre venstre gjenstand"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Midtre høgre gjenstand"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Veksle karakterar:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Andre unge"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tredje unge"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Kampkontrollar (taltastatur)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Bakoversteg"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Høg blokk"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Midt blokk"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Lav blokk"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Høgt slag"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Midtslag"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Lavt slag"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Gjeld Indy på Venstre side."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Med Indy på høgre side,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "byttast 7, 4, og 1 med"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6, og 3, henhaldsvis."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Flykontrollar (taltastatur)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Fly til øvre venstre"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Fly til venstre"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Fly til nedre venstre"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Fly oppover"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Fly rett"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Fly ned"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Fly til øvre høgre"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Fly til høgre"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Fly til nedre høgre"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Opprinneleg, skulle Maniac Mansion ha starta no. Men ScummVM støttar ikkje "
-"det enno. For å spele Maniac Mansion, gå til 'Legg til spel' i ScummVM-"
-"menyen og vel 'Maniac'-undermappa i 'Tentacle'-mappa."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ipmodus aktivert"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~O~vergangar aktivert"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~V~anneffekt aktivert"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Gjenopprett spel:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Gjenopprett"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-msgid "Failed to load game state from file."
-msgstr ""
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-msgid "Failed to save game state to file."
-msgstr ""
-
-#: engines/gob/inter_v5.cpp:107
-msgid "Failed to delete file."
-msgstr ""
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr "Full speltittel:"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Lagra spel:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Åpne spel:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Lagra spel:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL emulator"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL emulator"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Ingen musikk"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga Lydemulator"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib Emulator"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS Emulator (IKKJE IMPLEMENTERT)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 Lydemulator"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Initialiserar MT-32-emulator"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 Emulator"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker Emulator"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr Emulator"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Tastkopling:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktivt)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Spel)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM Hovudmeny"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~V~enstrehendt modus"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~I~ndy-kampkontrollar"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Vis muspeikar"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Hopp til kantar"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Gå til X-posisjon"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Gå til Y-posisjon"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr ""
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Tap for venstre-klikk, dobbelt-tap for høgre-klikk"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensitivitet"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr ""
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Hovudskjermsskalering:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr ""
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr ""
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Uskalert (du må scrolle til venstre og høgre)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Lysstyrke:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr ""
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Deaktiver strømsparing"
-
-#: backends/platform/iphone/osys_events.cpp:338
-msgid "Mouse-click-and-drag mode enabled."
-msgstr ""
-
-#: backends/platform/iphone/osys_events.cpp:340
-msgid "Mouse-click-and-drag mode disabled."
-msgstr ""
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr ""
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr ""
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (inga skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (inga skalering)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Veksle aspekt-korrigering"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Veksle aspekt-korrigering"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Veksle grafikkfiltre"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Teiknemodus:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Bevar"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Gjeldende videomodus:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Opp"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Ned"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Venstre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Høgre"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Venstreklikk"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Høgreklikk"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Sone"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Rask modus"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Globalmeny"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Tastkopler"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Vil du avslutte?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Gjeldende videomodus:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr ""
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Horisontal underscan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Vertikal underscan:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Input"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr ""
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr ""
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Ukjend"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Monter DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Løs ut DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Teinar:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr ""
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Brukarnamn:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Passord:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Init nettverk"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Monter SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Avmonter SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD-montering fullført"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Feil under montering av DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ikkje montert"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Nettverket er oppe, delt ressurs montert"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Nettverket er oppe"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ""
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", delt ressurs ikkje montert"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Nettverket er nede"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Initialiserer nettverk"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Initialiserer nettverk"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Nettverk ikkje initialisert (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Skjul verktøylinje"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Syn tastatur"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Lyd av/på"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Høgreklikk"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Vis/Skjul Peikar"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Frikikking"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Zoom opp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zoom ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Kople tastar"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Peikar opp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Peikar ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Peikar venstre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Peikar høgre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Vil du åpne eller lagre spelet?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr "Er du sikker på at du vil avslutte?"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tastatur"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Roter"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Nyttar SDL-drivar"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Skjerm"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Vil du utføre eit automatisk søk?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Kople høgreklikkshandling"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Du må kople ein tast til 'Høgreklikk'-handlinga for å spele dette spelet"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Kople skjul-verktøylinje-handlinga"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr "Du må kople ein tast til 'Skjul verktøylinje' for å spele dette spelet"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Kople Zoom Opp-handling (valfri)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Kople Zoom Ned-handling (valfri)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Ikkje gløym å kople ein tast til 'Skjul verktøylinje' for å se heile "
-"inventaret"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Vil du verkeleg slette det lagra spelet?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Slå"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Vil du avslutte?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volum"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Oppdaga %d nye spel."
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns Emulator"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ugyldig sti"
+# Norwegian (Nynorsk) translation for ScummVM.
+# Copyright (C) 2010 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Einar Johan T. Sømåen <einarjohants@gmail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-04-25 23:07+0100\n"
+"Last-Translator: Einar Johan T. Sømåen <einarjohants@gmail.com>\n"
+"Language-Team: somaen <einarjohants@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Norsk (nynorsk)\n"
+"X-Poedit-Language: Norwegian Nynorsk\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Poedit-Country: NORWAY\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(bygd den %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Funksjonar innkompilert:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Tilgjengelege motorar:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Gå tilbake"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Gå til forrige mappenivå"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Gå tilbake"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Vel"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Steng"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Musklikk"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Syn Tastatur"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Omkople tastar"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Vel ei handling for kopling:"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Kople"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Vel ei handling, og klikk 'Kople'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Kopla tast : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Kopla tast: ingen"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Vel ei handling"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Trykk tasten du vil kople"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Spel"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kort spelidentifikator nytta for å referere til lagra spel, og å køyre "
+"spelet frå kommandolinja"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Namn:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Full speltittel:"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Namn:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Språk:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Spelets språk. Dette vil ikkje gjere den spanske versjonen av spelet til ein "
+"engelsk versjon"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<standard>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plattform spelet opprineleg vart designa for"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafikk"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafikkinstillingar"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Overstyr globale grafikkinstillingar"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Lyd"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Overstyr globale lydinstillingar"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Overstyr globale lydinstillingar"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volum"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Overstyr globale voluminstillingar"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Overstyr globale voluminstillingar"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI-instillingar"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Overstyr globale MIDI-instillingar"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32-instillingar"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Overstyr globale MT-32-instillingar"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Stiar"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Stiar"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Spelsti:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Spelsti:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Ekstrasti:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr ""
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Ekstrasti:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Lagringssti:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr ""
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Lagringssti:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Standard"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Vel SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Vel mappe med speldata"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr ""
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Vel mappe for lagra spel"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr ""
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~A~vslutt"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Avslutt ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "~O~m..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Om ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~V~al..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Endre globale ScummVM-instillingar"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tart"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Start det velde spelet"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~Å~pne..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Åpne eit lagra spel for the velde spelet"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~L~egg til spel..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Hold Shift nede for å legge til fleire"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~R~ediger spel..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Endre spelinstillingar"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~F~jern spel"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr ""
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~L~egg til spel..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~R~ediger spel..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~F~jern spel"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Søk i spelliste"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Søk:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Tøm verdi"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Åpne spel:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Åpne"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ja"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nei"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM kunne ikkje åpne den velde mappa!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM kunne ikkje finne noko spel i den velde mappa!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Vel spelet:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Vil du verkeleg fjerne denne spelkonfigurasjonen?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Dette spelet støttar ikkje åpning av lagra spel frå oppstartaren."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM kunne ikkje finne nokon motor som var i stand til å køyre det velde "
+"spelet!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Legg til fleire..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Legg til fleire..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... fremdrift ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Søk fullført!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Søkt i %d mappar ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Oppdaga %d nye spel ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Aldri"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "kvart 5. min"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "kvart 10. min"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "kvart 15. min"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "kvart 30. min"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafikkmodus:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Teiknemodus:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Spesielle dithering-modus som støttast av nokre spel"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Fullskjermsmodus"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Aspekt-korrigering"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Rett opp aspekt for 320x200 spel"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr ""
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr ""
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Føretrukken eining:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr ""
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr ""
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr ""
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr ""
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib emulator:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib nyttast til musikk i mange spel"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr ""
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Høgare verdier gir betre lydkvalitet, men støttast kanskje ikkje av "
+"lydkortet ditt"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr ""
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr ""
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Ikkje nytt General MIDI musikk"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr ""
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont støttast av enkelte lydkort, Fluidsynth og Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Blanda AdLib/MIDI-modus"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Nytt båe MIDI og AdLib lydskaping"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI gain:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr ""
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Ekte Roland MT-32 (deaktiver GM-emulering)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Ekte Roland MT-32 (ingen GS-emulering)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Aktiver Roland GS-modus"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr "Slår av General MIDI-kopling for spel med Roland MT-32 lydspor"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Ikkje nytt Roland MT-32 musikk"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Tekst og Tale:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Tale"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Teksting"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Begge"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Undertekstfart:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Tekst og Tale:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Tale"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Tekst"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Båe"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Vis teksting og spel av tale"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Undertekstfart:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Musikkvolum:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musikkvolum:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Demp alle"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Lydeffektvolum:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr ""
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Lydeffektvolum:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Talevolum:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Talevolum:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Temasti:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Temasti:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Pluginsti:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Pluginsti:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Div"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Div"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI-teiknar:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autolagre:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autolagre:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Tastar"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "GUI-språk:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Språk i ScummVM-GUIet"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Du må omstarte ScummVM for at endringane skal skje."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Vel mappe for lagra spel"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "Den velde mappa kan ikkje skrivast til. Vennlegst vel ein annan."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Vel ei mappe for GUI-tema:"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Vel ei mappe for ekstra filer"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Vel ei mappe for plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temaet du har valt støttar ikkje det aktive språket. Om du vil nytte dette "
+"temaet må du bytte til eit anna språk først."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Ingen dato lagra"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Inga tid lagra"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Inga speletid lagra"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Slett"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Vil du verkeleg slette det lagra spelet?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Dato: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Tid: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Speletid: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Ikkje navngjeven speltilstand"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Vel eit tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Deaktivert GFX"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Deaktivert GFX"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard Teiknar (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Antialiased Teiknar (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Antialiased (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Motoren støttar ikkje debug-nivå '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Meny"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Hopp over"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pause"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Hopp over linje"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Feil under køyring av spel:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Kunne ikkje finne nokon motor som kunne køyre det velde spelet."
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Ingen feil"
+
+#: common/error.cpp:40
+#, fuzzy
+msgid "Game data not found"
+msgstr "Speldata ikkje funne"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Spel ID ikkje støtta"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Ustøtta fargemodus"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Lesetilgang nekta"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Skrivetilgang nekta"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Stien eksisterar ikkje"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Stien er ikkje ei mappe"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Stien er ikkje ei fil"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Kan ikkje lage fil"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Lesing av data feila"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Dataskriving feila"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Kunne ikkje finne ein passande spelmotor-plugin"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Spelmotor-plugin støttar ikkje lagra tilstandar."
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Ukjend feil"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Grønn"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Raudgul"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Grønn"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Raudgul"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~F~ortsett"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~Å~pne"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~L~agre"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~V~al"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~H~jelp"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~O~m"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+#, fuzzy
+msgid "~R~eturn to Launcher"
+msgstr "~T~ilbake til oppstarter"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+#, fuzzy
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~T~ilbake til oppstarter"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Lagra spel:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Lagre"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~vbryt"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~astar"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Gjeldende videomodus:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Veksle aspekt-korrigering"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "Er du sikker på at du vil avslutte?"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "Er du sikker på at du vil avslutte?"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Avslutt"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Vel eit tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~F~orrige"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~N~este"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~L~ukk"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Tale"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Teksting"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Teksting"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Tale"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Vanlege tastaturkommandoar:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Åpne- / Lagre-dialog"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Hopp over tekstlinje"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Hopp over cutscene"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Opprom"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pause spel"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Åpne speltilstand 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Lagre speltilstand 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Veksle fullskjerm"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Musikkvolum opp / ned"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Tekstfart saktare / fortare"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simuler venstre musknapp"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simuler høgre musknapp"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Spesielle tastaturkommandoar:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Vis / Skjul konsoll"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Start debuggaren"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Vis minneforbruk"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Køyr i rask modus (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Køyr i verkeleg rask modus (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Veksle muslåsing"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Veksle grafikkfiltre"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Øk/Minsk skaleringsfaktor"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Veksle aspekt-korrigering"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Merk at å bruke ctrl-f og"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g er ikkje anbefalt då"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " dei kan forårsake kræsj og"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " feilaktig speloppførsel."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Spinne drafts på tastaturet:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Hovedkontrollar for spel:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Dytt"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Gi"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Åpne"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Få"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Nytt"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Les"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Bytt unge"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Slå på"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Slå av"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Gå til"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Plukk opp"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Kva er"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Lås opp"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Ta på (klede)"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Ta av (klede)"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Fiks"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Bytt"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Kikk"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Snakk"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Reis"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Til Henry / Til Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "spel C moll på distaffen "
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "spel D på distaffen"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "spel E på distaffen"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "spel F på distaffen"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "spel G på distaffen"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "spel A på distaffen"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "spel H på distaffen"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "spel C dur på distaffen"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Dytt"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Snakk til"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Se på"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Slå på"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Slå av"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Opp-tast"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Merk forrige dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Ned-tast"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Merk neste dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Gå"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventar"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objekt"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Svart-Kvitt / Fargar"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Auger"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Tunge"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Slå"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Spark"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Undersøk"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Vanleg peikar"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Åpne / Lagre / Val"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Andre spelkontrollar:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventar:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Bla liste opp"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Bla liste ned"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Øvre venstre gjenstand"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Nedre venstre gjenstand"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Øvre høgre gjenstand"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Nedre høgre gjenstand"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Midtre venstre gjenstand"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Midtre høgre gjenstand"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Veksle karakterar:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Andre unge"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tredje unge"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Kampkontrollar (taltastatur)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Bakoversteg"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Høg blokk"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Midt blokk"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Lav blokk"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Høgt slag"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Midtslag"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Lavt slag"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Gjeld Indy på Venstre side."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Med Indy på høgre side,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "byttast 7, 4, og 1 med"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6, og 3, henhaldsvis."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Flykontrollar (taltastatur)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Fly til øvre venstre"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Fly til venstre"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Fly til nedre venstre"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Fly oppover"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Fly rett"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Fly ned"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Fly til øvre høgre"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Fly til høgre"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Fly til nedre høgre"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Opprinneleg, skulle Maniac Mansion ha starta no. Men ScummVM støttar ikkje "
+"det enno. For å spele Maniac Mansion, gå til 'Legg til spel' i ScummVM-"
+"menyen og vel 'Maniac'-undermappa i 'Tentacle'-mappa."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~Z~ipmodus aktivert"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~O~vergangar aktivert"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "ScummVM Hovudmeny"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~V~anneffekt aktivert"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Gjenopprett spel:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Gjenopprett"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr ""
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr ""
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr ""
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr "Full speltittel:"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Lagra spel:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Åpne spel:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Lagra spel:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL emulator"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL emulator"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Ingen musikk"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga Lydemulator"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib Emulator"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS Emulator (IKKJE IMPLEMENTERT)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 Lydemulator"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Initialiserar MT-32-emulator"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 Emulator"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker Emulator"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr Emulator"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Tastkopling:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktivt)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Spel)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM Hovudmeny"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~V~enstrehendt modus"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~I~ndy-kampkontrollar"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Vis muspeikar"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Hopp til kantar"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Gå til X-posisjon"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Gå til Y-posisjon"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr ""
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Tap for venstre-klikk, dobbelt-tap for høgre-klikk"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensitivitet"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr ""
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Hovudskjermsskalering:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr ""
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr ""
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Uskalert (du må scrolle til venstre og høgre)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Lysstyrke:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr ""
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Deaktiver strømsparing"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr ""
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr ""
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr ""
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Avslutt ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (inga skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (inga skalering)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Veksle aspekt-korrigering"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Veksle aspekt-korrigering"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Veksle grafikkfiltre"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Teiknemodus:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Bevar"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Gjeldende videomodus:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Opp"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Ned"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Venstre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Høgre"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Venstreklikk"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Høgreklikk"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Sone"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Rask modus"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Globalmeny"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Tastkopler"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Vil du avslutte?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Gjeldende videomodus:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr ""
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Horisontal underscan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Vertikal underscan:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Input"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr ""
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr ""
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Ukjend"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Monter DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Løs ut DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Teinar:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr ""
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Brukarnamn:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Passord:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Init nettverk"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Monter SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Avmonter SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD-montering fullført"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Feil under montering av DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ikkje montert"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Nettverket er oppe, delt ressurs montert"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Nettverket er oppe"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ""
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", delt ressurs ikkje montert"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Nettverket er nede"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Initialiserer nettverk"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Initialiserer nettverk"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Nettverk ikkje initialisert (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Skjul verktøylinje"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Syn tastatur"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Lyd av/på"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Høgreklikk"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Vis/Skjul Peikar"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Frikikking"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Zoom opp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zoom ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Kople tastar"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Peikar opp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Peikar ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Peikar venstre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Peikar høgre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Vil du åpne eller lagre spelet?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr "Er du sikker på at du vil avslutte?"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tastatur"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Roter"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Nyttar SDL-drivar"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Skjerm"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Vil du utføre eit automatisk søk?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Kople høgreklikkshandling"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Du må kople ein tast til 'Høgreklikk'-handlinga for å spele dette spelet"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Kople skjul-verktøylinje-handlinga"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr "Du må kople ein tast til 'Skjul verktøylinje' for å spele dette spelet"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Kople Zoom Opp-handling (valfri)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Kople Zoom Ned-handling (valfri)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Ikkje gløym å kople ein tast til 'Skjul verktøylinje' for å se heile "
+"inventaret"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Vil du verkeleg slette det lagra spelet?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Slå"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Vil du avslutte?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volum"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volum"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Legg til spill..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Legg til spill..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Oppdaga %d nye spel."
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns Emulator"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Ugyldig sti"
diff --git a/po/pl_PL.po b/po/pl_PL.po
index 12d53847f5..d838e1a2cf 100644
--- a/po/pl_PL.po
+++ b/po/pl_PL.po
@@ -1,2621 +1,2763 @@
-# Polish translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Grajpopolsku.pl <grajpopolsku@gmail.com>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-05-02 12:09+0100\n"
-"Last-Translator: \n"
-"Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-2\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Polski\n"
-"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-Language: Polish\n"
-"X-Poedit-Country: POLAND\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(skompilowany %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Wkompilowane funkcje:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Dostêpne silniki:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "W górê"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Przejd¼ do poprzedniego katalogu"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "W górê"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Anuluj"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Wybierz"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Zamknij"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Klikniêcie"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Wy¶wietl klawiaturê"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Dostosuj klawisze"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Wybierz akcjê do przypisania"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Przypisz"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Wybierz akcjê i kliknij 'Przypisz'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Przypisany klawisz : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Przypisany klawisz: brak"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Wybierz akcjê"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Wci¶nij klawisz do przypisania"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Gra"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Krótki identyfikator gry u¿ywany do rozpoznawania zapisów i uruchamiania gry "
-"z linii komend"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nazwa:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Pe³ny tytu³ gry:"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nazwa:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Jêzyk:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr "Jêzyk gry. Nie zmieni to hiszpañskiej wersji gry w angielsk±."
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<domy¶lne>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Platforma:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Platforma, na któr± stworzono grê"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Platforma:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafika"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "Grafika"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "U¿yj w³asnych ustawieñ grafiki"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "U¿yj w³asnych ustawieñ grafiki"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "D¼wiêk"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "U¿yj w³asnych ustawieñ d¼wiêku"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "U¿yj w³asnych ustawieñ d¼wiêku"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "G³o¶no¶æ"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "G³o¶no¶æ"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "U¿yj w³asnych ustawieñ g³o¶no¶ci"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "U¿yj w³asnych ustawieñ g³o¶no¶ci"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "U¿yj w³asnych ustawieñ MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "U¿yj w³asnych ustawieñ MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "U¿yj w³asnych ustawieñ MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "U¿yj w³asnych ustawieñ MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "¦cie¿ki"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "¦cie¿ki"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "¦cie¿ka gry:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "¦cie¿ka gry:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "¦c. dodatków:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Okre¶la ¶cie¿kê dodatkowych danych gry"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "¦c. dodatków:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "¦cie¿ka zapisów:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Okre¶la gdzie zapisywaæ stan gry"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "¦cie¿ka zapisów:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Brak"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Domy¶lnie"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Wybierz SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Wybierz katalog z plikami gry"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Wybierz dodatkowy katalog gry"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Wybierz katalog dla zapisów"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Identyfikator jest ju¿ zajêty. Wybierz inny."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~Z~akoñcz"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Zakoñcz ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "I~n~formacje..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "O ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pcje..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Zmieñ ustawienia ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tart"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Rozpocznij wybran± grê"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~W~czytaj..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Wczytaj zapis wybranej gry"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~D~odaj grê..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Przytrzymaj Shift, by dodawaæ zbiorowo"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~E~dytuj grê..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Zmieñ opcje gry"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~U~suñ grê"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Usuwa grê z listy. Pliki gry pozostaj± nietkniête"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~D~odaj grê..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~E~dytuj grê..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~U~suñ grê"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Wyszukaj grê na li¶cie"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Szukaj"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Wyczy¶æ"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Wczytaj grê:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Wczytaj"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Chcesz uruchomiæ masowy detektor gier? Mo¿e dodaæ wiele tytu³ów do listy"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Tak"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nie"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM nie mo¿e otworzyæ katalogu!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM nie znalaz³ ¿adnej gry w tym katalogu!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Wybierz grê:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Na pewno chcesz usun±æ tê grê z konfiguracji?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Ta gra nie wspiera wczytywania z launchera."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM nie znalaz³ silnika zdolnego uruchomiæ wybran± grê!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Masowe dodawanie..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Masowe dodawanie..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Dodaj grê..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Dodaj grê..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... postêp ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Skanowanie zakoñczone!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Przeskanowano %d katalogów ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Wykryto %d nowych gier..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Nigdy"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "co 5 min"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "co 10 min"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "co 15 min"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "co 30 min"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Brak"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Tryb grafiki:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Renderer:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Specjalne tryby ditheringu wspierane przez niektóre gry"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Tryb pe³noekranowy"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Korekcja formatu obrazu"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Korekcja formatu obrazu dla gier 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "anty-dithering EGA"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "W³±cz anty-dithering we wspieranych grach EGA"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Pref. urz±dzenie:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Urz. muzyczne:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Okre¶la preferowane urz±dzenie d¼wiêkowe lub emulator karty d¼wiêkowej"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Okre¶la wyj¶ciowe urz±dzenie d¼wiêkowe lub emulator karty d¼wiêkowej"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Pref. urz±dzenie:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Urz. muzyczne:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Emulator AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib jest u¿ywany do muzyki w wielu grach"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Czêst. wyj.:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Wy¿sze warto¶ci daj± lepsz± jako¶æ d¼wiêku, ale mog± byæ nieobs³ugiwane "
-"przez twoj± kartê d¼wiêkow±"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Urz±dzenie GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Okre¶la domy¶lne urz±dzenie d¼wiêkowe dla wyj¶cia General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Nie u¿ywaj muzyki General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "U¿yj pierwszego dostêpnego urz±dzenia"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFont jest wspierany przez niektóre karty d¼wiêkowe, Fluidsynth i "
-"Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Tryb miksowanego AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "U¿ywaj obu generatorów d¼wiêku, MIDI i AdLib, jednocze¶nie"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Wzm. MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Urz±dzenie MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Okre¶la domy¶lne urz±dzenie d¼wiêku dla wyj¶cia Roland MT-32/LAPC1/CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Prawdziwy Roland MT-32 (wy³±cz emulacjê GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Zaznacz, je¶li chcesz u¿ywaæ swojej prawdziwej karty kompatybilnej z Roland "
-"pod³±czonej do twojego komputera"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Prawdziwy Roland MT-32 (brak emulacji GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "W³±cz tryb Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Wy³±cza mapowanie General MIDI dla gier ze ¶cie¿k± d¼wiêkow± Roland MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Nie u¿ywaj muzyki Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Tekst i mowa:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Mowa"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Napisy"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Oba"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Prêd. napisów:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Tekst i mowa:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Mowa"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Napisy"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Oba"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Wy¶wietlaj napisy i odtwarzaj mowê"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Prêd. napisów:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "G³o¶no¶æ muzyki:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "G³o¶no¶æ muzyki:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Wycisz"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "G³. efekt. d¼w.:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "G³o¶no¶æ efektów d¼w."
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "G³. efekt. d¼w.:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "G³o¶no¶æ mowy:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "G³o¶no¶æ mowy:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "¦cie¿ka stylu:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "¦cie¿ka stylu:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr "Okre¶la ¶cie¿kê dla dodatkowych danych dla wszystkich gier lub ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "¦cie¿ka wtyczek:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "¦cie¿ka wtyczek:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Ró¿ne"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Ró¿ne"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Styl:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Renderer interf.:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autozapis:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autozapis:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Klawisze"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Jêzyk interfejsu:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Jêzyk interfejsu ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Musisz zrestartowaæ ScummVM, by zmiany zosta³y uwzglêdnione"
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Wybierz katalog zapisów"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "Ten katalog jest zabezpieczony przed zapisem. Wybierz inny."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Wybierz katalog dla stylów GUI."
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Wybierz katalog dla dodatkowych plików"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Wybierz katalog dla wtyczek"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Wybrany styl nie obs³uguje obecnego jêzyka. Je¶li chcesz go u¿ywaæ, zmieñ "
-"najpierw swój jêzyk."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Brak daty"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Brak godziny"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Brak czasu gry"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Skasuj"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Na pewno chcesz skasowaæ ten zapis?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Data: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Czas: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Czas gry: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Zapis bez nazwy"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Wybierz styl"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Wy³±czona grafika"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Wy³±czona grafika"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standardowy renderer (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standardowy (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Wyg³adzany renderer (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Wyg³adzany (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Silnik nie wspiera poziomu debugowania '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Pomiñ"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Wstrzymaj"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Pomiñ liniê"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "B³±d podczas uruchamiania gry:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Nie uda³o siê znale¼æ silnika zdolnego do uruchomienia zaznaczonej gry"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Brak b³êdu"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Nie znaleziono plików gry"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Identyfikator gry nie jest wspierany"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Niewspierany tryb kolorów"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Brak praw do odczytu"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Brak praw do zapisu"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "¦cie¿ka nie istnieje"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "¦cie¿ka nie jest katalogiem"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "¦cie¿ka nie jest plikiem"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Nie mo¿na utworzyæ pliku"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Odczyt danych nieudany"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Zapisywanie danych nie powiod³o siê"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Nie uda³o siê znale¼æ odpowiedniej wtyczki silnika"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "Silnik nie wspiera zapisu stanu gry"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Nieznany b³±d"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Zielony Hercules"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Bursztynowy Hercules"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Zielony Hercules"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Bursztynowy Hercules"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~W~znów"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~W~czytaj"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~Z~apisz"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pcje"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~P~omoc"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "~I~nformacje"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~P~owrót do launchera"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~P~owrót do launchera"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Zapis:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Zapisz"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~A~nuluj"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~K~lawisze"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Obecny tryb wideo:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~P~oprzedni"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~N~astêpny"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~Z~amknij"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Skróty klawiaturowe:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Okno Zapisz / Wczytaj"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Pomiñ linijkê tekstu"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Pomiñ scenkê"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Spacja"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Wstrzymaj grê"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Wczytaj stan gry 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Zapisz stan gry 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Zakoñcz"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "W³±cz/wy³±cz pe³ny ekran"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Zwiêksz/zmniejsz g³o¶no¶æ muzyki"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Zwiêksz/zmniejsz prêdko¶æ tekstu"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Symuluje lewy przycisk myszy"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Symuluje prawy przycisk myszy"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Specjalne skróty klawiaturowe:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Schowaj / poka¿ konsolê"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "W³±cz debugger"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Poka¿ zu¿ycie pamiêci"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "W³±cz w trybie szybkim (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "W³±cz w trybie bardzo szybkim (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "W³±cz/wy³±cz przechwytywanie myszy"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Prze³±czaj pomiêdzy filtrami grafiki"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Zwiêksz / zmniejsz wspó³czynnik skalowania"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Miej na uwadze, ¿e u¿ywanie ctrl-f"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " i ctrl-g nie jest wskazane"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " poniewa¿ mog± one spowodowaæ zawieszenie siê,"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " b±d¼ nieodpowiednie zachowanie gry."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Tkanie splotów na klawiaturze:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "G³ówne sterowanie gry:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Pchnij"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Poci±gnij"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Daj"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Otwórz"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Id¼ do"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "We¼"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "U¿yj"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Czytaj"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Nowy dzieciak"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "W³±cz"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Wy³±cz"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Podejd¼ do"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Podnie¶"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Czym jest"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Otwórz"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Za³ó¿"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Zdejmij"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Napraw"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Prze³±cz"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Spójrz"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Rozmawiaj"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Podró¿uj"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Do Henry'ego / Do Indy'ego"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "zagraj c-moll na k±dzieli"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "zagraj D na k±dzieli"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "zagraj E na k±dzieli"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "zagraj F na k±dzieli"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "zagraj G na k±dzieli"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "zagraj A na k±dzieli"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "zagraj B na k±dzieli"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "zagraj C-dur na k±dzieli"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "pchnj"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "poci±gnij (Yank)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Rozmawiaj z"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Spójrz na"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "w³±cz"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "wy³±cz"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Strza³ka do góry"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Pod¶wietl poprzedni dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Strza³ka w dó³"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Pod¶wietl nastêpny dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Id¼"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Ekwipunek"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Przedmiot"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Czarno-bia³y / Kolorowy"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Oczy"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Jêzyk"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Piê¶æ"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Kopniêcie"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Zbadaj"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Zwyk³y kursor"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Zapis / Odczyt / Opcje"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Reszta sterowania gry:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Ekwipunek:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Przewiñ listê do góry"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Przewiñ listê w dó³"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Przedmiot u góry, z lewej"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Przedmiot na dole, z lewej"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Przedmiot u góry, z prawej"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Przedmiot na dole, z prawej"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Przedmiot na ¶rodku, z lewej"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Przedmiot na ¶rodku, z prawej"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Zmiana postaci:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Drugi dzieciak"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Trzeci dzieciak"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Sterowanie podczas walki (klaw. num.):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Odsuñ siê"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Wysoki blok"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "¦rodkowy blok"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Dolny blok"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Wysokie uderzenie"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "¦rodkowe uderzenie"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Niskie uderzenie"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Te s± dla Indy'ego po lewej."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Kiedy Indy jest po prawej,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4, i 1 zostaj± zamienione"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "na 9, 6 i 3."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Sterowanie dwup³atowcem (klaw. num.):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Leæ do góry, w lewo"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Leæ w lewo"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Leæ na dó³, w lewo"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Leæ do góry"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Leæ prosto"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Leæ w dó³"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Leæ do góry, w prawo"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Leæ w prawo"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Leæ w dó³, w prawo"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Nie uda³o siê wczytaæ stanu gry z pliku:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Pomy¶lnie zapisano stan w pliku:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Zwykle w tym momencie uruchomi³oby siê Maniac Mansion, ale ScummVM jeszcze "
-"tego nie obs³uguje. Aby zagraæ, u¿yj \"Dodaj grê...\" z menu startowego "
-"ScummVM i wybierz podkatalog \"Maniac\" z katalogu gry Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~T~ryb zip aktywny"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "~P~rzej¶cia w³±czone"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~E~fekty wody w³±czone"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Wznów grê:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Wznów"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Nie uda³o siê wczytaæ stanu gry z pliku:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Zapis:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Wczytaj grê:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Zapis:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Emulator OPL MAME"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Emulator OPL DOSBox"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Brak muzyki"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulator d¼wiêku Amigi"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Emulator AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Emulator Apple II GS (NIE ZAIMPLEMENTOWANY)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulator d¼wiêku C64"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Inicjalizacja emulatora MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Emulator MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Emulator brzêczyka"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Emulator IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Klawisze:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (Aktywny)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (Globalny)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (Gra)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "G³ówne menu ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~T~ryb dla leworêcznych"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~S~terowanie walcz±cym Indym"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Wy¶wietl kursor myszy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Przyci±ganie do krawêdzi"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Przesuniêcie X ekranu do dotykania"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Przesuniêcie Y ekranu do dotykania"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "U¿yj kursora w stylu trackpada z laptopa do sterowania"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Puknij raz, aby klikn±æ LPM; dwa razy, aby klikn±æ PPM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Czu³o¶æ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Wstêpna skala górnego ekranu:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Skalowanie g³ównego ekranu:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Skalowanie sprzêtowe (szybsze, ale ni¿szej jako¶ci)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Skalowanie programowe (wy¿szej jako¶ci, ale wolniejsze)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Nieskalowany (musisz przewijaæ w lewo i prawo)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Jasno¶æ:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "D¼wiêk wysokiej jako¶ci (wolniejszy) (restart)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Nie wy³±czaj zasilania"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Tryb touchpada w³±czony."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Tryb touchpada wy³±czony."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Tryb touchpada w³±czony."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Tryb touchpada wy³±czony."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Zwyk³y (bez skalowania)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Zwyk³y (bez skalowania)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Prze³±czaj pomiêdzy filtrami grafiki"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Renderer:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL - normalny"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL - zachow."
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL - pierw."
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Obecny tryb wideo:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Do góry"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "W dó³"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "W lewo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "W prawo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Klikniêcie LPM"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Klikniêcie PPM"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Strefa"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Wielozadaniowy"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Zmieñ postaæ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Pomiñ tekst"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Tryb szybki"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debugger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menu globalne"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Wirtualna klawiatura"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Mapper klawiszy"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Chcesz wyj¶æ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Wideo"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Obecny tryb wideo:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Podwójny atak"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Pionowy underscan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Poziomy underscan:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Wej¶cie"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Czu³o¶æ pada GC:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Przy¶pieszenie pada GC:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Stan:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Nieznany"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Zamontuj DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Odmontuj DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Serwer:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Udzia³:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Nazwa u¿ytkownika:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Has³o:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Inicjalizacja sieci"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Zamontuj SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Odmontuj SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD zamontowane pomy¶lnie"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "B³±d przy montowaniu DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD nie zamontowane"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Sieæ dzia³a, udzia³ zamontowany"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Sieæ dzia³a"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", b³±d podczas montowania udzia³u"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", udzia³ nie zosta³ zamontowany"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Sieæ nie dzia³a"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Inicjalizacja sieci"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Przekroczono limit czasu inicjalizacji sieci"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Sieæ nie zosta³a zainicjalizowana (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Schowaj pasek narzêdzi"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Poka¿ klawiaturê"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "W³±cz/wy³±cz d¼wiêk"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Klikniêcie PPM"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Poka¿/ukryj kursor"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Swobodne rozgl±danie siê"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Przybli¿"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Oddal"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Przypisz klawisze"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Kursor do góry"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Kursor w dó³"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Kursor w lewo"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Kursor w prawo"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Chcesz wczytaæ b±d¼ zapisaæ grê?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Na pewno chcesz wyj¶æ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Klawiatura"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Obrót"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "U¿yj sterownika SDL "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Obraz "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Wykonaæ automatyczne skanowanie?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Przypisz dzia³anie PPM"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "Musisz przypisaæ klawisz do 'PPM', by zagraæ w tê grê"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Przypisz chowanie paska narzêdzi"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr "Musisz przypisaæ przycisk 'Schowaj pasek narzêdzi', by zagraæ w tê grê"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Przypisz Przybli¿anie (opcjonalne)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Przypisz Oddalenie (opcjonalne)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Nie zapomnij przypisaæ klawisza 'Ukryj pasek narzêdzi', by widzieæ ca³y "
-"ekwipunek"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Na pewno chcesz skasowaæ ten zapis?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Piê¶æ"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Chcesz wyj¶æ?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "G³o¶no¶æ"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "G³o¶no¶æ"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Wykryto %d nowych gier."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argument wiersza poleceñ nie zosta³ przetworzony"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Emulator FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Niew³a¶ciwa ¶cie¿ka"
+# Polish translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Grajpopolsku.pl <grajpopolsku@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-05-02 12:09+0100\n"
+"Last-Translator: \n"
+"Language-Team: Grajpopolsku.pl <grajpopolsku@gmail.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-2\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Polski\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-Language: Polish\n"
+"X-Poedit-Country: POLAND\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(skompilowany %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Wkompilowane funkcje:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Dostêpne silniki:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "W górê"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Przejd¼ do poprzedniego katalogu"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "W górê"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Anuluj"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Wybierz"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Zamknij"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Klikniêcie"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Wy¶wietl klawiaturê"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Dostosuj klawisze"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Wybierz akcjê do przypisania"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Przypisz"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Wybierz akcjê i kliknij 'Przypisz'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Przypisany klawisz : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Przypisany klawisz: brak"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Wybierz akcjê"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Wci¶nij klawisz do przypisania"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Gra"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Krótki identyfikator gry u¿ywany do rozpoznawania zapisów i uruchamiania gry "
+"z linii komend"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nazwa:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Pe³ny tytu³ gry:"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nazwa:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Jêzyk:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr "Jêzyk gry. Nie zmieni to hiszpañskiej wersji gry w angielsk±."
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<domy¶lne>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Platforma:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Platforma, na któr± stworzono grê"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Platforma:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafika"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "Grafika"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "U¿yj w³asnych ustawieñ grafiki"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "U¿yj w³asnych ustawieñ grafiki"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "D¼wiêk"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "U¿yj w³asnych ustawieñ d¼wiêku"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "U¿yj w³asnych ustawieñ d¼wiêku"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "G³o¶no¶æ"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "G³o¶no¶æ"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "U¿yj w³asnych ustawieñ g³o¶no¶ci"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "U¿yj w³asnych ustawieñ g³o¶no¶ci"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "U¿yj w³asnych ustawieñ MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "U¿yj w³asnych ustawieñ MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "U¿yj w³asnych ustawieñ MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "U¿yj w³asnych ustawieñ MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "¦cie¿ki"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "¦cie¿ki"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "¦cie¿ka gry:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "¦cie¿ka gry:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "¦c. dodatków:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Okre¶la ¶cie¿kê dodatkowych danych gry"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "¦c. dodatków:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "¦cie¿ka zapisów:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Okre¶la gdzie zapisywaæ stan gry"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "¦cie¿ka zapisów:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Brak"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Domy¶lnie"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Wybierz SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Wybierz katalog z plikami gry"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Wybierz dodatkowy katalog gry"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Wybierz katalog dla zapisów"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Identyfikator jest ju¿ zajêty. Wybierz inny."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~Z~akoñcz"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Zakoñcz ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "I~n~formacje..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "O ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pcje..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Zmieñ ustawienia ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tart"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Rozpocznij wybran± grê"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~W~czytaj..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Wczytaj zapis wybranej gry"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~D~odaj grê..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Przytrzymaj Shift, by dodawaæ zbiorowo"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~E~dytuj grê..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Zmieñ opcje gry"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~U~suñ grê"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Usuwa grê z listy. Pliki gry pozostaj± nietkniête"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~D~odaj grê..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~E~dytuj grê..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~U~suñ grê"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Wyszukaj grê na li¶cie"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Szukaj"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Wyczy¶æ"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Wczytaj grê:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Wczytaj"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Chcesz uruchomiæ masowy detektor gier? Mo¿e dodaæ wiele tytu³ów do listy"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Tak"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nie"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM nie mo¿e otworzyæ katalogu!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM nie znalaz³ ¿adnej gry w tym katalogu!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Wybierz grê:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Na pewno chcesz usun±æ tê grê z konfiguracji?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Ta gra nie wspiera wczytywania z launchera."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM nie znalaz³ silnika zdolnego uruchomiæ wybran± grê!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Masowe dodawanie..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Masowe dodawanie..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... postêp ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Skanowanie zakoñczone!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Przeskanowano %d katalogów ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Wykryto %d nowych gier..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Nigdy"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "co 5 min"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "co 10 min"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "co 15 min"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "co 30 min"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Brak"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Tryb grafiki:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Renderer:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Specjalne tryby ditheringu wspierane przez niektóre gry"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Tryb pe³noekranowy"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Korekcja formatu obrazu"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Korekcja formatu obrazu dla gier 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "anty-dithering EGA"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "W³±cz anty-dithering we wspieranych grach EGA"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Pref. urz±dzenie:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Urz. muzyczne:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Okre¶la preferowane urz±dzenie d¼wiêkowe lub emulator karty d¼wiêkowej"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Okre¶la wyj¶ciowe urz±dzenie d¼wiêkowe lub emulator karty d¼wiêkowej"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Pref. urz±dzenie:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Urz. muzyczne:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Emulator AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib jest u¿ywany do muzyki w wielu grach"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Czêst. wyj.:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Wy¿sze warto¶ci daj± lepsz± jako¶æ d¼wiêku, ale mog± byæ nieobs³ugiwane "
+"przez twoj± kartê d¼wiêkow±"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Urz±dzenie GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Okre¶la domy¶lne urz±dzenie d¼wiêkowe dla wyj¶cia General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Nie u¿ywaj muzyki General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "U¿yj pierwszego dostêpnego urz±dzenia"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFont jest wspierany przez niektóre karty d¼wiêkowe, Fluidsynth i "
+"Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Tryb miksowanego AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "U¿ywaj obu generatorów d¼wiêku, MIDI i AdLib, jednocze¶nie"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Wzm. MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Urz±dzenie MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Okre¶la domy¶lne urz±dzenie d¼wiêku dla wyj¶cia Roland MT-32/LAPC1/CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Prawdziwy Roland MT-32 (wy³±cz emulacjê GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Zaznacz, je¶li chcesz u¿ywaæ swojej prawdziwej karty kompatybilnej z Roland "
+"pod³±czonej do twojego komputera"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Prawdziwy Roland MT-32 (brak emulacji GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "W³±cz tryb Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Wy³±cza mapowanie General MIDI dla gier ze ¶cie¿k± d¼wiêkow± Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Nie u¿ywaj muzyki Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Tekst i mowa:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Mowa"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Napisy"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Oba"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Prêd. napisów:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Tekst i mowa:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Mowa"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Napisy"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Oba"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Wy¶wietlaj napisy i odtwarzaj mowê"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Prêd. napisów:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "G³o¶no¶æ muzyki:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "G³o¶no¶æ muzyki:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Wycisz"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "G³. efekt. d¼w.:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "G³o¶no¶æ efektów d¼w."
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "G³. efekt. d¼w.:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "G³o¶no¶æ mowy:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "G³o¶no¶æ mowy:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "¦cie¿ka stylu:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "¦cie¿ka stylu:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr "Okre¶la ¶cie¿kê dla dodatkowych danych dla wszystkich gier lub ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "¦cie¿ka wtyczek:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "¦cie¿ka wtyczek:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Ró¿ne"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Ró¿ne"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Styl:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Renderer interf.:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autozapis:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autozapis:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Klawisze"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Jêzyk interfejsu:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Jêzyk interfejsu ScummVM"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Musisz zrestartowaæ ScummVM, by zmiany zosta³y uwzglêdnione"
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Wybierz katalog zapisów"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "Ten katalog jest zabezpieczony przed zapisem. Wybierz inny."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Wybierz katalog dla stylów GUI."
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Wybierz katalog dla dodatkowych plików"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Wybierz katalog dla wtyczek"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Wybrany styl nie obs³uguje obecnego jêzyka. Je¶li chcesz go u¿ywaæ, zmieñ "
+"najpierw swój jêzyk."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Brak daty"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Brak godziny"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Brak czasu gry"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Skasuj"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Na pewno chcesz skasowaæ ten zapis?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Data: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Czas: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Czas gry: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Zapis bez nazwy"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Wybierz styl"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Wy³±czona grafika"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Wy³±czona grafika"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standardowy renderer (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standardowy (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Wyg³adzany renderer (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Wyg³adzany (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Silnik nie wspiera poziomu debugowania '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Pomiñ"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Wstrzymaj"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Pomiñ liniê"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "B³±d podczas uruchamiania gry:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Nie uda³o siê znale¼æ silnika zdolnego do uruchomienia zaznaczonej gry"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Brak b³êdu"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Nie znaleziono plików gry"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Identyfikator gry nie jest wspierany"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Niewspierany tryb kolorów"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Brak praw do odczytu"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Brak praw do zapisu"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "¦cie¿ka nie istnieje"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "¦cie¿ka nie jest katalogiem"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "¦cie¿ka nie jest plikiem"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Nie mo¿na utworzyæ pliku"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Odczyt danych nieudany"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Zapisywanie danych nie powiod³o siê"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Nie uda³o siê znale¼æ odpowiedniej wtyczki silnika"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "Silnik nie wspiera zapisu stanu gry"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Nieznany b³±d"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Zielony Hercules"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Bursztynowy Hercules"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Zielony Hercules"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Bursztynowy Hercules"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~W~znów"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~W~czytaj"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~Z~apisz"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pcje"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~P~omoc"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "~I~nformacje"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~P~owrót do launchera"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~P~owrót do launchera"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Zapis:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Zapisz"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~A~nuluj"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~K~lawisze"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Obecny tryb wideo:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Na pewno chcesz wyj¶æ? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Na pewno chcesz wyj¶æ? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Zakoñcz"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Wybierz styl"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~P~oprzedni"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~N~astêpny"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~Z~amknij"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Mowa"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Napisy"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Napisy"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Mowa"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Skróty klawiaturowe:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Okno Zapisz / Wczytaj"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Pomiñ linijkê tekstu"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Pomiñ scenkê"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Spacja"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Wstrzymaj grê"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Wczytaj stan gry 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Zapisz stan gry 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "W³±cz/wy³±cz pe³ny ekran"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Zwiêksz/zmniejsz g³o¶no¶æ muzyki"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Zwiêksz/zmniejsz prêdko¶æ tekstu"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Symuluje lewy przycisk myszy"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Symuluje prawy przycisk myszy"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Specjalne skróty klawiaturowe:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Schowaj / poka¿ konsolê"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "W³±cz debugger"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Poka¿ zu¿ycie pamiêci"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "W³±cz w trybie szybkim (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "W³±cz w trybie bardzo szybkim (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "W³±cz/wy³±cz przechwytywanie myszy"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Prze³±czaj pomiêdzy filtrami grafiki"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Zwiêksz / zmniejsz wspó³czynnik skalowania"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Miej na uwadze, ¿e u¿ywanie ctrl-f"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " i ctrl-g nie jest wskazane"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " poniewa¿ mog± one spowodowaæ zawieszenie siê,"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " b±d¼ nieodpowiednie zachowanie gry."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Tkanie splotów na klawiaturze:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "G³ówne sterowanie gry:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Pchnij"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Poci±gnij"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Daj"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Otwórz"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Id¼ do"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "We¼"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "U¿yj"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Czytaj"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Nowy dzieciak"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "W³±cz"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Wy³±cz"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Podejd¼ do"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Podnie¶"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Czym jest"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Otwórz"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Za³ó¿"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Zdejmij"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Napraw"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Prze³±cz"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Spójrz"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Rozmawiaj"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Podró¿uj"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Do Henry'ego / Do Indy'ego"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "zagraj c-moll na k±dzieli"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "zagraj D na k±dzieli"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "zagraj E na k±dzieli"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "zagraj F na k±dzieli"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "zagraj G na k±dzieli"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "zagraj A na k±dzieli"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "zagraj B na k±dzieli"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "zagraj C-dur na k±dzieli"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "pchnj"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "poci±gnij (Yank)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Rozmawiaj z"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Spójrz na"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "w³±cz"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "wy³±cz"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Strza³ka do góry"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Pod¶wietl poprzedni dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Strza³ka w dó³"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Pod¶wietl nastêpny dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Id¼"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Ekwipunek"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Przedmiot"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Czarno-bia³y / Kolorowy"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Oczy"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Jêzyk"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Piê¶æ"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Kopniêcie"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Zbadaj"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Zwyk³y kursor"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Zapis / Odczyt / Opcje"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Reszta sterowania gry:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Ekwipunek:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Przewiñ listê do góry"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Przewiñ listê w dó³"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Przedmiot u góry, z lewej"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Przedmiot na dole, z lewej"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Przedmiot u góry, z prawej"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Przedmiot na dole, z prawej"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Przedmiot na ¶rodku, z lewej"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Przedmiot na ¶rodku, z prawej"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Zmiana postaci:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Drugi dzieciak"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Trzeci dzieciak"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Sterowanie podczas walki (klaw. num.):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Odsuñ siê"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Wysoki blok"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "¦rodkowy blok"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Dolny blok"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Wysokie uderzenie"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "¦rodkowe uderzenie"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Niskie uderzenie"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Te s± dla Indy'ego po lewej."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Kiedy Indy jest po prawej,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4, i 1 zostaj± zamienione"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "na 9, 6 i 3."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Sterowanie dwup³atowcem (klaw. num.):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Leæ do góry, w lewo"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Leæ w lewo"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Leæ na dó³, w lewo"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Leæ do góry"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Leæ prosto"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Leæ w dó³"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Leæ do góry, w prawo"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Leæ w prawo"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Leæ w dó³, w prawo"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Nie uda³o siê wczytaæ stanu gry z pliku:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Pomy¶lnie zapisano stan w pliku:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Zwykle w tym momencie uruchomi³oby siê Maniac Mansion, ale ScummVM jeszcze "
+"tego nie obs³uguje. Aby zagraæ, u¿yj \"Dodaj grê...\" z menu startowego "
+"ScummVM i wybierz podkatalog \"Maniac\" z katalogu gry Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~T~ryb zip aktywny"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "~P~rzej¶cia w³±czone"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "G³ówne menu ScummVM"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~E~fekty wody w³±czone"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Wznów grê:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Wznów"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Nie uda³o siê wczytaæ stanu gry z pliku:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Nie uda³o siê zapisaæ stanu gry do pliku:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Zapis:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Wczytaj grê:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Zapis:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Emulator OPL MAME"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Emulator OPL DOSBox"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Brak muzyki"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulator d¼wiêku Amigi"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Emulator AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Emulator Apple II GS (NIE ZAIMPLEMENTOWANY)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulator d¼wiêku C64"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Inicjalizacja emulatora MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Emulator MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Emulator brzêczyka"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Emulator IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Klawisze:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (Aktywny)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (Globalny)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (Gra)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "G³ówne menu ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~T~ryb dla leworêcznych"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~S~terowanie walcz±cym Indym"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Wy¶wietl kursor myszy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Przyci±ganie do krawêdzi"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Przesuniêcie X ekranu do dotykania"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Przesuniêcie Y ekranu do dotykania"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "U¿yj kursora w stylu trackpada z laptopa do sterowania"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Puknij raz, aby klikn±æ LPM; dwa razy, aby klikn±æ PPM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Czu³o¶æ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Wstêpna skala górnego ekranu:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Skalowanie g³ównego ekranu:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Skalowanie sprzêtowe (szybsze, ale ni¿szej jako¶ci)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Skalowanie programowe (wy¿szej jako¶ci, ale wolniejsze)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Nieskalowany (musisz przewijaæ w lewo i prawo)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Jasno¶æ:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "D¼wiêk wysokiej jako¶ci (wolniejszy) (restart)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Nie wy³±czaj zasilania"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Tryb touchpada w³±czony."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Tryb touchpada wy³±czony."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Tryb touchpada w³±czony."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Tryb touchpada wy³±czony."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Zakoñcz ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Zwyk³y (bez skalowania)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Zwyk³y (bez skalowania)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "W³±cz/wy³±cz korekcjê formatu obrazu"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Prze³±czaj pomiêdzy filtrami grafiki"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Renderer:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL - normalny"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL - zachow."
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL - pierw."
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Obecny tryb wideo:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Do góry"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "W dó³"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "W lewo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "W prawo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Klikniêcie LPM"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Klikniêcie PPM"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Strefa"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Wielozadaniowy"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Zmieñ postaæ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Pomiñ tekst"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Tryb szybki"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debugger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menu globalne"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Wirtualna klawiatura"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Mapper klawiszy"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Chcesz wyj¶æ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Wideo"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Obecny tryb wideo:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Podwójny atak"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Pionowy underscan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Poziomy underscan:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Wej¶cie"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Czu³o¶æ pada GC:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Przy¶pieszenie pada GC:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Stan:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Nieznany"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Zamontuj DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Odmontuj DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Serwer:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Udzia³:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Nazwa u¿ytkownika:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Has³o:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Inicjalizacja sieci"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Zamontuj SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Odmontuj SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD zamontowane pomy¶lnie"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "B³±d przy montowaniu DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD nie zamontowane"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Sieæ dzia³a, udzia³ zamontowany"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Sieæ dzia³a"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", b³±d podczas montowania udzia³u"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", udzia³ nie zosta³ zamontowany"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Sieæ nie dzia³a"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Inicjalizacja sieci"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Przekroczono limit czasu inicjalizacji sieci"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Sieæ nie zosta³a zainicjalizowana (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Schowaj pasek narzêdzi"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Poka¿ klawiaturê"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "W³±cz/wy³±cz d¼wiêk"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Klikniêcie PPM"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Poka¿/ukryj kursor"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Swobodne rozgl±danie siê"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Przybli¿"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Oddal"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Przypisz klawisze"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Kursor do góry"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Kursor w dó³"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Kursor w lewo"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Kursor w prawo"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Chcesz wczytaæ b±d¼ zapisaæ grê?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Na pewno chcesz wyj¶æ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Klawiatura"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Obrót"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "U¿yj sterownika SDL "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Obraz "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Wykonaæ automatyczne skanowanie?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Przypisz dzia³anie PPM"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "Musisz przypisaæ klawisz do 'PPM', by zagraæ w tê grê"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Przypisz chowanie paska narzêdzi"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr "Musisz przypisaæ przycisk 'Schowaj pasek narzêdzi', by zagraæ w tê grê"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Przypisz Przybli¿anie (opcjonalne)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Przypisz Oddalenie (opcjonalne)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Nie zapomnij przypisaæ klawisza 'Ukryj pasek narzêdzi', by widzieæ ca³y "
+"ekwipunek"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Na pewno chcesz skasowaæ ten zapis?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Piê¶æ"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Chcesz wyj¶æ?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "G³o¶no¶æ"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "G³o¶no¶æ"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Dodaj grê..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Dodaj grê..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Wykryto %d nowych gier."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argument wiersza poleceñ nie zosta³ przetworzony"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "Emulator FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Niew³a¶ciwa ¶cie¿ka"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 2ea8bfe237..cf873581e8 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -1,2632 +1,2774 @@
-# Portuguese (Brazilian) translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Saulo Benigno <saulobenigno@gmail.com>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-05-03 19:11-0300\n"
-"Last-Translator: Saulo Benigno <saulobenigno@gmail.com>\n"
-"Language-Team: ScummBR (www.scummbr.com) <scummbr@yahoo.com.br>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Portugues (Brasil)\n"
-"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-"X-Poedit-Language: Portuguese\n"
-"X-Poedit-Country: BRAZIL\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(desenvolvido em %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "Funções compiladas em:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Programas disponíveis:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Acima"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Ir para o diretório anterior"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Acima"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Cancelar"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Escolher"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Fechar"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Clique do mouse"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Mostrar teclado"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Remapear teclas"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Selecione uma ação para mapear"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Mapear"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Selecione uma ação e clique 'Mapear'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Tecla associada: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Tecla associada: nenhuma"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Por favor selecione uma ação"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Pressione a tecla para associar"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Jogo"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "Código:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Código identificador usado para se referir a jogos salvos e execução do jogo "
-"a partir da linha de comando"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "Código:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Nome:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Título completo do jogo"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Nome:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Idioma:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr "Idioma do jogo. Isto não irá passar seu jogo Inglês para Português"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<padrão>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Sistema:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Sistema que o jogo foi desenvolvido originalmente"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Sistema:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Gráficos"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Sobrepor configuração global de gráficos"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Sobrepor configuração global de gráficos"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Áudio"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Sobrepor configuração global de áudio"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Sobrepor configuração global de áudio"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volume"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Sobrepor configuração global de volume"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Sobrepor configuração global de volume"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Sobrepor configuração global de MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Sobrepor configuração global de MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Sobrepor configuração global de MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Sobrepor configuração global de MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Pastas"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Pastas"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Pasta do Jogo:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Pasta do Jogo:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Pasta de Extras"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Especifique a pasta para dados utilizados no jogo"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Pasta de Extras"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Pasta para Salvar"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Especifique onde guardar seus jogos salvos"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Pasta para Salvar"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Nenhum(a)"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Padrão"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Selecione o SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Selecione a pasta com os arquivos do jogo"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Selecione a pasta adicional do jogo"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Selecione a pasta para os jogos salvos"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Este código já esta sendo utilizado. Por favor, escolha outro."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~S~air"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Sair do ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "So~b~re..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Sobre o ScumnmVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~O~pções"
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Alterar opções globais do ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~I~niciar"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Iniciar jogo selecionado"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~C~arregar"
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Carregar jogo salvo do jogo selecionado"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~A~dicionar Jogo..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Segure Shift para Multi-Adição"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "~E~ditar Jogo..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Alterar opções do jogo"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~R~emover Jogo"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr ""
-"Remover jogo da lista. Os arquivos de dados do jogo permanecem intactos"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~A~dicionar Jogo..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "~E~ditar Jogo..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~R~emover Jogo"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Pesquisar na lista de jogos"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Pesquisar:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Limpar valor"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Carregar jogo:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Carregar"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Você realmente deseja adicionar vários jogos ao mesmo tempo? Isso poderá "
-"resultar em uma adição gigantesca de jogos."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Sim"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Não"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM não conseguiu abrir a pasta especificada!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM não encontrou nenhum jogo na pasta especificada!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Escolha o jogo:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Você deseja realmente remover a configuração deste jogo?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Este jogo não suporta abrir jogos a partir do menu principal."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM não conseguiu encontrar qualquer programa capaz de rodar o jogo "
-"selecionado!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Multi-Adição..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Multi-Adição..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Adicionar Jogo..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Adicionar Jogo..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... progresso ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Busca completa!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "%d pasta(s) pesquisada(s)"
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Encontrado(s) %d novo(s) jogo(s)"
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Nunca"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "a cada 5 mins"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "a cada 10 mins"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "a cada 15 mins"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "a cada 30 mins"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Nenhum(a)"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Modo gráfico:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Renderização"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Modos especiais de dithering suportados por alguns jogos"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Modo Tela Cheia"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Correção de proporção"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Correção de proporção para jogos 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA sem dithering"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Habilita EGA sem dithering em jogos com suporte"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Dispositivo pref.:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Disp. de música:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Especifica o dispositivo de som preferido ou emulador de placa de som"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Especifica o dispositivo de saída de som ou emulador de placa de som"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Dispositivo pref.:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Dispositivo de música:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "Emulador AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib é utilizado para música em vários jogos"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Taxa de saída:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Maior valor especifica melhor qualidade de som, mas pode não ser suportado "
-"por sua placa de som"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "Dispositivo GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Especifique o dispositivo de som padrão para a saída General MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Não usar música General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Usar o primeiro dispositivo disponível"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont é suportado por algumas placas de som, Fluidsynth e Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Mixar AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Usar MIDI e AdLib juntos na geração de som"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "Ganho MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Dispositivo MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Especifique o dispositivo de som padrão para a saída Roland MT-32/LAPC1/"
-"CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Roland MT-32 real (desligar emulação GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Verifique se você quer usar o seu dispositivo de hardware de som compatível "
-"com Roland"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Roland MT-32 real (sem emulação GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Ligar modo Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Desliga o mapeamento General MIDI para jogos com trilha sonora Roland MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Não usar música Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Texto e Voz:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Voz"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Legendas"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Ambos"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Rapidez legendas:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Texto e Voz:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Voz"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Legs"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Ambos"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Mostrar legenda e vozes (dublagem)"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Velocidade das legendas:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Volume da Música:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Volume da Música:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Mudo"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "Volume dos Sons:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volume dos efeitos sonoros especiais"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "Volume dos Sons:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Volume da Voz:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Volume da Voz:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Pasta do Tema"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Pasta do Tema"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"Especifica a pasta para os dados adicionais usados por todos os jogos ou "
-"ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Pasta de Plugins:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Pasta de Plugins:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Outros"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Outros"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "Renderizador GUI:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Auto-Salvar:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Auto-Salvar:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Teclas"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Idioma do GUI:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Linguagem do ScummVM GUI"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Você tem que reiniciar o ScummVM para funcionar."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Selecione a pasta para o jogos salvos"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "O diretório escolhido não pode ser usado. Por favor, selecione outro."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Selecione a pasta para os temas da Interface de Uso Gráfico"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Selecione a pasta para os arquivos extras"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Selecione a pasta para os plugins"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"O tema que você selecionou não suporta seu idioma atual. Se você quiser usar "
-"este tema você precisa mudar para outro idioma."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Sem data salva"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Sem hora salva"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Sem tempo de jogo salvo"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Excluir"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Você realmente quer excluir este jogo salvo?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Data:"
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Hora:"
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Tempo de jogo:"
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Não-titulado arquivo de save"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Selecione um Tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "GFX desabilitado"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "GFX desabilitado"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Renderizador padrão (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Padrão (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Renderizador Anti-Serrilhamento (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Anti-Serrilhamento (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Essa engine não suporta o nível de debug '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Menu"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Pular"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Pausar"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Pula linha"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Erro ao executar o jogo:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr ""
-"Não foi possível encontrar qualquer programa capaz de rodar o jogo "
-"selecionado"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Nenhum erro"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Dados do jogo não encontrado"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "ID de jogo não suportado"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "Modo de cores não suportado"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Permissão para \"ler\" negada"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Permissão para \"gravar\" negada"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Caminho não existe"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Caminho não é uma pasta"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Caminho nao é um arquivo"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Caminho não é um arquivo"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "Falha na leitura"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Falha na gravação"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Não foi possível encontrar engine adequada"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "A engine atual não suporta salvar o progresso do jogo"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Erro desconhecido"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules Green"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules Amber"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules Green"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules Amber"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~V~oltar ao jogo"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~C~arregar"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~S~alvar"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~O~pções"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~A~juda"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "So~b~re"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~V~oltar ao menu"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~V~oltar ao menu"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Salvar jogo:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Salvar"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "~C~ancelar"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~eclas"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Modo de vídeo atual:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Habilita correção de proporção"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~A~nterior"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~P~róximo"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~F~echar"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Comandos de teclado comuns:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Menu Salvar / Carregar"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Pula linha de texto"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Pula cena"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Espaço"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pausar jogo:"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Carregar estado do jogo 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Salvar estado do jogo 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Sair"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Habilita Tela Cheia"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Volume da música"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Velocidade do texto devagar / rápido"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simula botão esquerdo do mouse"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simula botão direito do mouse"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Comandos de teclado especiais:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Mostrar / Ocultar console"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Inicia o depurador"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Exibe o consumo de memória"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Joga em modo rápido (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Joga em modo super rápido (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Habilita captura do mouse"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Alterna entre os filtros gráficos"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Aumenta / Diminui o fator de escala"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Habilita correção de proporção"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* A utilização de ctrl-f ou"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g não é recomendada"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " visto que poderá causar travas"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " ou procedimentos estranhos nos jogos."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Tecer feitiços no teclado:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Controles principais do jogo:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Empurar"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Puxar"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Dar"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Abrir"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Ir para"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Pegar"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Usar"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Ler"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Nova criança"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Ligar"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Desligar"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Andar até"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Pegar"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "O que é"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Destravar"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Vestir"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Decolar"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Consertar"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Trocar"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Olhar"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Falar"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Viajar"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Para Henry / Para Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "toca dó menor no fio"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "toca D no fio"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "toca E no fio"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "toca F no fio"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "toca G no fio"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "toca A no fio"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "toca B no fio"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "toca dó maior no fio"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Empurrar"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Puxar"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Falar"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Olhar para"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Ligar"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Desligar"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "TeclaCima"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Destacar diálogo anterior"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "TeclaBaixo"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Destacar próximo diálogo"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Andar"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventário"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objeto"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Preto e Branco / Cor"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Olhos"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Língua"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Soco"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Chute"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Examinar"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Cursor normal"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comunicador"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Salvar / Carregar / Opções"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Outros controles do jogo:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventário:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Subir na lista"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Descer na lista"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Item da esquerda superior"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Item da esquerda inferior"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Item da direita superior"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Item da direita inferior"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Item do meio na esquerda"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Item do meio na direita"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Trocando personagens:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Segunda criança"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Terceira criança"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Controle de luta (teclado numérico):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Passo para trás"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Defender em cima"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Defender no meio"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Defender embaixo"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Soco em cima"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Soco no meio"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Soco embaixo"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Estes são para o Indy na esquerda."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "Quando Indy estiver na direita,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4 e 1 são trocados por"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 e 3, respectivamente."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Controles do avião (teclado numérico)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Voar para esquerda superior"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Voar para esquerda"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Voar para esquerda inferior"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Voar para cima"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Voar reto"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Voar para baixo"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Voar para direita superior"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Voar para direita"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Voar para direita inferior"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Falha ao salvar o estado do jogo para o arquivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Falha ao carregar o estado do jogo a partir do arquivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Jogo salvo com sucesso no arquivo:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"\"Na versão original, o jogo Maniac Mansion rodaria agora mesmo. Porem a "
-"atual versão do ScummVM não suporta essa ação. Para jogar Maniac Mansion, "
-"adicione o jogo normalmente no ScummVM. Ele se encontra em um diretório "
-"dentro da pasta do jogo Day of the Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "Modo ~Z~ip ativado"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "Modo ~T~ransições ativado"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "Modo ~E~feitos de água ativado"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Restaurar jogo:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Restaurar"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Falha ao carregar o estado do jogo a partir do arquivo:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Falha ao salvar o estado do jogo para o arquivo:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Falha ao salvar o estado do jogo para o arquivo:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Falha ao salvar o estado do jogo para o arquivo:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Salvar jogo:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Carregar jogo:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Salvar jogo:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "Emulador MAME OPL"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "Emulador DOSBox OPL"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Sem música"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Emulador Som Amiga"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "Emulador AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Emulador Apple II GS (NÃO IMPLEMENTADO)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "Emulador Som C64"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Inicializando Emulador MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "Emulador MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "Emulador PC Speaker"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "Emulador IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Mapa de Teclas:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr "(Ativo)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr "(Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr "(Jogo)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "MIDI Windows"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "Menu Principal ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "Modo ~M~ão esquerda"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "Controles de luta ~I~ndy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Mostrar o cursor do mouse"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Ajustar às extremidades"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Equivalência do Toque X"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Equivalência do Toque Y"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Usar controle de curso do touchpad"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Um toque para o clique esquerdo, e toque duplo para o clique direito"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Sensibilidade"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Topo inicial para a escala de tela:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Escala de tela principal:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Escala pelo Hardware (rápido, mas com baixa qualidade)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Escala pelo Software (qualidade boa, mas com lentidão)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Sem escala (você precisa rolar para a esquerda e para a direita)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Brilho:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Som de alta qualidade (mais lento) (reiniciar)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Desativar desligamento"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Modo Touchpad ligado."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Modo Touchpad desligado."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Modo Touchpad ligado."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Modo Touchpad desligado."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normal (sem escala)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normal (sem escala)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Habilita correção de proporção"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Habilita correção de proporção"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Alterna entre os filtros gráficos"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Renderização"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL Normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL Conserve"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Modo de vídeo atual:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Cima"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Baixo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Esquerda"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Direita"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Clique com o botão esquerdo"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Clique com o botão direito"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zona"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multi-função"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Trocador de caracteres"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Pular texto"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Modo rápido"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Depurador"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Menu global"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Teclado virtual"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Mapeador de Teclas"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Você deseja sair ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Vídeo"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Modo de vídeo atual:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Ataque-duplo"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Sub-escaneamento horizontal:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Sub-escaneamento vertical:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Entrada"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "Sensibilidade do CG Pad:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "Aceleração do CG Pad:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Desconhecido"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Montar DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Desmontar DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Servidor:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Compartilhamento:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Nome de usuário:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Senha:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Iniciar rede"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Montar SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Desmontar SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD montado com sucesso"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Erro ao montar o DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD não montado"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Conexão ativa, compartilhamento ativado"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Conexão ativa"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", erro ao montar o compartilhamento"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", compartilhamento não montado"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Conexão caiu"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Inicialização de rede"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Tempo limite para iniciar a conexão de rede"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Rede não inicializada (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Ocultar a barra de ferramentas"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Mostrar Teclado"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Som on/off"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Clique com o botão direito"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Mostrar/Ocultar seu cursor"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Olhar livre"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Zoom para cima"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zoom para baixo"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Botão de ligadura"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Cursor para cima"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Cursor para baixo"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Cursor para a esquerda"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Cursor para a direita"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Você deseja carregar ou salvar o jogo?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " Tem certeza de que deseja sair? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Teclado"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Rotacionar"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Usando driver SDL"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Tela"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Você quer executar uma busca automática?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Mapear ação \"Clique da Direita\""
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Você precisa mapear uma tecla para ação do \"Clique da Direita\" nesse jogo"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Mapear \"Ocultar barra de ferramentas\""
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Você precisa mapear uma tecla para ação do \"Ocultar barra de ferramentas\" "
-"nesse jogo"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Mapear Zoom para Cima (opcional)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Mapear Zoom para Baixo (opcional)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Não se esqueça de mapear uma tecla para \"Ocultar a barra de ferramentas\" "
-"para ver todo o seu inventário"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Você realmente quer excluir este jogo salvo?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Soco"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Você deseja sair ?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volume"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Encontrado(s) %d novo(s) jogo(s)"
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "Linha de comando não processada"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "Emulador FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Pasta inválida"
+# Portuguese (Brazilian) translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Saulo Benigno <saulobenigno@gmail.com>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-05-03 19:11-0300\n"
+"Last-Translator: Saulo Benigno <saulobenigno@gmail.com>\n"
+"Language-Team: ScummBR (www.scummbr.com) <scummbr@yahoo.com.br>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Portugues (Brasil)\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Poedit-Language: Portuguese\n"
+"X-Poedit-Country: BRAZIL\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(desenvolvido em %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "Funções compiladas em:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Programas disponíveis:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Acima"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Ir para o diretório anterior"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Acima"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Cancelar"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Escolher"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Fechar"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Clique do mouse"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Mostrar teclado"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Remapear teclas"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Selecione uma ação para mapear"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Mapear"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Selecione uma ação e clique 'Mapear'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Tecla associada: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Tecla associada: nenhuma"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Por favor selecione uma ação"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Pressione a tecla para associar"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Jogo"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "Código:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Código identificador usado para se referir a jogos salvos e execução do jogo "
+"a partir da linha de comando"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "Código:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Nome:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Título completo do jogo"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Nome:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Idioma:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr "Idioma do jogo. Isto não irá passar seu jogo Inglês para Português"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<padrão>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Sistema:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Sistema que o jogo foi desenvolvido originalmente"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Sistema:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Gráficos"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Sobrepor configuração global de gráficos"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Sobrepor configuração global de gráficos"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Áudio"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Sobrepor configuração global de áudio"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Sobrepor configuração global de áudio"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volume"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Sobrepor configuração global de volume"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Sobrepor configuração global de volume"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Sobrepor configuração global de MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Sobrepor configuração global de MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Sobrepor configuração global de MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Sobrepor configuração global de MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Pastas"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Pastas"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Pasta do Jogo:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Pasta do Jogo:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Pasta de Extras"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Especifique a pasta para dados utilizados no jogo"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Pasta de Extras"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Pasta para Salvar"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Especifique onde guardar seus jogos salvos"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Pasta para Salvar"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Nenhum(a)"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Padrão"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Selecione o SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Selecione a pasta com os arquivos do jogo"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Selecione a pasta adicional do jogo"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Selecione a pasta para os jogos salvos"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Este código já esta sendo utilizado. Por favor, escolha outro."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~S~air"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Sair do ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "So~b~re..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Sobre o ScumnmVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~O~pções"
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Alterar opções globais do ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~I~niciar"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Iniciar jogo selecionado"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~C~arregar"
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Carregar jogo salvo do jogo selecionado"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~A~dicionar Jogo..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Segure Shift para Multi-Adição"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "~E~ditar Jogo..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Alterar opções do jogo"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~R~emover Jogo"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr ""
+"Remover jogo da lista. Os arquivos de dados do jogo permanecem intactos"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~A~dicionar Jogo..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "~E~ditar Jogo..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~R~emover Jogo"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Pesquisar na lista de jogos"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Pesquisar:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Limpar valor"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Carregar jogo:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Carregar"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Você realmente deseja adicionar vários jogos ao mesmo tempo? Isso poderá "
+"resultar em uma adição gigantesca de jogos."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Sim"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Não"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM não conseguiu abrir a pasta especificada!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM não encontrou nenhum jogo na pasta especificada!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Escolha o jogo:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Você deseja realmente remover a configuração deste jogo?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Este jogo não suporta abrir jogos a partir do menu principal."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM não conseguiu encontrar qualquer programa capaz de rodar o jogo "
+"selecionado!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Multi-Adição..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Multi-Adição..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... progresso ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Busca completa!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "%d pasta(s) pesquisada(s)"
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Encontrado(s) %d novo(s) jogo(s)"
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Nunca"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "a cada 5 mins"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "a cada 10 mins"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "a cada 15 mins"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "a cada 30 mins"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Nenhum(a)"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Modo gráfico:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Renderização"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Modos especiais de dithering suportados por alguns jogos"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Modo Tela Cheia"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Correção de proporção"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Correção de proporção para jogos 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA sem dithering"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Habilita EGA sem dithering em jogos com suporte"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Dispositivo pref.:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Disp. de música:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Especifica o dispositivo de som preferido ou emulador de placa de som"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Especifica o dispositivo de saída de som ou emulador de placa de som"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Dispositivo pref.:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Dispositivo de música:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "Emulador AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib é utilizado para música em vários jogos"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Taxa de saída:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Maior valor especifica melhor qualidade de som, mas pode não ser suportado "
+"por sua placa de som"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "Dispositivo GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Especifique o dispositivo de som padrão para a saída General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Não usar música General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Usar o primeiro dispositivo disponível"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont é suportado por algumas placas de som, Fluidsynth e Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Mixar AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Usar MIDI e AdLib juntos na geração de som"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "Ganho MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Dispositivo MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Especifique o dispositivo de som padrão para a saída Roland MT-32/LAPC1/"
+"CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Roland MT-32 real (desligar emulação GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Verifique se você quer usar o seu dispositivo de hardware de som compatível "
+"com Roland"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Roland MT-32 real (sem emulação GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Ligar modo Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Desliga o mapeamento General MIDI para jogos com trilha sonora Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Não usar música Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Texto e Voz:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Voz"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Legendas"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Ambos"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Rapidez legendas:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Texto e Voz:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Voz"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Legs"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Ambos"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Mostrar legenda e vozes (dublagem)"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Velocidade das legendas:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Volume da Música:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Volume da Música:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Mudo"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "Volume dos Sons:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volume dos efeitos sonoros especiais"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "Volume dos Sons:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Volume da Voz:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Volume da Voz:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Pasta do Tema"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Pasta do Tema"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"Especifica a pasta para os dados adicionais usados por todos os jogos ou "
+"ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Pasta de Plugins:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Pasta de Plugins:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Outros"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Outros"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "Renderizador GUI:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Auto-Salvar:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Auto-Salvar:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Teclas"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Idioma do GUI:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Linguagem do ScummVM GUI"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Você tem que reiniciar o ScummVM para funcionar."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Selecione a pasta para o jogos salvos"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "O diretório escolhido não pode ser usado. Por favor, selecione outro."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Selecione a pasta para os temas da Interface de Uso Gráfico"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Selecione a pasta para os arquivos extras"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Selecione a pasta para os plugins"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"O tema que você selecionou não suporta seu idioma atual. Se você quiser usar "
+"este tema você precisa mudar para outro idioma."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Sem data salva"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Sem hora salva"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Sem tempo de jogo salvo"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Excluir"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Você realmente quer excluir este jogo salvo?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Data:"
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Hora:"
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Tempo de jogo:"
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Não-titulado arquivo de save"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Selecione um Tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "GFX desabilitado"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "GFX desabilitado"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Renderizador padrão (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Padrão (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Renderizador Anti-Serrilhamento (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Anti-Serrilhamento (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Essa engine não suporta o nível de debug '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Menu"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Pular"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Pausar"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Pula linha"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Erro ao executar o jogo:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr ""
+"Não foi possível encontrar qualquer programa capaz de rodar o jogo "
+"selecionado"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Nenhum erro"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Dados do jogo não encontrado"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "ID de jogo não suportado"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "Modo de cores não suportado"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Permissão para \"ler\" negada"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Permissão para \"gravar\" negada"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Caminho não existe"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Caminho não é uma pasta"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Caminho nao é um arquivo"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Caminho não é um arquivo"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "Falha na leitura"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Falha na gravação"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Não foi possível encontrar engine adequada"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "A engine atual não suporta salvar o progresso do jogo"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Erro desconhecido"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules Green"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules Amber"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules Green"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules Amber"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~V~oltar ao jogo"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~C~arregar"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~S~alvar"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~O~pções"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~A~juda"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "So~b~re"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~V~oltar ao menu"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~V~oltar ao menu"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Salvar jogo:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Salvar"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "~C~ancelar"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~eclas"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Modo de vídeo atual:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Habilita correção de proporção"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr " Tem certeza de que deseja sair? "
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr " Tem certeza de que deseja sair? "
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Sair"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Selecione um Tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~A~nterior"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~P~róximo"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~F~echar"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Voz"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Legendas"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Legendas"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Voz"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Comandos de teclado comuns:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Menu Salvar / Carregar"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Pula linha de texto"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Pula cena"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Espaço"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pausar jogo:"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Carregar estado do jogo 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Salvar estado do jogo 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Habilita Tela Cheia"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Volume da música"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Velocidade do texto devagar / rápido"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simula botão esquerdo do mouse"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simula botão direito do mouse"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Comandos de teclado especiais:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Mostrar / Ocultar console"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Inicia o depurador"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Exibe o consumo de memória"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Joga em modo rápido (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Joga em modo super rápido (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Habilita captura do mouse"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Alterna entre os filtros gráficos"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Aumenta / Diminui o fator de escala"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Habilita correção de proporção"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* A utilização de ctrl-f ou"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g não é recomendada"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " visto que poderá causar travas"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr " ou procedimentos estranhos nos jogos."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Tecer feitiços no teclado:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Controles principais do jogo:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Empurar"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Puxar"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Dar"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Abrir"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Ir para"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Pegar"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Usar"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Ler"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Nova criança"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Ligar"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Desligar"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Andar até"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Pegar"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "O que é"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Destravar"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Vestir"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Decolar"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Consertar"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Trocar"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Olhar"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Falar"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Viajar"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Para Henry / Para Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "toca dó menor no fio"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "toca D no fio"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "toca E no fio"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "toca F no fio"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "toca G no fio"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "toca A no fio"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "toca B no fio"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "toca dó maior no fio"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Empurrar"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Puxar"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Falar"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Olhar para"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Ligar"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Desligar"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "TeclaCima"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Destacar diálogo anterior"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "TeclaBaixo"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Destacar próximo diálogo"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Andar"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventário"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objeto"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Preto e Branco / Cor"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Olhos"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Língua"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Soco"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Chute"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Examinar"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Cursor normal"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comunicador"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Salvar / Carregar / Opções"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Outros controles do jogo:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventário:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Subir na lista"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Descer na lista"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Item da esquerda superior"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Item da esquerda inferior"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Item da direita superior"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Item da direita inferior"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Item do meio na esquerda"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Item do meio na direita"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Trocando personagens:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Segunda criança"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Terceira criança"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Controle de luta (teclado numérico):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Passo para trás"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Defender em cima"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Defender no meio"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Defender embaixo"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Soco em cima"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Soco no meio"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Soco embaixo"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Estes são para o Indy na esquerda."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "Quando Indy estiver na direita,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4 e 1 são trocados por"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 e 3, respectivamente."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Controles do avião (teclado numérico)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Voar para esquerda superior"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Voar para esquerda"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Voar para esquerda inferior"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Voar para cima"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Voar reto"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Voar para baixo"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Voar para direita superior"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Voar para direita"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Voar para direita inferior"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Falha ao salvar o estado do jogo para o arquivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Falha ao carregar o estado do jogo a partir do arquivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Jogo salvo com sucesso no arquivo:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"\"Na versão original, o jogo Maniac Mansion rodaria agora mesmo. Porem a "
+"atual versão do ScummVM não suporta essa ação. Para jogar Maniac Mansion, "
+"adicione o jogo normalmente no ScummVM. Ele se encontra em um diretório "
+"dentro da pasta do jogo Day of the Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "Modo ~Z~ip ativado"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "Modo ~T~ransições ativado"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "Menu Principal ScummVM"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "Modo ~E~feitos de água ativado"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Restaurar jogo:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Restaurar"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Falha ao carregar o estado do jogo a partir do arquivo:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Falha ao salvar o estado do jogo para o arquivo:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Falha ao salvar o estado do jogo para o arquivo:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Falha ao salvar o estado do jogo para o arquivo:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Salvar jogo:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Carregar jogo:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Salvar jogo:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "Emulador MAME OPL"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "Emulador DOSBox OPL"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Sem música"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Emulador Som Amiga"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "Emulador AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Emulador Apple II GS (NÃO IMPLEMENTADO)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "Emulador Som C64"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Inicializando Emulador MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "Emulador MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "Emulador PC Speaker"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "Emulador IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Mapa de Teclas:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr "(Ativo)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr "(Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr "(Jogo)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "MIDI Windows"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "Menu Principal ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "Modo ~M~ão esquerda"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "Controles de luta ~I~ndy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Mostrar o cursor do mouse"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Ajustar às extremidades"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Equivalência do Toque X"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Equivalência do Toque Y"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Usar controle de curso do touchpad"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Um toque para o clique esquerdo, e toque duplo para o clique direito"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Sensibilidade"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Topo inicial para a escala de tela:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Escala de tela principal:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Escala pelo Hardware (rápido, mas com baixa qualidade)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Escala pelo Software (qualidade boa, mas com lentidão)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Sem escala (você precisa rolar para a esquerda e para a direita)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Brilho:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Som de alta qualidade (mais lento) (reiniciar)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Desativar desligamento"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Modo Touchpad ligado."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Modo Touchpad desligado."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Modo Touchpad ligado."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Modo Touchpad desligado."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Sair do ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "MIDI Windows"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normal (sem escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normal (sem escala)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Habilita correção de proporção"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Habilita correção de proporção"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Alterna entre os filtros gráficos"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Renderização"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL Normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL Conserve"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Modo de vídeo atual:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Cima"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Baixo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Esquerda"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Direita"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Clique com o botão esquerdo"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Clique com o botão direito"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zona"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multi-função"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Trocador de caracteres"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Pular texto"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Modo rápido"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Depurador"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Menu global"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Teclado virtual"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Mapeador de Teclas"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Você deseja sair ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Vídeo"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Modo de vídeo atual:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Ataque-duplo"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Sub-escaneamento horizontal:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Sub-escaneamento vertical:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Entrada"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "Sensibilidade do CG Pad:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "Aceleração do CG Pad:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Desconhecido"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Montar DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Desmontar DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Servidor:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Compartilhamento:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Nome de usuário:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Senha:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Iniciar rede"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Montar SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Desmontar SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD montado com sucesso"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Erro ao montar o DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD não montado"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Conexão ativa, compartilhamento ativado"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Conexão ativa"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", erro ao montar o compartilhamento"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", compartilhamento não montado"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Conexão caiu"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Inicialização de rede"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Tempo limite para iniciar a conexão de rede"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Rede não inicializada (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Ocultar a barra de ferramentas"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Mostrar Teclado"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Som on/off"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Clique com o botão direito"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Mostrar/Ocultar seu cursor"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Olhar livre"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Zoom para cima"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zoom para baixo"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Botão de ligadura"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Cursor para cima"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Cursor para baixo"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Cursor para a esquerda"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Cursor para a direita"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Você deseja carregar ou salvar o jogo?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " Tem certeza de que deseja sair? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Teclado"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Rotacionar"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Usando driver SDL"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Tela"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Você quer executar uma busca automática?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Mapear ação \"Clique da Direita\""
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Você precisa mapear uma tecla para ação do \"Clique da Direita\" nesse jogo"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Mapear \"Ocultar barra de ferramentas\""
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Você precisa mapear uma tecla para ação do \"Ocultar barra de ferramentas\" "
+"nesse jogo"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Mapear Zoom para Cima (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Mapear Zoom para Baixo (opcional)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Não se esqueça de mapear uma tecla para \"Ocultar a barra de ferramentas\" "
+"para ver todo o seu inventário"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Você realmente quer excluir este jogo salvo?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Soco"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Você deseja sair ?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volume"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Adicionar Jogo..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Adicionar Jogo..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Encontrado(s) %d novo(s) jogo(s)"
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "Linha de comando não processada"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "Emulador FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Pasta inválida"
diff --git a/po/ru_RU.po b/po/ru_RU.po
index 27bea4eac2..bf74393079 100644
--- a/po/ru_RU.po
+++ b/po/ru_RU.po
@@ -1,2650 +1,2780 @@
-# Russian translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Eugene Sandulenko <sev@scummvm.org>, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2010-06-13 20:55+0300\n"
-"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
-"Language-Team: Russian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-5\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Russian\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(áÞÑàÐÝ %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "²ÚÛîçÕÝÝëÕ Ò ÑØÛÔ ÞßæØØ:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "´ÞáâãßÝëÕ ÔÒØÖÚØ:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "²ÒÕàå"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "¿ÕàÕÙâØ ÝÐ ÔØàÕÚâÞàØî ãàÞÒÝÕÜ ÒëèÕ"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "²ÒÕàå"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "¾âÜÕÝÐ"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "²ëÑàÐâì"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "·ÐÚàëâì"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "ºÛØÚ Üëèìî"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "¿ÞÚÐ×Ðâì ÚÛÐÒØÐâãàã"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "¿ÕàÕÝÐ×ÝÐçØâì ÚÛÐÒØèØ"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "²ëÑÕàØâÕ ÔÕÙáâÒØÕ ÔÛï ÝÐ×ÝÐçÕÝØï"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "½Ð×ÝÐçØâì"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "²ëÑÕàØâÕ ÔÕÙáâÒØÕ Ø ÚÛØÚÝØâÕ '½Ð×ÝÐçØâì'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "½Ð×ÝÐçÕÝÝÐï ÚÛÐÒØèÐ : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "½Ð×ÝÐçÕÝÝÐï ÚÛÐÒØèÐ : ÝÕâ"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "¿ÞÖÐÛãÙáâÐ, ÒëÑÕàØâÕ ÔÕÙáâÒØÕ"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "½ÐÖÜØâÕ ÚÛÐÒØèã ÔÛï ÝÐ×ÝÐçÕÝØï"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "¸ÓàÐ"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"ºÞàÞâÚØÙ ØÔÕÝâØäØÚÐâÞà, ØáßÞÛì×ãÕÜëÙ ÔÛï ØÜÕÝ áÞåàÐÝÕÝØÙ ØÓà Ø ÔÛï ×ÐßãáÚÐ "
-"Ø× ÚÞÜÐÝÔÝÞÙ áâàÞÚØ"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "½Ð×ÒÐÝØÕ:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "¿ÞÛÝÞÕ ÝÐ×ÒÐÝØÕ ØÓàë"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "½Ð×Ò:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Ï×ëÚ:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Ï×ëÚ ØÓàë. ¸×ÜÕÝÕÝØÕ íâÞÓÞ ßÐàÐÜÕâàÐ ÝÕ ßàÕÒàÐâØâ ØÓàã ÝÐ ÐÝÓÛØÙáÚÞÜ Ò "
-"àãááÚãî"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<ßÞ ãÜÞÛçÐÝØî>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "¿ÛÐâäÞàÜÐ:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "¿ÛÐâäÞàÜÐ, ÔÛï ÚÞâÞàÞÙ ØÓàÐ ÑëÛÐ Ø×ÝÐçÐÛìÝÞ àÐ×àÐÑÞâÐÝÐ"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "¿ÛÐâäÞàÜÐ:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "³àÐäØÚÐ"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "³àä"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÐäØÚØ"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÐäØÚØ"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "°ãÔØÞ"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÐãÔØÞ"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÐãÔØÞ"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "³àÞÜÚÞáâì"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "³àÞÜÚ"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÞÜÚÞáâØ"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÞÜÚÞáâØ"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "¿ãâØ"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "¿ãâØ"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "¿ãâì Ú ØÓàÕ:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "³ÔÕ ØÓàÐ:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "´Þß. ßãâì:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "ÃÚÐ×ëÒÐÕâ ßãâì Ú ÔÞßÞÛÝØâÕÛìÝëÜ äÐÙÛÐÜ ÔÐÝÝëå ÔÛï ØÓàë"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "´Þß. ßãâì:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "ÁÞåàÐÝÕÝØï ØÓà:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "ÃÚÐ×ëÒÐÕâ ßãâì Ú áÞåàÐÝÕÝØïÜ ØÓàë"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "¿ãâì áÞåà:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "½Õ ×ÐÔÐÝ"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "¿Þ ãÜÞÛçÐÝØî"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "²ëÑÕàØâÕ SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á äÐÙÛÐÜØ ØÓàë"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "²ëÑÕàØâÕ ÔÞßÞÛÝØâÕÛìÝãî ÔØàÕÚâÞàØî ØÓàë"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï áÞåàÐÝÕÝØÙ"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "ÍâÞâ ID ØÓàë ãÖÕ ØáßÞÛì×ãÕâáï. ¿ÞÖÐÛãÙáâÐ, ÒëÑÕàØâÕ ÔàãÓÞÙ."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~²~ëåÞÔ"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "²ëåÞÔ Ø× ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "¾ ß~à~ÞÓàÐÜÜÕ..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "¾ ßàÞÓàÐÜÜÕ ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~¾~ßæØØ..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "¸×ÜÕÝØâì ÓÛÞÑÐÛìÝëÕ ÞßæØØ ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "¿~ã~áÚ"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "·ÐßãáâØâì ÒëÑàÐÝÝãî ØÓàã"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~·~ÐÓàã×Øâì..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "·ÐÓàã×Øâì áÞåàÝÕÝØÕ ÔÛï ÒëÑàÐÝÝÞÙ ØÓàë"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~´~ÞÑ. ØÓàã..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "ÃÔÕàÖØÒÐÙâÕ ÚÛÐÒØèã Shift ÔÛï âÞÓÞ, çâÞÑë ÔÞÑÐÒØâì ÝÕáÚÞÛìÚÞ ØÓà"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "¾~ß~æØØ ØÓàë..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "¸×ÜÕÝØâì ÞßæØØ ØÓàë"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~Ã~ÔÐÛØâì ØÓàã"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "ÃÔÐÛØâì ØÓàã Ø× áßØáÚÐ. ½Õ ãÔÐÛïÕâ ØÓàã á ÖÕáâÚÞÓÞ ÔØáÚÐ"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~´~ÞÑ. ØÓàã..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "¾~ß~æØØ ØÓàë..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~Ã~ÔÐÛØâì ØÓàã"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "¿ÞØáÚ Ò áßØáÚÕ ØÓà"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "¿ÞØáÚ:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "¾çØáâØâì ×ÝÐçÕÝØÕ"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "·ÐÓàã×Øâì ØÓàã:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "·ÐÓàã×Øâì"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ×ÐßãáâØâì ÔÕâÕÚâÞà ÒáÕå ØÓà? ÍâÞ ßÞâÕÝæØÐÛìÝÞ ÜÞÖÕâ "
-"ÔÞÑÐÒØâì ÑÞÛìèÞÕ ÚÞÛØçÕáâÒÞ ØÓà."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "´Ð"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "½Õâ"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM ÝÕ ÜÞÖÕâ ÞâÚàëâì ãÚÐ×ÐÝÝãî ÔØàÕÚâÞàØî!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM ÝÕ ÜÞÖÕâ ÝÐÙâØ ØÓàã Ò ãÚÐ×ÐÝÝÞÙ ÔØàÕÚâÞàØØ!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "²ëÑÕàØâÕ ØÓàã:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ãÔÐÛØâì ÝÐáâàÞÙÚØ ÔÛï íâÞÙ ØÓàë?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "ÍâÐ ØÓàÐ ÝÕ ßÞÔÔÕàÖØÒÐÕâ ×ÐÓàã×Úã áÞåàÐÝÕÝØÙ çÕàÕ× ÓÛÐÒÝÞÕ ÜÕÝî."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM ÝÕ áÜÞÓ ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚÐ ÒëÑàÐÝÝÞÙ ØÓàë!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "¼ÝÞÓÞ ØÓà..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "¼ÝÞÓÞ ØÓà..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "½ÞÒÐï ØÓàÐ"
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "½ÞÒÐï ØÓàÐ..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... Øéã ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "¿ÞØáÚ ×ÐÚÞÝçÕÝ!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà, ßàÞßãéÕÝÞ %Ò àÐÝÕÕ ÔÞÑÐÒÛÕÝÝëå ØÓà."
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "¿àÞáÜÞâàÕÝÞ %d ÔØàÕÚâÞàØÙ ..."
-
-#: gui/massadd.cpp:253
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà, ßàÞßãéÕÝÞ %d àÐÝÕÕ ÔÞÑÐÒÛÕÝÝëå ØÓà ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "½ØÚÞÓÔÐ"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "ÚÐÖÔëÕ 5 ÜØÝãâ"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "ÚÐÖÔëÕ 10 ÜØÝãâ"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "ÚÐÖÔëÕ 15 ÜØÝãâ"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "ÚÐÖÔëÕ 30 ÜØÝãâ"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 Ú³æ"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "½Õ ×ÐÔÐÝ"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr "½Õ ãÔÐÛÞáì ßàØÜÕÝØâì Ø×ÜÕÝÕÝØï ÝÕÚâÞàëå ÓàÐäØçÕáÚØå ÞßæØÙ:"
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr "ÒØÔÕÞàÕÖØÜ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ."
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr "ßÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ"
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr "àÕÖØÜ ÚÞààÕÚâØàÞÒÚØ áÞÞâÝÞèÕÝØï áâÞàÞÝ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ"
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "³àÐä. àÕÖØÜ:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "ÀÕÖØÜ àÐáâàÐ:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "ÁßÕæØÐÛìÝëÕ àÕÖØÜë àÕÝÔÕàØÝÓÐ, ßÞÔÔÕàÖØÒÐÕÜëÕ ÝÕÚÞâÞàëÜØ ØÓàÐÜØ"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "¿ÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "ºÞààÕÚâØàÞÒÐâì áÞÞâÝÞèÕÝØÕ áâÞàÞÝ ÔÛï ØÓà á àÐ×àÕèÕÝØÕÜ 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA ÑÕ× àÐáâàÐ"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr ""
-"²ÚÛîçÐÕâ àÕÖØÜ ÑÕ× àÐáâàØàÞÒÐÝØï Ò EGA ØÓàÐå, ÚÞâÞàëÕ ßÞÔÔÕàÖØÒÐîâ âÐÚÞÙ "
-"àÕÖØÜ"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "¿àÕÔßÞçØâÐÕÜÞÕ:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "·ÒãÚÞÒÞÕ ãáâ-ÒÞ:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr ""
-"ÃÚÐ×ëÒÐÕâ ßàÕÔßÞçØâÐÕÜÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ØÛØ íÜãÛïâÞà ×ÒãÚÞÒÞÙ ÚÐàâë"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "ÃÚÐ×ëÒÐÕâ ÒëåÞÔÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ØÛØ íÜãÛïâÞà ×ÒãÚÞÒÞÙ ÚÐàâë"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "¿àÕÔßÞçØâÐÕÜÞÕ:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "·ÒãÚÞÒÞÕ ãáâ-ÒÞ:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "ÍÜãÛïâÞà AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "·ÒãÚÞÒÐï ÚÐàâÐ AdLib ØáßÞÛì×ãÕâáï ÜÝÞÓØÜØ ØÓàÐÜØ"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "ÇÐáâÞâÐ ×ÒãÚÐ:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"±¾ÛìèØÕ ×ÝÐçÕÝØï ×ÐÔÐîâ ÛãçèÕÕ ÚÐçÕáâÒÞ ×ÒãÚÐ, ÞÔÝÐÚÞ ÞÝØ ÜÞÓãâ ÝÕ "
-"ßÞÔÔÕàÖØÒÐâìáï ÒÐèÕÙ ×ÒãÚÞÒÞÙ ÚÐàâÞÙ"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "ÃáâàÞÙáâÒÞ GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "ÃÚÐ×ëÒÐÕâ ÒëåÞÔÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ÔÛï MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "½Õ ØáßÞÛì×ÞÒÐâì Üã×ëÚã ÔÛï General MIDI"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "¸áßÞÛì×ÞÒÐâì ßÕàÒÞÕ ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFontë ßÞÔÔÕàÔÖØÒÐîâáï ÝÕÚÞâÞàëÜØ ×ÒãÚÞÒëÜØ ÚÐàâÐÜØ, Fluidsynth Ø "
-"Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "ÁÜÕèÐÝÝëÙ àÕÖØÜ AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "¸áßÞÛì×ÞÒÐâì Ø MIDI Ø AdLib ÔÛï ÓÕÝÕàÐæØØ ×ÒãÚÐ"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "ÃáØÛÕÝØÕ MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "Ãáâà. MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"ÃÚÐ×ëÒÐÕâ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ßÞ ãÜÞÛçÐÝØï ÔÛï ÒëÒÞÔÐ ÝÐ Roland MT-32/LAPC1/"
-"CM32l/CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "½ÐáâÞïéØÙ Roland MT-32 (×ÐßàÕâØâì íÜãÛïæØî GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"¾âÜÕâìâÕ, ÕáÛØ ã ÒÐá ßÞÔÚÛîçÕÝÞ Roland-áÞÒÜÕáâØÜÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ Ø Òë "
-"åÞâØâÕ ÕÓÞ ØáßÞÛì×ÞÒÐâì"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "½ÐáâÞïéØÙ Roland MT-32 (×ÐßàÕâØâì GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "²ÚÛîçØâì àÕÖØÜ Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"²ëÚÛîçÐÕâ ÜÐßßØÝÓ General MIDI ÔÛï ØÓà á ×ÒãÚÞÒÞÙ ÔÞàÞÖÚÞÙ ÔÛï Roland MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "½Õ ØáßÞÛì×ÞÒÐâì Üã×ëÚã ÔÛï MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "ÂÕÚáâ Ø Þ×ÒãçÚÐ:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "¾×ÒãçÚÐ"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "ÁãÑâØâàë"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "¾ÑÐ"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "ÁÚÞàÞáâì âØâàÞÒ:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "ÂÕÚáâ Ø Þ×ÒãçÚÐ:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "¾×Ò"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "狄"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "¾ÑÐ"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "¿ÞÚÐ×ëÒÐâì áãÑâØâàë Ø ÒÞáßàÞØ×ÒÞÔØâì àÕçì"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "ÁÚÞàÞáâì âØâàÞÒ:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "³àÞÜÚ. Üã×ëÚØ:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "³àÞÜÚ. Üã×ëÚØ:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "²ëÚÛ. Òáñ"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "³àÞÜÚÞáâì SFX:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "³àÞÜÚÞáâì áßÕæØÐÛìÝëå ×ÒãÚÞÒëå íääÕÚâÞÒ"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "³àÞÜÚ. SFX:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "³àÞÜÚ. Þ×ÒãçÚØ:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "³àÞÜÚ. Þ×ÒãçÚØ:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "¿ãâì Ú âÕÜÐÜ:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "³ÔÕ âÕÜë:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"ÃÚÐ×ëÒÐÕâ ßãâì Ú ÔÞßÞÛÝØâÕÛìÝëÜ äÐÙÛÐÜ ÔÐÝÝëå, ØáßÞÛì×ãÕÜëå ÒáÕÜØ ØÓàÐÜØ, "
-"ÛØÑÞ ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "¿ãâì Ú ßÛÐÓØÝÐÜ:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "¿ãâì Ú ßÛÐÓØÝÐÜ:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "ÀÐ×ÝÞÕ"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "ÀÐ×ÝÞÕ"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "ÂÕÜÐ:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "ÀØáÞÒÐÛÚÐ GUI:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "°ÒâÞáÞåàÐÝÕÝØÕ:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "°ÒâÞáÞåà.:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "ºÛÐÒØèØ"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "Ï×ëÚ GUI:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Ï×ëÚ ÓàÐäØçÕáÚÞÓÞ ØÝâÕàäÕÙáÐ ScummVM"
-
-#: gui/options.cpp:1295
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "²ë ÔÞÛÖÝë ßÕàÕ×ÐßãáâØâì ScummVM çâÞÑë ßàØÜÕÝØâì Ø×ÜÕÝÕÝØï."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï áÞåàÐÝÕÝØÙ"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "½Õ ÜÞÓã ßØáÐâì Ò ÒëÑàÐÝÝãî ÔØàÕÚâÞàØî. ¿ÞÖÐÛãÙáâÐ, ãÚÐÖØâÕ ÔàãÓãî."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï âÕÜ GUI"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á ÔÞßÞÛÝØâÕÛìÝëÜØ äÐÙÛÐÜØ"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á ßÛÐÓØÝÐÜØ"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"ÂÕÜÐ, ÒëÑàÐÝÝÐï ÒÐÜØ, ÝÕ ßÞÔÔÕàÖØÒÐÕâ ÒëÑàÐÝÝëÙ ï×ëÚ. µáÛØ Òë åÞâØâÕ "
-"ØáßÞÛì×ÞÒÐâì íâã âÕÜã, ÒÐÜ ÝÕÞÑåÞÔØÜÞ áÝÐçÐÛÐ ßÕàÕÚÛîçØâìáï ÝÐ ÔàãÓÞÙ ï×ëÚ."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "´ÐâÐ ÝÕ ×ÐßØáÐÝÐ"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "²àÕÜï ÝÕ ×ÐßØáÐÝÞ"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "²àÕÜï ØÓàë ÝÕ ×ÐßØáÐÝÞ"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "ÃÔÐÛØâì"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ãÔÐÛØâì íâÞ áÞåàÐÝÕÝØÕ?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "´ÐâÐ: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "²àÕÜï: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "²àÕÜï ØÓàë: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "ÁÞåàÐÝÕÝØÕ ÑÕ× ØÜÕÝØ"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "²ëÑÕàØâÕ âÕÜã"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "±Õ× ÓàÐäØÚØ"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "±Õ× ÓàÐäØÚØ"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "´ÒØÖÞÚ ÝÕ ßÞÔÔÕàÖØÒÐÕâ ãàÞÒÕÝì ÞâÛÐÔÚØ '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "¼ÕÝî"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "¿àÞßãáâØâì"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "¿Ðã×Ð"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "¿àÞßãáâØâì áâàÞÚã"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "¾èØÑÚÐ ×ÐßãáÚÐ ØÓàë:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "½Õ ÜÞÓã ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚÐ ÒëÑàÐÝÝÞÙ ØÓàë"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "½Õâ ÞèØÑÚØ"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "½Õâ äÐÙÛÞÒ ØÓàë"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Game id ÝÕ ßÞÔÔÕàÖØÒÐÕâáï"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "½ÕßÞÔÔÕàÖØÒÐÕÜëÙ àÕÖØÜ æÒÕâÐ"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "½ÕÔÞáâÐâÞçÝÞ ßàÐÒ ÔÛï çâÕÝØï"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "½ÕÔÞáâÐâÞçÝÞ ßàÐÒ ÔÛï ×ÐßØáØ"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "¿ãâì ÝÕ ÝÐÙÔÕÝ"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "¿ãâì ÝÕ ïÒÛïÕâáï ÔØàÕÚâÞàØÕÙ"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "¿ãâì ÝÕ ïÒÛïÕâáï äÐÙÛÞÜ"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "½Õ ÜÞÓã áÞ×ÔÐâì äÐÙÛ"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "¾èØÑÚÐ çâÕÝØï ÔÐÝÝëå"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "¾èØÑÚÐ ×ÐßØáØ ÔÐÝÝëå"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "½Õ ÜÞÓã ÝÐÙâØ ßÞÔåÞÔïéØÙ ßÛÐÓØÝ ÔÛï ÔÒØÖÚÐ"
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "´ÒØÖÞÚ ÝÕ ßÞÔÔÕàÖØÒÐÕâ áÞåàÐÝÕÝØï"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr "¿àÕàÒÐÝÞ ßÞÛì×ÞÒÐâÕÛÕÜ"
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "½ÕØ×ÒÕáâÝÐï ÞèØÑÚÐ"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules ·ÕÛñÝëÙ"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules ÏÝâÐàÝëÙ"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules ·ÕÛñÝëÙ"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules ÏÝâÐàÝëÙ"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr "ºÐÖÕâáï, çâÞ ØÓàÐ '%s' Õéñ ÝÕØ×ÒÕáâÝÐ."
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr "¿ÞÖÐÛãÙáâÐ, ßÕàÕÔÐÙâÕ áÛÕÔãîéØÕ ÔÐÝÝëÕ ÚÞÜÐÝÔÕ ScummVM ÒÜÕáâÕ á ÝÐ×ÒÐÝØÕÜ"
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr "ØÓàë, ÚÞâÞàãî Òë ßëâÐÕâÕáì ÔÞÑÐÒØâì, Ø ãÚÐÖØâÕ Õñ ÒÕàáØî, ï×ëÚ Ø â.Ô."
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "¿àÞÔÞÛ~Ö~Øâì"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~·~ÐÓàã×Øâì"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~·~ÐßØáÐâì"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~¾~ßæØØ"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~¿~ÞÜÞéì"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "¾ ßàÞ~Ó~àÐÜÜÕ"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~²~ëÙâØ Ò ÓÛÐÒÝÞÕ ÜÕÝî"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~²~ ÓÛÐÒÝÞÕ ÜÕÝî"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "ÁÞåàÐÝØâì ØÓàã:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "ÁÞåàÐÝØâì"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-"¿àÞáØÜ ßàÞéÕÝØï, ÝÞ íâÞâ ÔÒØÖÞÕ ßÞÚÐ ÝÕ ßàÕÔÞáâÐÒÛïÕâ ßÞÜÞéØ ÒÝãâàØ ØÓàë. "
-"¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ README ×Ð ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ ØÝáâàãÚæØïÜØ "
-"Þ âÞÜ, ÚÐÚ ßÞÛãçØâì ÔÐÛìÝÕÙèãî ßÞÜÞéì."
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "¾~â~ÜÕÝÐ"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~º~ÛÐÒØèØ"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr "½Õ ÜÞÓã ØÝØæØÐÛØ×ØàÞÒÐâì äÞàÜÐâ æÒÕâÐ."
-
-#: engines/engine.cpp:228
-msgid "Could not switch to video mode: '"
-msgstr "½Õ ÜÞÓã ßÕàÕÚÛîçØâì ÒØÔÕÞàÕÖØÜ:"
-
-#: engines/engine.cpp:237
-msgid "Could not apply aspect ratio setting."
-msgstr "½Õ ãÔÐÛÞáì ØáßÞÛì×ÞÒÐâì ÚÞààÕÚæØî áÞÞâÝÞèÕÝØï áâÞàÞÝ."
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr "½Õ ÜÞÓã ßàØÜÕÝØâì ßÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ."
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-"ºÐÖÕâáï, Òë ßëâÐÕâÕáì ×ÐßãáâØâì íâã ØÓàã ßàïÜÞ\n"
-"á CD. ÍâÞ ÞÑëçÝÞ Òë×ëÒÐÕâ ßàÞÑÛÕÜë, Ø ßÞíâÞÜã\n"
-"Üë àÕÚÞÜÕÝÔãÕÜ áÚÞßØàÞÒÐâì äÐÙÛë ÔÐÝÝëå ØÓàë\n"
-"ÝÐ ÖñáâÚØÙ ÔØáÚ. ¿ÞÔàÞÑÝÞáâØ ÜÞÖÝÞ ÝÐÙâØ Ò\n"
-"äÐÙÛÕ README."
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-"´ØáÚ íâÞÙ ØÓàë áÞÔÕàÖØâ ×ÒãÚÞÒëÕ ÔÞàÞÖÚØ. ¸å\n"
-"ÝÕÞÑåÞÔØÜÞ ßÕàÕßØáÐâì á ÔØáÚÐ á ßÞÜÞéìî\n"
-"áÞÞâÒÕâáâÒãîéÕÙ ßàÞÓàÐÜÜë ÔÛï ÚÞßØàÞÒÐÝØï\n"
-"ÐãÔØÞ ÔØáÚÞÒ, Ø âÞÛìÚÞ ßÞáÛÕ íâÞÓÞ Ò ØÓàÕ\n"
-"ßÞïÒØâáï Üã×ëÚÐ. ¿ÞÔàÞÑÝÞáâØ ÜÞÖÝÞ ÝÐÙâØ Ò\n"
-"äÐÙÛÕ README."
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-"¿Àµ´Ã¿Àµ¶¶µ½¸µ: ¸ÓàÐ, ÚÞâÞàãî Òë áÞÑØàÐÕâÕáì ×ÐßãáâØâì Õéñ ÝÕ ßÞÔÔÕàÖØÒÐÕâáï "
-"ScummVM ßÞÛÝÞáâìî. ¾ÝÐ áÚÞàÕÕ ÒáÕÓÞ ÝÕ ÑãÔÕâ àÐÑÞâÐâì áâÐÑØÛìÝÞ, Ø áÞåàÐÝÕÝØï "
-"ØÓà ÜÞÓãâ ÝÕ àÐÑÞâÐâì Ò ÑãÔãéØå ÒÕàáØïå ScummVM."
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr "²áñ àÐÒÝÞ ×ÐßãáâØâì"
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~¿~àÕÔ"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~Á~ÛÕÔ"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~·~ÐÚàëâì"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "¾ÑéØÕ ÚÛÐÒØÐâãàÝëÕ ÚÞÜÐÝÔë:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "´ØÐÛÞÓ ×ÐßØáØ / çâÕÝØï"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "¿àÞßãáâØâì áâàÞÚã"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "¿àÞßãáâØâì ×ÐáâÐÒÚã"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "¿àÞÑÕÛ"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "¿Ðã×Ð ØÓàë"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "·ÐÓàã×Øâì ØÓàã 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "ÁÞåàÐÝØâì ØÓàã 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "²ëåÞÔ"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "²ÒÞÔ"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "¿ÕàÕÚÛîçØâì ÝÐ ÒÕáì íÚàÐÝ"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "³àÞÜÚÞáâì Üã×ëÚØ ãÒÕÛØçØâì/ãÜÕÝìèØâì"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "ÁÚÞàÞáâì âÕÚáâÐ ÑëáâàÕÕ/ÜÕÔÛÕÝÝÕÕ"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "ÍÜãÛïæØï ÝÐÖÐâØï ÛÕÒÞÙ ÚÛÐÒØèØ ÜëèØ"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "ÍÜãÛïæØï ßàÐÒÞÙ ÚÛÐÒØèØ ÜëèØ"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "ÁßÕæØÐÛìÝÒÕ ÚÛÐÒØÐâãàÝëÕ ÚÞÜÐÝÔë:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "¿ÞÚÐ×Ðâì/ÃÑàÐâì ÚÞÝáÞÛì"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "·ÐßãáÚ ÞâÛÐÔçØÚÐ"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "¿ÞÚÐ×Ðâì ßÞâàÕÑÛÕÝØÕ ßÐÜïâØ"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "·ÐßãáâØâì ÑëáâàëÙ àÕÖØÜ (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "·ÐßãáâØâì ÞçÕÝì ÑëáâàëÙ àÕÖØÜ (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "¿ÕàÕÚÛîçÕÝØÕ ßÕàÕåÒÐâÐ ÜëèØ"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "¿ÕàÕÚÛîçÕÝØÕ ÜÕÖÔã ÓàÐäØçÕáÚØÜØ äØÛìâàÐÜØ"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "ÃÒÕÛØçØâì/ãÜÕÝìèØâì ÜÐáèâÐÑ"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "¿ÕàÕÚÛîçÕÝØÕ ÚÞààÕÚæØØ áÞÞâÝÞèÕÝØï áâÞàÞÝ"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* ¸áßÞÛì×ÞÒÐÝØÕ ctrl-f Ø"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g ÝÕ àÕÚÞÜÕÝÔãÕâáï"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " âÐÚ ÚÐÚ ÞÝØ ÜÞÓãâ ßàØÒÕáâØ Ú"
-
-#: engines/scumm/help.cpp:110
-msgid " or incorrect game behavior."
-msgstr " ÝÕÒÕàÝÞÙ àÐÑÞâÕ ØÓàë."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "¸×ÜÕÝïÕÜëÕ çÕàÝÞÒØÚØ ÝÐ ÚÛÐÒØÐâãàÕ:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "¾áÝÞÒÝÞÕ ãßàÐÒÛÕÝØÕ ØÓàÞÙ:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "ÂÞÛÚÐâì"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "ÂïÝãâì"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "´Ðâì"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "¾âÚàëâì"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "¸ÔâØ"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "²×ïâì"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "¸áßÞÛì×ÞÒÐâì"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "ÇØâÐâì"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "½ÞÒëÙ ßÕàá"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "²ÚÛîçØâì"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "²ëÚÛîçØâì"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "¸ÔâØ Ú"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "¿ÞÔÝïâì"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "ÇâÞ âÐÚÞÕ"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "¾âÚàëâì"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "¿ÞÛÞÖØâì"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "¿ÞÔÝïâì"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "¸áßàÐÒØâì"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "¿ÕàÕÚÛîçØâì"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "ÁÜÞâàÕâì"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "³ÞÒÞàØâì"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "¿ãâÕèÕáâÒÞÒÐâì"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "³ÕÝàØ/¸ÝÔØ"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "ØÓàÐâì ÔÞ ÜØÝÞà ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "ØÓàÐâì àÕ ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "ØÓàÐâì ÜØ ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "ØÓàÐâì äÐ ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "ØÓàÐâì áÞÛì ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "ØÓàÐâì Ûï ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "ØÓàÐâì áØ ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "ØÓàÐâì ÔÞ ÜÐÖÞà ÝÐ ßàïÛÚÕ"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "âÞÛÚÐâì"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "âïÝãâì (æÕßÛïâì)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "³ÞÒÞàØâì á"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "ÁÜÞâàÕâì ÝÐ"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "ÒÚÛîçØâì"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "ÒëÚÛîçØâì"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "²ÒÕàå"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "¿ÞÔáÒÕâØâì ßàÕÔëÔãéØÙ ÔØÐÛÞÓ"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "²ÝØ×"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "¿ÞÔáÒÕâØâì áÛÕÔãîéØÙ ÔØÐÛÞÓ"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "¸ÔâØ"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "¸ÝÒÕÝâÐàì"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "¾ÑêÕÚâ"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "ÇÕàÝÞ-ÑÕÛëÙ/ÆÒÕâÝÞÙ"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "³ÛÐ×Ð"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Ï×ëÚ"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "ÃÔÐà"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "½ÞÓÞÙ"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "¿àÞÒÕàØâì"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "¾ÑëçÝëÙ ÚãàáÞà"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "ºÞÜÜ"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "·ÐÓàã×Øâì/ÁÞåàÐÝØâì/½ÐáâàÞÙÚØ"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "¾áâÐÛìÝÞÕ ãßàÐÒÛÕÝØÕ ØÓàÞÙ:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "¸ÝÒÕÝâÐàì:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "¿àÞÚàãâØâì áßØáÞÚ ÒÒÕàå"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "¿àÞÚàãâØâì áßØáÞÚ ÒÝØ×"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "²ÕàåÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "½ØÖÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "²ÕàåÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "½ØÖÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "ÁàÕÔÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "ÁàÕÔÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "ÁÜÕÝÐ ÓÕàÞï:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "²âÞàÞÙ ÓÕàÞÙ"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "ÂàÕâØÙ ÓÕàÞÙ"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "ÃßàÐÒÛÕÝØÕ ÑÞÕÜ (æØäàÞÒëÕ ÚÛÐÒØèØ)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "ÈÐÓ ÝÐ×ÐÔ"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "·ÐéØâÐ áÒÕàåã"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "·ÐéØâÐ ßÞáÕàÕÔØÝÕ"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "·ÐéØâÐ áÝØ×ã"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "ÃÔÐà áÒÕàåã"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "ÃÔÐà ßÞáÕàÕÔØÝÕ"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "ÃÔÐà áÝØ×ã"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "ÍâÞ ÚÞÓÔÐ ¸ÝÔØ áÛÕÒÐ."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "ºÞÓÔÐ ¸ÝÔØ áßàÐÒÐ,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4 Ø 1 ÜÕÝïîâáï á"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 Ø 3 áÞÞâÒÕâáâÒÕÝÝÞ."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "ÃßàÐÒÛÕÝØÕ áÐÜÞÛñâÞÜ (æØäàÞÒëÕ ÚÛÐÒØèØ)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "»ÕâÕâì ÒÛÕÒÞ-ÒÒÕàå"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "»ÕâÕâì ÒÛÕÒÞ"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "»ÕâÕâì ÒÛÕÒÞ-ÒÝØ×"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "»ÕâÕâì ÒÒÕàå"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "»ÕâÕâì ßàïÜÞ"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "»ÕâÕâì ÒÝØ×"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "»ÕâÕâì ÒßàÐÒÞ-ÒÒÕàå"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "»ÕâÕâì ÒßàÐÒÞ"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "»ÕâÕâì ÒßàÐÒÞ-ÒÝØ×"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-"ÀÕÖØÜ \"àÞÔÝÞÓÞ\" MIDI âàÕÑãÕâ ÞÑÝÞÒÛÕÝØÕ Roland Upgrade Þâ\n"
-"LucasArts, ÝÞ ÝÕ åÒÐâÐÕâ %s. ¿ÕàÕÚÛîçÐîáì ÝÐ AdLib."
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"½Õ ãÔÐÛÞáì ×ÐßØáÐâì ØÓàã Ò äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"½Õ ãÔÐÛÞáì ×ÐÓàã×Øâì ØÓàã Ø× äÐÙÛÐ:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"¸ÓàÐ ãáßÕèÝÞ áÞåàÐÝÕÝÐ Ò äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"ÁÕÙçÐá ÔÞÛÖÝÐ ×ÐßãáâØâìáï ØÓàÐ Maniac Mansion. ½Þ ScummVM ßÞÚÐ íâÞÓÞ ÝÕ ãÜÕÕâ. "
-"ÇâÞÑë áëÓàÐâì, ÝÐÖÜØâÕ '½ÞÒÐï ØÓàÐ' Ò áâÐàâÞÒÞÜ ÜÕÝî ScummVM, Ð ×ÐâÕÜ "
-"ÒëÑÕàØâÕ ÔØàÕÚâÞàØî Maniac ÒÝãâàØ ÔØàÕÚâÞàØØ á ØÓàÞÙ Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "ÀÕÖØÜ ÑëáâàÞÓÞ ßÕàÕåÞÔÐ ÐÚâØÒØàÞÒÐÝ"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "¿ÕàÕåÞÔë ÐÚâØÒØàÞÒÐÝë"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr "²ëÑàÞáØâì áâàÐÝØæã"
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr "¿ÞÚÐ×Ðâì ÚÐàâã"
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "ÍääÕÚâë ÒÞÔë ÒÚÛîçÕÝë"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "²ÞááâÐÝÞÒØâì ØÓàã: "
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "²ÞááâÒÝÞÒØâì"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ÝÐÙÔÕÝ!"
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-msgid "Failed to load game state from file."
-msgstr "½Õ ãÔÐÛÞáì ×ÐÓàã×Øâì áÞåàÐÝñÝÝãî ØÓàã Ø× äÐÙÛÐ."
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-msgid "Failed to save game state to file."
-msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã Ò äÐÙÛ."
-
-#: engines/gob/inter_v5.cpp:107
-msgid "Failed to delete file."
-msgstr "½Õ ãÔÐÛÞáì ãÔÐÛØâì äÐÙÛ."
-
-#: engines/groovie/script.cpp:417
-msgid "Failed to save game"
-msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-"ºÐÖÕâáï, Òë ßëâÐÕâÕáì ØáßÞÛì×ÞÒÐâì ãáâàÞÙáâÒÞ\n"
-"General MIDI, ÝÞ íâÐ ØÓàÐ ßÞÔÔÕàÖØÒÐÕâ âÞÛìÚÞ\n"
-"Roland MT32 MIDI. ¼ë ßÞßàÞÑãÕÜ ßÞÔÞÑàÐâì General\n"
-"MIDI ØÝáâàãÜÕÝâë, ßÞåÞÖØÕ ÝÐ Roland MT32, ÝÞ\n"
-"ÜÞÖÕâ âÐÚ ßÞÛãçØâìáï, çâÞ ÝÕÚÞâÞàëÕ âàÕÚØ ÑãÔãâ\n"
-"áëÓàÐÝë ÝÕÒÕàÝÞ."
-
-#: engines/m4/m4_menus.cpp:138
-msgid "Save game failed!"
-msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã!"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-"¾âáãâáâÒãÕâ äÐÙÛ sky.cpt!\n"
-"¿ÞÖÐÛãÙáâÐ, áÚÐçÐÙâÕ ÕÓÞ á www.scummvm.org"
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-"ÄÐÙÛ sky.cpt ØÜÕÕâ ÝÕÒÕàÝëÙ àÐ×ÜÕà.\n"
-"¿ÞÖÐÛãÙáâÐ, áÚÐçÐÙâÕ ÕÓÞ ×ÐÝÞÒÞ á www.scummvm.org"
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr "½ÐÙÔÕÝë ×ÐáâÐÒÚØ Ò äÞàÜÐâÕ DXA, ÝÞ ScummVM ÑëÛ áÞÑàÐÝ ÑÕ× ßÞÔÔÕàÖÚØ zlib"
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr "·ÐáâÐÒÚØ Ò äÞàÜÐâÕ MPEG2 ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï"
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr "·ÐáâÐÒÚÐ '%s' ÝÕ ÝÐÙÔÕÝÐ"
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-"ScummVM ÞÑÝÐàãÖØÛ ã ÒÐá áÞåàÐÝÕÝØï ØÓàë ÁÛÞÜÐÝÝëÙ ¼Õç Ò áâÐàÞÜ äÞàÜÐâÕ.\n"
-"ÁâÐàëÙ äÞàÜÐâ ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐÕâáï, Ø çâÞÑë ×ÐÓàã×Øâì áÞåàÐÝÕÝØï, ÞÝØ "
-"ÔÞÛÖÝë Ñëâì ßÕàÕÒÕÔÕÝë Ò ÝÞÒëÙ äÞàÜÐâ.\n"
-"\n"
-"½ÐÖÜØâÕ ¾º, çâÞÑë ßÕàÕÒÕáâØ Øå Ò ÝÞÒëÙ äÞàÜÐâ áÕÙçÐá, Ò ßàÞâØÒÝÞÜ áÛãçÐÕ "
-"íâÞ áÞÞÑéÕÝØÕ ßÞïÒØâáï áÝÞÒÐ ßàØ áÛÕÔãîéÕÜ ×ÐßãáÚÕ ØÓàë."
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-"ÁÞåàÐÝÕÝØÕ ØÓàë á âÐÚØÜ ØÜÕÝÕÜ ãÖÕ áãéÕáâÒãÕâ!\n"
-"²ë åÞâØâÕ ÞáâÐÒØâì áâÐàÞÕ ÝÐ×ÒÐÝØÕ (%s) ØÛØ áÔÕÛÐâì ÝÞÒÞÕ (%s)?\n"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr "¾áâÐÒØâì áâÐàÞÕ"
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr "ÁÔÕÛÐâì ÝÞÒÞÕ"
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr "ÍâÞ ×ÐÒÕàèÕÝØÕ ÔÕÜÞ ÁÛÞÜÐÝÝÞÓÞ ¼ÕçÐ 1"
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-"½Õ ÜÞÓã áÞåàÐÝØâì ØÓàã Ò ßÞ×ØæØî %i\n"
-"\n"
-
-#: engines/parallaction/saveload.cpp:211
-msgid "Loading game..."
-msgstr "·ÐÓàãÖÐî ØÓàã..."
-
-#: engines/parallaction/saveload.cpp:226
-msgid "Saving game..."
-msgstr "ÁÞåàÐÝïî ØÓàã..."
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-"ScummVM ÞÑÝÐàãÖØÛ ã ÒÐá áâÐàëÕ áÞåàÐÝÕÝØï ØÓàë Nippon Safes, ÚÞâÞàëÕ ÝÕÞÑåÞÔØÜÞ "
-"ßÕàÕØÜÕÝÞÒÐâì."
-"ÁâÐàëÕ ÝÐ×ÒÐÝØï ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï, Ø ßÞíâÞÜã Òë ÝÕ áÜÞÖÕâÕ ×ÐÓàã×Øâì "
-"áÞåàÐÝÕÝØï, ÕáÛØ ÝÕ ßÕàÕØÜÕÝãÕâÕ Øå.\n"
-"\n"
-"½ÐÖÜØâÕ ¾º, çâÞÑë ßÕàÕØÜÕÝÞÒÐâì Øå áÕÙçÐá, Ò ßàÞâØÒÝÞÜ áÛãçÐÕ íâÞ ÖÕ áÞÞÑéÕÝØÕ "
-"ßÞïÒØâáï ßàØ áÛÕÔãîéÕÜ ×ÐßãáÚÕ ØÓàë."
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr "ScummVM ãáßÕèÝÞ ßàÕÞÑàÐ×ÞÒÐÛ ÒáÕ ÒÐèØ áÞåàÐÝÕÝØï ØÓà."
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-"ScummVM ÝÐßØáÐÛ ÝÕáÚÞÛìÚÞ ßàÕÔãßàÕÖÔÕÝØÙ Ò ÞÚÝÞ ÚÞÝáÞÛØ, Ø ÝÕ áÜÞÓ ßàÕÞÑàÐ×ÞÒÐâì "
-"ÒáÕ äÐÙÛë.\n"
-"\n"
-"¿ÞÖÐÛãÙáâÐ, áÞÞÑéØâÕ ÞÑ íâÞÜ ÚÞÜÐÝÔÕ ScummVM."
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "ÍÜãÛïâÞà MAME OPL"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "ÍÜãÛïâÞà DOSBox OPL"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"²ëÑàÐÝÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÑëÛÞ ÝÐÙÔÕÝÞ (ÒÞ×ÜÞÖÝÞ ÞÝÞ ÒëÚÛîçÕÝÞ "
-"ØÛØ ÝÕ ßÞÔÚÛîçÕÝÞ). ¿ëâÐîáì ØáßÞÛì×ÞÒÐâì ÔàãÓÞÕ ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ..."
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"²ëÑàÐÝÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÜÞÖÕâ Ñëâì ØáßÞÛì×ÞÒÐÝÞ. ÁÜÞâàØâÕ "
-"äÐÙÛ ßàÞâÞÚÞÛÐ ÔÛï ÑÞÛÕÕ ßÞÔàÞÑÝÞÙ ØÝäÞàÜÐæØØ. ¿ëâÐîáì ØáßÞÛì×ÞÒÐâì ÔàãÓÞÕ "
-"ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ..."
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-"¿àÕÔßÞçâØâÕÛìÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÑëÛÞ ÝÐÙÔÕÝÞ (ÒÞ×ÜÞÖÝÞ ÞÝÞ ÒëÚÛîçÕÝÞ "
-"ØÛØ ÝÕ ßÞÔÚÛîçÕÝÞ). ¿ëâÐîáì ØáßÞÛì×ÞÒÐâì ÔàãÓÞÕ ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ..."
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-"¿àÕÔßÞçâØâÕÛìÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÜÞÖÕâ Ñëâì ØáßÞÛì×ÞÒÐÝÞ. ÁÜÞâàØâÕ "
-"äÐÙÛ ßàÞâÞÚÞÛÐ ÔÛï ÑÞÛÕÕ ßÞÔàÞÑÝÞÙ ØÝäÞàÜÐæØØ. ¿ëâÐîáì ØáßÞÛì×ÞÒÐâì ÔàãÓÞÕ "
-"ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ..."
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "±Õ× Üã×ëÚØ"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "ÍÜãÛïâÞà ×ÒãÚÐ Amiga"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "ÍÜãÛïâÞà AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "ÍÜãÛïâÞà Apple II GS (ÞâáãâáâÒãÕâ)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "ÍÜãÛïâÞà ×ÒãÚÐ C64"
-
-#: audio/softsynth/mt32.cpp:329
-msgid "Initializing MT-32 Emulator"
-msgstr "½ÐáâàÐØÒÐî íÜãÛïâÞà MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "ÍÜãÛïâÞà MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "ÍÜãÛïâÞà PC áßØÚÕàÐ"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "ÍÜãÛïâÞà IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "ÂÐÑÛØæÐ ÚÛÐÒØè:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (°ÚâØÒÝÐï)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (³ÛÞÑÐÛìÝÐï)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (¸Óàë)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "³ÛÐÒÝÞÕ ÜÕÝî ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "»ÕÒÞàãÚØÙ àÕÖØÜ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "ÃßàÐÒÛÕÝØÕ ÑÞïÜØ Ò Indy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "¿ÞÚÐ×ëÒÐâì ÚãàáÞà ÜëèØ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "¿àØÚàÕßØâì Ú ÓàÐÝØæÐÜ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "ÁÜÕéÕÝØÕ ÚÐáÐÝØÙ ßÞ ÞáØ X"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "ÁÜÕéÕÝØÕ ÚÐáÐÝØÙ ßÞ ÞáØ Y"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "¸áßÞÛì×ÞÒÐâì ãßàÐÒÛÕÝØÕ ÚãàáÞàÞÜ ÚÐÚ ÝÐ âàÕÚßÐÔÕ ÛÕßâÞßÞÒ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "ÂÐß ÔÛï ÛÕÒÞÓÞ éÕÛçÚÐ, ÔÒÞÙÝÞÙ âÐß ÔÛï ßàÐÒÞÓÞ éÕÛçÚÐ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "ÇãÒáâÒØâÕÛìÝÞáâì"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "½ÐçÐÛìÝëÙ ÜÐáèâÐÑ ÒÕàåÝÕÓÞ íÚàÐÝÐ:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "¼ÐáèâÐÑ ÓÛÐÒÝÞÓÞ íÚàÐÝÐ:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "ÅÐàÔÒÐàÝÞÕ ÜÐáèâÐÑØàÞÒÐÝØÕ (ÑëáâàÞ, ÝÞ ÝØ×ÚÞÓÞ ÚÐçÕáâÒÐ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "¿àÞÓàÐÜÜÝÞÕ ÜÐáèâÐÑØàÞÒÐÝØÕ (åÞàÞèÕÕ ÚÐçÕáâÒÞ, ÝÞ ÜÕÔÛÕÝÝÕÕ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "±Õ× ÜÐáèâÐÑØàÞÒÐÝØï (ÝãÖÝÞ ÑãÔÕâ ßàÞÚàãçØÒÐâì ÒÛÕÒÞ Ø ÒßàÐÒÞ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "ÏàÚÞáâì:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "²ëáÞÚÞÕ ÚÐçÕáâÒÞ ×ÒãÚÐ (ÜÕÔÛÕÝÝÕÕ) (àÕÑãâ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "·ÐßàÕâØâì ÒëÚÛîçÕÝØÕ"
-
-#: backends/platform/iphone/osys_events.cpp:338
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "ÀÕÖØÜ ÜëèØ ÝÐÖÐâì-Ø-âïÝãâì ÒÚÛîçÕÝ."
-
-#: backends/platform/iphone/osys_events.cpp:340
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "ÀÕÖØÜ ÜëèØ ÝÐÖÐâì-Ø-âïÝãâì ÒëÚÛîçÕÝ."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔÐ ÒÚÛîçÕÝ."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔÐ ÒëÚÛîçÕÝ."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "±Õ× ãÒÕÛØçÕÝØï"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "±Õ× ãÒÕÛØçÕÝØï"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-msgid "Enabled aspect ratio correction"
-msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ ÒÚÛîçÕÝÐ"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-msgid "Disabled aspect ratio correction"
-msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ ÒëÚÛîçÕÝÐ"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-msgid "Active graphics filter:"
-msgstr "°ÚâØÒÝëÙ ÓàÐäØçÕáÚØÙ äØÛìâà:"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-msgid "Windowed mode"
-msgstr "¾ÚÞÝÝëÙ àÕÖØÜ"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL ÑÕ× ãÒÕÛØçÕÝØï"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL á áÞåàÐÝÕÝØÕÜ"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL Ø×ÝÐçÐÛìÝëÙ"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-msgid "Current display mode"
-msgstr "ÂÕÚãéØÙ ÒØÔÕÞàÕÖØÜ"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr "ÂÕÚãéØÙ ÜÐáèâÐÑ"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr "°ÚâØÒÝëÙ àÕÖØÜ äØÛìâàÐ: »ØÝÕÙÝëÙ"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr "°ÚâØÒÝëÙ àÕÖØÜ äØÛìâàÐ: ±ÛØÖÐÙèØÙ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "²ÒÕàå"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "²ÝØ×"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "²ÛÕÒÞ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "²ßàÐÒÞ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "»ÕÒëÙ éÕÛçÞÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "¿àÐÒëÙ éÕÛçÞÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "·ÞÝÐ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "¼ãÛìâØäãÝÚæØï"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "ÁÜÕÝØâì ÓÕàÞï"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "¿àÞßãáâØâì âÕÚáâ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "±ëáâàëÙ àÕÖØÜ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "¾âÛÐÔçØÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "³ÛÞÑÐÛìÝÞÕ ÜÕÝî"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "²ØàâãÐÛìÝÐï ÚÛÐÒØÐâãàÐ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "½Ð×ÝÐçÕÝØÕ ÚÛÐÒØè"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "²ë åÞâØâÕ ÒëÙâØ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "²ØÔÕÞ"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "ÂÕÚãéØÙ ÒØÔÕÞàÕÖØÜ:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "´ÒÞÙÝÞÙ ãÔÐà"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "³ÞàØ×ÞÝâÐÛìÝëÙ underscan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "²ÕàâØÚÐÛìÝëÙ underscan:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "²ÒÞÔ"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "ÇãÒáâÒØâÕÛìÝÞáâì GC ßÐÔÐ:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "ÃáÚÞàÕÝØÕ GC ßÐÔÐ:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "ÁÞáâÞïÝØÕ:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "½ÕØ×ÒÕáâÝÞ"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "¿ÞÔÚÛîçØâì DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "¾âÚÛîçØâì DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "ÁÕàÒÕà:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "ÁÕâÕÒÐï ßÐßÚÐ:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "¿ÞÛì×ÞÒÐâÕÛì:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "¿ÐàÞÛì:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "¸ÝØæØÐÛØ×ÐæØï áÕâØ"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "¿ÞÔÚÛîçØâì SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "¾âÚÛîçâì SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD ßÞÔÚÛîçÕÝ ãáßÕèÝÞ"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "¾èØÑÚÐ ÒÞ ÒàÕÜï ßÞÔÚÛîçÕÝØï DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ÝÕ ßÞÔÚÛîçÕÝ"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "ÁÕâì àÐÑÞâÐÕâ, ßÐßÚÐ ßÞÔÚÛîçÕÝÐ"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "ÁÕâì àÐÑÞâÐÕâ"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", ÞèØÑÚÐ ÒÞ ÒàÕÜï ßÞÔÚÛîçÕÝØï ßÐßÚØ"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", ßÐßÚÐ ÝÕ ßÞÔÚÛîçÕÝÐ"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "ÁÕâì ÒëÚÛîçÕÝÐ"
-
-#: backends/platform/wii/options.cpp:178
-msgid "Initializing network"
-msgstr "½ÐáâàÐØÒÐî áÕâì"
-
-#: backends/platform/wii/options.cpp:182
-msgid "Timeout while initializing network"
-msgstr "²àÕÜï ßÞÔÚÛîçÕÝØï Ú áÕâØ ØáâÕÚÛÞ"
-
-#: backends/platform/wii/options.cpp:186
-#, c-format
-msgid "Network not initialized (%d)"
-msgstr "ÁÕâì ÝÕ ÝÐáâàÞØÛÐáì (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "ÁßàïâÐâì ßÐÝÕÛì ØÝáâàãÜÕÝâÞÒ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "¿ÞÚÐ×Ðâì ÚÛÐÒØÐâãàã"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "·ÒãÚ ÒÚÛ/ÒëÚÛ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "¿àÐÒëÙ éÕÛçÞÚ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "¿ÞÚÐ×Ðâì/ÃÑàÐâì ÚãàáÞà"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "ÁÒÞÑÞÔÝëÙ ÞÑ×Þà"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "ÃÒÕÛ. ÜÐáèâÐÑ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "ÃÜÕÝìè. ÜÐáèâÐÑ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "½Ð×ÝÐçØâì ÚÛÐÒØèØ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "ºãàáÞà ÒÒÕàå"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "ºãàáÞà ÒÝØ×"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "ºãàáÞà ÒÛÕÒÞ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "ºãàáÞà ÒßàÐÒÞ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "²ë åÞâØâÕ ×ÐÓàã×Øâì ÛØÑÞ áÞåàÐÝØâì ØÓàã?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " ²ë ãÒÕàÕÝë, çâÞ åÞâØâÕ ÒëÙâØ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "ºÛÐÒØÐâãàÐ"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "¿ÞÒÕàÝãâì"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "¸áßÞÛì×ãî ÔàÐÙÒÕà SDL "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "¿ÞÚÐ×Ðâì "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "²ë åÞâØâÕ ßàÞØ×ÒÕáâØ ÐÒâÞÜÐâØçÕáÚØÙ ßÞØáÚ?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ßÞ ßàÐÒÞÜã éÕÛçÚã"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "²ë ÔÞÛÖÝë ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÝÐ ÔÕÙáâÒØÕ 'Right Click' ÔÛï íâÞÙ ØÓàë"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ 'áßàïâÐâì ßÐÝÕÛì ØÝáâàãÜÕÝâÞÒ'"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr "²ë ÔÞÛÖÝë ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÝÐ ÔÕÙâáâÒØÕ 'Hide toolbar' ÔÛï íâÞÙ ØÓàë"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ÃÒÕÛØçØâì ¼ÐáèâÐÑ (ÝÕÞÑï×ÐâÕÛìÝÞ)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ÃÜÕÝìèØâì ¼ÐáèâÐÑ (ÝÕÞÑï×ÐâÕÛìÝÞ)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"½Õ ×ÐÑãÔìâÕ ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÔÛï ÔÕÙáâÒØï 'Hide Toolbar' çâÞÑë ãÒØÔÕâì ÒÕáì "
-"ØÝÒÕÝâÐàì Ò ØÓàÕ"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Do you really want to return to the Launcher?"
-msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒÕàÝãâìáï Ò ÓÛÐÒÝÞÕ ÜÕÝî?"
-
-#: backends/events/default/default-events.cpp:222
-msgid "Launcher"
-msgstr "³ÛÐÒÝÞÕ ÜÕÝî"
-
-#: backends/events/default/default-events.cpp:244
-msgid "Do you really want to quit?"
-msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒëÙâØ?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - »ÕÒëÙ ÚÛØÚ"
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÐÒëÙ ÚÛØÚ"
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÞÛñâ (ÑÕ× ÚÛØÚÐ)"
-
-#: backends/events/gph/gph-events.cpp:390
-msgid "Maximum Volume"
-msgstr "¼ÐÚáØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr "ÃÒÕÛØçÕÝØÕ ÓàÞÜÚÞáâØ"
-
-#: backends/events/gph/gph-events.cpp:398
-msgid "Minimal Volume"
-msgstr "¼ØÝØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr "ÃÜÕÝìèÕÝØÕ ÓàÞÜÚÞáâØ"
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "¿ÐàÐÜÕâàë ÚÞÜÐÝÔÝÞÙ áâàÞÚØ ÝÕ ÞÑàÐÑÞâÐÝë"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "ÍÜãÛïâÞà FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "½ÕÒÕàÝëÙ ßãâì"
+# Russian translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Eugene Sandulenko <sev@scummvm.org>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-08-20 13:22+0200\n"
+"Last-Translator: Eugene Sandulenko <sev@scummvm.org>\n"
+"Language-Team: Russian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-5\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Russian\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%"
+"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(áÞÑàÐÝ %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "²ÚÛîçÕÝÝëÕ Ò ÑØÛÔ ÞßæØØ:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "´ÞáâãßÝëÕ ÔÒØÖÚØ:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "²ÒÕàå"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "¿ÕàÕÙâØ ÝÐ ÔØàÕÚâÞàØî ãàÞÒÝÕÜ ÒëèÕ"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "²ÒÕàå"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "¾âÜÕÝÐ"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "²ëÑàÐâì"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "·ÐÚàëâì"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "ºÛØÚ Üëèìî"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "¿ÞÚÐ×Ðâì ÚÛÐÒØÐâãàã"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "¿ÕàÕÝÐ×ÝÐçØâì ÚÛÐÒØèØ"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "²ëÑÕàØâÕ ÔÕÙáâÒØÕ ÔÛï ÝÐ×ÝÐçÕÝØï"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "½Ð×ÝÐçØâì"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "²ëÑÕàØâÕ ÔÕÙáâÒØÕ Ø ÚÛØÚÝØâÕ '½Ð×ÝÐçØâì'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "½Ð×ÝÐçÕÝÝÐï ÚÛÐÒØèÐ : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "½Ð×ÝÐçÕÝÝÐï ÚÛÐÒØèÐ : ÝÕâ"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "¿ÞÖÐÛãÙáâÐ, ÒëÑÕàØâÕ ÔÕÙáâÒØÕ"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "½ÐÖÜØâÕ ÚÛÐÒØèã ÔÛï ÝÐ×ÝÐçÕÝØï"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "¸ÓàÐ"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"ºÞàÞâÚØÙ ØÔÕÝâØäØÚÐâÞà, ØáßÞÛì×ãÕÜëÙ ÔÛï ØÜÕÝ áÞåàÐÝÕÝØÙ ØÓà Ø ÔÛï ×ÐßãáÚÐ "
+"Ø× ÚÞÜÐÝÔÝÞÙ áâàÞÚØ"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "½Ð×ÒÐÝØÕ:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "¿ÞÛÝÞÕ ÝÐ×ÒÐÝØÕ ØÓàë"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "½Ð×Ò:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Ï×ëÚ:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Ï×ëÚ ØÓàë. ¸×ÜÕÝÕÝØÕ íâÞÙ ÝÐáâàÞÙÚØ ÝÕ ßàÕÒàÐâØâ ØÓàã ÝÐ ÐÝÓÛØÙáÚÞÜ Ò àãááÚãî"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<ßÞ ãÜÞÛçÐÝØî>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "¿ÛÐâäÞàÜÐ:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "¿ÛÐâäÞàÜÐ, ÔÛï ÚÞâÞàÞÙ ØÓàÐ ÑëÛÐ Ø×ÝÐçÐÛìÝÞ àÐ×àÐÑÞâÐÝÐ"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "¿ÛÐâäÞàÜÐ:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "³àÐäØÚÐ"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "³àä"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÐäØÚØ"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÐäØÚØ"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "°ãÔØÞ"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÐãÔØÞ"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÐãÔØÞ"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "³àÞÜÚÞáâì"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "³àÞÜÚ"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÞÜÚÞáâØ"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ ÓàÞÜÚÞáâØ"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "¿ÕàÕÚàëâì ÓÛÞÑÐÛìÝëÕ ãáâÐÝÞÒÚØ MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "¿ãâØ"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "¿ãâØ"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "¿ãâì Ú ØÓàÕ:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "³ÔÕ ØÓàÐ:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "´Þß. ßãâì:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "ÃÚÐ×ëÒÐÕâ ßãâì Ú ÔÞßÞÛÝØâÕÛìÝëÜ äÐÙÛÐÜ ÔÐÝÝëå ÔÛï ØÓàë"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "´Þß. ßãâì:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "ÁÞåàÐÝÕÝØï ØÓà:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "ÃÚÐ×ëÒÐÕâ ßãâì Ú áÞåàÐÝÕÝØïÜ ØÓàë"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "¿ãâì áÞåà:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "½Õ ×ÐÔÐÝ"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "¿Þ ãÜÞÛçÐÝØî"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "²ëÑÕàØâÕ SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á äÐÙÛÐÜØ ØÓàë"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "²ëÑÕàØâÕ ÔÞßÞÛÝØâÕÛìÝãî ÔØàÕÚâÞàØî ØÓàë"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï áÞåàÐÝÕÝØÙ"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "ÍâÞâ ID ØÓàë ãÖÕ ØáßÞÛì×ãÕâáï. ¿ÞÖÐÛãÙáâÐ, ÒëÑÕàØâÕ ÔàãÓÞÙ."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~²~ëåÞÔ"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "²ëåÞÔ Ø× ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "¾ ß~à~ÞÓàÐÜÜÕ..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "¾ ßàÞÓàÐÜÜÕ ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~½~ÐáâàÞÙÚØ..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "¸×ÜÕÝØâì ÓÛÞÑÐÛìÝëÕ ÝÐáâàÞÙÚØ ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "¿~ã~áÚ"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "·ÐßãáâØâì ÒëÑàÐÝÝãî ØÓàã"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~·~ÐÓàã×Øâì..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "·ÐÓàã×Øâì áÞåàÝÕÝØÕ ÔÛï ÒëÑàÐÝÝÞÙ ØÓàë"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~´~ÞÑÐÒØâì ØÓàã..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "ÃÔÕàÖØÒÐÙâÕ ÚÛÐÒØèã Shift ÔÛï âÞÓÞ, çâÞÑë ÔÞÑÐÒØâì ÝÕáÚÞÛìÚÞ ØÓà"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "½~Ð~áâàÞÙÚØ ØÓàë..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "¸×ÜÕÝØâì ÝÐáâàÞÙÚØ ØÓàë"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~Ã~ÔÐÛØâì ØÓàã"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "ÃÔÐÛØâì ØÓàã Ø× áßØáÚÐ. ½Õ ãÔÐÛïÕâ ØÓàã á ÖÕáâÚÞÓÞ ÔØáÚÐ"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~´~ÞÑ. ØÓàã..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "½~Ð~á. ØÓàë..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~Ã~ÔÐÛØâì ØÓàã"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "¿ÞØáÚ Ò áßØáÚÕ ØÓà"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "¿ÞØáÚ:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "¾çØáâØâì ×ÝÐçÕÝØÕ"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "·ÐÓàã×Øâì ØÓàã:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "·ÐÓàã×Øâì"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ×ÐßãáâØâì ÔÕâÕÚâÞà ÒáÕå ØÓà? ÍâÞ ßÞâÕÝæØÐÛìÝÞ ÜÞÖÕâ "
+"ÔÞÑÐÒØâì ÑÞÛìèÞÕ ÚÞÛØçÕáâÒÞ ØÓà."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "´Ð"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "½Õâ"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM ÝÕ ÜÞÖÕâ ÞâÚàëâì ãÚÐ×ÐÝÝãî ÔØàÕÚâÞàØî!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM ÝÕ ÜÞÖÕâ ÝÐÙâØ ØÓàã Ò ãÚÐ×ÐÝÝÞÙ ÔØàÕÚâÞàØØ!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "²ëÑÕàØâÕ ØÓàã:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ãÔÐÛØâì ÝÐáâàÞÙÚØ ÔÛï íâÞÙ ØÓàë?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "ÍâÐ ØÓàÐ ÝÕ ßÞÔÔÕàÖØÒÐÕâ ×ÐÓàã×Úã áÞåàÐÝÕÝØÙ çÕàÕ× ÓÛÐÒÝÞÕ ÜÕÝî."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM ÝÕ áÜÞÓ ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚÐ ÒëÑàÐÝÝÞÙ ØÓàë!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "¼ÝÞÓÞ ØÓà..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "¼ÝÞÓÞ ØÓà..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... Øéã ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "¿ÞØáÚ ×ÐÚÞÝçÕÝ!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà, ßàÞßãéÕÝÞ %d àÐÝÕÕ ÔÞÑÐÒÛÕÝÝëå ØÓà."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "¿àÞáÜÞâàÕÝÞ %d ÔØàÕÚâÞàØÙ ..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà, ßàÞßãéÕÝÞ %d àÐÝÕÕ ÔÞÑÐÒÛÕÝÝëå ØÓà ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "½ØÚÞÓÔÐ"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "ÚÐÖÔëÕ 5 ÜØÝãâ"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "ÚÐÖÔëÕ 10 ÜØÝãâ"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "ÚÐÖÔëÕ 15 ÜØÝãâ"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "ÚÐÖÔëÕ 30 ÜØÝãâ"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 Ú³æ"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "½Õ ×ÐÔÐÝ"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "½Õ ãÔÐÛÞáì ßàØÜÕÝØâì Ø×ÜÕÝÕÝØï ÝÕÚâÞàëå ÓàÐäØçÕáÚØå ÝÐáâàÞÕÚ:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "ÒØÔÕÞàÕÖØÜ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "ßÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "àÕÖØÜ ÚÞààÕÚâØàÞÒÚØ áÞÞâÝÞèÕÝØï áâÞàÞÝ ÝÕ ÜÞÖÕâ Ñëâì Ø×ÜÕÝñÝ"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "³àÐä. àÕÖØÜ:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "ÀÕÖØÜ àÐáâàÐ:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "ÁßÕæØÐÛìÝëÕ àÕÖØÜë àÕÝÔÕàØÝÓÐ, ßÞÔÔÕàÖØÒÐÕÜëÕ ÝÕÚÞâÞàëÜØ ØÓàÐÜØ"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "¿ÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "ºÞààÕÚâØàÞÒÐâì áÞÞâÝÞèÕÝØÕ áâÞàÞÝ ÔÛï ØÓà á àÐ×àÕèÕÝØÕÜ 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA ÑÕ× àÐáâàÐ"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr ""
+"²ÚÛîçÐÕâ àÕÖØÜ ÑÕ× àÐáâàØàÞÒÐÝØï Ò EGA ØÓàÐå, ÚÞâÞàëÕ ßÞÔÔÕàÖØÒÐîâ âÐÚÞÙ "
+"àÕÖØÜ"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "¿àÕÔßÞçØâÐÕÜÞÕ:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "·ÒãÚÞÒÞÕ ãáâ-ÒÞ:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr ""
+"ÃÚÐ×ëÒÐÕâ ßàÕÔßÞçØâÐÕÜÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ØÛØ íÜãÛïâÞà ×ÒãÚÞÒÞÙ ÚÐàâë"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "ÃÚÐ×ëÒÐÕâ ÒëåÞÔÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ØÛØ íÜãÛïâÞà ×ÒãÚÞÒÞÙ ÚÐàâë"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "¿àÕÔßÞçØâÐÕÜÞÕ:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "·ÒãÚÞÒÞÕ ãáâ-ÒÞ:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "ÍÜãÛïâÞà AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "·ÒãÚÞÒÐï ÚÐàâÐ AdLib ØáßÞÛì×ãÕâáï ÜÝÞÓØÜØ ØÓàÐÜØ"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "ÇÐáâÞâÐ ×ÒãÚÐ:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"±¾ÛìèØÕ ×ÝÐçÕÝØï ×ÐÔÐîâ ÛãçèÕÕ ÚÐçÕáâÒÞ ×ÒãÚÐ, ÞÔÝÐÚÞ ÞÝØ ÜÞÓãâ ÝÕ "
+"ßÞÔÔÕàÖØÒÐâìáï ÒÐèÕÙ ×ÒãÚÞÒÞÙ ÚÐàâÞÙ"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "ÃáâàÞÙáâÒÞ GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "ÃÚÐ×ëÒÐÕâ ÒëåÞÔÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ÔÛï MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "½Õ ØáßÞÛì×ÞÒÐâì Üã×ëÚã ÔÛï General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "¸áßÞÛì×ÞÒÐâì ßÕàÒÞÕ ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFontë ßÞÔÔÕàÔÖØÒÐîâáï ÝÕÚÞâÞàëÜØ ×ÒãÚÞÒëÜØ ÚÐàâÐÜØ, Fluidsynth Ø "
+"Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "ÁÜÕèÐÝÝëÙ àÕÖØÜ AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "¸áßÞÛì×ÞÒÐâì Ø MIDI Ø AdLib ÔÛï ÓÕÝÕàÐæØØ ×ÒãÚÐ"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "ÃáØÛÕÝØÕ MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "Ãáâà. MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"ÃÚÐ×ëÒÐÕâ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ ßÞ ãÜÞÛçÐÝØï ÔÛï ÒëÒÞÔÐ ÝÐ Roland MT-32/LAPC1/"
+"CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "½ÐáâÞïéØÙ Roland MT-32 (×ÐßàÕâØâì íÜãÛïæØî GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"¾âÜÕâìâÕ, ÕáÛØ ã ÒÐá ßÞÔÚÛîçÕÝÞ Roland-áÞÒÜÕáâØÜÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ Ø Òë "
+"åÞâØâÕ ÕÓÞ ØáßÞÛì×ÞÒÐâì"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "½ÐáâÞïéØÙ Roland MT-32 (×ÐßàÕâØâì GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "²ÚÛîçØâì àÕÖØÜ Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"²ëÚÛîçÐÕâ ÜÐßßØÝÓ General MIDI ÔÛï ØÓà á ×ÒãÚÞÒÞÙ ÔÞàÞÖÚÞÙ ÔÛï Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "½Õ ØáßÞÛì×ÞÒÐâì Üã×ëÚã ÔÛï MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "ÂÕÚáâ Ø Þ×ÒãçÚÐ:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "¾×ÒãçÚÐ"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "ÁãÑâØâàë"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "¾ÑÐ"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "ÁÚÞàÞáâì âØâàÞÒ:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "ÂÕÚáâ Ø Þ×ÒãçÚÐ:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "¾×Ò"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "狄"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "¾ÑÐ"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "¿ÞÚÐ×ëÒÐâì áãÑâØâàë Ø ÒÞáßàÞØ×ÒÞÔØâì àÕçì"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "ÁÚÞàÞáâì âØâàÞÒ:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "³àÞÜÚ. Üã×ëÚØ:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "³àÞÜÚ. Üã×ëÚØ:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "²ëÚÛ. Òáñ"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "³àÞÜÚÞáâì SFX:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "³àÞÜÚÞáâì áßÕæØÐÛìÝëå ×ÒãÚÞÒëå íääÕÚâÞÒ"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "³àÞÜÚ. SFX:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "³àÞÜÚ. Þ×ÒãçÚØ:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "³àÞÜÚ. Þ×ÒãçÚØ:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "¿ãâì Ú âÕÜÐÜ:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "³ÔÕ âÕÜë:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"ÃÚÐ×ëÒÐÕâ ßãâì Ú ÔÞßÞÛÝØâÕÛìÝëÜ äÐÙÛÐÜ ÔÐÝÝëå, ØáßÞÛì×ãÕÜëå ÒáÕÜØ ØÓàÐÜØ, "
+"ÛØÑÞ ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "¿ãâì Ú ßÛÐÓØÝÐÜ:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "¿ãâì Ú ßÛÐÓØÝÐÜ:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "ÀÐ×ÝÞÕ"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "ÀÐ×ÝÞÕ"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "ÂÕÜÐ:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "ÀØáÞÒÐÛÚÐ GUI:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "°ÒâÞáÞåàÐÝÕÝØÕ:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "°ÒâÞáÞåà.:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "ºÛÐÒØèØ"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "Ï×ëÚ GUI:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Ï×ëÚ ÓàÐäØçÕáÚÞÓÞ ØÝâÕàäÕÙáÐ ScummVM"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "²ë ÔÞÛÖÝë ßÕàÕ×ÐßãáâØâì ScummVM çâÞÑë ßàØÜÕÝØâì Ø×ÜÕÝÕÝØï."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï áÞåàÐÝÕÝØÙ"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "½Õ ÜÞÓã ßØáÐâì Ò ÒëÑàÐÝÝãî ÔØàÕÚâÞàØî. ¿ÞÖÐÛãÙáâÐ, ãÚÐÖØâÕ ÔàãÓãî."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî ÔÛï âÕÜ GUI"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á ÔÞßÞÛÝØâÕÛìÝëÜØ äÐÙÛÐÜØ"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "²ëÑÕàØâÕ ÔØàÕÚâÞàØî á ßÛÐÓØÝÐÜØ"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"ÂÕÜÐ, ÒëÑàÐÝÝÐï ÒÐÜØ, ÝÕ ßÞÔÔÕàÖØÒÐÕâ ÒëÑàÐÝÝëÙ ï×ëÚ. µáÛØ Òë åÞâØâÕ "
+"ØáßÞÛì×ÞÒÐâì íâã âÕÜã, ÒÐÜ ÝÕÞÑåÞÔØÜÞ áÝÐçÐÛÐ ßÕàÕÚÛîçØâìáï ÝÐ ÔàãÓÞÙ ï×ëÚ."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "´ÐâÐ ÝÕ ×ÐßØáÐÝÐ"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "²àÕÜï ÝÕ ×ÐßØáÐÝÞ"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "²àÕÜï ØÓàë ÝÕ ×ÐßØáÐÝÞ"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "ÃÔÐÛØâì"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ãÔÐÛØâì íâÞ áÞåàÐÝÕÝØÕ?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "´ÐâÐ: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "²àÕÜï: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "²àÕÜï ØÓàë: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "ÁÞåàÐÝÕÝØÕ ÑÕ× ØÜÕÝØ"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "²ëÑÕàØâÕ âÕÜã"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "±Õ× ÓàÐäØÚØ"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "±Õ× ÓàÐäØÚØ"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "ÁâÐÝÔÐàâÝëÙ àÐáâÕàØ×ÐâÞà (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "ÀÐáâÕàØ×ÐâÞà áÞ áÓÛÐÖØÒÐÝØÕÜ (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "´ÒØÖÞÚ ÝÕ ßÞÔÔÕàÖØÒÐÕâ ãàÞÒÕÝì ÞâÛÐÔÚØ '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "¼ÕÝî"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "¿àÞßãáâØâì"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "¿Ðã×Ð"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "¿àÞßãáâØâì áâàÞÚã"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "¾èØÑÚÐ ×ÐßãáÚÐ ØÓàë:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "½Õ ÜÞÓã ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚÐ ÒëÑàÐÝÝÞÙ ØÓàë"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "½Õâ ÞèØÑÚØ"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "½Õâ äÐÙÛÞÒ ØÓàë"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Game id ÝÕ ßÞÔÔÕàÖØÒÐÕâáï"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "½ÕßÞÔÔÕàÖØÒÐÕÜëÙ àÕÖØÜ æÒÕâÐ"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "½ÕÔÞáâÐâÞçÝÞ ßàÐÒ ÔÛï çâÕÝØï"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "½ÕÔÞáâÐâÞçÝÞ ßàÐÒ ÔÛï ×ÐßØáØ"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "¿ãâì ÝÕ ÝÐÙÔÕÝ"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "¿ãâì ÝÕ ïÒÛïÕâáï ÔØàÕÚâÞàØÕÙ"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "¿ãâì ÝÕ ïÒÛïÕâáï äÐÙÛÞÜ"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "½Õ ÜÞÓã áÞ×ÔÐâì äÐÙÛ"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "¾èØÑÚÐ çâÕÝØï ÔÐÝÝëå"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "¾èØÑÚÐ ×ÐßØáØ ÔÐÝÝëå"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "½Õ ÜÞÓã ÝÐÙâØ ßÞÔåÞÔïéØÙ ßÛÐÓØÝ ÔÛï ÔÒØÖÚÐ"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "´ÒØÖÞÚ ÝÕ ßÞÔÔÕàÖØÒÐÕâ áÞåàÐÝÕÝØï"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "¿àÕàÒÐÝÞ ßÞÛì×ÞÒÐâÕÛÕÜ"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "½ÕØ×ÒÕáâÝÐï ÞèØÑÚÐ"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules ·ÕÛñÝëÙ"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules ÏÝâÐàÝëÙ"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules ·ÕÛñÝëÙ"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules ÏÝâÐàÝëÙ"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "ºÐÖÕâáï, çâÞ ØÓàÐ '%s' Õéñ ÝÕØ×ÒÕáâÝÐ."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+"¿ÞÖÐÛãÙáâÐ, ßÕàÕÔÐÙâÕ áÛÕÔãîéØÕ ÔÐÝÝëÕ ÚÞÜÐÝÔÕ ScummVM ÒÜÕáâÕ á ÝÐ×ÒÐÝØÕÜ"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr "ØÓàë, ÚÞâÞàãî Òë ßëâÐÕâÕáì ÔÞÑÐÒØâì, Ø ãÚÐÖØâÕ Õñ ÒÕàáØî, ï×ëÚ Ø â.Ô."
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "¿àÞÔÞÛ~Ö~Øâì"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~·~ÐÓàã×Øâì"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~·~ÐßØáÐâì"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~¾~ßæØØ"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~¿~ÞÜÞéì"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "¾ ßàÞ~Ó~àÐÜÜÕ"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~²~ëÙâØ Ò ÓÛÐÒÝÞÕ ÜÕÝî"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~²~ ÓÛÐÒÝÞÕ ÜÕÝî"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "ÁÞåàÐÝØâì ØÓàã:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "ÁÞåàÐÝØâì"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"¿àÞáØÜ ßàÞéÕÝØï, ÝÞ íâÞâ ÔÒØÖÞÕ ßÞÚÐ ÝÕ ßàÕÔÞáâÐÒÛïÕâ ßÞÜÞéØ ÒÝãâàØ ØÓàë. "
+"¿ÞÖÐÛãÙáâÐ, ÞÑàÐâØâÕáì Ò äÐÙÛ README ×Ð ÑÐ×ÞÒÞÙ ØÝäÞàÜÐæØÕÙ, Ð âÐÚÖÕ "
+"ØÝáâàãÚæØïÜØ Þ âÞÜ, ÚÐÚ ßÞÛãçØâì ÔÐÛìÝÕÙèãî ßÞÜÞéì."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "¾~â~ÜÕÝÐ"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~º~ÛÐÒØèØ"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "½Õ ÜÞÓã ØÝØæØÐÛØ×ØàÞÒÐâì äÞàÜÐâ æÒÕâÐ."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "½Õ ãÔÐÛÞáì ßÕàÕÚÛîçØâì ÒØÔÕÞàÕÖØÜ: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "½Õ ãÔÐÛÞáì ØáßÞÛì×ÞÒÐâì ÚÞààÕÚæØî áÞÞâÝÞèÕÝØï áâÞàÞÝ."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "½Õ ÜÞÓã ßàØÜÕÝØâì ßÞÛÝÞíÚàÐÝÝëÙ àÕÖØÜ."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"ºÐÖÕâáï, Òë ßëâÐÕâÕáì ×ÐßãáâØâì íâã ØÓàã ßàïÜÞ\n"
+"á CD. ÍâÞ ÞÑëçÝÞ Òë×ëÒÐÕâ ßàÞÑÛÕÜë, Ø ßÞíâÞÜã\n"
+"Üë àÕÚÞÜÕÝÔãÕÜ áÚÞßØàÞÒÐâì äÐÙÛë ÔÐÝÝëå ØÓàë\n"
+"ÝÐ ÖñáâÚØÙ ÔØáÚ. ¿ÞÔàÞÑÝÞáâØ ÜÞÖÝÞ ÝÐÙâØ Ò\n"
+"äÐÙÛÕ README."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"´ØáÚ íâÞÙ ØÓàë áÞÔÕàÖØâ ×ÒãÚÞÒëÕ ÔÞàÞÖÚØ. ¸å\n"
+"ÝÕÞÑåÞÔØÜÞ ßÕàÕßØáÐâì á ÔØáÚÐ á ßÞÜÞéìî\n"
+"áÞÞâÒÕâáâÒãîéÕÙ ßàÞÓàÐÜÜë ÔÛï ÚÞßØàÞÒÐÝØï\n"
+"ÐãÔØÞ ÔØáÚÞÒ, Ø âÞÛìÚÞ ßÞáÛÕ íâÞÓÞ Ò ØÓàÕ\n"
+"ßÞïÒØâáï Üã×ëÚÐ. ¿ÞÔàÞÑÝÞáâØ ÜÞÖÝÞ ÝÐÙâØ Ò\n"
+"äÐÙÛÕ README."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"¿Àµ´Ã¿Àµ¶´µ½¸µ: ¸ÓàÐ, ÚÞâÞàãî Òë áÞÑØàÐÕâÕáì ×ÐßãáâØâì Õéñ ÝÕ ßÞÔÔÕàÖØÒÐÕâáï "
+"ScummVM ßÞÛÝÞáâìî. ¾ÝÐ áÚÞàÕÕ ÒáÕÓÞ ÝÕ ÑãÔÕâ àÐÑÞâÐâì áâÐÑØÛìÝÞ, Ø "
+"áÞåàÐÝÕÝØï ØÓà ÜÞÓãâ ÝÕ àÐÑÞâÐâì Ò ÑãÔãéØå ÒÕàáØïå ScummVM."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "²áñ àÐÒÝÞ ×ÐßãáâØâì"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr "²áâÐÒìâÕ ÔØáÚ %c Ø ÝÐÖÜØâÕ ÚÛÐÒØèã çâÞÑë ßàÞÔÞÛÖØâì."
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr "½Õ ãÔÐÛÞáì ÝÐÙâØ %s, (%c%d) ½ÐÖÜØâÕ ÚÛÐÒØèã."
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr "¾èØÑÚÐ çâÕÝØï ÔØáÚÐ %c, (%c%d) ½ÐÖÜØâÕ ÚÛÐÒØèã."
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr "¸ÓàÐ ÞáâÐÝÞÒÛÕÝÐ. ½ÐÖÜØâÕ ßàÞÑÕÛ çâÞÑë ßàÞÔÞÛÖØâì."
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "²ë ãÒÕàÕÝë, çâÞ åÞâØâÕ ÝÐçÐâì áÝÞÒÐ? (Y/N)"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "²ë ãÒÕàÕÝë, çâÞ åÞâØâÕ ÒëÙâØ? (Y/N)"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr "¸ÓàÐâì"
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "²ëåÞÔ"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr "²áâÐÒìâÕ ÔØáÚ á áÞåàÐÝÕÝØïÜØ"
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr "²ë ÔÞÛÖÝë ÒÒÕáâØ ØÜï"
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr "¸ÓàÐ ½µ ±Ë»° ×ÐßØáÐÝÐ (ÔØáÚ ßÞÛÞÝ?)"
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr "¸ÓàÐ ½µ ±Ë»° ×ÐÓàãÖÕÝÐ"
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr "ÁÞåàÐÝïî '%s'"
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr "·ÐÓàãÖÐî '%s'"
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr "½Ð×ÞÒØâÕ áÞåàÐÝÕÝØÕ ØÓàë"
+
+#: engines/scumm/dialogs.cpp:200
+msgid "Select a game to LOAD"
+msgstr "²ëÑÕàØâÕ ØÓàã ÔÛï ×ÐÓàã×ÚØ"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr "½Ð×ÒÐÝØÕ ØÓàë)"
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~¿~àÕÔ"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~Á~ÛÕÔ"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~·~ÐÚàëâì"
+
+#: engines/scumm/dialogs.cpp:597
+msgid "Speech Only"
+msgstr "ÂÞÛìÚÞ Þ×ÒãçÚÐ"
+
+#: engines/scumm/dialogs.cpp:598
+msgid "Speech and Subtitles"
+msgstr "¾×ÒãçÚÐ Ø áãÑâØâàë"
+
+#: engines/scumm/dialogs.cpp:599
+msgid "Subtitles Only"
+msgstr "ÂÞÛìÚÞ áãÑâØâàë"
+
+#: engines/scumm/dialogs.cpp:607
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "¾×ÒãçÚÐ Ø âÕÚáâ"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "¾ÑéØÕ ÚÛÐÒØÐâãàÝëÕ ÚÞÜÐÝÔë:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "´ØÐÛÞÓ ×ÐßØáØ / çâÕÝØï"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "¿àÞßãáâØâì áâàÞÚã"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "¿àÞßãáâØâì ×ÐáâÐÒÚã"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "¿àÞÑÕÛ"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "¿Ðã×Ð ØÓàë"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "·ÐÓàã×Øâì ØÓàã 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "ÁÞåàÐÝØâì ØÓàã 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "²ÒÞÔ"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "¿ÕàÕÚÛîçØâì ÝÐ ÒÕáì íÚàÐÝ"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "³àÞÜÚÞáâì Üã×ëÚØ ãÒÕÛØçØâì / ãÜÕÝìèØâì"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "ÁÚÞàÞáâì âÕÚáâÐ ÑëáâàÕÕ / ÜÕÔÛÕÝÝÕÕ"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "ÍÜãÛïæØï ÝÐÖÐâØï ÛÕÒÞÙ ÚÛÐÒØèØ ÜëèØ"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "ÍÜãÛïæØï ßàÐÒÞÙ ÚÛÐÒØèØ ÜëèØ"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "ÁßÕæØÐÛìÝÒÕ ÚÛÐÒØÐâãàÝëÕ ÚÞÜÐÝÔë:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "¿ÞÚÐ×Ðâì / ÃÑàÐâì ÚÞÝáÞÛì"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "·ÐßãáÚ ÞâÛÐÔçØÚÐ"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "¿ÞÚÐ×Ðâì ßÞâàÕÑÛÕÝØÕ ßÐÜïâØ"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "·ÐßãáâØâì ÑëáâàëÙ àÕÖØÜ (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "·ÐßãáâØâì ÞçÕÝì ÑëáâàëÙ àÕÖØÜ (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "¿ÕàÕÚÛîçÕÝØÕ ßÕàÕåÒÐâÐ ÜëèØ"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "¿ÕàÕÚÛîçÕÝØÕ ÜÕÖÔã ÓàÐäØçÕáÚØÜØ äØÛìâàÐÜØ"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "ÃÒÕÛØçØâì/ãÜÕÝìèØâì ÜÐáèâÐÑ"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "¿ÕàÕÚÛîçÕÝØÕ ÚÞààÕÚæØØ áÞÞâÝÞèÕÝØï áâÞàÞÝ"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* ¸áßÞÛì×ÞÒÐÝØÕ ctrl-f Ø"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g ÝÕ àÕÚÞÜÕÝÔãÕâáï"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " âÐÚ ÚÐÚ ÞÝØ ÜÞÓãâ ßàØÒÕáâØ Ú"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " ÝÕÒÕàÝÞÙ àÐÑÞâÕ ØÓàë."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "¸×ÜÕÝïÕÜëÕ çÕàÝÞÒØÚØ ÝÐ ÚÛÐÒØÐâãàÕ:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "¾áÝÞÒÝÞÕ ãßàÐÒÛÕÝØÕ ØÓàÞÙ:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "ÂÞÛÚÐâì"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "ÂïÝãâì"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "´Ðâì"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "¾âÚàëâì"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "¸ÔâØ"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "²×ïâì"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "¸áßÞÛì×ÞÒÐâì"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "ÇØâÐâì"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "½ÞÒëÙ ßÕàá"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "²ÚÛîçØâì"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "²ëÚÛîçØâì"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "¸ÔâØ Ú"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "¿ÞÔÝïâì"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "ÇâÞ âÐÚÞÕ"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "¾âÚàëâì"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "¿ÞÛÞÖØâì"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "¿ÞÔÝïâì"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "¸áßàÐÒØâì"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "¿ÕàÕÚÛîçØâì"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "ÁÜÞâàÕâì"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "³ÞÒÞàØâì"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "¿ãâÕèÕáâÒÞÒÐâì"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "³ÕÝàØ/¸ÝÔØ"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "ØÓàÐâì ÔÞ ÜØÝÞà ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "ØÓàÐâì àÕ ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "ØÓàÐâì ÜØ ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "ØÓàÐâì äÐ ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "ØÓàÐâì áÞÛì ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "ØÓàÐâì Ûï ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "ØÓàÐâì áØ ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "ØÓàÐâì ÔÞ ÜÐÖÞà ÝÐ ßàïÛÚÕ"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "âÞÛÚÐâì"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "âïÝãâì (æÕßÛïâì)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "³ÞÒÞàØâì á"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "ÁÜÞâàÕâì ÝÐ"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "ÒÚÛîçØâì"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "ÒëÚÛîçØâì"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "²ÒÕàå"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "¿ÞÔáÒÕâØâì ßàÕÔëÔãéØÙ ÔØÐÛÞÓ"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "²ÝØ×"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "¿ÞÔáÒÕâØâì áÛÕÔãîéØÙ ÔØÐÛÞÓ"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "¸ÔâØ"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "¸ÝÒÕÝâÐàì"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "¾ÑêÕÚâ"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "ÇÕàÝÞ-ÑÕÛëÙ / ÆÒÕâÝÞÙ"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "³ÛÐ×Ð"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Ï×ëÚ"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "ÃÔÐà"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "½ÞÓÞÙ"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "¿àÞÒÕàØâì"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "¾ÑëçÝëÙ ÚãàáÞà"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "ºÞÜÜ"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "·ÐÓàã×Øâì / ÁÞåàÐÝØâì / ½ÐáâàÞÙÚØ"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "¾áâÐÛìÝÞÕ ãßàÐÒÛÕÝØÕ ØÓàÞÙ:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "¸ÝÒÕÝâÐàì:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "¿àÞÚàãâØâì áßØáÞÚ ÒÒÕàå"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "¿àÞÚàãâØâì áßØáÞÚ ÒÝØ×"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "²ÕàåÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "½ØÖÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "²ÕàåÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "½ØÖÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "ÁàÕÔÝØÙ ÛÕÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "ÁàÕÔÝØÙ ßàÐÒëÙ ßàÕÔÜÕâ"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "ÁÜÕÝÐ ÓÕàÞï:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "²âÞàÞÙ ÓÕàÞÙ"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "ÂàÕâØÙ ÓÕàÞÙ"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "ÃßàÐÒÛÕÝØÕ ÑÞÕÜ (æØäàÞÒëÕ ÚÛÐÒØèØ)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "ÈÐÓ ÝÐ×ÐÔ"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "·ÐéØâÐ áÒÕàåã"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "·ÐéØâÐ ßÞáÕàÕÔØÝÕ"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "·ÐéØâÐ áÝØ×ã"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "ÃÔÐà áÒÕàåã"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "ÃÔÐà ßÞáÕàÕÔØÝÕ"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "ÃÔÐà áÝØ×ã"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "ÍâÞ ÚÞÓÔÐ ¸ÝÔØ áÛÕÒÐ."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "ºÞÓÔÐ ¸ÝÔØ áßàÐÒÐ,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4 Ø 1 ÜÕÝïîâáï á"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 Ø 3 áÞÞâÒÕâáâÒÕÝÝÞ."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "ÃßàÐÒÛÕÝØÕ áÐÜÞÛñâÞÜ (æØäàÞÒëÕ ÚÛÐÒØèØ)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "»ÕâÕâì ÒÛÕÒÞ-ÒÒÕàå"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "»ÕâÕâì ÒÛÕÒÞ"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "»ÕâÕâì ÒÛÕÒÞ-ÒÝØ×"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "»ÕâÕâì ÒÒÕàå"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "»ÕâÕâì ßàïÜÞ"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "»ÕâÕâì ÒÝØ×"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "»ÕâÕâì ÒßàÐÒÞ-ÒÒÕàå"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "»ÕâÕâì ÒßàÐÒÞ"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "»ÕâÕâì ÒßàÐÒÞ-ÒÝØ×"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"ÀÕÖØÜ \"àÞÔÝÞÓÞ\" MIDI âàÕÑãÕâ ÞÑÝÞÒÛÕÝØÕ Roland Upgrade Þâ\n"
+"LucasArts, ÝÞ ÝÕ åÒÐâÐÕâ %s. ¿ÕàÕÚÛîçÐîáì ÝÐ AdLib."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"½Õ ãÔÐÛÞáì ×ÐßØáÐâì ØÓàã Ò äÐÙÛ:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"½Õ ãÔÐÛÞáì ×ÐÓàã×Øâì ØÓàã Ø× äÐÙÛÐ:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"¸ÓàÐ ãáßÕèÝÞ áÞåàÐÝÕÝÐ Ò äÐÙÛ:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"ÁÕÙçÐá ÔÞÛÖÝÐ ×ÐßãáâØâìáï ØÓàÐ Maniac Mansion. ½Þ ScummVM ßÞÚÐ íâÞÓÞ ÝÕ "
+"ãÜÕÕâ. ÇâÞÑë áëÓàÐâì, ÝÐÖÜØâÕ '½ÞÒÐï ØÓàÐ' Ò áâÐàâÞÒÞÜ ÜÕÝî ScummVM, Ð ×ÐâÕÜ "
+"ÒëÑÕàØâÕ ÔØàÕÚâÞàØî Maniac ÒÝãâàØ ÔØàÕÚâÞàØØ á ØÓàÞÙ Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "ÀÕÖØÜ ÑëáâàÞÓÞ ßÕàÕåÞÔÐ ÐÚâØÒØàÞÒÐÝ"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "¿ÕàÕåÞÔë ÐÚâØÒØàÞÒÐÝë"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "²ëÑàÞáØâì áâàÐÝØæã"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "¿ÞÚÐ×Ðâì ÚÐàâã"
+
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr "³ÛÐÒÝÞÕ ÜÕÝî"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "ÍääÕÚâë ÒÞÔë ÒÚÛîçÕÝë"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "²ÞááâÐÝÞÒØâì ØÓàã:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "²ÞááâÒÝÞÒØâì"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ÝÐÙÔÕÝ!"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "½Õ ãÔÐÛÞáì ×ÐÓàã×Øâì áÞåàÐÝñÝÝãî ØÓàã Ø× äÐÙÛÐ."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã Ò äÐÙÛ."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "½Õ ãÔÐÛÞáì ãÔÐÛØâì äÐÙÛ."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"ºÐÖÕâáï, Òë ßëâÐÕâÕáì ØáßÞÛì×ÞÒÐâì ãáâàÞÙáâÒÞ\n"
+"General MIDI, ÝÞ íâÐ ØÓàÐ ßÞÔÔÕàÖØÒÐÕâ âÞÛìÚÞ\n"
+"Roland MT32 MIDI. ¼ë ßÞßàÞÑãÕÜ ßÞÔÞÑàÐâì General\n"
+"MIDI ØÝáâàãÜÕÝâë, ßÞåÞÖØÕ ÝÐ Roland MT32, ÝÞ\n"
+"ÜÞÖÕâ âÐÚ ßÞÛãçØâìáï, çâÞ ÝÕÚÞâÞàëÕ âàÕÚØ ÑãÔãâ\n"
+"áëÓàÐÝë ÝÕÒÕàÝÞ."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "½Õ ãÔÐÛÞáì áÞåàÐÝØâì ØÓàã!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"¾âáãâáâÒãÕâ äÐÙÛ sky.cpt!\n"
+"¿ÞÖÐÛãÙáâÐ, áÚÐçÐÙâÕ ÕÓÞ á www.scummvm.org"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"ÄÐÙÛ sky.cpt ØÜÕÕâ ÝÕÒÕàÝëÙ àÐ×ÜÕà.\n"
+"¿ÞÖÐÛãÙáâÐ, áÚÐçÐÙâÕ ÕÓÞ ×ÐÝÞÒÞ á www.scummvm.org"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+"½ÐÙÔÕÝë ×ÐáâÐÒÚØ Ò äÞàÜÐâÕ DXA, ÝÞ ScummVM ÑëÛ áÞÑàÐÝ ÑÕ× ßÞÔÔÕàÖÚØ zlib"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "·ÐáâÐÒÚØ Ò äÞàÜÐâÕ MPEG2 ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "·ÐáâÐÒÚÐ '%s' ÝÕ ÝÐÙÔÕÝÐ"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"ScummVM ÞÑÝÐàãÖØÛ ã ÒÐá áÞåàÐÝÕÝØï ØÓàë ÁÛÞÜÐÝÝëÙ ¼Õç Ò áâÐàÞÜ äÞàÜÐâÕ.\n"
+"ÁâÐàëÙ äÞàÜÐâ ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐÕâáï, Ø çâÞÑë ×ÐÓàã×Øâì áÞåàÐÝÕÝØï, ÞÝØ "
+"ÔÞÛÖÝë Ñëâì ßÕàÕÒÕÔÕÝë Ò ÝÞÒëÙ äÞàÜÐâ.\n"
+"\n"
+"½ÐÖÜØâÕ ¾º, çâÞÑë ßÕàÕÒÕáâØ Øå Ò ÝÞÒëÙ äÞàÜÐâ áÕÙçÐá, Ò ßàÞâØÒÝÞÜ áÛãçÐÕ íâÞ "
+"áÞÞÑéÕÝØÕ ßÞïÒØâáï áÝÞÒÐ ßàØ áÛÕÔãîéÕÜ ×ÐßãáÚÕ ØÓàë.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"ÁÞåàÐÝÕÝØÕ ØÓàë á âÐÚØÜ ØÜÕÝÕÜ ãÖÕ áãéÕáâÒãÕâ!\n"
+"²ë åÞâØâÕ ÞáâÐÒØâì áâÐàÞÕ ÝÐ×ÒÐÝØÕ (%s) ØÛØ áÔÕÛÐâì ÝÞÒÞÕ (%s)?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "¾áâÐÒØâì áâÐàÞÕ"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "ÁÔÕÛÐâì ÝÞÒÞÕ"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "ÍâÞ ×ÐÒÕàèÕÝØÕ ÔÕÜÞ ÁÛÞÜÐÝÝÞÓÞ ¼ÕçÐ 1"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"½Õ ÜÞÓã áÞåàÐÝØâì ØÓàã Ò ßÞ×ØæØî %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "·ÐÓàãÖÐî ØÓàã..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "ÁÞåàÐÝïî ØÓàã..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"ScummVM ÞÑÝÐàãÖØÛ ã ÒÐá áâÐàëÕ áÞåàÐÝÕÝØï ØÓàë Nippon Safes, ÚÞâÞàëÕ "
+"ÝÕÞÑåÞÔØÜÞ ßÕàÕØÜÕÝÞÒÐâì.ÁâÐàëÕ ÝÐ×ÒÐÝØï ÑÞÛìèÕ ÝÕ ßÞÔÔÕàÖØÒÐîâáï, Ø ßÞíâÞÜã "
+"Òë ÝÕ áÜÞÖÕâÕ ×ÐÓàã×Øâì áÞåàÐÝÕÝØï, ÕáÛØ ÝÕ ßÕàÕØÜÕÝãÕâÕ Øå.\n"
+"\n"
+"½ÐÖÜØâÕ ¾º, çâÞÑë ßÕàÕØÜÕÝÞÒÐâì Øå áÕÙçÐá, Ò ßàÞâØÒÝÞÜ áÛãçÐÕ íâÞ ÖÕ "
+"áÞÞÑéÕÝØÕ ßÞïÒØâáï ßàØ áÛÕÔãîéÕÜ ×ÐßãáÚÕ ØÓàë.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM ãáßÕèÝÞ ßàÕÞÑàÐ×ÞÒÐÛ ÒáÕ ÒÐèØ áÞåàÐÝÕÝØï ØÓà."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM ÝÐßØáÐÛ ÝÕáÚÞÛìÚÞ ßàÕÔãßàÕÖÔÕÝØÙ Ò ÞÚÝÞ ÚÞÝáÞÛØ, Ø ÝÕ áÜÞÓ "
+"ßàÕÞÑàÐ×ÞÒÐâì ÒáÕ äÐÙÛë.\n"
+"\n"
+"¿ÞÖÐÛãÙáâÐ, áÞÞÑéØâÕ ÞÑ íâÞÜ ÚÞÜÐÝÔÕ ScummVM."
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "ÍÜãÛïâÞà MAME OPL"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "ÍÜãÛïâÞà DOSBox OPL"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"²ëÑàÐÝÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÑëÛÞ ÝÐÙÔÕÝÞ (ÒÞ×ÜÞÖÝÞ ÞÝÞ ÒëÚÛîçÕÝÞ "
+"ØÛØ ÝÕ ßÞÔÚÛîçÕÝÞ)."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr "¿ëâÐîáì ØáßÞÛì×ÞÒÐâì ÔàãÓÞÕ ÔÞáâãßÝÞÕ ãáâàÞÙáâÒÞ..."
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"²ëÑàÐÝÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÜÞÖÕâ Ñëâì ØáßÞÛì×ÞÒÐÝÞ. ÁÜÞâàØâÕ äÐÙÛ "
+"ßàÞâÞÚÞÛÐ ÔÛï ÑÞÛÕÕ ßÞÔàÞÑÝÞÙ ØÝäÞàÜÐæØØ."
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"¿àÕÔßÞçâØâÕÛìÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÑëÛÞ ÝÐÙÔÕÝÞ (ÒÞ×ÜÞÖÝÞ ÞÝÞ "
+"ÒëÚÛîçÕÝÞ ØÛØ ÝÕ ßÞÔÚÛîçÕÝÞ)."
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"¿àÕÔßÞçâØâÕÛìÝÞÕ ×ÒãÚÞÒÞÕ ãáâàÞÙáâÒÞ '%s' ÝÕ ÜÞÖÕâ Ñëâì ØáßÞÛì×ÞÒÐÝÞ. "
+"ÁÜÞâàØâÕ äÐÙÛ ßàÞâÞÚÞÛÐ ÔÛï ÑÞÛÕÕ ßÞÔàÞÑÝÞÙ ØÝäÞàÜÐæØØ."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "±Õ× Üã×ëÚØ"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "ÍÜãÛïâÞà ×ÒãÚÐ Amiga"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "ÍÜãÛïâÞà AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "ÍÜãÛïâÞà Apple II GS (ÞâáãâáâÒãÕâ)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "ÍÜãÛïâÞà ×ÒãÚÐ C64"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "½ÐáâàÐØÒÐî íÜãÛïâÞà MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "ÍÜãÛïâÞà MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "ÍÜãÛïâÞà PC áßØÚÕàÐ"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "ÍÜãÛïâÞà IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "ÂÐÑÛØæÐ ÚÛÐÒØè:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (°ÚâØÒÝÐï)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (³ÛÞÑÐÛìÝÐï)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (¸Óàë)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "³ÛÐÒÝÞÕ ÜÕÝî ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "»ÕÒÞàãÚØÙ àÕÖØÜ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "ÃßàÐÒÛÕÝØÕ ÑÞïÜØ Ò Indy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "¿ÞÚÐ×ëÒÐâì ÚãàáÞà ÜëèØ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "¿àØÚàÕßØâì Ú ÓàÐÝØæÐÜ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "ÁÜÕéÕÝØÕ ÚÐáÐÝØÙ ßÞ ÞáØ X"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "ÁÜÕéÕÝØÕ ÚÐáÐÝØÙ ßÞ ÞáØ Y"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "¸áßÞÛì×ÞÒÐâì ãßàÐÒÛÕÝØÕ ÚãàáÞàÞÜ ÚÐÚ ÝÐ âàÕÚßÐÔÕ ÛÕßâÞßÞÒ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "ÂÐß ÔÛï ÛÕÒÞÓÞ éÕÛçÚÐ, ÔÒÞÙÝÞÙ âÐß ÔÛï ßàÐÒÞÓÞ éÕÛçÚÐ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "ÇãÒáâÒØâÕÛìÝÞáâì"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "½ÐçÐÛìÝëÙ ÜÐáèâÐÑ ÒÕàåÝÕÓÞ íÚàÐÝÐ:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "¼ÐáèâÐÑ ÓÛÐÒÝÞÓÞ íÚàÐÝÐ:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "ÅÐàÔÒÐàÝÞÕ ÜÐáèâÐÑØàÞÒÐÝØÕ (ÑëáâàÞ, ÝÞ ÝØ×ÚÞÓÞ ÚÐçÕáâÒÐ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "¿àÞÓàÐÜÜÝÞÕ ÜÐáèâÐÑØàÞÒÐÝØÕ (åÞàÞèÕÕ ÚÐçÕáâÒÞ, ÝÞ ÜÕÔÛÕÝÝÕÕ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "±Õ× ÜÐáèâÐÑØàÞÒÐÝØï (ÝãÖÝÞ ÑãÔÕâ ßàÞÚàãçØÒÐâì ÒÛÕÒÞ Ø ÒßàÐÒÞ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "ÏàÚÞáâì:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "²ëáÞÚÞÕ ÚÐçÕáâÒÞ ×ÒãÚÐ (ÜÕÔÛÕÝÝÕÕ) (àÕÑãâ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "·ÐßàÕâØâì ÒëÚÛîçÕÝØÕ"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "ÀÕÖØÜ ÜëèØ ÝÐÖÐâì-Ø-âïÝãâì ÒÚÛîçÕÝ."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "ÀÕÖØÜ ÜëèØ ÝÐÖÐâì-Ø-âïÝãâì ÒëÚÛîçÕÝ."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "ÀÕÖØÜ âÐçßÐÔÐ ÒÚÛîçÕÝ."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "ÀÕÖØÜ âÐçßÐÔÐ ÒëÚÛîçÕÝ."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr "ÁßàïâÐâì ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr "ÁßàïâÐâì ´àãÓØÕ"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr "¿ÞÚÐ×Ðâì Òáñ"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr "¾ÚÝÞ"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr "¼ØÝØÜØ×ØàÞÒÐâì"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "±Õ× ãÒÕÛØçÕÝØï"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "±Õ× ãÒÕÛØçÕÝØï"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ ÒÚÛîçÕÝÐ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "ºÞààÕÚæØï áÞÞâÝÞèÕÝØï áâÞàÞÝ ÒëÚÛîçÕÝÐ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "°ÚâØÒÝëÙ ÓàÐäØçÕáÚØÙ äØÛìâà:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "¾ÚÞÝÝëÙ àÕÖØÜ"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL ÑÕ× ãÒÕÛØçÕÝØï"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL á áÞåàÐÝÕÝØÕÜ"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL Ø×ÝÐçÐÛìÝëÙ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "ÂÕÚãéØÙ ÒØÔÕÞàÕÖØÜ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "ÂÕÚãéØÙ ÜÐáèâÐÑ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "°ÚâØÒÝëÙ àÕÖØÜ äØÛìâàÐ: »ØÝÕÙÝëÙ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "°ÚâØÒÝëÙ àÕÖØÜ äØÛìâàÐ: ±ÛØÖÐÙèØÙ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "²ÒÕàå"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "²ÝØ×"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "²ÛÕÒÞ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "²ßàÐÒÞ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "»ÕÒëÙ éÕÛçÞÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "¿àÐÒëÙ éÕÛçÞÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "·ÞÝÐ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "¼ãÛìâØäãÝÚæØï"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "ÁÜÕÝØâì ÓÕàÞï"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "¿àÞßãáâØâì âÕÚáâ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "±ëáâàëÙ àÕÖØÜ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "¾âÛÐÔçØÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "³ÛÞÑÐÛìÝÞÕ ÜÕÝî"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "²ØàâãÐÛìÝÐï ÚÛÐÒØÐâãàÐ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "½Ð×ÝÐçÕÝØÕ ÚÛÐÒØè"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒëÙâØ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "²ØÔÕÞ"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "ÂÕÚãéØÙ ÒØÔÕÞàÕÖØÜ:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "´ÒÞÙÝÞÙ ãÔÐà"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "³ÞàØ×ÞÝâÐÛìÝëÙ underscan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "²ÕàâØÚÐÛìÝëÙ underscan:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "²ÒÞÔ"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "ÇãÒáâÒØâÕÛìÝÞáâì GC ßÐÔÐ:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "ÃáÚÞàÕÝØÕ GC ßÐÔÐ:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "ÁÞáâÞïÝØÕ:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "½ÕØ×ÒÕáâÝÞ"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "¿ÞÔÚÛîçØâì DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "¾âÚÛîçØâì DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "ÁÕàÒÕà:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "ÁÕâÕÒÐï ßÐßÚÐ:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "¿ÞÛì×ÞÒÐâÕÛì:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "¿ÐàÞÛì:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "¸ÝØæØÐÛØ×ÐæØï áÕâØ"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "¿ÞÔÚÛîçØâì SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "¾âÚÛîçâì SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD ßÞÔÚÛîçÕÝ ãáßÕèÝÞ"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "¾èØÑÚÐ ÒÞ ÒàÕÜï ßÞÔÚÛîçÕÝØï DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ÝÕ ßÞÔÚÛîçÕÝ"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "ÁÕâì àÐÑÞâÐÕâ, ßÐßÚÐ ßÞÔÚÛîçÕÝÐ"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "ÁÕâì àÐÑÞâÐÕâ"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", ÞèØÑÚÐ ÒÞ ÒàÕÜï ßÞÔÚÛîçÕÝØï ßÐßÚØ"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", ßÐßÚÐ ÝÕ ßÞÔÚÛîçÕÝÐ"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "ÁÕâì ÒëÚÛîçÕÝÐ"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "½ÐáâàÐØÒÐî áÕâì"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "²àÕÜï ßÞÔÚÛîçÕÝØï Ú áÕâØ ØáâÕÚÛÞ"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "ÁÕâì ÝÕ ÝÐáâàÞØÛÐáì (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "ÁßàïâÐâì ßÐÝÕÛì ØÝáâàãÜÕÝâÞÒ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "¿ÞÚÐ×Ðâì ÚÛÐÒØÐâãàã"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "·ÒãÚ ÒÚÛ/ÒëÚÛ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "¿àÐÒëÙ éÕÛçÞÚ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "¿ÞÚÐ×Ðâì/ÃÑàÐâì ÚãàáÞà"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "ÁÒÞÑÞÔÝëÙ ÞÑ×Þà"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "ÃÒÕÛ. ÜÐáèâÐÑ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "ÃÜÕÝìè. ÜÐáèâÐÑ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "½Ð×ÝÐçØâì ÚÛÐÒØèØ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "ºãàáÞà ÒÒÕàå"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "ºãàáÞà ÒÝØ×"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "ºãàáÞà ÒÛÕÒÞ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "ºãàáÞà ÒßàÐÒÞ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "²ë åÞâØâÕ ×ÐÓàã×Øâì ÛØÑÞ áÞåàÐÝØâì ØÓàã?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " ²ë ãÒÕàÕÝë, çâÞ åÞâØâÕ ÒëÙâØ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "ºÛÐÒØÐâãàÐ"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "¿ÞÒÕàÝãâì"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "¸áßÞÛì×ãî ÔàÐÙÒÕà SDL "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "¿ÞÚÐ×Ðâì "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "²ë åÞâØâÕ ßàÞØ×ÒÕáâØ ÐÒâÞÜÐâØçÕáÚØÙ ßÞØáÚ?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ßÞ ßàÐÒÞÜã éÕÛçÚã"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "²ë ÔÞÛÖÝë ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÝÐ ÔÕÙáâÒØÕ 'Right Click' ÔÛï íâÞÙ ØÓàë"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ 'áßàïâÐâì ßÐÝÕÛì ØÝáâàãÜÕÝâÞÒ'"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr "²ë ÔÞÛÖÝë ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÝÐ ÔÕÙâáâÒØÕ 'Hide toolbar' ÔÛï íâÞÙ ØÓàë"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ÃÒÕÛØçØâì ¼ÐáèâÐÑ (ÝÕÞÑï×ÐâÕÛìÝÞ)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "½Ð×ÝÐçØâì ÔÕÙáâÒØÕ ÃÜÕÝìèØâì ¼ÐáèâÐÑ (ÝÕÞÑï×ÐâÕÛìÝÞ)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"½Õ ×ÐÑãÔìâÕ ÝÐ×ÝÐçØâì ÚÛÐÒØèã ÔÛï ÔÕÙáâÒØï 'Hide Toolbar' çâÞÑë ãÒØÔÕâì ÒÕáì "
+"ØÝÒÕÝâÐàì Ò ØÓàÕ"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒÕàÝãâìáï Ò ÓÛÐÒÝÞÕ ÜÕÝî?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "³ÛÐÒÝÞÕ ÜÕÝî"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "²ë ÔÕÙáâÒØâÕÛìÝÞ åÞâØâÕ ÒëÙâØ?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - »ÕÒëÙ ÚÛØÚ"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÐÒëÙ ÚÛØÚ"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "ÀÕÖØÜ 'ÚÐáÐÝØÙ' âÐçáÚàØÝÐ - ¿àÞÛñâ (ÑÕ× ÚÛØÚÐ)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "¼ÐÚáØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "ÃÒÕÛØçÕÝØÕ ÓàÞÜÚÞáâØ"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "¼ØÝØÜÐÛìÝÐï ÓàÞÜÚÞáâì"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "ÃÜÕÝìèÕÝØÕ ÓàÞÜÚÞáâØ"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr "¿àÞÒÕàïî ÞÑÝÞÒÛÕÝØï..."
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "´ÞÑ. ØÓàã"
+
+#~ msgid "Add Game..."
+#~ msgstr "´ÞÑÐÒØâì ØÓàã..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "½ÐÙÔÕÝÞ %d ÝÞÒëå ØÓà."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "¿ÐàÐÜÕâàë ÚÞÜÐÝÔÝÞÙ áâàÞÚØ ÝÕ ÞÑàÐÑÞâÐÝë"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "ÍÜãÛïâÞà FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "½ÕÒÕàÝëÙ ßãâì"
diff --git a/po/scummvm.pot b/po/scummvm.pot
index 7abb933cb1..92ccf27bc3 100644
--- a/po/scummvm.pot
+++ b/po/scummvm.pot
@@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: ScummVM 1.4.0git\n"
"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -43,10 +43,11 @@ msgid "Go up"
msgstr ""
#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
#: backends/events/default/default-events.cpp:222
#: backends/events/default/default-events.cpp:244
msgid "Cancel"
@@ -56,22 +57,22 @@ msgstr ""
msgid "Choose"
msgstr ""
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
#: backends/keymapper/remap-dialog.cpp:52
msgid "Close"
msgstr ""
-#: gui/gui-manager.cpp:117
+#: gui/gui-manager.cpp:119
msgid "Mouse click"
msgstr ""
-#: gui/gui-manager.cpp:120 base/main.cpp:280
+#: gui/gui-manager.cpp:122 base/main.cpp:286
msgid "Display keyboard"
msgstr ""
-#: gui/gui-manager.cpp:123 base/main.cpp:283
+#: gui/gui-manager.cpp:125 base/main.cpp:289
msgid "Remap keys"
msgstr ""
@@ -84,16 +85,17 @@ msgid "Map"
msgstr ""
#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
msgid "OK"
msgstr ""
@@ -337,7 +339,7 @@ msgstr ""
msgid "~Q~uit"
msgstr ""
-#: gui/launcher.cpp:555
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
msgid "Quit ScummVM"
msgstr ""
@@ -345,7 +347,7 @@ msgstr ""
msgid "A~b~out..."
msgstr ""
-#: gui/launcher.cpp:556
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
msgid "About ScummVM"
msgstr ""
@@ -373,7 +375,7 @@ msgstr ""
msgid "Load savegame for selected game"
msgstr ""
-#: gui/launcher.cpp:567
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
msgid "~A~dd Game..."
msgstr ""
@@ -397,7 +399,7 @@ msgstr ""
msgid "Remove game from the list. The game data files stay intact"
msgstr ""
-#: gui/launcher.cpp:574
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
msgctxt "lowres"
msgid "~A~dd Game..."
msgstr ""
@@ -425,14 +427,14 @@ msgid "Clear value"
msgstr ""
#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
msgid "Load game:"
msgstr ""
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
msgid "Load"
msgstr ""
@@ -444,17 +446,17 @@ msgstr ""
#: gui/launcher.cpp:724 gui/launcher.cpp:872
#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
msgid "Yes"
msgstr ""
#: gui/launcher.cpp:724 gui/launcher.cpp:872
#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
msgid "No"
msgstr ""
@@ -491,34 +493,25 @@ msgstr ""
msgid "Mass Add..."
msgstr ""
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr ""
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr ""
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
msgid "... progress ..."
msgstr ""
-#: gui/massadd.cpp:243
+#: gui/massadd.cpp:258
msgid "Scan complete!"
msgstr ""
-#: gui/massadd.cpp:246
+#: gui/massadd.cpp:261
#, c-format
msgid "Discovered %d new games, ignored %d previously added games."
msgstr ""
-#: gui/massadd.cpp:250
+#: gui/massadd.cpp:265
#, c-format
msgid "Scanned %d directories ..."
msgstr ""
-#: gui/massadd.cpp:253
+#: gui/massadd.cpp:268
#, c-format
msgid "Discovered %d new games, ignored %d previously added games ..."
msgstr ""
@@ -598,8 +591,8 @@ msgid "Special dithering modes supported by some games"
msgstr ""
#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
msgid "Fullscreen mode"
msgstr ""
@@ -931,19 +924,19 @@ msgstr ""
msgid "Do you really want to delete this savegame?"
msgstr ""
-#: gui/saveload.cpp:263
+#: gui/saveload.cpp:264
msgid "Date: "
msgstr ""
-#: gui/saveload.cpp:266
+#: gui/saveload.cpp:268
msgid "Time: "
msgstr ""
-#: gui/saveload.cpp:271
+#: gui/saveload.cpp:274
msgid "Playtime: "
msgstr ""
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
msgid "Untitled savestate"
msgstr ""
@@ -951,60 +944,60 @@ msgstr ""
msgid "Select a Theme"
msgstr ""
-#: gui/ThemeEngine.cpp:327
+#: gui/ThemeEngine.cpp:328
msgid "Disabled GFX"
msgstr ""
-#: gui/ThemeEngine.cpp:327
+#: gui/ThemeEngine.cpp:328
msgctxt "lowres"
msgid "Disabled GFX"
msgstr ""
-#: gui/ThemeEngine.cpp:328
+#: gui/ThemeEngine.cpp:329
msgid "Standard Renderer (16bpp)"
msgstr ""
-#: gui/ThemeEngine.cpp:328
+#: gui/ThemeEngine.cpp:329
msgid "Standard (16bpp)"
msgstr ""
-#: gui/ThemeEngine.cpp:330
+#: gui/ThemeEngine.cpp:331
msgid "Antialiased Renderer (16bpp)"
msgstr ""
-#: gui/ThemeEngine.cpp:330
+#: gui/ThemeEngine.cpp:331
msgid "Antialiased (16bpp)"
msgstr ""
-#: base/main.cpp:200
+#: base/main.cpp:206
#, c-format
msgid "Engine does not support debug level '%s'"
msgstr ""
-#: base/main.cpp:268
+#: base/main.cpp:274
msgid "Menu"
msgstr ""
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
#: backends/platform/wince/CEActionsPocket.cpp:45
#: backends/platform/wince/CEActionsSmartphone.cpp:46
msgid "Skip"
msgstr ""
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
#: backends/platform/wince/CEActionsPocket.cpp:42
msgid "Pause"
msgstr ""
-#: base/main.cpp:277
+#: base/main.cpp:283
msgid "Skip line"
msgstr ""
-#: base/main.cpp:432
+#: base/main.cpp:442
msgid "Error running game:"
msgstr ""
-#: base/main.cpp:456
+#: base/main.cpp:466
msgid "Could not find any engine capable of running the selected game"
msgstr ""
@@ -1072,20 +1065,21 @@ msgstr ""
msgid "Unknown error"
msgstr ""
-#: common/util.cpp:274
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
msgid "Hercules Green"
msgstr ""
-#: common/util.cpp:275
+#: common/util.cpp:276
msgid "Hercules Amber"
msgstr ""
-#: common/util.cpp:282
+#: common/util.cpp:283
msgctxt "lowres"
msgid "Hercules Green"
msgstr ""
-#: common/util.cpp:283
+#: common/util.cpp:284
msgctxt "lowres"
msgid "Hercules Amber"
msgstr ""
@@ -1141,13 +1135,13 @@ msgstr ""
msgid "Save game:"
msgstr ""
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
#: backends/platform/symbian/src/SymbianActions.cpp:44
#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
+#: backends/platform/wince/CEActionsPocket.cpp:267
#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
msgid "Save"
msgstr ""
@@ -1158,37 +1152,37 @@ msgid ""
"further assistance."
msgstr ""
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
msgid "~O~K"
msgstr ""
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
msgid "~C~ancel"
msgstr ""
-#: engines/dialogs.cpp:316
+#: engines/dialogs.cpp:312
msgid "~K~eys"
msgstr ""
-#: engines/engine.cpp:220
+#: engines/engine.cpp:233
msgid "Could not initialize color format."
msgstr ""
-#: engines/engine.cpp:228
+#: engines/engine.cpp:241
msgid "Could not switch to video mode: '"
msgstr ""
-#: engines/engine.cpp:237
+#: engines/engine.cpp:250
msgid "Could not apply aspect ratio setting."
msgstr ""
-#: engines/engine.cpp:242
+#: engines/engine.cpp:255
msgid "Could not apply fullscreen setting."
msgstr ""
-#: engines/engine.cpp:342
+#: engines/engine.cpp:355
msgid ""
"You appear to be playing this game directly\n"
"from the CD. This is known to cause problems,\n"
@@ -1197,7 +1191,7 @@ msgid ""
"See the README file for details."
msgstr ""
-#: engines/engine.cpp:353
+#: engines/engine.cpp:366
msgid ""
"This game has audio tracks in its disk. These\n"
"tracks need to be ripped from the disk using\n"
@@ -1206,30 +1200,131 @@ msgid ""
"See the README file for details."
msgstr ""
-#: engines/engine.cpp:405
+#: engines/engine.cpp:433
msgid ""
"WARNING: The game you are about to start is not yet fully supported by "
"ScummVM. As such, it is likely to be unstable, and any saves you make might "
"not work in future versions of ScummVM."
msgstr ""
-#: engines/engine.cpp:408
+#: engines/engine.cpp:436
msgid "Start anyway"
msgstr ""
-#: engines/scumm/dialogs.cpp:281
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr ""
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+msgid "Select a game to LOAD"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
msgid "~P~revious"
msgstr ""
-#: engines/scumm/dialogs.cpp:282
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
msgid "~N~ext"
msgstr ""
-#: engines/scumm/dialogs.cpp:283
+#: engines/scumm/dialogs.cpp:290
#: backends/platform/ds/arm9/source/dsoptions.cpp:56
msgid "~C~lose"
msgstr ""
+#: engines/scumm/dialogs.cpp:597
+msgid "Speech Only"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:598
+msgid "Speech and Subtitles"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:599
+msgid "Subtitles Only"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:607
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr ""
+
#: engines/scumm/help.cpp:73
msgid "Common keyboard commands:"
msgstr ""
@@ -1280,14 +1375,6 @@ msgstr ""
msgid "Save game state 1-10"
msgstr ""
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr ""
-
#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
msgid "Enter"
msgstr ""
@@ -1391,14 +1478,14 @@ msgid "Pull"
msgstr ""
#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
msgid "Give"
msgstr ""
#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
msgid "Open"
msgstr ""
@@ -1411,9 +1498,9 @@ msgid "Get"
msgstr ""
#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
msgid "Use"
msgstr ""
@@ -1436,13 +1523,13 @@ msgid "Turn off"
msgstr ""
#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
+#: engines/scumm/help.cpp:194
msgid "Walk to"
msgstr ""
#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
msgid "Pick up"
msgstr ""
@@ -1470,11 +1557,11 @@ msgstr ""
msgid "Switch"
msgstr ""
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
msgid "Look"
msgstr ""
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
msgid "Talk"
msgstr ""
@@ -1486,277 +1573,279 @@ msgstr ""
msgid "To Henry / To Indy"
msgstr ""
-#: engines/scumm/help.cpp:178
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
msgid "play C minor on distaff"
msgstr ""
-#: engines/scumm/help.cpp:179
+#: engines/scumm/help.cpp:180
msgid "play D on distaff"
msgstr ""
-#: engines/scumm/help.cpp:180
+#: engines/scumm/help.cpp:181
msgid "play E on distaff"
msgstr ""
-#: engines/scumm/help.cpp:181
+#: engines/scumm/help.cpp:182
msgid "play F on distaff"
msgstr ""
-#: engines/scumm/help.cpp:182
+#: engines/scumm/help.cpp:183
msgid "play G on distaff"
msgstr ""
-#: engines/scumm/help.cpp:183
+#: engines/scumm/help.cpp:184
msgid "play A on distaff"
msgstr ""
-#: engines/scumm/help.cpp:184
+#: engines/scumm/help.cpp:185
msgid "play B on distaff"
msgstr ""
-#: engines/scumm/help.cpp:185
+#: engines/scumm/help.cpp:186
msgid "play C major on distaff"
msgstr ""
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
msgid "puSh"
msgstr ""
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
msgid "pull (Yank)"
msgstr ""
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
msgid "Talk to"
msgstr ""
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
msgid "Look at"
msgstr ""
-#: engines/scumm/help.cpp:199
+#: engines/scumm/help.cpp:200
msgid "turn oN"
msgstr ""
-#: engines/scumm/help.cpp:200
+#: engines/scumm/help.cpp:201
msgid "turn oFf"
msgstr ""
-#: engines/scumm/help.cpp:216
+#: engines/scumm/help.cpp:217
msgid "KeyUp"
msgstr ""
-#: engines/scumm/help.cpp:216
+#: engines/scumm/help.cpp:217
msgid "Highlight prev dialogue"
msgstr ""
-#: engines/scumm/help.cpp:217
+#: engines/scumm/help.cpp:218
msgid "KeyDown"
msgstr ""
-#: engines/scumm/help.cpp:217
+#: engines/scumm/help.cpp:218
msgid "Highlight next dialogue"
msgstr ""
-#: engines/scumm/help.cpp:221
+#: engines/scumm/help.cpp:222
msgid "Walk"
msgstr ""
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
msgid "Inventory"
msgstr ""
-#: engines/scumm/help.cpp:225
+#: engines/scumm/help.cpp:226
msgid "Object"
msgstr ""
-#: engines/scumm/help.cpp:228
+#: engines/scumm/help.cpp:229
msgid "Black and White / Color"
msgstr ""
-#: engines/scumm/help.cpp:231
+#: engines/scumm/help.cpp:232
msgid "Eyes"
msgstr ""
-#: engines/scumm/help.cpp:232
+#: engines/scumm/help.cpp:233
msgid "Tongue"
msgstr ""
-#: engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:235
msgid "Punch"
msgstr ""
-#: engines/scumm/help.cpp:235
+#: engines/scumm/help.cpp:236
msgid "Kick"
msgstr ""
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
msgid "Examine"
msgstr ""
-#: engines/scumm/help.cpp:239
+#: engines/scumm/help.cpp:240
msgid "Regular cursor"
msgstr ""
-#: engines/scumm/help.cpp:241
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
msgid "Comm"
msgstr ""
-#: engines/scumm/help.cpp:244
+#: engines/scumm/help.cpp:246
msgid "Save / Load / Options"
msgstr ""
-#: engines/scumm/help.cpp:253
+#: engines/scumm/help.cpp:255
msgid "Other game controls:"
msgstr ""
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
msgid "Inventory:"
msgstr ""
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
msgid "Scroll list up"
msgstr ""
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
msgid "Scroll list down"
msgstr ""
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
msgid "Upper left item"
msgstr ""
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
msgid "Lower left item"
msgstr ""
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
msgid "Upper right item"
msgstr ""
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
msgid "Lower right item"
msgstr ""
-#: engines/scumm/help.cpp:267
+#: engines/scumm/help.cpp:269
msgid "Middle left item"
msgstr ""
-#: engines/scumm/help.cpp:270
+#: engines/scumm/help.cpp:272
msgid "Middle right item"
msgstr ""
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
msgid "Switching characters:"
msgstr ""
-#: engines/scumm/help.cpp:279
+#: engines/scumm/help.cpp:281
msgid "Second kid"
msgstr ""
-#: engines/scumm/help.cpp:280
+#: engines/scumm/help.cpp:282
msgid "Third kid"
msgstr ""
-#: engines/scumm/help.cpp:292
+#: engines/scumm/help.cpp:294
msgid "Fighting controls (numpad):"
msgstr ""
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
msgid "Step back"
msgstr ""
-#: engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:298
msgid "Block high"
msgstr ""
-#: engines/scumm/help.cpp:297
+#: engines/scumm/help.cpp:299
msgid "Block middle"
msgstr ""
-#: engines/scumm/help.cpp:298
+#: engines/scumm/help.cpp:300
msgid "Block low"
msgstr ""
-#: engines/scumm/help.cpp:299
+#: engines/scumm/help.cpp:301
msgid "Punch high"
msgstr ""
-#: engines/scumm/help.cpp:300
+#: engines/scumm/help.cpp:302
msgid "Punch middle"
msgstr ""
-#: engines/scumm/help.cpp:301
+#: engines/scumm/help.cpp:303
msgid "Punch low"
msgstr ""
-#: engines/scumm/help.cpp:304
+#: engines/scumm/help.cpp:306
msgid "These are for Indy on left."
msgstr ""
-#: engines/scumm/help.cpp:305
+#: engines/scumm/help.cpp:307
msgid "When Indy is on the right,"
msgstr ""
-#: engines/scumm/help.cpp:306
+#: engines/scumm/help.cpp:308
msgid "7, 4, and 1 are switched with"
msgstr ""
-#: engines/scumm/help.cpp:307
+#: engines/scumm/help.cpp:309
msgid "9, 6, and 3, respectively."
msgstr ""
-#: engines/scumm/help.cpp:314
+#: engines/scumm/help.cpp:316
msgid "Biplane controls (numpad):"
msgstr ""
-#: engines/scumm/help.cpp:315
+#: engines/scumm/help.cpp:317
msgid "Fly to upper left"
msgstr ""
-#: engines/scumm/help.cpp:316
+#: engines/scumm/help.cpp:318
msgid "Fly to left"
msgstr ""
-#: engines/scumm/help.cpp:317
+#: engines/scumm/help.cpp:319
msgid "Fly to lower left"
msgstr ""
-#: engines/scumm/help.cpp:318
+#: engines/scumm/help.cpp:320
msgid "Fly upwards"
msgstr ""
-#: engines/scumm/help.cpp:319
+#: engines/scumm/help.cpp:321
msgid "Fly straight"
msgstr ""
-#: engines/scumm/help.cpp:320
+#: engines/scumm/help.cpp:322
msgid "Fly down"
msgstr ""
-#: engines/scumm/help.cpp:321
+#: engines/scumm/help.cpp:323
msgid "Fly to upper right"
msgstr ""
-#: engines/scumm/help.cpp:322
+#: engines/scumm/help.cpp:324
msgid "Fly to right"
msgstr ""
-#: engines/scumm/help.cpp:323
+#: engines/scumm/help.cpp:325
msgid "Fly to lower right"
msgstr ""
-#: engines/scumm/scumm.cpp:1794
+#: engines/scumm/scumm.cpp:1768
#, c-format
msgid ""
"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
"but %s is missing. Using AdLib instead."
msgstr ""
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
#, c-format
msgid ""
"Failed to save game state to file:\n"
@@ -1764,7 +1853,7 @@ msgid ""
"%s"
msgstr ""
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
#, c-format
msgid ""
"Failed to load game state from file:\n"
@@ -1772,7 +1861,7 @@ msgid ""
"%s"
msgstr ""
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
#, c-format
msgid ""
"Successfully saved game state in file:\n"
@@ -1780,30 +1869,36 @@ msgid ""
"%s"
msgstr ""
-#: engines/scumm/scumm.cpp:2514
+#: engines/scumm/scumm.cpp:2492
msgid ""
"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
"directory inside the Tentacle game directory."
msgstr ""
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
msgid "~Z~ip Mode Activated"
msgstr ""
-#: engines/mohawk/dialogs.cpp:91
+#: engines/mohawk/dialogs.cpp:93
msgid "~T~ransitions Enabled"
msgstr ""
-#: engines/mohawk/dialogs.cpp:92
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
msgid "~D~rop Page"
msgstr ""
-#: engines/mohawk/dialogs.cpp:96
+#: engines/mohawk/dialogs.cpp:99
msgid "~S~how Map"
msgstr ""
-#: engines/mohawk/dialogs.cpp:150
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:172
msgid "~W~ater Effect Enabled"
msgstr ""
@@ -1821,11 +1916,11 @@ msgid "Cutscene file '%s' not found!"
msgstr ""
#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
+#: engines/tinsel/saveload.cpp:475
msgid "Failed to load game state from file."
msgstr ""
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
msgid "Failed to save game state to file."
msgstr ""
@@ -1833,7 +1928,7 @@ msgstr ""
msgid "Failed to delete file."
msgstr ""
-#: engines/groovie/script.cpp:417
+#: engines/groovie/script.cpp:420
msgid "Failed to save game"
msgstr ""
@@ -1950,32 +2045,37 @@ msgstr ""
msgid "DOSBox OPL emulator"
msgstr ""
-#: audio/mididrv.cpp:204
+#: audio/mididrv.cpp:205
#, c-format
msgid ""
"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
msgstr ""
-#: audio/mididrv.cpp:216
+#: audio/mididrv.cpp:217
#, c-format
msgid ""
"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
+"information."
msgstr ""
-#: audio/mididrv.cpp:250
+#: audio/mididrv.cpp:253
#, c-format
msgid ""
"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
+"disconnected)."
msgstr ""
-#: audio/mididrv.cpp:265
+#: audio/mididrv.cpp:268
#, c-format
msgid ""
"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
+"information."
msgstr ""
#: audio/null.h:43
@@ -2122,6 +2222,27 @@ msgstr ""
msgid "Touchpad mode disabled."
msgstr ""
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
msgid "Normal (no scaling)"
msgstr ""
@@ -2131,50 +2252,50 @@ msgctxt "lowres"
msgid "Normal (no scaling)"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
msgid "Enabled aspect ratio correction"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
msgid "Disabled aspect ratio correction"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
msgid "Active graphics filter:"
msgstr ""
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
msgid "Windowed mode"
msgstr ""
-#: backends/graphics/opengl/opengl-graphics.cpp:139
+#: backends/graphics/opengl/opengl-graphics.cpp:130
msgid "OpenGL Normal"
msgstr ""
-#: backends/graphics/opengl/opengl-graphics.cpp:140
+#: backends/graphics/opengl/opengl-graphics.cpp:131
msgid "OpenGL Conserve"
msgstr ""
-#: backends/graphics/opengl/opengl-graphics.cpp:141
+#: backends/graphics/opengl/opengl-graphics.cpp:132
msgid "OpenGL Original"
msgstr ""
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
msgid "Current display mode"
msgstr ""
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
msgid "Current scale"
msgstr ""
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
msgid "Active filter mode: Linear"
msgstr ""
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
msgid "Active filter mode: Nearest"
msgstr ""
@@ -2434,13 +2555,13 @@ msgstr ""
msgid "Cursor Right"
msgstr ""
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
msgid "Do you want to load or save the game?"
msgstr ""
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
msgid " Are you sure you want to quit ? "
msgstr ""
@@ -2452,43 +2573,43 @@ msgstr ""
msgid "Rotate"
msgstr ""
-#: backends/platform/wince/CELauncherDialog.cpp:54
+#: backends/platform/wince/CELauncherDialog.cpp:56
msgid "Using SDL driver "
msgstr ""
-#: backends/platform/wince/CELauncherDialog.cpp:58
+#: backends/platform/wince/CELauncherDialog.cpp:60
msgid "Display "
msgstr ""
-#: backends/platform/wince/CELauncherDialog.cpp:77
+#: backends/platform/wince/CELauncherDialog.cpp:83
msgid "Do you want to perform an automatic scan ?"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:487
+#: backends/platform/wince/wince-sdl.cpp:471
msgid "Map right click action"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:491
+#: backends/platform/wince/wince-sdl.cpp:475
msgid "You must map a key to the 'Right Click' action to play this game"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:500
+#: backends/platform/wince/wince-sdl.cpp:484
msgid "Map hide toolbar action"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:504
+#: backends/platform/wince/wince-sdl.cpp:488
msgid "You must map a key to the 'Hide toolbar' action to play this game"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:513
+#: backends/platform/wince/wince-sdl.cpp:497
msgid "Map Zoom Up action (optional)"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:516
+#: backends/platform/wince/wince-sdl.cpp:500
msgid "Map Zoom Down action (optional)"
msgstr ""
-#: backends/platform/wince/wince-sdl.cpp:524
+#: backends/platform/wince/wince-sdl.cpp:508
msgid ""
"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
msgstr ""
@@ -2538,3 +2659,7 @@ msgstr ""
#: backends/events/gph/gph-events.cpp:400
msgid "Decreasing Volume"
msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
diff --git a/po/se_SE.po b/po/se_SE.po
index 7301fd52d1..eb67d71c04 100644
--- a/po/se_SE.po
+++ b/po/se_SE.po
@@ -1,2633 +1,2775 @@
-# Swedish translation for ScummVM.
-# Copyright (C) 2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Hampus Flink <hampus.flink@gmail.com>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-05-02 13:07+0100\n"
-"Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-1\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Svenska\n"
-"Plural-Forms: nplurals=2; plural=(n != 1)\n"
-"X-Poedit-Language: Swedish\n"
-"X-Poedit-Country: SWEDEN\n"
-"X-Poedit-SourceCharset: iso-8859-1\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(byggt på %s)"
-
-#: gui/about.cpp:98
-#, fuzzy
-msgid "Features compiled in:"
-msgstr "Funktioner kompilerade i:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "Tillgängliga motorer"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "Uppåt"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "Gå till föregående katalognivå"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "Uppåt"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "Avbryt"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "Välj"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "Stäng"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "Musklick"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "Visa tangentbord"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "Ställ in tangenter"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "Välj en handling att ställa in"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "Ställ in"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "Välj en handling och klicka på \"Ställ in\""
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "Inställd tangent: %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "Inställd tangent: Ingen"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "Var god välj en handling"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "Tryck på en tangent för att ställa in"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "Spel"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"Kortnamn för spel. Används för att hänvisa till spardata och att starta "
-"spelet från kommandoraden"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "Namn:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "Spelets fullständiga titel"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "Namn:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "Språk:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"Spelets språk. Den här inställningen omvandlar inte din spanska spelversion "
-"till en engelsk"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<standard>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "Plattformen spelet ursprungligen tillverkades för"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "Plattform:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "Grafik"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "GFX"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "Överskrid globala grafikinställningar"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "Överskrid globala grafikinställningar"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "Ljud"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "Överskrid globala ljudinställningar"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "Överskrid globala ljudinställningar"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "Volym"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "Volym"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "Överskrid globala volyminställningar"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "Överskrid globala volyminställningar"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "Överskrid globala MIDI-inställningar"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "Överskrid globala MIDI-inställningar"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "Överskrid globala MT-32 inställningar"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "Överskrid globala MT-32 inställningar"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "Sökvägar"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "Sökvägar"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "Sökv. spel:"
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "Sökv. spel:"
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "Sökv. extra:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "Bestämmer sökvägen till ytterligare data som spelet använder"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "Sökv. extra:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "Sökv. sparat:"
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "Bestämmer var dina spardata lagras"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "Sökv. sparat:"
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "Standard"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "Välj SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "Välj katalog med speldata"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "Välj en ytterligare spelkatalog"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "Välj katalog för spardata"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "Detta ID-namn är upptaget. Var god välj ett annat."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~A~vsluta"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "Avsluta ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "O~m~..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "Om ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~I~nställningar..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "Redigera globala ScummVM-inställningar"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "~S~tarta"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "Starta det valda spelet"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~L~adda..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "Ladda spardata för det valda spelet"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "Lä~g~g till spel..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "Håll ned Skift för masstillägg"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "R~e~digera spel..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "Redigera spelinställningarna"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~R~adera spel"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "Radera spelet från listan. Spelets datafiler påverkas inte."
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "Lä~g~g till spel..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "R~e~digera spel..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~R~adera spel"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "Sök i spellistan"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "Sök:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "Töm sökfältet"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "Ladda spel:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "Ladda"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"Vill du verkligen använda mass-speldetektorn? Processen kan potentiellt "
-"lägga till ett enormt antal spel."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "Ja"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "Nej"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM kunde inte öppna den valda katalogen!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM kunde inte hitta några spel i den valda katalogen!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "Välj spel:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "Vill du verkligen radera den här spelkonfigurationen?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Det här spelet stöder inte laddning av spardata från launchern."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr ""
-"ScummVM kunde inte hitta en motor kapabel till att köra det valda spelet!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "Masstillägg..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "Masstillägg..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "Lägg till spel..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "Lägg till spel..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... progression ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "Scanning färdig!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "Kataloger scannade: %d ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "Nya spel upptäckta: %d ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "Aldrig"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "var 5:e minut"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "var 10:e minut"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "var 15:e minut"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "var 30:e minut"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 kHz"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 kHz"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 kHz"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 kHz"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 kHz"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "Ingen"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "Grafikläge:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "Renderingsläge:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "Speciella gitterlägen stödda av vissa spel"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "Fullskärmsläge"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "Korrektion av bildförhållande"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "Korrigerar bildförhållanden för 320x200-spel"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA anti-gitter"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "Aktiverar anti-gitter i EGA spel som stöder det"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "Föredragen enhet:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "Musikenhet:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "Bestämmer din föredragna emulator för ljudenhet eller ljudkort"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "Bestämmer emulator för ljudenhet eller ljudkort"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "Föredr. enhet:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "Musikenhet:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "AdLib-emulator:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "AdLib används för musik i många spel"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "Ljudfrekvens:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"Ett högre värde betecknar bättre ljudkvalitet men stöds kanske inte av ditt "
-"ljudkort"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "GM-enhet:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "Bestämmer standardenheten för General MIDI-uppspelning"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "Använd inte General MIDI-musik"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "Använd första tillgängliga enhet"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr "SoundFont stöds endast av vissa ljudkort, Fluidsynth och Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "Blandat AdLib/MIDI-läge"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "Använd både MIDI och AdLib för ljudgeneration"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "MIDI gain:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "MT-32 enhet:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"Bestämmer standardenheten för Roland MT-32/LAPC1/CM32I/CM64-uppspelning"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "Äkta Roland MT-32 (inaktivera GM-emulation)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"Aktivera om du vill använda din verkliga Roland-kompatibla och dator-"
-"anslutna ljudenhet"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "Äkta Roland MT-32 (ingen GM-emulation)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "Aktivera Roland GS-läge"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"Stänger av General MIDI-kartläggning för spel med Roland MT-32 soundtrack"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "Använd inte Roland MT-32 musik"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "Undertext och tal:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "Tal"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "Undertexter"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "Båda"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "Texthastighet:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "Text och tal:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "Tal"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "Text"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "Båda"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "Visa undertexter och spela upp tal"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "Texthastighet:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "Musikvolym:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "Musikvolym:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "Ljud av"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "SFX-volym:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "Volym för specialeffekter"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "SFX-volym:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "Talvolym:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "Talvolym:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "Sökv. tema:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "Sökv. tema:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"Bestämmer sökväg till andra data som används av alla spel eller ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "Sökv. tillägg:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "Sökv. tillägg:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Diverse"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Diverse"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "Tema:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "GUI-rendering:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "Autospara:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "Autospara:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "Tangenter"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "GUI-språk:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "Språk för ScummVM:s användargränssnitt"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "Du måste starta om ScummVM för att ändringarna ska få effekt."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "Välj katalog för spardata"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr ""
-"Det går inte att skriva till den valda katalogen. Var god välj en annan."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "Välj katalog för GUI-teman"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "Välj katalog för extra filer"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "Välj katalog för tillägg"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"Temat du valde stöder inte ditt språk. Om du vill använda det här temat "
-"måste först byta till ett annat språk."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "Inget datum sparat"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "Ingen tid sparad"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "Ingen speltid sparad"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "Radera"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "Vill du verkligen radera den här spardatan?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "Datum:"
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "Tid:"
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "Speltid:"
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "Namnlös spardata"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "Välj ett tema"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "Inaktiverad GFX"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "Inaktiverad GFX"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "Standard rendering (16 bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "Standard (16 bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "Antialiserad rendering (16 bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "Antialiserad (16 bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "Motorn stöder inte debug-nivå '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "Meny"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "Skippa"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "Paus"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "Skippa rad"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "Fel under körning av spel:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "Kunde inte hitta en motor kapabel till att köra det valda spelet"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "Inget fel"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "Kunde inte hitta speldata"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Spel-ID stöds inte"
-
-#: common/error.cpp:44
-#, fuzzy
-msgid "Unsupported color mode"
-msgstr "Ej stött färgläge"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "Lästillbehörighet nekad"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "Skrivtillbehörighet nekad"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "Sökvägen existerar inte"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "Sökvägen är inte en katalog"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "Sökvägen är inte en fil"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "Kan inte skapa fil"
-
-#: common/error.cpp:61
-#, fuzzy
-msgid "Reading data failed"
-msgstr "Inläsning misslyckades"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "Skriva data misslyckades"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "Kunde inte hitta lämpligt motortillägg"
-
-#: common/error.cpp:68
-#, fuzzy
-msgid "Engine plugin does not support save states"
-msgstr "Motorn stöder inte debug-nivå '%s'"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "Okänt fel"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Herkules grön"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Herkules bärnsten"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Herkules grön"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Herkules bärnsten"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "~F~ortsätt"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~L~adda"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~S~para"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~I~nställningar"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~H~jälp"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "O~m~..."
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "Åte~r~vänd till launcher"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "Åte~r~vänd till launcher"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "Spara spelet:"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "Spara"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "A~v~bryt"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~T~angenter"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "Aktivt videoläge:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "Korrektion av bildförhållande på/av"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~F~öregående"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~N~ästa"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~S~täng"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "Vanliga kortkommandon:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "Spara / Ladda-fönster"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "Skippa textrad"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "Skippa scen"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Mellanslag"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "Pausa spelet"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "Ladda spardata 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "Spara speldata 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "Avsluta"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "Fullskärmsläge"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "Musikvolym höj / sänk"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "Texthastighet sänk / öka"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "Simulera vänster musknapp"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "Simulera höger musknapp"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "Specialkortkommandon:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "Visa / göm konsol"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "Öppna debug-konsolen"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "Visa minnesförbrukning"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "Kör i snabbläge (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "Kör i extra snabbt läge (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "Musrestriktion av/på"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "Växla grafikfilter"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "Öka / sänk skalningsfaktor"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "Korrektion av bildförhållande på/av"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* Observera att användning av ctrl-f"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr "och ctrl-g inte rekommenderas"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr "då detta kan orsaka krascher"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr "eller felaktigt spelbeteende."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "Väva melodier med tangentbordet:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "Huvudkontroller:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "Tryck"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "Ge"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "Öppna"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "Gå till"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "Ta emot"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "Använd"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "Läs"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "Ny unge"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "Sätt på"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "Stäng av"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "Gå till"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "Ta"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "Vad är"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "Lås upp"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "Ta på"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "Ta av"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "Laga"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "Byt"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "Titta"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "Tala"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "Res"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "Till Henry / Till Indy"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "spela C-moll på staven"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "spela D på staven"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "spela E på staven"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "spela F på staven"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "spela G på staven"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "spela A på staven"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "spela H på staven"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "spela C-dur på staven"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "Tryck"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "Dra"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "Tala med"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "Titta på"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "Sätt på"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "Stäng av"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "Piltangent upp"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "Markera föreg. dialog"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "Piltangent ned"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "Markera nästa dialog"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "Gå"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "Inventarie"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "Objekt"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "Svartvitt / Färg"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "Ögon"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "Tunga"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "Slå"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "Sparka"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "Undersök"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "Vanlig pekare"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "Spara / Ladda / Inst."
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "Övriga spelkontroller:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "Inventarie:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "Bläddra listan uppåt"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "Bläddra listan nedåt"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "Övre vänstra föremålet"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "Nedre vänstra föremålet"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "Övre högra föremålet"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "Nedre högra föremålet"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "Mellersta vänstra föremålet"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "Mellersta högra föremålet"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "Byta karaktärer:"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "Andra ungen"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "Tredje ungen"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "Slagsmålskontroller (nr. tangenter)"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "Steg bakåt"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "Blockera högt"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "Blockera midjehöjd"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "Blockera lågt"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "Slå högt"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "Slå midjehöjd"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "Slå lågt"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "Gäller när Indy står till vänster."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "När Indy står till höger byter"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4 och 1 plats med"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 och 3."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "Biplanskontroller (nr. tangenter)"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "Flyg åt övre vänster"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "Flyg åt vänster"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "Flyg åt nedre vänster"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "Flyg uppåt"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "Flyg rakt fram"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "Flyg nedåt"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "Flyg åt övre höger"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "Flyg åt höger"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "Flyg åt nedre höger"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"Kunde inte skriva spardata till file:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"Kunde inte läsa spardata från file:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"Sparade framgångsrikt spardata i file\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"Vanligtvis hade Maniac Mansion startat nu, men ScummVM kan inte göra detta "
-"än. För att spela spelet, gå till \"Lägg till spel\" i ScummVM:s huvudmeny "
-"och välj \"Maniac\"-katalogen inuti \"Tentacle\" katalogen."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "~Z~ipläge aktiverat"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "Öv~e~rgångar aktiverade"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "~V~atteneffekt aktiverad"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "Återställ spel:"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "Återställ"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"Kunde inte läsa spardata från file:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"Kunde inte skriva spardata till file:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"Kunde inte skriva spardata till file:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"Kunde inte skriva spardata till file:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "Spara spelet:"
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "Ladda spel:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "Spara spelet:"
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "MAME OPL-emulator"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "DOSBox OPL-emulator"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "Ingen musik"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "Amiga ljudemulator"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "AdLib-emulator"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS-emulator (INTE IMPLEMENTERAD)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 ljudemulator"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "Initialiserar MT-32 emulator"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "MT-32 emulator"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "PC Speaker-emulator"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "IBM PCjr-emulator"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "Tangenter:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr "(Aktiv)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr "(Global)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr "(Spel)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "ScummVM huvudmeny"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "~V~änsterhänt läge"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "~I~ndy slagsmålskontroller"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "Visa muspekare"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "Lägg till kant"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "Gå till X-position"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "Gå till Y-position"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "Använd bärbar trackpad-stil för pekarkontroll"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "Tappa för vänsterklick, dubbel-tappa för högerklick"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "Känslighet"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "Standardskala för övre skärm:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "Skalning huvudskärm:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "Hårdvaruskalning (snabbt, men låg kvalitet)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "Mjukvaruskalning (bra kvalitet, men långsamt)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "Oskalat (du måste bläddra till vänster och höger)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "Ljusstyrka:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "Hög ljudkvalitet (långsammare) (omstart)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "Inaktivera strömsparning"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "Touchpad-läge aktiverat."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "Touchpad-läge inaktiverat."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "Touchpad-läge aktiverat."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "Touchpad-läge inaktiverat."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "Normalt (ingen skalning)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "Normalt (ingen skalning)"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "Korrektion av bildförhållande på/av"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "Korrektion av bildförhållande på/av"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "Växla grafikfilter"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "Renderingsläge:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL normal"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL konservation"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL original"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "Aktivt videoläge:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "Upp"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "Ned"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "Vänster"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "Höger"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "Vänsterklick"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "Högerklick"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "Zon"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "Multifunktion"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "Byt karaktär"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "Skippa text"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "Snabbläge"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "Debug-konsol"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "Global meny"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "Virtuellt tangentbord"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "Tangentinst."
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "Vill du avsluta?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "Video"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "Aktivt videoläge:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "Ej sammanflätad"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "Vågrät underskanning:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "Lodrät underskanning:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "Ingång"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "GC Pad känslighet:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "GC Pad acceleration:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "Status:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "Okänd"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "Montera DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "Mata ut DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "Server:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "Delad:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "Anv. namn:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "Lösenord:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "Init. nätverk"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "Montera SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "Mata ut SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "Montering av DVD lyckades"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "Fel vid montering av DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ej monterad"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "Nätverk aktivt, delade kataloger monterade"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "Nätverk aktivt"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", fel under montering av delade kataloger"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", delade kataloger ej monterade"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "Nätverk inaktivt"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "Initialiserar nätverk"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "Timeout under initialisering av nätverk"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "Nätverk ej initialiserat (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "Göm verktygsrad"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "Visa tangentbord"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "Ljud av/på"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "Högerklick"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "Göm/visa pekare"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "Frititt"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "Zooma upp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "Zooma ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "Förbind tangenter"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "Pekare upp"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "Pekare ned"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "Pekare vänster"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "Pekare höger"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "Vill du ladda eller spara spelet?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr "Är du säker på att du vill avsluta?"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "Tangentbord"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "Rotera"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "Använd SDL-driver"
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "Skärm"
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "Vill du utföra en automatisk scan?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "Ställ in högerklick"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr ""
-"Du måste välja en tangent för \"Högerklick\" för att spela det här spelet"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "Ställ in göm verktygsrad"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"Du måste välja en tangent för \"Göm verktygsrad\" för att spela det här "
-"spelet"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "Ställ in Zooma up (valfritt)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "Ställ in Zooma ned (valfritt)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"Glöm inte att välja en tangent för \"Göm verktygsrad\" för att se hela "
-"inventariet"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "Vill du verkligen radera den här spardatan?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "Slå"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "Vill du avsluta?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "Volym"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "Volym"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "Nya spel upptäckta: %d."
-
-#, fuzzy
-#~ msgid "Command line argument not processed"
-#~ msgstr "Argument i kommandoraden ej verkställt"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "FM Towns-emulator"
-
-#~ msgid "Invalid Path"
-#~ msgstr "Ogiltig sökväg"
+# Swedish translation for ScummVM.
+# Copyright (C) 2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Hampus Flink <hampus.flink@gmail.com>, 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-05-02 13:07+0100\n"
+"Last-Translator: Hampus Flink <hampus.flink@gmail.com>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Svenska\n"
+"Plural-Forms: nplurals=2; plural=(n != 1)\n"
+"X-Poedit-Language: Swedish\n"
+"X-Poedit-Country: SWEDEN\n"
+"X-Poedit-SourceCharset: iso-8859-1\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(byggt på %s)"
+
+#: gui/about.cpp:98
+#, fuzzy
+msgid "Features compiled in:"
+msgstr "Funktioner kompilerade i:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "Tillgängliga motorer"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "Uppåt"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "Gå till föregående katalognivå"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "Uppåt"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "Avbryt"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "Välj"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "Stäng"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "Musklick"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "Visa tangentbord"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "Ställ in tangenter"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "Välj en handling att ställa in"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "Ställ in"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "Välj en handling och klicka på \"Ställ in\""
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "Inställd tangent: %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "Inställd tangent: Ingen"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "Var god välj en handling"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "Tryck på en tangent för att ställa in"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "Spel"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"Kortnamn för spel. Används för att hänvisa till spardata och att starta "
+"spelet från kommandoraden"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "Namn:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "Spelets fullständiga titel"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "Namn:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "Språk:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"Spelets språk. Den här inställningen omvandlar inte din spanska spelversion "
+"till en engelsk"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<standard>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "Plattformen spelet ursprungligen tillverkades för"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "Plattform:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "Grafik"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "GFX"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "Överskrid globala grafikinställningar"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "Överskrid globala grafikinställningar"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "Ljud"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "Överskrid globala ljudinställningar"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "Överskrid globala ljudinställningar"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "Volym"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "Volym"
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "Överskrid globala volyminställningar"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "Överskrid globala volyminställningar"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "Överskrid globala MIDI-inställningar"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "Överskrid globala MIDI-inställningar"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "Överskrid globala MT-32 inställningar"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "Överskrid globala MT-32 inställningar"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "Sökvägar"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "Sökvägar"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "Sökv. spel:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "Sökv. spel:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "Sökv. extra:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "Bestämmer sökvägen till ytterligare data som spelet använder"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "Sökv. extra:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "Sökv. sparat:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "Bestämmer var dina spardata lagras"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "Sökv. sparat:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "Standard"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "Välj SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "Välj katalog med speldata"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "Välj en ytterligare spelkatalog"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "Välj katalog för spardata"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "Detta ID-namn är upptaget. Var god välj ett annat."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~A~vsluta"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "Avsluta ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "O~m~..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "Om ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~I~nställningar..."
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "Redigera globala ScummVM-inställningar"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "~S~tarta"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "Starta det valda spelet"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~L~adda..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "Ladda spardata för det valda spelet"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "Lä~g~g till spel..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "Håll ned Skift för masstillägg"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "R~e~digera spel..."
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "Redigera spelinställningarna"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~R~adera spel"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "Radera spelet från listan. Spelets datafiler påverkas inte."
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "Lä~g~g till spel..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "R~e~digera spel..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~R~adera spel"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "Sök i spellistan"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "Sök:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "Töm sökfältet"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "Ladda spel:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "Ladda"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"Vill du verkligen använda mass-speldetektorn? Processen kan potentiellt "
+"lägga till ett enormt antal spel."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "Ja"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "Nej"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM kunde inte öppna den valda katalogen!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM kunde inte hitta några spel i den valda katalogen!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "Välj spel:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "Vill du verkligen radera den här spelkonfigurationen?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Det här spelet stöder inte laddning av spardata från launchern."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr ""
+"ScummVM kunde inte hitta en motor kapabel till att köra det valda spelet!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "Masstillägg..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "Masstillägg..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... progression ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "Scanning färdig!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr ""
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "Kataloger scannade: %d ..."
+
+#: gui/massadd.cpp:268
+#, fuzzy, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "Nya spel upptäckta: %d ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "Aldrig"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "var 5:e minut"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "var 10:e minut"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "var 15:e minut"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "var 30:e minut"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 kHz"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 kHz"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 kHz"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 kHz"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 kHz"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "Ingen"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr ""
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr ""
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr ""
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "Grafikläge:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "Renderingsläge:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "Speciella gitterlägen stödda av vissa spel"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "Fullskärmsläge"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "Korrektion av bildförhållande"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "Korrigerar bildförhållanden för 320x200-spel"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA anti-gitter"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "Aktiverar anti-gitter i EGA spel som stöder det"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "Föredragen enhet:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "Musikenhet:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "Bestämmer din föredragna emulator för ljudenhet eller ljudkort"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "Bestämmer emulator för ljudenhet eller ljudkort"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "Föredr. enhet:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "Musikenhet:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "AdLib-emulator:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "AdLib används för musik i många spel"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "Ljudfrekvens:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"Ett högre värde betecknar bättre ljudkvalitet men stöds kanske inte av ditt "
+"ljudkort"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "GM-enhet:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "Bestämmer standardenheten för General MIDI-uppspelning"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "Använd inte General MIDI-musik"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "Använd första tillgängliga enhet"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr "SoundFont stöds endast av vissa ljudkort, Fluidsynth och Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "Blandat AdLib/MIDI-läge"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "Använd både MIDI och AdLib för ljudgeneration"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "MIDI gain:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "MT-32 enhet:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"Bestämmer standardenheten för Roland MT-32/LAPC1/CM32I/CM64-uppspelning"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "Äkta Roland MT-32 (inaktivera GM-emulation)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"Aktivera om du vill använda din verkliga Roland-kompatibla och dator-"
+"anslutna ljudenhet"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "Äkta Roland MT-32 (ingen GM-emulation)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "Aktivera Roland GS-läge"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"Stänger av General MIDI-kartläggning för spel med Roland MT-32 soundtrack"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "Använd inte Roland MT-32 musik"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "Undertext och tal:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "Tal"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "Undertexter"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "Båda"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "Texthastighet:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "Text och tal:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "Tal"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "Text"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "Båda"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "Visa undertexter och spela upp tal"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "Texthastighet:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "Musikvolym:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "Musikvolym:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "Ljud av"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "SFX-volym:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "Volym för specialeffekter"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "SFX-volym:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "Talvolym:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "Talvolym:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "Sökv. tema:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "Sökv. tema:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"Bestämmer sökväg till andra data som används av alla spel eller ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "Sökv. tillägg:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "Sökv. tillägg:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Diverse"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Diverse"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "Tema:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "GUI-rendering:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "Autospara:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "Autospara:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "Tangenter"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "GUI-språk:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "Språk för ScummVM:s användargränssnitt"
+
+#: gui/options.cpp:1295
+#, fuzzy
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "Du måste starta om ScummVM för att ändringarna ska få effekt."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "Välj katalog för spardata"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr ""
+"Det går inte att skriva till den valda katalogen. Var god välj en annan."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "Välj katalog för GUI-teman"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "Välj katalog för extra filer"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "Välj katalog för tillägg"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"Temat du valde stöder inte ditt språk. Om du vill använda det här temat "
+"måste först byta till ett annat språk."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "Inget datum sparat"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "Ingen tid sparad"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "Ingen speltid sparad"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "Radera"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "Vill du verkligen radera den här spardatan?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "Datum:"
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "Tid:"
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "Speltid:"
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "Namnlös spardata"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "Välj ett tema"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "Inaktiverad GFX"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "Inaktiverad GFX"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "Standard rendering (16 bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "Standard (16 bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "Antialiserad rendering (16 bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "Antialiserad (16 bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "Motorn stöder inte debug-nivå '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "Meny"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "Skippa"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "Paus"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "Skippa rad"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "Fel under körning av spel:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "Kunde inte hitta en motor kapabel till att köra det valda spelet"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "Inget fel"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "Kunde inte hitta speldata"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Spel-ID stöds inte"
+
+#: common/error.cpp:44
+#, fuzzy
+msgid "Unsupported color mode"
+msgstr "Ej stött färgläge"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "Lästillbehörighet nekad"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "Skrivtillbehörighet nekad"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "Sökvägen existerar inte"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "Sökvägen är inte en katalog"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "Sökvägen är inte en fil"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "Kan inte skapa fil"
+
+#: common/error.cpp:61
+#, fuzzy
+msgid "Reading data failed"
+msgstr "Inläsning misslyckades"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "Skriva data misslyckades"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "Kunde inte hitta lämpligt motortillägg"
+
+#: common/error.cpp:68
+#, fuzzy
+msgid "Engine plugin does not support save states"
+msgstr "Motorn stöder inte debug-nivå '%s'"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr ""
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "Okänt fel"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Herkules grön"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Herkules bärnsten"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Herkules grön"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Herkules bärnsten"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr ""
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr ""
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr ""
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "~F~ortsätt"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~L~adda"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~S~para"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~I~nställningar"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~H~jälp"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "O~m~..."
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "Åte~r~vänd till launcher"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "Åte~r~vänd till launcher"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "Spara spelet:"
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "Spara"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "A~v~bryt"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~T~angenter"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr ""
+
+#: engines/engine.cpp:241
+#, fuzzy
+msgid "Could not switch to video mode: '"
+msgstr "Aktivt videoläge:"
+
+#: engines/engine.cpp:250
+#, fuzzy
+msgid "Could not apply aspect ratio setting."
+msgstr "Korrektion av bildförhållande på/av"
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr ""
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr ""
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+#, fuzzy
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "Är du säker på att du vill avsluta?"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+#, fuzzy
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "Är du säker på att du vill avsluta?"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "Avsluta"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr ""
+
+#: engines/scumm/dialogs.cpp:200
+#, fuzzy
+msgid "Select a game to LOAD"
+msgstr "Välj ett tema"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr ""
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~F~öregående"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~N~ästa"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~S~täng"
+
+#: engines/scumm/dialogs.cpp:597
+#, fuzzy
+msgid "Speech Only"
+msgstr "Tal"
+
+#: engines/scumm/dialogs.cpp:598
+#, fuzzy
+msgid "Speech and Subtitles"
+msgstr "Undertexter"
+
+#: engines/scumm/dialogs.cpp:599
+#, fuzzy
+msgid "Subtitles Only"
+msgstr "Undertexter"
+
+#: engines/scumm/dialogs.cpp:607
+#, fuzzy
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "Tal"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "Vanliga kortkommandon:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "Spara / Ladda-fönster"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "Skippa textrad"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "Skippa scen"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Mellanslag"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "Pausa spelet"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "Ladda spardata 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "Spara speldata 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "Fullskärmsläge"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "Musikvolym höj / sänk"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "Texthastighet sänk / öka"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "Simulera vänster musknapp"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "Simulera höger musknapp"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "Specialkortkommandon:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "Visa / göm konsol"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "Öppna debug-konsolen"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "Visa minnesförbrukning"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "Kör i snabbläge (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "Kör i extra snabbt läge (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "Musrestriktion av/på"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "Växla grafikfilter"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "Öka / sänk skalningsfaktor"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "Korrektion av bildförhållande på/av"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* Observera att användning av ctrl-f"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr "och ctrl-g inte rekommenderas"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr "då detta kan orsaka krascher"
+
+#: engines/scumm/help.cpp:110
+#, fuzzy
+msgid " or incorrect game behavior."
+msgstr "eller felaktigt spelbeteende."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "Väva melodier med tangentbordet:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "Huvudkontroller:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "Tryck"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "Ge"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "Öppna"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "Gå till"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "Ta emot"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "Använd"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "Läs"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "Ny unge"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "Sätt på"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "Stäng av"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "Gå till"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "Ta"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "Vad är"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "Lås upp"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "Ta på"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "Ta av"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "Laga"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "Byt"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "Titta"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "Tala"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "Res"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "Till Henry / Till Indy"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "spela C-moll på staven"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "spela D på staven"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "spela E på staven"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "spela F på staven"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "spela G på staven"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "spela A på staven"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "spela H på staven"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "spela C-dur på staven"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "Tryck"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "Dra"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "Tala med"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "Titta på"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "Sätt på"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "Stäng av"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "Piltangent upp"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "Markera föreg. dialog"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "Piltangent ned"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "Markera nästa dialog"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "Gå"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "Inventarie"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "Objekt"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "Svartvitt / Färg"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "Ögon"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Tunga"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "Slå"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "Sparka"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "Undersök"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "Vanlig pekare"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "Comm"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "Spara / Ladda / Inst."
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "Övriga spelkontroller:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "Inventarie:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "Bläddra listan uppåt"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "Bläddra listan nedåt"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "Övre vänstra föremålet"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "Nedre vänstra föremålet"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "Övre högra föremålet"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "Nedre högra föremålet"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "Mellersta vänstra föremålet"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "Mellersta högra föremålet"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "Byta karaktärer:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "Andra ungen"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "Tredje ungen"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "Slagsmålskontroller (nr. tangenter)"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "Steg bakåt"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "Blockera högt"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "Blockera midjehöjd"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "Blockera lågt"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "Slå högt"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "Slå midjehöjd"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "Slå lågt"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "Gäller när Indy står till vänster."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "När Indy står till höger byter"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4 och 1 plats med"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 och 3."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "Biplanskontroller (nr. tangenter)"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "Flyg åt övre vänster"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "Flyg åt vänster"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "Flyg åt nedre vänster"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "Flyg uppåt"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "Flyg rakt fram"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "Flyg nedåt"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "Flyg åt övre höger"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "Flyg åt höger"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "Flyg åt nedre höger"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"Kunde inte skriva spardata till file:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"Kunde inte läsa spardata från file:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"Sparade framgångsrikt spardata i file\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"Vanligtvis hade Maniac Mansion startat nu, men ScummVM kan inte göra detta "
+"än. För att spela spelet, gå till \"Lägg till spel\" i ScummVM:s huvudmeny "
+"och välj \"Maniac\"-katalogen inuti \"Tentacle\" katalogen."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "~Z~ipläge aktiverat"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "Öv~e~rgångar aktiverade"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr ""
+
+#: engines/mohawk/dialogs.cpp:105
+#, fuzzy
+msgid "~M~ain Menu"
+msgstr "ScummVM huvudmeny"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "~V~atteneffekt aktiverad"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "Återställ spel:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "Återställ"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr ""
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+#, fuzzy
+msgid "Failed to load game state from file."
+msgstr ""
+"Kunde inte läsa spardata från file:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+#, fuzzy
+msgid "Failed to save game state to file."
+msgstr ""
+"Kunde inte skriva spardata till file:\n"
+"\n"
+"%s"
+
+#: engines/gob/inter_v5.cpp:107
+#, fuzzy
+msgid "Failed to delete file."
+msgstr ""
+"Kunde inte skriva spardata till file:\n"
+"\n"
+"%s"
+
+#: engines/groovie/script.cpp:420
+#, fuzzy
+msgid "Failed to save game"
+msgstr ""
+"Kunde inte skriva spardata till file:\n"
+"\n"
+"%s"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+
+#: engines/m4/m4_menus.cpp:138
+#, fuzzy
+msgid "Save game failed!"
+msgstr "Spara spelet:"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr ""
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr ""
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr ""
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr ""
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr ""
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:211
+#, fuzzy
+msgid "Loading game..."
+msgstr "Ladda spel:"
+
+#: engines/parallaction/saveload.cpp:226
+#, fuzzy
+msgid "Saving game..."
+msgstr "Spara spelet:"
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr ""
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "MAME OPL-emulator"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "DOSBox OPL-emulator"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr ""
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "Ingen musik"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "Amiga ljudemulator"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "AdLib-emulator"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS-emulator (INTE IMPLEMENTERAD)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 ljudemulator"
+
+#: audio/softsynth/mt32.cpp:329
+#, fuzzy
+msgid "Initializing MT-32 Emulator"
+msgstr "Initialiserar MT-32 emulator"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "MT-32 emulator"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "PC Speaker-emulator"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "IBM PCjr-emulator"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "Tangenter:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr "(Aktiv)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr "(Global)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr "(Spel)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "ScummVM huvudmeny"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "~V~änsterhänt läge"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "~I~ndy slagsmålskontroller"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "Visa muspekare"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "Lägg till kant"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "Gå till X-position"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "Gå till Y-position"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "Använd bärbar trackpad-stil för pekarkontroll"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "Tappa för vänsterklick, dubbel-tappa för högerklick"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "Känslighet"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "Standardskala för övre skärm:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "Skalning huvudskärm:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "Hårdvaruskalning (snabbt, men låg kvalitet)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "Mjukvaruskalning (bra kvalitet, men långsamt)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "Oskalat (du måste bläddra till vänster och höger)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "Ljusstyrka:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "Hög ljudkvalitet (långsammare) (omstart)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "Inaktivera strömsparning"
+
+#: backends/platform/iphone/osys_events.cpp:338
+#, fuzzy
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "Touchpad-läge aktiverat."
+
+#: backends/platform/iphone/osys_events.cpp:340
+#, fuzzy
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "Touchpad-läge inaktiverat."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "Touchpad-läge aktiverat."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "Touchpad-läge inaktiverat."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+#, fuzzy
+msgid "Hide ScummVM"
+msgstr "Avsluta ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr ""
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+#, fuzzy
+msgid "Window"
+msgstr "Windows MIDI"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr ""
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "Normalt (ingen skalning)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "Normalt (ingen skalning)"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+#, fuzzy
+msgid "Enabled aspect ratio correction"
+msgstr "Korrektion av bildförhållande på/av"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+#, fuzzy
+msgid "Disabled aspect ratio correction"
+msgstr "Korrektion av bildförhållande på/av"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+#, fuzzy
+msgid "Active graphics filter:"
+msgstr "Växla grafikfilter"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+#, fuzzy
+msgid "Windowed mode"
+msgstr "Renderingsläge:"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL normal"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL konservation"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL original"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+#, fuzzy
+msgid "Current display mode"
+msgstr "Aktivt videoläge:"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr ""
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr ""
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "Upp"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "Ned"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "Vänster"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "Höger"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "Vänsterklick"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "Högerklick"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "Zon"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "Multifunktion"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "Byt karaktär"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "Skippa text"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "Snabbläge"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "Debug-konsol"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "Global meny"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "Virtuellt tangentbord"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "Tangentinst."
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "Vill du avsluta?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "Video"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "Aktivt videoläge:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "Ej sammanflätad"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "Vågrät underskanning:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "Lodrät underskanning:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "Ingång"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "GC Pad känslighet:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "GC Pad acceleration:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "Status:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "Okänd"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "Montera DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "Mata ut DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "Server:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "Delad:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "Anv. namn:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "Lösenord:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "Init. nätverk"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "Montera SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "Mata ut SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "Montering av DVD lyckades"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "Fel vid montering av DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ej monterad"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "Nätverk aktivt, delade kataloger monterade"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "Nätverk aktivt"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", fel under montering av delade kataloger"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", delade kataloger ej monterade"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "Nätverk inaktivt"
+
+#: backends/platform/wii/options.cpp:178
+#, fuzzy
+msgid "Initializing network"
+msgstr "Initialiserar nätverk"
+
+#: backends/platform/wii/options.cpp:182
+#, fuzzy
+msgid "Timeout while initializing network"
+msgstr "Timeout under initialisering av nätverk"
+
+#: backends/platform/wii/options.cpp:186
+#, fuzzy, c-format
+msgid "Network not initialized (%d)"
+msgstr "Nätverk ej initialiserat (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "Göm verktygsrad"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "Visa tangentbord"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "Ljud av/på"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "Högerklick"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "Göm/visa pekare"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "Frititt"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "Zooma upp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "Zooma ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "Förbind tangenter"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "Pekare upp"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "Pekare ned"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "Pekare vänster"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "Pekare höger"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "Vill du ladda eller spara spelet?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr "Är du säker på att du vill avsluta?"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "Tangentbord"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "Rotera"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "Använd SDL-driver"
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "Skärm"
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "Vill du utföra en automatisk scan?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "Ställ in högerklick"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr ""
+"Du måste välja en tangent för \"Högerklick\" för att spela det här spelet"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "Ställ in göm verktygsrad"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"Du måste välja en tangent för \"Göm verktygsrad\" för att spela det här "
+"spelet"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "Ställ in Zooma up (valfritt)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "Ställ in Zooma ned (valfritt)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"Glöm inte att välja en tangent för \"Göm verktygsrad\" för att se hela "
+"inventariet"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Do you really want to return to the Launcher?"
+msgstr "Vill du verkligen radera den här spardatan?"
+
+#: backends/events/default/default-events.cpp:222
+#, fuzzy
+msgid "Launcher"
+msgstr "Slå"
+
+#: backends/events/default/default-events.cpp:244
+#, fuzzy
+msgid "Do you really want to quit?"
+msgstr "Vill du avsluta?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:390
+#, fuzzy
+msgid "Maximum Volume"
+msgstr "Volym"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr ""
+
+#: backends/events/gph/gph-events.cpp:398
+#, fuzzy
+msgid "Minimal Volume"
+msgstr "Volym"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr ""
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr ""
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "Lägg till spel..."
+
+#~ msgid "Add Game..."
+#~ msgstr "Lägg till spel..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "Nya spel upptäckta: %d."
+
+#, fuzzy
+#~ msgid "Command line argument not processed"
+#~ msgstr "Argument i kommandoraden ej verkställt"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "FM Towns-emulator"
+
+#~ msgid "Invalid Path"
+#~ msgstr "Ogiltig sökväg"
diff --git a/po/uk_UA.po b/po/uk_UA.po
index 0d94a6320f..6a4ce888a5 100644
--- a/po/uk_UA.po
+++ b/po/uk_UA.po
@@ -1,2625 +1,2775 @@
-# Ukrainian translation for ScummVM.
-# Copyright (C) 2010-2011 ScummVM Team
-# This file is distributed under the same license as the ScummVM package.
-# Lubomyr Lisen, 2010.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: ScummVM 1.3.0svn\n"
-"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
-"POT-Creation-Date: 2011-06-20 23:09+0100\n"
-"PO-Revision-Date: 2011-03-26 22:38+0200\n"
-"Last-Translator: Lubomyr Lisen\n"
-"Language-Team: Ukrainian\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=iso-8859-5\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Language: Ukrainian\n"
-"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%"
-"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
-
-#: gui/about.cpp:91
-#, c-format
-msgid "(built on %s)"
-msgstr "(×öÑàÐÝØÙ %s)"
-
-#: gui/about.cpp:98
-msgid "Features compiled in:"
-msgstr "²ÚÛîçÕÝö Ò ÑöÛÔ Þßæö÷:"
-
-#: gui/about.cpp:107
-msgid "Available engines:"
-msgstr "´ÞáâãßÝö ÔÒØÖÚØ:"
-
-#: gui/browser.cpp:66
-msgid "Go up"
-msgstr "²ÒÕàå"
-
-#: gui/browser.cpp:66 gui/browser.cpp:68
-msgid "Go to previous directory level"
-msgstr "¿ÕàÕÙâØ ÝÐ ßÐßÚã àöÒÝÕÜ ÒØéÕ"
-
-#: gui/browser.cpp:68
-msgctxt "lowres"
-msgid "Go up"
-msgstr "²ÒÕàå"
-
-#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
-#: gui/launcher.cpp:312 gui/massadd.cpp:92 gui/options.cpp:1178
-#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
-#: engines/engine.cpp:408 engines/sword1/control.cpp:865
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:48
-#: backends/events/default/default-events.cpp:222
-#: backends/events/default/default-events.cpp:244
-msgid "Cancel"
-msgstr "²öÔÜöÝÐ"
-
-#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
-msgid "Choose"
-msgstr "²ØÑàÐâØ"
-
-#: gui/gui-manager.cpp:114 engines/scumm/help.cpp:125
-#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
-#: engines/scumm/help.cpp:190 engines/scumm/help.cpp:208
-#: backends/keymapper/remap-dialog.cpp:52
-msgid "Close"
-msgstr "·ÐÚàØâØ"
-
-#: gui/gui-manager.cpp:117
-msgid "Mouse click"
-msgstr "ºÛöÚ ÜØèÚÞî"
-
-#: gui/gui-manager.cpp:120 base/main.cpp:280
-msgid "Display keyboard"
-msgstr "¿ÞÚÐ×ÐâØ ÚÛÐÒöÐâãàã"
-
-#: gui/gui-manager.cpp:123 base/main.cpp:283
-msgid "Remap keys"
-msgstr "¿ÕàÕßàØ×ÝÐçØâØ ÚÛÐÒöèö"
-
-#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
-msgid "Choose an action to map"
-msgstr "²ØÑÕàöâì Ôöî ÔÛï ßàØ×ÝÐçÕÝÝï"
-
-#: gui/KeysDialog.cpp:41
-msgid "Map"
-msgstr "¿àØ×ÝÐçØâØ"
-
-#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
-#: gui/launcher.cpp:940 gui/massadd.cpp:89 gui/options.cpp:1179
-#: engines/engine.cpp:346 engines/engine.cpp:357 engines/scumm/scumm.cpp:1796
-#: engines/agos/animation.cpp:545 engines/groovie/script.cpp:417
-#: engines/sky/compact.cpp:131 engines/sky/compact.cpp:141
-#: engines/sword1/animation.cpp:344 engines/sword1/animation.cpp:354
-#: engines/sword1/animation.cpp:360 engines/sword1/control.cpp:865
-#: engines/sword1/logic.cpp:1633 engines/sword2/animation.cpp:379
-#: engines/sword2/animation.cpp:389 engines/sword2/animation.cpp:398
-#: engines/parallaction/saveload.cpp:281 backends/platform/wii/options.cpp:47
-#: backends/platform/wince/CELauncherDialog.cpp:52
-msgid "OK"
-msgstr "OK"
-
-#: gui/KeysDialog.cpp:49
-msgid "Select an action and click 'Map'"
-msgstr "²ØÑÕàöâì Ôöî ö ÚÛöÚÝöâì '¿àØ×ÝÐçØâØ'"
-
-#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
-#, c-format
-msgid "Associated key : %s"
-msgstr "¿àØ×ÝÐçÕÝÐ ÚÛÐÒöèÐ : %s"
-
-#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
-#, c-format
-msgid "Associated key : none"
-msgstr "¿àØ×ÝÐçÕÝÐ ÚÛÐÒöèÐ : ÝÕÜÐô"
-
-#: gui/KeysDialog.cpp:90
-msgid "Please select an action"
-msgstr "±ãÔì ÛÐáÚÐ, ÒØÑÕàöâì Ôöî"
-
-#: gui/KeysDialog.cpp:106
-msgid "Press the key to associate"
-msgstr "½ÐâØáÝöâì ÚÛÐÒöèã ÔÛï ßàØ×ÝÐçÕÝÝï"
-
-#: gui/launcher.cpp:165
-msgid "Game"
-msgstr "³àÐ"
-
-#: gui/launcher.cpp:169
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
-msgid ""
-"Short game identifier used for referring to savegames and running the game "
-"from the command line"
-msgstr ""
-"ºÞàÞâÚØÙ öÔÕÝâØäöÚÐâÞà, ïÚØÙ ÒØÚÞàØáâÞÒãôâìáï ÔÛï ÝÐ×Ò ×ÑÕàÕÖÕÝØå öÓÞà ö ÔÛï "
-"×ÐßãáÚã × ÚÞÜÐÝÔÝÞ÷ áâàöçÚØ"
-
-#: gui/launcher.cpp:171
-msgctxt "lowres"
-msgid "ID:"
-msgstr "ID:"
-
-#: gui/launcher.cpp:176
-msgid "Name:"
-msgstr "½Ð×ÒÐ:"
-
-#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
-msgid "Full title of the game"
-msgstr "¿ÞÒÝÐ ÝÐ×ÒÐ ÓàØ"
-
-#: gui/launcher.cpp:178
-msgctxt "lowres"
-msgid "Name:"
-msgstr "½Ð×ÒÐ:"
-
-#: gui/launcher.cpp:182
-msgid "Language:"
-msgstr "¼ÞÒÐ:"
-
-#: gui/launcher.cpp:182 gui/launcher.cpp:183
-msgid ""
-"Language of the game. This will not turn your Spanish game version into "
-"English"
-msgstr ""
-"¼ÞÒÐ ÓàØ. ·ÜöÝÐ æìÞÓÞ ßÐàÐÜÕâàã ÝÕ ßÕàÕâÒÞàØâì Óàã ÐÝÓÛöÙáìÚÞî Ò ãÚàÐ÷ÝáìÚã"
-
-#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
-#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
-#: audio/null.cpp:40
-msgid "<default>"
-msgstr "<×Ð ãÜÞÒçÐÝÝïÜ>"
-
-#: gui/launcher.cpp:194
-msgid "Platform:"
-msgstr "¿ÛÐâäÞàÜÐ:"
-
-#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
-msgid "Platform the game was originally designed for"
-msgstr "¿ÛÐâäÞàÜÐ, ÔÛï ïÚÞ÷ ÓàÐ ÑãÛÐ áßÞçÐâÚã àÞ×àÞÑÛÕÝÐ"
-
-#: gui/launcher.cpp:196
-msgctxt "lowres"
-msgid "Platform:"
-msgstr "¿ÛÐâäÞàÜÐ:"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "Graphics"
-msgstr "³àÐäöÚÐ"
-
-#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
-msgid "GFX"
-msgstr "³àä"
-
-#: gui/launcher.cpp:211
-msgid "Override global graphic settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓàÐäöÚØ"
-
-#: gui/launcher.cpp:213
-msgctxt "lowres"
-msgid "Override global graphic settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓàÐäöÚØ"
-
-#: gui/launcher.cpp:220 gui/options.cpp:1041
-msgid "Audio"
-msgstr "°ãÔöÞ"
-
-#: gui/launcher.cpp:223
-msgid "Override global audio settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÐãÔöÞ"
-
-#: gui/launcher.cpp:225
-msgctxt "lowres"
-msgid "Override global audio settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÐãÔöÞ"
-
-#: gui/launcher.cpp:234 gui/options.cpp:1046
-msgid "Volume"
-msgstr "³ãçÝöáâì"
-
-#: gui/launcher.cpp:236 gui/options.cpp:1048
-msgctxt "lowres"
-msgid "Volume"
-msgstr "³ãçÝ-âì"
-
-#: gui/launcher.cpp:239
-msgid "Override global volume settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓãçÝÞáâö"
-
-#: gui/launcher.cpp:241
-msgctxt "lowres"
-msgid "Override global volume settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓãçÝÞáâö"
-
-#: gui/launcher.cpp:248 gui/options.cpp:1056
-msgid "MIDI"
-msgstr "MIDI"
-
-#: gui/launcher.cpp:251
-msgid "Override global MIDI settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MIDI"
-
-#: gui/launcher.cpp:253
-msgctxt "lowres"
-msgid "Override global MIDI settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MIDI"
-
-#: gui/launcher.cpp:263 gui/options.cpp:1062
-msgid "MT-32"
-msgstr "MT-32"
-
-#: gui/launcher.cpp:266
-msgid "Override global MT-32 settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MT-32"
-
-#: gui/launcher.cpp:268
-msgctxt "lowres"
-msgid "Override global MT-32 settings"
-msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MT-32"
-
-#: gui/launcher.cpp:279 gui/options.cpp:1069
-msgid "Paths"
-msgstr "ÈÛïåØ"
-
-#: gui/launcher.cpp:281 gui/options.cpp:1071
-msgctxt "lowres"
-msgid "Paths"
-msgstr "ÈÛïåØ"
-
-#: gui/launcher.cpp:288
-msgid "Game Path:"
-msgstr "ÈÛïå ÔÞ ÓàØ: "
-
-#: gui/launcher.cpp:290
-msgctxt "lowres"
-msgid "Game Path:"
-msgstr "ÈÛïå ÔÞ ÓàØ: "
-
-#: gui/launcher.cpp:295 gui/options.cpp:1091
-msgid "Extra Path:"
-msgstr "´ÞÔÐâÚ. èÛïå:"
-
-#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
-msgid "Specifies path to additional data used the game"
-msgstr "²ÚÐ×ãô èÛïå ÔÞ ÔÞÔÐâÚÞÒØå äÐÙÛöÒ ÔÐÝØå ÔÛï ÓàØ"
-
-#: gui/launcher.cpp:297 gui/options.cpp:1093
-msgctxt "lowres"
-msgid "Extra Path:"
-msgstr "´ÞÔ. èÛïå:"
-
-#: gui/launcher.cpp:302 gui/options.cpp:1079
-msgid "Save Path:"
-msgstr "ÈÛïå ×ÑÕà.: "
-
-#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
-#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
-msgid "Specifies where your savegames are put"
-msgstr "²ÚÐ×ãô èÛïå ÔÞ ×ÑÕàÕÖÕÝì ÓàØ"
-
-#: gui/launcher.cpp:304 gui/options.cpp:1081
-msgctxt "lowres"
-msgid "Save Path:"
-msgstr "ÈÛïå ×ÑÕà.: "
-
-#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
-#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
-#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
-#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
-#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
-msgctxt "path"
-msgid "None"
-msgstr "½Õ ×ÐÒÔÐÝØÙ"
-
-#: gui/launcher.cpp:326 gui/launcher.cpp:408
-#: backends/platform/wii/options.cpp:56
-msgid "Default"
-msgstr "·Ð ãÜÞÒçÐÝÝïÜ"
-
-#: gui/launcher.cpp:446 gui/options.cpp:1356
-msgid "Select SoundFont"
-msgstr "²ØÑÕàöâì SoundFont"
-
-#: gui/launcher.cpp:465 gui/launcher.cpp:612
-msgid "Select directory with game data"
-msgstr "²ØÑÕàöâì ßÐßÚã × äÐÙÛÐÜØ ÓàØ"
-
-#: gui/launcher.cpp:483
-msgid "Select additional game directory"
-msgstr "²ØÑÕàöâì ÔÞÔÐâÚÞÒã ßÐßÚã ÓàØ"
-
-#: gui/launcher.cpp:495
-msgid "Select directory for saved games"
-msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï ×ÑÕàÕÖÕÝì"
-
-#: gui/launcher.cpp:514
-msgid "This game ID is already taken. Please choose another one."
-msgstr "ÆÕÙ ID ÓàØ ÒÖÕ ÒØÚÞàØáâÞÒãôâìáï. ±ãÔì ÛÐáÚÐ, ÒØÑÕàöâì öÝèØÙ."
-
-#: gui/launcher.cpp:555 engines/dialogs.cpp:110
-msgid "~Q~uit"
-msgstr "~²~ØåöÔ"
-
-#: gui/launcher.cpp:555
-msgid "Quit ScummVM"
-msgstr "²ØåöÔ × ScummVM"
-
-#: gui/launcher.cpp:556
-msgid "A~b~out..."
-msgstr "¿àÞ ß~à~ÞÓàÐÜã..."
-
-#: gui/launcher.cpp:556
-msgid "About ScummVM"
-msgstr "¿àÞ ScummVM"
-
-#: gui/launcher.cpp:557
-msgid "~O~ptions..."
-msgstr "~¾~ßæö÷..."
-
-#: gui/launcher.cpp:557
-msgid "Change global ScummVM options"
-msgstr "·ÜöÝØâØ ÓÛÞÑÐÛìÝö Þßæö÷ ScummVM"
-
-#: gui/launcher.cpp:559
-msgid "~S~tart"
-msgstr "·~Ð~ßãáÚ"
-
-#: gui/launcher.cpp:559
-msgid "Start selected game"
-msgstr "·ÐßãáâØâØ ÒØÑàÐÝã Óàã"
-
-#: gui/launcher.cpp:562
-msgid "~L~oad..."
-msgstr "~·~ÐÒÐÝ..."
-
-#: gui/launcher.cpp:562
-msgid "Load savegame for selected game"
-msgstr "·ÐÒÐÝâÐÖØâØ ×ÑÕàÕÖÕÝÝï ÔÛï ÒØÑàÐÝÞ÷ ÓàØ"
-
-#: gui/launcher.cpp:567
-msgid "~A~dd Game..."
-msgstr "~´~ÞÔ. Óàã..."
-
-#: gui/launcher.cpp:567 gui/launcher.cpp:574
-msgid "Hold Shift for Mass Add"
-msgstr "ÃâàØÜãÙâÕ ÚÛÐÒöèã Shift ÔÛï âÞÓÞ, éÞÑ ÔÞÔÐâØ ÔÕÚöÛìÚÐ öÓÞà"
-
-#: gui/launcher.cpp:569
-msgid "~E~dit Game..."
-msgstr "ÀÕÔÐ~Ó~. Óàã..."
-
-#: gui/launcher.cpp:569 gui/launcher.cpp:576
-msgid "Change game options"
-msgstr "·ÜöÝØâØ Þßæö÷ ÓàØ"
-
-#: gui/launcher.cpp:571
-msgid "~R~emove Game"
-msgstr "~²~ØÔÐÛØâØ Óàã"
-
-#: gui/launcher.cpp:571 gui/launcher.cpp:578
-msgid "Remove game from the list. The game data files stay intact"
-msgstr "²ØÔÐÛØâØ Óàã ×ö áßØáÚã. ½Õ ÒØÔÐÛïô Óàã × ÖÞàáâÚÞÓÞ ÔØáÚã"
-
-#: gui/launcher.cpp:574
-msgctxt "lowres"
-msgid "~A~dd Game..."
-msgstr "~´~ÞÔÐâØ Óàã..."
-
-#: gui/launcher.cpp:576
-msgctxt "lowres"
-msgid "~E~dit Game..."
-msgstr "ÀÕÔÐ~Ó~. Óàã..."
-
-#: gui/launcher.cpp:578
-msgctxt "lowres"
-msgid "~R~emove Game"
-msgstr "~²~ØÔÐÛØâØ Óàã"
-
-#: gui/launcher.cpp:586
-msgid "Search in game list"
-msgstr "¿ÞèãÚ ã áßØáÚã öÓÞà"
-
-#: gui/launcher.cpp:590 gui/launcher.cpp:1102
-msgid "Search:"
-msgstr "¿ÞèãÚ:"
-
-#: gui/launcher.cpp:593 gui/options.cpp:826
-msgid "Clear value"
-msgstr "¾çØáâØâØ ×ÝÐçÕÝÝï"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-msgid "Load game:"
-msgstr "·ÐÒÐÝâÐÖØâØ Óàã:"
-
-#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
-#: engines/mohawk/riven.cpp:711 engines/cruise/menu.cpp:216
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Load"
-msgstr "·ÐÒÐÝâÐÖØâØ"
-
-#: gui/launcher.cpp:723
-msgid ""
-"Do you really want to run the mass game detector? This could potentially add "
-"a huge number of games."
-msgstr ""
-"ÇØ ÒØ ÔöÙáÝÞ åÞçÕâÕ ×ÐßãáâØâØ ÔÕâÕÚâÞà ãáöå öÓÞà? ÆÕ ßÞâÕÝæöÙÝÞ ÜÞÖÕ ÔÞÔÐâØ "
-"ÒÕÛØÚã ÚöÛìÚöáâì öÓÞà."
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Yes"
-msgstr "ÂÐÚ"
-
-#: gui/launcher.cpp:724 gui/launcher.cpp:872
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "No"
-msgstr "½ö"
-
-#: gui/launcher.cpp:772
-msgid "ScummVM couldn't open the specified directory!"
-msgstr "ScummVM ÝÕ ÜÞÖÕ ÒöÔÚàØâØ ÒÚÐ×ÐÝã ßÐßÚã!"
-
-#: gui/launcher.cpp:784
-msgid "ScummVM could not find any game in the specified directory!"
-msgstr "ScummVM ÝÕ ÜÞÖÕ ×ÝÐÙâØ Óàã ã ÒÚÐ×ÐÝöÙ ßÐßæö!"
-
-#: gui/launcher.cpp:798
-msgid "Pick the game:"
-msgstr "²ØÑÕàöâì Óàã:"
-
-#: gui/launcher.cpp:872
-msgid "Do you really want to remove this game configuration?"
-msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ ãáâÐÝÞÒÚØ ÔÛï æöô÷ ÓàØ?"
-
-#: gui/launcher.cpp:936
-msgid "This game does not support loading games from the launcher."
-msgstr "Æï ÓàÐ ÝÕ ßöÔâàØÜãô ×ÐÒÐÝâÐÖÕÝÝï ×ÑÕàÕÖÕÝì çÕàÕ× ÓÞÛÞÒÝÕ ÜÕÝî."
-
-#: gui/launcher.cpp:940
-msgid "ScummVM could not find any engine capable of running the selected game!"
-msgstr "ScummVM ÝÕ ×ÜöÓ ×ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚã ÒØÑàÐÝÞ÷ ÓàØ!"
-
-#: gui/launcher.cpp:1054
-msgctxt "lowres"
-msgid "Mass Add..."
-msgstr "´ÞÔ. ÑÐÓÐâÞ..."
-
-#: gui/launcher.cpp:1054
-msgid "Mass Add..."
-msgstr "´ÞÔ. ÑÐÓÐâÞ..."
-
-#: gui/launcher.cpp:1055
-msgctxt "lowres"
-msgid "Add Game..."
-msgstr "´ÞÔÐâØ Óàã..."
-
-#: gui/launcher.cpp:1055
-msgid "Add Game..."
-msgstr "´ÞÔÐâØ Óàã..."
-
-#: gui/massadd.cpp:76 gui/massadd.cpp:79
-msgid "... progress ..."
-msgstr "... ßÞèãÚ ..."
-
-#: gui/massadd.cpp:243
-msgid "Scan complete!"
-msgstr "¿ÞèãÚ ×ÐÚöÝçÕÝÞ!"
-
-#: gui/massadd.cpp:246
-#, c-format
-msgid "Discovered %d new games, ignored %d previously added games."
-msgstr ""
-
-#: gui/massadd.cpp:250
-#, c-format
-msgid "Scanned %d directories ..."
-msgstr "¿àÞÓÛïÝãâÞ %d ßÐßÞÚ ..."
-
-#: gui/massadd.cpp:253
-#, fuzzy, c-format
-msgid "Discovered %d new games, ignored %d previously added games ..."
-msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà ..."
-
-#: gui/options.cpp:72
-msgid "Never"
-msgstr "½öÚÞÛØ"
-
-#: gui/options.cpp:72
-msgid "every 5 mins"
-msgstr "ÚÞÖÝö 5 åÒ"
-
-#: gui/options.cpp:72
-msgid "every 10 mins"
-msgstr "ÚÞÖÝö 10 åÒ"
-
-#: gui/options.cpp:72
-msgid "every 15 mins"
-msgstr "ÚÞÖÝö 15 åÒ"
-
-#: gui/options.cpp:72
-msgid "every 30 mins"
-msgstr "ÚÞÖÝö 30 åÒ"
-
-#: gui/options.cpp:74
-msgid "8 kHz"
-msgstr "8 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "11kHz"
-msgstr "11 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "22 kHz"
-msgstr "22 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "44 kHz"
-msgstr "44 Ú³æ"
-
-#: gui/options.cpp:74
-msgid "48 kHz"
-msgstr "48 Ú³æ"
-
-#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
-#: gui/options.cpp:625 gui/options.cpp:825
-msgctxt "soundfont"
-msgid "None"
-msgstr "½Õ ×ÐÔÐÝØÙ"
-
-#: gui/options.cpp:372
-msgid "Failed to apply some of the graphic options changes:"
-msgstr ""
-
-#: gui/options.cpp:384
-msgid "the video mode could not be changed."
-msgstr ""
-
-#: gui/options.cpp:390
-msgid "the fullscreen setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:396
-msgid "the aspect ratio setting could not be changed"
-msgstr ""
-
-#: gui/options.cpp:705
-msgid "Graphics mode:"
-msgstr "³àÐäöçÝ. àÕÖØÜ:"
-
-#: gui/options.cpp:716
-msgid "Render mode:"
-msgstr "ÀÕÖØÜ àÐáâàãÒ.:"
-
-#: gui/options.cpp:716 gui/options.cpp:717
-msgid "Special dithering modes supported by some games"
-msgstr "ÁßÕæöÐÛìÝö àÕÖØÜØ àÐáâàãÒÐÝÝï, ïÚö ßöÔâàØÜãîâì ÔÕïÚö öÓàØ"
-
-#: gui/options.cpp:726
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2252
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:460
-msgid "Fullscreen mode"
-msgstr "¿ÞÒÝÞÕÚàÐÝÝØÙ àÕÖØÜ"
-
-#: gui/options.cpp:729
-msgid "Aspect ratio correction"
-msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
-
-#: gui/options.cpp:729
-msgid "Correct aspect ratio for 320x200 games"
-msgstr "ºÞàØÓãÒÐâØ áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ ÔÛï öÓÞà × ÓàÐäöÚÞî 320x200"
-
-#: gui/options.cpp:730
-msgid "EGA undithering"
-msgstr "EGA ÑÕ× àÐáâàãÒÐÝÝï"
-
-#: gui/options.cpp:730
-msgid "Enable undithering in EGA games that support it"
-msgstr "²öÜÚÝãâØ ÑÕ× àÐáâàãÒÐÝÝï Ò EGA öÓàÐå ïÚö ßöÔâàØÜãîâì æÕ"
-
-#: gui/options.cpp:738
-msgid "Preferred Device:"
-msgstr "³ÞÛÞÒÝ. ßàØáâàöÙ:"
-
-#: gui/options.cpp:738
-msgid "Music Device:"
-msgstr "¼ã×Øç. ßàØáâàöÙ:"
-
-#: gui/options.cpp:738 gui/options.cpp:740
-msgid "Specifies preferred sound device or sound card emulator"
-msgstr "²ÚÐ×ãô ÒØåöÔÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÐÑÞ ÕÜãÛïâÞà ×ÒãÚÞÒÞ÷ ÚÐàâØ"
-
-#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
-msgid "Specifies output sound device or sound card emulator"
-msgstr "²ÚÐ×ãô ÒØåöÔÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÐÑÞ ÕÜãÛïâÞà ×ÒãÚÞÒÞ÷ ÚÐàâØ"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Preferred Dev.:"
-msgstr "ÀÕÚÞÜ. ßàØáâàöÙ:"
-
-#: gui/options.cpp:740
-msgctxt "lowres"
-msgid "Music Device:"
-msgstr "¼ã×ØçÝØÙ ßàØáâàöÙ:"
-
-#: gui/options.cpp:766
-msgid "AdLib emulator:"
-msgstr "µÜãÛïâÞà AdLib:"
-
-#: gui/options.cpp:766 gui/options.cpp:767
-msgid "AdLib is used for music in many games"
-msgstr "·ÒãÚÞÒÐ ÚÐàâÐ AdLib ÒØÚÞàØáâÞÒãôâìáï ÑÐÓÐâìÜÐ öÓàÐÜØ"
-
-#: gui/options.cpp:777
-msgid "Output rate:"
-msgstr "²ØåöÔÝÐ çÐáâÞâÐ:"
-
-#: gui/options.cpp:777 gui/options.cpp:778
-msgid ""
-"Higher value specifies better sound quality but may be not supported by your "
-"soundcard"
-msgstr ""
-"²ÕÛØÚö ×ÝÐçÕÝÝï ×ÐÔÐîâì ÚàÐéã ïÚöáâì ×ÒãÚã, ßàÞâÕ ÒÞÝØ ÜÞÖãâì ÝÕ "
-"ßöÔâàØÜãÒÐâØáï ÒÐèÞî ×ÒãÚÞÒÞî ÚÐàâÞî"
-
-#: gui/options.cpp:788
-msgid "GM Device:"
-msgstr "¿àØáâàöÙ GM:"
-
-#: gui/options.cpp:788
-msgid "Specifies default sound device for General MIDI output"
-msgstr "²ÚÐ×ãô ÒØåöÔÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÔÛï MIDI"
-
-#: gui/options.cpp:799
-msgid "Don't use General MIDI music"
-msgstr "½Õ ÒØÚÞàØáâÞÒãÒÐâØ General MIDI Üã×ØÚã"
-
-#: gui/options.cpp:810 gui/options.cpp:871
-msgid "Use first available device"
-msgstr "²ØÚÞàØáâÞÒãÒÐâØ ßÕàèØÙ ÝÐïÒÝØÙ ßàØáâàöÙ"
-
-#: gui/options.cpp:822
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
-msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
-msgstr ""
-"SoundFont ßöÔâàØÜãôâìáï ÔÕïÚØÜØ ×ÒãÚÞÒØÜØ ÚÐàâÐÜØ, Fluidsynth ö Timidity"
-
-#: gui/options.cpp:824
-msgctxt "lowres"
-msgid "SoundFont:"
-msgstr "SoundFont:"
-
-#: gui/options.cpp:829
-msgid "Mixed AdLib/MIDI mode"
-msgstr "·ÜöèÐÝØÙ àÕÖØÜ AdLib/MIDI"
-
-#: gui/options.cpp:829
-msgid "Use both MIDI and AdLib sound generation"
-msgstr "²ØÚÞàØáâÞÒãÒÐâØ ö MIDI ö AdLib ÔÛï ÓÕÝÕàÐæö÷ ×ÒãÚã"
-
-#: gui/options.cpp:832
-msgid "MIDI gain:"
-msgstr "¿ÞáØÛÕÝÝï MIDI:"
-
-#: gui/options.cpp:842
-msgid "MT-32 Device:"
-msgstr "¿àØáâàöÙ MT-32:"
-
-#: gui/options.cpp:842
-msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
-msgstr ""
-"²ÚÐ×ãô ×ÒãÚÞÒØÙ ßàØáâàöÙ ßÞ ãÜÞÒçÐÝÝî ÔÛï ÒØÒÞÔã ÝÐ Roland MT-32/LAPC1/CM32l/"
-"CM64"
-
-#: gui/options.cpp:847
-msgid "True Roland MT-32 (disable GM emulation)"
-msgstr "ÁßàÐÒÖÝöÙ Roland MT-32 (ÒØÜÚÝãâØ ÕÜãÛïæØî GM)"
-
-#: gui/options.cpp:847 gui/options.cpp:849
-msgid ""
-"Check if you want to use your real hardware Roland-compatible sound device "
-"connected to your computer"
-msgstr ""
-"²öÔÜöâìâÕ, ïÚéÞ ã ÒÐá ßöÔÚÛîçÕÝØÙ Roland-áãÜöáÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ö ÒØ "
-"åÞçÕâÕ ÙÞÓÞ ÒØÚÞàØáâÐâØ"
-
-#: gui/options.cpp:849
-msgctxt "lowres"
-msgid "True Roland MT-32 (no GM emulation)"
-msgstr "ÁßàÐÒÖÝöÙ Roland MT-32 (ÒØÜÚÝãâØ ÕÜãÛïæØî GM)"
-
-#: gui/options.cpp:852
-msgid "Enable Roland GS Mode"
-msgstr "ÃÒöÜÚÝãâØ àÕÖØÜ Roland GS"
-
-#: gui/options.cpp:852
-msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
-msgstr ""
-"²ØÜØÚÐô ÜÐßöÝÓ General MIDI ÔÛï öÓÞà ö× ×ÒãÚÞÒÞî ÔÞàöÖÚÞî ÔÛï Roland MT-32"
-
-#: gui/options.cpp:861
-msgid "Don't use Roland MT-32 music"
-msgstr "½Õ ÒØÚÞàØáâÞÒãÒÐâØ Roland MT-32"
-
-#: gui/options.cpp:888
-msgid "Text and Speech:"
-msgstr "ÂÕÚáâ ö Þ×ÒãçÚÐ:"
-
-#: gui/options.cpp:892 gui/options.cpp:902
-msgid "Speech"
-msgstr "¾×ÒãçÚÐ"
-
-#: gui/options.cpp:893 gui/options.cpp:903
-msgid "Subtitles"
-msgstr "ÁãÑâØâàØ"
-
-#: gui/options.cpp:894
-msgid "Both"
-msgstr "²áÕ"
-
-#: gui/options.cpp:896
-msgid "Subtitle speed:"
-msgstr "ÈÒØÔ. áãÑâØâàöÒ:"
-
-#: gui/options.cpp:898
-msgctxt "lowres"
-msgid "Text and Speech:"
-msgstr "ÂÕÚáâ ö Þ×ÒãçÚÐ:"
-
-#: gui/options.cpp:902
-msgid "Spch"
-msgstr "¾×Ò"
-
-#: gui/options.cpp:903
-msgid "Subs"
-msgstr "狄"
-
-#: gui/options.cpp:904
-msgctxt "lowres"
-msgid "Both"
-msgstr "²áÕ"
-
-#: gui/options.cpp:904
-msgid "Show subtitles and play speech"
-msgstr "¿ÞÚÐ×ãÒÐâØ áãÑâØâàØ ö ÒöÔâÒÞàîÒÐâØ ÜÞÒã"
-
-#: gui/options.cpp:906
-msgctxt "lowres"
-msgid "Subtitle speed:"
-msgstr "ÈÒØÔ. áãÑâØâàöÒ:"
-
-#: gui/options.cpp:922
-msgid "Music volume:"
-msgstr "³ãçÝöáâì Üã×ØÚØ:"
-
-#: gui/options.cpp:924
-msgctxt "lowres"
-msgid "Music volume:"
-msgstr "³ãçÝöáâì Üã×ØÚØ:"
-
-#: gui/options.cpp:931
-msgid "Mute All"
-msgstr "²ØÜÚÝãâØ ÒáÕ"
-
-#: gui/options.cpp:934
-msgid "SFX volume:"
-msgstr "³ãçÝöáâì ÕäÕÚâöÒ:"
-
-#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
-msgid "Special sound effects volume"
-msgstr "³ãçÝöáâì áßÕæöÐÛìÝØå ×ÒãÚÞÒØå ÕäÕÚâöÒ"
-
-#: gui/options.cpp:936
-msgctxt "lowres"
-msgid "SFX volume:"
-msgstr "³ãçÝöá. ÕäÕÚâöÒ:"
-
-#: gui/options.cpp:944
-msgid "Speech volume:"
-msgstr "³ãçÝöáâì Þ×ÒãçÚØ:"
-
-#: gui/options.cpp:946
-msgctxt "lowres"
-msgid "Speech volume:"
-msgstr "³ãçÝöá. Þ×ÒãçÚØ:"
-
-#: gui/options.cpp:1085
-msgid "Theme Path:"
-msgstr "ÈÛïå ÔÞ âÕÜ:"
-
-#: gui/options.cpp:1087
-msgctxt "lowres"
-msgid "Theme Path:"
-msgstr "ÈÛïå ÔÞ âÕÜ:"
-
-#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
-msgid "Specifies path to additional data used by all games or ScummVM"
-msgstr ""
-"²ÚÐ×ãô èÛïå ÔÞ ÔÞÔÐâÚÞÒØå äÐÙÛöÒ ÔÐÝØå, ÒØÚÞàØáâÞÒãÒÐÝØå ãáöÜÐ öÓàÐÜØ ÐÑÞ "
-"ScummVM"
-
-#: gui/options.cpp:1098
-msgid "Plugins Path:"
-msgstr "ÈÛïå ÔÞ ÒâãÛÚöÒ:"
-
-#: gui/options.cpp:1100
-msgctxt "lowres"
-msgid "Plugins Path:"
-msgstr "ÈÛïå ÔÞ ÒâãÛÚöÒ:"
-
-#: gui/options.cpp:1109
-msgid "Misc"
-msgstr "Àö×ÝÕ"
-
-#: gui/options.cpp:1111
-msgctxt "lowres"
-msgid "Misc"
-msgstr "Àö×ÝÕ"
-
-#: gui/options.cpp:1113
-msgid "Theme:"
-msgstr "ÂÕÜÐ:"
-
-#: gui/options.cpp:1117
-msgid "GUI Renderer:"
-msgstr "ÀÐáâÕà. GUI:"
-
-#: gui/options.cpp:1129
-msgid "Autosave:"
-msgstr "°ÒâÞ×ÑÕàÕÖÕÝÝï:"
-
-#: gui/options.cpp:1131
-msgctxt "lowres"
-msgid "Autosave:"
-msgstr "°ÒâÞ×ÑÕàÕÖ.:"
-
-#: gui/options.cpp:1139
-msgid "Keys"
-msgstr "ºÛÐÒöèö"
-
-#: gui/options.cpp:1146
-msgid "GUI Language:"
-msgstr "¼ÞÒÐ öÝâÕàä.:"
-
-#: gui/options.cpp:1146
-msgid "Language of ScummVM GUI"
-msgstr "¼ÞÒÐ ÓàÐäöçÝÞÓÞ öÝâÕàäÕÙáã ScummVM"
-
-#: gui/options.cpp:1295
-#, fuzzy
-msgid "You have to restart ScummVM before your changes will take effect."
-msgstr "²Ø ßÞÒØÝÝö ßÕàÕ×ÐßãáâØâØ ScummVM éÞÑ ×ÐáâÞáãÒÐâØ ×ÜöÝØ."
-
-#: gui/options.cpp:1308
-msgid "Select directory for savegames"
-msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï ×ÑÕàÕÖÕÝì"
-
-#: gui/options.cpp:1315
-msgid "The chosen directory cannot be written to. Please select another one."
-msgstr "½Õ ÜÞÖã ßØáÐâØ ã ÒØÑàÐÝã ßÐßÚã. ±ãÔì ÛÐáÚÐ, ÒÚÐÖöâì öÝèã."
-
-#: gui/options.cpp:1324
-msgid "Select directory for GUI themes"
-msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï âÕÜ GUI"
-
-#: gui/options.cpp:1334
-msgid "Select directory for extra files"
-msgstr "²ØÑÕàöâì ßÐßÚã × ÔÞÔÐâÚÞÒØÜØ äÐÙÛÐÜØ"
-
-#: gui/options.cpp:1345
-msgid "Select directory for plugins"
-msgstr "²ØÑÕàöâì ßÐßÚã ×ö ÒâãÛÚÐÜØ"
-
-#: gui/options.cpp:1389
-msgid ""
-"The theme you selected does not support your current language. If you want "
-"to use this theme you need to switch to another language first."
-msgstr ""
-"²ØÑàÐÝÐ âÕÜÐ ÝÕ ßöÔâàØÜãô ßÞâÞçÝã ÜÞÒã. ÏÚéÞ ÒØ åÞçÕâÕ ÒØÚÞàØáâÞÒãÒÐâØ æî "
-"âÕÜã, ßÞâàöÑÝÞ Ò ßÕàèã çÕàÓã ×ÜöÝØâØ ÜÞÒã."
-
-#: gui/saveload.cpp:58 gui/saveload.cpp:239
-msgid "No date saved"
-msgstr "´ÐâÐ ÝÕ ×ÐßØáÐÝÐ"
-
-#: gui/saveload.cpp:59 gui/saveload.cpp:240
-msgid "No time saved"
-msgstr "ÇÐá ÝÕ ×ÐßØáÐÝØÙ"
-
-#: gui/saveload.cpp:60 gui/saveload.cpp:241
-msgid "No playtime saved"
-msgstr "ÇÐá ÓàØ ÝÕ ×ÐßØáÐÝÞ"
-
-#: gui/saveload.cpp:67 gui/saveload.cpp:155
-msgid "Delete"
-msgstr "²ØÔÐÛØâØ"
-
-#: gui/saveload.cpp:154
-msgid "Do you really want to delete this savegame?"
-msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ æÕ ×ÑÕàÕÖÕÝÝï?"
-
-#: gui/saveload.cpp:263
-msgid "Date: "
-msgstr "´ÐâÐ: "
-
-#: gui/saveload.cpp:266
-msgid "Time: "
-msgstr "ÇÐá: "
-
-#: gui/saveload.cpp:271
-msgid "Playtime: "
-msgstr "ÇÐá ÓàØ: "
-
-#: gui/saveload.cpp:284 gui/saveload.cpp:351
-msgid "Untitled savestate"
-msgstr "·ÑÕàÕÖÕÝÝï ÑÕ× öÜÕÝö"
-
-#: gui/themebrowser.cpp:44
-msgid "Select a Theme"
-msgstr "²ØÑÕàöâì âÕÜã"
-
-#: gui/ThemeEngine.cpp:327
-msgid "Disabled GFX"
-msgstr "±Õ× ÓàÐäöÚØ"
-
-#: gui/ThemeEngine.cpp:327
-msgctxt "lowres"
-msgid "Disabled GFX"
-msgstr "±Õ× ÓàÐäöÚØ"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard Renderer (16bpp)"
-msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
-
-#: gui/ThemeEngine.cpp:328
-msgid "Standard (16bpp)"
-msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased Renderer (16bpp)"
-msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
-
-#: gui/ThemeEngine.cpp:330
-msgid "Antialiased (16bpp)"
-msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
-
-#: base/main.cpp:200
-#, c-format
-msgid "Engine does not support debug level '%s'"
-msgstr "´ÒØÖÞÚ ÝÕ ßöÔâàØÜãô àöÒÕÝì ÒöÔÛÐÔÚØ '%s'"
-
-#: base/main.cpp:268
-msgid "Menu"
-msgstr "¼ÕÝî"
-
-#: base/main.cpp:271 backends/platform/symbian/src/SymbianActions.cpp:45
-#: backends/platform/wince/CEActionsPocket.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:46
-msgid "Skip"
-msgstr "¿àÞßãáâØâØ"
-
-#: base/main.cpp:274 backends/platform/symbian/src/SymbianActions.cpp:50
-#: backends/platform/wince/CEActionsPocket.cpp:42
-msgid "Pause"
-msgstr "¿Ðã×Ð"
-
-#: base/main.cpp:277
-msgid "Skip line"
-msgstr "¿àÞßãáâØâØ àïÔÞÚ"
-
-#: base/main.cpp:432
-msgid "Error running game:"
-msgstr "¿ÞÜØÛÚÐ ×ÐßãáÚã ÓàØ:"
-
-#: base/main.cpp:456
-msgid "Could not find any engine capable of running the selected game"
-msgstr "½Õ ÜÞÖã ×ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚã ÒØÑàÐÝÞ÷ ÓàØ"
-
-#: common/error.cpp:38
-msgid "No error"
-msgstr "½ÕÜÐô ßÞÜØÛÚØ"
-
-#: common/error.cpp:40
-msgid "Game data not found"
-msgstr "½ÕÜÐô äÐÙÛöÒ ÓàØ"
-
-#: common/error.cpp:42
-msgid "Game id not supported"
-msgstr "Game Id ÝÕ ßöÔâàØÜãôâìáï"
-
-#: common/error.cpp:44
-msgid "Unsupported color mode"
-msgstr "ÀÕÖØÜ ÚÞÛìÞàã ÝÕ ßöÔâàØÜãôâìáï"
-
-#: common/error.cpp:47
-msgid "Read permission denied"
-msgstr "½ÕÔÞáâÐâÝìÞ ßàÐÒ ÔÛï çØâÐÝÝï"
-
-#: common/error.cpp:49
-msgid "Write permission denied"
-msgstr "½ÕÔÞáâÐâÝìÞ ßàÐÒ ÔÛï ×ÐßØáã"
-
-#: common/error.cpp:52
-msgid "Path does not exist"
-msgstr "ÈÛïå ÝÕ ×ÝÐÙÔÕÝÞ"
-
-#: common/error.cpp:54
-msgid "Path not a directory"
-msgstr "ÈÛïå ÝÕ ô ßÐßÚÞî"
-
-#: common/error.cpp:56
-msgid "Path not a file"
-msgstr "ÈÛïå ÝÕ ô äÐÙÛÞÜ"
-
-#: common/error.cpp:59
-msgid "Cannot create file"
-msgstr "½Õ ÜÞÖã áâÒÞàØâØ äÐÙÛ"
-
-#: common/error.cpp:61
-msgid "Reading data failed"
-msgstr "¿ÞÜØÛÚÐ çØâÐÝÝï"
-
-#: common/error.cpp:63
-msgid "Writing data failed"
-msgstr "¿ÞÜØÛÚÐ ×ÐßØáã ÔÐÝØå"
-
-#: common/error.cpp:66
-msgid "Could not find suitable engine plugin"
-msgstr "½Õ ÜÞÖã ×ÝÐÙâØ ÝÕÞÑåöÔÕÞÓÞ ÒâãÛÚÐ ÔÛï ÔÒØÖÚÐ."
-
-#: common/error.cpp:68
-msgid "Engine plugin does not support save states"
-msgstr "´ÒØÖÞÚ ÝÕ ßöÔâàØÜãô àöÒÕÝì ÒöÔÛÐÔÚØ '%s'"
-
-#: common/error.cpp:71
-msgid "User canceled"
-msgstr ""
-
-#: common/error.cpp:75
-msgid "Unknown error"
-msgstr "½ÕÒöÔÞÜÐ ßÞÜØÛÚÐ"
-
-#: common/util.cpp:274
-msgid "Hercules Green"
-msgstr "Hercules ·ÕÛÕÝØÙ"
-
-#: common/util.cpp:275
-msgid "Hercules Amber"
-msgstr "Hercules ÏÝâÐàÝØÙ"
-
-#: common/util.cpp:282
-msgctxt "lowres"
-msgid "Hercules Green"
-msgstr "Hercules ·ÕÛÕÝØÙ"
-
-#: common/util.cpp:283
-msgctxt "lowres"
-msgid "Hercules Amber"
-msgstr "Hercules ÏÝâÐàÝØÙ"
-
-#: engines/advancedDetector.cpp:296
-#, c-format
-msgid "The game in '%s' seems to be unknown."
-msgstr ""
-
-#: engines/advancedDetector.cpp:297
-msgid "Please, report the following data to the ScummVM team along with name"
-msgstr ""
-
-#: engines/advancedDetector.cpp:299
-msgid "of the game you tried to add and its version/language/etc.:"
-msgstr ""
-
-#: engines/dialogs.cpp:84
-msgid "~R~esume"
-msgstr "¿àÞÔÞÒ~Ö~ØâØ"
-
-#: engines/dialogs.cpp:86
-msgid "~L~oad"
-msgstr "~·~ÐÒÐÝâÐÖØâØ"
-
-#: engines/dialogs.cpp:90
-msgid "~S~ave"
-msgstr "~·~ÐßØáÐâØ"
-
-#: engines/dialogs.cpp:94
-msgid "~O~ptions"
-msgstr "~¾~ßæö÷"
-
-#: engines/dialogs.cpp:99
-msgid "~H~elp"
-msgstr "~´~ÞßÞÜÞÓÐ"
-
-#: engines/dialogs.cpp:101
-msgid "~A~bout"
-msgstr "¿àÞ ßàÞ~Ó~àÐÜã"
-
-#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
-msgid "~R~eturn to Launcher"
-msgstr "~¿~ÞÒÕà. Ò ÓÞÛÞÒÝÕ ÜÕÝî"
-
-#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
-msgctxt "lowres"
-msgid "~R~eturn to Launcher"
-msgstr "~¿~ÞÒÕà.Ò ÓÞÛÞÒÝÕ ÜÕÝî"
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-msgid "Save game:"
-msgstr "·ÑÕàÕÓâØ Óàã: "
-
-#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
-#: engines/sci/engine/kfile.cpp:575
-#: backends/platform/symbian/src/SymbianActions.cpp:44
-#: backends/platform/wince/CEActionsPocket.cpp:43
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:45
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Save"
-msgstr "·ÐßØáÐâØ"
-
-#: engines/dialogs.cpp:146
-msgid ""
-"Sorry, this engine does not currently provide in-game help. Please consult "
-"the README for basic information, and for instructions on how to obtain "
-"further assistance."
-msgstr ""
-
-#: engines/dialogs.cpp:312 engines/mohawk/dialogs.cpp:100
-#: engines/mohawk/dialogs.cpp:152
-msgid "~O~K"
-msgstr "~O~K"
-
-#: engines/dialogs.cpp:313 engines/mohawk/dialogs.cpp:101
-#: engines/mohawk/dialogs.cpp:153
-msgid "~C~ancel"
-msgstr "²ö~Ô~ÜöÝÐ"
-
-#: engines/dialogs.cpp:316
-msgid "~K~eys"
-msgstr "~º~ÛÐÒöèö"
-
-#: engines/engine.cpp:220
-msgid "Could not initialize color format."
-msgstr ""
-
-#: engines/engine.cpp:228
-#, fuzzy
-msgid "Could not switch to video mode: '"
-msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ:"
-
-#: engines/engine.cpp:237
-#, fuzzy
-msgid "Could not apply aspect ratio setting."
-msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
-
-#: engines/engine.cpp:242
-msgid "Could not apply fullscreen setting."
-msgstr ""
-
-#: engines/engine.cpp:342
-msgid ""
-"You appear to be playing this game directly\n"
-"from the CD. This is known to cause problems,\n"
-"and it is therefore recommended that you copy\n"
-"the data files to your hard disk instead.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:353
-msgid ""
-"This game has audio tracks in its disk. These\n"
-"tracks need to be ripped from the disk using\n"
-"an appropriate CD audio extracting tool in\n"
-"order to listen to the game's music.\n"
-"See the README file for details."
-msgstr ""
-
-#: engines/engine.cpp:405
-msgid ""
-"WARNING: The game you are about to start is not yet fully supported by "
-"ScummVM. As such, it is likely to be unstable, and any saves you make might "
-"not work in future versions of ScummVM."
-msgstr ""
-
-#: engines/engine.cpp:408
-msgid "Start anyway"
-msgstr ""
-
-#: engines/scumm/dialogs.cpp:281
-msgid "~P~revious"
-msgstr "~¿~ÞßÕà"
-
-#: engines/scumm/dialogs.cpp:282
-msgid "~N~ext"
-msgstr "~½~Ðáâ"
-
-#: engines/scumm/dialogs.cpp:283
-#: backends/platform/ds/arm9/source/dsoptions.cpp:56
-msgid "~C~lose"
-msgstr "~·~ÐÚàØâØ"
-
-#: engines/scumm/help.cpp:73
-msgid "Common keyboard commands:"
-msgstr "¾áÝÞÒÝö ÚÞÜÐÝÔØ ÚÛÐÒöÐâãàØ:"
-
-#: engines/scumm/help.cpp:74
-msgid "Save / Load dialog"
-msgstr "´öÐÛÞÓ ×ÑÕàÕÖÕÝÝï/×ÐÒÐÝâÐÖÕÝÝï"
-
-#: engines/scumm/help.cpp:76
-msgid "Skip line of text"
-msgstr "¿àÞßãáâØâØ àïÔÞÚ âÕÚáâã"
-
-#: engines/scumm/help.cpp:77
-msgid "Esc"
-msgstr "Esc"
-
-#: engines/scumm/help.cpp:77
-msgid "Skip cutscene"
-msgstr "¿àÞßãáâØâØ ×ÐáâÐÒÚã"
-
-#: engines/scumm/help.cpp:78
-msgid "Space"
-msgstr "Space"
-
-#: engines/scumm/help.cpp:78
-msgid "Pause game"
-msgstr "¿Ðã×Ð"
-
-#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
-#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
-#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Ctrl"
-msgstr "Ctrl"
-
-#: engines/scumm/help.cpp:79
-msgid "Load game state 1-10"
-msgstr "·ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ 1-10"
-
-#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
-#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
-msgid "Alt"
-msgstr "Alt"
-
-#: engines/scumm/help.cpp:80
-msgid "Save game state 1-10"
-msgstr "·ÑÕàÕÓâØ áâÐÝ ÓàØ 1-10"
-
-#: engines/scumm/help.cpp:82 engines/scumm/help.cpp:84
-#: backends/platform/symbian/src/SymbianActions.cpp:52
-#: backends/platform/wince/CEActionsPocket.cpp:44
-#: backends/platform/wince/CEActionsSmartphone.cpp:52
-#: backends/events/default/default-events.cpp:244
-msgid "Quit"
-msgstr "²ØåöÔ"
-
-#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
-msgid "Enter"
-msgstr "Enter"
-
-#: engines/scumm/help.cpp:86
-msgid "Toggle fullscreen"
-msgstr "ÃÒöÜÚÝãâØ ßÞÒÝÞÕÚàÐÝÝØÙ àÕÖØÜ"
-
-#: engines/scumm/help.cpp:87
-msgid "Music volume up / down"
-msgstr "³ãçÝöáâì Üã×ØÚØ ÒØéÕ/ÝØÖçÕ"
-
-#: engines/scumm/help.cpp:88
-msgid "Text speed slower / faster"
-msgstr "ÈÒØÔÚöáâì âÕÚáâã ßÞÒöÛìÝöèÕ/èÒØÔèÕ"
-
-#: engines/scumm/help.cpp:89
-msgid "Simulate left mouse button"
-msgstr "ÁØÜãÛîÒÐâØ ÛöÒØÙ ÚÛöÚ"
-
-#: engines/scumm/help.cpp:90
-msgid "Tab"
-msgstr "Tab"
-
-#: engines/scumm/help.cpp:90
-msgid "Simulate right mouse button"
-msgstr "ÁØÜãÛîÒÐâØ ßàÐÒØÙ ÚÛöÚ"
-
-#: engines/scumm/help.cpp:93
-msgid "Special keyboard commands:"
-msgstr "ÁßÕæöÐÛìÝö ÚÞÜÐÝÔØ ÚÛÐÒöÐâãàØ:"
-
-#: engines/scumm/help.cpp:94
-msgid "Show / Hide console"
-msgstr "¿ÞÚÐ×ÐâØ/cåÞÒÐâØ ÚÞÝáÞÛì"
-
-#: engines/scumm/help.cpp:95
-msgid "Start the debugger"
-msgstr "·ÐßãáÚ ÒöÔÛÐÔçØÚÐ"
-
-#: engines/scumm/help.cpp:96
-msgid "Show memory consumption"
-msgstr "¿ÞÚÐ×ÐâØ áßÞÖØÒÐÝÝï ßÐÜ'ïâö"
-
-#: engines/scumm/help.cpp:97
-msgid "Run in fast mode (*)"
-msgstr "²ØÚÞÝÐâØ Ò èÒØÔÚÞÜã àÕÖØÜö (*)"
-
-#: engines/scumm/help.cpp:98
-msgid "Run in really fast mode (*)"
-msgstr "²ØÚÞÝÐâØ Ò ÔöÙáÝÞ èÒØÔÚÞÜã àÕÖØÜö (*)"
-
-#: engines/scumm/help.cpp:99
-msgid "Toggle mouse capture"
-msgstr "ÃÒöÜÚÝãâØ ×ÐåÞßÛÕÝÝï ÜØèö"
-
-#: engines/scumm/help.cpp:100
-msgid "Switch between graphics filters"
-msgstr "¿ÕàÕÚÛîçÕÝÝï ÜöÖ ÓàÐäöçÝØÜØ äöÛìâàÐÜØ"
-
-#: engines/scumm/help.cpp:101
-msgid "Increase / Decrease scale factor"
-msgstr "·ÑöÛìèÕÝÝï/×ÜÕÝèÕÝÝï ÜÐáèâÐÑã"
-
-#: engines/scumm/help.cpp:102
-msgid "Toggle aspect-ratio correction"
-msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
-
-#: engines/scumm/help.cpp:107
-msgid "* Note that using ctrl-f and"
-msgstr "* ·ÐãÒÐÖØÜÞ, éÞ ÒØÚÞàØáâÐÝÝï ctrl-f ö"
-
-#: engines/scumm/help.cpp:108
-msgid " ctrl-g are not recommended"
-msgstr " ctrl-g ÝÕ àÕÚÞÜÕÝÔãôâìáï"
-
-#: engines/scumm/help.cpp:109
-msgid " since they may cause crashes"
-msgstr " ÞáÚöÛìÚØ ÒÞÝØ ÜÞÖãâì ÒØÚÛØÚÐâØ ×ÑÞ÷"
-
-#: engines/scumm/help.cpp:110
-#, fuzzy
-msgid " or incorrect game behavior."
-msgstr " ÐÑÞ ÝÕßàÐÒØÛìÝã ßÞÒÕÔöÝÚã ÓàØ."
-
-#: engines/scumm/help.cpp:114
-msgid "Spinning drafts on the keyboard:"
-msgstr "·ÜöÝÝö çÞàÝÞÒØÚØ ÝÐ ÚÛÐÒöÐâãàö:"
-
-#: engines/scumm/help.cpp:116
-msgid "Main game controls:"
-msgstr "¾áÝÞÒÝö Þßæö÷ ÚÕàãÒÐÝÝï:"
-
-#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
-#: engines/scumm/help.cpp:161
-msgid "Push"
-msgstr "½ÐâØáÚ"
-
-#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
-#: engines/scumm/help.cpp:162
-msgid "Pull"
-msgstr "ÂïÓâØ"
-
-#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
-#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:196
-#: engines/scumm/help.cpp:206
-msgid "Give"
-msgstr "´ÐâØ"
-
-#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
-#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:189
-#: engines/scumm/help.cpp:207
-msgid "Open"
-msgstr "²öÔÚàØâØ"
-
-#: engines/scumm/help.cpp:126
-msgid "Go to"
-msgstr "¹âØ ÔÞ"
-
-#: engines/scumm/help.cpp:127
-msgid "Get"
-msgstr "¾âàØÜÐâØ"
-
-#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
-#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:197
-#: engines/scumm/help.cpp:212 engines/scumm/help.cpp:223
-#: engines/scumm/help.cpp:248
-msgid "Use"
-msgstr "²ØÚÞàØáâÐâØ"
-
-#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
-msgid "Read"
-msgstr "ÇØâÐâØ"
-
-#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
-msgid "New kid"
-msgstr "½ÞÒÐ ÔØâØÝÐ"
-
-#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
-#: engines/scumm/help.cpp:171
-msgid "Turn on"
-msgstr "ÃÒöÜÚÝãâØ"
-
-#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
-#: engines/scumm/help.cpp:172
-msgid "Turn off"
-msgstr "²ØÜÚÝãâØ"
-
-#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
-#: engines/scumm/help.cpp:193
-msgid "Walk to"
-msgstr "¦âØ ÔÞ"
-
-#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
-#: engines/scumm/help.cpp:194 engines/scumm/help.cpp:209
-#: engines/scumm/help.cpp:226
-msgid "Pick up"
-msgstr "¿öÔöÑàÐâØ"
-
-#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
-msgid "What is"
-msgstr "ÉÞ ô"
-
-#: engines/scumm/help.cpp:146
-msgid "Unlock"
-msgstr "ÀÞ×ÑÛÞÚãÒÐâØ"
-
-#: engines/scumm/help.cpp:149
-msgid "Put on"
-msgstr "¿ÞáâÐÒØâØ ÝÐ"
-
-#: engines/scumm/help.cpp:150
-msgid "Take off"
-msgstr "·ÝïâØ"
-
-#: engines/scumm/help.cpp:156
-msgid "Fix"
-msgstr "½ÐÛÐÓÞÔØâØ"
-
-#: engines/scumm/help.cpp:158
-msgid "Switch"
-msgstr "¿ÕàÕÜÚÝãâØ"
-
-#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:227
-msgid "Look"
-msgstr "³ÛïÝãâØ"
-
-#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:222
-msgid "Talk"
-msgstr "³ÞÒÞàØâØ"
-
-#: engines/scumm/help.cpp:174
-msgid "Travel"
-msgstr "¿ÞÔÞàÞÖ"
-
-#: engines/scumm/help.cpp:175
-msgid "To Henry / To Indy"
-msgstr "à ³ÕÝàö / à ¦ÝÔö"
-
-#: engines/scumm/help.cpp:178
-msgid "play C minor on distaff"
-msgstr "ÓàÐâØ ÔÞ ÜöÝÞà ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:179
-msgid "play D on distaff"
-msgstr "ÓàÐâØ àÕ ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:180
-msgid "play E on distaff"
-msgstr "ÓàÐâØ Üö ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:181
-msgid "play F on distaff"
-msgstr "ÓàÐâØ äÐ ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:182
-msgid "play G on distaff"
-msgstr "ÓàÐâØ áÞÛì ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:183
-msgid "play A on distaff"
-msgstr "ÓàÐâØ Ûï ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:184
-msgid "play B on distaff"
-msgstr "ÓàÐâØ áö ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:185
-msgid "play C major on distaff"
-msgstr "ÓàÐâØ ÔÞ ÜÐÖÞà ÝÐ ßàïÔæö"
-
-#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:213
-msgid "puSh"
-msgstr "¿ÞèâÞÒå"
-
-#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
-msgid "pull (Yank)"
-msgstr "âïÓÝãâØ (ÁÜØÚÝãâØ)"
-
-#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:211
-#: engines/scumm/help.cpp:246
-msgid "Talk to"
-msgstr "³ÞÒÞàØâØ ÔÞ"
-
-#: engines/scumm/help.cpp:198 engines/scumm/help.cpp:210
-msgid "Look at"
-msgstr "³ÛïÝãâØ ÝÐ"
-
-#: engines/scumm/help.cpp:199
-msgid "turn oN"
-msgstr "ÃÒöÜÚÝãâØ"
-
-#: engines/scumm/help.cpp:200
-msgid "turn oFf"
-msgstr "²ØÜÚÝãâØ"
-
-#: engines/scumm/help.cpp:216
-msgid "KeyUp"
-msgstr "½ÐâØáÝãâØ"
-
-#: engines/scumm/help.cpp:216
-msgid "Highlight prev dialogue"
-msgstr "²ØÔöÛØâØ ßÞßÕàÕÔÝöÙ ÔöÐÛÞÓ"
-
-#: engines/scumm/help.cpp:217
-msgid "KeyDown"
-msgstr "²öÔßãáâØâØ"
-
-#: engines/scumm/help.cpp:217
-msgid "Highlight next dialogue"
-msgstr "²ØÔöÛØâØ ÝÐáâãßÝØÙ ÔöÐÛÞÓ"
-
-#: engines/scumm/help.cpp:221
-msgid "Walk"
-msgstr "¦âØ"
-
-#: engines/scumm/help.cpp:224 engines/scumm/help.cpp:233
-#: engines/scumm/help.cpp:240 engines/scumm/help.cpp:247
-msgid "Inventory"
-msgstr "¦ÝÒÕÝâÐà"
-
-#: engines/scumm/help.cpp:225
-msgid "Object"
-msgstr "¾Ñ'ôÚâ"
-
-#: engines/scumm/help.cpp:228
-msgid "Black and White / Color"
-msgstr "ÇÞàÝÞÑöÛØÙ/ºÞÛìÞàÞÒØÙ"
-
-#: engines/scumm/help.cpp:231
-msgid "Eyes"
-msgstr "¾çö"
-
-#: engines/scumm/help.cpp:232
-msgid "Tongue"
-msgstr "ÀÞ×ÜÞÒÛïâØ"
-
-#: engines/scumm/help.cpp:234
-msgid "Punch"
-msgstr "²ÔÐàØâØ ÚãÛÐÚÞÜ"
-
-#: engines/scumm/help.cpp:235
-msgid "Kick"
-msgstr "²ÔÐàØâØ ÝÞÓÞî"
-
-#: engines/scumm/help.cpp:238 engines/scumm/help.cpp:245
-msgid "Examine"
-msgstr "ÀÞ×ÓÛïÝãâØ"
-
-#: engines/scumm/help.cpp:239
-msgid "Regular cursor"
-msgstr "·ÒØçÐÙÝØÙ ÚãàáÞà"
-
-#: engines/scumm/help.cpp:241
-msgid "Comm"
-msgstr "Comm"
-
-#: engines/scumm/help.cpp:244
-msgid "Save / Load / Options"
-msgstr "·ÑÕàÕÖÕÝÝï / ·ÐÒÐÝâÐÖÕÝÝï / ¾ßæö÷"
-
-#: engines/scumm/help.cpp:253
-msgid "Other game controls:"
-msgstr "¦Ýèö Þßæö÷ ÚÕàãÒÐÝÝï:"
-
-#: engines/scumm/help.cpp:255 engines/scumm/help.cpp:265
-msgid "Inventory:"
-msgstr "¦ÝÒÕÝâÐà:"
-
-#: engines/scumm/help.cpp:256 engines/scumm/help.cpp:272
-msgid "Scroll list up"
-msgstr "¿àÞÚàãçÕÝÝï áßØáÚã ÔÞÓÞàØ"
-
-#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:273
-msgid "Scroll list down"
-msgstr "¿àÞÚàãçÕÝÝï áßØáÚã ÔÞÝØ×ã"
-
-#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:266
-msgid "Upper left item"
-msgstr "²ÕàåÝï ×ÛöÒÐ àöç"
-
-#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:268
-msgid "Lower left item"
-msgstr "½ØÖÝï ×ÛöÒÐ àöç"
-
-#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:269
-msgid "Upper right item"
-msgstr "²ÕàåÝï áßàÐÒÐ àöç"
-
-#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:271
-msgid "Lower right item"
-msgstr "½ØÖÝï áßàÐÒÐ àöç"
-
-#: engines/scumm/help.cpp:267
-msgid "Middle left item"
-msgstr "ÁÕàÕÔÝï ×ÛöÒÐ àöç"
-
-#: engines/scumm/help.cpp:270
-msgid "Middle right item"
-msgstr "ÁÕàÕÔÝï áßàÐÒÐ àöç"
-
-#: engines/scumm/help.cpp:277 engines/scumm/help.cpp:282
-msgid "Switching characters:"
-msgstr "¿ÕàÕÚÛîçÕÝÝï ÓÕàÞ÷Ò"
-
-#: engines/scumm/help.cpp:279
-msgid "Second kid"
-msgstr "´àãÓÐ ÔØâØÝÐ"
-
-#: engines/scumm/help.cpp:280
-msgid "Third kid"
-msgstr "ÂàÕâï ÔØâØÝÐ"
-
-#: engines/scumm/help.cpp:292
-msgid "Fighting controls (numpad):"
-msgstr "ºÕàãÒÐÝÝï ÑöÙÚÞî (numpad):"
-
-#: engines/scumm/help.cpp:293 engines/scumm/help.cpp:294
-#: engines/scumm/help.cpp:295
-msgid "Step back"
-msgstr "ºàÞÚ ÝÐ×ÐÔ"
-
-#: engines/scumm/help.cpp:296
-msgid "Block high"
-msgstr "±ÛÞÚãÒÐâØ ÒØéÕ"
-
-#: engines/scumm/help.cpp:297
-msgid "Block middle"
-msgstr "±ÛÞÚãÒÐâØ ßÞáÕàÕÔØÝö"
-
-#: engines/scumm/help.cpp:298
-msgid "Block low"
-msgstr "±ÛÞÚãÒÐâØ ÝØÖçÕ"
-
-#: engines/scumm/help.cpp:299
-msgid "Punch high"
-msgstr "±ØâØ ÒØéÕ"
-
-#: engines/scumm/help.cpp:300
-msgid "Punch middle"
-msgstr "±ØâØ ßÞáÕàÕÔØÝö"
-
-#: engines/scumm/help.cpp:301
-msgid "Punch low"
-msgstr "±ØâØ ÝØÖçÕ"
-
-#: engines/scumm/help.cpp:304
-msgid "These are for Indy on left."
-msgstr "à ÒØßÐÔÚã ÔÛï ¦ÝÔö ×ÛöÒÐ."
-
-#: engines/scumm/help.cpp:305
-msgid "When Indy is on the right,"
-msgstr "ºÞÛØ ¦ÝÔö ô áßàÐÒÐ,"
-
-#: engines/scumm/help.cpp:306
-msgid "7, 4, and 1 are switched with"
-msgstr "7, 4, ö 1 ßÕàÕÜØÚÐîâìáï ÝÐ"
-
-#: engines/scumm/help.cpp:307
-msgid "9, 6, and 3, respectively."
-msgstr "9, 6 ö 3 ÒöÔßÞÒöÔÝÞ."
-
-#: engines/scumm/help.cpp:314
-msgid "Biplane controls (numpad):"
-msgstr "ºÕàãÒÐÝÝï ÑößÛÐÝÞÜ (numpad):"
-
-#: engines/scumm/help.cpp:315
-msgid "Fly to upper left"
-msgstr "»ÕâöâØ ÔÞÓÞàØ ÝÐÛöÒÞ"
-
-#: engines/scumm/help.cpp:316
-msgid "Fly to left"
-msgstr "»ÕâöâØ ÝÐÛöÒÞ"
-
-#: engines/scumm/help.cpp:317
-msgid "Fly to lower left"
-msgstr "»ÕâöâØ ÝØÖçÕ ÒÛöÒÞ"
-
-#: engines/scumm/help.cpp:318
-msgid "Fly upwards"
-msgstr "»ÕâöâØ ÔÞÓÞàØ"
-
-#: engines/scumm/help.cpp:319
-msgid "Fly straight"
-msgstr "»ÕâöâØ ßàïÜÞ"
-
-#: engines/scumm/help.cpp:320
-msgid "Fly down"
-msgstr "»ÕâöâØ ÔÞÝØ×ã"
-
-#: engines/scumm/help.cpp:321
-msgid "Fly to upper right"
-msgstr "»ÕâöâØ ÔÞÓÞàØ ÝÐßàÐÒÞ"
-
-#: engines/scumm/help.cpp:322
-msgid "Fly to right"
-msgstr "»ÕâöâØ ÝÐßàÐÒÞ"
-
-#: engines/scumm/help.cpp:323
-msgid "Fly to lower right"
-msgstr "»ÕâöâØ ÔÞÝØ×ã ÝÐßàÐÒÞ"
-
-#: engines/scumm/scumm.cpp:1794
-#, c-format
-msgid ""
-"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
-"but %s is missing. Using AdLib instead."
-msgstr ""
-
-#: engines/scumm/scumm.cpp:2280 engines/agos/saveload.cpp:190
-#, c-format
-msgid ""
-"Failed to save game state to file:\n"
-"\n"
-"%s"
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2287 engines/agos/saveload.cpp:155
-#, c-format
-msgid ""
-"Failed to load game state from file:\n"
-"\n"
-"%s"
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ × äÐÙÛã:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2299 engines/agos/saveload.cpp:198
-#, c-format
-msgid ""
-"Successfully saved game state in file:\n"
-"\n"
-"%s"
-msgstr ""
-"ÃáßöèÝÞ ×ÑÕàÖÕÝÞ áâÐÝ ÓàØ ã äÐÙÛö:\n"
-"\n"
-"%s"
-
-#: engines/scumm/scumm.cpp:2514
-msgid ""
-"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
-"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
-"directory inside the Tentacle game directory."
-msgstr ""
-"·Ð×ÒØçÐÙ, ×ÐàÐ× ÑØ ×ÐßãáâØÒáï Maniac Mansion. ¿àÞâÕ ScummVM éÕ æìÞÓÞ ÝÕ "
-"ÒÜöô. ÉÞÑ ÓàÐâØ ã ÝìÞÓÞ, ÞÑÕàöâì '´ÞÔÐâØ Óàã' ã ßÞçÐâÚÞÒÞÜã ÜÕÝî ScummVM, ö "
-"ÒØÑÕàöâì ßÐßÚã Maniac ÒáÕàÕÔÕÝö ßÒßÚØ × ÓàÞî Tentacle."
-
-#: engines/mohawk/dialogs.cpp:90 engines/mohawk/dialogs.cpp:149
-msgid "~Z~ip Mode Activated"
-msgstr "ÀÕÖØÜ èÒØÔÚÞÓÞ ßÕàÕåÞÔã ÐÚâØÒÞÒÐÝÞ"
-
-#: engines/mohawk/dialogs.cpp:91
-msgid "~T~ransitions Enabled"
-msgstr "¿ÕàÕåÞÔØ ÐÚâØÒÞÒÐÝÞ"
-
-#: engines/mohawk/dialogs.cpp:92
-msgid "~D~rop Page"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:96
-msgid "~S~how Map"
-msgstr ""
-
-#: engines/mohawk/dialogs.cpp:150
-msgid "~W~ater Effect Enabled"
-msgstr "µäÕÚâØ ÒÞÔØ ÒÚÛîçÕÝÞ"
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore game:"
-msgstr "²öÔÝÞÒØâØ Óàã: "
-
-#: engines/sci/engine/kfile.cpp:678
-msgid "Restore"
-msgstr "²öÔÝÞÒØâØ"
-
-#: engines/agos/animation.cpp:544
-#, c-format
-msgid "Cutscene file '%s' not found!"
-msgstr ""
-
-#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
-#: engines/tinsel/saveload.cpp:468
-#, fuzzy
-msgid "Failed to load game state from file."
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ × äÐÙÛã:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:546
-#, fuzzy
-msgid "Failed to save game state to file."
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/gob/inter_v5.cpp:107
-#, fuzzy
-msgid "Failed to delete file."
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/groovie/script.cpp:417
-#, fuzzy
-msgid "Failed to save game"
-msgstr ""
-"½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ:\n"
-"\n"
-"%s"
-
-#: engines/kyra/sound_midi.cpp:475
-msgid ""
-"You appear to be using a General MIDI device,\n"
-"but your game only supports Roland MT32 MIDI.\n"
-"We try to map the Roland MT32 instruments to\n"
-"General MIDI ones. After all it might happen\n"
-"that a few tracks will not be correctly played."
-msgstr ""
-
-#: engines/m4/m4_menus.cpp:138
-#, fuzzy
-msgid "Save game failed!"
-msgstr "·ÑÕàÕÓâØ Óàã: "
-
-#: engines/sky/compact.cpp:130
-msgid ""
-"Unable to find \"sky.cpt\" file!\n"
-"Please download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sky/compact.cpp:141
-msgid ""
-"The \"sky.cpt\" file has an incorrect size.\n"
-"Please (re)download it from www.scummvm.org"
-msgstr ""
-
-#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
-msgid "DXA cutscenes found but ScummVM has been built without zlib support"
-msgstr ""
-
-#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
-msgid "MPEG2 cutscenes are no longer supported"
-msgstr ""
-
-#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
-#, c-format
-msgid "Cutscene '%s' not found"
-msgstr ""
-
-#: engines/sword1/control.cpp:863
-msgid ""
-"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
-"converted.\n"
-"The old save game format is no longer supported, so you will not be able to "
-"load your games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked again the next "
-"time you start the game.\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1232
-#, c-format
-msgid ""
-"Target new save game already exists!\n"
-"Would you like to keep the old save game (%s) or the new one (%s)?\n"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the old one"
-msgstr ""
-
-#: engines/sword1/control.cpp:1235
-msgid "Keep the new one"
-msgstr ""
-
-#: engines/sword1/logic.cpp:1633
-msgid "This is the end of the Broken Sword 1 Demo"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:133
-#, c-format
-msgid ""
-"Can't save game in slot %i\n"
-"\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:211
-#, fuzzy
-msgid "Loading game..."
-msgstr "·ÐÒÐÝâÐÖØâØ Óàã:"
-
-#: engines/parallaction/saveload.cpp:226
-#, fuzzy
-msgid "Saving game..."
-msgstr "·ÑÕàÕÓâØ Óàã: "
-
-#: engines/parallaction/saveload.cpp:279
-msgid ""
-"ScummVM found that you have old savefiles for Nippon Safes that should be "
-"renamed.\n"
-"The old names are no longer supported, so you will not be able to load your "
-"games if you don't convert them.\n"
-"\n"
-"Press OK to convert them now, otherwise you will be asked next time.\n"
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:326
-msgid "ScummVM successfully converted all your savefiles."
-msgstr ""
-
-#: engines/parallaction/saveload.cpp:328
-msgid ""
-"ScummVM printed some warnings in your console window and can't guarantee all "
-"your files have been converted.\n"
-"\n"
-"Please report to the team."
-msgstr ""
-
-#: audio/fmopl.cpp:49
-msgid "MAME OPL emulator"
-msgstr "µÜãÛïâÞà MAME OPL:"
-
-#: audio/fmopl.cpp:51
-msgid "DOSBox OPL emulator"
-msgstr "µÜãÛïâÞà DOSBox OPL"
-
-#: audio/mididrv.cpp:204
-#, c-format
-msgid ""
-"The selected audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:216
-#, c-format
-msgid ""
-"The selected audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:250
-#, c-format
-msgid ""
-"The preferred audio device '%s' was not found (e.g. might be turned off or "
-"disconnected). Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/mididrv.cpp:265
-#, c-format
-msgid ""
-"The preferred audio device '%s' cannot be used. See log file for more "
-"information. Attempting to fall back to the next available device..."
-msgstr ""
-
-#: audio/null.h:43
-msgid "No music"
-msgstr "±Õ× Üã×ØÚØ"
-
-#: audio/mods/paula.cpp:189
-msgid "Amiga Audio Emulator"
-msgstr "°ÜöÓÐ °ãÔöÞ µÜãÛïâÞà"
-
-#: audio/softsynth/adlib.cpp:1594
-msgid "AdLib Emulator"
-msgstr "µÜãÛïâÞà AdLib"
-
-#: audio/softsynth/appleiigs.cpp:33
-msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
-msgstr "Apple II GS µÜãÛïâÞà (½µ Àµ°»¦·¾²°½¾)"
-
-#: audio/softsynth/sid.cpp:1430
-msgid "C64 Audio Emulator"
-msgstr "C64 °ãÔöÞ µÜãÛïâÞà"
-
-#: audio/softsynth/mt32.cpp:329
-#, fuzzy
-msgid "Initializing MT-32 Emulator"
-msgstr "½ÐáâàÞîî ÕÜãÛïâÞà MT-32"
-
-#: audio/softsynth/mt32.cpp:543
-msgid "MT-32 Emulator"
-msgstr "µÜãÛïâÞà MT-32"
-
-#: audio/softsynth/pcspk.cpp:139
-msgid "PC Speaker Emulator"
-msgstr "µÜãÛïâÞà PC áßöÚÕàÐ"
-
-#: audio/softsynth/pcspk.cpp:158
-msgid "IBM PCjr Emulator"
-msgstr "µÜãÛïâÞà IBM PCjr"
-
-#: backends/keymapper/remap-dialog.cpp:47
-msgid "Keymap:"
-msgstr "ÂÐÑÛØæï ÚÛÐÒöè:"
-
-#: backends/keymapper/remap-dialog.cpp:64
-msgid " (Active)"
-msgstr " (°ÚâØÒÝÐ)"
-
-#: backends/keymapper/remap-dialog.cpp:98
-msgid " (Global)"
-msgstr " (³ÛÞÑÐÛìÝÐ)"
-
-#: backends/keymapper/remap-dialog.cpp:108
-msgid " (Game)"
-msgstr " (¦ÓàØ)"
-
-#: backends/midi/windows.cpp:164
-msgid "Windows MIDI"
-msgstr "Windows MIDI"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:57
-msgid "ScummVM Main Menu"
-msgstr "³ÞÛÞÒÝÕ ÜÕÝî ScummVM"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:63
-msgid "~L~eft handed mode"
-msgstr "»öÒÞàãÚØÙ àÕÖØÜ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:64
-msgid "~I~ndy fight controls"
-msgstr "ºÕàãÒÐÝÝï ÑÞïÜØ Ò Indy"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:65
-msgid "Show mouse cursor"
-msgstr "¿ÞÚÐ×ãÒÐâØ ÚãàáÞà ÜØèö"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:66
-msgid "Snap to edges"
-msgstr "¿àØÚàößØâØ ÔÞ ÚàÐ÷Ò"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:68
-msgid "Touch X Offset"
-msgstr "·ÜöéÕÝÝï ÔÞâØÚöÒ ßÞ Þáö X"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:75
-msgid "Touch Y Offset"
-msgstr "·ÜöéÕÝÝï ÔÞâØÚöÒ ßÞ Þáö Y"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:87
-msgid "Use laptop trackpad-style cursor control"
-msgstr "²ØÚÞàØáâÞÒãÒÐâØ ãßàÐÒÛöÝÝï ÚãàáÞàÞÜ ïÚ ÝÐ âàÕÚßÐÔö ÛÐßâÞßöÒ"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:88
-msgid "Tap for left click, double tap right click"
-msgstr "ÂÐß ÔÛï ÛöÒÞÓÞ ÚÛÐæÐÝÝï, ßÞÔÒöÙÝØÙ âÐß ÔÛï ßàÐÒÞÓÞ ÚÛÐæÐÝÝï"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:90
-msgid "Sensitivity"
-msgstr "ÇãâÛØÒöáâì"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:99
-msgid "Initial top screen scale:"
-msgstr "¿ÞçÐâÚÞÒØÙ ÜÐáèâÐÑ ÒÕàåÝìÞÓÞ ÕÚàÐÝã:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:105
-msgid "Main screen scaling:"
-msgstr "¼ÐáèâÐÑ ÓÞÛÞÒÝÞÓÞ ÕÚàÐÝã:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:107
-msgid "Hardware scale (fast, but low quality)"
-msgstr "ÅÐàÔÒÐàÝÕ ÜÐáèâÐÑãÒÐÝÝï (èÒØÔÚÞ, ÐÛÕ ÝØ×ìÚÞ÷ ïÚÞáâö)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:108
-msgid "Software scale (good quality, but slower)"
-msgstr "¿àÞÓàÐÜÝÕ ÜÐáèâÐÑãÒÐÝÝï (åÞàÞèÐ ïÚöáâì, ÐÛÕ ßÞÒöÛìÝöèÕ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:109
-msgid "Unscaled (you must scroll left and right)"
-msgstr "±Õ× ÜÐáèâÐÑãÒÐÝÝï (âàÕÑÐ ÑãÔÕ ßàÞÚàãçãÒÐâØ ÝÐÛöÒÞ ö ÝÐßàÐÒÞ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:111
-msgid "Brightness:"
-msgstr "ÏáÚàÐÒöáâì:"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:121
-msgid "High quality audio (slower) (reboot)"
-msgstr "²ØáÞÚÐ ïÚöáâì ×ÒãÚã (ßÞÒöÛìÝöèÕ) (àÕÑãâ)"
-
-#: backends/platform/ds/arm9/source/dsoptions.cpp:122
-msgid "Disable power off"
-msgstr "·ÐÑÞàÞÝØâØ ÒØÜÚÝÕÝÝï"
-
-#: backends/platform/iphone/osys_events.cpp:338
-#, fuzzy
-msgid "Mouse-click-and-drag mode enabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔã ãÒöÜÚÝÕÝÞ."
-
-#: backends/platform/iphone/osys_events.cpp:340
-#, fuzzy
-msgid "Mouse-click-and-drag mode disabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔã ÒØÜÚÝÕÝÞ."
-
-#: backends/platform/iphone/osys_events.cpp:351
-msgid "Touchpad mode enabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔã ãÒöÜÚÝÕÝÞ."
-
-#: backends/platform/iphone/osys_events.cpp:353
-msgid "Touchpad mode disabled."
-msgstr "ÀÕÖØÜ âÐçßÐÔã ÒØÜÚÝÕÝÞ."
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
-msgid "Normal (no scaling)"
-msgstr "±Õ× ×ÑöÛìèÕÝÝï"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
-msgctxt "lowres"
-msgid "Normal (no scaling)"
-msgstr "±Õ× ×ÑöÛìèÕÝÝï"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2137
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:521
-#, fuzzy
-msgid "Enabled aspect ratio correction"
-msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2143
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:526
-#, fuzzy
-msgid "Disabled aspect ratio correction"
-msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2198
-#, fuzzy
-msgid "Active graphics filter:"
-msgstr "¿ÕàÕÚÛîçÕÝÝï ÜöÖ ÓàÐäöçÝØÜØ äöÛìâàÐÜØ"
-
-#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2254
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:465
-#, fuzzy
-msgid "Windowed mode"
-msgstr "ÀÕÖØÜ àÐáâàãÒ.:"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:139
-msgid "OpenGL Normal"
-msgstr "OpenGL ÝÞàÜÐÛìÝØÙ"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:140
-msgid "OpenGL Conserve"
-msgstr "OpenGL ×ÑÕàÕÖÕÝØÙ"
-
-#: backends/graphics/opengl/opengl-graphics.cpp:141
-msgid "OpenGL Original"
-msgstr "OpenGL ÞàØÓöÝÐÛìÝØÙ"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:403
-#, fuzzy
-msgid "Current display mode"
-msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ:"
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:416
-msgid "Current scale"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:546
-msgid "Active filter mode: Linear"
-msgstr ""
-
-#: backends/graphics/openglsdl/openglsdl-graphics.cpp:548
-msgid "Active filter mode: Nearest"
-msgstr ""
-
-#: backends/platform/symbian/src/SymbianActions.cpp:38
-#: backends/platform/wince/CEActionsSmartphone.cpp:39
-msgid "Up"
-msgstr "´ÞÓÞàØ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:39
-#: backends/platform/wince/CEActionsSmartphone.cpp:40
-msgid "Down"
-msgstr "´ÞÝØ×ã"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:40
-#: backends/platform/wince/CEActionsSmartphone.cpp:41
-msgid "Left"
-msgstr "½ÐÛöÒÞ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:41
-#: backends/platform/wince/CEActionsSmartphone.cpp:42
-msgid "Right"
-msgstr "½ÐßàÐÒÞ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:42
-#: backends/platform/wince/CEActionsPocket.cpp:60
-#: backends/platform/wince/CEActionsSmartphone.cpp:43
-msgid "Left Click"
-msgstr "»öÒØÙ ÚÛöÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:43
-#: backends/platform/wince/CEActionsSmartphone.cpp:44
-msgid "Right Click"
-msgstr "¿àÐÒØÙ ÚÛöÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:46
-#: backends/platform/wince/CEActionsSmartphone.cpp:47
-msgid "Zone"
-msgstr "·ÞÝÐ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:47
-#: backends/platform/wince/CEActionsPocket.cpp:54
-#: backends/platform/wince/CEActionsSmartphone.cpp:48
-msgid "Multi Function"
-msgstr "¼ãÛìâØäãÝÚæöï"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:48
-msgid "Swap character"
-msgstr "·ÜöÝØâØ ÓÕàÞï"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:49
-msgid "Skip text"
-msgstr "¿àÞßãáâØâØ âÕÚáâ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:51
-msgid "Fast mode"
-msgstr "ÈÒØÔÚØÙ àÕÖØÜ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:53
-msgid "Debugger"
-msgstr "²öÔÛÐÔçØÚ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:54
-msgid "Global menu"
-msgstr "³ÛÞÑÐÛìÝÕ ÜÕÝî"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:55
-msgid "Virtual keyboard"
-msgstr "²öàâãÐÛìÝÐ ÚÛÐÒöÐâãàÐ"
-
-#: backends/platform/symbian/src/SymbianActions.cpp:56
-msgid "Key mapper"
-msgstr "¿àØ×ÝÐçÕÝÝï ÚÛÐÒöè"
-
-#: backends/events/symbiansdl/symbiansdl-events.cpp:184
-msgid "Do you want to quit ?"
-msgstr "²Ø åÞçÕâÕ ÒØÙâØ?"
-
-#: backends/platform/wii/options.cpp:51
-msgid "Video"
-msgstr "²öÔÕÞ"
-
-#: backends/platform/wii/options.cpp:54
-msgid "Current video mode:"
-msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ:"
-
-#: backends/platform/wii/options.cpp:56
-msgid "Double-strike"
-msgstr "¿ÞÔÒöÙÝØÙ ãÔÐà"
-
-#: backends/platform/wii/options.cpp:60
-msgid "Horizontal underscan:"
-msgstr "³ÞàØ×ÞÝâÐÛìÝØÙ underscan:"
-
-#: backends/platform/wii/options.cpp:66
-msgid "Vertical underscan:"
-msgstr "²ÕàâØÚÐÛìÝØÙ underscan:"
-
-#: backends/platform/wii/options.cpp:71
-msgid "Input"
-msgstr "²ÒöÔ"
-
-#: backends/platform/wii/options.cpp:74
-msgid "GC Pad sensitivity:"
-msgstr "ÇãâÛØÒöáâì GC ßÐÔã:"
-
-#: backends/platform/wii/options.cpp:80
-msgid "GC Pad acceleration:"
-msgstr "¿àØáÚÞàÕÝÝï GC ßÐÔã:"
-
-#: backends/platform/wii/options.cpp:86
-msgid "DVD"
-msgstr "DVD"
-
-#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
-msgid "Status:"
-msgstr "ÁâÐÝ:"
-
-#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
-msgid "Unknown"
-msgstr "½ÕÒöÔÞÜÞ"
-
-#: backends/platform/wii/options.cpp:93
-msgid "Mount DVD"
-msgstr "¿öÔÚÛîçØâØ DVD"
-
-#: backends/platform/wii/options.cpp:94
-msgid "Unmount DVD"
-msgstr "²öÔÚÛîçØâØ DVD"
-
-#: backends/platform/wii/options.cpp:98
-msgid "SMB"
-msgstr "SMB"
-
-#: backends/platform/wii/options.cpp:106
-msgid "Server:"
-msgstr "ÁÕàÒÕà:"
-
-#: backends/platform/wii/options.cpp:110
-msgid "Share:"
-msgstr "¼ÕàÕÖÕÒÐ ßÐßÚÐ:"
-
-#: backends/platform/wii/options.cpp:114
-msgid "Username:"
-msgstr "ºÞàØáâãÒÐç:"
-
-#: backends/platform/wii/options.cpp:118
-msgid "Password:"
-msgstr "¿ÐàÞÛì:"
-
-#: backends/platform/wii/options.cpp:121
-msgid "Init network"
-msgstr "¦ÝöæöÐÛö×Ðæöï ÜÕàÕÖö"
-
-#: backends/platform/wii/options.cpp:123
-msgid "Mount SMB"
-msgstr "¿öÔÚÛîçØâØ SMB"
-
-#: backends/platform/wii/options.cpp:124
-msgid "Unmount SMB"
-msgstr "²öÔÚÛîçâØ SMB"
-
-#: backends/platform/wii/options.cpp:143
-msgid "DVD Mounted successfully"
-msgstr "DVD ßöÔÚÛîçÕÝÞ ãáßöèÝÞ"
-
-#: backends/platform/wii/options.cpp:146
-msgid "Error while mounting the DVD"
-msgstr "¿ÞÜØÛÚÐ ßöÔ çÐá ßöÔÚÛîçÕÝÝï DVD"
-
-#: backends/platform/wii/options.cpp:148
-msgid "DVD not mounted"
-msgstr "DVD ÝÕ ßöÔÚÛîçÕÝÞ"
-
-#: backends/platform/wii/options.cpp:161
-msgid "Network up, share mounted"
-msgstr "¼ÕàÕÖÐ ßàÐæîô, ßÐßÚã ßöÔÚÛîçÕÝÞ"
-
-#: backends/platform/wii/options.cpp:163
-msgid "Network up"
-msgstr "¼ÕàÕÖÐ ßàÐæîô"
-
-#: backends/platform/wii/options.cpp:166
-msgid ", error while mounting the share"
-msgstr ", ßÞÜØÛÚÐ ßöÔ çÐá ßöÔÚÛîçÕÝÝï ßÐßÚØ"
-
-#: backends/platform/wii/options.cpp:168
-msgid ", share not mounted"
-msgstr ", ßÐßÚã ÝÕ ßöÔÚÛîçÕÝÞ"
-
-#: backends/platform/wii/options.cpp:174
-msgid "Network down"
-msgstr "¼ÕàÕÖã ÒØÜÚÝÕÝÞ"
-
-#: backends/platform/wii/options.cpp:178
-#, fuzzy
-msgid "Initializing network"
-msgstr "½ÐÛÐèâÞÒãî ÜÕàÕÖã"
-
-#: backends/platform/wii/options.cpp:182
-#, fuzzy
-msgid "Timeout while initializing network"
-msgstr "ÇÐá ßöÔÚÛîçÕÝÝï ÔÞ ÜÕàÕÖö ÒØÙèÞÒ"
-
-#: backends/platform/wii/options.cpp:186
-#, fuzzy, c-format
-msgid "Network not initialized (%d)"
-msgstr "¼ÕàÕÖã ÝÕ ÝÐÛÐÓÞÔÖÕÝÞ (%d)"
-
-#: backends/platform/wince/CEActionsPocket.cpp:46
-msgid "Hide Toolbar"
-msgstr "·ÐåÞÒÐâØ ßÐÝÕÛì öÝáâàãÜÕÝâöÒ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:47
-msgid "Show Keyboard"
-msgstr "¿ÞÚÐ×ÐâØ ÚÛÐÒöÐâãàã"
-
-#: backends/platform/wince/CEActionsPocket.cpp:48
-msgid "Sound on/off"
-msgstr "·ÒãÚ ãÒöÜ/ÒØÜÚ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:49
-msgid "Right click"
-msgstr "¿àÐÒØÙ ÚÛöÚ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:50
-msgid "Show/Hide Cursor"
-msgstr "¿ÞÚÐ×ÐâØ/áåÞÒÐâØ ÚãàáÞà"
-
-#: backends/platform/wince/CEActionsPocket.cpp:51
-msgid "Free look"
-msgstr "²öÛìÝØÙ ÞÓÛïÔ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:52
-msgid "Zoom up"
-msgstr "·ÑöÛ. ÜÐèâÐÑ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:53
-msgid "Zoom down"
-msgstr "·ÜÝè. ÜÐèâÐÑ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:55
-#: backends/platform/wince/CEActionsSmartphone.cpp:49
-msgid "Bind Keys"
-msgstr "¿àØ×ÝÐçØâØ ÚÛÐÒöèö"
-
-#: backends/platform/wince/CEActionsPocket.cpp:56
-msgid "Cursor Up"
-msgstr "ºãàáÞà ÔÞÓÞàØ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:57
-msgid "Cursor Down"
-msgstr "ºãàáÞà ÔÞÝØ×ã"
-
-#: backends/platform/wince/CEActionsPocket.cpp:58
-msgid "Cursor Left"
-msgstr "ºãàáÞà ÝÐÛöÒÞ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:59
-msgid "Cursor Right"
-msgstr "ºãàáÞà ÝÐßàÐÒÞ"
-
-#: backends/platform/wince/CEActionsPocket.cpp:264
-#: backends/platform/wince/CEActionsSmartphone.cpp:228
-msgid "Do you want to load or save the game?"
-msgstr "²Ø åÞçÕâÕ ×ÐÒÐÝâÐÖØâØ ÐÑÞ ×ÑÕàÕÓâØ Óàã?"
-
-#: backends/platform/wince/CEActionsPocket.cpp:314
-#: backends/platform/wince/CEActionsSmartphone.cpp:275
-msgid " Are you sure you want to quit ? "
-msgstr " ²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ ÒØÙâØ? "
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:50
-msgid "Keyboard"
-msgstr "ºÛÐÒöÐâãàÐ"
-
-#: backends/platform/wince/CEActionsSmartphone.cpp:51
-msgid "Rotate"
-msgstr "¿ÞÒÕàÝãâØ"
-
-#: backends/platform/wince/CELauncherDialog.cpp:54
-msgid "Using SDL driver "
-msgstr "²ØÚÞàØáâÞÒãî ÔàÐÙÒÕà SDL "
-
-#: backends/platform/wince/CELauncherDialog.cpp:58
-msgid "Display "
-msgstr "¿ÞÚÐ×ÐâØ "
-
-#: backends/platform/wince/CELauncherDialog.cpp:77
-msgid "Do you want to perform an automatic scan ?"
-msgstr "²Ø åÞçÕâÕ ×ÔöÙáÝØâØ ÐÒâÞÜÐâØçÝØÙ ßÞèãÚ?"
-
-#: backends/platform/wince/wince-sdl.cpp:487
-msgid "Map right click action"
-msgstr "¿ÕàÕßàØ×ÝÐçÕÝÝï ßàÐÒÞÓÞ ÚÛöÚã"
-
-#: backends/platform/wince/wince-sdl.cpp:491
-msgid "You must map a key to the 'Right Click' action to play this game"
-msgstr "²Ø ßÞÒØÝÝö ßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÞ Ôö÷ '¿àÐÒØÙ ÚÛöÚ', éÞÑ ÓàÐâØ ã æî Óàã"
-
-#: backends/platform/wince/wince-sdl.cpp:500
-msgid "Map hide toolbar action"
-msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.'"
-
-#: backends/platform/wince/wince-sdl.cpp:504
-msgid "You must map a key to the 'Hide toolbar' action to play this game"
-msgstr ""
-"²Ø ßÞÒØÝÝö ßÕàÕßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÛï Ôö÷ 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.', éÞÑ ÓàÐâØ "
-"Ò æî Óàã"
-
-#: backends/platform/wince/wince-sdl.cpp:513
-msgid "Map Zoom Up action (optional)"
-msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî ·ÑöÛìèÕÝÝï (ÝÕÞÑÞÒï×ÚÞÒÞ)"
-
-#: backends/platform/wince/wince-sdl.cpp:516
-msgid "Map Zoom Down action (optional)"
-msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî ·ÜÕÝèÕÝÝï (ÝÕÞÑÞÒï×ÚÞÒÞ)"
-
-#: backends/platform/wince/wince-sdl.cpp:524
-msgid ""
-"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
-msgstr ""
-"½Õ ×ÐÑãÔìâÕ ßÕàÕßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÛï Ôö÷ 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.' éÞÑ "
-"ßÞÑÐçØâØ ÒÕáì öÝÒÕÝâÐà"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Do you really want to return to the Launcher?"
-msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ æÕ ×ÑÕàÕÖÕÝÝï?"
-
-#: backends/events/default/default-events.cpp:222
-#, fuzzy
-msgid "Launcher"
-msgstr "²ÔÐàØâØ ÚãÛÐÚÞÜ"
-
-#: backends/events/default/default-events.cpp:244
-#, fuzzy
-msgid "Do you really want to quit?"
-msgstr "²Ø åÞçÕâÕ ÒØÙâØ?"
-
-#: backends/events/gph/gph-events.cpp:366
-#: backends/events/gph/gph-events.cpp:409
-#: backends/events/openpandora/op-events.cpp:141
-msgid "Touchscreen 'Tap Mode' - Left Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:368
-#: backends/events/gph/gph-events.cpp:411
-#: backends/events/openpandora/op-events.cpp:143
-msgid "Touchscreen 'Tap Mode' - Right Click"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:370
-#: backends/events/gph/gph-events.cpp:413
-#: backends/events/openpandora/op-events.cpp:145
-msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:390
-#, fuzzy
-msgid "Maximum Volume"
-msgstr "³ãçÝöáâì"
-
-#: backends/events/gph/gph-events.cpp:392
-msgid "Increasing Volume"
-msgstr ""
-
-#: backends/events/gph/gph-events.cpp:398
-#, fuzzy
-msgid "Minimal Volume"
-msgstr "³ãçÝöáâì"
-
-#: backends/events/gph/gph-events.cpp:400
-msgid "Decreasing Volume"
-msgstr ""
-
-#~ msgid "Discovered %d new games."
-#~ msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà."
-
-#~ msgid "Command line argument not processed"
-#~ msgstr "°àÓãÜÕÝâØ ÚÞÜÐÝÔÝÞÓÞ àïÔÚã ÝÕ ÞÑàÞÑÛÕÝö"
-
-#~ msgid "FM Towns Emulator"
-#~ msgstr "µÜãÛïâÞà FM Towns"
-
-#~ msgid "Invalid Path"
-#~ msgstr "½ÕßàÐÒØÛìÝØÙ èÛïå"
+# Ukrainian translation for ScummVM.
+# Copyright (C) 2010-2011 ScummVM Team
+# This file is distributed under the same license as the ScummVM package.
+# Lubomyr Lisen, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ScummVM 1.3.0svn\n"
+"Report-Msgid-Bugs-To: scummvm-devel@lists.sf.net\n"
+"POT-Creation-Date: 2011-08-20 15:12+0100\n"
+"PO-Revision-Date: 2011-08-20 13:30+0200\n"
+"Last-Translator: Eugene Sandulenko\n"
+"Language-Team: Ukrainian\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-5\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Language: Ukrainian\n"
+"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%"
+"10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
+
+#: gui/about.cpp:91
+#, c-format
+msgid "(built on %s)"
+msgstr "(×öÑàÐÝØÙ %s)"
+
+#: gui/about.cpp:98
+msgid "Features compiled in:"
+msgstr "²ÚÛîçÕÝö Ò ÑöÛÔ Þßæö÷:"
+
+#: gui/about.cpp:107
+msgid "Available engines:"
+msgstr "´ÞáâãßÝö ÔÒØÖÚØ:"
+
+#: gui/browser.cpp:66
+msgid "Go up"
+msgstr "²ÓÞàã"
+
+#: gui/browser.cpp:66 gui/browser.cpp:68
+msgid "Go to previous directory level"
+msgstr "¿ÕàÕÙâØ ÝÐ ßÐßÚã àöÒÝÕÜ ÒØéÕ"
+
+#: gui/browser.cpp:68
+msgctxt "lowres"
+msgid "Go up"
+msgstr "²ÓÞàã"
+
+#: gui/browser.cpp:69 gui/chooser.cpp:45 gui/KeysDialog.cpp:43
+#: gui/launcher.cpp:312 gui/massadd.cpp:94 gui/options.cpp:1178
+#: gui/saveload.cpp:63 gui/saveload.cpp:155 gui/themebrowser.cpp:54
+#: engines/engine.cpp:436 engines/scumm/dialogs.cpp:190
+#: engines/sword1/control.cpp:865 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:48
+#: backends/events/default/default-events.cpp:222
+#: backends/events/default/default-events.cpp:244
+msgid "Cancel"
+msgstr "²öÔÜöÝÐ"
+
+#: gui/browser.cpp:70 gui/chooser.cpp:46 gui/themebrowser.cpp:55
+msgid "Choose"
+msgstr "²ØÑàÐâØ"
+
+#: gui/gui-manager.cpp:116 engines/scumm/help.cpp:125
+#: engines/scumm/help.cpp:140 engines/scumm/help.cpp:165
+#: engines/scumm/help.cpp:191 engines/scumm/help.cpp:209
+#: backends/keymapper/remap-dialog.cpp:52
+msgid "Close"
+msgstr "·ÐÚàØâØ"
+
+#: gui/gui-manager.cpp:119
+msgid "Mouse click"
+msgstr "ºÛöÚ ÜØèÚÞî"
+
+#: gui/gui-manager.cpp:122 base/main.cpp:286
+msgid "Display keyboard"
+msgstr "¿ÞÚÐ×ÐâØ ÚÛÐÒöÐâãàã"
+
+#: gui/gui-manager.cpp:125 base/main.cpp:289
+msgid "Remap keys"
+msgstr "¿ÕàÕßàØ×ÝÐçØâØ ÚÛÐÒöèö"
+
+#: gui/KeysDialog.h:36 gui/KeysDialog.cpp:145
+msgid "Choose an action to map"
+msgstr "²ØÑÕàöâì Ôöî ÔÛï ßàØ×ÝÐçÕÝÝï"
+
+#: gui/KeysDialog.cpp:41
+msgid "Map"
+msgstr "¿àØ×ÝÐçØâØ"
+
+#: gui/KeysDialog.cpp:42 gui/launcher.cpp:313 gui/launcher.cpp:936
+#: gui/launcher.cpp:940 gui/massadd.cpp:91 gui/options.cpp:1179
+#: engines/engine.cpp:359 engines/engine.cpp:370 engines/scumm/dialogs.cpp:192
+#: engines/scumm/scumm.cpp:1770 engines/agos/animation.cpp:545
+#: engines/groovie/script.cpp:420 engines/sky/compact.cpp:131
+#: engines/sky/compact.cpp:141 engines/sword1/animation.cpp:344
+#: engines/sword1/animation.cpp:354 engines/sword1/animation.cpp:360
+#: engines/sword1/control.cpp:865 engines/sword1/logic.cpp:1633
+#: engines/sword2/animation.cpp:379 engines/sword2/animation.cpp:389
+#: engines/sword2/animation.cpp:398 engines/parallaction/saveload.cpp:281
+#: backends/platform/wii/options.cpp:47
+#: backends/platform/wince/CELauncherDialog.cpp:54
+msgid "OK"
+msgstr "OK"
+
+#: gui/KeysDialog.cpp:49
+msgid "Select an action and click 'Map'"
+msgstr "²ØÑÕàöâì Ôöî ö ÚÛöÚÝöâì '¿àØ×ÝÐçØâØ'"
+
+#: gui/KeysDialog.cpp:80 gui/KeysDialog.cpp:102 gui/KeysDialog.cpp:141
+#, c-format
+msgid "Associated key : %s"
+msgstr "¿àØ×ÝÐçÕÝÐ ÚÛÐÒöèÐ : %s"
+
+#: gui/KeysDialog.cpp:82 gui/KeysDialog.cpp:104 gui/KeysDialog.cpp:143
+#, c-format
+msgid "Associated key : none"
+msgstr "¿àØ×ÝÐçÕÝÐ ÚÛÐÒöèÐ : ÝÕÜÐô"
+
+#: gui/KeysDialog.cpp:90
+msgid "Please select an action"
+msgstr "±ãÔì ÛÐáÚÐ, ÒØÑÕàöâì Ôöî"
+
+#: gui/KeysDialog.cpp:106
+msgid "Press the key to associate"
+msgstr "½ÐâØáÝöâì ÚÛÐÒöèã ÔÛï ßàØ×ÝÐçÕÝÝï"
+
+#: gui/launcher.cpp:165
+msgid "Game"
+msgstr "³àÐ"
+
+#: gui/launcher.cpp:169
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:169 gui/launcher.cpp:171 gui/launcher.cpp:172
+msgid ""
+"Short game identifier used for referring to savegames and running the game "
+"from the command line"
+msgstr ""
+"ºÞàÞâÚØÙ öÔÕÝâØäöÚÐâÞà, ïÚØÙ ÒØÚÞàØáâÞÒãôâìáï ÔÛï ÝÐ×Ò ×ÑÕàÕÖÕÝØå öÓÞà ö ÔÛï "
+"×ÐßãáÚã × ÚÞÜÐÝÔÝÞ÷ áâàöçÚØ"
+
+#: gui/launcher.cpp:171
+msgctxt "lowres"
+msgid "ID:"
+msgstr "ID:"
+
+#: gui/launcher.cpp:176
+msgid "Name:"
+msgstr "½Ð×ÒÐ:"
+
+#: gui/launcher.cpp:176 gui/launcher.cpp:178 gui/launcher.cpp:179
+msgid "Full title of the game"
+msgstr "¿ÞÒÝÐ ÝÐ×ÒÐ ÓàØ"
+
+#: gui/launcher.cpp:178
+msgctxt "lowres"
+msgid "Name:"
+msgstr "½Ð×ÒÐ:"
+
+#: gui/launcher.cpp:182
+msgid "Language:"
+msgstr "¼ÞÒÐ:"
+
+#: gui/launcher.cpp:182 gui/launcher.cpp:183
+msgid ""
+"Language of the game. This will not turn your Spanish game version into "
+"English"
+msgstr ""
+"¼ÞÒÐ ÓàØ. ·ÜöÝÐ æìÞÓÞ ÝÐÛÐèâãÒÐÝÝï ÝÕ ßÕàÕâÒÞàØâì Óàã ÐÝÓÛöÙáìÚÞî ÝÐ "
+"ãÚàÐ÷ÝáìÚã"
+
+#: gui/launcher.cpp:184 gui/launcher.cpp:198 gui/options.cpp:74
+#: gui/options.cpp:708 gui/options.cpp:718 gui/options.cpp:1149
+#: audio/null.cpp:40
+msgid "<default>"
+msgstr "<×Ð ãÜÞÒçÐÝÝïÜ>"
+
+#: gui/launcher.cpp:194
+msgid "Platform:"
+msgstr "¿ÛÐâäÞàÜÐ:"
+
+#: gui/launcher.cpp:194 gui/launcher.cpp:196 gui/launcher.cpp:197
+msgid "Platform the game was originally designed for"
+msgstr "¿ÛÐâäÞàÜÐ, ÔÛï ïÚÞ÷ Óàã ÑãÛÞ àÞ×àÞÑÛÕÝÞ ßÞçÐâÚÞÒÞ"
+
+#: gui/launcher.cpp:196
+msgctxt "lowres"
+msgid "Platform:"
+msgstr "¿ÛÐâäÞàÜÐ:"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "Graphics"
+msgstr "³àÐäöÚÐ"
+
+#: gui/launcher.cpp:208 gui/options.cpp:1018 gui/options.cpp:1035
+msgid "GFX"
+msgstr "³àä"
+
+#: gui/launcher.cpp:211
+msgid "Override global graphic settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓàÐäöÚØ"
+
+#: gui/launcher.cpp:213
+msgctxt "lowres"
+msgid "Override global graphic settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓàÐäöÚØ"
+
+#: gui/launcher.cpp:220 gui/options.cpp:1041
+msgid "Audio"
+msgstr "°ãÔöÞ"
+
+#: gui/launcher.cpp:223
+msgid "Override global audio settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÐãÔöÞ"
+
+#: gui/launcher.cpp:225
+msgctxt "lowres"
+msgid "Override global audio settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÐãÔöÞ"
+
+#: gui/launcher.cpp:234 gui/options.cpp:1046
+msgid "Volume"
+msgstr "³ãçÝöáâì"
+
+#: gui/launcher.cpp:236 gui/options.cpp:1048
+msgctxt "lowres"
+msgid "Volume"
+msgstr "³ãçÝ."
+
+#: gui/launcher.cpp:239
+msgid "Override global volume settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓãçÝÞáâö"
+
+#: gui/launcher.cpp:241
+msgctxt "lowres"
+msgid "Override global volume settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ ÓãçÝÞáâö"
+
+#: gui/launcher.cpp:248 gui/options.cpp:1056
+msgid "MIDI"
+msgstr "MIDI"
+
+#: gui/launcher.cpp:251
+msgid "Override global MIDI settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MIDI"
+
+#: gui/launcher.cpp:253
+msgctxt "lowres"
+msgid "Override global MIDI settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MIDI"
+
+#: gui/launcher.cpp:263 gui/options.cpp:1062
+msgid "MT-32"
+msgstr "MT-32"
+
+#: gui/launcher.cpp:266
+msgid "Override global MT-32 settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MT-32"
+
+#: gui/launcher.cpp:268
+msgctxt "lowres"
+msgid "Override global MT-32 settings"
+msgstr "¿ÕàÕÚàØâØ ÓÛÞÑÐÛìÝö ãáâÐÝÞÒÚØ MT-32"
+
+#: gui/launcher.cpp:279 gui/options.cpp:1069
+msgid "Paths"
+msgstr "ÈÛïåØ"
+
+#: gui/launcher.cpp:281 gui/options.cpp:1071
+msgctxt "lowres"
+msgid "Paths"
+msgstr "ÈÛïåØ"
+
+#: gui/launcher.cpp:288
+msgid "Game Path:"
+msgstr "ÈÛïå ÔÞ ÓàØ:"
+
+#: gui/launcher.cpp:290
+msgctxt "lowres"
+msgid "Game Path:"
+msgstr "ÈÛïå ÔÞ ÓàØ:"
+
+#: gui/launcher.cpp:295 gui/options.cpp:1091
+msgid "Extra Path:"
+msgstr "´ÞÔÐâÚ. èÛïå:"
+
+#: gui/launcher.cpp:295 gui/launcher.cpp:297 gui/launcher.cpp:298
+msgid "Specifies path to additional data used the game"
+msgstr "²ÚÐ×ãô èÛïå ÔÞ ÔÞÔÐâÚÞÒØå äÐÙÛöÒ ÔÐÝØå ÔÛï ÓàØ"
+
+#: gui/launcher.cpp:297 gui/options.cpp:1093
+msgctxt "lowres"
+msgid "Extra Path:"
+msgstr "´ÞÔ. èÛïå:"
+
+#: gui/launcher.cpp:302 gui/options.cpp:1079
+msgid "Save Path:"
+msgstr "ÈÛïå ×ÑÕà.:"
+
+#: gui/launcher.cpp:302 gui/launcher.cpp:304 gui/launcher.cpp:305
+#: gui/options.cpp:1079 gui/options.cpp:1081 gui/options.cpp:1082
+msgid "Specifies where your savegames are put"
+msgstr "²ÚÐ×ãô èÛïå ÔÞ ×ÑÕàÕÖÕÝì ÓàØ"
+
+#: gui/launcher.cpp:304 gui/options.cpp:1081
+msgctxt "lowres"
+msgid "Save Path:"
+msgstr "ÈÛïå ×ÑÕà.:"
+
+#: gui/launcher.cpp:321 gui/launcher.cpp:404 gui/launcher.cpp:453
+#: gui/options.cpp:1088 gui/options.cpp:1094 gui/options.cpp:1101
+#: gui/options.cpp:1202 gui/options.cpp:1208 gui/options.cpp:1214
+#: gui/options.cpp:1222 gui/options.cpp:1246 gui/options.cpp:1250
+#: gui/options.cpp:1256 gui/options.cpp:1263 gui/options.cpp:1362
+msgctxt "path"
+msgid "None"
+msgstr "½Õ ×ÐÒÔÐÝØÙ"
+
+#: gui/launcher.cpp:326 gui/launcher.cpp:408
+#: backends/platform/wii/options.cpp:56
+msgid "Default"
+msgstr "·Ð ãÜÞÒçÐÝÝïÜ"
+
+#: gui/launcher.cpp:446 gui/options.cpp:1356
+msgid "Select SoundFont"
+msgstr "²ØÑÕàöâì SoundFont"
+
+#: gui/launcher.cpp:465 gui/launcher.cpp:612
+msgid "Select directory with game data"
+msgstr "²ØÑÕàöâì ßÐßÚã × äÐÙÛÐÜØ ÓàØ"
+
+#: gui/launcher.cpp:483
+msgid "Select additional game directory"
+msgstr "²ØÑÕàöâì ÔÞÔÐâÚÞÒã ßÐßÚã ÓàØ"
+
+#: gui/launcher.cpp:495
+msgid "Select directory for saved games"
+msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï ×ÑÕàÕÖÕÝì"
+
+#: gui/launcher.cpp:514
+msgid "This game ID is already taken. Please choose another one."
+msgstr "ÆÕÙ ID ÓàØ ÒÖÕ ÒØÚÞàØáâÞÒãôâìáï. ±ãÔì ÛÐáÚÐ, ÒØÑÕàöâì öÝèØÙ."
+
+#: gui/launcher.cpp:555 engines/dialogs.cpp:110
+msgid "~Q~uit"
+msgstr "~²~ØåöÔ"
+
+#: gui/launcher.cpp:555 backends/platform/sdl/macosx/appmenu_osx.mm:80
+msgid "Quit ScummVM"
+msgstr "²ØåöÔ ×ö ScummVM"
+
+#: gui/launcher.cpp:556
+msgid "A~b~out..."
+msgstr "¿àÞ ß~à~ÞÓàÐÜã..."
+
+#: gui/launcher.cpp:556 backends/platform/sdl/macosx/appmenu_osx.mm:61
+msgid "About ScummVM"
+msgstr "¿àÞ ScummVM"
+
+#: gui/launcher.cpp:557
+msgid "~O~ptions..."
+msgstr "~½~ÐÛÐèâãÒÐÝÝï"
+
+#: gui/launcher.cpp:557
+msgid "Change global ScummVM options"
+msgstr "·ÜöÝØâØ ÓÛÞÑÐÛìÝö ÝÐÛÐèâãÒÐÝÝï ScummVM"
+
+#: gui/launcher.cpp:559
+msgid "~S~tart"
+msgstr "·~Ð~ßãáÚ"
+
+#: gui/launcher.cpp:559
+msgid "Start selected game"
+msgstr "·ÐßãáâØâØ ÒØÑàÐÝã Óàã"
+
+#: gui/launcher.cpp:562
+msgid "~L~oad..."
+msgstr "~·~ÐÒÐÝâÐÖØâØ..."
+
+#: gui/launcher.cpp:562
+msgid "Load savegame for selected game"
+msgstr "·ÐÒÐÝâÐÖØâØ ×ÑÕàÕÖÕÝÝï ÔÛï ÒØÑàÐÝÞ÷ ÓàØ"
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:1055
+msgid "~A~dd Game..."
+msgstr "~´~ÞÔÐâØ Óàã..."
+
+#: gui/launcher.cpp:567 gui/launcher.cpp:574
+msgid "Hold Shift for Mass Add"
+msgstr "ÃâàØÜãÙâÕ ÚÛÐÒöèã Shift ÔÛï âÞÓÞ, éÞÑ ÔÞÔÐâØ ÔÕÚöÛìÚÐ öÓÞà"
+
+#: gui/launcher.cpp:569
+msgid "~E~dit Game..."
+msgstr "ÀÕÔÐ~Ó~ãÒÐâØ Óàã"
+
+#: gui/launcher.cpp:569 gui/launcher.cpp:576
+msgid "Change game options"
+msgstr "·ÜöÝØâØ ÝÐÛÐèâãÒÐÝÝï ÓàØ"
+
+#: gui/launcher.cpp:571
+msgid "~R~emove Game"
+msgstr "~²~ØÔÐÛØâØ Óàã"
+
+#: gui/launcher.cpp:571 gui/launcher.cpp:578
+msgid "Remove game from the list. The game data files stay intact"
+msgstr "²ØÔÐÛØâØ Óàã ×ö áßØáÚã. ½Õ ÒØÔÐÛïô Óàã × ÖÞàáâÚÞÓÞ ÔØáÚã"
+
+#: gui/launcher.cpp:574 gui/launcher.cpp:1055
+msgctxt "lowres"
+msgid "~A~dd Game..."
+msgstr "~´~ÞÔÐâØ Óàã..."
+
+#: gui/launcher.cpp:576
+msgctxt "lowres"
+msgid "~E~dit Game..."
+msgstr "ÀÕÔÐ~Ó~. Óàã..."
+
+#: gui/launcher.cpp:578
+msgctxt "lowres"
+msgid "~R~emove Game"
+msgstr "~²~ØÔÐÛØâØ Óàã"
+
+#: gui/launcher.cpp:586
+msgid "Search in game list"
+msgstr "¿ÞèãÚ ã áßØáÚã öÓÞà"
+
+#: gui/launcher.cpp:590 gui/launcher.cpp:1102
+msgid "Search:"
+msgstr "¿ÞèãÚ:"
+
+#: gui/launcher.cpp:593 gui/options.cpp:826
+msgid "Clear value"
+msgstr "¾çØáâØâØ ×ÝÐçÕÝÝï"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/mohawk/myst.cpp:255
+#: engines/mohawk/riven.cpp:716 engines/cruise/menu.cpp:216
+msgid "Load game:"
+msgstr "·ÐÒÐÝâÐÖØâØ Óàã:"
+
+#: gui/launcher.cpp:615 engines/dialogs.cpp:114 engines/scumm/dialogs.cpp:188
+#: engines/mohawk/myst.cpp:255 engines/mohawk/riven.cpp:716
+#: engines/cruise/menu.cpp:216 backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Load"
+msgstr "·ÐÒÐÝâÐÖØâØ"
+
+#: gui/launcher.cpp:723
+msgid ""
+"Do you really want to run the mass game detector? This could potentially add "
+"a huge number of games."
+msgstr ""
+"ÇØ ÒØ ÔöÙáÝÞ åÞçÕâÕ ×ÐßãáâØâØ ßÞèãÚ ãáöå öÓÞà? ÆÕ ßÞâÕÝæöÙÝÞ ÜÞÖÕ ÔÞÔÐâØ "
+"ÒÕÛØÚã ÚöÛìÚöáâì öÓÞà."
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Yes"
+msgstr "ÂÐÚ"
+
+#: gui/launcher.cpp:724 gui/launcher.cpp:872
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "No"
+msgstr "½ö"
+
+#: gui/launcher.cpp:772
+msgid "ScummVM couldn't open the specified directory!"
+msgstr "ScummVM ÝÕ ÜÞÖÕ ÒöÔÚàØâØ ÒÚÐ×ÐÝã ßÐßÚã!"
+
+#: gui/launcher.cpp:784
+msgid "ScummVM could not find any game in the specified directory!"
+msgstr "ScummVM ÝÕ ÜÞÖÕ ×ÝÐÙâØ Óàã ã ÒÚÐ×ÐÝöÙ ßÐßæö!"
+
+#: gui/launcher.cpp:798
+msgid "Pick the game:"
+msgstr "²ØÑÕàöâì Óàã:"
+
+#: gui/launcher.cpp:872
+msgid "Do you really want to remove this game configuration?"
+msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ ãáâÐÝÞÒÚØ ÔÛï æöô÷ ÓàØ?"
+
+#: gui/launcher.cpp:936
+msgid "This game does not support loading games from the launcher."
+msgstr "Æï ÓàÐ ÝÕ ßöÔâàØÜãô ×ÐÒÐÝâÐÖÕÝÝï ×ÑÕàÕÖÕÝì çÕàÕ× ÓÞÛÞÒÝÕ ÜÕÝî."
+
+#: gui/launcher.cpp:940
+msgid "ScummVM could not find any engine capable of running the selected game!"
+msgstr "ScummVM ÝÕ ×ÜöÓ ×ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚã ÒØÑàÐÝÞ÷ ÓàØ!"
+
+#: gui/launcher.cpp:1054
+msgctxt "lowres"
+msgid "Mass Add..."
+msgstr "´ÞÔ. ÑÐÓÐâÞ..."
+
+#: gui/launcher.cpp:1054
+msgid "Mass Add..."
+msgstr "´ÞÔ. ÑÐÓÐâÞ..."
+
+#: gui/massadd.cpp:78 gui/massadd.cpp:81
+msgid "... progress ..."
+msgstr "... ßÞèãÚ ..."
+
+#: gui/massadd.cpp:258
+msgid "Scan complete!"
+msgstr "¿ÞèãÚ ×ÐÚöÝçÕÝÞ!"
+
+#: gui/massadd.cpp:261
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games."
+msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà, ßàÞßãéÕÝÞ %d ßÞßÕàÕÔÝìÞ ÔÞÔÐÝØå öÓÞà."
+
+#: gui/massadd.cpp:265
+#, c-format
+msgid "Scanned %d directories ..."
+msgstr "¿àÞÓÛïÝãâÞ %d ßÐßÞÚ ..."
+
+#: gui/massadd.cpp:268
+#, c-format
+msgid "Discovered %d new games, ignored %d previously added games ..."
+msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà, ßàÞßãéÕÝÞ %d ßÞßÕàÕÔÝìÞ ÔÞÔÐÝØå öÓÞà ..."
+
+#: gui/options.cpp:72
+msgid "Never"
+msgstr "½öÚÞÛØ"
+
+#: gui/options.cpp:72
+msgid "every 5 mins"
+msgstr "ÚÞÖÝö 5 åÒ"
+
+#: gui/options.cpp:72
+msgid "every 10 mins"
+msgstr "ÚÞÖÝö 10 åÒ"
+
+#: gui/options.cpp:72
+msgid "every 15 mins"
+msgstr "ÚÞÖÝö 15 åÒ"
+
+#: gui/options.cpp:72
+msgid "every 30 mins"
+msgstr "ÚÞÖÝö 30 åÒ"
+
+#: gui/options.cpp:74
+msgid "8 kHz"
+msgstr "8 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "11kHz"
+msgstr "11 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "22 kHz"
+msgstr "22 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "44 kHz"
+msgstr "44 Ú³æ"
+
+#: gui/options.cpp:74
+msgid "48 kHz"
+msgstr "48 Ú³æ"
+
+#: gui/options.cpp:236 gui/options.cpp:464 gui/options.cpp:559
+#: gui/options.cpp:625 gui/options.cpp:825
+msgctxt "soundfont"
+msgid "None"
+msgstr "½Õ ×ÐÔÐÝØÙ"
+
+#: gui/options.cpp:372
+msgid "Failed to apply some of the graphic options changes:"
+msgstr "½Õ ÒÔÐÛÞáï ×ÐáâÞáãÒÐâØ ÔÕïÚö ×ö ×ÜöÝ ÓàÐäöçÝØå ÝÐÛÐèâãÒÐÝì:"
+
+#: gui/options.cpp:384
+msgid "the video mode could not be changed."
+msgstr "ÝÕ ÒÔÐÛÞáï ×ÜöÝØâØ ÓàÐäöçÝØÙ àÕÖØÜ."
+
+#: gui/options.cpp:390
+msgid "the fullscreen setting could not be changed"
+msgstr "ÝÕ ÒÔÐÛÞáï ×ÜöÝØâØ àÕÖØÜ ßÞÒÝÞÓÞ ÕÚàÐÝã"
+
+#: gui/options.cpp:396
+msgid "the aspect ratio setting could not be changed"
+msgstr "ÝÕ ÒÔÐÛÞáï ×ÜöÝØâØ àÕÖØÜ ÚÞàÕÚæö÷ áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
+
+#: gui/options.cpp:705
+msgid "Graphics mode:"
+msgstr "³àÐäöçÝ. àÕÖØÜ:"
+
+#: gui/options.cpp:716
+msgid "Render mode:"
+msgstr "ÀÕÖØÜ àÐáâàãÒ.:"
+
+#: gui/options.cpp:716 gui/options.cpp:717
+msgid "Special dithering modes supported by some games"
+msgstr "ÁßÕæöÐÛìÝö àÕÖØÜØ àÐáâàãÒÐÝÝï, ïÚö ßöÔâàØÜãîâì ÔÕïÚö öÓàØ"
+
+#: gui/options.cpp:726
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2247
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:472
+msgid "Fullscreen mode"
+msgstr "¿ÞÒÝÞÕÚàÐÝÝØÙ àÕÖØÜ"
+
+#: gui/options.cpp:729
+msgid "Aspect ratio correction"
+msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
+
+#: gui/options.cpp:729
+msgid "Correct aspect ratio for 320x200 games"
+msgstr "ºÞàØÓãÒÐâØ áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ ÔÛï öÓÞà × ÓàÐäöÚÞî 320x200"
+
+#: gui/options.cpp:730
+msgid "EGA undithering"
+msgstr "EGA ÑÕ× àÐáâàãÒÐÝÝï"
+
+#: gui/options.cpp:730
+msgid "Enable undithering in EGA games that support it"
+msgstr "²öÜÚÝãâØ àÐáâàãÒÐÝÝï Ò EGA öÓàÐå ïÚö æÕ ßöÔâàØÜãîâì"
+
+#: gui/options.cpp:738
+msgid "Preferred Device:"
+msgstr "ÃßÞÔÞÑÐÝØÙ ßàØáâàöÙ:"
+
+#: gui/options.cpp:738
+msgid "Music Device:"
+msgstr "¼ã×Øç. ßàØáâàöÙ:"
+
+#: gui/options.cpp:738 gui/options.cpp:740
+msgid "Specifies preferred sound device or sound card emulator"
+msgstr "²ÚÐ×ãô ãßÞÔÞÑÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÐÑÞ ÕÜãÛïâÞà ×ÒãÚÞÒÞ÷ ÚÐàâØ"
+
+#: gui/options.cpp:738 gui/options.cpp:740 gui/options.cpp:741
+msgid "Specifies output sound device or sound card emulator"
+msgstr "²ÚÐ×ãô ÒØåöÔÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÐÑÞ ÕÜãÛïâÞà ×ÒãÚÞÒÞ÷ ÚÐàâØ"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Preferred Dev.:"
+msgstr "ÃßÞÔÞÑ. ßàØáâàöÙ:"
+
+#: gui/options.cpp:740
+msgctxt "lowres"
+msgid "Music Device:"
+msgstr "¼ã×ØçÝØÙ ßàØáâàöÙ:"
+
+#: gui/options.cpp:766
+msgid "AdLib emulator:"
+msgstr "µÜãÛïâÞà AdLib:"
+
+#: gui/options.cpp:766 gui/options.cpp:767
+msgid "AdLib is used for music in many games"
+msgstr "·ÒãÚÞÒÐ ÚÐàâÐ AdLib ÒØÚÞàØáâÞÒãôâìáï ÑÐÓÐâìÜÐ öÓàÐÜØ"
+
+#: gui/options.cpp:777
+msgid "Output rate:"
+msgstr "²ØåöÔÝÐ çÐáâÞâÐ:"
+
+#: gui/options.cpp:777 gui/options.cpp:778
+msgid ""
+"Higher value specifies better sound quality but may be not supported by your "
+"soundcard"
+msgstr ""
+"²ÕÛØÚö ×ÝÐçÕÝÝï ×ÐÔÐîâì ÚàÐéã ïÚöáâì ×ÒãÚã, ßàÞâÕ ÒÞÝØ ÜÞÖãâì ÝÕ "
+"ßöÔâàØÜãÒÐâØáï ÒÐèÞî ×ÒãÚÞÒÞî ÚÐàâÞî"
+
+#: gui/options.cpp:788
+msgid "GM Device:"
+msgstr "¿àØáâàöÙ GM:"
+
+#: gui/options.cpp:788
+msgid "Specifies default sound device for General MIDI output"
+msgstr "²ÚÐ×ãô ÒØåöÔÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ÔÛï General MIDI"
+
+#: gui/options.cpp:799
+msgid "Don't use General MIDI music"
+msgstr "½Õ ÒØÚÞàØáâÞÒãÒÐâØ Üã×ØÚã General MIDI"
+
+#: gui/options.cpp:810 gui/options.cpp:871
+msgid "Use first available device"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ ßÕàèØÙ ÝÐïÒÝØÙ ßàØáâàöÙ"
+
+#: gui/options.cpp:822
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:822 gui/options.cpp:824 gui/options.cpp:825
+msgid "SoundFont is supported by some audio cards, Fluidsynth and Timidity"
+msgstr ""
+"SoundFont ßöÔâàØÜãôâìáï ÔÕïÚØÜØ ×ÒãÚÞÒØÜØ ÚÐàâÐÜØ, Fluidsynth âÐ Timidity"
+
+#: gui/options.cpp:824
+msgctxt "lowres"
+msgid "SoundFont:"
+msgstr "SoundFont:"
+
+#: gui/options.cpp:829
+msgid "Mixed AdLib/MIDI mode"
+msgstr "·ÜöèÐÝØÙ àÕÖØÜ AdLib/MIDI"
+
+#: gui/options.cpp:829
+msgid "Use both MIDI and AdLib sound generation"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ ö MIDI ö AdLib ÔÛï ÓÕÝÕàÐæö÷ ×ÒãÚã"
+
+#: gui/options.cpp:832
+msgid "MIDI gain:"
+msgstr "¿ÞáØÛÕÝÝï MIDI:"
+
+#: gui/options.cpp:842
+msgid "MT-32 Device:"
+msgstr "¿àØáâàöÙ MT-32:"
+
+#: gui/options.cpp:842
+msgid "Specifies default sound device for Roland MT-32/LAPC1/CM32l/CM64 output"
+msgstr ""
+"²ÚÐ×ãô ×ÒãÚÞÒØÙ ßàØáâàöÙ ×Ð ãÜÞÒçÐÝÝïÜ ÔÛï ÒØÒÞÔã ÝÐ Roland MT-32/LAPC1/"
+"CM32l/CM64"
+
+#: gui/options.cpp:847
+msgid "True Roland MT-32 (disable GM emulation)"
+msgstr "ÁßàÐÒÖÝöÙ Roland MT-32 (ÒØÜÚÝãâØ ÕÜãÛïæØî GM)"
+
+#: gui/options.cpp:847 gui/options.cpp:849
+msgid ""
+"Check if you want to use your real hardware Roland-compatible sound device "
+"connected to your computer"
+msgstr ""
+"²öÔÜöâìâÕ, ïÚéÞ ã ÒÐá ßöÔÚÛîçÕÝÞ Roland-áãÜöáÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ ö ÒØ "
+"åÞçÕâÕ ÙÞÓÞ ÒØÚÞàØáâÞÒãÒÐâØ"
+
+#: gui/options.cpp:849
+msgctxt "lowres"
+msgid "True Roland MT-32 (no GM emulation)"
+msgstr "ÁßàÐÒÖÝöÙ Roland MT-32 (ÒØÜÚÝãâØ ÕÜãÛïæØî GM)"
+
+#: gui/options.cpp:852
+msgid "Enable Roland GS Mode"
+msgstr "ÃÒöÜÚÝãâØ àÕÖØÜ Roland GS"
+
+#: gui/options.cpp:852
+msgid "Turns off General MIDI mapping for games with Roland MT-32 soundtrack"
+msgstr ""
+"²ØÜØÚÐô ÜÐßöÝÓ General MIDI ÔÛï öÓÞà ×ö ×ÒãÚÞÒÞî ÔÞàöÖÚÞî ÔÛï Roland MT-32"
+
+#: gui/options.cpp:861
+msgid "Don't use Roland MT-32 music"
+msgstr "½Õ ÒØÚÞàØáâÞÒãÒÐâØ Roland MT-32"
+
+#: gui/options.cpp:888
+msgid "Text and Speech:"
+msgstr "ÂÕÚáâ ö Þ×ÒãçÚÐ:"
+
+#: gui/options.cpp:892 gui/options.cpp:902
+msgid "Speech"
+msgstr "¾×ÒãçÚÐ"
+
+#: gui/options.cpp:893 gui/options.cpp:903
+msgid "Subtitles"
+msgstr "ÁãÑâØâàØ"
+
+#: gui/options.cpp:894
+msgid "Both"
+msgstr "²áÕ"
+
+#: gui/options.cpp:896
+msgid "Subtitle speed:"
+msgstr "ÈÒØÔ. áãÑâØâàöÒ:"
+
+#: gui/options.cpp:898
+msgctxt "lowres"
+msgid "Text and Speech:"
+msgstr "ÂÕÚáâ ö Þ×ÒãçÚÐ:"
+
+#: gui/options.cpp:902
+msgid "Spch"
+msgstr "¾×Ò"
+
+#: gui/options.cpp:903
+msgid "Subs"
+msgstr "狄"
+
+#: gui/options.cpp:904
+msgctxt "lowres"
+msgid "Both"
+msgstr "²áÕ"
+
+#: gui/options.cpp:904
+msgid "Show subtitles and play speech"
+msgstr "¿ÞÚÐ×ãÒÐâØ áãÑâØâàØ ö ÒöÔâÒÞàîÒÐâØ ÜÞÒã"
+
+#: gui/options.cpp:906
+msgctxt "lowres"
+msgid "Subtitle speed:"
+msgstr "ÈÒØÔ. áãÑâØâàöÒ:"
+
+#: gui/options.cpp:922
+msgid "Music volume:"
+msgstr "³ãçÝöáâì Üã×ØÚØ:"
+
+#: gui/options.cpp:924
+msgctxt "lowres"
+msgid "Music volume:"
+msgstr "³ãçÝöáâì Üã×ØÚØ:"
+
+#: gui/options.cpp:931
+msgid "Mute All"
+msgstr "²ØÜÚÝãâØ ÒáÕ"
+
+#: gui/options.cpp:934
+msgid "SFX volume:"
+msgstr "³ãçÝöáâì ÕäÕÚâöÒ:"
+
+#: gui/options.cpp:934 gui/options.cpp:936 gui/options.cpp:937
+msgid "Special sound effects volume"
+msgstr "³ãçÝöáâì áßÕæöÐÛìÝØå ×ÒãÚÞÒØå ÕäÕÚâöÒ"
+
+#: gui/options.cpp:936
+msgctxt "lowres"
+msgid "SFX volume:"
+msgstr "³ãçÝ. ÕäÕÚâöÒ:"
+
+#: gui/options.cpp:944
+msgid "Speech volume:"
+msgstr "³ãçÝöáâì Þ×ÒãçÚØ:"
+
+#: gui/options.cpp:946
+msgctxt "lowres"
+msgid "Speech volume:"
+msgstr "³ãçÝ. Þ×ÒãçÚØ:"
+
+#: gui/options.cpp:1085
+msgid "Theme Path:"
+msgstr "ÈÛïå ÔÞ âÕÜ:"
+
+#: gui/options.cpp:1087
+msgctxt "lowres"
+msgid "Theme Path:"
+msgstr "ÈÛïå ÔÞ âÕÜ:"
+
+#: gui/options.cpp:1091 gui/options.cpp:1093 gui/options.cpp:1094
+msgid "Specifies path to additional data used by all games or ScummVM"
+msgstr ""
+"²ÚÐ×ãô èÛïå ÔÞ ÔÞÔÐâÚÞÒØå äÐÙÛöÒ ÔÐÝØå, ïÚö ÒØÚÞàØáâÞÒãîâìáï ãáöÜÐ öÓàÐÜØ "
+"ÐÑÞ ScummVM"
+
+#: gui/options.cpp:1098
+msgid "Plugins Path:"
+msgstr "ÈÛïå ÔÞ ÒâãÛÚöÒ:"
+
+#: gui/options.cpp:1100
+msgctxt "lowres"
+msgid "Plugins Path:"
+msgstr "ÈÛïå ÔÞ ÒâãÛÚöÒ:"
+
+#: gui/options.cpp:1109
+msgid "Misc"
+msgstr "Àö×ÝÕ"
+
+#: gui/options.cpp:1111
+msgctxt "lowres"
+msgid "Misc"
+msgstr "Àö×ÝÕ"
+
+#: gui/options.cpp:1113
+msgid "Theme:"
+msgstr "ÂÕÜÐ:"
+
+#: gui/options.cpp:1117
+msgid "GUI Renderer:"
+msgstr "ÀÐáâÕà. GUI:"
+
+#: gui/options.cpp:1129
+msgid "Autosave:"
+msgstr "°ÒâÞ×ÑÕàÕÖÕÝÝï:"
+
+#: gui/options.cpp:1131
+msgctxt "lowres"
+msgid "Autosave:"
+msgstr "°ÒâÞ×ÑÕàÕÖ.:"
+
+#: gui/options.cpp:1139
+msgid "Keys"
+msgstr "ºÛÐÒöèö"
+
+#: gui/options.cpp:1146
+msgid "GUI Language:"
+msgstr "¼ÞÒÐ öÝâÕàä.:"
+
+#: gui/options.cpp:1146
+msgid "Language of ScummVM GUI"
+msgstr "¼ÞÒÐ ÓàÐäöçÝÞÓÞ öÝâÕàäÕÙáã ScummVM"
+
+#: gui/options.cpp:1295
+msgid "You have to restart ScummVM before your changes will take effect."
+msgstr "²Ø ßÞÒØÝÝö ßÕàÕ×ÐßãáâØâØ ScummVM éÞÑ ×ÐáâÞáãÒÐâØ ×ÜöÝØ."
+
+#: gui/options.cpp:1308
+msgid "Select directory for savegames"
+msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï ×ÑÕàÕÖÕÝì"
+
+#: gui/options.cpp:1315
+msgid "The chosen directory cannot be written to. Please select another one."
+msgstr "½Õ ÜÞÖã ßØáÐâØ ã ÒØÑàÐÝã ßÐßÚã. ±ãÔì ÛÐáÚÐ, ÒÚÐÖöâì öÝèã."
+
+#: gui/options.cpp:1324
+msgid "Select directory for GUI themes"
+msgstr "²ØÑÕàöâì ßÐßÚã ÔÛï âÕÜ GUI"
+
+#: gui/options.cpp:1334
+msgid "Select directory for extra files"
+msgstr "²ØÑÕàöâì ßÐßÚã × ÔÞÔÐâÚÞÒØÜØ äÐÙÛÐÜØ"
+
+#: gui/options.cpp:1345
+msgid "Select directory for plugins"
+msgstr "²ØÑÕàöâì ßÐßÚã ×ö ÒâãÛÚÐÜØ"
+
+#: gui/options.cpp:1389
+msgid ""
+"The theme you selected does not support your current language. If you want "
+"to use this theme you need to switch to another language first."
+msgstr ""
+"²ØÑàÐÝÐ âÕÜÐ ÝÕ ßöÔâàØÜãô ßÞâÞçÝã ÜÞÒã. ÏÚéÞ ÒØ åÞçÕâÕ ÒØÚÞàØáâÞÒãÒÐâØ æî "
+"âÕÜã, ßÞâàöÑÝÞ Ò ßÕàèã çÕàÓã ×ÜöÝØâØ ÜÞÒã."
+
+#: gui/saveload.cpp:58 gui/saveload.cpp:239
+msgid "No date saved"
+msgstr "´Ðâã ÝÕ ×ÐßØáÐÝÞ"
+
+#: gui/saveload.cpp:59 gui/saveload.cpp:240
+msgid "No time saved"
+msgstr "ÇÐá ÝÕ ×ÐßØáÐÝÞ"
+
+#: gui/saveload.cpp:60 gui/saveload.cpp:241
+msgid "No playtime saved"
+msgstr "ÇÐá ÓàØ ÝÕ ×ÐßØáÐÝÞ"
+
+#: gui/saveload.cpp:67 gui/saveload.cpp:155
+msgid "Delete"
+msgstr "²ØÔÐÛØâØ"
+
+#: gui/saveload.cpp:154
+msgid "Do you really want to delete this savegame?"
+msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÔÐÛØâØ æÕ ×ÑÕàÕÖÕÝÝï?"
+
+#: gui/saveload.cpp:264
+msgid "Date: "
+msgstr "´ÐâÐ: "
+
+#: gui/saveload.cpp:268
+msgid "Time: "
+msgstr "ÇÐá: "
+
+#: gui/saveload.cpp:274
+msgid "Playtime: "
+msgstr "ÇÐá ÓàØ: "
+
+#: gui/saveload.cpp:287 gui/saveload.cpp:354
+msgid "Untitled savestate"
+msgstr "·ÑÕàÕÖÕÝÝï ÑÕ× öÜÕÝö"
+
+#: gui/themebrowser.cpp:44
+msgid "Select a Theme"
+msgstr "²ØÑÕàöâì âÕÜã"
+
+#: gui/ThemeEngine.cpp:328
+msgid "Disabled GFX"
+msgstr "±Õ× ÓàÐäöÚØ"
+
+#: gui/ThemeEngine.cpp:328
+msgctxt "lowres"
+msgid "Disabled GFX"
+msgstr "±Õ× ÓàÐäöÚØ"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard Renderer (16bpp)"
+msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
+
+#: gui/ThemeEngine.cpp:329
+msgid "Standard (16bpp)"
+msgstr "ÁâÐÝÔÐàâÝØÙ àÐáâÕàØ×ÐâÞà (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased Renderer (16bpp)"
+msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
+
+#: gui/ThemeEngine.cpp:331
+msgid "Antialiased (16bpp)"
+msgstr "ÀÐáâÕàØ×ÐâÞà ×ö ×ÓÛÐÔÖãÒÐÝÝïÜ (16bpp)"
+
+#: base/main.cpp:206
+#, c-format
+msgid "Engine does not support debug level '%s'"
+msgstr "´ÒØÖÞÚ ÝÕ ßöÔâàØÜãô àöÒÕÝì ÒöÔÛÐÔÚØ '%s'"
+
+#: base/main.cpp:274
+msgid "Menu"
+msgstr "¼ÕÝî"
+
+#: base/main.cpp:277 backends/platform/symbian/src/SymbianActions.cpp:45
+#: backends/platform/wince/CEActionsPocket.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:46
+msgid "Skip"
+msgstr "¿àÞßãáâØâØ"
+
+#: base/main.cpp:280 backends/platform/symbian/src/SymbianActions.cpp:50
+#: backends/platform/wince/CEActionsPocket.cpp:42
+msgid "Pause"
+msgstr "¿Ðã×Ð"
+
+#: base/main.cpp:283
+msgid "Skip line"
+msgstr "¿àÞßãáâØâØ àïÔÞÚ"
+
+#: base/main.cpp:442
+msgid "Error running game:"
+msgstr "¿ÞÜØÛÚÐ ×ÐßãáÚã ÓàØ:"
+
+#: base/main.cpp:466
+msgid "Could not find any engine capable of running the selected game"
+msgstr "½Õ ÜÞÖã ×ÝÐÙâØ ÔÒØÖÞÚ ÔÛï ×ÐßãáÚã ÒØÑàÐÝÞ÷ ÓàØ"
+
+#: common/error.cpp:38
+msgid "No error"
+msgstr "½ÕÜÐô ßÞÜØÛÚØ"
+
+#: common/error.cpp:40
+msgid "Game data not found"
+msgstr "½ÕÜÐô äÐÙÛöÒ ÓàØ"
+
+#: common/error.cpp:42
+msgid "Game id not supported"
+msgstr "Game id ÝÕ ßöÔâàØÜãôâìáï"
+
+#: common/error.cpp:44
+msgid "Unsupported color mode"
+msgstr "ÀÕÖØÜ ÚÞÛìÞàã ÝÕ ßöÔâàØÜãôâìáï"
+
+#: common/error.cpp:47
+msgid "Read permission denied"
+msgstr "½ÕÔÞáâÐâÝìÞ ßàÐÒ ÔÛï çØâÐÝÝï"
+
+#: common/error.cpp:49
+msgid "Write permission denied"
+msgstr "½ÕÔÞáâÐâÝìÞ ßàÐÒ ÔÛï ×ÐßØáã"
+
+#: common/error.cpp:52
+msgid "Path does not exist"
+msgstr "ÈÛïå ÝÕ ×ÝÐÙÔÕÝÞ"
+
+#: common/error.cpp:54
+msgid "Path not a directory"
+msgstr "ÈÛïå ÝÕ ô ßÐßÚÞî"
+
+#: common/error.cpp:56
+msgid "Path not a file"
+msgstr "ÈÛïå ÝÕ ô äÐÙÛÞÜ"
+
+#: common/error.cpp:59
+msgid "Cannot create file"
+msgstr "½Õ ÜÞÖã áâÒÞàØâØ äÐÙÛ"
+
+#: common/error.cpp:61
+msgid "Reading data failed"
+msgstr "¿ÞÜØÛÚÐ çØâÐÝÝï"
+
+#: common/error.cpp:63
+msgid "Writing data failed"
+msgstr "¿ÞÜØÛÚÐ ×ÐßØáã ÔÐÝØå"
+
+#: common/error.cpp:66
+msgid "Could not find suitable engine plugin"
+msgstr "½Õ ÜÞÖã ×ÝÐÙâØ ÝÕÞÑåöÔÝÞÓÞ ÒâãÛÚÐ ÔÛï ÔÒØÖÚÐ"
+
+#: common/error.cpp:68
+msgid "Engine plugin does not support save states"
+msgstr "²âãÛÞÚ ÔÒØÖÚÐ ÝÕ ßöÔâàØÜãô ×ÑÕàÕÖÕÝÝï öÓÞà"
+
+#: common/error.cpp:71
+msgid "User canceled"
+msgstr "²öÔÜöÝÕÝÞ ÚÞàØáâãÒÐçÕÜ"
+
+#: common/error.cpp:75
+msgid "Unknown error"
+msgstr "½ÕÒöÔÞÜÐ ßÞÜØÛÚÐ"
+
+#. I18N: Hercules is graphics card name
+#: common/util.cpp:275
+msgid "Hercules Green"
+msgstr "Hercules ·ÕÛÕÝØÙ"
+
+#: common/util.cpp:276
+msgid "Hercules Amber"
+msgstr "Hercules ±ãàèâØÝÝØÙ"
+
+#: common/util.cpp:283
+msgctxt "lowres"
+msgid "Hercules Green"
+msgstr "Hercules ·ÕÛÕÝØÙ"
+
+#: common/util.cpp:284
+msgctxt "lowres"
+msgid "Hercules Amber"
+msgstr "Hercules ±ãàèâØÝÝØÙ"
+
+#: engines/advancedDetector.cpp:296
+#, c-format
+msgid "The game in '%s' seems to be unknown."
+msgstr "³àÐ ã '%s' ÝÕÒöÔÞÜÐ."
+
+#: engines/advancedDetector.cpp:297
+msgid "Please, report the following data to the ScummVM team along with name"
+msgstr "±ãÔì ÛÐáÚÐ, ßÕàÕÔÐÙâÕ ÝØÖçÕÝÐÒÕÔÕÝã öÝäÞàÜÐæöî ÚÞÜÐÝÔö ScummVM àÐ×ÞÜ ×"
+
+#: engines/advancedDetector.cpp:299
+msgid "of the game you tried to add and its version/language/etc.:"
+msgstr "ÝÐ×ÒÞî ÓàØ, ïÚã ÒØ ÝÐÜÐÓÐôâÕáì ÔÞÔÐâØ, Ð âÐÚÞÖ ÷÷ ÒÕàáöî/ÜÞÒã/âÐ öÝèÕ:"
+
+#: engines/dialogs.cpp:84
+msgid "~R~esume"
+msgstr "¿àÞÔÞÒ~Ö~ØâØ"
+
+#: engines/dialogs.cpp:86
+msgid "~L~oad"
+msgstr "~·~ÐÒÐÝâÐÖØâØ"
+
+#: engines/dialogs.cpp:90
+msgid "~S~ave"
+msgstr "~·~ÐßØáÐâØ"
+
+#: engines/dialogs.cpp:94
+msgid "~O~ptions"
+msgstr "~½~ÐÛÐèâãÒÐÝÝï"
+
+#: engines/dialogs.cpp:99
+msgid "~H~elp"
+msgstr "~´~ÞßÞÜÞÓÐ"
+
+#: engines/dialogs.cpp:101
+msgid "~A~bout"
+msgstr "¿àÞ ßàÞ~Ó~àÐÜã"
+
+#: engines/dialogs.cpp:104 engines/dialogs.cpp:182
+msgid "~R~eturn to Launcher"
+msgstr "~¿~ÞÒÕà. Ò ÓÞÛÞÒÝÕ ÜÕÝî"
+
+#: engines/dialogs.cpp:106 engines/dialogs.cpp:184
+msgctxt "lowres"
+msgid "~R~eturn to Launcher"
+msgstr "~¿~ÞÒÕà.Ò ÓÞÛÞÒÝÕ ÜÕÝî"
+
+#: engines/dialogs.cpp:116 engines/cruise/menu.cpp:214
+#: engines/sci/engine/kfile.cpp:575
+msgid "Save game:"
+msgstr "·ÑÕàÕÓâØ Óàã: "
+
+#: engines/dialogs.cpp:116 engines/scumm/dialogs.cpp:187
+#: engines/cruise/menu.cpp:214 engines/sci/engine/kfile.cpp:575
+#: backends/platform/symbian/src/SymbianActions.cpp:44
+#: backends/platform/wince/CEActionsPocket.cpp:43
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:45
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Save"
+msgstr "·ÐßØáÐâØ"
+
+#: engines/dialogs.cpp:146
+msgid ""
+"Sorry, this engine does not currently provide in-game help. Please consult "
+"the README for basic information, and for instructions on how to obtain "
+"further assistance."
+msgstr ""
+"²ØÑÐçâÕ, æÕÙ ÔÒØÖÞÚ ÝÕ ßöÔâàØÜãô ÔÞÒöÔÚã ßÞ öÓàÐÜ. ±ãÔì-ÛÐáÚÐ, ÔØÒöâìáï äÐÙÛ "
+"README ÔÛï ÞáÝÞÒÝÞ÷ öÝÞàÜÐæö÷, Ð âÐÚÞÖ öÝáâàãÚæöÙ, ïÚ ÞâàØÜÐâØ ßÞÔÐÛìèã "
+"ÔÞßÞÜÞÓã."
+
+#: engines/dialogs.cpp:308 engines/mohawk/dialogs.cpp:109
+#: engines/mohawk/dialogs.cpp:174
+msgid "~O~K"
+msgstr "~O~K"
+
+#: engines/dialogs.cpp:309 engines/mohawk/dialogs.cpp:110
+#: engines/mohawk/dialogs.cpp:175
+msgid "~C~ancel"
+msgstr "²ö~Ô~ÜöÝÐ"
+
+#: engines/dialogs.cpp:312
+msgid "~K~eys"
+msgstr "~º~ÛÐÒöèö"
+
+#: engines/engine.cpp:233
+msgid "Could not initialize color format."
+msgstr "½Õ ÜÞÖã ÝÐÛÐèâãÒÐâØ äÞàÜÐâ ÚÞÛìÞàã."
+
+#: engines/engine.cpp:241
+msgid "Could not switch to video mode: '"
+msgstr "½Õ ÒÔÐÛÞáï ßÕàÕÚÛîçØâØ ÒöÔÕÞàÕÖØÜ: '"
+
+#: engines/engine.cpp:250
+msgid "Could not apply aspect ratio setting."
+msgstr "½Õ ÒÔÐÛÞáï ×ÐáâÞáãÒÐâØ ÚÞàÕÚæöî áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ."
+
+#: engines/engine.cpp:255
+msgid "Could not apply fullscreen setting."
+msgstr "½Õ ÒÔÐÛÞáï ×ÐáâÞáãÒÐâØ ßÞÒÝÞÕÚàÐÝÝØÙ àÕÖØÜ."
+
+#: engines/engine.cpp:355
+msgid ""
+"You appear to be playing this game directly\n"
+"from the CD. This is known to cause problems,\n"
+"and it is therefore recommended that you copy\n"
+"the data files to your hard disk instead.\n"
+"See the README file for details."
+msgstr ""
+"²Ø ÝÐÜÐÓÐôâÕáì ÓàÐâØ Óàã ÑÕ×ßÞáÕàÕÔÝìÞ × CD\n"
+"²öÔÞÜÞ, éÞ æÕ ßàØ×ÒÞÔØâì ÔÞ ßàÞÑÛÕÜ, ö âÞÜã\n"
+"àÕÚÞÜÕÝÔÞÒÐÝÞ, éÞÑØ ²Ø áÚÞßöîÒÐÛØ äÐÙÛØ ÔÐÝØå\n"
+"ÓàØ ÝÐ ÖÞàáâÚØÙ ÔØáÚ.\n"
+"´ØÒöâìáï äÐÙÛ README ÔÛï ßÞÔÐÛìèØå öÝáâàãÚæöÙ."
+
+#: engines/engine.cpp:366
+msgid ""
+"This game has audio tracks in its disk. These\n"
+"tracks need to be ripped from the disk using\n"
+"an appropriate CD audio extracting tool in\n"
+"order to listen to the game's music.\n"
+"See the README file for details."
+msgstr ""
+"Æï ÓàÐ ÜÐô ÐãÔöÞÔÞàöÖÚØ ÝÐ ÔØáÚã. §å ßÞâàöÑÝÞ\n"
+"ßÕàÕßØáÐâØ × ÔØáÚã × ÔÞßÞÜÞÓÞî ÒöÔßÞÒöÔÝÞ÷\n"
+"ßàÞÓàÐÜØ ÔÛï ÚÞßöîÒÐÝÝï ÐãÔöÞ × CD ÔØáÚöÒ, ÔÛï\n"
+"âÞÓÞ, éÞÑ ÜÞÖÝÐ ÑãÛÞ áÛãåÐâØ Üã×ØÚã ã Óàö.\n"
+"´ØÒöâìáï äÐÙÛ README ÔÛï ßÞÔÐÛìèØå öÝáâàãÚæöÙ."
+
+#: engines/engine.cpp:433
+msgid ""
+"WARNING: The game you are about to start is not yet fully supported by "
+"ScummVM. As such, it is likely to be unstable, and any saves you make might "
+"not work in future versions of ScummVM."
+msgstr ""
+"¿¾¿µÀµ´¶µ½½Ï: ³àÐ, ïÚã ÒØ åÞçÕâÕ ×ÐßãáâØâØ, éÕ ÝÕ ßöÔâàØÜãôâìáï ßÞÒÝöáâî "
+"ScummVM. ÁÚÞàèÕ ×Ð ÒáÕ ÒÞÝÐ ÝÕ ÑãÔÕ ßàÐæîÒÐâØ áâÐÑöÛìÝÞ, ö ×ÑÕàÕÖÕÝÝï öÓÞà, "
+"ïÚö ÒØ ×àÞÑØâÕ, ÜÞÖãâì ÝÕ ßàÐæîÒÐâØ ã ßÞÔÐÛìèØå ÒÕàáöïå ScummVM."
+
+#: engines/engine.cpp:436
+msgid "Start anyway"
+msgstr "²áÕ ÞÔÝÞ ×ÐßãáâØâØ"
+
+#: engines/scumm/dialogs.cpp:175
+#, c-format
+msgid "Insert Disk %c and Press Button to Continue."
+msgstr "²áâÐÒâÕ ÔØáÚ %c âÐ ÝÐâØáÝöâì ÚÛÐÒöèã ÔÛï ßàÞÔÞÒÖÕÝÝï."
+
+#: engines/scumm/dialogs.cpp:176
+#, c-format
+msgid "Unable to Find %s, (%c%d) Press Button."
+msgstr "½Õ ÒÔÐÛÞáï ×ÝÐÙâØ %s, (%c%d) ½ÐâØáÝöâì ÚÛÐÒöèã."
+
+#: engines/scumm/dialogs.cpp:177
+#, c-format
+msgid "Error reading disk %c, (%c%d) Press Button."
+msgstr "¿ÞÜØÛÚÐ çØâÐÝÝï ÔØáÚã %c, (%c%d) ½ÐâØáÝöâì ÚÛÐÒöèã."
+
+#: engines/scumm/dialogs.cpp:178
+msgid "Game Paused. Press SPACE to Continue."
+msgstr "¦Óàã ßàØ×ãßØÝÕÝÞ. ½ÐâØáÝöâì ßàÞÑöÛ ÔÛï ßàÞÔÞÒÖÕÝÝï."
+
+#. I18N: You may specify 'Yes' symbol at the end of the line, like this:
+#. "Moechten Sie wirklich neu starten? (J/N)J"
+#. Will react to J as 'Yes'
+#: engines/scumm/dialogs.cpp:182
+msgid "Are you sure you want to restart? (Y/N)"
+msgstr "²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ àÞ×ßÞçÐâØ áßÞçÐâÚã? (Y/N)"
+
+#. I18N: you may specify 'Yes' symbol at the endo fo the line. See previous comment
+#: engines/scumm/dialogs.cpp:184
+msgid "Are you sure you want to quit? (Y/N)"
+msgstr "²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ ÒØÙâØ? (Y/N)"
+
+#: engines/scumm/dialogs.cpp:189
+msgid "Play"
+msgstr "³àÐâØ"
+
+#: engines/scumm/dialogs.cpp:191 engines/scumm/help.cpp:82
+#: engines/scumm/help.cpp:84
+#: backends/platform/symbian/src/SymbianActions.cpp:52
+#: backends/platform/wince/CEActionsPocket.cpp:44
+#: backends/platform/wince/CEActionsSmartphone.cpp:52
+#: backends/events/default/default-events.cpp:244
+msgid "Quit"
+msgstr "²ØåöÔ"
+
+#: engines/scumm/dialogs.cpp:193
+msgid "Insert save/load game disk"
+msgstr "²áâÐÒâÕ ÔØáÚ ×ö ×ÑÕàÕÖÕÝÝïÜ öÓÞà"
+
+#: engines/scumm/dialogs.cpp:194
+msgid "You must enter a name"
+msgstr "²Ø ÜãáØâÕ ÒÒÕáâØ öÜ'ï"
+
+#: engines/scumm/dialogs.cpp:195
+msgid "The game was NOT saved (disk full?)"
+msgstr "³àã ½µ ±Ã»¾ ×ÐßØáÐÝÞ (ÔØáÚ ßÞÒÝØÙ?)"
+
+#: engines/scumm/dialogs.cpp:196
+msgid "The game was NOT loaded"
+msgstr "³àã ½µ ±Ã»¾ ×ÐÒÐÝâÐÖÕÝÞ"
+
+#: engines/scumm/dialogs.cpp:197
+#, c-format
+msgid "Saving '%s'"
+msgstr "·ÐßØáãî '%s'"
+
+#: engines/scumm/dialogs.cpp:198
+#, c-format
+msgid "Loading '%s'"
+msgstr "·ÐÒÐÝâÐÖãî '%s'"
+
+#: engines/scumm/dialogs.cpp:199
+msgid "Name your SAVE game"
+msgstr "½Ð×ÞÒöâì áÒÞô ×ÑÕàÕÖÕÝÝï öÓàØ"
+
+#: engines/scumm/dialogs.cpp:200
+msgid "Select a game to LOAD"
+msgstr "²ØÑÕàöâì Óàã ÔÛï ×ÐÒÐÝâÐÖÕÝÝï"
+
+#: engines/scumm/dialogs.cpp:201
+msgid "Game title)"
+msgstr "½Ð×ÒÐ ÓàØ)"
+
+#. I18N: Previous page button
+#: engines/scumm/dialogs.cpp:287
+msgid "~P~revious"
+msgstr "~¿~ÞßÕà"
+
+#. I18N: Next page button
+#: engines/scumm/dialogs.cpp:289
+msgid "~N~ext"
+msgstr "~½~Ðáâ"
+
+#: engines/scumm/dialogs.cpp:290
+#: backends/platform/ds/arm9/source/dsoptions.cpp:56
+msgid "~C~lose"
+msgstr "~·~ÐÚàØâØ"
+
+#: engines/scumm/dialogs.cpp:597
+msgid "Speech Only"
+msgstr "ÂöÛìÚØ Þ×ÒãçÚÐ"
+
+#: engines/scumm/dialogs.cpp:598
+msgid "Speech and Subtitles"
+msgstr "¾×ÒãçÚÐ âÐ áãÑâØâàØ"
+
+#: engines/scumm/dialogs.cpp:599
+msgid "Subtitles Only"
+msgstr "ÂöÛìÚØ áãÑâØâàØ"
+
+#: engines/scumm/dialogs.cpp:607
+msgctxt "lowres"
+msgid "Speech & Subs"
+msgstr "¾×ÒãçÚÐ âÐ âÕÚáâ"
+
+#: engines/scumm/help.cpp:73
+msgid "Common keyboard commands:"
+msgstr "¾áÝÞÒÝö ÚÞÜÐÝÔØ ÚÛÐÒöÐâãàØ:"
+
+#: engines/scumm/help.cpp:74
+msgid "Save / Load dialog"
+msgstr "´öÐÛÞÓ ×ÑÕàÕÖÕÝÝï / ×ÐÒÐÝâÐÖÕÝÝï"
+
+#: engines/scumm/help.cpp:76
+msgid "Skip line of text"
+msgstr "¿àÞßãáâØâØ àïÔÞÚ âÕÚáâã"
+
+#: engines/scumm/help.cpp:77
+msgid "Esc"
+msgstr "Esc"
+
+#: engines/scumm/help.cpp:77
+msgid "Skip cutscene"
+msgstr "¿àÞßãáâØâØ ×ÐáâÐÒÚã"
+
+#: engines/scumm/help.cpp:78
+msgid "Space"
+msgstr "Space"
+
+#: engines/scumm/help.cpp:78
+msgid "Pause game"
+msgstr "¿Ðã×Ð"
+
+#: engines/scumm/help.cpp:79 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:95 engines/scumm/help.cpp:96
+#: engines/scumm/help.cpp:97 engines/scumm/help.cpp:98
+#: engines/scumm/help.cpp:99 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Ctrl"
+msgstr "Ctrl"
+
+#: engines/scumm/help.cpp:79
+msgid "Load game state 1-10"
+msgstr "·ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ 1-10"
+
+#: engines/scumm/help.cpp:80 engines/scumm/help.cpp:84
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:100
+#: engines/scumm/help.cpp:101 engines/scumm/help.cpp:102
+msgid "Alt"
+msgstr "Alt"
+
+#: engines/scumm/help.cpp:80
+msgid "Save game state 1-10"
+msgstr "·ÑÕàÕÓâØ áâÐÝ ÓàØ 1-10"
+
+#: engines/scumm/help.cpp:86 engines/scumm/help.cpp:89
+msgid "Enter"
+msgstr "Enter"
+
+#: engines/scumm/help.cpp:86
+msgid "Toggle fullscreen"
+msgstr "ÃÒöÜÚÝãâØ ßÞÒÝÞÕÚàÐÝÝØÙ àÕÖØÜ"
+
+#: engines/scumm/help.cpp:87
+msgid "Music volume up / down"
+msgstr "³ãçÝöáâì Üã×ØÚØ ÒØéÕ / ÝØÖçÕ"
+
+#: engines/scumm/help.cpp:88
+msgid "Text speed slower / faster"
+msgstr "ÈÒØÔÚöáâì âÕÚáâã ßÞÒöÛìÝöèÕ / èÒØÔèÕ"
+
+#: engines/scumm/help.cpp:89
+msgid "Simulate left mouse button"
+msgstr "ÁØÜãÛîÒÐâØ ÛöÒØÙ ÚÛöÚ"
+
+#: engines/scumm/help.cpp:90
+msgid "Tab"
+msgstr "Tab"
+
+#: engines/scumm/help.cpp:90
+msgid "Simulate right mouse button"
+msgstr "ÁØÜãÛîÒÐâØ ßàÐÒØÙ ÚÛöÚ"
+
+#: engines/scumm/help.cpp:93
+msgid "Special keyboard commands:"
+msgstr "ÁßÕæöÐÛìÝö ÚÞÜÐÝÔØ ÚÛÐÒöÐâãàØ:"
+
+#: engines/scumm/help.cpp:94
+msgid "Show / Hide console"
+msgstr "¿ÞÚÐ×ÐâØ / cåÞÒÐâØ ÚÞÝáÞÛì"
+
+#: engines/scumm/help.cpp:95
+msgid "Start the debugger"
+msgstr "·ÐßãáÚ ÒöÔÛÐÔçØÚÐ"
+
+#: engines/scumm/help.cpp:96
+msgid "Show memory consumption"
+msgstr "¿ÞÚÐ×ÐâØ áßÞÖØÒÐÝÝï ßÐÜ'ïâö"
+
+#: engines/scumm/help.cpp:97
+msgid "Run in fast mode (*)"
+msgstr "²ØÚÞÝÐâØ Ò èÒØÔÚÞÜã àÕÖØÜö (*)"
+
+#: engines/scumm/help.cpp:98
+msgid "Run in really fast mode (*)"
+msgstr "²ØÚÞÝÐâØ Ò ÔãÖÕ èÒØÔÚÞÜã àÕÖØÜö (*)"
+
+#: engines/scumm/help.cpp:99
+msgid "Toggle mouse capture"
+msgstr "ÃÒöÜÚÝãâØ ×ÐåÞßÛÕÝÝï ÜØèö"
+
+#: engines/scumm/help.cpp:100
+msgid "Switch between graphics filters"
+msgstr "¿ÕàÕÚÛîçÕÝÝï ÜöÖ ÓàÐäöçÝØÜØ äöÛìâàÐÜØ"
+
+#: engines/scumm/help.cpp:101
+msgid "Increase / Decrease scale factor"
+msgstr "·ÑöÛìèÕÝÝï / ·ÜÕÝèÕÝÝï ÜÐáèâÐÑã"
+
+#: engines/scumm/help.cpp:102
+msgid "Toggle aspect-ratio correction"
+msgstr "ºÞàÕÚæöï áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ"
+
+#: engines/scumm/help.cpp:107
+msgid "* Note that using ctrl-f and"
+msgstr "* ·ÐãÒÐÖØÜÞ, éÞ ÒØÚÞàØáâÐÝÝï ctrl-f ö"
+
+#: engines/scumm/help.cpp:108
+msgid " ctrl-g are not recommended"
+msgstr " ctrl-g ÝÕ àÕÚÞÜÕÝÔãôâìáï"
+
+#: engines/scumm/help.cpp:109
+msgid " since they may cause crashes"
+msgstr " ÞáÚöÛìÚØ ÒÞÝØ ÜÞÖãâì ÒØÚÛØÚÐâØ ×ÑÞ÷"
+
+#: engines/scumm/help.cpp:110
+msgid " or incorrect game behavior."
+msgstr " ÐÑÞ ÝÕßàÐÒØÛìÝã ßÞÒÕÔöÝÚã ÓàØ."
+
+#: engines/scumm/help.cpp:114
+msgid "Spinning drafts on the keyboard:"
+msgstr "·ÜöÝÝö çÞàÝÞÒØÚØ ÝÐ ÚÛÐÒöÐâãàö:"
+
+#: engines/scumm/help.cpp:116
+msgid "Main game controls:"
+msgstr "¾áÝÞÒÝö Þßæö÷ ÚÕàãÒÐÝÝï:"
+
+#: engines/scumm/help.cpp:121 engines/scumm/help.cpp:136
+#: engines/scumm/help.cpp:161
+msgid "Push"
+msgstr "½ÐâØáÚ"
+
+#: engines/scumm/help.cpp:122 engines/scumm/help.cpp:137
+#: engines/scumm/help.cpp:162
+msgid "Pull"
+msgstr "ÂïÓâØ"
+
+#: engines/scumm/help.cpp:123 engines/scumm/help.cpp:138
+#: engines/scumm/help.cpp:163 engines/scumm/help.cpp:197
+#: engines/scumm/help.cpp:207
+msgid "Give"
+msgstr "´ÐâØ"
+
+#: engines/scumm/help.cpp:124 engines/scumm/help.cpp:139
+#: engines/scumm/help.cpp:164 engines/scumm/help.cpp:190
+#: engines/scumm/help.cpp:208
+msgid "Open"
+msgstr "²öÔÚàØâØ"
+
+#: engines/scumm/help.cpp:126
+msgid "Go to"
+msgstr "¹âØ ÔÞ"
+
+#: engines/scumm/help.cpp:127
+msgid "Get"
+msgstr "¾âàØÜÐâØ"
+
+#: engines/scumm/help.cpp:128 engines/scumm/help.cpp:152
+#: engines/scumm/help.cpp:170 engines/scumm/help.cpp:198
+#: engines/scumm/help.cpp:213 engines/scumm/help.cpp:224
+#: engines/scumm/help.cpp:250
+msgid "Use"
+msgstr "²ØÚÞàØáâÐâØ"
+
+#: engines/scumm/help.cpp:129 engines/scumm/help.cpp:141
+msgid "Read"
+msgstr "ÇØâÐâØ"
+
+#: engines/scumm/help.cpp:130 engines/scumm/help.cpp:147
+msgid "New kid"
+msgstr "½ÞÒÐ ÔØâØÝÐ"
+
+#: engines/scumm/help.cpp:131 engines/scumm/help.cpp:153
+#: engines/scumm/help.cpp:171
+msgid "Turn on"
+msgstr "ÃÒöÜÚÝãâØ"
+
+#: engines/scumm/help.cpp:132 engines/scumm/help.cpp:154
+#: engines/scumm/help.cpp:172
+msgid "Turn off"
+msgstr "²ØÜÚÝãâØ"
+
+#: engines/scumm/help.cpp:142 engines/scumm/help.cpp:167
+#: engines/scumm/help.cpp:194
+msgid "Walk to"
+msgstr "¦âØ ÔÞ"
+
+#: engines/scumm/help.cpp:143 engines/scumm/help.cpp:168
+#: engines/scumm/help.cpp:195 engines/scumm/help.cpp:210
+#: engines/scumm/help.cpp:227
+msgid "Pick up"
+msgstr "¿öÔöÑàÐâØ"
+
+#: engines/scumm/help.cpp:144 engines/scumm/help.cpp:169
+msgid "What is"
+msgstr "ÉÞ ô"
+
+#: engines/scumm/help.cpp:146
+msgid "Unlock"
+msgstr "ÀÞ×ÑÛÞÚãÒÐâØ"
+
+#: engines/scumm/help.cpp:149
+msgid "Put on"
+msgstr "¿ÞáâÐÒØâØ ÝÐ"
+
+#: engines/scumm/help.cpp:150
+msgid "Take off"
+msgstr "·ÝïâØ"
+
+#: engines/scumm/help.cpp:156
+msgid "Fix"
+msgstr "½ÐÛÐÓÞÔØâØ"
+
+#: engines/scumm/help.cpp:158
+msgid "Switch"
+msgstr "¿ÕàÕÜÚÝãâØ"
+
+#: engines/scumm/help.cpp:166 engines/scumm/help.cpp:228
+msgid "Look"
+msgstr "³ÛïÝãâØ"
+
+#: engines/scumm/help.cpp:173 engines/scumm/help.cpp:223
+msgid "Talk"
+msgstr "³ÞÒÞàØâØ"
+
+#: engines/scumm/help.cpp:174
+msgid "Travel"
+msgstr "¿ÞÔÞàÞÖ"
+
+#: engines/scumm/help.cpp:175
+msgid "To Henry / To Indy"
+msgstr "à ³ÕÝàö / à ¦ÝÔö"
+
+#. I18N: These are different musical notes
+#: engines/scumm/help.cpp:179
+msgid "play C minor on distaff"
+msgstr "ÓàÐâØ ÔÞ ÜöÝÞà ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:180
+msgid "play D on distaff"
+msgstr "ÓàÐâØ àÕ ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:181
+msgid "play E on distaff"
+msgstr "ÓàÐâØ Üö ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:182
+msgid "play F on distaff"
+msgstr "ÓàÐâØ äÐ ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:183
+msgid "play G on distaff"
+msgstr "ÓàÐâØ áÞÛì ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:184
+msgid "play A on distaff"
+msgstr "ÓàÐâØ Ûï ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:185
+msgid "play B on distaff"
+msgstr "ÓàÐâØ áö ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:186
+msgid "play C major on distaff"
+msgstr "ÓàÐâØ ÔÞ ÜÐÖÞà ÝÐ ßàïÔæö"
+
+#: engines/scumm/help.cpp:192 engines/scumm/help.cpp:214
+msgid "puSh"
+msgstr "¿ÞèâÞÒå"
+
+#: engines/scumm/help.cpp:193 engines/scumm/help.cpp:215
+msgid "pull (Yank)"
+msgstr "âïÓÝãâØ (ÁÜØÚÝãâØ)"
+
+#: engines/scumm/help.cpp:196 engines/scumm/help.cpp:212
+#: engines/scumm/help.cpp:248
+msgid "Talk to"
+msgstr "³ÞÒÞàØâØ ÔÞ"
+
+#: engines/scumm/help.cpp:199 engines/scumm/help.cpp:211
+msgid "Look at"
+msgstr "³ÛïÝãâØ ÝÐ"
+
+#: engines/scumm/help.cpp:200
+msgid "turn oN"
+msgstr "ÃÒöÜÚÝãâØ"
+
+#: engines/scumm/help.cpp:201
+msgid "turn oFf"
+msgstr "²ØÜÚÝãâØ"
+
+#: engines/scumm/help.cpp:217
+msgid "KeyUp"
+msgstr "½ÐâØáÝãâØ"
+
+#: engines/scumm/help.cpp:217
+msgid "Highlight prev dialogue"
+msgstr "²ØÔöÛØâØ ßÞßÕàÕÔÝöÙ ÔöÐÛÞÓ"
+
+#: engines/scumm/help.cpp:218
+msgid "KeyDown"
+msgstr "²öÔßãáâØâØ"
+
+#: engines/scumm/help.cpp:218
+msgid "Highlight next dialogue"
+msgstr "²ØÔöÛØâØ ÝÐáâãßÝØÙ ÔöÐÛÞÓ"
+
+#: engines/scumm/help.cpp:222
+msgid "Walk"
+msgstr "¦âØ"
+
+#: engines/scumm/help.cpp:225 engines/scumm/help.cpp:234
+#: engines/scumm/help.cpp:241 engines/scumm/help.cpp:249
+msgid "Inventory"
+msgstr "¦ÝÒÕÝâÐà"
+
+#: engines/scumm/help.cpp:226
+msgid "Object"
+msgstr "¾Ñ'ôÚâ"
+
+#: engines/scumm/help.cpp:229
+msgid "Black and White / Color"
+msgstr "ÇÞàÝÞÑöÛØÙ / ºÞÛìÞàÞÒØÙ"
+
+#: engines/scumm/help.cpp:232
+msgid "Eyes"
+msgstr "¾çö"
+
+#: engines/scumm/help.cpp:233
+msgid "Tongue"
+msgstr "Ï×ØÚ"
+
+#: engines/scumm/help.cpp:235
+msgid "Punch"
+msgstr "²ÔÐàØâØ ÚãÛÐÚÞÜ"
+
+#: engines/scumm/help.cpp:236
+msgid "Kick"
+msgstr "²ÔÐàØâØ ÝÞÓÞî"
+
+#: engines/scumm/help.cpp:239 engines/scumm/help.cpp:247
+msgid "Examine"
+msgstr "ÀÞ×ÓÛïÝãâØ"
+
+#: engines/scumm/help.cpp:240
+msgid "Regular cursor"
+msgstr "·ÒØçÐÙÝØÙ ÚãàáÞà"
+
+#. I18N: Comm is a communication device
+#: engines/scumm/help.cpp:243
+msgid "Comm"
+msgstr "ºÞÜÜ"
+
+#: engines/scumm/help.cpp:246
+msgid "Save / Load / Options"
+msgstr "·ÑÕàÕÖÕÝÝï / ·ÐÒÐÝâÐÖÕÝÝï / ½ÐÛÐèâãÒÐÝÝï"
+
+#: engines/scumm/help.cpp:255
+msgid "Other game controls:"
+msgstr "¦ÝèÕ ÚÕàãÒÐÝÝï ÓàÞî:"
+
+#: engines/scumm/help.cpp:257 engines/scumm/help.cpp:267
+msgid "Inventory:"
+msgstr "¦ÝÒÕÝâÐà:"
+
+#: engines/scumm/help.cpp:258 engines/scumm/help.cpp:274
+msgid "Scroll list up"
+msgstr "¿àÞÚàãçÕÝÝï áßØáÚã ÔÞÓÞàØ"
+
+#: engines/scumm/help.cpp:259 engines/scumm/help.cpp:275
+msgid "Scroll list down"
+msgstr "¿àÞÚàãçÕÝÝï áßØáÚã ÔÞÝØ×ã"
+
+#: engines/scumm/help.cpp:260 engines/scumm/help.cpp:268
+msgid "Upper left item"
+msgstr "²ÕàåÝï ×ÛöÒÐ àöç"
+
+#: engines/scumm/help.cpp:261 engines/scumm/help.cpp:270
+msgid "Lower left item"
+msgstr "½ØÖÝï ×ÛöÒÐ àöç"
+
+#: engines/scumm/help.cpp:262 engines/scumm/help.cpp:271
+msgid "Upper right item"
+msgstr "²ÕàåÝï áßàÐÒÐ àöç"
+
+#: engines/scumm/help.cpp:263 engines/scumm/help.cpp:273
+msgid "Lower right item"
+msgstr "½ØÖÝï áßàÐÒÐ àöç"
+
+#: engines/scumm/help.cpp:269
+msgid "Middle left item"
+msgstr "ÁÕàÕÔÝï ×ÛöÒÐ àöç"
+
+#: engines/scumm/help.cpp:272
+msgid "Middle right item"
+msgstr "ÁÕàÕÔÝï áßàÐÒÐ àöç"
+
+#: engines/scumm/help.cpp:279 engines/scumm/help.cpp:284
+msgid "Switching characters:"
+msgstr "¿ÕàÕÚÛîçÕÝÝï ÓÕàÞ÷Ò:"
+
+#: engines/scumm/help.cpp:281
+msgid "Second kid"
+msgstr "´àãÓÐ ÔØâØÝÐ"
+
+#: engines/scumm/help.cpp:282
+msgid "Third kid"
+msgstr "ÂàÕâï ÔØâØÝÐ"
+
+#: engines/scumm/help.cpp:294
+msgid "Fighting controls (numpad):"
+msgstr "ºÕàãÒÐÝÝï ÑöÙÚÞî (numpad):"
+
+#: engines/scumm/help.cpp:295 engines/scumm/help.cpp:296
+#: engines/scumm/help.cpp:297
+msgid "Step back"
+msgstr "ºàÞÚ ÝÐ×ÐÔ"
+
+#: engines/scumm/help.cpp:298
+msgid "Block high"
+msgstr "±ÛÞÚãÒÐâØ ×ÒÕàåã"
+
+#: engines/scumm/help.cpp:299
+msgid "Block middle"
+msgstr "±ÛÞÚãÒÐâØ ßÞáÕàÕÔØÝö"
+
+#: engines/scumm/help.cpp:300
+msgid "Block low"
+msgstr "±ÛÞÚãÒÐâØ ×ÝØ×ã"
+
+#: engines/scumm/help.cpp:301
+msgid "Punch high"
+msgstr "±ØâØ ×ÒÕàåã"
+
+#: engines/scumm/help.cpp:302
+msgid "Punch middle"
+msgstr "±ØâØ ßÞáÕàÕÔØÝö"
+
+#: engines/scumm/help.cpp:303
+msgid "Punch low"
+msgstr "±ØâØ ×ÝØ×ã"
+
+#: engines/scumm/help.cpp:306
+msgid "These are for Indy on left."
+msgstr "à ÒØßÐÔÚã ÔÛï ¦ÝÔö ×ÛöÒÐ."
+
+#: engines/scumm/help.cpp:307
+msgid "When Indy is on the right,"
+msgstr "ºÞÛØ ¦ÝÔö ô áßàÐÒÐ,"
+
+#: engines/scumm/help.cpp:308
+msgid "7, 4, and 1 are switched with"
+msgstr "7, 4, ö 1 ßÕàÕÜØÚÐîâìáï ÝÐ"
+
+#: engines/scumm/help.cpp:309
+msgid "9, 6, and 3, respectively."
+msgstr "9, 6 ö 3 ÒöÔßÞÒöÔÝÞ."
+
+#: engines/scumm/help.cpp:316
+msgid "Biplane controls (numpad):"
+msgstr "ºÕàãÒÐÝÝï ÑößÛÐÝÞÜ (numpad):"
+
+#: engines/scumm/help.cpp:317
+msgid "Fly to upper left"
+msgstr "»ÕâöâØ ÔÞÓÞàØ ÝÐÛöÒÞ"
+
+#: engines/scumm/help.cpp:318
+msgid "Fly to left"
+msgstr "»ÕâöâØ ÝÐÛöÒÞ"
+
+#: engines/scumm/help.cpp:319
+msgid "Fly to lower left"
+msgstr "»ÕâöâØ ÝØÖçÕ ÝÐÛöÒÞ"
+
+#: engines/scumm/help.cpp:320
+msgid "Fly upwards"
+msgstr "»ÕâöâØ ÔÞÓÞàØ"
+
+#: engines/scumm/help.cpp:321
+msgid "Fly straight"
+msgstr "»ÕâöâØ ßàïÜÞ"
+
+#: engines/scumm/help.cpp:322
+msgid "Fly down"
+msgstr "»ÕâöâØ ÔÞÝØ×ã"
+
+#: engines/scumm/help.cpp:323
+msgid "Fly to upper right"
+msgstr "»ÕâöâØ ÔÞÓÞàØ ÝÐßàÐÒÞ"
+
+#: engines/scumm/help.cpp:324
+msgid "Fly to right"
+msgstr "»ÕâöâØ ÝÐßàÐÒÞ"
+
+#: engines/scumm/help.cpp:325
+msgid "Fly to lower right"
+msgstr "»ÕâöâØ ÔÞÝØ×ã ÝÐßàÐÒÞ"
+
+#: engines/scumm/scumm.cpp:1768
+#, c-format
+msgid ""
+"Native MIDI support requires the Roland Upgrade from LucasArts,\n"
+"but %s is missing. Using AdLib instead."
+msgstr ""
+"ÀÕÖØÜ \"àöÔÝÞÓÞ\" MIDI ßÞâàÕÑãô ßÞÝÞÒÛÕÝÝï Roland Upgrade ÒöÔ\n"
+"LucasArts, ßàÞâÕ %s ÒöÔáãâÝöÙ. ¿ÕàÕÜØÚÐîáì ÝÐ AdLib."
+
+#: engines/scumm/scumm.cpp:2258 engines/agos/saveload.cpp:189
+#, c-format
+msgid ""
+"Failed to save game state to file:\n"
+"\n"
+"%s"
+msgstr ""
+"½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2265 engines/agos/saveload.cpp:154
+#, c-format
+msgid ""
+"Failed to load game state from file:\n"
+"\n"
+"%s"
+msgstr ""
+"½Õ ÒÔÐÛÞáï ×ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ × äÐÙÛã:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2277 engines/agos/saveload.cpp:197
+#, c-format
+msgid ""
+"Successfully saved game state in file:\n"
+"\n"
+"%s"
+msgstr ""
+"ÃáßöèÝÞ ×ÑÕàÖÕÝÞ áâÐÝ ÓàØ ã äÐÙÛö:\n"
+"\n"
+"%s"
+
+#: engines/scumm/scumm.cpp:2492
+msgid ""
+"Usually, Maniac Mansion would start now. But ScummVM doesn't do that yet. To "
+"play it, go to 'Add Game' in the ScummVM start menu and select the 'Maniac' "
+"directory inside the Tentacle game directory."
+msgstr ""
+"·Ð×ÒØçÐÙ, ×ÐàÐ× ÑØ ×ÐßãáâØÒáï Maniac Mansion. ¿àÞâÕ ScummVM éÕ æìÞÓÞ ÝÕ "
+"ÒÜöô. ÉÞÑ ÓàÐâØ ã ÝìÞÓÞ, ÞÑÕàöâì '´ÞÔÐâØ Óàã' ã ßÞçÐâÚÞÒÞÜã ÜÕÝî ScummVM, ö "
+"ÒØÑÕàöâì ßÐßÚã Maniac ÒáÕàÕÔÕÝö ßÒßÚØ × ÓàÞî Tentacle."
+
+#. I18N: Option for fast scene switching
+#: engines/mohawk/dialogs.cpp:92 engines/mohawk/dialogs.cpp:171
+msgid "~Z~ip Mode Activated"
+msgstr "ÀÕÖØÜ èÒØÔÚÞÓÞ ßÕàÕåÞÔã ÐÚâØÒÞÒÐÝÞ"
+
+#: engines/mohawk/dialogs.cpp:93
+msgid "~T~ransitions Enabled"
+msgstr "¿ÕàÕåÞÔØ ÐÚâØÒÞÒÐÝÞ"
+
+#. I18N: Drop book page
+#: engines/mohawk/dialogs.cpp:95
+msgid "~D~rop Page"
+msgstr "²ØÚØÝãâØ áâÞàöÝÚã"
+
+#: engines/mohawk/dialogs.cpp:99
+msgid "~S~how Map"
+msgstr "¿ÞÚÐ×ÐâØ ÜÐßã"
+
+#: engines/mohawk/dialogs.cpp:105
+msgid "~M~ain Menu"
+msgstr "³ÞÛÞÒÝÕ ÜÕÝî"
+
+#: engines/mohawk/dialogs.cpp:172
+msgid "~W~ater Effect Enabled"
+msgstr "µäÕÚâØ ÒÞÔØ ãÒöÜÚÝÕÝÞ"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore game:"
+msgstr "²öÔÝÞÒØâØ Óàã:"
+
+#: engines/sci/engine/kfile.cpp:678
+msgid "Restore"
+msgstr "²öÔÝÞÒØâØ"
+
+#: engines/agos/animation.cpp:544
+#, c-format
+msgid "Cutscene file '%s' not found!"
+msgstr "ÄÐÙÛ ×ÐáâÐÒÚØ '%s' ÝÕ ×ÝÐÙÔÕÝÞ!"
+
+#: engines/gob/inter_playtoons.cpp:256 engines/gob/inter_v2.cpp:1283
+#: engines/tinsel/saveload.cpp:475
+msgid "Failed to load game state from file."
+msgstr "½Õ ÒÔÐÛÞáï ×ÐÒÐÝâÐÖØâØ áâÐÝ ÓàØ × äÐÙÛã."
+
+#: engines/gob/inter_v2.cpp:1353 engines/tinsel/saveload.cpp:553
+msgid "Failed to save game state to file."
+msgstr "½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ áâÐÝ ÓàØ ã äÐÙÛ."
+
+#: engines/gob/inter_v5.cpp:107
+msgid "Failed to delete file."
+msgstr "½Õ ÒÔÐÛÞáï ÒØÔÐÛØâØ äÐÙÛ."
+
+#: engines/groovie/script.cpp:420
+msgid "Failed to save game"
+msgstr "½Õ ÒÔÐÛÞáï ×ÐßØáÐâØ Óàã"
+
+#: engines/kyra/sound_midi.cpp:475
+msgid ""
+"You appear to be using a General MIDI device,\n"
+"but your game only supports Roland MT32 MIDI.\n"
+"We try to map the Roland MT32 instruments to\n"
+"General MIDI ones. After all it might happen\n"
+"that a few tracks will not be correctly played."
+msgstr ""
+"·ÔÐôâìáï, éÞ ²Ø ÒØÚÞàØáâÞÒãôâÕ ßàØáâàöÙ General\n"
+"MIDI, ÐÛÕ ²ÐèÐ ÓàÐ ßöÔâàØÜãô âöÛìÚØ Roland MT32\n"
+"MIDI. ¼Ø áßàÞÑãôÜÞ ×ÐÜÐßØâØ öÝáâàãÜÕÝâØ Roland\n"
+"MT32 ÝÐ General MIDI. °ÛÕ Ò àÕ×ãÛìâÐâö ÜÞÖÕ\n"
+"áâÐâØáï, éÞ ÔÕïÚö âàÕÚØ ÑãÔãâì ÓàÐâØ ÝÕßàÐÒØÛìÝÞ."
+
+#: engines/m4/m4_menus.cpp:138
+msgid "Save game failed!"
+msgstr "½Õ ÒÔÐÛÞáï ×ÑÕàÕÓâØ Óàã!"
+
+#: engines/sky/compact.cpp:130
+msgid ""
+"Unable to find \"sky.cpt\" file!\n"
+"Please download it from www.scummvm.org"
+msgstr ""
+"½Õ ÒÔÐÛÞáï ×ÝÐÙâØ äÐÙÛ sky.cpt!\n"
+"±ãÔì ÛÐáÚÐ, ×ÐÒÐÝâÐÖâÕ ÙÞÓÞ × www.scummvm.org"
+
+#: engines/sky/compact.cpp:141
+msgid ""
+"The \"sky.cpt\" file has an incorrect size.\n"
+"Please (re)download it from www.scummvm.org"
+msgstr ""
+"ÄÐÙÛ sky.cpt ÜÐô ÝÕÒöàÝØÙ àÞ×Üöà.\n"
+"±ãÔì ÛÐáÚÐ, (ßÕàÕ)×ÐÒÐÝâÐÖâÕ ÙÞÓÞ × www.scummvm.org"
+
+#: engines/sword1/animation.cpp:344 engines/sword2/animation.cpp:379
+msgid "DXA cutscenes found but ScummVM has been built without zlib support"
+msgstr "·ÝÐÙÔÕÝÞ ×ÐáâÐÒÚØ DXA, ÐÛÕ ScummVM ÑãÒ ßÞÑãÔÞÒÐÝØÙ ÑÕ× ßöÔâàØÜÚØ zlib"
+
+#: engines/sword1/animation.cpp:354 engines/sword2/animation.cpp:389
+msgid "MPEG2 cutscenes are no longer supported"
+msgstr "·ÐáâÐÒÚØ MPEG2 ÑöÛìèÕ ÝÕ ßöÔâàØÜãîâìáï"
+
+#: engines/sword1/animation.cpp:359 engines/sword2/animation.cpp:397
+#, c-format
+msgid "Cutscene '%s' not found"
+msgstr "·ÐáâÐÒÚã '%s' ÝÕ ×ÝÐÙÔÕÝÞ"
+
+#: engines/sword1/control.cpp:863
+msgid ""
+"ScummVM found that you have old savefiles for Broken Sword 1 that should be "
+"converted.\n"
+"The old save game format is no longer supported, so you will not be able to "
+"load your games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked again the next "
+"time you start the game.\n"
+msgstr ""
+"ScummVM ×ÝÐÙèÞÒ, éÞ ²Ø ÜÐôâÕ áâÐàö ×ÑÕàÕÖÕÝÝï öÓÞà ÔÛï Broken Sword 1.\n"
+"·ÑÕàÕÖÕÝÝï ã áâÐàÞÜã äÞàÜÐâö ÝÕ ßöÔâàØÜãîâìáï, ö ²Ø ÝÕ ×ÜÞÖÕâÕ ÷å "
+"×ÐÒÐÝâÐÖØâØ, ïÚéÞ ÝÕ ßÕàÕÒÕÔÕâÕ ã ÝÞÒØÙ äÞàÜÐâ.\n"
+"\n"
+"½ÐâØáÝöâì ¾º, éÞÑ ßÕàÕÒÕáâØ ÷å ×ÐàÐ×, öÝÐÚèÕ ãÕ ßÞÒöÔÞÜÛÕÝÝï ×'ïÒØâìáï ßàØ "
+"ÝÐáâãßÝÞÜã ×ÐßãáÚã ÓàØ.\n"
+
+#: engines/sword1/control.cpp:1232
+#, c-format
+msgid ""
+"Target new save game already exists!\n"
+"Would you like to keep the old save game (%s) or the new one (%s)?\n"
+msgstr ""
+"·ÑÕàÕÖÕÝÝï ÓàØ × âÐÚÞî ÝÐ×ÒÞî ÒÖÕ öáÝãô!\n"
+"ÇØ ÒØ åÞçÕâÕ ÛØèØâØ áâÐàÕ ×ÑÕàÕÖÕÝÝï (%s) ÐÑÞ ÝÞÒÕ (%s)?\n"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the old one"
+msgstr "»ØèØâØ áâÐàÕ"
+
+#: engines/sword1/control.cpp:1235
+msgid "Keep the new one"
+msgstr "²×ïâØ ÝÞÒÕ"
+
+#: engines/sword1/logic.cpp:1633
+msgid "This is the end of the Broken Sword 1 Demo"
+msgstr "½Ð æìÞÜã ×ÐÚöÝçãôâìáï ÔÕÜÞ Broken Sword 1"
+
+#: engines/parallaction/saveload.cpp:133
+#, c-format
+msgid ""
+"Can't save game in slot %i\n"
+"\n"
+msgstr ""
+"½Õ ÜÞÖã ×ÑÕàÕÓâØ Óàã ã áÛÞâ %i\n"
+"\n"
+
+#: engines/parallaction/saveload.cpp:211
+msgid "Loading game..."
+msgstr "·ÐÒÐÝâÐÖãî Óàã..."
+
+#: engines/parallaction/saveload.cpp:226
+msgid "Saving game..."
+msgstr "·ÑÕàÕÖãî Óàã..."
+
+#: engines/parallaction/saveload.cpp:279
+msgid ""
+"ScummVM found that you have old savefiles for Nippon Safes that should be "
+"renamed.\n"
+"The old names are no longer supported, so you will not be able to load your "
+"games if you don't convert them.\n"
+"\n"
+"Press OK to convert them now, otherwise you will be asked next time.\n"
+msgstr ""
+"ScummVM ×ÝÐÙèÞÒ, éÞ ²Ø ÜÐôâÕ áâÐàö ×ÑÕàÕÖÕÝÝï öÓÞà ÔÛï Nippon Safes.\n"
+"·ÑÕàÕÖÕÝÝï ã áâÐàÞÜã äÞàÜÐâö ÝÕ ßöÔâàØÜãîâìáï, ö ²Ø ÝÕ ×ÜÞÖÕâÕ ÷å "
+"×ÐÒÐÝâÐÖØâØ, ïÚéÞ ÝÕ ßÕàÕÒÕÔÕâÕ ã ÝÞÒØÙ äÞàÜÐâ.\n"
+"\n"
+"½ÐâØáÝöâì ¾º, éÞÑ ßÕàÕÒÕáâØ ÷å ×ÐàÐ×, öÝÐÚèÕ ãÕ ßÞÒöÔÞÜÛÕÝÝï ×'ïÒØâìáï ßàØ "
+"ÝÐáâãßÝÞÜã ×ÐßãáÚã ÓàØ.\n"
+
+#: engines/parallaction/saveload.cpp:326
+msgid "ScummVM successfully converted all your savefiles."
+msgstr "ScummVM ãáßöèÝÞ ßÕàÕÒöÒ ãáö ²Ðèö ×ÑÕàÕÖÕÝÝï."
+
+#: engines/parallaction/saveload.cpp:328
+msgid ""
+"ScummVM printed some warnings in your console window and can't guarantee all "
+"your files have been converted.\n"
+"\n"
+"Please report to the team."
+msgstr ""
+"ScummVM ÝÐÔàãÚãÒÐÒ ÔÕïÚö ßÞßÕàÕÔÖÕÝÝï ã ÒöÚÝö ÚÞÝáÞÛö, ö ÝÕÜÐô ÓÐàÐÝâö÷, éÞ "
+"ãáö ²Ðèö äÐÙÛØ ÑãÛÞ ßÕàÕÒÕÔÕÝÞ.\n"
+"\n"
+"±ãÔì ÛÐáÚÐ, ßÞÒöÔÞÜâÕ ßàÞ æÕ ÚÞÜÐÝÔö."
+
+#: audio/fmopl.cpp:49
+msgid "MAME OPL emulator"
+msgstr "µÜãÛïâÞà MAME OPL:"
+
+#: audio/fmopl.cpp:51
+msgid "DOSBox OPL emulator"
+msgstr "µÜãÛïâÞà DOSBox OPL"
+
+#: audio/mididrv.cpp:205
+#, c-format
+msgid ""
+"The selected audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"²ØÑàÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ %s ÝÕ ÑãÛÞ ×ÝÐÙÔÕÝÞ (âÞÑâÞ, ÙÞÓÞ ÜÞÖÕ ÑãâØ "
+"ÒØÜÚÝÕÝÞ ÐÑÞ ÝÕ ßöÔÚÛîçÕÝÞ)."
+
+#: audio/mididrv.cpp:205 audio/mididrv.cpp:217 audio/mididrv.cpp:253
+#: audio/mididrv.cpp:268
+msgid "Attempting to fall back to the next available device..."
+msgstr "½ÐÜÐÓÐîáï ÒØÚÞàØáâÐâØ ÝÐáâãßÝØÙ ÔÞáâãßÝØÙ ßàØáâàöÙ..."
+
+#: audio/mididrv.cpp:217
+#, c-format
+msgid ""
+"The selected audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"²ØÑàÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ %s ÝÕ ÜÞÖÕ ÑãâØ ÒØÚÞàØáâÐÝØÙ. ´ØÒöâìáï äÐÙÛ ÛÞÓã "
+"ÔÛï ÔÞÔÐâÚÞÒÞ÷ öÝäÞàÜÐæö÷."
+
+#: audio/mididrv.cpp:253
+#, c-format
+msgid ""
+"The preferred audio device '%s' was not found (e.g. might be turned off or "
+"disconnected)."
+msgstr ""
+"ÃßÞÔÞÑÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ %s ÝÕ ÑãÛÞ ×ÝÐÙÔÕÝÞ (âÞÑâÞ, ÙÞÓÞ ÜÞÖÕ ÑãâØ "
+"ÒØÜÚÝÕÝÞ ÐÑÞ ÝÕ ßöÔÚÛîçÕÝÞ)."
+
+#: audio/mididrv.cpp:268
+#, c-format
+msgid ""
+"The preferred audio device '%s' cannot be used. See log file for more "
+"information."
+msgstr ""
+"ÃßÞÔÞÑÐÝØÙ ×ÒãÚÞÒØÙ ßàØáâàöÙ %s ÝÕ ÜÞÖÕ ÑãâØ ÒØÚÞàØáâÐÝØÙ. ´ØÒöâìáï äÐÙÛ "
+"ÛÞÓã ÔÛï ÔÞÔÐâÚÞÒÞ÷ öÝäÞàÜÐæö÷."
+
+#: audio/null.h:43
+msgid "No music"
+msgstr "±Õ× Üã×ØÚØ"
+
+#: audio/mods/paula.cpp:189
+msgid "Amiga Audio Emulator"
+msgstr "°ÜöÓÐ °ãÔöÞ µÜãÛïâÞà"
+
+#: audio/softsynth/adlib.cpp:1594
+msgid "AdLib Emulator"
+msgstr "µÜãÛïâÞà AdLib"
+
+#: audio/softsynth/appleiigs.cpp:33
+msgid "Apple II GS Emulator (NOT IMPLEMENTED)"
+msgstr "Apple II GS µÜãÛïâÞà (½µ Àµ°»¦·¾²°½¾)"
+
+#: audio/softsynth/sid.cpp:1430
+msgid "C64 Audio Emulator"
+msgstr "C64 °ãÔöÞ µÜãÛïâÞà"
+
+#: audio/softsynth/mt32.cpp:329
+msgid "Initializing MT-32 Emulator"
+msgstr "½ÐÛÐèâÞÒãî ÕÜãÛïâÞà MT-32"
+
+#: audio/softsynth/mt32.cpp:543
+msgid "MT-32 Emulator"
+msgstr "µÜãÛïâÞà MT-32"
+
+#: audio/softsynth/pcspk.cpp:139
+msgid "PC Speaker Emulator"
+msgstr "µÜãÛïâÞà PC áßöÚÕàÐ"
+
+#: audio/softsynth/pcspk.cpp:158
+msgid "IBM PCjr Emulator"
+msgstr "µÜãÛïâÞà IBM PCjr"
+
+#: backends/keymapper/remap-dialog.cpp:47
+msgid "Keymap:"
+msgstr "¼ÐßÐ ÚÛÐÒöè:"
+
+#: backends/keymapper/remap-dialog.cpp:64
+msgid " (Active)"
+msgstr " (°ÚâØÒÝÐ)"
+
+#: backends/keymapper/remap-dialog.cpp:98
+msgid " (Global)"
+msgstr " (³ÛÞÑÐÛìÝÐ)"
+
+#: backends/keymapper/remap-dialog.cpp:108
+msgid " (Game)"
+msgstr " (¦ÓàØ)"
+
+#: backends/midi/windows.cpp:164
+msgid "Windows MIDI"
+msgstr "Windows MIDI"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:57
+msgid "ScummVM Main Menu"
+msgstr "³ÞÛÞÒÝÕ ÜÕÝî ScummVM"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:63
+msgid "~L~eft handed mode"
+msgstr "»öÒÞàãÚØÙ àÕÖØÜ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:64
+msgid "~I~ndy fight controls"
+msgstr "ºÕàãÒÐÝÝï ÑÞïÜØ Ò Indy"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:65
+msgid "Show mouse cursor"
+msgstr "¿ÞÚÐ×ãÒÐâØ ÚãàáÞà ÜØèö"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:66
+msgid "Snap to edges"
+msgstr "¿àØÚàößØâØ ÔÞ ÚàÐ÷Ò"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:68
+msgid "Touch X Offset"
+msgstr "·ÜöéÕÝÝï ÔÞâØÚöÒ ßÞ Þáö X"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:75
+msgid "Touch Y Offset"
+msgstr "·ÜöéÕÝÝï ÔÞâØÚöÒ ßÞ Þáö Y"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:87
+msgid "Use laptop trackpad-style cursor control"
+msgstr "²ØÚÞàØáâÞÒãÒÐâØ ãßàÐÒÛöÝÝï ÚãàáÞàÞÜ ïÚ ÝÐ âàÕÚßÐÔö ÛÐßâÞßöÒ"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:88
+msgid "Tap for left click, double tap right click"
+msgstr "ÂÐß ÔÛï ÛöÒÞÓÞ ÚÛÐæÐÝÝï, ßÞÔÒöÙÝØÙ âÐß ÔÛï ßàÐÒÞÓÞ ÚÛÐæÐÝÝï"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:90
+msgid "Sensitivity"
+msgstr "ÇãâÛØÒöáâì"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:99
+msgid "Initial top screen scale:"
+msgstr "¿ÞçÐâÚÞÒØÙ ÜÐáèâÐÑ ÒÕàåÝìÞÓÞ ÕÚàÐÝã:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:105
+msgid "Main screen scaling:"
+msgstr "¼ÐáèâÐÑ ÓÞÛÞÒÝÞÓÞ ÕÚàÐÝã:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:107
+msgid "Hardware scale (fast, but low quality)"
+msgstr "ÅÐàÔÒÐàÝÕ ÜÐáèâÐÑãÒÐÝÝï (èÒØÔÚÞ, ÐÛÕ ÝØ×ìÚÞ÷ ïÚÞáâö)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:108
+msgid "Software scale (good quality, but slower)"
+msgstr "¿àÞÓàÐÜÝÕ ÜÐáèâÐÑãÒÐÝÝï (åÞàÞèÐ ïÚöáâì, ÐÛÕ ßÞÒöÛìÝöèÕ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:109
+msgid "Unscaled (you must scroll left and right)"
+msgstr "±Õ× ÜÐáèâÐÑãÒÐÝÝï (âàÕÑÐ ÑãÔÕ ßàÞÚàãçãÒÐâØ ÝÐÛöÒÞ ö ÝÐßàÐÒÞ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:111
+msgid "Brightness:"
+msgstr "ÏáÚàÐÒöáâì:"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:121
+msgid "High quality audio (slower) (reboot)"
+msgstr "²ØáÞÚÐ ïÚöáâì ×ÒãÚã (ßÞÒöÛìÝöèÕ) (àÕÑãâ)"
+
+#: backends/platform/ds/arm9/source/dsoptions.cpp:122
+msgid "Disable power off"
+msgstr "·ÐÑÞàÞÝØâØ ÒØÜÚÝÕÝÝï"
+
+#: backends/platform/iphone/osys_events.cpp:338
+msgid "Mouse-click-and-drag mode enabled."
+msgstr "ÀÕÖØÜ ÜØèö ÚÛöÚÝãâØ-âÐ-âïÓÝãâØ ãÒöÜÚÝÕÝÞ."
+
+#: backends/platform/iphone/osys_events.cpp:340
+msgid "Mouse-click-and-drag mode disabled."
+msgstr "ÀÕÖØÜ ÜØèö ÚÛöÚÝãâØ-âÐ-âïÓÝãâØ ÒØÜÚÝÕÝÞ."
+
+#: backends/platform/iphone/osys_events.cpp:351
+msgid "Touchpad mode enabled."
+msgstr "ÀÕÖØÜ âÐçßÐÔã ãÒöÜÚÝÕÝÞ."
+
+#: backends/platform/iphone/osys_events.cpp:353
+msgid "Touchpad mode disabled."
+msgstr "ÀÕÖØÜ âÐçßÐÔã ÒØÜÚÝÕÝÞ."
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:67
+msgid "Hide ScummVM"
+msgstr "ÁåÞÒÐâØ ScummVM"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:70
+msgid "Hide Others"
+msgstr "ÁåÞÒÐâØ ¦Ýèö"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:74
+msgid "Show All"
+msgstr "¿ÞÚÐ×ÐâØ ²áÕ"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:92
+#: backends/platform/sdl/macosx/appmenu_osx.mm:99
+msgid "Window"
+msgstr "²öÚÝÞ"
+
+#: backends/platform/sdl/macosx/appmenu_osx.mm:95
+msgid "Minimize"
+msgstr "¼öÝöÜö×ãÒÐâØ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:45
+msgid "Normal (no scaling)"
+msgstr "±Õ× ×ÑöÛìèÕÝÝï"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:64
+msgctxt "lowres"
+msgid "Normal (no scaling)"
+msgstr "±Õ× ×ÑöÛìèÕÝÝï"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2146
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:533
+msgid "Enabled aspect ratio correction"
+msgstr "ºÞàÕÚæöî áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ ãÒöÜÚÝÕÝÞ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2152
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:538
+msgid "Disabled aspect ratio correction"
+msgstr "ºÞàÕÚæöî áßöÒÒöÔÝÞèÕÝÝï áâÞàöÝ ÒØÜÚÝÕÝÞ"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2207
+msgid "Active graphics filter:"
+msgstr "¿ÞâÞçÝØÙ ÓàÐäöçÝØÙ äöÛìâà:"
+
+#: backends/graphics/surfacesdl/surfacesdl-graphics.cpp:2249
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:477
+msgid "Windowed mode"
+msgstr "²öÚÞÝÝØÙ àÕÖØÜ"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:130
+msgid "OpenGL Normal"
+msgstr "OpenGL ÝÞàÜÐÛìÝØÙ"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:131
+msgid "OpenGL Conserve"
+msgstr "OpenGL ·ÑÕàÕÖÕÝØÙ"
+
+#: backends/graphics/opengl/opengl-graphics.cpp:132
+msgid "OpenGL Original"
+msgstr "OpenGL ¾àØÓöÝÐÛìÝØÙ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:415
+msgid "Current display mode"
+msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:428
+msgid "Current scale"
+msgstr "¿ÞâÞçÝØÙ ÜÐáèâÐÑ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:558
+msgid "Active filter mode: Linear"
+msgstr "°ÚâØÒÝØÙ àÕÖØÜ äöÛìâàÐæö÷: »öÝöÙÝØÙ"
+
+#: backends/graphics/openglsdl/openglsdl-graphics.cpp:560
+msgid "Active filter mode: Nearest"
+msgstr "°ÚâØÒÝØÙ àÕÖØÜ äöÛìâàÐæö÷: ½ÐÙÑÛØÖçÕ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:38
+#: backends/platform/wince/CEActionsSmartphone.cpp:39
+msgid "Up"
+msgstr "´ÞÓÞàØ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:39
+#: backends/platform/wince/CEActionsSmartphone.cpp:40
+msgid "Down"
+msgstr "´ÞÝØ×ã"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:40
+#: backends/platform/wince/CEActionsSmartphone.cpp:41
+msgid "Left"
+msgstr "½ÐÛöÒÞ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:41
+#: backends/platform/wince/CEActionsSmartphone.cpp:42
+msgid "Right"
+msgstr "½ÐßàÐÒÞ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:42
+#: backends/platform/wince/CEActionsPocket.cpp:60
+#: backends/platform/wince/CEActionsSmartphone.cpp:43
+msgid "Left Click"
+msgstr "»öÒØÙ ÚÛöÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:43
+#: backends/platform/wince/CEActionsSmartphone.cpp:44
+msgid "Right Click"
+msgstr "¿àÐÒØÙ ÚÛöÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:46
+#: backends/platform/wince/CEActionsSmartphone.cpp:47
+msgid "Zone"
+msgstr "·ÞÝÐ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:47
+#: backends/platform/wince/CEActionsPocket.cpp:54
+#: backends/platform/wince/CEActionsSmartphone.cpp:48
+msgid "Multi Function"
+msgstr "¼ãÛìâØäãÝÚæöï"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:48
+msgid "Swap character"
+msgstr "·ÜöÝØâØ ÓÕàÞï"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:49
+msgid "Skip text"
+msgstr "¿àÞßãáâØâØ âÕÚáâ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:51
+msgid "Fast mode"
+msgstr "ÈÒØÔÚØÙ àÕÖØÜ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:53
+msgid "Debugger"
+msgstr "²öÔÛÐÔçØÚ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:54
+msgid "Global menu"
+msgstr "³ÛÞÑÐÛìÝÕ ÜÕÝî"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:55
+msgid "Virtual keyboard"
+msgstr "²öàâãÐÛìÝÐ ÚÛÐÒöÐâãàÐ"
+
+#: backends/platform/symbian/src/SymbianActions.cpp:56
+msgid "Key mapper"
+msgstr "¿àØ×ÝÐçÕÝÝï ÚÛÐÒöè"
+
+#: backends/events/symbiansdl/symbiansdl-events.cpp:184
+msgid "Do you want to quit ?"
+msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÙâØ?"
+
+#: backends/platform/wii/options.cpp:51
+msgid "Video"
+msgstr "²öÔÕÞ"
+
+#: backends/platform/wii/options.cpp:54
+msgid "Current video mode:"
+msgstr "¿ÞâÞçÝØÙ ÒöÔÕÞàÕÖØÜ:"
+
+#: backends/platform/wii/options.cpp:56
+msgid "Double-strike"
+msgstr "¿ÞÔÒöÙÝØÙ ãÔÐà"
+
+#: backends/platform/wii/options.cpp:60
+msgid "Horizontal underscan:"
+msgstr "³ÞàØ×ÞÝâÐÛìÝØÙ underscan:"
+
+#: backends/platform/wii/options.cpp:66
+msgid "Vertical underscan:"
+msgstr "²ÕàâØÚÐÛìÝØÙ underscan:"
+
+#: backends/platform/wii/options.cpp:71
+msgid "Input"
+msgstr "²ÒöÔ"
+
+#: backends/platform/wii/options.cpp:74
+msgid "GC Pad sensitivity:"
+msgstr "ÇãâÛØÒöáâì GC ßÐÔã:"
+
+#: backends/platform/wii/options.cpp:80
+msgid "GC Pad acceleration:"
+msgstr "¿àØáÚÞàÕÝÝï GC ßÐÔã:"
+
+#: backends/platform/wii/options.cpp:86
+msgid "DVD"
+msgstr "DVD"
+
+#: backends/platform/wii/options.cpp:89 backends/platform/wii/options.cpp:101
+msgid "Status:"
+msgstr "ÁâÐÝ:"
+
+#: backends/platform/wii/options.cpp:90 backends/platform/wii/options.cpp:102
+msgid "Unknown"
+msgstr "½ÕÒöÔÞÜÞ"
+
+#: backends/platform/wii/options.cpp:93
+msgid "Mount DVD"
+msgstr "¿öÔÚÛîçØâØ DVD"
+
+#: backends/platform/wii/options.cpp:94
+msgid "Unmount DVD"
+msgstr "²öÔÚÛîçØâØ DVD"
+
+#: backends/platform/wii/options.cpp:98
+msgid "SMB"
+msgstr "SMB"
+
+#: backends/platform/wii/options.cpp:106
+msgid "Server:"
+msgstr "ÁÕàÒÕà:"
+
+#: backends/platform/wii/options.cpp:110
+msgid "Share:"
+msgstr "¼ÕàÕÖÕÒÐ ßÐßÚÐ:"
+
+#: backends/platform/wii/options.cpp:114
+msgid "Username:"
+msgstr "ºÞàØáâãÒÐç:"
+
+#: backends/platform/wii/options.cpp:118
+msgid "Password:"
+msgstr "¿ÐàÞÛì:"
+
+#: backends/platform/wii/options.cpp:121
+msgid "Init network"
+msgstr "½ÐÛÐèâãÒÐÝÝï ÜÕàÕÖö"
+
+#: backends/platform/wii/options.cpp:123
+msgid "Mount SMB"
+msgstr "¿öÔÚÛîçØâØ SMB"
+
+#: backends/platform/wii/options.cpp:124
+msgid "Unmount SMB"
+msgstr "²öÔÚÛîçâØ SMB"
+
+#: backends/platform/wii/options.cpp:143
+msgid "DVD Mounted successfully"
+msgstr "DVD ßöÔÚÛîçÕÝÞ ãáßöèÝÞ"
+
+#: backends/platform/wii/options.cpp:146
+msgid "Error while mounting the DVD"
+msgstr "¿ÞÜØÛÚÐ ßöÔ çÐá ßöÔÚÛîçÕÝÝï DVD"
+
+#: backends/platform/wii/options.cpp:148
+msgid "DVD not mounted"
+msgstr "DVD ÝÕ ßöÔÚÛîçÕÝÞ"
+
+#: backends/platform/wii/options.cpp:161
+msgid "Network up, share mounted"
+msgstr "¼ÕàÕÖÐ ßàÐæîô, ßÐßÚã ßöÔÚÛîçÕÝÞ"
+
+#: backends/platform/wii/options.cpp:163
+msgid "Network up"
+msgstr "¼ÕàÕÖÐ ßàÐæîô"
+
+#: backends/platform/wii/options.cpp:166
+msgid ", error while mounting the share"
+msgstr ", ßÞÜØÛÚÐ ßöÔ çÐá ßöÔÚÛîçÕÝÝï ßÐßÚØ"
+
+#: backends/platform/wii/options.cpp:168
+msgid ", share not mounted"
+msgstr ", ßÐßÚã ÝÕ ßöÔÚÛîçÕÝÞ"
+
+#: backends/platform/wii/options.cpp:174
+msgid "Network down"
+msgstr "¼ÕàÕÖã ÒØÜÚÝÕÝÞ"
+
+#: backends/platform/wii/options.cpp:178
+msgid "Initializing network"
+msgstr "½ÐÛÐèâÞÒãî ÜÕàÕÖã"
+
+#: backends/platform/wii/options.cpp:182
+msgid "Timeout while initializing network"
+msgstr "ÇÐá ßöÔÚÛîçÕÝÝï ÔÞ ÜÕàÕÖö ÒØÙèÞÒ"
+
+#: backends/platform/wii/options.cpp:186
+#, c-format
+msgid "Network not initialized (%d)"
+msgstr "¼ÕàÕÖã ÝÕ ÝÐÛÐèâÞÒÐÝÞ (%d)"
+
+#: backends/platform/wince/CEActionsPocket.cpp:46
+msgid "Hide Toolbar"
+msgstr "·ÐåÞÒÐâØ ßÐÝÕÛì öÝáâàãÜÕÝâöÒ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:47
+msgid "Show Keyboard"
+msgstr "¿ÞÚÐ×ÐâØ ÚÛÐÒöÐâãàã"
+
+#: backends/platform/wince/CEActionsPocket.cpp:48
+msgid "Sound on/off"
+msgstr "·ÒãÚ ãÒöÜ/ÒØÜÚ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:49
+msgid "Right click"
+msgstr "¿àÐÒØÙ ÚÛöÚ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:50
+msgid "Show/Hide Cursor"
+msgstr "¿ÞÚÐ×ÐâØ/áåÞÒÐâØ ÚãàáÞà"
+
+#: backends/platform/wince/CEActionsPocket.cpp:51
+msgid "Free look"
+msgstr "²öÛìÝØÙ ÞÓÛïÔ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:52
+msgid "Zoom up"
+msgstr "·ÑöÛ. ÜÐèâÐÑ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:53
+msgid "Zoom down"
+msgstr "·ÜÝè. ÜÐèâÐÑ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:55
+#: backends/platform/wince/CEActionsSmartphone.cpp:49
+msgid "Bind Keys"
+msgstr "¿àØ×ÝÐçØâØ ÚÛÐÒöèö"
+
+#: backends/platform/wince/CEActionsPocket.cpp:56
+msgid "Cursor Up"
+msgstr "ºãàáÞà ÔÞÓÞàØ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:57
+msgid "Cursor Down"
+msgstr "ºãàáÞà ÔÞÝØ×ã"
+
+#: backends/platform/wince/CEActionsPocket.cpp:58
+msgid "Cursor Left"
+msgstr "ºãàáÞà ÝÐÛöÒÞ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:59
+msgid "Cursor Right"
+msgstr "ºãàáÞà ÝÐßàÐÒÞ"
+
+#: backends/platform/wince/CEActionsPocket.cpp:267
+#: backends/platform/wince/CEActionsSmartphone.cpp:231
+msgid "Do you want to load or save the game?"
+msgstr "²Ø åÞçÕâÕ ×ÐÒÐÝâÐÖØâØ ÐÑÞ ×ÑÕàÕÓâØ Óàã?"
+
+#: backends/platform/wince/CEActionsPocket.cpp:326
+#: backends/platform/wince/CEActionsSmartphone.cpp:287
+msgid " Are you sure you want to quit ? "
+msgstr " ²Ø ãßÕÒÝÕÝö, éÞ åÞçÕâÕ ÒØÙâØ? "
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:50
+msgid "Keyboard"
+msgstr "ºÛÐÒöÐâãàÐ"
+
+#: backends/platform/wince/CEActionsSmartphone.cpp:51
+msgid "Rotate"
+msgstr "¿ÞÒÕàÝãâØ"
+
+#: backends/platform/wince/CELauncherDialog.cpp:56
+msgid "Using SDL driver "
+msgstr "²ØÚÞàØáâÞÒãî ÔàÐÙÒÕà SDL "
+
+#: backends/platform/wince/CELauncherDialog.cpp:60
+msgid "Display "
+msgstr "¿ÞÚÐ×ÐâØ "
+
+#: backends/platform/wince/CELauncherDialog.cpp:83
+msgid "Do you want to perform an automatic scan ?"
+msgstr "²Ø åÞçÕâÕ ×ÔöÙáÝØâØ ÐÒâÞÜÐâØçÝØÙ ßÞèãÚ?"
+
+#: backends/platform/wince/wince-sdl.cpp:471
+msgid "Map right click action"
+msgstr "¿ÕàÕßàØ×ÝÐçÕÝÝï ßàÐÒÞÓÞ ÚÛöÚã"
+
+#: backends/platform/wince/wince-sdl.cpp:475
+msgid "You must map a key to the 'Right Click' action to play this game"
+msgstr "²Ø ßÞÒØÝÝö ßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÞ Ôö÷ '¿àÐÒØÙ ÚÛöÚ', éÞÑ ÓàÐâØ ã æî Óàã"
+
+#: backends/platform/wince/wince-sdl.cpp:484
+msgid "Map hide toolbar action"
+msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.'"
+
+#: backends/platform/wince/wince-sdl.cpp:488
+msgid "You must map a key to the 'Hide toolbar' action to play this game"
+msgstr ""
+"²Ø ßÞÒØÝÝö ßÕàÕßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÛï Ôö÷ 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.', éÞÑ ÓàÐâØ "
+"Ò æî Óàã"
+
+#: backends/platform/wince/wince-sdl.cpp:497
+msgid "Map Zoom Up action (optional)"
+msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî ·ÑöÛìèÕÝÝï (ÝÕÞÑÞÒ'ï×ÚÞÒÞ)"
+
+#: backends/platform/wince/wince-sdl.cpp:500
+msgid "Map Zoom Down action (optional)"
+msgstr "¿ÕàÕßàØ×ÝÐçØâØ Ôöî ·ÜÕÝèÕÝÝï (ÝÕÞÑÞÒ'ï×ÚÞÒÞ)"
+
+#: backends/platform/wince/wince-sdl.cpp:508
+msgid ""
+"Don't forget to map a key to 'Hide Toolbar' action to see the whole inventory"
+msgstr ""
+"½Õ ×ÐÑãÔìâÕ ßÕàÕßàØ×ÝÐçØâØ ÚÝÞßÚã ÔÛï Ôö÷ 'ÁåÞÒÐâØ ¿ÐÝÕÛì öÝáâà.' éÞÑ "
+"ßÞÑÐçØâØ ÒÕáì öÝÒÕÝâÐà"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Do you really want to return to the Launcher?"
+msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ßÞÒÕàÝãâØáï ÔÞ ÓÞÛÞÒÝÞÓÞ ÜÕÝî?"
+
+#: backends/events/default/default-events.cpp:222
+msgid "Launcher"
+msgstr "³ÞÛÞÒÝÕ ÜÕÝî"
+
+#: backends/events/default/default-events.cpp:244
+msgid "Do you really want to quit?"
+msgstr "²Ø ÔöÙáÝÞ åÞçÕâÕ ÒØÙâØ?"
+
+#: backends/events/gph/gph-events.cpp:366
+#: backends/events/gph/gph-events.cpp:409
+#: backends/events/openpandora/op-events.cpp:141
+msgid "Touchscreen 'Tap Mode' - Left Click"
+msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - »öÒØÙ ÚÛöÚ"
+
+#: backends/events/gph/gph-events.cpp:368
+#: backends/events/gph/gph-events.cpp:411
+#: backends/events/openpandora/op-events.cpp:143
+msgid "Touchscreen 'Tap Mode' - Right Click"
+msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - ¿àÐÒØÙ ÚÛöÚ"
+
+#: backends/events/gph/gph-events.cpp:370
+#: backends/events/gph/gph-events.cpp:413
+#: backends/events/openpandora/op-events.cpp:145
+msgid "Touchscreen 'Tap Mode' - Hover (No Click)"
+msgstr "ÀÕÖØÜ ÔÞâØÚã ã âÐçáÚàöÝö - ¿àÞÛöâ (ÑÕ× ÚÛöÚã)"
+
+#: backends/events/gph/gph-events.cpp:390
+msgid "Maximum Volume"
+msgstr "¼ÐÚáØÜÐÛìÝÐ ³ãçÝöáâì"
+
+#: backends/events/gph/gph-events.cpp:392
+msgid "Increasing Volume"
+msgstr "¿öÔÒØéÕÝÝï ÓãçÝÞáâö"
+
+#: backends/events/gph/gph-events.cpp:398
+msgid "Minimal Volume"
+msgstr "¼öÝöÜÐÛìÝÐ ³ãçÝöáâì"
+
+#: backends/events/gph/gph-events.cpp:400
+msgid "Decreasing Volume"
+msgstr "¿ÞÝØÖÕÝÝï ÓãçÝÞáâö"
+
+#: backends/updates/macosx/macosx-updates.mm:65
+msgid "Check for Updates..."
+msgstr "¿ÕàÕÒöàïî ÞÝÞÒÛÕÝÝï..."
+
+#~ msgctxt "lowres"
+#~ msgid "Add Game..."
+#~ msgstr "´ÞÔÐâØ Óàã..."
+
+#~ msgid "Add Game..."
+#~ msgstr "´ÞÔÐâØ Óàã..."
+
+#~ msgid "Discovered %d new games."
+#~ msgstr "·ÝÐÙÔÕÝÞ %d ÝÞÒØå öÓÞà."
+
+#~ msgid "Command line argument not processed"
+#~ msgstr "°àÓãÜÕÝâØ ÚÞÜÐÝÔÝÞÓÞ àïÔÚã ÝÕ ÞÑàÞÑÛÕÝö"
+
+#~ msgid "FM Towns Emulator"
+#~ msgstr "µÜãÛïâÞà FM Towns"
+
+#~ msgid "Invalid Path"
+#~ msgstr "½ÕßàÐÒØÛìÝØÙ èÛïå"
diff --git a/ports.mk b/ports.mk
index 3481b1274a..264a7deca5 100644
--- a/ports.mk
+++ b/ports.mk
@@ -39,6 +39,11 @@ bundle: scummvm-static
mkdir -p $(bundle_name)/Contents/Resources
echo "APPL????" > $(bundle_name)/Contents/PkgInfo
cp $(srcdir)/dists/macosx/Info.plist $(bundle_name)/Contents/
+ifdef USE_SPARKLE
+ mkdir -p $(bundle_name)/Contents/Frameworks
+ cp $(srcdir)/dists/macosx/dsa_pub.pem $(bundle_name)/Contents/Resources/
+ cp -R $(STATICLIBPATH)/Sparkle.framework $(bundle_name)/Contents/Frameworks/
+endif
cp $(srcdir)/icons/scummvm.icns $(bundle_name)/Contents/Resources/
cp $(DIST_FILES_DOCS) $(bundle_name)/
cp $(DIST_FILES_THEMES) $(bundle_name)/Contents/Resources/
@@ -108,6 +113,10 @@ ifdef USE_ZLIB
OSX_ZLIB ?= -lz
endif
+ifdef USE_SPARKLE
+OSX_STATIC_LIBS += -framework Sparkle -F$(STATICLIBPATH)
+endif
+
ifdef USE_TERMCONV
OSX_ICONV ?= -liconv
endif
@@ -143,6 +152,13 @@ osxsnap: bundle
cp $(srcdir)/COPYRIGHT ./ScummVM-snapshot/Copyright\ Holders
cp $(srcdir)/NEWS ./ScummVM-snapshot/News
cp $(srcdir)/README ./ScummVM-snapshot/ScummVM\ ReadMe
+ mkdir ScummVM-snapshot/doc
+ cp $(srcdir)/doc/QuickStart ./ScummVM-snapshot/doc/QuickStart
+ mkdir ScummVM-snapshot/doc/de
+ cp $(srcdir)/doc/de/Liesmich ./ScummVM-snapshot/doc/de/Liesmich
+ cp $(srcdir)/doc/de/Schnellstart ./ScummVM-snapshot/doc/de/Schnellstart
+ mkdir ScummVM-snapshot/doc/fr
+ cp $(srcdir)/doc/fr/QuickStart_fr ./ScummVM-snapshot/doc/fr/QuickStart_fr
/Developer/Tools/SetFile -t ttro -c ttxt ./ScummVM-snapshot/*
/Developer/Tools/CpMac -r $(bundle_name) ./ScummVM-snapshot/
cp $(srcdir)/dists/macosx/DS_Store ./ScummVM-snapshot/.DS_Store
@@ -166,6 +182,9 @@ scummvmwinres.o: $(srcdir)/icons/scummvm.ico $(DIST_FILES_THEMES) $(DIST_FILES_E
win32dist: $(EXECUTABLE)
mkdir -p $(WIN32PATH)
mkdir -p $(WIN32PATH)/graphics
+ mkdir -p $(WIN32PATH)/doc
+ mkdir -p $(WIN32PATH)/doc/de
+ mkdir -p $(WIN32PATH)/doc/fr
$(STRIP) $(EXECUTABLE) -o $(WIN32PATH)/$(EXECUTABLE)
cp $(DIST_FILES_THEMES) $(WIN32PATH)
ifdef DIST_FILES_ENGINEDATA
@@ -177,12 +196,18 @@ endif
cp $(srcdir)/COPYRIGHT $(WIN32PATH)/COPYRIGHT.txt
cp $(srcdir)/NEWS $(WIN32PATH)/NEWS.txt
cp $(srcdir)/README $(WIN32PATH)/README.txt
+ cp $(srcdir)/doc/QuickStart $(WIN32PATH)/doc/QuickStart.txt
+ cp $(srcdir)/doc/de/Schnellstart $(WIN32PATH)/doc/de/Schnellstart.txt
+ cp $(srcdir)/doc/de/Liesmich $(WIN32PATH)/doc/de/Liesmich.txt
+ cp $(srcdir)/doc/fr/QuickStart_fr $(WIN32PATH)/doc/fr/QuickStart_fr.txt
cp /usr/local/README-SDL.txt $(WIN32PATH)
cp /usr/local/bin/SDL.dll $(WIN32PATH)
cp $(srcdir)/dists/win32/graphics/left.bmp $(WIN32PATH)/graphics
cp $(srcdir)/dists/win32/graphics/scummvm-install.ico $(WIN32PATH)/graphics
cp $(srcdir)/dists/win32/ScummVM.iss $(WIN32PATH)
unix2dos $(WIN32PATH)/*.txt
+ unix2dos $(WIN32PATH)/doc/de/*.txt
+ unix2dos $(WIN32PATH)/doc/fr/*.txt
# Special target to create a win32 NSIS installer
win32setup: $(EXECUTABLE)
@@ -231,4 +256,3 @@ endif
# Mark special targets as phony
.PHONY: deb bundle osxsnap win32dist install uninstall ps3pkg
-
diff --git a/test/README b/test/README
index 479b290967..25c378374e 100644
--- a/test/README
+++ b/test/README
@@ -2,4 +2,4 @@ This directory contains some unit tests for ScummVM. They are based on
CxxTest <http://cxxtest.com/>, which you can find in the cxxtest
subdirectory, including its manual.
-To run the unit tests, simply use "make test". \ No newline at end of file
+To run the unit tests, simply use "make test".
diff --git a/test/audio/audiostream.h b/test/audio/audiostream.h
index 1ffb2308ec..b94ee087d0 100644
--- a/test/audio/audiostream.h
+++ b/test/audio/audiostream.h
@@ -206,4 +206,3 @@ public:
testSubLoopingAudioStreamFixedIter(22050, true, 2, 2);
}
};
-
diff --git a/test/audio/helper.h b/test/audio/helper.h
index e0d034aaea..5080c79eef 100644
--- a/test/audio/helper.h
+++ b/test/audio/helper.h
@@ -109,4 +109,3 @@ static Audio::SeekableAudioStream *createSineStream(const int sampleRate, const
}
#endif
-
diff --git a/test/common/algorithm.h b/test/common/algorithm.h
index 4d7e9b2e20..6eecae3635 100644
--- a/test/common/algorithm.h
+++ b/test/common/algorithm.h
@@ -38,30 +38,30 @@ public:
const int arraySorted[] = { 1, 2, 3, 3, 4, 5 };
const int arrayUnsorted[] = { 5, 3, 1, 2, 4, 3 };
- TS_ASSERT_EQUALS(checkSort(arraySorted, arraySorted + ARRAYSIZE(arraySorted), Common::Less<int>()), true);
- TS_ASSERT_EQUALS(checkSort(arraySorted, arraySorted + ARRAYSIZE(arraySorted), Common::Greater<int>()), false);
+ TS_ASSERT_EQUALS(checkSort(arraySorted, ARRAYEND(arraySorted), Common::Less<int>()), true);
+ TS_ASSERT_EQUALS(checkSort(arraySorted, ARRAYEND(arraySorted), Common::Greater<int>()), false);
- TS_ASSERT_EQUALS(checkSort(arrayUnsorted, arrayUnsorted + ARRAYSIZE(arrayUnsorted), Common::Less<int>()), false);
- TS_ASSERT_EQUALS(checkSort(arrayUnsorted, arrayUnsorted + ARRAYSIZE(arrayUnsorted), Common::Greater<int>()), false);
+ TS_ASSERT_EQUALS(checkSort(arrayUnsorted, ARRAYEND(arrayUnsorted), Common::Less<int>()), false);
+ TS_ASSERT_EQUALS(checkSort(arrayUnsorted, ARRAYEND(arrayUnsorted), Common::Greater<int>()), false);
}
void test_pod_sort() {
{
int array[] = { 63, 11, 31, 72, 1, 48, 32, 69, 38, 31 };
- Common::sort(array, array + ARRAYSIZE(array));
- TS_ASSERT_EQUALS(checkSort(array, array + ARRAYSIZE(array), Common::Less<int>()), true);
+ Common::sort(array, ARRAYEND(array));
+ TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
// already sorted
- Common::sort(array, array + ARRAYSIZE(array));
- TS_ASSERT_EQUALS(checkSort(array, array + ARRAYSIZE(array), Common::Less<int>()), true);
+ Common::sort(array, ARRAYEND(array));
+ TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
}
{
int array[] = { 90, 80, 70, 60, 50, 40, 30, 20, 10 };
- Common::sort(array, array + ARRAYSIZE(array));
- TS_ASSERT_EQUALS(checkSort(array, array + ARRAYSIZE(array), Common::Less<int>()), true);
+ Common::sort(array, ARRAYEND(array));
+ TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Less<int>()), true);
- Common::sort(array, array + ARRAYSIZE(array), Common::Greater<int>());
- TS_ASSERT_EQUALS(checkSort(array, array + ARRAYSIZE(array), Common::Greater<int>()), true);
+ Common::sort(array, ARRAYEND(array), Common::Greater<int>());
+ TS_ASSERT_EQUALS(checkSort(array, ARRAYEND(array), Common::Greater<int>()), true);
}
}
@@ -80,4 +80,3 @@ public:
TS_ASSERT_EQUALS(checkSort(list.begin(), list.end(), Common::Less<Item>()), true);
}
};
-
diff --git a/test/common/fixedstack.h b/test/common/fixedstack.h
index 62e536d5fa..9aa00b4680 100644
--- a/test/common/fixedstack.h
+++ b/test/common/fixedstack.h
@@ -79,4 +79,3 @@ public:
TS_ASSERT(!q2.empty());
}
};
-
diff --git a/test/common/math.h b/test/common/math.h
new file mode 100644
index 0000000000..5da0410e8e
--- /dev/null
+++ b/test/common/math.h
@@ -0,0 +1,18 @@
+#include <cxxtest/TestSuite.h>
+
+#include "common/math.h"
+
+class MathTestSuite : public CxxTest::TestSuite
+{
+ public:
+ void test_intLog2() {
+ // Test special case for 0
+ TS_ASSERT_EQUALS(Common::intLog2(0), -1);
+
+ // intLog2 should round the result towards 0
+ TS_ASSERT_EQUALS(Common::intLog2(7), 2);
+
+ // Some simple test for 2^10
+ TS_ASSERT_EQUALS(Common::intLog2(1024), 10);
+ }
+};
diff --git a/test/common/queue.h b/test/common/queue.h
index cadb3979d7..c11f7a31ca 100644
--- a/test/common/queue.h
+++ b/test/common/queue.h
@@ -80,4 +80,3 @@ public:
TS_ASSERT(!q2.empty());
}
};
-
diff --git a/test/common/stack.h b/test/common/stack.h
index 66ba5f5e2b..0b1bcee350 100644
--- a/test/common/stack.h
+++ b/test/common/stack.h
@@ -79,4 +79,3 @@ public:
TS_ASSERT(!q2.empty());
}
};
-
diff --git a/test/common/tokenizer.h b/test/common/tokenizer.h
index 9c14875b81..c6a73d77b7 100644
--- a/test/common/tokenizer.h
+++ b/test/common/tokenizer.h
@@ -55,4 +55,3 @@ public:
}
};
-
diff --git a/test/cxxtest/COPYING b/test/cxxtest/COPYING
index b1e3f5a263..cfe59bcadb 100644
--- a/test/cxxtest/COPYING
+++ b/test/cxxtest/COPYING
@@ -500,5 +500,3 @@ necessary. Here is a sample; alter the names:
Ty Coon, President of Vice
That's all there is to it!
-
-
diff --git a/test/cxxtest/TODO b/test/cxxtest/TODO
index 7a7f926e50..63afa6896a 100644
--- a/test/cxxtest/TODO
+++ b/test/cxxtest/TODO
@@ -31,4 +31,3 @@ Seems logical, since they evolve separately. But then you'd want to download bo
-fomit-frame-pointer
** TS_HEX
-
diff --git a/test/cxxtest/cxxtest.spec b/test/cxxtest/cxxtest.spec
index 0f1ded6c53..c4d0017bb9 100644
--- a/test/cxxtest/cxxtest.spec
+++ b/test/cxxtest/cxxtest.spec
@@ -37,4 +37,3 @@ rm -rf $RPM_BUILD_ROOT
%attr(-, root, root) /usr/include/cxxtest
%attr(-, root, root) /usr/bin/cxxtestgen.pl
%attr(-, root, root) /usr/bin/cxxtestgen.py
-
diff --git a/test/cxxtest/cxxtest/Descriptions.h b/test/cxxtest/cxxtest/Descriptions.h
index c25b88dd99..f0e26cb942 100644
--- a/test/cxxtest/cxxtest/Descriptions.h
+++ b/test/cxxtest/cxxtest/Descriptions.h
@@ -71,4 +71,3 @@ namespace CxxTest
}
#endif // __cxxtest__Descriptions_h__
-
diff --git a/test/cxxtest/cxxtest/DummyDescriptions.cpp b/test/cxxtest/cxxtest/DummyDescriptions.cpp
index 04869bfc06..c8eca15827 100644
--- a/test/cxxtest/cxxtest/DummyDescriptions.cpp
+++ b/test/cxxtest/cxxtest/DummyDescriptions.cpp
@@ -46,4 +46,3 @@ namespace CxxTest
bool DummyWorldDescription::setUp() { return true;}
bool DummyWorldDescription::tearDown() { return true;}
}
-
diff --git a/test/cxxtest/cxxtest/DummyDescriptions.h b/test/cxxtest/cxxtest/DummyDescriptions.h
index 69d1116f84..e3aef921ca 100644
--- a/test/cxxtest/cxxtest/DummyDescriptions.h
+++ b/test/cxxtest/cxxtest/DummyDescriptions.h
@@ -73,4 +73,3 @@ namespace CxxTest
}
#endif // __cxxtest__DummyDescriptions_h__
-
diff --git a/test/cxxtest/cxxtest/GlobalFixture.cpp b/test/cxxtest/cxxtest/GlobalFixture.cpp
index edcaf1efe4..a5b2cf8340 100644
--- a/test/cxxtest/cxxtest/GlobalFixture.cpp
+++ b/test/cxxtest/cxxtest/GlobalFixture.cpp
@@ -20,4 +20,3 @@ namespace CxxTest
}
#endif // __cxxtest__GlobalFixture_cpp__
-
diff --git a/test/cxxtest/cxxtest/GlobalFixture.h b/test/cxxtest/cxxtest/GlobalFixture.h
index cbecb0daf8..3c4e12ec14 100644
--- a/test/cxxtest/cxxtest/GlobalFixture.h
+++ b/test/cxxtest/cxxtest/GlobalFixture.h
@@ -27,4 +27,3 @@ namespace CxxTest
}
#endif // __cxxtest__GlobalFixture_h__
-
diff --git a/test/cxxtest/cxxtest/LinkedList.h b/test/cxxtest/cxxtest/LinkedList.h
index bb5e842c97..0d134d2712 100644
--- a/test/cxxtest/cxxtest/LinkedList.h
+++ b/test/cxxtest/cxxtest/LinkedList.h
@@ -62,4 +62,3 @@ namespace CxxTest
}
#endif // __cxxtest__LinkedList_h__
-
diff --git a/test/cxxtest/cxxtest/RealDescriptions.cpp b/test/cxxtest/cxxtest/RealDescriptions.cpp
index 234622cbbf..079a9cf056 100644
--- a/test/cxxtest/cxxtest/RealDescriptions.cpp
+++ b/test/cxxtest/cxxtest/RealDescriptions.cpp
@@ -308,4 +308,3 @@ namespace CxxTest
}
#endif // __cxxtest__RealDescriptions_cpp__
-
diff --git a/test/cxxtest/cxxtest/RealDescriptions.h b/test/cxxtest/cxxtest/RealDescriptions.h
index ad455db0c2..76eee1a852 100644
--- a/test/cxxtest/cxxtest/RealDescriptions.h
+++ b/test/cxxtest/cxxtest/RealDescriptions.h
@@ -220,4 +220,3 @@ namespace CxxTest
}
#endif // __cxxtest__RealDescriptions_h__
-
diff --git a/test/cxxtest/docs/guide.html b/test/cxxtest/docs/guide.html
index fb435fb8f1..3e628ff742 100644
--- a/test/cxxtest/docs/guide.html
+++ b/test/cxxtest/docs/guide.html
@@ -1957,4 +1957,3 @@ no limit, or <code>CXXTEST_MAX_DUMP_SIZE</code> if you <code>#define</code> it.
</body></html>
-
diff --git a/test/cxxtest/sample/Construct b/test/cxxtest/sample/Construct
index b8019616a9..994daa4fa5 100644
--- a/test/cxxtest/sample/Construct
+++ b/test/cxxtest/sample/Construct
@@ -60,5 +60,3 @@ sub cons::CxxTestErrorPrinter($$@) {
my ($env, $dst, @srcs) = @_;
CxxTestRunner $env $dst, 'ErrorPrinter', @srcs;
}
-
-
diff --git a/test/cxxtest/sample/aborter.tpl b/test/cxxtest/sample/aborter.tpl
index 14fc50d2c7..ec6e187c98 100644
--- a/test/cxxtest/sample/aborter.tpl
+++ b/test/cxxtest/sample/aborter.tpl
@@ -13,4 +13,3 @@ int main()
// The CxxTest "world"
<CxxTest world>
-
diff --git a/test/cxxtest/sample/file_printer.tpl b/test/cxxtest/sample/file_printer.tpl
index a9627d6d0d..8bd11cada0 100644
--- a/test/cxxtest/sample/file_printer.tpl
+++ b/test/cxxtest/sample/file_printer.tpl
@@ -19,4 +19,3 @@ int main( int argc, char *argv[] )
// The CxxTest "world"
<CxxTest world>
-
diff --git a/test/cxxtest/sample/mock/Dice.cpp b/test/cxxtest/sample/mock/Dice.cpp
index 161b80fa2b..afd0641ac1 100644
--- a/test/cxxtest/sample/mock/Dice.cpp
+++ b/test/cxxtest/sample/mock/Dice.cpp
@@ -10,5 +10,3 @@ unsigned Dice::roll()
{
return (T::rand() % 6) + 1;
}
-
-
diff --git a/test/cxxtest/sample/mock/Dice.h b/test/cxxtest/sample/mock/Dice.h
index 3a393ef262..2ffd2562c5 100644
--- a/test/cxxtest/sample/mock/Dice.h
+++ b/test/cxxtest/sample/mock/Dice.h
@@ -10,4 +10,3 @@ public:
};
#endif // __DICE_H
-
diff --git a/test/cxxtest/sample/msvc/CxxTest_Workspace.dsw b/test/cxxtest/sample/msvc/CxxTest_Workspace.dsw
index 9a88de6ef7..e59b75c11c 100644
--- a/test/cxxtest/sample/msvc/CxxTest_Workspace.dsw
+++ b/test/cxxtest/sample/msvc/CxxTest_Workspace.dsw
@@ -56,4 +56,3 @@ Package=<3>
}}}
###############################################################################
-
diff --git a/test/cxxtest/sample/only.tpl b/test/cxxtest/sample/only.tpl
index b2a7277cf6..12fde95224 100644
--- a/test/cxxtest/sample/only.tpl
+++ b/test/cxxtest/sample/only.tpl
@@ -30,4 +30,3 @@ int main( int argc, char *argv[] )
// The CxxTest "world"
<CxxTest world>
-
diff --git a/test/cxxtest/sample/winddk/SOURCES b/test/cxxtest/sample/winddk/SOURCES
index dae0148885..3129141d8a 100644
--- a/test/cxxtest/sample/winddk/SOURCES
+++ b/test/cxxtest/sample/winddk/SOURCES
@@ -43,4 +43,3 @@ SOURCES=RunTests.cpp
# This line tells the build utility to process Makefile.inc
#
NTTARGETFILE0=RunTests.cpp
-
diff --git a/video/bink_decoder.cpp b/video/bink_decoder.cpp
new file mode 100644
index 0000000000..c02042f972
--- /dev/null
+++ b/video/bink_decoder.cpp
@@ -0,0 +1,1634 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' Bink decoder which is in turn
+// based quite heavily on the Bink decoder found in FFmpeg.
+// Many thanks to Kostya Shishkov for doing the hard work.
+
+#include "audio/decoders/raw.h"
+
+#include "common/util.h"
+#include "common/textconsole.h"
+#include "common/math.h"
+#include "common/stream.h"
+#include "common/file.h"
+#include "common/str.h"
+#include "common/bitstream.h"
+#include "common/huffman.h"
+#include "common/rdft.h"
+#include "common/dct.h"
+#include "common/system.h"
+
+#include "graphics/yuv_to_rgb.h"
+#include "graphics/surface.h"
+
+#include "video/binkdata.h"
+#include "video/bink_decoder.h"
+
+static const uint32 kBIKfID = MKTAG('B', 'I', 'K', 'f');
+static const uint32 kBIKgID = MKTAG('B', 'I', 'K', 'g');
+static const uint32 kBIKhID = MKTAG('B', 'I', 'K', 'h');
+static const uint32 kBIKiID = MKTAG('B', 'I', 'K', 'i');
+
+static const uint32 kVideoFlagAlpha = 0x00100000;
+
+static const uint16 kAudioFlagDCT = 0x1000;
+static const uint16 kAudioFlagStereo = 0x2000;
+
+// Number of bits used to store first DC value in bundle
+static const uint32 kDCStartBits = 11;
+
+namespace Video {
+
+BinkDecoder::VideoFrame::VideoFrame() : bits(0) {
+}
+
+BinkDecoder::VideoFrame::~VideoFrame() {
+ delete bits;
+}
+
+
+BinkDecoder::AudioTrack::AudioTrack() : bits(0), bands(0), rdft(0), dct(0) {
+}
+
+BinkDecoder::AudioTrack::~AudioTrack() {
+ delete bits;
+
+ delete[] bands;
+
+ delete rdft;
+ delete dct;
+}
+
+
+BinkDecoder::BinkDecoder() {
+ _bink = 0;
+ _audioTrack = 0;
+
+ for (int i = 0; i < 16; i++)
+ _huffman[i] = 0;
+
+ for (int i = 0; i < kSourceMAX; i++) {
+ _bundles[i].countLength = 0;
+
+ _bundles[i].huffman.index = 0;
+ for (int j = 0; j < 16; j++)
+ _bundles[i].huffman.symbols[j] = j;
+
+ _bundles[i].data = 0;
+ _bundles[i].dataEnd = 0;
+ _bundles[i].curDec = 0;
+ _bundles[i].curPtr = 0;
+ }
+
+ for (int i = 0; i < 16; i++) {
+ _colHighHuffman[i].index = 0;
+ for (int j = 0; j < 16; j++)
+ _colHighHuffman[i].symbols[j] = j;
+ }
+
+ for (int i = 0; i < 4; i++) {
+ _curPlanes[i] = 0;
+ _oldPlanes[i] = 0;
+ }
+
+ _audioStream = 0;
+ _audioStarted = false;
+}
+
+BinkDecoder::~BinkDecoder() {
+ close();
+}
+
+void BinkDecoder::close() {
+ reset();
+
+ if (_audioStream) {
+ // Stop audio
+ g_system->getMixer()->stopHandle(_audioHandle);
+ _audioStream = 0;
+ }
+
+ _audioStarted = false;
+
+ for (int i = 0; i < 4; i++) {
+ delete[] _curPlanes[i]; _curPlanes[i] = 0;
+ delete[] _oldPlanes[i]; _oldPlanes[i] = 0;
+ }
+
+ deinitBundles();
+
+ for (int i = 0; i < 16; i++) {
+ delete _huffman[i];
+ _huffman[i] = 0;
+ }
+
+ delete _bink; _bink = 0;
+ _surface.free();
+
+ _audioTrack = 0;
+
+ for (int i = 0; i < kSourceMAX; i++) {
+ _bundles[i].countLength = 0;
+
+ _bundles[i].huffman.index = 0;
+ for (int j = 0; j < 16; j++)
+ _bundles[i].huffman.symbols[j] = j;
+
+ _bundles[i].data = 0;
+ _bundles[i].dataEnd = 0;
+ _bundles[i].curDec = 0;
+ _bundles[i].curPtr = 0;
+ }
+
+ for (int i = 0; i < 16; i++) {
+ _colHighHuffman[i].index = 0;
+ for (int j = 0; j < 16; j++)
+ _colHighHuffman[i].symbols[j] = j;
+ }
+
+ _audioTracks.clear();
+ _frames.clear();
+}
+
+uint32 BinkDecoder::getElapsedTime() const {
+ if (_audioStream && g_system->getMixer()->isSoundHandleActive(_audioHandle))
+ return g_system->getMixer()->getSoundElapsedTime(_audioHandle);
+
+ return g_system->getMillis() - _startTime;
+}
+
+const Graphics::Surface *BinkDecoder::decodeNextFrame() {
+ if (endOfVideo())
+ return 0;
+
+ VideoFrame &frame = _frames[_curFrame + 1];
+
+ if (!_bink->seek(frame.offset))
+ error("Bad bink seek");
+
+ uint32 frameSize = frame.size;
+
+ for (uint32 i = 0; i < _audioTracks.size(); i++) {
+ AudioTrack &audio = _audioTracks[i];
+
+ uint32 audioPacketLength = _bink->readUint32LE();
+
+ frameSize -= 4;
+
+ if (frameSize < audioPacketLength)
+ error("Audio packet too big for the frame");
+
+ if (audioPacketLength >= 4) {
+ if (i == _audioTrack) {
+ // Only play one audio track
+
+ // Number of samples in bytes
+ audio.sampleCount = _bink->readUint32LE() / (2 * audio.channels);
+
+ audio.bits = new Common::BitStream32LE(*_bink, (audioPacketLength - 4) * 8);
+
+ audioPacket(audio);
+
+ delete audio.bits;
+ audio.bits = 0;
+
+ } else
+ // Skip the rest
+ _bink->skip(audioPacketLength);
+
+ frameSize -= audioPacketLength;
+ }
+ }
+
+ frame.bits = new Common::BitStream32LE(*_bink, frameSize * 8);
+
+ videoPacket(frame);
+
+ delete frame.bits;
+ frame.bits = 0;
+
+ _curFrame++;
+ if (_curFrame == 0)
+ _startTime = g_system->getMillis();
+
+ if (!_audioStarted && _audioStream) {
+ _audioStarted = true;
+ g_system->getMixer()->playStream(Audio::Mixer::kPlainSoundType, &_audioHandle, _audioStream);
+ }
+
+ return &_surface;
+}
+
+void BinkDecoder::audioPacket(AudioTrack &audio) {
+ if (!_audioStream)
+ return;
+
+ int outSize = audio.frameLen * audio.channels;
+ while (audio.bits->pos() < audio.bits->size()) {
+ int16 *out = (int16 *)malloc(outSize * 2);
+ memset(out, 0, outSize * 2);
+
+ audioBlock(audio, out);
+
+ byte flags = Audio::FLAG_16BITS;
+ if (audio.outChannels == 2)
+ flags |= Audio::FLAG_STEREO;
+
+#ifdef SCUMM_LITTLE_ENDIAN
+ flags |= Audio::FLAG_LITTLE_ENDIAN;
+#endif
+
+ _audioStream->queueBuffer((byte *)out, audio.blockSize * 2, DisposeAfterUse::YES, flags);
+
+ if (audio.bits->pos() & 0x1F) // next data block starts at a 32-byte boundary
+ audio.bits->skip(32 - (audio.bits->pos() & 0x1F));
+ }
+}
+
+void BinkDecoder::videoPacket(VideoFrame &video) {
+ assert(video.bits);
+
+ if (_hasAlpha) {
+ if (_id == kBIKiID)
+ video.bits->skip(32);
+
+ decodePlane(video, 3, false);
+ }
+
+ if (_id == kBIKiID)
+ video.bits->skip(32);
+
+ for (int i = 0; i < 3; i++) {
+ int planeIdx = ((i == 0) || !_swapPlanes) ? i : (i ^ 3);
+
+ decodePlane(video, planeIdx, i != 0);
+
+ if (video.bits->pos() >= video.bits->size())
+ break;
+ }
+
+ // Convert the YUV data we have to our format
+ // We're ignoring alpha for now
+ assert(_curPlanes[0] && _curPlanes[1] && _curPlanes[2]);
+ Graphics::convertYUV420ToRGB(&_surface, _curPlanes[0], _curPlanes[1], _curPlanes[2],
+ _surface.w, _surface.h, _surface.w, _surface.w >> 1);
+
+ // And swap the planes with the reference planes
+ for (int i = 0; i < 4; i++)
+ SWAP(_curPlanes[i], _oldPlanes[i]);
+}
+
+void BinkDecoder::decodePlane(VideoFrame &video, int planeIdx, bool isChroma) {
+
+ uint32 blockWidth = isChroma ? ((_surface.w + 15) >> 4) : ((_surface.w + 7) >> 3);
+ uint32 blockHeight = isChroma ? ((_surface.h + 15) >> 4) : ((_surface.h + 7) >> 3);
+ uint32 width = isChroma ? (_surface.w >> 1) : _surface.w;
+ uint32 height = isChroma ? (_surface.h >> 1) : _surface.h;
+
+ DecodeContext ctx;
+
+ ctx.video = &video;
+ ctx.planeIdx = planeIdx;
+ ctx.destStart = _curPlanes[planeIdx];
+ ctx.destEnd = _curPlanes[planeIdx] + width * height;
+ ctx.prevStart = _oldPlanes[planeIdx];
+ ctx.prevEnd = _oldPlanes[planeIdx] + width * height;
+ ctx.pitch = width;
+
+ for (int i = 0; i < 64; i++) {
+ ctx.coordMap[i] = (i & 7) + (i >> 3) * ctx.pitch;
+
+ ctx.coordScaledMap1[i] = ((i & 7) * 2 + 0) + (((i >> 3) * 2 + 0) * ctx.pitch);
+ ctx.coordScaledMap2[i] = ((i & 7) * 2 + 1) + (((i >> 3) * 2 + 0) * ctx.pitch);
+ ctx.coordScaledMap3[i] = ((i & 7) * 2 + 0) + (((i >> 3) * 2 + 1) * ctx.pitch);
+ ctx.coordScaledMap4[i] = ((i & 7) * 2 + 1) + (((i >> 3) * 2 + 1) * ctx.pitch);
+ }
+
+ for (int i = 0; i < kSourceMAX; i++) {
+ _bundles[i].countLength = _bundles[i].countLengths[isChroma ? 1 : 0];
+
+ readBundle(video, (Source) i);
+ }
+
+ for (ctx.blockY = 0; ctx.blockY < blockHeight; ctx.blockY++) {
+ readBlockTypes (video, _bundles[kSourceBlockTypes]);
+ readBlockTypes (video, _bundles[kSourceSubBlockTypes]);
+ readColors (video, _bundles[kSourceColors]);
+ readPatterns (video, _bundles[kSourcePattern]);
+ readMotionValues(video, _bundles[kSourceXOff]);
+ readMotionValues(video, _bundles[kSourceYOff]);
+ readDCS (video, _bundles[kSourceIntraDC], kDCStartBits, false);
+ readDCS (video, _bundles[kSourceInterDC], kDCStartBits, true);
+ readRuns (video, _bundles[kSourceRun]);
+
+ ctx.dest = ctx.destStart + 8 * ctx.blockY * ctx.pitch;
+ ctx.prev = ctx.prevStart + 8 * ctx.blockY * ctx.pitch;
+
+ for (ctx.blockX = 0; ctx.blockX < blockWidth; ctx.blockX++, ctx.dest += 8, ctx.prev += 8) {
+ BlockType blockType = (BlockType) getBundleValue(kSourceBlockTypes);
+
+ // 16x16 block type on odd line means part of the already decoded block, so skip it
+ if ((ctx.blockY & 1) && (blockType == kBlockScaled)) {
+ ctx.blockX += 1;
+ ctx.dest += 8;
+ ctx.prev += 8;
+ continue;
+ }
+
+ switch (blockType) {
+ case kBlockSkip:
+ blockSkip(ctx);
+ break;
+
+ case kBlockScaled:
+ blockScaled(ctx);
+ break;
+
+ case kBlockMotion:
+ blockMotion(ctx);
+ break;
+
+ case kBlockRun:
+ blockRun(ctx);
+ break;
+
+ case kBlockResidue:
+ blockResidue(ctx);
+ break;
+
+ case kBlockIntra:
+ blockIntra(ctx);
+ break;
+
+ case kBlockFill:
+ blockFill(ctx);
+ break;
+
+ case kBlockInter:
+ blockInter(ctx);
+ break;
+
+ case kBlockPattern:
+ blockPattern(ctx);
+ break;
+
+ case kBlockRaw:
+ blockRaw(ctx);
+ break;
+
+ default:
+ error("Unknown block type: %d", blockType);
+ }
+
+ }
+
+ }
+
+ if (video.bits->pos() & 0x1F) // next plane data starts at 32-bit boundary
+ video.bits->skip(32 - (video.bits->pos() & 0x1F));
+
+}
+
+void BinkDecoder::readBundle(VideoFrame &video, Source source) {
+ if (source == kSourceColors) {
+ for (int i = 0; i < 16; i++)
+ readHuffman(video, _colHighHuffman[i]);
+
+ _colLastVal = 0;
+ }
+
+ if ((source != kSourceIntraDC) && (source != kSourceInterDC))
+ readHuffman(video, _bundles[source].huffman);
+
+ _bundles[source].curDec = _bundles[source].data;
+ _bundles[source].curPtr = _bundles[source].data;
+}
+
+void BinkDecoder::readHuffman(VideoFrame &video, Huffman &huffman) {
+ huffman.index = video.bits->getBits(4);
+
+ if (huffman.index == 0) {
+ // The first tree always gives raw nibbles
+
+ for (int i = 0; i < 16; i++)
+ huffman.symbols[i] = i;
+
+ return;
+ }
+
+ byte hasSymbol[16];
+
+ if (video.bits->getBit()) {
+ // Symbol selection
+
+ memset(hasSymbol, 0, 16);
+
+ uint8 length = video.bits->getBits(3);
+ for (int i = 0; i <= length; i++) {
+ huffman.symbols[i] = video.bits->getBits(4);
+ hasSymbol[huffman.symbols[i]] = 1;
+ }
+
+ for (int i = 0; i < 16; i++)
+ if (hasSymbol[i] == 0)
+ huffman.symbols[++length] = i;
+
+ return;
+ }
+
+ // Symbol shuffling
+
+ byte tmp1[16], tmp2[16];
+ byte *in = tmp1, *out = tmp2;
+
+ uint8 depth = video.bits->getBits(2);
+
+ for (int i = 0; i < 16; i++)
+ in[i] = i;
+
+ for (int i = 0; i <= depth; i++) {
+ int size = 1 << i;
+
+ for (int j = 0; j < 16; j += (size << 1))
+ mergeHuffmanSymbols(video, out + j, in + j, size);
+
+ SWAP(in, out);
+ }
+
+ memcpy(huffman.symbols, in, 16);
+}
+
+void BinkDecoder::mergeHuffmanSymbols(VideoFrame &video, byte *dst, const byte *src, int size) {
+ const byte *src2 = src + size;
+ int size2 = size;
+
+ do {
+ if (!video.bits->getBit()) {
+ *dst++ = *src++;
+ size--;
+ } else {
+ *dst++ = *src2++;
+ size2--;
+ }
+
+ } while (size && size2);
+
+ while (size--)
+ *dst++ = *src++;
+ while (size2--)
+ *dst++ = *src2++;
+}
+
+bool BinkDecoder::loadStream(Common::SeekableReadStream *stream) {
+ close();
+
+ _id = stream->readUint32BE();
+ if ((_id != kBIKfID) && (_id != kBIKgID) && (_id != kBIKhID) && (_id != kBIKiID))
+ return false;
+
+ uint32 fileSize = stream->readUint32LE() + 8;
+ uint32 frameCount = stream->readUint32LE();
+ uint32 largestFrameSize = stream->readUint32LE();
+
+ if (largestFrameSize > fileSize) {
+ warning("Largest frame size greater than file size");
+ return false;
+ }
+
+ stream->skip(4);
+
+ uint32 width = stream->readUint32LE();
+ uint32 height = stream->readUint32LE();
+
+ uint32 frameRateNum = stream->readUint32LE();
+ uint32 frameRateDen = stream->readUint32LE();
+ if (frameRateNum == 0 || frameRateDen == 0) {
+ warning("Invalid frame rate (%d/%d)", frameRateNum, frameRateDen);
+ return false;
+ }
+
+ _frameRate = Common::Rational(frameRateNum, frameRateDen);
+ _bink = stream;
+
+ _videoFlags = _bink->readUint32LE();
+
+ uint32 audioTrackCount = _bink->readUint32LE();
+
+ if (audioTrackCount > 1) {
+ warning("More than one audio track found. Using the first one");
+
+ _audioTrack = 0;
+ }
+
+ if (audioTrackCount > 0) {
+ _audioTracks.reserve(audioTrackCount);
+
+ _bink->skip(4 * audioTrackCount);
+
+ // Reading audio track properties
+ for (uint32 i = 0; i < audioTrackCount; i++) {
+ AudioTrack track;
+
+ track.sampleRate = _bink->readUint16LE();
+ track.flags = _bink->readUint16LE();
+
+ _audioTracks.push_back(track);
+
+ initAudioTrack(_audioTracks[i]);
+ }
+
+ _bink->skip(4 * audioTrackCount);
+ }
+
+ // Reading video frame properties
+ _frames.resize(frameCount);
+ for (uint32 i = 0; i < frameCount; i++) {
+ _frames[i].offset = _bink->readUint32LE();
+ _frames[i].keyFrame = _frames[i].offset & 1;
+
+ _frames[i].offset &= ~1;
+
+ if (i != 0)
+ _frames[i - 1].size = _frames[i].offset - _frames[i - 1].offset;
+
+ _frames[i].bits = 0;
+ }
+
+ _frames[frameCount - 1].size = _bink->size() - _frames[frameCount - 1].offset;
+
+ _hasAlpha = _videoFlags & kVideoFlagAlpha;
+ _swapPlanes = (_id == kBIKhID) || (_id == kBIKiID); // BIKh and BIKi swap the chroma planes
+
+ Graphics::PixelFormat format = g_system->getScreenFormat();
+ _surface.create(width, height, format);
+
+ // Give the planes a bit extra space
+ width = _surface.w + 32;
+ height = _surface.h + 32;
+
+ _curPlanes[0] = new byte[ width * height ]; // Y
+ _curPlanes[1] = new byte[(width >> 1) * (height >> 1)]; // U, 1/4 resolution
+ _curPlanes[2] = new byte[(width >> 1) * (height >> 1)]; // V, 1/4 resolution
+ _curPlanes[3] = new byte[ width * height ]; // A
+ _oldPlanes[0] = new byte[ width * height ]; // Y
+ _oldPlanes[1] = new byte[(width >> 1) * (height >> 1)]; // U, 1/4 resolution
+ _oldPlanes[2] = new byte[(width >> 1) * (height >> 1)]; // V, 1/4 resolution
+ _oldPlanes[3] = new byte[ width * height ]; // A
+
+ // Initialize the video with solid black
+ memset(_curPlanes[0], 0, width * height );
+ memset(_curPlanes[1], 0, (width >> 1) * (height >> 1));
+ memset(_curPlanes[2], 0, (width >> 1) * (height >> 1));
+ memset(_curPlanes[3], 255, width * height );
+ memset(_oldPlanes[0], 0, width * height );
+ memset(_oldPlanes[1], 0, (width >> 1) * (height >> 1));
+ memset(_oldPlanes[2], 0, (width >> 1) * (height >> 1));
+ memset(_oldPlanes[3], 255, width * height );
+
+ initBundles();
+ initHuffman();
+
+ if (_audioTrack < _audioTracks.size()) {
+ const AudioTrack &audio = _audioTracks[_audioTrack];
+
+ _audioStream = Audio::makeQueuingAudioStream(audio.outSampleRate, audio.outChannels == 2);
+ }
+
+ return true;
+}
+
+void BinkDecoder::initAudioTrack(AudioTrack &audio) {
+ audio.sampleCount = 0;
+ audio.bits = 0;
+
+ audio.channels = ((audio.flags & kAudioFlagStereo) != 0) ? 2 : 1;
+ audio.codec = ((audio.flags & kAudioFlagDCT ) != 0) ? kAudioCodecDCT : kAudioCodecRDFT;
+
+ if (audio.channels > kAudioChannelsMax)
+ error("Too many audio channels: %d", audio.channels);
+
+ uint32 frameLenBits;
+ // Calculate frame length
+ if (audio.sampleRate < 22050)
+ frameLenBits = 9;
+ else if(audio.sampleRate < 44100)
+ frameLenBits = 10;
+ else
+ frameLenBits = 11;
+
+ audio.frameLen = 1 << frameLenBits;
+
+ audio.outSampleRate = audio.sampleRate;
+ audio.outChannels = audio.channels;
+
+ if (audio.codec == kAudioCodecRDFT) {
+ // RDFT audio already interleaves the samples correctly
+
+ if (audio.channels == 2)
+ frameLenBits++;
+
+ audio.sampleRate *= audio.channels;
+ audio.frameLen *= audio.channels;
+ audio.channels = 1;
+ }
+
+ audio.overlapLen = audio.frameLen / 16;
+ audio.blockSize = (audio.frameLen - audio.overlapLen) * audio.channels;
+ audio.root = 2.0 / sqrt((double)audio.frameLen);
+
+ uint32 sampleRateHalf = (audio.sampleRate + 1) / 2;
+
+ // Calculate number of bands
+ for (audio.bandCount = 1; audio.bandCount < 25; audio.bandCount++)
+ if (sampleRateHalf <= binkCriticalFreqs[audio.bandCount - 1])
+ break;
+
+ audio.bands = new uint32[audio.bandCount + 1];
+
+ // Populate bands
+ audio.bands[0] = 1;
+ for (uint32 i = 1; i < audio.bandCount; i++)
+ audio.bands[i] = binkCriticalFreqs[i - 1] * (audio.frameLen / 2) / sampleRateHalf;
+ audio.bands[audio.bandCount] = audio.frameLen / 2;
+
+ audio.first = true;
+
+ for (uint8 i = 0; i < audio.channels; i++)
+ audio.coeffsPtr[i] = audio.coeffs + i * audio.frameLen;
+
+ audio.codec = ((audio.flags & kAudioFlagDCT) != 0) ? kAudioCodecDCT : kAudioCodecRDFT;
+
+ if (audio.codec == kAudioCodecRDFT)
+ audio.rdft = new Common::RDFT(frameLenBits, Common::RDFT::DFT_C2R);
+ else if (audio.codec == kAudioCodecDCT)
+ audio.dct = new Common::DCT(frameLenBits, Common::DCT::DCT_III);
+}
+
+void BinkDecoder::initBundles() {
+ uint32 bw = (_surface.w + 7) >> 3;
+ uint32 bh = (_surface.h + 7) >> 3;
+ uint32 blocks = bw * bh;
+
+ for (int i = 0; i < kSourceMAX; i++) {
+ _bundles[i].data = new byte[blocks * 64];
+ _bundles[i].dataEnd = _bundles[i].data + blocks * 64;
+ }
+
+ uint32 cbw[2] = { (_surface.w + 7) >> 3, (_surface.w + 15) >> 4 };
+ uint32 cw [2] = { _surface.w , _surface.w >> 1 };
+
+ // Calculate the lengths of an element count in bits
+ for (int i = 0; i < 2; i++) {
+ int width = MAX<uint32>(cw[i], 8);
+
+ _bundles[kSourceBlockTypes ].countLengths[i] = Common::intLog2((width >> 3) + 511) + 1;
+ _bundles[kSourceSubBlockTypes].countLengths[i] = Common::intLog2((width >> 4) + 511) + 1;
+ _bundles[kSourceColors ].countLengths[i] = Common::intLog2((width >> 3)*64 + 511) + 1;
+ _bundles[kSourceIntraDC ].countLengths[i] = Common::intLog2((width >> 3) + 511) + 1;
+ _bundles[kSourceInterDC ].countLengths[i] = Common::intLog2((width >> 3) + 511) + 1;
+ _bundles[kSourceXOff ].countLengths[i] = Common::intLog2((width >> 3) + 511) + 1;
+ _bundles[kSourceYOff ].countLengths[i] = Common::intLog2((width >> 3) + 511) + 1;
+ _bundles[kSourcePattern ].countLengths[i] = Common::intLog2((cbw[i] << 3) + 511) + 1;
+ _bundles[kSourceRun ].countLengths[i] = Common::intLog2((width >> 3)*48 + 511) + 1;
+ }
+}
+
+void BinkDecoder::deinitBundles() {
+ for (int i = 0; i < kSourceMAX; i++)
+ delete[] _bundles[i].data;
+}
+
+void BinkDecoder::initHuffman() {
+ for (int i = 0; i < 16; i++)
+ _huffman[i] = new Common::Huffman(binkHuffmanLengths[i][15], 16, binkHuffmanCodes[i], binkHuffmanLengths[i]);
+}
+
+byte BinkDecoder::getHuffmanSymbol(VideoFrame &video, Huffman &huffman) {
+ return huffman.symbols[_huffman[huffman.index]->getSymbol(*video.bits)];
+}
+
+int32 BinkDecoder::getBundleValue(Source source) {
+ if ((source < kSourceXOff) || (source == kSourceRun))
+ return *_bundles[source].curPtr++;
+
+ if ((source == kSourceXOff) || (source == kSourceYOff))
+ return (int8) *_bundles[source].curPtr++;
+
+ int16 ret = *((int16 *) _bundles[source].curPtr);
+
+ _bundles[source].curPtr += 2;
+
+ return ret;
+}
+
+uint32 BinkDecoder::readBundleCount(VideoFrame &video, Bundle &bundle) {
+ if (!bundle.curDec || (bundle.curDec > bundle.curPtr))
+ return 0;
+
+ uint32 n = video.bits->getBits(bundle.countLength);
+ if (n == 0)
+ bundle.curDec = 0;
+
+ return n;
+}
+
+void BinkDecoder::blockSkip(DecodeContext &ctx) {
+ byte *dest = ctx.dest;
+ byte *prev = ctx.prev;
+
+ for (int j = 0; j < 8; j++, dest += ctx.pitch, prev += ctx.pitch)
+ memcpy(dest, prev, 8);
+}
+
+void BinkDecoder::blockScaledSkip(DecodeContext &ctx) {
+ byte *dest = ctx.dest;
+ byte *prev = ctx.prev;
+
+ for (int j = 0; j < 16; j++, dest += ctx.pitch, prev += ctx.pitch)
+ memcpy(dest, prev, 16);
+}
+
+void BinkDecoder::blockScaledRun(DecodeContext &ctx) {
+ const uint8 *scan = binkPatterns[ctx.video->bits->getBits(4)];
+
+ int i = 0;
+ do {
+ int run = getBundleValue(kSourceRun) + 1;
+
+ i += run;
+ if (i > 64)
+ error("Run went out of bounds");
+
+ if (ctx.video->bits->getBit()) {
+
+ byte v = getBundleValue(kSourceColors);
+ for (int j = 0; j < run; j++, scan++)
+ ctx.dest[ctx.coordScaledMap1[*scan]] =
+ ctx.dest[ctx.coordScaledMap2[*scan]] =
+ ctx.dest[ctx.coordScaledMap3[*scan]] =
+ ctx.dest[ctx.coordScaledMap4[*scan]] = v;
+
+ } else
+ for (int j = 0; j < run; j++, scan++)
+ ctx.dest[ctx.coordScaledMap1[*scan]] =
+ ctx.dest[ctx.coordScaledMap2[*scan]] =
+ ctx.dest[ctx.coordScaledMap3[*scan]] =
+ ctx.dest[ctx.coordScaledMap4[*scan]] = getBundleValue(kSourceColors);
+
+ } while (i < 63);
+
+ if (i == 63)
+ ctx.dest[ctx.coordScaledMap1[*scan]] =
+ ctx.dest[ctx.coordScaledMap2[*scan]] =
+ ctx.dest[ctx.coordScaledMap3[*scan]] =
+ ctx.dest[ctx.coordScaledMap4[*scan]] = getBundleValue(kSourceColors);
+}
+
+void BinkDecoder::blockScaledIntra(DecodeContext &ctx) {
+ int16 block[64];
+ memset(block, 0, 64 * sizeof(int16));
+
+ block[0] = getBundleValue(kSourceIntraDC);
+
+ readDCTCoeffs(*ctx.video, block, true);
+
+ IDCT(block);
+
+ int16 *src = block;
+ byte *dest1 = ctx.dest;
+ byte *dest2 = ctx.dest + ctx.pitch;
+ for (int j = 0; j < 8; j++, dest1 += (ctx.pitch << 1) - 16, dest2 += (ctx.pitch << 1) - 16, src += 8) {
+
+ for (int i = 0; i < 8; i++, dest1 += 2, dest2 += 2)
+ dest1[0] = dest1[1] = dest2[0] = dest2[1] = src[i];
+
+ }
+}
+
+void BinkDecoder::blockScaledFill(DecodeContext &ctx) {
+ byte v = getBundleValue(kSourceColors);
+
+ byte *dest = ctx.dest;
+ for (int i = 0; i < 16; i++, dest += ctx.pitch)
+ memset(dest, v, 16);
+}
+
+void BinkDecoder::blockScaledPattern(DecodeContext &ctx) {
+ byte col[2];
+
+ for (int i = 0; i < 2; i++)
+ col[i] = getBundleValue(kSourceColors);
+
+ byte *dest1 = ctx.dest;
+ byte *dest2 = ctx.dest + ctx.pitch;
+ for (int j = 0; j < 8; j++, dest1 += (ctx.pitch << 1) - 16, dest2 += (ctx.pitch << 1) - 16) {
+ byte v = getBundleValue(kSourcePattern);
+
+ for (int i = 0; i < 8; i++, dest1 += 2, dest2 += 2, v >>= 1)
+ dest1[0] = dest1[1] = dest2[0] = dest2[1] = col[v & 1];
+ }
+}
+
+void BinkDecoder::blockScaledRaw(DecodeContext &ctx) {
+ byte row[8];
+
+ byte *dest1 = ctx.dest;
+ byte *dest2 = ctx.dest + ctx.pitch;
+ for (int j = 0; j < 8; j++, dest1 += (ctx.pitch << 1) - 16, dest2 += (ctx.pitch << 1) - 16) {
+ memcpy(row, _bundles[kSourceColors].curPtr, 8);
+
+ for (int i = 0; i < 8; i++, dest1 += 2, dest2 += 2)
+ dest1[0] = dest1[1] = dest2[0] = dest2[1] = row[i];
+
+ _bundles[kSourceColors].curPtr += 8;
+ }
+}
+
+void BinkDecoder::blockScaled(DecodeContext &ctx) {
+ BlockType blockType = (BlockType) getBundleValue(kSourceSubBlockTypes);
+
+ switch (blockType) {
+ case kBlockRun:
+ blockScaledRun(ctx);
+ break;
+
+ case kBlockIntra:
+ blockScaledIntra(ctx);
+ break;
+
+ case kBlockFill:
+ blockScaledFill(ctx);
+ break;
+
+ case kBlockPattern:
+ blockScaledPattern(ctx);
+ break;
+
+ case kBlockRaw:
+ blockScaledRaw(ctx);
+ break;
+
+ default:
+ error("Invalid 16x16 block type: %d", blockType);
+ }
+
+ ctx.blockX += 1;
+ ctx.dest += 8;
+ ctx.prev += 8;
+}
+
+void BinkDecoder::blockMotion(DecodeContext &ctx) {
+ int8 xOff = getBundleValue(kSourceXOff);
+ int8 yOff = getBundleValue(kSourceYOff);
+
+ byte *dest = ctx.dest;
+ byte *prev = ctx.prev + yOff * ((int32) ctx.pitch) + xOff;
+ if ((prev < ctx.prevStart) || (prev > ctx.prevEnd))
+ error("Copy out of bounds (%d | %d)", ctx.blockX * 8 + xOff, ctx.blockY * 8 + yOff);
+
+ for (int j = 0; j < 8; j++, dest += ctx.pitch, prev += ctx.pitch)
+ memcpy(dest, prev, 8);
+}
+
+void BinkDecoder::blockRun(DecodeContext &ctx) {
+ const uint8 *scan = binkPatterns[ctx.video->bits->getBits(4)];
+
+ int i = 0;
+ do {
+ int run = getBundleValue(kSourceRun) + 1;
+
+ i += run;
+ if (i > 64)
+ error("Run went out of bounds");
+
+ if (ctx.video->bits->getBit()) {
+
+ byte v = getBundleValue(kSourceColors);
+ for (int j = 0; j < run; j++)
+ ctx.dest[ctx.coordMap[*scan++]] = v;
+
+ } else
+ for (int j = 0; j < run; j++)
+ ctx.dest[ctx.coordMap[*scan++]] = getBundleValue(kSourceColors);
+
+ } while (i < 63);
+
+ if (i == 63)
+ ctx.dest[ctx.coordMap[*scan++]] = getBundleValue(kSourceColors);
+}
+
+void BinkDecoder::blockResidue(DecodeContext &ctx) {
+ blockMotion(ctx);
+
+ byte v = ctx.video->bits->getBits(7);
+
+ int16 block[64];
+ memset(block, 0, 64 * sizeof(int16));
+
+ readResidue(*ctx.video, block, v);
+
+ byte *dst = ctx.dest;
+ int16 *src = block;
+ for (int i = 0; i < 8; i++, dst += ctx.pitch, src += 8)
+ for (int j = 0; j < 8; j++)
+ dst[j] += src[j];
+}
+
+void BinkDecoder::blockIntra(DecodeContext &ctx) {
+ int16 block[64];
+ memset(block, 0, 64 * sizeof(int16));
+
+ block[0] = getBundleValue(kSourceIntraDC);
+
+ readDCTCoeffs(*ctx.video, block, true);
+
+ IDCTPut(ctx, block);
+}
+
+void BinkDecoder::blockFill(DecodeContext &ctx) {
+ byte v = getBundleValue(kSourceColors);
+
+ byte *dest = ctx.dest;
+ for (int i = 0; i < 8; i++, dest += ctx.pitch)
+ memset(dest, v, 8);
+}
+
+void BinkDecoder::blockInter(DecodeContext &ctx) {
+ blockMotion(ctx);
+
+ int16 block[64];
+ memset(block, 0, 64 * sizeof(int16));
+
+ block[0] = getBundleValue(kSourceInterDC);
+
+ readDCTCoeffs(*ctx.video, block, false);
+
+ IDCTAdd(ctx, block);
+}
+
+void BinkDecoder::blockPattern(DecodeContext &ctx) {
+ byte col[2];
+
+ for (int i = 0; i < 2; i++)
+ col[i] = getBundleValue(kSourceColors);
+
+ byte *dest = ctx.dest;
+ for (int i = 0; i < 8; i++, dest += ctx.pitch - 8) {
+ byte v = getBundleValue(kSourcePattern);
+
+ for (int j = 0; j < 8; j++, v >>= 1)
+ *dest++ = col[v & 1];
+ }
+}
+
+void BinkDecoder::blockRaw(DecodeContext &ctx) {
+ byte *dest = ctx.dest;
+ byte *data = _bundles[kSourceColors].curPtr;
+ for (int i = 0; i < 8; i++, dest += ctx.pitch, data += 8)
+ memcpy(dest, data, 8);
+
+ _bundles[kSourceColors].curPtr += 64;
+}
+
+void BinkDecoder::readRuns(VideoFrame &video, Bundle &bundle) {
+ uint32 n = readBundleCount(video, bundle);
+ if (n == 0)
+ return;
+
+ byte *decEnd = bundle.curDec + n;
+ if (decEnd > bundle.dataEnd)
+ error("Run value went out of bounds");
+
+ if (video.bits->getBit()) {
+ byte v = video.bits->getBits(4);
+
+ memset(bundle.curDec, v, n);
+ bundle.curDec += n;
+
+ } else
+ while (bundle.curDec < decEnd)
+ *bundle.curDec++ = getHuffmanSymbol(video, bundle.huffman);
+}
+
+void BinkDecoder::readMotionValues(VideoFrame &video, Bundle &bundle) {
+ uint32 n = readBundleCount(video, bundle);
+ if (n == 0)
+ return;
+
+ byte *decEnd = bundle.curDec + n;
+ if (decEnd > bundle.dataEnd)
+ error("Too many motion values");
+
+ if (video.bits->getBit()) {
+ byte v = video.bits->getBits(4);
+
+ if (v) {
+ int sign = -(int)video.bits->getBit();
+ v = (v ^ sign) - sign;
+ }
+
+ memset(bundle.curDec, v, n);
+
+ bundle.curDec += n;
+ return;
+ }
+
+ do {
+ byte v = getHuffmanSymbol(video, bundle.huffman);
+
+ if (v) {
+ int sign = -(int)video.bits->getBit();
+ v = (v ^ sign) - sign;
+ }
+
+ *bundle.curDec++ = v;
+
+ } while (bundle.curDec < decEnd);
+}
+
+const uint8 rleLens[4] = { 4, 8, 12, 32 };
+void BinkDecoder::readBlockTypes(VideoFrame &video, Bundle &bundle) {
+ uint32 n = readBundleCount(video, bundle);
+ if (n == 0)
+ return;
+
+ byte *decEnd = bundle.curDec + n;
+ if (decEnd > bundle.dataEnd)
+ error("Too many block type values");
+
+ if (video.bits->getBit()) {
+ byte v = video.bits->getBits(4);
+
+ memset(bundle.curDec, v, n);
+
+ bundle.curDec += n;
+ return;
+ }
+
+ byte last = 0;
+ do {
+
+ byte v = getHuffmanSymbol(video, bundle.huffman);
+
+ if (v < 12) {
+ last = v;
+ *bundle.curDec++ = v;
+ } else {
+ int run = rleLens[v - 12];
+
+ memset(bundle.curDec, last, run);
+
+ bundle.curDec += run;
+ }
+
+ } while (bundle.curDec < decEnd);
+}
+
+void BinkDecoder::readPatterns(VideoFrame &video, Bundle &bundle) {
+ uint32 n = readBundleCount(video, bundle);
+ if (n == 0)
+ return;
+
+ byte *decEnd = bundle.curDec + n;
+ if (decEnd > bundle.dataEnd)
+ error("Too many pattern values");
+
+ byte v;
+ while (bundle.curDec < decEnd) {
+ v = getHuffmanSymbol(video, bundle.huffman);
+ v |= getHuffmanSymbol(video, bundle.huffman) << 4;
+ *bundle.curDec++ = v;
+ }
+}
+
+
+void BinkDecoder::readColors(VideoFrame &video, Bundle &bundle) {
+ uint32 n = readBundleCount(video, bundle);
+ if (n == 0)
+ return;
+
+ byte *decEnd = bundle.curDec + n;
+ if (decEnd > bundle.dataEnd)
+ error("Too many color values");
+
+ if (video.bits->getBit()) {
+ _colLastVal = getHuffmanSymbol(video, _colHighHuffman[_colLastVal]);
+
+ byte v;
+ v = getHuffmanSymbol(video, bundle.huffman);
+ v = (_colLastVal << 4) | v;
+
+ if (_id != kBIKiID) {
+ int sign = ((int8) v) >> 7;
+ v = ((v & 0x7F) ^ sign) - sign;
+ v += 0x80;
+ }
+
+ memset(bundle.curDec, v, n);
+ bundle.curDec += n;
+
+ return;
+ }
+
+ while (bundle.curDec < decEnd) {
+ _colLastVal = getHuffmanSymbol(video, _colHighHuffman[_colLastVal]);
+
+ byte v;
+ v = getHuffmanSymbol(video, bundle.huffman);
+ v = (_colLastVal << 4) | v;
+
+ if (_id != kBIKiID) {
+ int sign = ((int8) v) >> 7;
+ v = ((v & 0x7F) ^ sign) - sign;
+ v += 0x80;
+ }
+ *bundle.curDec++ = v;
+ }
+}
+
+void BinkDecoder::readDCS(VideoFrame &video, Bundle &bundle, int startBits, bool hasSign) {
+ uint32 length = readBundleCount(video, bundle);
+ if (length == 0)
+ return;
+
+ int16 *dest = (int16 *) bundle.curDec;
+
+ int32 v = video.bits->getBits(startBits - (hasSign ? 1 : 0));
+ if (v && hasSign) {
+ int sign = -(int)video.bits->getBit();
+ v = (v ^ sign) - sign;
+ }
+
+ *dest++ = v;
+ length--;
+
+ for (uint32 i = 0; i < length; i += 8) {
+ uint32 length2 = MIN<uint32>(length - i, 8);
+
+ byte bSize = video.bits->getBits(4);
+
+ if (bSize) {
+
+ for (uint32 j = 0; j < length2; j++) {
+ int16 v2 = video.bits->getBits(bSize);
+ if (v2) {
+ int sign = -(int)video.bits->getBit();
+ v2 = (v2 ^ sign) - sign;
+ }
+
+ v += v2;
+ *dest++ = v;
+
+ if ((v < -32768) || (v > 32767))
+ error("DC value went out of bounds: %d", v);
+ }
+
+ } else
+ for (uint32 j = 0; j < length2; j++)
+ *dest++ = v;
+ }
+
+ bundle.curDec = (byte *) dest;
+}
+
+/** Reads 8x8 block of DCT coefficients. */
+void BinkDecoder::readDCTCoeffs(VideoFrame &video, int16 *block, bool isIntra) {
+ int coefCount = 0;
+ int coefIdx[64];
+
+ int listStart = 64;
+ int listEnd = 64;
+
+ int coefList[128]; int modeList[128];
+ coefList[listEnd] = 4; modeList[listEnd++] = 0;
+ coefList[listEnd] = 24; modeList[listEnd++] = 0;
+ coefList[listEnd] = 44; modeList[listEnd++] = 0;
+ coefList[listEnd] = 1; modeList[listEnd++] = 3;
+ coefList[listEnd] = 2; modeList[listEnd++] = 3;
+ coefList[listEnd] = 3; modeList[listEnd++] = 3;
+
+ int bits = video.bits->getBits(4) - 1;
+ for (int mask = 1 << bits; bits >= 0; mask >>= 1, bits--) {
+ int listPos = listStart;
+
+ while (listPos < listEnd) {
+
+ if (!(modeList[listPos] | coefList[listPos]) || !video.bits->getBit()) {
+ listPos++;
+ continue;
+ }
+
+ int ccoef = coefList[listPos];
+ int mode = modeList[listPos];
+
+ switch (mode) {
+ case 0:
+ coefList[listPos] = ccoef + 4;
+ modeList[listPos] = 1;
+ case 2:
+ if (mode == 2) {
+ coefList[listPos] = 0;
+ modeList[listPos++] = 0;
+ }
+ for (int i = 0; i < 4; i++, ccoef++) {
+ if (video.bits->getBit()) {
+ coefList[--listStart] = ccoef;
+ modeList[ listStart] = 3;
+ } else {
+ int t;
+ if (!bits) {
+ t = 1 - (video.bits->getBit() << 1);
+ } else {
+ t = video.bits->getBits(bits) | mask;
+
+ int sign = -(int)video.bits->getBit();
+ t = (t ^ sign) - sign;
+ }
+ block[binkScan[ccoef]] = t;
+ coefIdx[coefCount++] = ccoef;
+ }
+ }
+ break;
+
+ case 1:
+ modeList[listPos] = 2;
+ for (int i = 0; i < 3; i++) {
+ ccoef += 4;
+ coefList[listEnd] = ccoef;
+ modeList[listEnd++] = 2;
+ }
+ break;
+
+ case 3:
+ int t;
+ if (!bits) {
+ t = 1 - (video.bits->getBit() << 1);
+ } else {
+ t = video.bits->getBits(bits) | mask;
+
+ int sign = -(int)video.bits->getBit();
+ t = (t ^ sign) - sign;
+ }
+ block[binkScan[ccoef]] = t;
+ coefIdx[coefCount++] = ccoef;
+ coefList[listPos] = 0;
+ modeList[listPos++] = 0;
+ break;
+ }
+ }
+ }
+
+ uint8 quantIdx = video.bits->getBits(4);
+ const uint32 *quant = isIntra ? binkIntraQuant[quantIdx] : binkInterQuant[quantIdx];
+ block[0] = (block[0] * quant[0]) >> 11;
+
+ for (int i = 0; i < coefCount; i++) {
+ int idx = coefIdx[i];
+ block[binkScan[idx]] = (block[binkScan[idx]] * quant[idx]) >> 11;
+ }
+
+}
+
+/** Reads 8x8 block with residue after motion compensation. */
+void BinkDecoder::readResidue(VideoFrame &video, int16 *block, int masksCount) {
+ int nzCoeff[64];
+ int nzCoeffCount = 0;
+
+ int listStart = 64;
+ int listEnd = 64;
+
+ int coefList[128]; int modeList[128];
+ coefList[listEnd] = 4; modeList[listEnd++] = 0;
+ coefList[listEnd] = 24; modeList[listEnd++] = 0;
+ coefList[listEnd] = 44; modeList[listEnd++] = 0;
+ coefList[listEnd] = 0; modeList[listEnd++] = 2;
+
+ for (int mask = 1 << video.bits->getBits(3); mask; mask >>= 1) {
+
+ for (int i = 0; i < nzCoeffCount; i++) {
+ if (!video.bits->getBit())
+ continue;
+ if (block[nzCoeff[i]] < 0)
+ block[nzCoeff[i]] -= mask;
+ else
+ block[nzCoeff[i]] += mask;
+ masksCount--;
+ if (masksCount < 0)
+ return;
+ }
+
+ int listPos = listStart;
+ while (listPos < listEnd) {
+
+ if (!(coefList[listPos] | modeList[listPos]) || !video.bits->getBit()) {
+ listPos++;
+ continue;
+ }
+
+ int ccoef = coefList[listPos];
+ int mode = modeList[listPos];
+
+ switch (mode) {
+ case 0:
+ coefList[listPos] = ccoef + 4;
+ modeList[listPos] = 1;
+ case 2:
+ if (mode == 2) {
+ coefList[listPos] = 0;
+ modeList[listPos++] = 0;
+ }
+
+ for (int i = 0; i < 4; i++, ccoef++) {
+ if (video.bits->getBit()) {
+ coefList[--listStart] = ccoef;
+ modeList[ listStart] = 3;
+ } else {
+ nzCoeff[nzCoeffCount++] = binkScan[ccoef];
+
+ int sign = -(int)video.bits->getBit();
+ block[binkScan[ccoef]] = (mask ^ sign) - sign;
+
+ masksCount--;
+ if (masksCount < 0)
+ return;
+ }
+ }
+ break;
+
+ case 1:
+ modeList[listPos] = 2;
+ for (int i = 0; i < 3; i++) {
+ ccoef += 4;
+ coefList[listEnd] = ccoef;
+ modeList[listEnd++] = 2;
+ }
+ break;
+
+ case 3:
+ nzCoeff[nzCoeffCount++] = binkScan[ccoef];
+
+ int sign = -(int)video.bits->getBit();
+ block[binkScan[ccoef]] = (mask ^ sign) - sign;
+
+ coefList[listPos] = 0;
+ modeList[listPos++] = 0;
+ masksCount--;
+ if (masksCount < 0)
+ return;
+ break;
+ }
+ }
+ }
+}
+
+float BinkDecoder::getFloat(AudioTrack &audio) {
+ int power = audio.bits->getBits(5);
+
+ float f = ldexp((float)audio.bits->getBits(23), power - 23);
+
+ if (audio.bits->getBit())
+ f = -f;
+
+ return f;
+}
+
+void BinkDecoder::audioBlock(AudioTrack &audio, int16 *out) {
+ if (audio.codec == kAudioCodecDCT)
+ audioBlockDCT (audio);
+ else if (audio.codec == kAudioCodecRDFT)
+ audioBlockRDFT(audio);
+
+ floatToInt16Interleave(out, const_cast<const float **>(audio.coeffsPtr), audio.frameLen, audio.channels);
+
+ if (!audio.first) {
+ int count = audio.overlapLen * audio.channels;
+ int shift = Common::intLog2(count);
+ for (int i = 0; i < count; i++) {
+ out[i] = (audio.prevCoeffs[i] * (count - i) + out[i] * i) >> shift;
+ }
+ }
+
+ memcpy(audio.prevCoeffs, out + audio.blockSize, audio.overlapLen * audio.channels * sizeof(*out));
+
+ audio.first = false;
+}
+
+void BinkDecoder::audioBlockDCT(AudioTrack &audio) {
+ audio.bits->skip(2);
+
+ for (uint8 i = 0; i < audio.channels; i++) {
+ float *coeffs = audio.coeffsPtr[i];
+
+ readAudioCoeffs(audio, coeffs);
+
+ coeffs[0] /= 0.5;
+
+ audio.dct->calc(coeffs);
+
+ for (uint32 j = 0; j < audio.frameLen; j++)
+ coeffs[j] *= (audio.frameLen / 2.0);
+ }
+
+}
+
+void BinkDecoder::audioBlockRDFT(AudioTrack &audio) {
+ for (uint8 i = 0; i < audio.channels; i++) {
+ float *coeffs = audio.coeffsPtr[i];
+
+ readAudioCoeffs(audio, coeffs);
+
+ audio.rdft->calc(coeffs);
+ }
+}
+
+static const uint8 rleLengthTab[16] = {
+ 2, 3, 4, 5, 6, 8, 9, 10, 11, 12, 13, 14, 15, 16, 32, 64
+};
+
+void BinkDecoder::readAudioCoeffs(AudioTrack &audio, float *coeffs) {
+ coeffs[0] = getFloat(audio) * audio.root;
+ coeffs[1] = getFloat(audio) * audio.root;
+
+ float quant[25];
+
+ for (uint32 i = 0; i < audio.bandCount; i++) {
+ int value = audio.bits->getBits(8);
+
+ // 0.066399999 / log10(M_E)
+ quant[i] = exp(MIN(value, 95) * 0.15289164787221953823f) * audio.root;
+ }
+
+ float q = 0.0;
+
+ // Find band (k)
+ int k;
+ for (k = 0; audio.bands[k] < 1; k++)
+ q = quant[k];
+
+ // Parse coefficients
+ uint32 i = 2;
+ while (i < audio.frameLen) {
+
+ uint32 j = 0;
+ if (audio.bits->getBit())
+ j = i + rleLengthTab[audio.bits->getBits(4)] * 8;
+ else
+ j = i + 8;
+
+ j = MIN(j, audio.frameLen);
+
+ int width = audio.bits->getBits(4);
+ if (width == 0) {
+
+ memset(coeffs + i, 0, (j - i) * sizeof(*coeffs));
+ i = j;
+ while (audio.bands[k] * 2 < i)
+ q = quant[k++];
+
+ } else {
+
+ while (i < j) {
+ if (audio.bands[k] * 2 == i)
+ q = quant[k++];
+
+ int coeff = audio.bits->getBits(width);
+ if (coeff) {
+
+ if (audio.bits->getBit())
+ coeffs[i] = -q * coeff;
+ else
+ coeffs[i] = q * coeff;
+
+ } else {
+ coeffs[i] = 0.0;
+ }
+ i++;
+ }
+
+ }
+
+ }
+
+}
+
+static inline int floatToInt16One(float src) {
+ return (int16) CLIP<int>((int) floor(src + 0.5), -32768, 32767);
+}
+
+void BinkDecoder::floatToInt16Interleave(int16 *dst, const float **src, uint32 length, uint8 channels) {
+ if (channels == 2) {
+ for (uint32 i = 0; i < length; i++) {
+ dst[2 * i ] = floatToInt16One(src[0][i]);
+ dst[2 * i + 1] = floatToInt16One(src[1][i]);
+ }
+ } else {
+ for(uint8 c = 0; c < channels; c++)
+ for(uint32 i = 0, j = c; i < length; i++, j += channels)
+ dst[j] = floatToInt16One(src[c][i]);
+ }
+}
+
+#define A1 2896 /* (1/sqrt(2))<<12 */
+#define A2 2217
+#define A3 3784
+#define A4 -5352
+
+#define IDCT_TRANSFORM(dest,s0,s1,s2,s3,s4,s5,s6,s7,d0,d1,d2,d3,d4,d5,d6,d7,munge,src) {\
+ const int a0 = (src)[s0] + (src)[s4]; \
+ const int a1 = (src)[s0] - (src)[s4]; \
+ const int a2 = (src)[s2] + (src)[s6]; \
+ const int a3 = (A1*((src)[s2] - (src)[s6])) >> 11; \
+ const int a4 = (src)[s5] + (src)[s3]; \
+ const int a5 = (src)[s5] - (src)[s3]; \
+ const int a6 = (src)[s1] + (src)[s7]; \
+ const int a7 = (src)[s1] - (src)[s7]; \
+ const int b0 = a4 + a6; \
+ const int b1 = (A3*(a5 + a7)) >> 11; \
+ const int b2 = ((A4*a5) >> 11) - b0 + b1; \
+ const int b3 = (A1*(a6 - a4) >> 11) - b2; \
+ const int b4 = ((A2*a7) >> 11) + b3 - b1; \
+ (dest)[d0] = munge(a0+a2 +b0); \
+ (dest)[d1] = munge(a1+a3-a2+b2); \
+ (dest)[d2] = munge(a1-a3+a2+b3); \
+ (dest)[d3] = munge(a0-a2 -b4); \
+ (dest)[d4] = munge(a0-a2 +b4); \
+ (dest)[d5] = munge(a1-a3+a2-b3); \
+ (dest)[d6] = munge(a1+a3-a2-b2); \
+ (dest)[d7] = munge(a0+a2 -b0); \
+}
+/* end IDCT_TRANSFORM macro */
+
+#define MUNGE_NONE(x) (x)
+#define IDCT_COL(dest,src) IDCT_TRANSFORM(dest,0,8,16,24,32,40,48,56,0,8,16,24,32,40,48,56,MUNGE_NONE,src)
+
+#define MUNGE_ROW(x) (((x) + 0x7F)>>8)
+#define IDCT_ROW(dest,src) IDCT_TRANSFORM(dest,0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7,MUNGE_ROW,src)
+
+static inline void IDCTCol(int16 *dest, const int16 *src)
+{
+ if ((src[8] | src[16] | src[24] | src[32] | src[40] | src[48] | src[56]) == 0) {
+ dest[ 0] =
+ dest[ 8] =
+ dest[16] =
+ dest[24] =
+ dest[32] =
+ dest[40] =
+ dest[48] =
+ dest[56] = src[0];
+ } else {
+ IDCT_COL(dest, src);
+ }
+}
+
+void BinkDecoder::IDCT(int16 *block) {
+ int i;
+ int16 temp[64];
+
+ for (i = 0; i < 8; i++)
+ IDCTCol(&temp[i], &block[i]);
+ for (i = 0; i < 8; i++) {
+ IDCT_ROW( (&block[8*i]), (&temp[8*i]) );
+ }
+}
+
+void BinkDecoder::IDCTAdd(DecodeContext &ctx, int16 *block) {
+ int i, j;
+
+ IDCT(block);
+ byte *dest = ctx.dest;
+ for (i = 0; i < 8; i++, dest += ctx.pitch, block += 8)
+ for (j = 0; j < 8; j++)
+ dest[j] += block[j];
+}
+
+void BinkDecoder::IDCTPut(DecodeContext &ctx, int16 *block) {
+ int i;
+ int16 temp[64];
+ for (i = 0; i < 8; i++)
+ IDCTCol(&temp[i], &block[i]);
+ for (i = 0; i < 8; i++) {
+ IDCT_ROW( (&ctx.dest[i*ctx.pitch]), (&temp[8*i]) );
+ }
+}
+
+} // End of namespace Video
diff --git a/video/bink_decoder.h b/video/bink_decoder.h
new file mode 100644
index 0000000000..ceb55391a9
--- /dev/null
+++ b/video/bink_decoder.h
@@ -0,0 +1,334 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+// Based on eos' Bink decoder which is in turn
+// based quite heavily on the Bink decoder found in FFmpeg.
+// Many thanks to Kostya Shishkov for doing the hard work.
+
+#include "common/scummsys.h"
+
+#ifdef USE_BINK
+
+#ifndef VIDEO_BINK_DECODER_H
+#define VIDEO_BINK_DECODER_H
+
+#include "audio/audiostream.h"
+#include "audio/mixer.h"
+#include "common/array.h"
+#include "common/rational.h"
+
+#include "video/video_decoder.h"
+
+namespace Common {
+ class SeekableReadStream;
+ class BitStream;
+ class Huffman;
+
+ class RDFT;
+ class DCT;
+}
+
+namespace Video {
+
+/**
+ * Decoder for Bink videos.
+ *
+ * Video decoder used in engines:
+ * - scumm (he)
+ */
+class BinkDecoder : public FixedRateVideoDecoder {
+public:
+ BinkDecoder();
+ ~BinkDecoder();
+
+ // VideoDecoder API
+ bool loadStream(Common::SeekableReadStream *stream);
+ void close();
+ bool isVideoLoaded() const { return _bink != 0; }
+ uint16 getWidth() const { return _surface.w; }
+ uint16 getHeight() const { return _surface.h; }
+ Graphics::PixelFormat getPixelFormat() const { return _surface.format; }
+ uint32 getFrameCount() const { return _frames.size(); }
+ uint32 getElapsedTime() const;
+ const Graphics::Surface *decodeNextFrame();
+
+ // FixedRateVideoDecoder
+ Common::Rational getFrameRate() const { return _frameRate; }
+
+private:
+ static const int kAudioChannelsMax = 2;
+ static const int kAudioBlockSizeMax = (kAudioChannelsMax << 11);
+
+ /** IDs for different data types used in Bink video codec. */
+ enum Source {
+ kSourceBlockTypes = 0, ///< 8x8 block types.
+ kSourceSubBlockTypes , ///< 16x16 block types (a subset of 8x8 block types).
+ kSourceColors , ///< Pixel values used for different block types.
+ kSourcePattern , ///< 8-bit values for 2-color pattern fill.
+ kSourceXOff , ///< X components of motion value.
+ kSourceYOff , ///< Y components of motion value.
+ kSourceIntraDC , ///< DC values for intrablocks with DCT.
+ kSourceInterDC , ///< DC values for interblocks with DCT.
+ kSourceRun , ///< Run lengths for special fill block.
+
+ kSourceMAX
+ };
+
+ /** Bink video block types. */
+ enum BlockType {
+ kBlockSkip = 0, ///< Skipped block.
+ kBlockScaled , ///< Block has size 16x16.
+ kBlockMotion , ///< Block is copied from previous frame with some offset.
+ kBlockRun , ///< Block is composed from runs of colors with custom scan order.
+ kBlockResidue , ///< Motion block with some difference added.
+ kBlockIntra , ///< Intra DCT block.
+ kBlockFill , ///< Block is filled with single color.
+ kBlockInter , ///< Motion block with DCT applied to the difference.
+ kBlockPattern , ///< Block is filled with two colors following custom pattern.
+ kBlockRaw ///< Uncoded 8x8 block.
+ };
+
+ /** Data structure for decoding and tranlating Huffman'd data. */
+ struct Huffman {
+ int index; ///< Index of the Huffman codebook to use.
+ byte symbols[16]; ///< Huffman symbol => Bink symbol tranlation list.
+ };
+
+ /** Data structure used for decoding a single Bink data type. */
+ struct Bundle {
+ int countLengths[2]; ///< Lengths of number of entries to decode (in bits).
+ int countLength; ///< Length of number of entries to decode (in bits) for the current plane.
+
+ Huffman huffman; ///< Huffman codebook.
+
+ byte *data; ///< Buffer for decoded symbols.
+ byte *dataEnd; ///< Buffer end.
+
+ byte *curDec; ///< Pointer to the data that wasn't yet decoded.
+ byte *curPtr; ///< Pointer to the data that wasn't yet read.
+ };
+
+ enum AudioCodec {
+ kAudioCodecDCT,
+ kAudioCodecRDFT
+ };
+
+ /** An audio track. */
+ struct AudioTrack {
+ uint16 flags;
+
+ uint32 sampleRate;
+ uint8 channels;
+
+ uint32 outSampleRate;
+ uint8 outChannels;
+
+ AudioCodec codec;
+
+ uint32 sampleCount;
+
+ Common::BitStream *bits;
+
+ bool first;
+
+ uint32 frameLen;
+ uint32 overlapLen;
+
+ uint32 blockSize;
+
+ uint32 bandCount;
+ uint32 *bands;
+
+ float root;
+
+ float coeffs[16 * kAudioBlockSizeMax];
+ int16 prevCoeffs[kAudioBlockSizeMax];
+
+ float *coeffsPtr[kAudioChannelsMax];
+
+ Common::RDFT *rdft;
+ Common::DCT *dct;
+
+ AudioTrack();
+ ~AudioTrack();
+ };
+
+ /** A video frame. */
+ struct VideoFrame {
+ bool keyFrame;
+
+ uint32 offset;
+ uint32 size;
+
+ Common::BitStream *bits;
+
+ VideoFrame();
+ ~VideoFrame();
+ };
+
+ /** A decoder state. */
+ struct DecodeContext {
+ VideoFrame *video;
+
+ uint32 planeIdx;
+
+ uint32 blockX;
+ uint32 blockY;
+
+ byte *dest;
+ byte *prev;
+
+ byte *destStart, *destEnd;
+ byte *prevStart, *prevEnd;
+
+ uint32 pitch;
+
+ int coordMap[64];
+ int coordScaledMap1[64];
+ int coordScaledMap2[64];
+ int coordScaledMap3[64];
+ int coordScaledMap4[64];
+ };
+
+ Common::SeekableReadStream *_bink;
+
+ uint32 _id; ///< The BIK FourCC.
+
+ Common::Rational _frameRate;
+
+ Graphics::Surface _surface;
+
+ Audio::SoundHandle _audioHandle;
+ Audio::QueuingAudioStream *_audioStream;
+ bool _audioStarted;
+
+ uint32 _videoFlags; ///< Video frame features.
+
+ bool _hasAlpha; ///< Do video frames have alpha?
+ bool _swapPlanes; ///< Are the planes ordered (A)YVU instead of (A)YUV?
+
+ uint32 _audioFrame;
+
+ Common::Array<AudioTrack> _audioTracks; ///< All audio tracks.
+ Common::Array<VideoFrame> _frames; ///< All video frames.
+
+ uint32 _audioTrack; ///< Audio track to use.
+
+ Common::Huffman *_huffman[16]; ///< The 16 Huffman codebooks used in Bink decoding.
+
+ Bundle _bundles[kSourceMAX]; ///< Bundles for decoding all data types.
+
+ /** Huffman codebooks to use for decoding high nibbles in color data types. */
+ Huffman _colHighHuffman[16];
+ /** Value of the last decoded high nibble in color data types. */
+ int _colLastVal;
+
+ byte *_curPlanes[4]; ///< The 4 color planes, YUVA, current frame.
+ byte *_oldPlanes[4]; ///< The 4 color planes, YUVA, last frame.
+
+
+ /** Initialize the bundles. */
+ void initBundles();
+ /** Deinitialize the bundles. */
+ void deinitBundles();
+
+ /** Initialize the Huffman decoders. */
+ void initHuffman();
+
+ /** Decode an audio packet. */
+ void audioPacket(AudioTrack &audio);
+ /** Decode a video packet. */
+ void videoPacket(VideoFrame &video);
+
+ /** Decode a plane. */
+ void decodePlane(VideoFrame &video, int planeIdx, bool isChroma);
+
+ /** Read/Initialize a bundle for decoding a plane. */
+ void readBundle(VideoFrame &video, Source source);
+
+ /** Read the symbols for a Huffman code. */
+ void readHuffman(VideoFrame &video, Huffman &huffman);
+ /** Merge two Huffman symbol lists. */
+ void mergeHuffmanSymbols(VideoFrame &video, byte *dst, const byte *src, int size);
+
+ /** Read and translate a symbol out of a Huffman code. */
+ byte getHuffmanSymbol(VideoFrame &video, Huffman &huffman);
+
+ /** Get a direct value out of a bundle. */
+ int32 getBundleValue(Source source);
+ /** Read a count value out of a bundle. */
+ uint32 readBundleCount(VideoFrame &video, Bundle &bundle);
+
+ // Handle the block types
+ void blockSkip (DecodeContext &ctx);
+ void blockScaledSkip (DecodeContext &ctx);
+ void blockScaledRun (DecodeContext &ctx);
+ void blockScaledIntra (DecodeContext &ctx);
+ void blockScaledFill (DecodeContext &ctx);
+ void blockScaledPattern(DecodeContext &ctx);
+ void blockScaledRaw (DecodeContext &ctx);
+ void blockScaled (DecodeContext &ctx);
+ void blockMotion (DecodeContext &ctx);
+ void blockRun (DecodeContext &ctx);
+ void blockResidue (DecodeContext &ctx);
+ void blockIntra (DecodeContext &ctx);
+ void blockFill (DecodeContext &ctx);
+ void blockInter (DecodeContext &ctx);
+ void blockPattern (DecodeContext &ctx);
+ void blockRaw (DecodeContext &ctx);
+
+ // Read the bundles
+ void readRuns (VideoFrame &video, Bundle &bundle);
+ void readMotionValues(VideoFrame &video, Bundle &bundle);
+ void readBlockTypes (VideoFrame &video, Bundle &bundle);
+ void readPatterns (VideoFrame &video, Bundle &bundle);
+ void readColors (VideoFrame &video, Bundle &bundle);
+ void readDCS (VideoFrame &video, Bundle &bundle, int startBits, bool hasSign);
+ void readDCTCoeffs (VideoFrame &video, int16 *block, bool isIntra);
+ void readResidue (VideoFrame &video, int16 *block, int masksCount);
+
+ void initAudioTrack(AudioTrack &audio);
+
+ float getFloat(AudioTrack &audio);
+
+ /** Decode an audio block. */
+ void audioBlock (AudioTrack &audio, int16 *out);
+ /** Decode a DCT'd audio block. */
+ void audioBlockDCT (AudioTrack &audio);
+ /** Decode a RDFT'd audio block. */
+ void audioBlockRDFT(AudioTrack &audio);
+
+ void readAudioCoeffs(AudioTrack &audio, float *coeffs);
+
+ void floatToInt16Interleave(int16 *dst, const float **src, uint32 length, uint8 channels);
+
+ // Bink video IDCT
+ void IDCT(int16 *block);
+ void IDCTPut(DecodeContext &ctx, int16 *block);
+ void IDCTAdd(DecodeContext &ctx, int16 *block);
+};
+
+} // End of namespace Video
+
+#endif // VIDEO_BINK_DECODER_H
+
+#endif // USE_BINK
diff --git a/video/binkdata.h b/video/binkdata.h
new file mode 100644
index 0000000000..02105a7493
--- /dev/null
+++ b/video/binkdata.h
@@ -0,0 +1,578 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ */
+
+#ifndef VIDEO_BINKDATA_H
+#define VIDEO_BINKDATA_H
+
+#include "common/scummsys.h"
+
+namespace Video {
+
+static const uint16 binkCriticalFreqs[25] = {
+ 100, 200, 300, 400, 510, 630, 770, 920,
+ 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150,
+ 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500,
+ 24500,
+};
+
+/** Bink DCT and residue 8x8 block scan order */
+static const uint8 binkScan[64] = {
+ 0, 1, 8, 9, 2, 3, 10, 11,
+ 4, 5, 12, 13, 6, 7, 14, 15,
+ 20, 21, 28, 29, 22, 23, 30, 31,
+ 16, 17, 24, 25, 32, 33, 40, 41,
+ 34, 35, 42, 43, 48, 49, 56, 57,
+ 50, 51, 58, 59, 18, 19, 26, 27,
+ 36, 37, 44, 45, 38, 39, 46, 47,
+ 52, 53, 60, 61, 54, 55, 62, 63
+};
+
+static const uint32 binkHuffmanCodes[16][16] = {
+ { 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F },
+ { 0x00, 0x01, 0x03, 0x05, 0x07, 0x09, 0x0B, 0x0D, 0x0F, 0x13, 0x15, 0x17, 0x19, 0x1B, 0x1D, 0x1F },
+ { 0x00, 0x02, 0x01, 0x09, 0x05, 0x15, 0x0D, 0x1D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F },
+ { 0x00, 0x02, 0x06, 0x01, 0x09, 0x05, 0x0D, 0x1D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F },
+ { 0x00, 0x04, 0x02, 0x06, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F },
+ { 0x00, 0x04, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x17, 0x0F, 0x1F },
+ { 0x00, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x1B, 0x07, 0x17, 0x0F, 0x1F },
+ { 0x00, 0x01, 0x05, 0x03, 0x13, 0x0B, 0x1B, 0x3B, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x01, 0x03, 0x13, 0x0B, 0x2B, 0x1B, 0x3B, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x01, 0x05, 0x0D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x02, 0x01, 0x05, 0x0D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x13, 0x0B, 0x1B, 0x07, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x02, 0x01, 0x03, 0x13, 0x0B, 0x1B, 0x3B, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x1F, 0x3F },
+ { 0x00, 0x01, 0x05, 0x03, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x4F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F },
+ { 0x00, 0x01, 0x05, 0x03, 0x07, 0x17, 0x37, 0x77, 0x0F, 0x4F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F },
+ { 0x00, 0x02, 0x01, 0x05, 0x03, 0x07, 0x27, 0x17, 0x37, 0x0F, 0x2F, 0x6F, 0x1F, 0x5F, 0x3F, 0x7F }
+};
+
+static const uint8 binkHuffmanLengths[16][16] = {
+ { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 },
+ { 1, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
+ { 2, 2, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
+ { 2, 3, 3, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 },
+ { 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5 },
+ { 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5 },
+ { 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5 },
+ { 1, 3, 3, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
+ { 1, 2, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
+ { 1, 3, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6 },
+ { 2, 2, 3, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 },
+ { 1, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6 },
+ { 2, 2, 2, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6 },
+ { 1, 3, 3, 3, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7 },
+ { 1, 3, 3, 3, 5, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7 },
+ { 2, 2, 3, 3, 3, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7 }
+};
+
+static const uint8 binkPatterns[16][64] = {
+{
+ 0x00, 0x08, 0x10, 0x18, 0x20, 0x28, 0x30, 0x38,
+ 0x39, 0x31, 0x29, 0x21, 0x19, 0x11, 0x09, 0x01,
+ 0x02, 0x0A, 0x12, 0x1A, 0x22, 0x2A, 0x32, 0x3A,
+ 0x3B, 0x33, 0x2B, 0x23, 0x1B, 0x13, 0x0B, 0x03,
+ 0x04, 0x0C, 0x14, 0x1C, 0x24, 0x2C, 0x34, 0x3C,
+ 0x3D, 0x35, 0x2D, 0x25, 0x1D, 0x15, 0x0D, 0x05,
+ 0x06, 0x0E, 0x16, 0x1E, 0x26, 0x2E, 0x36, 0x3E,
+ 0x3F, 0x37, 0x2F, 0x27, 0x1F, 0x17, 0x0F, 0x07
+},
+{
+ 0x3B, 0x3A, 0x39, 0x38, 0x30, 0x31, 0x32, 0x33,
+ 0x2B, 0x2A, 0x29, 0x28, 0x20, 0x21, 0x22, 0x23,
+ 0x1B, 0x1A, 0x19, 0x18, 0x10, 0x11, 0x12, 0x13,
+ 0x0B, 0x0A, 0x09, 0x08, 0x00, 0x01, 0x02, 0x03,
+ 0x04, 0x05, 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x0C,
+ 0x14, 0x15, 0x16, 0x17, 0x1F, 0x1E, 0x1D, 0x1C,
+ 0x24, 0x25, 0x26, 0x27, 0x2F, 0x2E, 0x2D, 0x2C,
+ 0x34, 0x35, 0x36, 0x37, 0x3F, 0x3E, 0x3D, 0x3C
+},
+{
+ 0x19, 0x11, 0x12, 0x1A, 0x1B, 0x13, 0x0B, 0x03,
+ 0x02, 0x0A, 0x09, 0x01, 0x00, 0x08, 0x10, 0x18,
+ 0x20, 0x28, 0x30, 0x38, 0x39, 0x31, 0x29, 0x2A,
+ 0x32, 0x3A, 0x3B, 0x33, 0x2B, 0x23, 0x22, 0x21,
+ 0x1D, 0x15, 0x16, 0x1E, 0x1F, 0x17, 0x0F, 0x07,
+ 0x06, 0x0E, 0x0D, 0x05, 0x04, 0x0C, 0x14, 0x1C,
+ 0x24, 0x2C, 0x34, 0x3C, 0x3D, 0x35, 0x2D, 0x2E,
+ 0x36, 0x3E, 0x3F, 0x37, 0x2F, 0x27, 0x26, 0x25
+},
+{
+ 0x03, 0x0B, 0x02, 0x0A, 0x01, 0x09, 0x00, 0x08,
+ 0x10, 0x18, 0x11, 0x19, 0x12, 0x1A, 0x13, 0x1B,
+ 0x23, 0x2B, 0x22, 0x2A, 0x21, 0x29, 0x20, 0x28,
+ 0x30, 0x38, 0x31, 0x39, 0x32, 0x3A, 0x33, 0x3B,
+ 0x3C, 0x34, 0x3D, 0x35, 0x3E, 0x36, 0x3F, 0x37,
+ 0x2F, 0x27, 0x2E, 0x26, 0x2D, 0x25, 0x2C, 0x24,
+ 0x1C, 0x14, 0x1D, 0x15, 0x1E, 0x16, 0x1F, 0x17,
+ 0x0F, 0x07, 0x0E, 0x06, 0x0D, 0x05, 0x0C, 0x04
+},
+{
+ 0x18, 0x19, 0x10, 0x11, 0x08, 0x09, 0x00, 0x01,
+ 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B,
+ 0x1C, 0x1D, 0x14, 0x15, 0x0C, 0x0D, 0x04, 0x05,
+ 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F,
+ 0x27, 0x26, 0x2F, 0x2E, 0x37, 0x36, 0x3F, 0x3E,
+ 0x3D, 0x3C, 0x35, 0x34, 0x2D, 0x2C, 0x25, 0x24,
+ 0x23, 0x22, 0x2B, 0x2A, 0x33, 0x32, 0x3B, 0x3A,
+ 0x39, 0x38, 0x31, 0x30, 0x29, 0x28, 0x21, 0x20
+},
+{
+ 0x00, 0x01, 0x02, 0x03, 0x08, 0x09, 0x0A, 0x0B,
+ 0x10, 0x11, 0x12, 0x13, 0x18, 0x19, 0x1A, 0x1B,
+ 0x20, 0x21, 0x22, 0x23, 0x28, 0x29, 0x2A, 0x2B,
+ 0x30, 0x31, 0x32, 0x33, 0x38, 0x39, 0x3A, 0x3B,
+ 0x04, 0x05, 0x06, 0x07, 0x0C, 0x0D, 0x0E, 0x0F,
+ 0x14, 0x15, 0x16, 0x17, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x24, 0x25, 0x26, 0x27, 0x2C, 0x2D, 0x2E, 0x2F,
+ 0x34, 0x35, 0x36, 0x37, 0x3C, 0x3D, 0x3E, 0x3F
+},
+{
+ 0x06, 0x07, 0x0F, 0x0E, 0x0D, 0x05, 0x0C, 0x04,
+ 0x03, 0x0B, 0x02, 0x0A, 0x09, 0x01, 0x00, 0x08,
+ 0x10, 0x18, 0x11, 0x19, 0x12, 0x1A, 0x13, 0x1B,
+ 0x14, 0x1C, 0x15, 0x1D, 0x16, 0x1E, 0x17, 0x1F,
+ 0x27, 0x2F, 0x26, 0x2E, 0x25, 0x2D, 0x24, 0x2C,
+ 0x23, 0x2B, 0x22, 0x2A, 0x21, 0x29, 0x20, 0x28,
+ 0x31, 0x30, 0x38, 0x39, 0x3A, 0x32, 0x3B, 0x33,
+ 0x3C, 0x34, 0x3D, 0x35, 0x36, 0x37, 0x3F, 0x3E
+},
+{
+ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
+ 0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08,
+ 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17,
+ 0x1F, 0x1E, 0x1D, 0x1C, 0x1B, 0x1A, 0x19, 0x18,
+ 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27,
+ 0x2F, 0x2E, 0x2D, 0x2C, 0x2B, 0x2A, 0x29, 0x28,
+ 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37,
+ 0x3F, 0x3E, 0x3D, 0x3C, 0x3B, 0x3A, 0x39, 0x38
+},
+{
+ 0x00, 0x08, 0x09, 0x01, 0x02, 0x03, 0x0B, 0x0A,
+ 0x12, 0x13, 0x1B, 0x1A, 0x19, 0x11, 0x10, 0x18,
+ 0x20, 0x28, 0x29, 0x21, 0x22, 0x23, 0x2B, 0x2A,
+ 0x32, 0x31, 0x30, 0x38, 0x39, 0x3A, 0x3B, 0x33,
+ 0x34, 0x3C, 0x3D, 0x3E, 0x3F, 0x37, 0x36, 0x35,
+ 0x2D, 0x2C, 0x24, 0x25, 0x26, 0x2E, 0x2F, 0x27,
+ 0x1F, 0x17, 0x16, 0x1E, 0x1D, 0x1C, 0x14, 0x15,
+ 0x0D, 0x0C, 0x04, 0x05, 0x06, 0x0E, 0x0F, 0x07
+},
+{
+ 0x18, 0x19, 0x10, 0x11, 0x08, 0x09, 0x00, 0x01,
+ 0x02, 0x03, 0x0A, 0x0B, 0x12, 0x13, 0x1A, 0x1B,
+ 0x1C, 0x1D, 0x14, 0x15, 0x0C, 0x0D, 0x04, 0x05,
+ 0x06, 0x07, 0x0E, 0x0F, 0x16, 0x17, 0x1E, 0x1F,
+ 0x26, 0x27, 0x2E, 0x2F, 0x36, 0x37, 0x3E, 0x3F,
+ 0x3C, 0x3D, 0x34, 0x35, 0x2C, 0x2D, 0x24, 0x25,
+ 0x22, 0x23, 0x2A, 0x2B, 0x32, 0x33, 0x3A, 0x3B,
+ 0x38, 0x39, 0x30, 0x31, 0x28, 0x29, 0x20, 0x21
+},
+{
+ 0x00, 0x08, 0x01, 0x09, 0x02, 0x0A, 0x03, 0x0B,
+ 0x13, 0x1B, 0x12, 0x1A, 0x11, 0x19, 0x10, 0x18,
+ 0x20, 0x28, 0x21, 0x29, 0x22, 0x2A, 0x23, 0x2B,
+ 0x33, 0x3B, 0x32, 0x3A, 0x31, 0x39, 0x30, 0x38,
+ 0x3C, 0x34, 0x3D, 0x35, 0x3E, 0x36, 0x3F, 0x37,
+ 0x2F, 0x27, 0x2E, 0x26, 0x2D, 0x25, 0x2C, 0x24,
+ 0x1F, 0x17, 0x1E, 0x16, 0x1D, 0x15, 0x1C, 0x14,
+ 0x0C, 0x04, 0x0D, 0x05, 0x0E, 0x06, 0x0F, 0x07
+},
+{
+ 0x00, 0x08, 0x10, 0x18, 0x19, 0x1A, 0x1B, 0x13,
+ 0x0B, 0x03, 0x02, 0x01, 0x09, 0x11, 0x12, 0x0A,
+ 0x04, 0x0C, 0x14, 0x1C, 0x1D, 0x1E, 0x1F, 0x17,
+ 0x0F, 0x07, 0x06, 0x05, 0x0D, 0x15, 0x16, 0x0E,
+ 0x24, 0x2C, 0x34, 0x3C, 0x3D, 0x3E, 0x3F, 0x37,
+ 0x2F, 0x27, 0x26, 0x25, 0x2D, 0x35, 0x36, 0x2E,
+ 0x20, 0x28, 0x30, 0x38, 0x39, 0x3A, 0x3B, 0x33,
+ 0x2B, 0x23, 0x22, 0x21, 0x29, 0x31, 0x32, 0x2A
+},
+{
+ 0x00, 0x08, 0x09, 0x01, 0x02, 0x03, 0x0B, 0x0A,
+ 0x13, 0x1B, 0x1A, 0x12, 0x11, 0x10, 0x18, 0x19,
+ 0x21, 0x20, 0x28, 0x29, 0x2A, 0x22, 0x23, 0x2B,
+ 0x33, 0x3B, 0x3A, 0x32, 0x31, 0x39, 0x38, 0x30,
+ 0x34, 0x3C, 0x3D, 0x35, 0x36, 0x3E, 0x3F, 0x37,
+ 0x2F, 0x27, 0x26, 0x2E, 0x2D, 0x2C, 0x24, 0x25,
+ 0x1D, 0x1C, 0x14, 0x15, 0x16, 0x1E, 0x1F, 0x17,
+ 0x0E, 0x0F, 0x07, 0x06, 0x05, 0x0D, 0x0C, 0x04
+},
+{
+ 0x18, 0x10, 0x08, 0x00, 0x01, 0x02, 0x03, 0x0B,
+ 0x13, 0x1B, 0x1A, 0x19, 0x11, 0x0A, 0x09, 0x12,
+ 0x1C, 0x14, 0x0C, 0x04, 0x05, 0x06, 0x07, 0x0F,
+ 0x17, 0x1F, 0x1E, 0x1D, 0x15, 0x0E, 0x0D, 0x16,
+ 0x3C, 0x34, 0x2C, 0x24, 0x25, 0x26, 0x27, 0x2F,
+ 0x37, 0x3F, 0x3E, 0x3D, 0x35, 0x2E, 0x2D, 0x36,
+ 0x38, 0x30, 0x28, 0x20, 0x21, 0x22, 0x23, 0x2B,
+ 0x33, 0x3B, 0x3A, 0x39, 0x31, 0x2A, 0x29, 0x32
+},
+{
+ 0x00, 0x08, 0x09, 0x01, 0x02, 0x0A, 0x12, 0x11,
+ 0x10, 0x18, 0x19, 0x1A, 0x1B, 0x13, 0x0B, 0x03,
+ 0x07, 0x06, 0x0E, 0x0F, 0x17, 0x16, 0x15, 0x0D,
+ 0x05, 0x04, 0x0C, 0x14, 0x1C, 0x1D, 0x1E, 0x1F,
+ 0x3F, 0x3E, 0x36, 0x37, 0x2F, 0x2E, 0x2D, 0x35,
+ 0x3D, 0x3C, 0x34, 0x2C, 0x24, 0x25, 0x26, 0x27,
+ 0x38, 0x30, 0x31, 0x39, 0x3A, 0x32, 0x2A, 0x29,
+ 0x28, 0x20, 0x21, 0x22, 0x23, 0x2B, 0x33, 0x3B
+},
+{
+ 0x00, 0x01, 0x08, 0x09, 0x10, 0x11, 0x18, 0x19,
+ 0x20, 0x21, 0x28, 0x29, 0x30, 0x31, 0x38, 0x39,
+ 0x3A, 0x3B, 0x32, 0x33, 0x2A, 0x2B, 0x22, 0x23,
+ 0x1A, 0x1B, 0x12, 0x13, 0x0A, 0x0B, 0x02, 0x03,
+ 0x04, 0x05, 0x0C, 0x0D, 0x14, 0x15, 0x1C, 0x1D,
+ 0x24, 0x25, 0x2C, 0x2D, 0x34, 0x35, 0x3C, 0x3D,
+ 0x3E, 0x3F, 0x36, 0x37, 0x2E, 0x2F, 0x26, 0x27,
+ 0x1E, 0x1F, 0x16, 0x17, 0x0E, 0x0F, 0x06, 0x07
+}
+};
+
+static const uint32 binkIntraQuant[16][64] = {
+{
+ 0x010000, 0x016315, 0x01E83D, 0x02A535, 0x014E7B, 0x016577, 0x02F1E6, 0x02724C,
+ 0x010000, 0x00EEDA, 0x024102, 0x017F9B, 0x00BE80, 0x00611E, 0x01083C, 0x00A552,
+ 0x021F88, 0x01DC53, 0x027FAD, 0x01F697, 0x014819, 0x00A743, 0x015A31, 0x009688,
+ 0x02346F, 0x030EE5, 0x01FBFA, 0x02C096, 0x01D000, 0x028396, 0x019247, 0x01F9AA,
+ 0x02346F, 0x01FBFA, 0x01DC53, 0x0231B8, 0x012F12, 0x01E06C, 0x00CB10, 0x0119A8,
+ 0x01C48C, 0x019748, 0x014E86, 0x0122AF, 0x02C628, 0x027F20, 0x0297B5, 0x023F32,
+ 0x025000, 0x01AB6B, 0x01D122, 0x0159B3, 0x012669, 0x008D43, 0x00EE1F, 0x0075ED,
+ 0x01490C, 0x010288, 0x00F735, 0x00EF51, 0x00E0F1, 0x0072AD, 0x00A4D8, 0x006517,
+},
+{
+ 0x015555, 0x01D971, 0x028AFC, 0x0386F1, 0x01BDF9, 0x01DC9F, 0x03ED33, 0x034311,
+ 0x015555, 0x013E78, 0x030158, 0x01FF7A, 0x00FE00, 0x00817D, 0x01604F, 0x00DC6D,
+ 0x02D4B5, 0x027B19, 0x0354E7, 0x029E1F, 0x01B577, 0x00DF04, 0x01CD96, 0x00C8B6,
+ 0x02F095, 0x0413DC, 0x02A54E, 0x03AB73, 0x026AAB, 0x035A1E, 0x02185E, 0x02A238,
+ 0x02F095, 0x02A54E, 0x027B19, 0x02ECF5, 0x019418, 0x028090, 0x010EC0, 0x01778A,
+ 0x025B66, 0x021F0B, 0x01BE09, 0x018394, 0x03B2E0, 0x03542A, 0x0374F1, 0x02FEEE,
+ 0x031555, 0x0239E4, 0x026C2D, 0x01CCEE, 0x01888C, 0x00BC59, 0x013D7E, 0x009D3C,
+ 0x01B6BB, 0x0158B5, 0x01499C, 0x013F17, 0x012BEC, 0x0098E6, 0x00DBCB, 0x0086C9,
+},
+{
+ 0x01AAAB, 0x024FCE, 0x032DBB, 0x0468AD, 0x022D78, 0x0253C7, 0x04E87F, 0x0413D5,
+ 0x01AAAB, 0x018E16, 0x03C1AE, 0x027F58, 0x013D80, 0x00A1DC, 0x01B863, 0x011388,
+ 0x0389E2, 0x0319DF, 0x042A21, 0x0345A7, 0x0222D4, 0x0116C5, 0x0240FC, 0x00FAE3,
+ 0x03ACBA, 0x0518D3, 0x034EA1, 0x04964F, 0x030555, 0x0430A5, 0x029E76, 0x034AC5,
+ 0x03ACBA, 0x034EA1, 0x0319DF, 0x03A833, 0x01F91E, 0x0320B4, 0x015270, 0x01D56D,
+ 0x02F23F, 0x02A6CE, 0x022D8B, 0x01E479, 0x049F98, 0x042935, 0x04522D, 0x03BEA9,
+ 0x03DAAB, 0x02C85D, 0x030738, 0x02402A, 0x01EAAF, 0x00EB6F, 0x018CDE, 0x00C48A,
+ 0x022469, 0x01AEE2, 0x019C02, 0x018EDD, 0x0176E7, 0x00BF20, 0x0112BE, 0x00A87B,
+},
+{
+ 0x020000, 0x02C62A, 0x03D07A, 0x054A69, 0x029CF6, 0x02CAEF, 0x05E3CC, 0x04E499,
+ 0x020000, 0x01DDB4, 0x048204, 0x02FF36, 0x017D01, 0x00C23C, 0x021077, 0x014AA3,
+ 0x043F0F, 0x03B8A6, 0x04FF5A, 0x03ED2E, 0x029032, 0x014E86, 0x02B461, 0x012D11,
+ 0x0468DF, 0x061DCA, 0x03F7F5, 0x05812C, 0x03A000, 0x05072C, 0x03248D, 0x03F353,
+ 0x0468DF, 0x03F7F5, 0x03B8A6, 0x046370, 0x025E24, 0x03C0D8, 0x019620, 0x02334F,
+ 0x038919, 0x032E91, 0x029D0D, 0x02455E, 0x058C50, 0x04FE3F, 0x052F69, 0x047E65,
+ 0x04A000, 0x0356D6, 0x03A243, 0x02B365, 0x024CD2, 0x011A85, 0x01DC3E, 0x00EBD9,
+ 0x029218, 0x020510, 0x01EE69, 0x01DEA2, 0x01C1E2, 0x00E559, 0x0149B0, 0x00CA2D,
+},
+{
+ 0x02AAAB, 0x03B2E3, 0x0515F8, 0x070DE2, 0x037BF2, 0x03B93E, 0x07DA65, 0x068621,
+ 0x02AAAB, 0x027CF0, 0x0602B1, 0x03FEF3, 0x01FC01, 0x0102FA, 0x02C09F, 0x01B8DA,
+ 0x05A96A, 0x04F632, 0x06A9CE, 0x053C3E, 0x036AED, 0x01BE09, 0x039B2D, 0x01916B,
+ 0x05E129, 0x0827B8, 0x054A9C, 0x0756E5, 0x04D555, 0x06B43B, 0x0430BC, 0x05446F,
+ 0x05E129, 0x054A9C, 0x04F632, 0x05D9EB, 0x032830, 0x050121, 0x021D80, 0x02EF14,
+ 0x04B6CC, 0x043E16, 0x037C11, 0x030728, 0x0765C0, 0x06A855, 0x06E9E2, 0x05FDDB,
+ 0x062AAB, 0x0473C8, 0x04D85A, 0x0399DC, 0x031118, 0x0178B2, 0x027AFD, 0x013A77,
+ 0x036D76, 0x02B16A, 0x029337, 0x027E2E, 0x0257D8, 0x0131CC, 0x01B796, 0x010D91,
+},
+{
+ 0x038000, 0x04DACA, 0x06ACD5, 0x094238, 0x0492AE, 0x04E322, 0x0A4EA5, 0x08900C,
+ 0x038000, 0x0343FB, 0x07E388, 0x053E9F, 0x029AC1, 0x0153E8, 0x039CD0, 0x02429E,
+ 0x076E5B, 0x068322, 0x08BEDE, 0x06DF11, 0x047C57, 0x02496B, 0x04BBAB, 0x020EDD,
+ 0x07B786, 0x0AB421, 0x06F1ED, 0x09A20D, 0x065800, 0x08CC8E, 0x057FF7, 0x06E9D2,
+ 0x07B786, 0x06F1ED, 0x068322, 0x07AE04, 0x0424BF, 0x06917B, 0x02C6B8, 0x03D9CB,
+ 0x062FEB, 0x05917D, 0x0492D7, 0x03F964, 0x09B58C, 0x08BCEF, 0x0912F8, 0x07DD30,
+ 0x081800, 0x05D7F7, 0x065BF6, 0x04B9F1, 0x040670, 0x01EE69, 0x03416C, 0x019CBC,
+ 0x047FAA, 0x0388DC, 0x036138, 0x03459C, 0x03134C, 0x01915C, 0x0240F5, 0x0161CF,
+},
+{
+ 0x040000, 0x058C54, 0x07A0F4, 0x0A94D3, 0x0539EC, 0x0595DD, 0x0BC798, 0x09C932,
+ 0x040000, 0x03BB68, 0x090409, 0x05FE6D, 0x02FA01, 0x018477, 0x0420EE, 0x029547,
+ 0x087E1F, 0x07714C, 0x09FEB5, 0x07DA5D, 0x052064, 0x029D0D, 0x0568C3, 0x025A21,
+ 0x08D1BE, 0x0C3B94, 0x07EFEA, 0x0B0258, 0x074000, 0x0A0E59, 0x06491A, 0x07E6A7,
+ 0x08D1BE, 0x07EFEA, 0x07714C, 0x08C6E0, 0x04BC48, 0x0781B1, 0x032C3F, 0x04669F,
+ 0x071232, 0x065D22, 0x053A1A, 0x048ABC, 0x0B18A0, 0x09FC7F, 0x0A5ED3, 0x08FCC9,
+ 0x094000, 0x06ADAC, 0x074487, 0x0566CA, 0x0499A5, 0x02350B, 0x03B87B, 0x01D7B3,
+ 0x052430, 0x040A20, 0x03DCD3, 0x03BD45, 0x0383C5, 0x01CAB3, 0x029361, 0x01945A,
+},
+{
+ 0x050000, 0x06EF69, 0x098931, 0x0D3A07, 0x068867, 0x06FB55, 0x0EB97E, 0x0C3B7E,
+ 0x050000, 0x04AA42, 0x0B450B, 0x077E08, 0x03B881, 0x01E595, 0x05292A, 0x033A99,
+ 0x0A9DA7, 0x094D9F, 0x0C7E62, 0x09D0F4, 0x06687D, 0x034450, 0x06C2F4, 0x02F0AA,
+ 0x0B062D, 0x0F4A78, 0x09EBE4, 0x0DC2EE, 0x091000, 0x0C91EF, 0x07DB61, 0x09E050,
+ 0x0B062D, 0x09EBE4, 0x094D9F, 0x0AF898, 0x05EB59, 0x09621D, 0x03F74F, 0x058046,
+ 0x08D6BE, 0x07F46A, 0x0688A0, 0x05AD6B, 0x0DDEC8, 0x0C7B9F, 0x0CF687, 0x0B3BFB,
+ 0x0B9000, 0x085917, 0x0915A8, 0x06C07D, 0x05C00E, 0x02C24D, 0x04A69A, 0x024D9F,
+ 0x066D3C, 0x050CA7, 0x04D407, 0x04AC96, 0x0464B6, 0x023D5F, 0x033839, 0x01F971,
+},
+{
+ 0x060000, 0x08527E, 0x0B716E, 0x0FDF3C, 0x07D6E1, 0x0860CC, 0x11AB63, 0x0EADCB,
+ 0x060000, 0x05991C, 0x0D860D, 0x08FDA3, 0x047702, 0x0246B3, 0x063165, 0x03DFEA,
+ 0x0CBD2E, 0x0B29F1, 0x0EFE0F, 0x0BC78B, 0x07B096, 0x03EB93, 0x081D24, 0x038732,
+ 0x0D3A9C, 0x12595D, 0x0BE7DF, 0x108384, 0x0AE000, 0x0F1585, 0x096DA8, 0x0BD9FA,
+ 0x0D3A9C, 0x0BE7DF, 0x0B29F1, 0x0D2A50, 0x071A6B, 0x0B4289, 0x04C25F, 0x0699EE,
+ 0x0A9B4A, 0x098BB2, 0x07D727, 0x06D01A, 0x10A4F0, 0x0EFABE, 0x0F8E3C, 0x0D7B2E,
+ 0x0DE000, 0x0A0482, 0x0AE6CA, 0x081A2F, 0x06E677, 0x034F90, 0x0594B9, 0x02C38C,
+ 0x07B649, 0x060F2F, 0x05CB3C, 0x059BE7, 0x0545A7, 0x02B00C, 0x03DD11, 0x025E87,
+},
+{
+ 0x080000, 0x0B18A8, 0x0F41E8, 0x1529A5, 0x0A73D7, 0x0B2BBB, 0x178F2F, 0x139264,
+ 0x080000, 0x0776CF, 0x120812, 0x0BFCD9, 0x05F402, 0x0308EF, 0x0841DC, 0x052A8E,
+ 0x10FC3E, 0x0EE297, 0x13FD69, 0x0FB4B9, 0x0A40C8, 0x053A1A, 0x0AD186, 0x04B442,
+ 0x11A37B, 0x187727, 0x0FDFD4, 0x1604B0, 0x0E8000, 0x141CB1, 0x0C9235, 0x0FCD4D,
+ 0x11A37B, 0x0FDFD4, 0x0EE297, 0x118DC0, 0x09788F, 0x0F0362, 0x06587F, 0x08CD3D,
+ 0x0E2463, 0x0CBA43, 0x0A7434, 0x091577, 0x163140, 0x13F8FE, 0x14BDA5, 0x11F992,
+ 0x128000, 0x0D5B58, 0x0E890D, 0x0ACD94, 0x093349, 0x046A15, 0x0770F7, 0x03AF65,
+ 0x0A4861, 0x08143F, 0x07B9A6, 0x077A89, 0x070789, 0x039565, 0x0526C2, 0x0328B4,
+},
+{
+ 0x0C0000, 0x10A4FD, 0x16E2DB, 0x1FBE78, 0x0FADC3, 0x10C198, 0x2356C7, 0x1D5B96,
+ 0x0C0000, 0x0B3237, 0x1B0C1A, 0x11FB46, 0x08EE03, 0x048D66, 0x0C62CA, 0x07BFD5,
+ 0x197A5D, 0x1653E3, 0x1DFC1E, 0x178F16, 0x0F612C, 0x07D727, 0x103A49, 0x070E64,
+ 0x1A7539, 0x24B2BB, 0x17CFBD, 0x210709, 0x15C000, 0x1E2B0A, 0x12DB4F, 0x17B3F4,
+ 0x1A7539, 0x17CFBD, 0x1653E3, 0x1A54A0, 0x0E34D7, 0x168513, 0x0984BE, 0x0D33DC,
+ 0x153695, 0x131765, 0x0FAE4E, 0x0DA033, 0x2149E1, 0x1DF57D, 0x1F1C78, 0x1AF65B,
+ 0x1BC000, 0x140904, 0x15CD94, 0x10345E, 0x0DCCEE, 0x069F20, 0x0B2972, 0x058718,
+ 0x0F6C91, 0x0C1E5E, 0x0B9678, 0x0B37CE, 0x0A8B4E, 0x056018, 0x07BA22, 0x04BD0E,
+},
+{
+ 0x110000, 0x179466, 0x206C0C, 0x2CF87F, 0x16362A, 0x17BCED, 0x321044, 0x299714,
+ 0x110000, 0x0FDC79, 0x265125, 0x19794E, 0x0CA685, 0x0672FB, 0x118BF4, 0x0AFA6D,
+ 0x241804, 0x1FA181, 0x2A7A80, 0x21600A, 0x15C9A9, 0x0B1B77, 0x16FD3C, 0x09FF0D,
+ 0x257B66, 0x33FD33, 0x21BBA2, 0x2EC9F7, 0x1ED000, 0x2ABCF9, 0x1AB6B0, 0x219444,
+ 0x257B66, 0x21BBA2, 0x1FA181, 0x254D38, 0x142030, 0x1FE730, 0x0D7C0E, 0x12B423,
+ 0x1E0D52, 0x1B0BCF, 0x1636EE, 0x134D9E, 0x2F28A9, 0x2A711B, 0x2C12FF, 0x263256,
+ 0x275000, 0x1C621B, 0x1EE33C, 0x16F4DB, 0x138CFB, 0x09616E, 0x0FD00C, 0x07D4B7,
+ 0x15D9CE, 0x112B06, 0x106A80, 0x0FE464, 0x0EF004, 0x079D77, 0x0AF25B, 0x06B67F,
+},
+{
+ 0x160000, 0x1E83CF, 0x29F53D, 0x3A3286, 0x1CBE90, 0x1EB842, 0x40C9C2, 0x35D293,
+ 0x160000, 0x1486BA, 0x319630, 0x20F756, 0x105F06, 0x085891, 0x16B51E, 0x0E3506,
+ 0x2EB5AA, 0x28EF20, 0x36F8E1, 0x2B30FE, 0x1C3225, 0x0E5FC7, 0x1DC030, 0x0CEFB7,
+ 0x308193, 0x4347AC, 0x2BA786, 0x3C8CE5, 0x27E000, 0x374EE7, 0x229212, 0x2B7494,
+ 0x308193, 0x2BA786, 0x28EF20, 0x3045D0, 0x1A0B89, 0x29494D, 0x11735D, 0x183469,
+ 0x26E410, 0x230039, 0x1CBF8F, 0x18FB09, 0x3D0771, 0x36ECBA, 0x390986, 0x316E52,
+ 0x32E000, 0x24BB33, 0x27F8E4, 0x1DB557, 0x194D09, 0x0C23BB, 0x1476A6, 0x0A2256,
+ 0x1C470A, 0x1637AD, 0x153E87, 0x1490FA, 0x1354B9, 0x09DAD6, 0x0E2A94, 0x08AFF0,
+},
+{
+ 0x1C0000, 0x26D64D, 0x3566AA, 0x4A11C2, 0x249572, 0x27190E, 0x527525, 0x44805E,
+ 0x1C0000, 0x1A1FD6, 0x3F1C3E, 0x29F4F9, 0x14D607, 0x0A9F44, 0x1CE683, 0x1214F0,
+ 0x3B72D9, 0x341911, 0x45F6F0, 0x36F889, 0x23E2BB, 0x124B5B, 0x25DD54, 0x1076E9,
+ 0x3DBC30, 0x55A109, 0x378F64, 0x4D1069, 0x32C000, 0x46646C, 0x2BFFB9, 0x374E8E,
+ 0x3DBC30, 0x378F64, 0x341911, 0x3D7020, 0x2125F5, 0x348BD6, 0x1635BC, 0x1ECE57,
+ 0x317F5B, 0x2C8BEB, 0x2496B6, 0x1FCB22, 0x4DAC61, 0x45E778, 0x4897C2, 0x3EE97F,
+ 0x40C000, 0x2EBFB5, 0x32DFAE, 0x25CF86, 0x203380, 0x0F734B, 0x1A0B5F, 0x0CE5E2,
+ 0x23FD53, 0x1C46DC, 0x1B09C4, 0x1A2CE1, 0x189A60, 0x0C8AE2, 0x1207A5, 0x0B0E77,
+},
+{
+ 0x220000, 0x2F28CC, 0x40D818, 0x59F0FE, 0x2C6C53, 0x2F79DA, 0x642089, 0x532E29,
+ 0x220000, 0x1FB8F1, 0x4CA24B, 0x32F29C, 0x194D09, 0x0CE5F7, 0x2317E8, 0x15F4DB,
+ 0x483007, 0x3F4303, 0x54F4FF, 0x42C014, 0x2B9351, 0x1636EE, 0x2DFA79, 0x13FE1A,
+ 0x4AF6CC, 0x67FA67, 0x437743, 0x5D93EE, 0x3DA000, 0x5579F1, 0x356D61, 0x432888,
+ 0x4AF6CC, 0x437743, 0x3F4303, 0x4A9A70, 0x284060, 0x3FCE60, 0x1AF81B, 0x256845,
+ 0x3C1AA5, 0x36179D, 0x2C6DDD, 0x269B3C, 0x5E5152, 0x54E237, 0x5825FE, 0x4C64AD,
+ 0x4EA000, 0x38C437, 0x3DC678, 0x2DE9B5, 0x2719F7, 0x12C2DB, 0x1FA018, 0x0FA96E,
+ 0x2BB39B, 0x22560C, 0x20D500, 0x1FC8C8, 0x1DE007, 0x0F3AEE, 0x15E4B7, 0x0D6CFE,
+},
+{
+ 0x2C0000, 0x3D079E, 0x53EA79, 0x74650C, 0x397D20, 0x3D7083, 0x819383, 0x6BA525,
+ 0x2C0000, 0x290D75, 0x632C61, 0x41EEAC, 0x20BE0C, 0x10B121, 0x2D6A3B, 0x1C6A0C,
+ 0x5D6B54, 0x51DE40, 0x6DF1C2, 0x5661FB, 0x38644B, 0x1CBF8F, 0x3B8060, 0x19DF6D,
+ 0x610326, 0x868F57, 0x574F0B, 0x7919CA, 0x4FC000, 0x6E9DCE, 0x452423, 0x56E928,
+ 0x610326, 0x574F0B, 0x51DE40, 0x608BA0, 0x341713, 0x52929A, 0x22E6BA, 0x3068D2,
+ 0x4DC821, 0x460071, 0x397F1E, 0x31F611, 0x7A0EE2, 0x6DD974, 0x72130C, 0x62DCA3,
+ 0x65C000, 0x497665, 0x4FF1C9, 0x3B6AAE, 0x329A12, 0x184776, 0x28ED4D, 0x1444AC,
+ 0x388E14, 0x2C6F5A, 0x2A7D0F, 0x2921F4, 0x26A973, 0x13B5AD, 0x1C5528, 0x115FDF,
+},
+};
+
+static const uint32 binkInterQuant[16][64] = {
+{
+ 0x010000, 0x017946, 0x01A5A9, 0x0248DC, 0x016363, 0x0152A7, 0x0243EC, 0x0209EA,
+ 0x012000, 0x00E248, 0x01BBDA, 0x015CBC, 0x00A486, 0x0053E0, 0x00F036, 0x008095,
+ 0x01B701, 0x016959, 0x01B0B9, 0x0153FD, 0x00F8E7, 0x007EE4, 0x00EA30, 0x007763,
+ 0x01B701, 0x0260EB, 0x019DE9, 0x023E1B, 0x017000, 0x01FE6E, 0x012DB5, 0x01A27B,
+ 0x01E0D1, 0x01B0B9, 0x018A33, 0x01718D, 0x00D87A, 0x014449, 0x007B9A, 0x00AB71,
+ 0x013178, 0x0112EA, 0x00AD08, 0x009BB9, 0x023D97, 0x020437, 0x021CCC, 0x01E6B4,
+ 0x018000, 0x012DB5, 0x0146D9, 0x0100CE, 0x00CFD2, 0x006E5C, 0x00B0E4, 0x005A2D,
+ 0x00E9CC, 0x00B7B1, 0x00846F, 0x006B85, 0x008337, 0x0042E5, 0x004A10, 0x002831,
+},
+{
+ 0x015555, 0x01F708, 0x023237, 0x030BD0, 0x01D9D9, 0x01C389, 0x03053B, 0x02B7E3,
+ 0x018000, 0x012DB5, 0x024FCE, 0x01D0FA, 0x00DB5D, 0x006FD5, 0x014048, 0x00AB71,
+ 0x024957, 0x01E1CC, 0x0240F7, 0x01C551, 0x014BDE, 0x00A92F, 0x013840, 0x009F2F,
+ 0x024957, 0x032BE4, 0x0227E1, 0x02FD7A, 0x01EAAB, 0x02A893, 0x019247, 0x022DF9,
+ 0x028116, 0x0240F7, 0x020D99, 0x01ECBC, 0x0120A3, 0x01B061, 0x00A4CE, 0x00E497,
+ 0x01974B, 0x016E8E, 0x00E6B5, 0x00CFA2, 0x02FCC9, 0x02B04A, 0x02D110, 0x0288F1,
+ 0x020000, 0x019247, 0x01B3CC, 0x015668, 0x011518, 0x009325, 0x00EBDA, 0x00783D,
+ 0x0137BB, 0x00F4ED, 0x00B093, 0x008F5C, 0x00AEF4, 0x005931, 0x0062BF, 0x003597,
+},
+{
+ 0x01AAAB, 0x0274CB, 0x02BEC4, 0x03CEC4, 0x02504F, 0x02346C, 0x03C689, 0x0365DC,
+ 0x01E000, 0x017922, 0x02E3C1, 0x024539, 0x011235, 0x008BCA, 0x01905A, 0x00D64D,
+ 0x02DBAD, 0x025A40, 0x02D134, 0x0236A5, 0x019ED6, 0x00D37B, 0x018650, 0x00C6FB,
+ 0x02DBAD, 0x03F6DD, 0x02B1D9, 0x03BCD8, 0x026555, 0x0352B8, 0x01F6D8, 0x02B977,
+ 0x03215C, 0x02D134, 0x029100, 0x0267EB, 0x0168CC, 0x021C7A, 0x00CE01, 0x011DBD,
+ 0x01FD1E, 0x01CA31, 0x012062, 0x01038A, 0x03BBFB, 0x035C5C, 0x038554, 0x032B2D,
+ 0x028000, 0x01F6D8, 0x0220C0, 0x01AC02, 0x015A5E, 0x00B7EF, 0x0126D1, 0x00964C,
+ 0x0185A9, 0x013228, 0x00DCB8, 0x00B333, 0x00DAB2, 0x006F7D, 0x007B6F, 0x0042FC,
+},
+{
+ 0x020000, 0x02F28D, 0x034B52, 0x0491B8, 0x02C6C5, 0x02A54E, 0x0487D8, 0x0413D5,
+ 0x024000, 0x01C48F, 0x0377B5, 0x02B977, 0x01490C, 0x00A7BF, 0x01E06C, 0x01012A,
+ 0x036E03, 0x02D2B3, 0x036172, 0x02A7FA, 0x01F1CE, 0x00FDC7, 0x01D460, 0x00EEC7,
+ 0x036E03, 0x04C1D6, 0x033BD1, 0x047C37, 0x02E000, 0x03FCDD, 0x025B6A, 0x0344F5,
+ 0x03C1A1, 0x036172, 0x031466, 0x02E31B, 0x01B0F5, 0x028892, 0x00F735, 0x0156E2,
+ 0x0262F1, 0x0225D5, 0x015A10, 0x013772, 0x047B2D, 0x04086E, 0x043998, 0x03CD69,
+ 0x030000, 0x025B6A, 0x028DB3, 0x02019B, 0x019FA3, 0x00DCB8, 0x0161C7, 0x00B45B,
+ 0x01D398, 0x016F63, 0x0108DD, 0x00D70A, 0x01066F, 0x0085C9, 0x00941F, 0x005062,
+},
+{
+ 0x02AAAB, 0x03EE11, 0x04646D, 0x0617A0, 0x03B3B2, 0x038713, 0x060A75, 0x056FC6,
+ 0x030000, 0x025B6A, 0x049F9B, 0x03A1F4, 0x01B6BB, 0x00DFAA, 0x028090, 0x0156E2,
+ 0x0492AE, 0x03C399, 0x0481ED, 0x038AA2, 0x0297BD, 0x01525F, 0x027080, 0x013E5E,
+ 0x0492AE, 0x0657C8, 0x044FC1, 0x05FAF4, 0x03D555, 0x055126, 0x03248D, 0x045BF2,
+ 0x05022D, 0x0481ED, 0x041B33, 0x03D979, 0x024147, 0x0360C3, 0x01499C, 0x01C92E,
+ 0x032E96, 0x02DD1C, 0x01CD6A, 0x019F43, 0x05F991, 0x056093, 0x05A220, 0x0511E1,
+ 0x040000, 0x03248D, 0x036799, 0x02ACCF, 0x022A2F, 0x01264B, 0x01D7B5, 0x00F079,
+ 0x026F75, 0x01E9D9, 0x016127, 0x011EB8, 0x015DE9, 0x00B262, 0x00C57F, 0x006B2D,
+},
+{
+ 0x038000, 0x052876, 0x05C3CF, 0x07FF02, 0x04DBD9, 0x04A148, 0x07EDBA, 0x0722B4,
+ 0x03F000, 0x0317FB, 0x06117C, 0x04C491, 0x023FD5, 0x01258F, 0x0348BD, 0x01C209,
+ 0x060085, 0x04F0B9, 0x05EA87, 0x04A5F5, 0x036728, 0x01BC1C, 0x0333A8, 0x01A1DB,
+ 0x060085, 0x085336, 0x05A8AE, 0x07D960, 0x050800, 0x06FA82, 0x041FF9, 0x05B8AE,
+ 0x0692DA, 0x05EA87, 0x0563B2, 0x050D6E, 0x02F5AD, 0x046F00, 0x01B09C, 0x02580C,
+ 0x042D25, 0x03C235, 0x025D9B, 0x022108, 0x07D78F, 0x070EC1, 0x0764CA, 0x06A777,
+ 0x054000, 0x041FF9, 0x0477F9, 0x0382D0, 0x02D75E, 0x018242, 0x026B1D, 0x013B9F,
+ 0x03324A, 0x0282ED, 0x01CF83, 0x017851, 0x01CB42, 0x00EA21, 0x010336, 0x008CAC,
+},
+{
+ 0x040000, 0x05E519, 0x0696A4, 0x092370, 0x058D8A, 0x054A9C, 0x090FB0, 0x0827AA,
+ 0x048000, 0x03891F, 0x06EF69, 0x0572EE, 0x029218, 0x014F7E, 0x03C0D8, 0x020254,
+ 0x06DC05, 0x05A565, 0x06C2E4, 0x054FF3, 0x03E39B, 0x01FB8E, 0x03A8C0, 0x01DD8D,
+ 0x06DC05, 0x0983AC, 0x0677A2, 0x08F86E, 0x05C000, 0x07F9B9, 0x04B6D4, 0x0689EB,
+ 0x078343, 0x06C2E4, 0x0628CC, 0x05C635, 0x0361EA, 0x051124, 0x01EE69, 0x02ADC5,
+ 0x04C5E1, 0x044BAA, 0x02B41F, 0x026EE5, 0x08F65A, 0x0810DD, 0x087330, 0x079AD1,
+ 0x060000, 0x04B6D4, 0x051B65, 0x040337, 0x033F47, 0x01B970, 0x02C38F, 0x0168B6,
+ 0x03A730, 0x02DEC6, 0x0211BA, 0x01AE14, 0x020CDD, 0x010B93, 0x01283E, 0x00A0C4,
+},
+{
+ 0x050000, 0x075E60, 0x083C4D, 0x0B6C4C, 0x06F0ED, 0x069D43, 0x0B539C, 0x0A3194,
+ 0x05A000, 0x046B67, 0x08AB44, 0x06CFAA, 0x03369E, 0x01A35E, 0x04B10F, 0x0282E8,
+ 0x089307, 0x070EBF, 0x08739C, 0x06A3F0, 0x04DC82, 0x027A72, 0x0492F0, 0x0254F0,
+ 0x089307, 0x0BE497, 0x08158B, 0x0B3689, 0x073000, 0x09F827, 0x05E489, 0x082C66,
+ 0x096413, 0x08739C, 0x07B2FF, 0x0737C2, 0x043A64, 0x06556D, 0x026A04, 0x035936,
+ 0x05F75A, 0x055E94, 0x036127, 0x030A9E, 0x0B33F1, 0x0A1514, 0x0A8FFC, 0x098186,
+ 0x078000, 0x05E489, 0x06623F, 0x050405, 0x040F19, 0x0227CC, 0x037473, 0x01C2E3,
+ 0x0490FC, 0x039677, 0x029629, 0x021999, 0x029015, 0x014E78, 0x01724E, 0x00C8F5,
+},
+{
+ 0x060000, 0x08D7A6, 0x09E1F6, 0x0DB528, 0x085450, 0x07EFEA, 0x0D9788, 0x0C3B7E,
+ 0x06C000, 0x054DAE, 0x0A671E, 0x082C66, 0x03DB24, 0x01F73E, 0x05A145, 0x03037D,
+ 0x0A4A08, 0x087818, 0x0A2455, 0x07F7ED, 0x05D569, 0x02F955, 0x057D20, 0x02CC54,
+ 0x0A4A08, 0x0E4582, 0x09B373, 0x0D74A5, 0x08A000, 0x0BF696, 0x07123E, 0x09CEE0,
+ 0x0B44E4, 0x0A2455, 0x093D32, 0x08A950, 0x0512DF, 0x0799B6, 0x02E59E, 0x0404A7,
+ 0x0728D2, 0x06717F, 0x040E2F, 0x03A657, 0x0D7187, 0x0C194B, 0x0CACC8, 0x0B683A,
+ 0x090000, 0x07123E, 0x07A918, 0x0604D2, 0x04DEEA, 0x029629, 0x042556, 0x021D11,
+ 0x057AC8, 0x044E28, 0x031A97, 0x02851E, 0x03134C, 0x01915C, 0x01BC5D, 0x00F126,
+},
+{
+ 0x080000, 0x0BCA33, 0x0D2D48, 0x1246E0, 0x0B1B15, 0x0A9538, 0x121F5F, 0x104F53,
+ 0x090000, 0x07123E, 0x0DDED2, 0x0AE5DD, 0x052430, 0x029EFD, 0x0781B1, 0x0404A7,
+ 0x0DB80B, 0x0B4ACB, 0x0D85C7, 0x0A9FE7, 0x07C736, 0x03F71D, 0x075180, 0x03BB1A,
+ 0x0DB80B, 0x130757, 0x0CEF44, 0x11F0DC, 0x0B8000, 0x0FF372, 0x096DA8, 0x0D13D6,
+ 0x0F0686, 0x0D85C7, 0x0C5198, 0x0B8C6A, 0x06C3D4, 0x0A2248, 0x03DCD3, 0x055B8A,
+ 0x098BC3, 0x089754, 0x05683E, 0x04DDC9, 0x11ECB4, 0x1021B9, 0x10E661, 0x0F35A3,
+ 0x0C0000, 0x096DA8, 0x0A36CB, 0x08066E, 0x067E8E, 0x0372E1, 0x05871E, 0x02D16B,
+ 0x074E60, 0x05BD8B, 0x042374, 0x035C28, 0x0419BB, 0x021726, 0x02507C, 0x014188,
+},
+{
+ 0x0C0000, 0x11AF4C, 0x13C3EC, 0x1B6A50, 0x10A89F, 0x0FDFD4, 0x1B2F0F, 0x1876FD,
+ 0x0D8000, 0x0A9B5D, 0x14CE3C, 0x1058CB, 0x07B649, 0x03EE7B, 0x0B4289, 0x0606FB,
+ 0x149410, 0x10F030, 0x1448AB, 0x0FEFDA, 0x0BAAD2, 0x05F2AB, 0x0AFA40, 0x0598A7,
+ 0x149410, 0x1C8B03, 0x1366E6, 0x1AE949, 0x114000, 0x17ED2B, 0x0E247C, 0x139DC1,
+ 0x1689C8, 0x1448AB, 0x127A63, 0x11529F, 0x0A25BE, 0x0F336D, 0x05CB3C, 0x08094E,
+ 0x0E51A4, 0x0CE2FE, 0x081C5D, 0x074CAE, 0x1AE30E, 0x183296, 0x195991, 0x16D074,
+ 0x120000, 0x0E247C, 0x0F5230, 0x0C09A5, 0x09BDD5, 0x052C51, 0x084AAC, 0x043A21,
+ 0x0AF590, 0x089C51, 0x06352E, 0x050A3B, 0x062698, 0x0322B9, 0x0378BA, 0x01E24D,
+},
+{
+ 0x110000, 0x190DAC, 0x1C0039, 0x26D69C, 0x17998C, 0x167D16, 0x2682AB, 0x22A891,
+ 0x132000, 0x0F06C3, 0x1D797F, 0x172876, 0x0AECE7, 0x0591D9, 0x0FF398, 0x0889E3,
+ 0x1D2717, 0x17FEEF, 0x1CBC47, 0x1693CA, 0x108754, 0x086D1D, 0x0F8D30, 0x07ED98,
+ 0x1D2717, 0x286F9A, 0x1B7C71, 0x261FD3, 0x187000, 0x21E552, 0x140904, 0x1BCA27,
+ 0x1FEDDC, 0x1CBC47, 0x1A2D62, 0x188A62, 0x0E6022, 0x1588DA, 0x083540, 0x0B6284,
+ 0x1448FE, 0x124192, 0x0B7D84, 0x0A574B, 0x2616FF, 0x2247AA, 0x23E98D, 0x2051FA,
+ 0x198000, 0x140904, 0x15B46F, 0x110DAA, 0x0DCCEE, 0x07541E, 0x0BBF1F, 0x05FD04,
+ 0x0F868B, 0x0C32C8, 0x08CB57, 0x0723D4, 0x08B6AD, 0x047130, 0x04EB08, 0x02AB42,
+},
+{
+ 0x160000, 0x206C0C, 0x243C86, 0x3242E8, 0x1E8A79, 0x1D1A59, 0x31D646, 0x2CDA25,
+ 0x18C000, 0x13722A, 0x2624C3, 0x1DF820, 0x0E2385, 0x073537, 0x14A4A7, 0x0B0CCC,
+ 0x25BA1D, 0x1F0DAE, 0x252FE4, 0x1D37BB, 0x1563D6, 0x0AE78E, 0x142021, 0x0A4288,
+ 0x25BA1D, 0x345430, 0x2391FB, 0x31565C, 0x1FA000, 0x2BDD7A, 0x19ED8D, 0x23F68C,
+ 0x2951EF, 0x252FE4, 0x21E061, 0x1FC224, 0x129A87, 0x1BDE47, 0x0A9F44, 0x0EBBBA,
+ 0x1A4058, 0x17A026, 0x0EDEAB, 0x0D61E9, 0x314AEF, 0x2C5CBE, 0x2E798A, 0x29D380,
+ 0x210000, 0x19ED8D, 0x1C16AE, 0x1611AE, 0x11DC06, 0x097BEA, 0x0F3391, 0x07BFE7,
+ 0x141787, 0x0FC93E, 0x0B617F, 0x093D6D, 0x0B46C1, 0x05BFA8, 0x065D55, 0x037437,
+},
+{
+ 0x1C0000, 0x2943B2, 0x2E1E7C, 0x3FF810, 0x26DEC9, 0x250A43, 0x3F6DCE, 0x3915A3,
+ 0x1F8000, 0x18BFD8, 0x308BE1, 0x262485, 0x11FEA9, 0x092C75, 0x1A45EB, 0x0E1049,
+ 0x300425, 0x2785C6, 0x2F5439, 0x252FA8, 0x1B393F, 0x0DE0E4, 0x199D41, 0x0D0EDC,
+ 0x300425, 0x4299B2, 0x2D456E, 0x3ECB00, 0x284000, 0x37D40F, 0x20FFCB, 0x2DC56D,
+ 0x3496D3, 0x2F5439, 0x2B1D93, 0x286B74, 0x17AD66, 0x2377FE, 0x0D84E2, 0x12C062,
+ 0x21692A, 0x1E11A5, 0x12ECDA, 0x110840, 0x3EBC76, 0x387608, 0x3B2652, 0x353BBA,
+ 0x2A0000, 0x20FFCB, 0x23BFC6, 0x1C1681, 0x16BAF1, 0x0C1213, 0x1358E8, 0x09DCF8,
+ 0x19924F, 0x141767, 0x0E7C16, 0x0BC28A, 0x0E5A0D, 0x075104, 0x0819B2, 0x04655D,
+},
+{
+ 0x220000, 0x321B58, 0x380072, 0x4DAD38, 0x2F3318, 0x2CFA2D, 0x4D0556, 0x455122,
+ 0x264000, 0x1E0D86, 0x3AF2FE, 0x2E50EB, 0x15D9CE, 0x0B23B2, 0x1FE730, 0x1113C7,
+ 0x3A4E2D, 0x2FFDDF, 0x39788E, 0x2D2795, 0x210EA8, 0x10DA39, 0x1F1A61, 0x0FDB2F,
+ 0x3A4E2D, 0x50DF33, 0x36F8E1, 0x4C3FA5, 0x30E000, 0x43CAA5, 0x281209, 0x37944D,
+ 0x3FDBB7, 0x39788E, 0x345AC4, 0x3114C3, 0x1CC044, 0x2B11B4, 0x106A80, 0x16C509,
+ 0x2891FC, 0x248324, 0x16FB08, 0x14AE97, 0x4C2DFD, 0x448F54, 0x47D31B, 0x40A3F5,
+ 0x330000, 0x281209, 0x2B68DF, 0x221B53, 0x1B99DB, 0x0EA83B, 0x177E3E, 0x0BFA09,
+ 0x1F0D17, 0x18658F, 0x1196AE, 0x0E47A8, 0x116D5A, 0x08E260, 0x09D60F, 0x055684,
+},
+{
+ 0x2C0000, 0x40D818, 0x48790C, 0x6485D0, 0x3D14F2, 0x3A34B2, 0x63AC8D, 0x59B44A,
+ 0x318000, 0x26E454, 0x4C4986, 0x3BF03F, 0x1C470A, 0x0E6A6E, 0x29494D, 0x161998,
+ 0x4B743A, 0x3E1B5C, 0x4A5FC7, 0x3A6F75, 0x2AC7AC, 0x15CF1D, 0x284041, 0x148510,
+ 0x4B743A, 0x68A861, 0x4723F6, 0x62ACB8, 0x3F4000, 0x57BAF3, 0x33DB1A, 0x47ED19,
+ 0x52A3DE, 0x4A5FC7, 0x43C0C2, 0x3F8448, 0x25350D, 0x37BC8E, 0x153E87, 0x1D7775,
+ 0x3480B0, 0x2F404C, 0x1DBD56, 0x1AC3D2, 0x6295DE, 0x58B97B, 0x5CF313, 0x53A701,
+ 0x420000, 0x33DB1A, 0x382D5C, 0x2C235D, 0x23B80D, 0x12F7D4, 0x1E6723, 0x0F7FCF,
+ 0x282F0E, 0x1F927D, 0x16C2FF, 0x127AD9, 0x168D83, 0x0B7F50, 0x0CBAAA, 0x06E86E,
+},
+};
+
+} // End of namespace Video
+
+#endif // GRAPHICS_VIDEO_BINKDATA_H
diff --git a/video/module.mk b/video/module.mk
index d813218785..ceeac94384 100644
--- a/video/module.mk
+++ b/video/module.mk
@@ -19,5 +19,10 @@ MODULE_OBJS := \
codecs/smc.o \
codecs/truemotion1.o
+ifdef USE_BINK
+MODULE_OBJS += \
+ bink_decoder.o
+endif
+
# Include common rules
include $(srcdir)/rules.mk
diff --git a/video/smk_decoder.cpp b/video/smk_decoder.cpp
index 05a20ecd8d..dce80eda2c 100644
--- a/video/smk_decoder.cpp
+++ b/video/smk_decoder.cpp
@@ -372,17 +372,11 @@ bool SmackerDecoder::loadStream(Common::SeekableReadStream *stream) {
_fileStream = stream;
- // Seek to the first frame
+ // Read in the Smacker header
_header.signature = _fileStream->readUint32BE();
- // No BINK support available
- if (_header.signature == MKTAG('B','I','K','i')) {
- delete _fileStream;
- _fileStream = 0;
+ if (_header.signature != MKTAG('S', 'M', 'K', '2') && _header.signature != MKTAG('S', 'M', 'K', '4'))
return false;
- }
-
- assert(_header.signature == MKTAG('S','M','K','2') || _header.signature == MKTAG('S','M','K','4'));
uint32 width = _fileStream->readUint32LE();
uint32 height = _fileStream->readUint32LE();