├── .gitattributes
├── LICENSE
├── README.md
├── SupportedGames.txt
├── assets
├── logo.png
└── screen.jpg
└── src
├── .gitignore
├── AUTHORS
├── COPYING
├── Doc
└── Images
│ └── nscumm.png
├── Engines
├── NScumm.MonoGame
│ └── Platforms
│ │ └── WindowsGL
│ │ └── bin
│ │ └── Release
│ │ └── plugins
│ │ ├── IO
│ │ └── Nscumm.xml
│ │ ├── NScumm.Scumm.dll
│ │ └── NScumm.Scumm.pdb
├── NScumm.Scumm
│ ├── Actor.cs
│ ├── Actor0.cs
│ ├── Actor2.cs
│ ├── Actor3.cs
│ ├── Audio
│ │ ├── Amiga
│ │ │ ├── IPlayerMod.cs
│ │ │ ├── V2A_Sound_Base.cs
│ │ │ ├── V2A_Sound_MultiLooped.cs
│ │ │ ├── V2A_Sound_MultiLoopedDuration.cs
│ │ │ ├── V2A_Sound_Music.cs
│ │ │ ├── V2A_Sound_Single.cs
│ │ │ ├── V2A_Sound_SingleLooped.cs
│ │ │ ├── V2A_Sound_SingleLoopedPitchbend.cs
│ │ │ ├── V2A_Sound_Special_Maniac32.cs
│ │ │ ├── V2A_Sound_Special_Maniac44.cs
│ │ │ ├── V2A_Sound_Special_Maniac46.cs
│ │ │ ├── V2A_Sound_Special_Maniac59.cs
│ │ │ ├── V2A_Sound_Special_Maniac61.cs
│ │ │ ├── V2A_Sound_Special_Maniac69.cs
│ │ │ ├── V2A_Sound_Special_ManiacDing.cs
│ │ │ ├── V2A_Sound_Special_ManiacPhone.cs
│ │ │ ├── V2A_Sound_Special_ManiacTentacle.cs
│ │ │ └── V2A_Sound_Special_ManiacTypewriter.cs
│ │ ├── AppleII
│ │ │ ├── AppleII_SoundFunction1_FreqUpDown.cs
│ │ │ ├── AppleII_SoundFunction2_SymmetricWave.cs
│ │ │ ├── AppleII_SoundFunction3_AsymmetricWave.cs
│ │ │ ├── AppleII_SoundFunction4_Polyphone.cs
│ │ │ ├── AppleII_SoundFunction5_Noise.cs
│ │ │ └── IAppleII_SoundFunction.cs
│ │ ├── DefaultAudioCDManager.cs
│ │ ├── IMuse
│ │ │ ├── CommandQueue.cs
│ │ │ ├── DeferredCommand.cs
│ │ │ ├── HookDatas.cs
│ │ │ ├── IImuse.cs
│ │ │ ├── IInstrumentInternal.cs
│ │ │ ├── IMuseDigital
│ │ │ │ ├── BundleCodecs.cs
│ │ │ │ ├── BundleDirCache.cs
│ │ │ │ ├── BundleMgr.cs
│ │ │ │ ├── IMuseDigiSndMgr.cs
│ │ │ │ ├── IMuseDigital.cs
│ │ │ │ ├── IMuseDigital_Music.cs
│ │ │ │ ├── IMuseDigital_Script.cs
│ │ │ │ ├── IMuseDigital_Tables.cs
│ │ │ │ ├── IMuseDigital_Track.cs
│ │ │ │ ├── ImuseTrack.cs
│ │ │ │ └── SoundDesc.cs
│ │ │ ├── IMuseInternal.cs
│ │ │ ├── ISysEx.cs
│ │ │ ├── ImTrigger.cs
│ │ │ ├── Instrument.cs
│ │ │ ├── InstrumentAdLib.cs
│ │ │ ├── InstrumentPcSpk.cs
│ │ │ ├── InstrumentProgram.cs
│ │ │ ├── ParameterFader.cs
│ │ │ ├── Part.cs
│ │ │ ├── Player.cs
│ │ │ ├── SamAndMaxSysEx.cs
│ │ │ ├── ScummSysEx.cs
│ │ │ └── TimerCallbackInfo.cs
│ │ ├── IMusicEngine.cs
│ │ ├── Players
│ │ │ ├── Player_AD.cs
│ │ │ ├── Player_AppleII.cs
│ │ │ ├── Player_MOD.cs
│ │ │ ├── Player_Mac.cs
│ │ │ ├── Player_SID.cs
│ │ │ ├── Player_Towns.cs
│ │ │ ├── Player_Towns_v1.cs
│ │ │ ├── Player_Towns_v2.cs
│ │ │ ├── Player_V1.cs
│ │ │ ├── Player_V2.cs
│ │ │ ├── Player_V2A.cs
│ │ │ ├── Player_V2Base.cs
│ │ │ ├── Player_V2CMS.cs
│ │ │ ├── Player_V3A.cs
│ │ │ ├── Player_V3M.cs
│ │ │ ├── Player_V4A.cs
│ │ │ └── Player_V5M.cs
│ │ ├── SampleBuffer.cs
│ │ └── SampleConverter.cs
│ ├── BlastObject.cs
│ ├── BlastText.cs
│ ├── Box.cs
│ ├── BoxCoords.cs
│ ├── Camera.cs
│ ├── ClickArea.cs
│ ├── ColorCycle.cs
│ ├── CostumeData.cs
│ ├── Cursor.cs
│ ├── CutScene.cs
│ ├── FlashLight.cs
│ ├── Graphics
│ │ ├── AkosRenderer.cs
│ │ ├── BaseCostumeRenderer.cs
│ │ ├── BompDrawData.cs
│ │ ├── CharsetRenderer.cs
│ │ ├── CharsetRenderer2.cs
│ │ ├── CharsetRenderer3.cs
│ │ ├── CharsetRendererClassic.cs
│ │ ├── CharsetRendererCommon.cs
│ │ ├── CharsetRendererNut.cs
│ │ ├── CharsetRendererTowns3.cs
│ │ ├── CharsetRendererTownsClassic.cs
│ │ ├── ClassicCostumeRenderer.cs
│ │ ├── CostumeRenderer0.cs
│ │ ├── Gdi.cs
│ │ ├── Gdi1.cs
│ │ ├── Gdi2.cs
│ │ ├── ICostumeRenderer.cs
│ │ ├── ImageData.cs
│ │ ├── NutRenderer.cs
│ │ ├── Palette.cs
│ │ ├── PixelNavigator.cs
│ │ ├── TownsScreen.cs
│ │ ├── VirtScreen.cs
│ │ └── ZPlane.cs
│ ├── IO
│ │ ├── AkosCostumeLoader.cs
│ │ ├── AkosHeader.cs
│ │ ├── ChunkIterator3.cs
│ │ ├── ChunkIterator5.cs
│ │ ├── ClassicCostumeLoader.cs
│ │ ├── CostumeLoader0.cs
│ │ ├── GameInfo.cs
│ │ ├── GameManager.cs
│ │ ├── ICostumeLoader.cs
│ │ ├── MacResManager.cs
│ │ ├── Nscumm.xml
│ │ ├── Nscumm.xsd
│ │ ├── ResourceFile.cs
│ │ ├── ResourceFile0.cs
│ │ ├── ResourceFile1.cs
│ │ ├── ResourceFile2.cs
│ │ ├── ResourceFile3.cs
│ │ ├── ResourceFile3_16.cs
│ │ ├── ResourceFile4.cs
│ │ ├── ResourceFile5.cs
│ │ ├── ResourceFile6.cs
│ │ ├── ResourceFile7.cs
│ │ ├── ResourceFile8.cs
│ │ ├── ResourceIndex.cs
│ │ ├── ResourceIndex0.cs
│ │ ├── ResourceIndex2.cs
│ │ ├── ResourceIndex3.cs
│ │ ├── ResourceIndex3_16.cs
│ │ ├── ResourceIndex4.cs
│ │ ├── ResourceIndex5.cs
│ │ ├── ResourceIndex6.cs
│ │ ├── ResourceIndex7.cs
│ │ ├── ResourceIndex8.cs
│ │ ├── ResourceManager.cs
│ │ ├── ResourceManager0.cs
│ │ ├── ResourceManager2.cs
│ │ ├── ResourceManager3.cs
│ │ ├── ResourceManager4.cs
│ │ ├── ResourceManager5.cs
│ │ ├── ResourceManager6.cs
│ │ ├── ResourceManager7.cs
│ │ ├── ResourceManager8.cs
│ │ ├── ScummDiskImage.cs
│ │ ├── ScummMetaEngine.cs
│ │ ├── Serializer.cs
│ │ └── XorStream.cs
│ ├── IScummTextDecoder.cs
│ ├── Insane
│ │ ├── Insane.cs
│ │ ├── Insane_Ben.cs
│ │ ├── Insane_Enemy.cs
│ │ ├── Insane_Iact.cs
│ │ └── Insane_Scenes.cs
│ ├── Languages
│ │ ├── Language.cs
│ │ ├── LanguageAttribute.cs
│ │ ├── LanguageHelpers.cs
│ │ ├── LanguageIsNotSupportedException.cs
│ │ ├── LanguageModel.cs
│ │ ├── Languages.cs
│ │ └── LanguagesJSON.cs
│ ├── NScumm.Scumm.csproj
│ ├── NestedScript.cs
│ ├── ObjectData.cs
│ ├── OpCodeAttribute.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── Room.cs
│ ├── ScaleSlot.cs
│ ├── ScriptData.cs
│ ├── ScriptSlot.cs
│ ├── ScummEngine.cs
│ ├── ScummEngine0.cs
│ ├── ScummEngine0_Actor.cs
│ ├── ScummEngine0_Variable.cs
│ ├── ScummEngine0_Verb.cs
│ ├── ScummEngine2.cs
│ ├── ScummEngine3.cs
│ ├── ScummEngine3_Actor.cs
│ ├── ScummEngine3_Camera.cs
│ ├── ScummEngine3_Cursor.cs
│ ├── ScummEngine3_Drawing.cs
│ ├── ScummEngine3_Expression.cs
│ ├── ScummEngine3_Inventory.cs
│ ├── ScummEngine3_Light.cs
│ ├── ScummEngine3_Object.cs
│ ├── ScummEngine3_Room.cs
│ ├── ScummEngine3_SaveLoad.cs
│ ├── ScummEngine3_Script.cs
│ ├── ScummEngine3_String.cs
│ ├── ScummEngine3_Verb.cs
│ ├── ScummEngine4.cs
│ ├── ScummEngine5.cs
│ ├── ScummEngine6.cs
│ ├── ScummEngine6_Actor.cs
│ ├── ScummEngine6_Array.cs
│ ├── ScummEngine6_Audio.cs
│ ├── ScummEngine6_Camera.cs
│ ├── ScummEngine6_Cursor.cs
│ ├── ScummEngine6_Expression.cs
│ ├── ScummEngine6_Inventory.cs
│ ├── ScummEngine6_Misc.cs
│ ├── ScummEngine6_Object.cs
│ ├── ScummEngine6_Resources.cs
│ ├── ScummEngine6_Room.cs
│ ├── ScummEngine6_Script.cs
│ ├── ScummEngine6_String.cs
│ ├── ScummEngine6_Variable.cs
│ ├── ScummEngine6_Verb.cs
│ ├── ScummEngine7.cs
│ ├── ScummEngine7_Misc.cs
│ ├── ScummEngine8.cs
│ ├── ScummEngine_Actor.cs
│ ├── ScummEngine_Audio.cs
│ ├── ScummEngine_Box.cs
│ ├── ScummEngine_Camera.cs
│ ├── ScummEngine_Charset.cs
│ ├── ScummEngine_Cursor.cs
│ ├── ScummEngine_Drawing.cs
│ ├── ScummEngine_Effect.cs
│ ├── ScummEngine_Input.cs
│ ├── ScummEngine_Inventory.cs
│ ├── ScummEngine_Light.cs
│ ├── ScummEngine_Object.cs
│ ├── ScummEngine_Palette.cs
│ ├── ScummEngine_Room.cs
│ ├── ScummEngine_SaveLoad.cs
│ ├── ScummEngine_Script.cs
│ ├── ScummEngine_String.cs
│ ├── ScummEngine_Variable.cs
│ ├── ScummEngine_Verb.cs
│ ├── ScummMath.cs
│ ├── ScummText.cs
│ ├── Sentence.cs
│ ├── Smush
│ │ ├── Codec37Decoder.cs
│ │ ├── Codec47Decoder.cs
│ │ ├── ImuseChannel.cs
│ │ ├── SaudChannel.cs
│ │ ├── SmushChannel.cs
│ │ ├── SmushFont.cs
│ │ ├── SmushMixer.cs
│ │ ├── SmushPlayer.cs
│ │ └── TrsFile.cs
│ ├── Sound.cs
│ ├── SubtitleText.cs
│ ├── TextObject.cs
│ ├── TextSlot.cs
│ ├── TraceSwitches.cs
│ ├── VerbSlot.cs
│ └── packages.config
├── NScumm.Sky
│ ├── AutoRoute.cs
│ ├── Compact.cs
│ ├── Control.cs
│ ├── Debug.cs
│ ├── Disk.cs
│ ├── Grid.cs
│ ├── Intro.Sequences.cs
│ ├── Intro.cs
│ ├── Logic.Logic.cs
│ ├── Logic.Mcode.cs
│ ├── Logic.cs
│ ├── Mouse.cs
│ ├── Music
│ │ ├── AdLibChannel.cs
│ │ ├── AdLibMusic.cs
│ │ ├── GmChannel.cs
│ │ ├── GmMusic.cs
│ │ ├── Mt32Music.cs
│ │ └── MusicBase.cs
│ ├── NScumm.Sky.csproj
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── RawAccess.cs
│ ├── RncDecoder.cs
│ ├── Screen.cs
│ ├── SkyDefines.cs
│ ├── SkyDefines.tt
│ ├── SkyEngine.cs
│ ├── SkyMetaEngine.cs
│ ├── SkySystem.cs
│ ├── Sound.Data.cs
│ ├── Sound.cs
│ ├── Text.HuffTree.cs
│ ├── Text.cs
│ ├── sky.cpt
│ └── skydefs.h
└── NScumm.Sword1
│ ├── Control.cs
│ ├── ControlButton.cs
│ ├── EventManager.cs
│ ├── Logic.Mcode.cs
│ ├── Logic.cs
│ ├── MemMan.cs
│ ├── Menu.cs
│ ├── MenuIcon.cs
│ ├── Mouse.cs
│ ├── MoviePlayer.cs
│ ├── Music.cs
│ ├── NScumm.Sword1.csproj
│ ├── ObjectMan.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── RawAccess.cs
│ ├── ResMan.cs
│ ├── Router.cs
│ ├── Screen.cs
│ ├── ScriptVariableNames.cs
│ ├── Sound.Defines.cs
│ ├── Sound.Fx.cs
│ ├── Sound.cs
│ ├── StaticRes.cs
│ ├── Sword1MetaEngine.cs
│ ├── SwordEngine.cs
│ ├── SwordObject.cs
│ ├── SwordRes.RoomDefTable.cs
│ ├── SwordSystem.cs
│ ├── SystemVars.cs
│ ├── Text.cs
│ ├── swordres.cs
│ ├── swordres.h
│ └── swordres.tt
├── NScumm-Linux.sln
├── NScumm-WindowsGL.sln
├── NScumm-Windows_UWP.sln
├── NScumm-Windows_UWP.sln.DotSettings.user
├── NScumm.Core
├── Audio
│ ├── AudioFormat.cs
│ ├── CMSMusicPlugin.cs
│ ├── Channel.cs
│ ├── Decoders
│ │ ├── AudioStreamHelper.cs
│ │ ├── Ima_ADPCMStream.cs
│ │ ├── RawStream.cs
│ │ ├── SubLoopingAudioStream.cs
│ │ ├── VocStream.cs
│ │ └── XAStream.cs
│ ├── DeviceHandle.cs
│ ├── FixedPointFractionHelper.cs
│ ├── IAudioCDManager.cs
│ ├── IAudioOutput.cs
│ ├── IAudioStream.cs
│ ├── IMixer.cs
│ ├── IMusicPluginObject.cs
│ ├── ISoundRepository.cs
│ ├── LoopingAudioStream.cs
│ ├── Midi
│ │ ├── IMidiDriver.cs
│ │ ├── MidiParser.cs
│ │ ├── NoteTimer.cs
│ │ ├── SmfMidiParser.cs
│ │ └── Tracker.cs
│ ├── MidiChannel.cs
│ ├── MidiDriver.cs
│ ├── Mixer.cs
│ ├── Mods
│ │ ├── Paula.cs
│ │ └── Tfmx.cs
│ ├── MusicDevice.cs
│ ├── MusicManager.cs
│ ├── MusicPluginObject.cs
│ ├── NullMidiDriver.cs
│ ├── OPL
│ │ ├── DosBox
│ │ │ ├── DosBoxOPL.cs
│ │ │ ├── DosBoxOPL_Channel.cs
│ │ │ ├── DosBoxOPL_Chip.cs
│ │ │ ├── DosBoxOPL_Operator.cs
│ │ │ ├── DosBoxOPL_Shared.cs
│ │ │ ├── OplChip.cs
│ │ │ └── OplTimer.cs
│ │ ├── IOpl.cs
│ │ └── Mame
│ │ │ ├── FmOPL.cs
│ │ │ └── MameOPL.cs
│ ├── PCJuniorMusicPlugin.cs
│ ├── PCSpeaker.cs
│ ├── PCSpeakerDriver.cs
│ ├── PCSpeakerMusicPlugin.cs
│ ├── QueuingAudioStream.cs
│ ├── RateConverters
│ │ ├── CopyRateConverter.cs
│ │ ├── IRateConverter.cs
│ │ ├── LinearRateConverter.cs
│ │ ├── RateHelper.cs
│ │ └── SimpleRateConverter.cs
│ ├── SampleProviders
│ │ ├── AudioSampleProvider16.cs
│ │ ├── AudioSampleProviderToAudioStream.cs
│ │ ├── AudioStreamToAudioSampleProvider.cs
│ │ ├── IAudioSampleProvider.cs
│ │ ├── MonoToStereoAudioSampleProvider16.cs
│ │ └── ResampleAudioSampleProvider.cs
│ ├── SoftSynth
│ │ ├── Adlib.cs
│ │ ├── AdlibMidiDriver.cs
│ │ ├── AdlibMidiDriver_Data.cs
│ │ ├── CMSEmulator.cs
│ │ ├── EmulatedMidiDriver.cs
│ │ ├── EnvelopeGenerator.cs
│ │ ├── ExternalFilter.cs
│ │ ├── FMTownsPc98
│ │ │ ├── ITownsAudioInterfacePluginDriver.cs
│ │ │ ├── MidiDriver_TOWNS.cs
│ │ │ ├── TownsAudioInterface.cs
│ │ │ ├── TownsAudioInterfaceInternal.cs
│ │ │ ├── TownsAudio_PcmChannel.cs
│ │ │ ├── TownsAudio_WaveTable.cs
│ │ │ ├── TownsEmuMusicPlugin.cs
│ │ │ ├── TownsEuphonyDriver.cs
│ │ │ ├── TownsMidiInputChannel.cs
│ │ │ ├── TownsMidiOutputChannel.cs
│ │ │ ├── TownsPC98_FmSynth.cs
│ │ │ ├── TownsPC98_FmSynthOperator.cs
│ │ │ ├── TownsPC98_FmSynthPercussionSource.cs
│ │ │ └── TownsPC98_FmSynthSquareSineSource.cs
│ │ ├── Filter.cs
│ │ ├── ISid.cs
│ │ ├── Sid.cs
│ │ ├── Voice.cs
│ │ └── WaveformGenerator.cs
│ ├── SoundHandle.cs
│ ├── SubSeekableAudioStream.cs
│ ├── Timestamp.cs
│ └── WaveStreamWriter.cs
├── BitStream.cs
├── Common
│ └── Huffman.cs
├── Graphics
│ ├── Color.cs
│ ├── IGraphicsManager.cs
│ ├── Point.cs
│ ├── Rect.cs
│ ├── Surface.cs
│ ├── ThumbnailHeader.cs
│ └── YUVToRGBManager.cs
├── IAudioManager.cs
├── IEnableTrace.cs
├── IEngine.cs
├── IFileStorage.cs
├── IO
│ ├── GameDetected.cs
│ ├── GameDetector.cs
│ ├── GameSettings.cs
│ ├── IGameDescriptor.cs
│ ├── IMetaEngine.cs
│ └── Platform.cs
├── IPlatform.cs
├── ISaveFileManager.cs
├── ISystem.cs
├── ITraceFactory.cs
├── Input
│ ├── IInputManager.cs
│ ├── KeyCode.cs
│ ├── ScummInputState.cs
│ └── ScummMouseButtonState.cs
├── NScumm.Core.csproj
├── Properties
│ └── AssemblyInfo.cs
├── Rational.cs
├── ScummHelper.cs
├── ServiceLocator.cs
└── Video
│ ├── AudioTrack.cs
│ ├── BigHuffmanTree.cs
│ ├── FixedRateVideoTrack.cs
│ ├── ITrack.cs
│ ├── PsxStreamDecoder.Audio.cs
│ ├── PsxStreamDecoder.Video.cs
│ ├── PsxStreamDecoder.cs
│ ├── SmackerAudioTrack.cs
│ ├── SmackerDecoder.cs
│ ├── SmackerVideoTrack.cs
│ ├── SmallHuffmanTree.cs
│ ├── Track.cs
│ ├── VideoDecoder.cs
│ └── VideoTrack.cs
├── NScumm.MonoGame
├── Content
│ ├── Fonts
│ │ ├── MenuFont.xnb
│ │ └── SpriteFont.xnb
│ └── Textures
│ │ ├── blank.png
│ │ └── blank.xnb
├── DynamicSoundEffectInstance.cs
├── Mono.Options
│ └── Options.cs
├── OpenALDriver.cs
├── Platforms
│ ├── Linux
│ │ ├── NScumm.MonoGame.csproj
│ │ ├── OpenTK.dll.config
│ │ ├── Tao.Sdl.dll.config
│ │ └── packages.config
│ ├── UWP
│ │ └── NScumm.MonoGame
│ │ │ ├── App.xaml
│ │ │ ├── App.xaml.cs
│ │ │ ├── ApplicationInsights.config
│ │ │ ├── Assets
│ │ │ ├── LargeTile.scale-100.png
│ │ │ ├── LargeTile.scale-125.png
│ │ │ ├── LargeTile.scale-150.png
│ │ │ ├── LargeTile.scale-200.png
│ │ │ ├── LargeTile.scale-400.png
│ │ │ ├── LockScreenLogo.scale-200.png
│ │ │ ├── SmallTile.scale-100.png
│ │ │ ├── SmallTile.scale-125.png
│ │ │ ├── SmallTile.scale-150.png
│ │ │ ├── SmallTile.scale-200.png
│ │ │ ├── SmallTile.scale-400.png
│ │ │ ├── SplashScreen.scale-100.png
│ │ │ ├── SplashScreen.scale-125.png
│ │ │ ├── SplashScreen.scale-150.png
│ │ │ ├── SplashScreen.scale-200.png
│ │ │ ├── SplashScreen.scale-400.png
│ │ │ ├── Square150x150Logo.scale-100.png
│ │ │ ├── Square150x150Logo.scale-125.png
│ │ │ ├── Square150x150Logo.scale-150.png
│ │ │ ├── Square150x150Logo.scale-200.png
│ │ │ ├── Square150x150Logo.scale-400.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-16.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-256.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-32.png
│ │ │ ├── Square44x44Logo.altform-unplated_targetsize-48.png
│ │ │ ├── Square44x44Logo.scale-100.png
│ │ │ ├── Square44x44Logo.scale-125.png
│ │ │ ├── Square44x44Logo.scale-150.png
│ │ │ ├── Square44x44Logo.scale-200.png
│ │ │ ├── Square44x44Logo.scale-400.png
│ │ │ ├── Square44x44Logo.targetsize-16.png
│ │ │ ├── Square44x44Logo.targetsize-24.png
│ │ │ ├── Square44x44Logo.targetsize-24_altform-unplated.png
│ │ │ ├── Square44x44Logo.targetsize-256.png
│ │ │ ├── Square44x44Logo.targetsize-32.png
│ │ │ ├── Square44x44Logo.targetsize-48.png
│ │ │ ├── StoreLogo.scale-100.png
│ │ │ ├── StoreLogo.scale-125.png
│ │ │ ├── StoreLogo.scale-150.png
│ │ │ ├── StoreLogo.scale-200.png
│ │ │ ├── StoreLogo.scale-400.png
│ │ │ ├── Wide310x150Logo.scale-100.png
│ │ │ ├── Wide310x150Logo.scale-125.png
│ │ │ ├── Wide310x150Logo.scale-150.png
│ │ │ ├── Wide310x150Logo.scale-200.png
│ │ │ └── Wide310x150Logo.scale-400.png
│ │ │ ├── Backup
│ │ │ ├── NScumm.MonoGame.csproj
│ │ │ └── project.json
│ │ │ ├── BundleArtifacts
│ │ │ ├── arm.txt
│ │ │ ├── x64.txt
│ │ │ └── x86.txt
│ │ │ ├── Content
│ │ │ ├── NScumm.mgcb
│ │ │ └── ScummVM.dat
│ │ │ ├── Converters
│ │ │ ├── GameCountToVisibilityConverter.cs
│ │ │ └── IsScanningToVisibilityConverter.cs
│ │ │ ├── NScumm.MonoGame.csproj
│ │ │ ├── NScumm.MonoGame.csproj.user
│ │ │ ├── NScumm.MonoGame.rd.xml
│ │ │ ├── NativeArchiveHelper.cs
│ │ │ ├── Package.appxmanifest
│ │ │ ├── Pages
│ │ │ ├── GameLibraryPage.xaml
│ │ │ ├── GameLibraryPage.xaml.cs
│ │ │ ├── GamePage.xaml
│ │ │ ├── GamePage.xaml.cs
│ │ │ ├── MainMenu.xaml
│ │ │ └── MainMenu.xaml.cs
│ │ │ ├── Properties
│ │ │ ├── AssemblyInfo.cs
│ │ │ └── Default.rd.xml
│ │ │ ├── Services
│ │ │ └── MenuService.cs
│ │ │ ├── Strings
│ │ │ ├── en-US
│ │ │ │ └── Resources.resw
│ │ │ └── fr-FR
│ │ │ │ └── Resources.resw
│ │ │ ├── TraceFactory.cs
│ │ │ ├── ViewModels
│ │ │ ├── DelegateCommand.cs
│ │ │ ├── GameLibraryViewModel.cs
│ │ │ ├── GameViewModel.cs
│ │ │ └── ViewModel.cs
│ │ │ ├── XAudio2Mixer.cs
│ │ │ └── project.lock.json
│ └── WindowsGL
│ │ ├── App.ico
│ │ ├── GameDetectorExtension.cs
│ │ ├── NScumm.MonoGame.csproj
│ │ ├── OpenTK.dll.config
│ │ ├── Properties
│ │ └── AssemblyInfo.cs
│ │ ├── Services
│ │ └── MenuService.cs
│ │ ├── Tao.Sdl.dll.config
│ │ └── packages.config
├── Program.cs
├── ScreenManager
│ ├── GameScreen.cs
│ ├── InputState.cs
│ ├── MenuScreen.cs
│ └── ScreenManager.cs
├── Screens
│ ├── BackgroundScreen.cs
│ ├── MainMenuScreen.cs
│ └── ScummScreen.cs
├── ScummGame.cs
├── Services
│ └── IMenuService.cs
├── XnaGraphicsManager.cs
└── XnaInputManager.cs
├── NScumm.Unsafe
├── NScumm.Unsafe.csproj
├── Properties
│ ├── AssemblyInfo.cs
│ └── NScumm.Unsafe.rd.xml
└── Services
│ └── GCService.cs
├── Platforms
├── NScumm.Platform_Desktop
│ ├── AudioManager.cs
│ ├── FileStorage.cs
│ ├── NScumm.Platform_Desktop.csproj
│ ├── Platform.cs
│ ├── Properties
│ │ └── AssemblyInfo.cs
│ ├── SaveFileManager.cs
│ ├── TraceFactory.cs
│ ├── WaveAudioStream.cs
│ └── packages.config
└── NScumm.Platform_UWP
│ ├── Backup
│ ├── NScumm.Platform_UWP.csproj
│ └── project.json
│ ├── FileStorage.cs
│ ├── MD5.cs
│ ├── NScumm.Platform_UWP.csproj
│ ├── Properties
│ ├── AssemblyInfo.cs
│ └── NScumm.Platform_UWP.rd.xml
│ ├── SaveFileManager.cs
│ ├── WindowsUAPPlatform.cs
│ ├── project.json
│ └── project.lock.json
├── README.md
├── Tests
├── NScumm.Core.Tests
│ ├── IO
│ │ ├── ResourceIndex0Fixture.cs
│ │ └── XorStreamFixture.cs
│ ├── NScumm.Scumm.Tests.csproj
│ ├── Properties
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ └── Resources.resx
│ ├── Resources
│ │ └── maniacdemo.d64
│ └── packages.config
└── NScumm.Dump.Tests
│ ├── AstHelper.cs
│ ├── ChangeJumpToIfFixture.cs
│ ├── NScumm.Dump.Tests.csproj
│ ├── ReplaceJumpToGoToFixture.cs
│ ├── ReplaceJumpToWhileFixtureFixture.cs
│ ├── ReplacePushAndPopFixture.cs
│ ├── ResolveAllTypesOfVariablesFixture.cs
│ ├── ResolveVariablesAstVisitorFixture.cs
│ └── packages.config
├── Tools
└── NScumm.Dump
│ ├── .vs
│ └── NScumm.Dump
│ │ └── v16
│ │ └── .suo
│ ├── Ast
│ ├── AstNodeBase.cs
│ ├── CompilationUnit.cs
│ ├── DefaultVisitor.cs
│ ├── Expressions
│ │ ├── ArrayLiteralExpression.cs
│ │ ├── BinaryExpression.cs
│ │ ├── BooleanLiteralExpression.cs
│ │ ├── ElementAccess.cs
│ │ ├── Expression.cs
│ │ ├── IntegerLiteralExpression.cs
│ │ ├── LiteralExpression.cs
│ │ ├── MemberAccess.cs
│ │ ├── MethodInvocation.cs
│ │ ├── SimpleName.cs
│ │ ├── StringLiteralExpression.cs
│ │ └── UnaryExpression.cs
│ ├── IAstNode.cs
│ ├── IAstNodeVisitor.cs
│ └── Statements
│ │ ├── BlockStatement.cs
│ │ ├── CaseStatement.cs
│ │ ├── DoWhileStatement.cs
│ │ ├── ExpressionStatement.cs
│ │ ├── GoToStatement.cs
│ │ ├── IfStatement.cs
│ │ ├── JumpStatement.cs
│ │ ├── LabelStatement.cs
│ │ ├── Statement.cs
│ │ └── SwitchStatement.cs
│ ├── AstRewriterVisitor.cs
│ ├── DumpAstVisitor.cs
│ ├── IDumper.cs
│ ├── ImageDumper.cs
│ ├── JumpAstVisitor.cs
│ ├── Mono.Options
│ └── Options.cs
│ ├── NScumm.Dump.csproj
│ ├── Parser
│ ├── ScriptParser.cs
│ ├── ScriptParser0.cs
│ ├── ScriptParser3.cs
│ ├── ScriptParser3_Actor.cs
│ ├── ScriptParser3_Audio.cs
│ ├── ScriptParser3_Camera.cs
│ ├── ScriptParser3_Expression.cs
│ ├── ScriptParser3_Inventory.cs
│ ├── ScriptParser3_Object.cs
│ ├── ScriptParser3_OpCode.cs
│ ├── ScriptParser3_Room.cs
│ ├── ScriptParser3_Scripts.cs
│ ├── ScriptParser3_Strings.cs
│ ├── ScriptParser3_Variable.cs
│ ├── ScriptParser3_Verb.cs
│ ├── ScriptParser4.cs
│ ├── ScriptParser5.cs
│ ├── ScriptParser6.cs
│ ├── ScriptParser6_Actor.cs
│ ├── ScriptParser6_Audio.cs
│ ├── ScriptParser6_Camera.cs
│ ├── ScriptParser6_Expression.cs
│ ├── ScriptParser6_Graphics.cs
│ ├── ScriptParser6_Inventory.cs
│ ├── ScriptParser6_Misc.cs
│ ├── ScriptParser6_Object.cs
│ ├── ScriptParser6_Resources.cs
│ ├── ScriptParser6_Room.cs
│ ├── ScriptParser6_Script.cs
│ ├── ScriptParser6_Variables.cs
│ ├── ScriptParser6_Verb.cs
│ ├── ScriptParser7.cs
│ └── ScriptParser8.cs
│ ├── Program.cs
│ ├── Properties
│ └── AssemblyInfo.cs
│ ├── ReplaceJumpToGoTo.cs
│ ├── ReplaceJumpToIf.cs
│ ├── ReplaceJumpToWhile.cs
│ ├── ReplacePushAndPop.cs
│ ├── ResolveAllTypesOfVariables.cs
│ ├── ResolveVariablesAstVisitor.cs
│ ├── ScriptDumper.cs
│ ├── TextDecoder.cs
│ ├── obj
│ ├── Debug
│ │ ├── .NETFramework,Version=v4.5.AssemblyAttributes.cs
│ │ ├── DesignTimeResolveAssemblyReferences.cache
│ │ ├── DesignTimeResolveAssemblyReferencesInput.cache
│ │ ├── NScumm.Dump.csproj.AssemblyReference.cache
│ │ ├── NScumm.Dump.csproj.FileListAbsolute.txt
│ │ └── build.force
│ └── Release
│ │ ├── .NETFramework,Version=v4.5.AssemblyAttributes.cs
│ │ ├── NScumm.Dump.csproj.AssemblyReference.cache
│ │ └── NScumm.Dump.csproj.FileListAbsolute.txt
│ └── packages.config
├── UpgradeLog.htm
├── UpgradeLog2.htm
└── packages
├── Mono.Options.1.1
├── .signature.p7s
├── Mono.Options.1.1.nupkg
└── content
│ └── Mono.Options
│ └── Options.cs.pp
├── NFluent.1.3.1.0
├── .signature.p7s
├── NFluent.1.3.1.0.nupkg
└── lib
│ ├── net35
│ ├── NFluent.dll
│ └── NFluent.xml
│ ├── net40
│ ├── NFluent.dll
│ └── NFluent.xml
│ └── portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1
│ ├── NFluent.dll
│ └── NFluent.xml
├── NUnit.2.6.4
├── .signature.p7s
├── NUnit.2.6.4.nupkg
├── lib
│ ├── nunit.framework.dll
│ └── nunit.framework.xml
└── license.txt
└── NUnit.3.0.0-beta-2
├── .signature.p7s
├── CHANGES.txt
├── LICENSE.txt
├── NOTICES.txt
├── NUnit.3.0.0-beta-2.nupkg
└── lib
├── net20
├── nunit.framework.dll
└── nunit.framework.xml
├── net40
├── nunit.framework.dll
└── nunit.framework.xml
├── net45
├── nunit.framework.dll
└── nunit.framework.xml
├── portable-net45+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1
├── nunit.framework.dll
└── nunit.framework.xml
└── sl50
├── nunit.framework.dll
└── nunit.framework.xml
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 | 
3 | Enhanced Scumm Engine (UWP)
4 | Source |
5 | Original Project
6 |
7 | 
8 |
9 |
10 |
11 | # Important
12 |
13 | - WIP project for testing usage, original ScummVM is working better
14 |
15 | - The extended database added in hope to extend the engines list, even if the new game detected it might not work
16 |
17 |
18 | # Features
19 |
20 | - Extended games database (Future usage)
21 |
22 | - Add your custom database (As ScummVM.dat)
23 |
24 | - Fix some wrong md5 results
25 |
26 | - Async loader to avoid UI block
27 |
28 | - Export/Import Saves
29 |
30 | - Shortcuts for touch screens
31 |
32 | - Layouts improvement
33 |
34 | - Bugs fixes
35 |
36 |
37 | # Limitations
38 |
39 | - You cannot go back to the games list (for now)
40 |
41 | - Actions like clear games list requires app restart
42 |
43 | - Cannot delete specific game (for now)
44 |
45 |
46 | # Known Issue
47 |
48 | - GC (Garbage Collector) causing low performance
49 |
50 |
51 | # Target
52 |
53 | It will work with build 10240 and above, ARM - x64 - x86
54 |
55 |
56 | # Supported Games
57 |
58 | Check SupportedGames.txt
59 |
60 |
61 | # Credits
62 |
63 | Developed by Scemino
64 |
65 | Enhanced by Bashar Astifan
66 |
67 |
--------------------------------------------------------------------------------
/SupportedGames.txt:
--------------------------------------------------------------------------------
1 | -The Curse of Monkey Island
2 | -The Dig
3 | -Full Throttle
4 | -Sam & Max Hit the Road
5 | -Day of the Tentacle
6 | -Indiana Jones and the Fate of Atlantis
7 | -Monkey Island 2: LeChuck's revenge
8 | -The Secret of Monkey Island
9 | -The Passport to Adventure (Demo)
10 | -Loom
11 | -Indiana Jones and the Last Crusade
12 | -Zak McKracken and the Alien Mindbenders
13 | -Maniac Mansion
14 | -Beneath a Steel Sky by Revolution Software
15 | -Broken Sword: The Shadow of the Templars by Revolution Software
--------------------------------------------------------------------------------
/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/assets/logo.png
--------------------------------------------------------------------------------
/assets/screen.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/assets/screen.jpg
--------------------------------------------------------------------------------
/src/AUTHORS:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/AUTHORS
--------------------------------------------------------------------------------
/src/Doc/Images/nscumm.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Doc/Images/nscumm.png
--------------------------------------------------------------------------------
/src/Engines/NScumm.MonoGame/Platforms/WindowsGL/bin/Release/plugins/NScumm.Scumm.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Engines/NScumm.MonoGame/Platforms/WindowsGL/bin/Release/plugins/NScumm.Scumm.dll
--------------------------------------------------------------------------------
/src/Engines/NScumm.MonoGame/Platforms/WindowsGL/bin/Release/plugins/NScumm.Scumm.pdb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Engines/NScumm.MonoGame/Platforms/WindowsGL/bin/Release/plugins/NScumm.Scumm.pdb
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/Amiga/IPlayerMod.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IPlayerMod.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm.Audio.Amiga
23 | {
24 | public delegate void ModUpdateProc();
25 |
26 | interface IPlayerMod
27 | {
28 | int MusicVolume { get; set; }
29 |
30 | void SetChannelVol(int id, int vol);
31 |
32 | void StartChannel(int id, byte[] data, int size, int rate, int vol, int loopStart = 0, int loopEnd = 0, int pan = 0);
33 |
34 | void StopChannel(int id);
35 |
36 | void SetChannelFreq(int id, int freq);
37 |
38 | void SetUpdateProc(ModUpdateProc proc, int freq);
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/AppleII/IAppleII_SoundFunction.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IAppleII_SoundFunction.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Scumm.Audio.Players;
23 |
24 | namespace NScumm.Scumm.Audio.AppleII
25 | {
26 | interface IAppleII_SoundFunction
27 | {
28 | void Init(Player_AppleII player, byte[] args);
29 |
30 | bool Update();
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/IMuse/CommandQueue.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IMuse.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Linq;
23 | using NScumm.Core;
24 | using NScumm.Scumm.IO;
25 |
26 | namespace NScumm.Scumm.Audio.IMuse
27 | {
28 | class CommandQueue
29 | {
30 | public int[] array;
31 |
32 | public CommandQueue()
33 | {
34 | array = new int[8];
35 | }
36 |
37 | public void SaveOrLoad(Serializer ser)
38 | {
39 | LoadAndSaveEntry.Create(r => array = r.ReadInt16s(8).Select(i => (int)i).ToArray(), w => w.WriteInt16s(array.Cast().ToArray(), 8), 54).Execute(ser);
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/IMuse/DeferredCommand.cs:
--------------------------------------------------------------------------------
1 | //
2 | // DeferredCommand.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Scumm.Audio.IMuse
24 | {
25 | class DeferredCommand
26 | {
27 | public uint TimeLeft { get; set; }
28 |
29 | public int A { get; set; }
30 |
31 | public int B { get; set; }
32 |
33 | public int C { get; set; }
34 |
35 | public int D { get; set; }
36 |
37 | public int E { get; set; }
38 |
39 | public int F { get; set; }
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/IMuse/IInstrumentInternal.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IInstrumentInternal.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core.Audio;
23 | using NScumm.Scumm.IO;
24 |
25 | namespace NScumm.Scumm.Audio.IMuse
26 | {
27 | interface IInstrumentInternal
28 | {
29 | void Send(MidiChannel mc);
30 |
31 | void CopyTo(Instrument dest);
32 |
33 | void SaveOrLoad(Serializer s);
34 |
35 | bool IsValid { get; }
36 | }
37 | }
38 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/IMuse/ISysEx.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ISysEx.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm.Audio.IMuse
23 | {
24 | interface ISysEx
25 | {
26 | void Do(Player player, byte[] msg, ushort len);
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Audio/IMuse/TimerCallbackInfo.cs:
--------------------------------------------------------------------------------
1 | //
2 | // TimerCallbackInfo.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | using NScumm.Core.Audio;
24 |
25 | namespace NScumm.Scumm.Audio.IMuse
26 | {
27 | class TimerCallbackInfo
28 | {
29 | public IMuseInternal IMuse { get; set; }
30 |
31 | public MidiDriver Driver { get; set; }
32 | }
33 |
34 | }
35 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/BlastObject.cs:
--------------------------------------------------------------------------------
1 | //
2 | // BlastObject.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core.Graphics;
23 |
24 | namespace NScumm.Scumm
25 | {
26 | [System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
27 | class BlastObject
28 | {
29 | public int Number { get; set; }
30 |
31 | public Rect Rect { get; set; }
32 |
33 | public int ScaleX { get; set; }
34 |
35 | public int ScaleY { get; set; }
36 |
37 | public int Image { get; set; }
38 |
39 | public int Mode { get; set; }
40 |
41 | internal string DebuggerDisplay
42 | {
43 | get
44 | {
45 | return string.Format("Id={0}, Rec={1}]", Number, Rect);
46 | }
47 | }
48 | }
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/BlastText.cs:
--------------------------------------------------------------------------------
1 | //
2 | // BlastText.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core.Graphics;
23 |
24 | namespace NScumm.Scumm
25 | {
26 | class BlastText : TextObject
27 | {
28 | public Rect Rect { get; set; }
29 |
30 | public bool Center { get; set; }
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Box.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using System;
19 |
20 | namespace NScumm.Scumm
21 | {
22 | [Flags]
23 | public enum BoxFlags
24 | {
25 | XFlip = 0x08,
26 | YFlip = 0x10,
27 | IgnoreScale = 0x20,
28 | PlayerOnly = 0x20,
29 | Locked = 0x40,
30 | Invisible = 0x80
31 | }
32 |
33 | public class Box
34 | {
35 | public int Ulx, Uly;
36 | public int Urx, Ury;
37 | public int Lrx, Lry;
38 | public int Llx, Lly;
39 | public int Mask;
40 | public BoxFlags Flags;
41 | public int ScaleSlot;
42 | public int Scale;
43 | }
44 | }
45 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/BoxCoords.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 |
19 | using NScumm.Core.Graphics;
20 |
21 | namespace NScumm.Scumm
22 | {
23 | ///
24 | /// Box coordinates.
25 | ///
26 | public class BoxCoords
27 | {
28 | public Point UpperLeft;
29 | public Point UpperRight;
30 | public Point LowerLeft;
31 | public Point LowerRight;
32 |
33 | public bool InBoxQuickReject (Point p, int threshold)
34 | {
35 | int t = p.X - threshold;
36 | if (t > UpperLeft.X && t > UpperRight.X && t > LowerRight.X && t > LowerLeft.X)
37 | return true;
38 |
39 | t = p.X + threshold;
40 | if (t < UpperLeft.X && t < UpperRight.X && t < LowerRight.X && t < LowerLeft.X)
41 | return true;
42 |
43 | t = p.Y - threshold;
44 | if (t > UpperLeft.Y && t > UpperRight.Y && t > LowerRight.Y && t > LowerLeft.Y)
45 | return true;
46 |
47 | t = p.Y + threshold;
48 | if (t < UpperLeft.Y && t < UpperRight.Y && t < LowerRight.Y && t < LowerLeft.Y)
49 | return true;
50 |
51 | return false;
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Camera.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using NScumm.Core.Graphics;
19 |
20 | namespace NScumm.Scumm
21 | {
22 | ///
23 | /// Camera mode.
24 | ///
25 | enum CameraMode
26 | {
27 | Normal = 1,
28 | FollowActor = 2,
29 | Panning = 3
30 | }
31 |
32 | class Camera
33 | {
34 | public Point CurrentPosition;
35 | public Point DestinationPosition;
36 | public Point Accel;
37 | public Point LastPosition;
38 | public int LeftTrigger;
39 | public int RightTrigger;
40 | public byte ActorToFollow;
41 |
42 | public CameraMode Mode { get; set; }
43 |
44 | public bool MovingToActor { get; set; }
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ClickArea.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Scumm
19 | {
20 | public enum ClickArea
21 | {
22 | Verb = 1,
23 | Scene = 2,
24 | Inventory = 3,
25 | Key = 4,
26 | Sentence = 5
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/CostumeData.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Scumm
19 | {
20 | public class CostumeData
21 | {
22 | public byte[] Active;
23 | public ushort AnimCounter;
24 | public byte SoundCounter;
25 | public byte SoundPos;
26 | public ushort Stopped;
27 | public ushort[] Curpos;
28 | public ushort[] Start;
29 | public ushort[] End;
30 | public ushort[] Frame;
31 |
32 | public ushort Current;
33 |
34 | public CostumeData()
35 | {
36 | Active = new byte[16];
37 | Curpos = new ushort[16];
38 | Start = new ushort[16];
39 | End = new ushort[16];
40 | Frame = new ushort[16];
41 | }
42 |
43 | public void Reset()
44 | {
45 | Current = 0;
46 | Stopped = 0;
47 | for (int i = 0; i < 16; i++)
48 | {
49 | Active[i] = 0;
50 | Curpos[i] = Start[i] = End[i] = Frame[i] = 0xFFFF;
51 | }
52 | }
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Cursor.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using NScumm.Core.Graphics;
19 |
20 | namespace NScumm.Scumm
21 | {
22 | public class Cursor
23 | {
24 | public sbyte State { get; set; }
25 | public bool Animate { get; set; }
26 | public int AnimateIndex { get; set; }
27 | public Point Hotspot { get; set; }
28 | public int Width { get; set; }
29 | public int Height { get; set; }
30 |
31 | public Cursor()
32 | {
33 | Animate = true;
34 | }
35 | }
36 | }
37 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/FlashLight.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using NScumm.Core.Graphics;
19 | using NScumm.Scumm.Graphics;
20 |
21 | namespace NScumm.Scumm
22 | {
23 | public struct FlashLight
24 | {
25 | public int X, Y, W, H;
26 | public ushort XStrips, YStrips;
27 | public bool IsDrawn;
28 |
29 | public PixelNavigator? PixelNavigator;
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Graphics/ICostumeRenderer.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Scumm.Graphics
19 | {
20 | interface ICostumeRenderer
21 | {
22 | int DrawTop { get; set; }
23 |
24 | int DrawBottom { get; set; }
25 |
26 | byte ActorID { get; set; }
27 |
28 | byte ShadowMode { get; set; }
29 |
30 | byte[] ShadowTable { get; set; }
31 |
32 | int ActorX { get; set; }
33 |
34 | int ActorY { get; set; }
35 |
36 | byte ZBuffer { get; set; }
37 |
38 | byte ScaleX { get; set; }
39 |
40 | byte ScaleY { get; set; }
41 |
42 | void SetPalette(ushort[] palette);
43 |
44 | void SetFacing(Actor a);
45 |
46 | void SetCostume(int costume, int shadow);
47 |
48 | int DrawCostume(VirtScreen vs, int numStrips, Actor actor, bool drawToBackBuf);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Graphics/ZPlane.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ZPlane.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 |
24 | namespace NScumm.Scumm.Graphics
25 | {
26 | public class ZPlane
27 | {
28 | public byte[] Data
29 | {
30 | get;
31 | private set;
32 | }
33 |
34 | public IList StripOffsets
35 | {
36 | get;
37 | private set;
38 | }
39 |
40 | public ZPlane(byte[] data, IList offsets)
41 | {
42 | Data = data;
43 | StripOffsets = offsets;
44 | }
45 |
46 | public ZPlane Clone()
47 | {
48 | var zplane = (ZPlane)this.MemberwiseClone();
49 | return zplane;
50 | }
51 | }
52 |
53 | }
54 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/AkosHeader.cs:
--------------------------------------------------------------------------------
1 | //
2 | // AkosHeader.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 | using System.Runtime.InteropServices;
22 |
23 | namespace NScumm.Scumm.IO
24 | {
25 | struct AkosHeader
26 | {
27 | public ushort unk_1;
28 | public byte flags;
29 | public byte unk_2;
30 | public ushort num_anims;
31 | public ushort unk_3;
32 | public ushort codec;
33 | }
34 |
35 | [StructLayout(LayoutKind.Explicit)]
36 | struct AkosOffset
37 | {
38 | [FieldOffset(0)]
39 | public uint akcd;
40 | // offset into the akcd data
41 | [FieldOffset(4)]
42 | public ushort akci;
43 | // offset into the akci data
44 | }
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/ICostumeLoader.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Scumm.IO
19 | {
20 | interface ICostumeLoader
21 | {
22 | void LoadCostume(int id);
23 | int IncreaseAnims(Actor actor);
24 | void CostumeDecodeData(Actor actor, int frame, uint usemask);
25 | bool HasManyDirections(int id);
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/ResourceIndex4.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 |
19 | namespace NScumm.Scumm.IO
20 | {
21 | class ResourceIndex4: ResourceIndex3
22 | {
23 | protected override byte GetEncodingByte(GameInfo game)
24 | {
25 | byte encByte = 0;
26 | if (!game.Features.HasFlag(GameFeatures.Old256))
27 | {
28 | encByte = 0;
29 | }
30 | return encByte;
31 | }
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/ResourceManager0.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ResourceManager0.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core;
23 |
24 | namespace NScumm.Scumm.IO
25 | {
26 | class ResourceManager0: ResourceManager
27 | {
28 | public ResourceManager0(GameInfo game)
29 | : base(game)
30 | {
31 | }
32 |
33 | protected override ResourceFile OpenRoom(byte roomIndex)
34 | {
35 | var stream = ScummDiskImage.CreateResource((ResourceIndex0)Index, roomIndex);
36 | var file = new ResourceFile0(stream);
37 | return file;
38 | }
39 |
40 | protected override byte[] ReadCharset(byte id)
41 | {
42 | // Stub, V0 font resources are hardcoded into the engine.
43 | return null;
44 | }
45 | }
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/ResourceManager8.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ResourceManager5.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core;
23 |
24 | namespace NScumm.Scumm.IO
25 | {
26 | class ResourceManager8: ResourceManager7
27 | {
28 | public ResourceManager8(GameInfo game)
29 | : base(game)
30 | {
31 | }
32 |
33 | protected override ResourceFile OpenRoom(byte roomIndex)
34 | {
35 | var diskNum = Index.RoomResources[roomIndex].RoomNum;
36 | var diskName = Game.Pattern == null ? string.Format("{0}.{1:000}", Game.Id, diskNum) : string.Format(Game.Pattern, diskNum);
37 | var game1Path = ScummHelper.NormalizePath(ServiceLocator.FileStorage.Combine(Directory, diskName));
38 |
39 | var file = new ResourceFile8((ResourceIndex8)Index, ServiceLocator.FileStorage.OpenFileRead(game1Path));
40 | return file;
41 | }
42 | }
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/IO/ScummMetaEngine.cs:
--------------------------------------------------------------------------------
1 | using System.IO;
2 | using NScumm.Core;
3 | using NScumm.Core.Audio;
4 | using NScumm.Core.Graphics;
5 | using NScumm.Core.Input;
6 | using NScumm.Core.IO;
7 |
8 | namespace NScumm.Scumm.IO
9 | {
10 | public class ScummMetaEngine : IMetaEngine
11 | {
12 | private readonly GameManager _gm;
13 | bool isCustomDatabaseSet = false;
14 | public ScummMetaEngine() : this(ServiceLocator.FileStorage.OpenContent("Nscumm.xml"))
15 | {
16 | }
17 |
18 | public ScummMetaEngine(Stream stream)
19 | {
20 | _gm = GameManager.Create(stream);
21 | }
22 |
23 | public IEngine Create(GameSettings settings, IGraphicsManager gfxManager, IInputManager inputManager, IAudioOutput output, ISaveFileManager saveFileManager, bool debugMode = false)
24 | {
25 | return ScummEngine.Create(settings, gfxManager, inputManager, output, debugMode);
26 | }
27 |
28 | public GameDetected DetectGame(string path)
29 | {
30 | return new GameDetected(_gm.GetInfo(path), this);
31 | }
32 | }
33 | }
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Languages/Language.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Reflection;
5 | using System.Runtime.Serialization;
6 | using System.Text;
7 | using System.Threading.Tasks;
8 |
9 | namespace NScumm.Scumm
10 | {
11 | [DataContract]
12 | public partial class Language
13 | {
14 | ///
15 | /// Language name ( doesn't affect anything )
16 | ///
17 | [DataMember]
18 | public string FullName { get; }
19 |
20 | ///
21 | /// ISO639 table:
22 | ///
23 | [DataMember]
24 | public string ISO639 { get; }
25 |
26 | ///
27 | /// Creates new Language
28 | ///
29 | /// Language full name (set what do you want)
30 | /// ISO639 value
31 | public Language(string fullName, string iso639)
32 | {
33 | FullName = fullName;
34 | ISO639 = iso639;
35 | }
36 |
37 | protected bool Equals(Language other)
38 | {
39 | return string.Equals(ISO639, other.ISO639, StringComparison.OrdinalIgnoreCase);
40 | }
41 |
42 | public override bool Equals(object obj)
43 | {
44 | if (ReferenceEquals(null, obj)) return false;
45 | if (ReferenceEquals(this, obj)) return true;
46 | if (obj.GetType() != GetType()) return false;
47 |
48 | return Equals((Language) obj);
49 | }
50 |
51 | public override int GetHashCode()
52 | {
53 | return StringComparer.OrdinalIgnoreCase.GetHashCode(ISO639);
54 | }
55 |
56 | public override string ToString()
57 | {
58 | return $"FullName: {FullName}, ISO639: {ISO639}";
59 | }
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Languages/LanguageAttribute.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Runtime.CompilerServices;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | namespace System.Runtime.CompilerServices
8 | {
9 | sealed class CallerMemberNameAttribute : Attribute { }
10 | }
11 |
12 | namespace NScumm.Scumm
13 | {
14 | [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]
15 | internal class LanguageAttribute: Attribute
16 | {
17 | public string Iso639 { get; }
18 | public string FullName { get; }
19 | public LanguageAttribute(string iso, [CallerMemberName] string fullName = "")
20 | {
21 | if (string.IsNullOrWhiteSpace(iso))
22 | throw new ArgumentException(nameof(iso));
23 |
24 | Iso639 = iso;
25 | FullName = fullName;
26 | }
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Languages/LanguageIsNotSupportedException.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace NScumm.Scumm
8 | {
9 | class LanguageIsNotSupportedException: Exception
10 | {
11 | public readonly Language Language;
12 |
13 | public LanguageIsNotSupportedException(Language language)
14 | :base("Language is not supported by GoogleTranslate:")
15 | {
16 | Language = language;
17 | }
18 |
19 | public override string Message => base.Message + " " + Language;
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Languages/LanguageModel.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace NScumm.Scumm
8 | {
9 | public class LanguageModel
10 | {
11 | public string LanguageName;
12 | public LanguageModel(Language language)
13 | {
14 | LanguageName = language.FullName;
15 | }
16 | public LanguageModel(string language)
17 | {
18 | LanguageName = language;
19 | }
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/NestedScript.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using NScumm.Core;
19 | using NScumm.Scumm.IO;
20 |
21 | namespace NScumm.Scumm
22 | {
23 | public class NestedScript
24 | {
25 | public ushort Number;
26 | public WhereIsObject Where;
27 | public byte Slot;
28 |
29 | public void SaveOrLoad(Serializer serializer)
30 | {
31 | var nestedScriptEntries = new[]
32 | {
33 | LoadAndSaveEntry.Create(reader => Number = reader.ReadUInt16(), writer => writer.WriteUInt16(Number), 8),
34 | LoadAndSaveEntry.Create(reader => Where = (WhereIsObject)reader.ReadByte(), writer => writer.WriteByte((byte)Where), 8),
35 | LoadAndSaveEntry.Create(reader => Slot = reader.ReadByte(), writer => writer.WriteByte(Slot), 8),
36 | };
37 | nestedScriptEntries.ForEach(e => e.Execute(serializer));
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/OpCodeAttribute.cs:
--------------------------------------------------------------------------------
1 | //
2 | // OpCodeAttribute.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System;
23 |
24 | namespace NScumm.Scumm
25 | {
26 | [AttributeUsage(AttributeTargets.All, Inherited = false, AllowMultiple = true)]
27 | public sealed class OpCodeAttribute: Attribute
28 | {
29 | public byte[] Ids
30 | {
31 | get;
32 | private set;
33 | }
34 |
35 | public OpCodeAttribute(params byte[] ids)
36 | {
37 | Ids = ids;
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Resources;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("NScumm.Scumm")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("NScumm.Scumm")]
14 | [assembly: AssemblyCopyright("Copyright © 2015")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: NeutralResourcesLanguage("en")]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScriptData.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Scumm
19 | {
20 | public class ScriptData
21 | {
22 | public byte[] Data { get; set; }
23 |
24 | public long Offset { get; set; }
25 |
26 | public ScriptData Clone()
27 | {
28 | return (ScriptData)this.MemberwiseClone();
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScummEngine3_Camera.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScummEngine3_Camera.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU Lesser General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU Lesser General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU Lesser General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core.Graphics;
23 |
24 | namespace NScumm.Scumm
25 | {
26 | partial class ScummEngine3
27 | {
28 | protected override void PanCameraTo()
29 | {
30 | PanCameraToCore(new Point((short)GetVarOrDirectWord(OpCodeParameter.Param1), 0));
31 | }
32 |
33 | protected override void SetCameraAt()
34 | {
35 | short at = (short)GetVarOrDirectWord(OpCodeParameter.Param1);
36 | Camera.Mode = CameraMode.Normal;
37 | Camera.CurrentPosition.X = at;
38 | SetCameraAt(new Point(at, 0));
39 | Camera.MovingToActor = false;
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScummEngine3_Drawing.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScummEngine3_Drawing.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU Lesser General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU Lesser General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU Lesser General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm
23 | {
24 | partial class ScummEngine3
25 | {
26 | void DrawBox()
27 | {
28 | var x = GetVarOrDirectWord(OpCodeParameter.Param1);
29 | var y = GetVarOrDirectWord(OpCodeParameter.Param2);
30 |
31 | _opCode = ReadByte();
32 | var x2 = GetVarOrDirectWord(OpCodeParameter.Param1);
33 | var y2 = GetVarOrDirectWord(OpCodeParameter.Param2);
34 | var color = GetVarOrDirectByte(OpCodeParameter.Param3);
35 |
36 | DrawBoxCore(x, y, x2, y2, color);
37 | }
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScummEngine3_Inventory.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScummEngine3_Inventory.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU Lesser General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU Lesser General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU Lesser General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Scumm
24 | {
25 | partial class ScummEngine3
26 | {
27 | void GetInventoryCount()
28 | {
29 | GetResult();
30 | SetResult(GetInventoryCountCore(GetVarOrDirectByte(OpCodeParameter.Param1)));
31 | }
32 |
33 | void FindInventory()
34 | {
35 | GetResult();
36 | var x = GetVarOrDirectByte(OpCodeParameter.Param1);
37 | var y = GetVarOrDirectByte(OpCodeParameter.Param2);
38 | SetResult(FindInventoryCore(x, y));
39 | }
40 | }
41 | }
42 |
43 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScummEngine3_Light.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScummEngine3_Light.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU Lesser General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU Lesser General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU Lesser General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm
23 | {
24 | partial class ScummEngine3
25 | {
26 | void Lights()
27 | {
28 | var a = GetVarOrDirectByte(OpCodeParameter.Param1);
29 | var b = ReadByte();
30 | var c = ReadByte();
31 |
32 | if (c == 0)
33 | Variables[VariableCurrentLights.Value] = a;
34 | else if (c == 1)
35 | {
36 | _flashlight.XStrips = (ushort)a;
37 | _flashlight.YStrips = b;
38 | }
39 | _fullRedraw = true;
40 | }
41 | }
42 | }
43 |
44 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/ScummEngine6_Inventory.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScummEngine6_Inventory.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm
23 | {
24 | partial class ScummEngine6
25 | {
26 | [OpCode(0x92)]
27 | protected virtual void FindInventory(int owner, int index)
28 | {
29 | Push(FindInventoryCore(owner, index));
30 | }
31 |
32 |
33 | [OpCode(0x93)]
34 | protected virtual void GetInventoryCount(int owner)
35 | {
36 | Push(GetInventoryCountCore(owner));
37 | }
38 | }
39 | }
40 |
41 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/SubtitleText.cs:
--------------------------------------------------------------------------------
1 | //
2 | // SubtitleText.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Scumm
23 | {
24 |
25 | class SubtitleText : TextObject
26 | {
27 | public bool ActorSpeechMsg { get; set; }
28 | }
29 | }
30 |
31 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/TextObject.cs:
--------------------------------------------------------------------------------
1 | //
2 | // TextObject.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Scumm
24 | {
25 | class TextObject
26 | {
27 | public int X { get; set; }
28 |
29 | public int Y { get; set; }
30 |
31 | public byte Color { get; set; }
32 |
33 | public byte Charset { get; set; }
34 |
35 | public byte[] Text { get; private set; }
36 |
37 | public TextObject()
38 | {
39 | Text = new byte[256];
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/TraceSwitches.cs:
--------------------------------------------------------------------------------
1 | namespace NScumm.Scumm
2 | {
3 | static class TraceSwitches
4 | {
5 | public const string OpCodes = "OpCodes";
6 | public const string Music = "Music";
7 | }
8 | }
--------------------------------------------------------------------------------
/src/Engines/NScumm.Scumm/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sky/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Resources;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("NScumm.Sky")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("NScumm.Sky")]
14 | [assembly: AssemblyCopyright("Copyright © 2015")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: NeutralResourcesLanguage("en")]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sky/SkyDefines.tt:
--------------------------------------------------------------------------------
1 | <#@ template debug="false" hostspecific="true" language="C#" #>
2 | <#@ assembly name="System.Core" #>
3 | <#@ import namespace="System.Linq" #>
4 | <#@ import namespace="System.Text" #>
5 | <#@ import namespace="System.Collections.Generic" #>
6 | <#@ import namespace="System.IO" #>
7 | <#@ output extension=".cs" #>
8 | <#
9 | var content=new StringBuilder();
10 | var lines = File.ReadAllLines(this.Host.ResolvePath("skydefs.h"));
11 | var regex = new System.Text.RegularExpressions.Regex(@"define\s+(?\w+)\s+(?[^/]+)");
12 | foreach(var line in lines)
13 | {
14 | var m = regex.Match(line);
15 | if (m.Success)
16 | {
17 | var name = m.Groups["name"].Value;
18 | var value = m.Groups["value"].Value.Trim();
19 | content.AppendFormat("\t\tpublic const int {0} = {1};", name, value).AppendLine();
20 | }
21 | }
22 | #>
23 | namespace NScumm.Sky
24 | {
25 | partial class Logic
26 | {
27 | <#= content.ToString() #>
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sky/sky.cpt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Engines/NScumm.Sky/sky.cpt
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sword1/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Resources;
2 | using System.Reflection;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("NScumm.Sword1")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("NScumm.Sword1")]
14 | [assembly: AssemblyCopyright("Copyright © 2015")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: NeutralResourcesLanguage("en")]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 |
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sword1/SwordSystem.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using NScumm.Core;
20 | using NScumm.Core.Graphics;
21 | using NScumm.Core.Input;
22 |
23 | namespace NScumm.Sword1
24 | {
25 | class SwordSystem : ISystem
26 | {
27 | public IGraphicsManager GraphicsManager { get; }
28 | public IInputManager InputManager { get; }
29 | public ISaveFileManager SaveFileManager { get; }
30 |
31 | public SwordSystem(IGraphicsManager graphicsManager, IInputManager inputManager, ISaveFileManager saveFileManager)
32 | {
33 | GraphicsManager = graphicsManager;
34 | InputManager = inputManager;
35 | SaveFileManager = saveFileManager;
36 | }
37 | }
38 | }
--------------------------------------------------------------------------------
/src/Engines/NScumm.Sword1/swordres.tt:
--------------------------------------------------------------------------------
1 | <#@ template debug="false" hostspecific="true" language="C#" #>
2 | <#@ assembly name="System.Core" #>
3 | <#@ import namespace="System.Linq" #>
4 | <#@ import namespace="System.Text" #>
5 | <#@ import namespace="System.Collections.Generic" #>
6 | <#@ import namespace="System.IO" #>
7 | <#@ output extension=".cs" #>
8 | <#
9 | var content=new StringBuilder();
10 | var lines = File.ReadAllLines(this.Host.ResolvePath("swordres.h"));
11 | var regex = new System.Text.RegularExpressions.Regex(@"^#define\s+(?\w+)\s+(?[^/]+)");
12 | foreach(var line in lines)
13 | {
14 | var m = regex.Match(line);
15 | if (m.Success)
16 | {
17 | var name = m.Groups["name"].Value;
18 | var value = m.Groups["value"].Value.Trim();
19 | content.AppendFormat("\t\tpublic const int {0} = {1};", name, value).AppendLine();
20 | }
21 | }
22 | #>
23 | namespace NScumm.Sword1
24 | {
25 | static partial class SwordRes
26 | {
27 | <#= content.ToString() #>
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/CMSMusicPlugin.cs:
--------------------------------------------------------------------------------
1 | //
2 | // CMSMusicPlugin.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using NScumm.Core.Audio.Midi;
24 |
25 | namespace NScumm.Core.Audio.SoftSynth
26 | {
27 | class CMSMusicPlugin : MusicPluginObject, IMusicPluginObject
28 | {
29 | public override string Id
30 | {
31 | get{ return "cms"; }
32 | }
33 |
34 | public override string Name
35 | {
36 | get { return "Creative Music System Emulator"; }
37 | }
38 |
39 | public override IList GetDevices()
40 | {
41 | return new []{ new MusicDevice(this, string.Empty, MusicType.CMS) };
42 | }
43 |
44 | public override IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle)
45 | {
46 | return new NullMidiDriver();
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/Decoders/Ima_ADPCMStream.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Ima_ADPCMStream.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio.Decoders
23 | {
24 | public class Ima_ADPCMStream
25 | {
26 | ///
27 | /// This table is used by decodeIMA.
28 | ///
29 | public static readonly short[] _imaTable =
30 | {
31 | 7, 8, 9, 10, 11, 12, 13, 14,
32 | 16, 17, 19, 21, 23, 25, 28, 31,
33 | 34, 37, 41, 45, 50, 55, 60, 66,
34 | 73, 80, 88, 97, 107, 118, 130, 143,
35 | 157, 173, 190, 209, 230, 253, 279, 307,
36 | 337, 371, 408, 449, 494, 544, 598, 658,
37 | 724, 796, 876, 963, 1060, 1166, 1282, 1411,
38 | 1552, 1707, 1878, 2066, 2272, 2499, 2749, 3024,
39 | 3327, 3660, 4026, 4428, 4871, 5358, 5894, 6484,
40 | 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899,
41 | 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794,
42 | 32767
43 | };
44 | }
45 | }
46 |
47 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/DeviceHandle.cs:
--------------------------------------------------------------------------------
1 | //
2 | // DeviceHandle.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Core.Audio
24 | {
25 | public struct DeviceHandle
26 | {
27 | readonly int handle;
28 | static readonly DeviceHandle _invalid = new DeviceHandle(0);
29 |
30 | ///
31 | /// Initializes a new instance of the struct.
32 | ///
33 | /// Handle.
34 | ///
35 | /// The value 0 is reserved for an invalid device for now.
36 | /// TODO: Maybe we should use -1 (i.e. 0xFFFFFFFF) as invalid device?
37 | ///
38 | public DeviceHandle(int handle)
39 | : this()
40 | {
41 | this.handle = handle;
42 | }
43 |
44 | public bool IsValid { get { return handle != 0; } }
45 |
46 | public static DeviceHandle Invalid
47 | {
48 | get{ return _invalid; }
49 | }
50 | }
51 |
52 | }
53 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/IAudioOutput.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IAudioOutput.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 | using NScumm.Core.Audio.SampleProviders;
22 | using System;
23 |
24 | namespace NScumm.Core.Audio
25 | {
26 | public interface IAudioOutput: IDisposable
27 | {
28 | void Play();
29 | void Stop();
30 | void Pause();
31 |
32 | void SetSampleProvider(IAudioSampleProvider audioSampleProvider);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/ISoundRepository.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ISoundRepository.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio
23 | {
24 | public interface ISoundRepository
25 | {
26 | byte[] GetSound(int id);
27 | }
28 | }
29 |
30 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/Midi/IMidiDriver.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IMidiDriver.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Core.Audio.Midi
24 | {
25 | public interface IMidiDriver
26 | {
27 | void Send(int data);
28 |
29 | void SysEx(byte[] msg, ushort length);
30 |
31 | void MetaEvent(byte type, byte[] data, ushort length);
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/Midi/NoteTimer.cs:
--------------------------------------------------------------------------------
1 | //
2 | // NoteTimer.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core
23 | {
24 | class NoteTimer
25 | {
26 | ///
27 | /// Gets or sets the MIDI channel on which the note was played.
28 | ///
29 | /// The channel.
30 | public int Channel { get; set; }
31 |
32 | ///
33 | /// Gets or sets the note number for the active note.
34 | ///
35 | /// The note.
36 | public int Note { get; set; }
37 |
38 | ///
39 | /// Gets or sets the time, in microseconds, remaining before the note should be turned off
40 | ///
41 | /// The time left.
42 | public int TimeLeft { get; set; }
43 | }
44 |
45 | }
46 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/MusicManager.cs:
--------------------------------------------------------------------------------
1 | //
2 | // MusicManager.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Linq;
23 | using System.Collections.Generic;
24 | using System;
25 |
26 | namespace NScumm.Core.Audio
27 | {
28 | ///
29 | /// Singleton class which manages all Music plugins.
30 | ///
31 | public static class MusicManager
32 | {
33 | public static IList GetPlugins()
34 | {
35 | var types = (from type in typeof(MusicManager).Assembly.GetTypes()
36 | where !type.IsAbstract && type.GetInterfaces().Contains(typeof(IMusicPluginObject))
37 | select (IMusicPluginObject)Activator.CreateInstance(type)).ToList();
38 |
39 | return types;
40 | }
41 | }
42 |
43 | }
44 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/MusicPluginObject.cs:
--------------------------------------------------------------------------------
1 | //
2 | // MusicPluginObject.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using NScumm.Core.Audio.Midi;
24 |
25 | namespace NScumm.Core.Audio
26 | {
27 | abstract class MusicPluginObject: IMusicPluginObject
28 | {
29 | public abstract IList GetDevices();
30 |
31 | public abstract IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle);
32 |
33 | public abstract string Id
34 | {
35 | get;
36 | }
37 |
38 | public abstract string Name
39 | {
40 | get;
41 | }
42 |
43 | public virtual bool CheckDevice(DeviceHandle handle)
44 | {
45 | return true;
46 | }
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/OPL/IOpl.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | namespace NScumm.Core.Audio.OPL
19 | {
20 | public enum OplType
21 | {
22 | Opl2,
23 | DualOpl2,
24 | Opl3
25 | }
26 |
27 | public interface IOpl
28 | {
29 | void Init(int rate);
30 |
31 | void WriteReg(int r, int v);
32 |
33 | void ReadBuffer(short[] buffer, int pos, int length);
34 |
35 | bool IsStereo { get; }
36 | }
37 | }
38 |
39 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/PCJuniorMusicPlugin.cs:
--------------------------------------------------------------------------------
1 | //
2 | // PCJuniorMusicPlugin.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using NScumm.Core.Audio.Midi;
24 |
25 | namespace NScumm.Core.Audio.SoftSynth
26 | {
27 |
28 | class PCJuniorMusicPlugin : MusicPluginObject, IMusicPluginObject
29 | {
30 | public override string Id
31 | {
32 | get{ return "pcjr"; }
33 | }
34 |
35 | public override string Name
36 | {
37 | get { return "IBM PCjr Emulator"; }
38 | }
39 |
40 | public override IList GetDevices()
41 | {
42 | return new []{ new MusicDevice(this, string.Empty, MusicType.PCjr) };
43 | }
44 |
45 | public override IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle)
46 | {
47 | return new PCSpeakerDriver(mixer);
48 | }
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/PCSpeakerMusicPlugin.cs:
--------------------------------------------------------------------------------
1 | //
2 | // PCSpeakerMusicPlugin.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using NScumm.Core.Audio.Midi;
24 |
25 | namespace NScumm.Core.Audio.SoftSynth
26 | {
27 | class PCSpeakerMusicPlugin : MusicPluginObject, IMusicPluginObject
28 | {
29 | public override string Id
30 | {
31 | get{ return "pcspk"; }
32 | }
33 |
34 | public override string Name
35 | {
36 | get { return "PC Speaker Emulator"; }
37 | }
38 |
39 | public override IList GetDevices()
40 | {
41 | return new []{ new MusicDevice(this, string.Empty, MusicType.PCSpeaker) };
42 | }
43 |
44 | public override IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle)
45 | {
46 | return new PCSpeakerDriver(mixer);
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/RateConverters/IRateConverter.cs:
--------------------------------------------------------------------------------
1 | //
2 | // rate.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio
23 | {
24 | public interface IRateConverter
25 | {
26 | int Flow(IAudioStream input, short[] obuf, int count, int volLeft, int volRight);
27 |
28 | int Drain(short[] obuf, int vol);
29 | }
30 | }
31 |
32 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SampleProviders/AudioSampleProvider16.cs:
--------------------------------------------------------------------------------
1 | //
2 | // AudioSampleProvider16.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 |
23 | namespace NScumm.Core.Audio.SampleProviders
24 | {
25 | public abstract class AudioSampleProvider16 : IAudioSampleProvider
26 | {
27 | public abstract AudioFormat AudioFormat
28 | {
29 | get;
30 | }
31 |
32 | public abstract int Read(short[] samples, int count);
33 |
34 | public int Read(byte[] samples, int count)
35 | {
36 | var buffer = new short[count / 2];
37 | var numRead = Read(buffer, count / 2);
38 | var offs = 0;
39 | for (int i = 0; i < numRead; i++)
40 | {
41 | samples[offs++] = (byte)(buffer[i] & 0xFF);
42 | samples[offs++] = (byte)((buffer[i] >> 8) & 0xFF);
43 | }
44 | return numRead * 2;
45 | }
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SampleProviders/IAudioSampleProvider.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IAudioSampleProvider.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio.SampleProviders
23 | {
24 | public interface IAudioSampleProvider
25 | {
26 | AudioFormat AudioFormat { get; }
27 |
28 | int Read(byte[] samples, int count);
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SoftSynth/Adlib.cs:
--------------------------------------------------------------------------------
1 | //
2 | // adlib.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using NScumm.Core.Audio.Midi;
24 |
25 | namespace NScumm.Core.Audio.SoftSynth
26 | {
27 | class AdlibEmuMusicPlugin : MusicPluginObject, IMusicPluginObject
28 | {
29 | public override string Id
30 | {
31 | get{ return "adlib"; }
32 | }
33 |
34 | public override string Name
35 | {
36 | get { return "Adlib Emulator"; }
37 | }
38 |
39 | public override IList GetDevices()
40 | {
41 | return new []{ new MusicDevice(this, string.Empty, MusicType.AdLib) };
42 | }
43 |
44 | public override IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle)
45 | {
46 | // TODO:
47 | return new AdlibMidiDriver(mixer);
48 | }
49 | }
50 |
51 | }
52 |
53 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SoftSynth/FMTownsPc98/ITownsAudioInterfacePluginDriver.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ITownsAudioInterfacePluginDriver.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio.SoftSynth
23 | {
24 | public interface ITownsAudioInterfacePluginDriver
25 | {
26 | void TimerCallback(int timerId);
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SoftSynth/FMTownsPc98/TownsEmuMusicPlugin.cs:
--------------------------------------------------------------------------------
1 | //
2 | // TownsEmuMusicPlugin.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio.SoftSynth
23 | {
24 | class TownsEmuMusicPlugin: IMusicPluginObject
25 | {
26 | public System.Collections.Generic.IList GetDevices()
27 | {
28 | return new []{ new MusicDevice(this, "", MusicType.FMTowns) };
29 | }
30 |
31 | public bool CheckDevice(DeviceHandle handle)
32 | {
33 | return true;
34 | }
35 |
36 | public NScumm.Core.Audio.Midi.IMidiDriver CreateInstance(IMixer mixer, DeviceHandle handle)
37 | {
38 | return new MidiDriver_TOWNS(mixer);
39 | }
40 |
41 | public string Name
42 | {
43 | get
44 | {
45 | return "FM-Towns Audio";
46 | }
47 | }
48 |
49 | public string Id
50 | {
51 | get
52 | {
53 | return "towns";
54 | }
55 | }
56 | }
57 |
58 | }
59 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SoftSynth/ISid.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ISid.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | /*
23 | * This file is based on reSID, a MOS6581 SID emulator engine.
24 | * Copyright (C) 2004 Dag Lem
25 | */
26 |
27 | namespace NScumm.Core.Audio.SoftSynth
28 | {
29 | public interface ISid
30 | {
31 | bool EnableFilter { get; set; }
32 |
33 | bool SetSamplingParameters(double clock_freq, double sample_freq, double pass_freq = -1, double filter_scale = 0.97);
34 |
35 | int UpdateClock(ref int delta_t, short[] buf, int offset, int n, int interleave = 1);
36 |
37 | void Reset();
38 |
39 | // write registers.
40 | void Write(int offset, int value);
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Audio/SoundHandle.cs:
--------------------------------------------------------------------------------
1 | //
2 | // SoundHandle.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core.Audio
23 | {
24 | public struct SoundHandle
25 | {
26 | public int Value;
27 | }
28 | }
29 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Graphics/ThumbnailHeader.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core.Graphics
20 | {
21 | public class ThumbnailHeader
22 | {
23 | public uint Type;
24 | public uint Size;
25 | public byte Version;
26 | public ushort Width, Height;
27 | public byte Bpp;
28 | }
29 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IAudioManager.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IAudioManager.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.IO;
23 | using NScumm.Core.Audio;
24 |
25 | namespace NScumm.Core
26 | {
27 | public interface IAudioManager
28 | {
29 | IRewindableAudioStream MakeStream(string filename);
30 | IAudioStream MakeFlacStream(Stream stream);
31 | IAudioStream MakeVorbisStream(Stream stream);
32 | IAudioStream MakeMp3Stream(Stream stream);
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/NScumm.Core/IEnableTrace.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IEnableTrace.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Core
23 | {
24 | public interface IEnableTrace
25 | {
26 | }
27 |
28 | public interface ITrace
29 | {
30 | void Write(string traceName, string format, params object[] args);
31 | }
32 |
33 | class NullTrace: ITrace
34 | {
35 | public void Write(string traceName, string format, params object[] args)
36 | {
37 | }
38 | }
39 |
40 | public static class EnableTraceExtension
41 | {
42 | public static ITrace Trace(this IEnableTrace trace)
43 | {
44 | if (ServiceLocator.TraceFatory != null)
45 | return ServiceLocator.TraceFatory.CreateTrace(trace) ?? new NullTrace();
46 | return new NullTrace();
47 | }
48 | }
49 | }
50 |
51 |
--------------------------------------------------------------------------------
/src/NScumm.Core/IEngine.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using System;
20 |
21 | namespace NScumm.Core
22 | {
23 | public interface IEngine
24 | {
25 | event EventHandler ShowMenuDialogRequested;
26 | bool HasToQuit { get; set; }
27 | bool IsPaused { get; set; }
28 |
29 | void Run();
30 |
31 | // TODO: remove this
32 | void Load(string filename);
33 | void Save(string filename);
34 | }
35 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/GameDetected.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core.IO
20 | {
21 | public class GameDetected
22 | {
23 | public GameDetected(IGameDescriptor game, IMetaEngine engine)
24 | {
25 | Game = game;
26 | Engine = engine;
27 | }
28 |
29 | public IMetaEngine Engine { get; private set; }
30 | public IGameDescriptor Game { get; private set; }
31 | }
32 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/GameDetector.cs:
--------------------------------------------------------------------------------
1 | //
2 | // GameDetector.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 | using System.Linq;
24 |
25 | namespace NScumm.Core.IO
26 | {
27 | public class GameDetector
28 | {
29 | private List _engines;
30 |
31 | public void Add(IMetaEngine engine)
32 | {
33 | if (_engines == null) _engines = new List();
34 | _engines.Add(engine);
35 | }
36 |
37 | public GameDetected DetectGame(string path)
38 | {
39 | return _engines.Select(e => e.DetectGame(path)).FirstOrDefault(o => o != null && o.Game != null);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/GameSettings.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core.IO
20 | {
21 | public class GameSettings
22 | {
23 | public IGameDescriptor Game { get; private set; }
24 |
25 | public IMetaEngine MetaEngine { get; private set; }
26 |
27 | public string AudioDevice { get; set; }
28 |
29 | public bool CopyProtection { get; set; }
30 |
31 | public int BootParam { get; set; }
32 |
33 | public GameSettings(IGameDescriptor game, IMetaEngine engine)
34 | {
35 | Game = game;
36 | AudioDevice = "adlib";
37 | MetaEngine = engine;
38 | }
39 | }
40 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/IGameDescriptor.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using System.Globalization;
20 | using NScumm.Core.Graphics;
21 |
22 | namespace NScumm.Core.IO
23 | {
24 | public interface IGameDescriptor
25 | {
26 | string Id { get; }
27 | string Description { get; }
28 | CultureInfo Culture { get; }
29 | Platform Platform { get; }
30 | int Width { get; }
31 | int Height { get; }
32 |
33 | int Version { get; set; }
34 |
35 | PixelFormat PixelFormat { get; }
36 | string Path { get; }
37 | }
38 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/IMetaEngine.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using NScumm.Core.Audio;
20 | using NScumm.Core.Graphics;
21 | using NScumm.Core.Input;
22 |
23 | namespace NScumm.Core.IO
24 | {
25 | public interface IMetaEngine
26 | {
27 | GameDetected DetectGame(string path);
28 |
29 | IEngine Create(GameSettings settings, IGraphicsManager gfxManager, IInputManager inputManager, IAudioOutput output, ISaveFileManager saveFileManager, bool debugMode = false);
30 | }
31 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/IO/Platform.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core.IO
20 | {
21 | public enum Platform
22 | {
23 | DOS,
24 | Amiga,
25 | AtariST,
26 | Macintosh,
27 | FMTowns,
28 | Windows,
29 | NES,
30 | C64,
31 | CoCo3,
32 | Linux,
33 | Acorn,
34 | SegaCD,
35 | _3DO,
36 | PCEngine,
37 | Apple2GS,
38 | PC98,
39 | Wii,
40 | PSX,
41 | CDi,
42 | IOS,
43 | OS2,
44 | BeOS,
45 |
46 | Unknown = -1
47 | }
48 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/ISaveFileManager.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using System;
20 | using System.IO;
21 | using System.Threading.Tasks;
22 |
23 | namespace NScumm.Core
24 | {
25 | public interface ISaveFileManager
26 | {
27 | Task OpenForLoading(string fileName);
28 | Task OpenForSaving(string fileName, bool compress = true);
29 | Task ListSavefiles(string pattern);
30 | void setID(string id);
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/NScumm.Core/ISystem.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using NScumm.Core.Graphics;
20 | using NScumm.Core.Input;
21 |
22 | namespace NScumm.Core
23 | {
24 | public interface ISystem
25 | {
26 | IGraphicsManager GraphicsManager { get; }
27 | IInputManager InputManager { get; }
28 | ISaveFileManager SaveFileManager { get; }
29 | }
30 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/ITraceFactory.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core
20 | {
21 | public interface ITraceFactory
22 | {
23 | ITrace CreateTrace(IEnableTrace trace);
24 | }
25 | }
--------------------------------------------------------------------------------
/src/NScumm.Core/Input/IInputManager.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core.Input
20 | {
21 | public interface IInputManager
22 | {
23 | Graphics.Point GetMousePosition();
24 |
25 | ScummInputState GetState();
26 |
27 | void ResetKeys();
28 |
29 | void ShowVirtualKeyboard();
30 |
31 | void HideVirtualKeyboard();
32 | }
33 | }
34 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Input/ScummMouseButtonState.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using System;
19 |
20 | namespace NScumm.Core.Input
21 | {
22 | [Flags]
23 | public enum ScummMouseButtonState
24 | {
25 | LeftClick = 0x8000,
26 | RightClick = 0x4000,
27 | MouseMask = (LeftClick | RightClick),
28 | MaxKey = 0x0200
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | /*
2 | * This file is part of NScumm.
3 | *
4 | * NScumm is free software: you can redistribute it and/or modify
5 | * it under the terms of the GNU General Public License as published by
6 | * the Free Software Foundation, either version 3 of the License, or
7 | * (at your option) any later version.
8 | *
9 | * NScumm is distributed in the hope that it will be useful,
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 | * GNU General Public License for more details.
13 | *
14 | * You should have received a copy of the GNU General Public License
15 | * along with NScumm. If not, see .
16 | */
17 |
18 | using System.Reflection;
19 | using System.Runtime.CompilerServices;
20 |
21 | // General Information about an assembly is controlled through the following
22 | // set of attributes. Change these attribute values to modify the information
23 | // associated with an assembly.
24 | [assembly: AssemblyTitle("NScumm.Core")]
25 | [assembly: AssemblyDescription("")]
26 | [assembly: AssemblyConfiguration("")]
27 | [assembly: AssemblyCompany("")]
28 | [assembly: AssemblyProduct("NScumm.Core")]
29 | [assembly: AssemblyCopyright("Copyright © 2012-2015")]
30 | [assembly: AssemblyTrademark("")]
31 | [assembly: AssemblyCulture("")]
32 |
33 |
34 | // Version information for an assembly consists of the following four values:
35 | //
36 | // Major Version
37 | // Minor Version
38 | // Build Number
39 | // Revision
40 | //
41 | // You can specify all the values or you can default the Build and Revision Numbers
42 | // by using the '*' as shown below:
43 | // [assembly: AssemblyVersion("1.0.*")]
44 | [assembly: AssemblyVersion("1.0.*")]
45 | [assembly: AssemblyFileVersion("1.0.0.0")]
46 | [assembly: InternalsVisibleTo("NScumm.Core.Tests")]
--------------------------------------------------------------------------------
/src/NScumm.Core/ServiceLocator.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | namespace NScumm.Core
20 | {
21 | public static class ServiceLocator
22 | {
23 | public static IFileStorage FileStorage { get; set; }
24 |
25 | public static IPlatform Platform { get; set; }
26 |
27 | public static ITraceFactory TraceFatory { get; set; }
28 |
29 | public static ISaveFileManager SaveFileManager { get; set; }
30 |
31 | public static IAudioManager AudioManager { get; set; }
32 | }
33 | }
34 |
35 |
--------------------------------------------------------------------------------
/src/NScumm.Core/Video/ITrack.cs:
--------------------------------------------------------------------------------
1 | // Author:
2 | // scemino
3 | //
4 | // Copyright (c) 2015
5 | //
6 | // This program is free software: you can redistribute it and/or modify
7 | // it under the terms of the GNU General Public License as published by
8 | // the Free Software Foundation, either version 3 of the License, or
9 | // (at your option) any later version.
10 | //
11 | // This program is distributed in the hope that it will be useful,
12 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 | // GNU General Public License for more details.
15 | //
16 | // You should have received a copy of the GNU General Public License
17 | // along with this program. If not, see .
18 |
19 | using NScumm.Core.Audio;
20 |
21 | namespace NScumm.Core.Video
22 | {
23 | public interface ITrack
24 | {
25 | TrackType TrackType { get; }
26 | bool EndOfTrack { get; }
27 | bool IsRewindable { get; }
28 | bool Rewind();
29 | bool IsSeekable { get; }
30 | bool Seek(Timestamp time);
31 | void Pause(bool shouldPause);
32 | bool IsPaused { get; }
33 | Timestamp Duration { get; }
34 | }
35 | }
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Content/Fonts/MenuFont.xnb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Content/Fonts/MenuFont.xnb
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Content/Fonts/SpriteFont.xnb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Content/Fonts/SpriteFont.xnb
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Content/Textures/blank.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Content/Textures/blank.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Content/Textures/blank.xnb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Content/Textures/blank.xnb
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/Linux/OpenTK.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/Linux/Tao.Sdl.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/Linux/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/App.xaml:
--------------------------------------------------------------------------------
1 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/ApplicationInsights.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LargeTile.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LockScreenLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/LockScreenLogo.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SmallTile.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/SplashScreen.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square150x150Logo.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-16.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-256.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-32.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.altform-unplated_targetsize-48.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-16.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-24.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-24_altform-unplated.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-24_altform-unplated.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-256.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-32.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Square44x44Logo.targetsize-48.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/StoreLogo.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-100.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-125.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-125.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-150.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-150.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-200.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-200.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-400.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Assets/Wide310x150Logo.scale-400.png
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Backup/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0",
4 | "MonoGame.Framework.WindowsUAP": "3.4.0.459",
5 | "Rx-Main": "2.2.5",
6 | "Rx-WinRT": "2.2.5",
7 | "Rx-WPF": "2.2.5",
8 | "SharpDX": "3.0.0-beta01",
9 | "SharpDX.Direct2D1": "3.0.0-beta01",
10 | "SharpDX.Direct3D11": "3.0.0-beta01",
11 | "SharpDX.MediaFoundation": "3.0.0-beta01",
12 | "SharpDX.XAudio2": "3.0.0-beta01",
13 | "SharpDX.XInput": "3.0.0-beta01"
14 | },
15 | "frameworks": {
16 | "uap10.0": {}
17 | },
18 | "runtimes": {
19 | "win10-arm": {},
20 | "win10-arm-aot": {},
21 | "win10-x86": {},
22 | "win10-x86-aot": {},
23 | "win10-x64": {},
24 | "win10-x64-aot": {}
25 | }
26 | }
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/BundleArtifacts/arm.txt:
--------------------------------------------------------------------------------
1 | MainPackage=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_ARM_Debug .NET Native.appx
2 | ResourcePack=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_language-fr.appx
3 | ResourcePack=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_scale-100.appx
4 | ResourcePack=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_scale-125.appx
5 | ResourcePack=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_scale-150.appx
6 | ResourcePack=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\ARM\Debug .NET Native\NScumm.MonoGame_1.1.43.0_scale-400.appx
7 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/BundleArtifacts/x64.txt:
--------------------------------------------------------------------------------
1 | MainPackage=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\x64\Debug .NET Native\NScumm.MonoGame_1.1.43.0_x64_Debug .NET Native.appx
2 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/BundleArtifacts/x86.txt:
--------------------------------------------------------------------------------
1 | MainPackage=B:\NScumm\NScumm.MonoGame\Platforms\UWP\NScumm.MonoGame\bin\x86\Debug .NET Native\NScumm.MonoGame_1.1.43.0_x86_Debug .NET Native.appx
2 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Content/NScumm.mgcb:
--------------------------------------------------------------------------------
1 |
2 | #----------------------------- Global Properties ----------------------------#
3 |
4 | /outputDir:bin
5 | /intermediateDir:obj
6 | /platform:Windows
7 | /config:
8 | /profile:Reach
9 | /compress:False
10 |
11 | #-------------------------------- References --------------------------------#
12 |
13 |
14 | #---------------------------------- Content ---------------------------------#
15 |
16 | #begin Textures/blank.png
17 | /importer:TextureImporter
18 | /processor:TextureProcessor
19 | /processorParam:ColorKeyColor=255,0,255,255
20 | /processorParam:ColorKeyEnabled=True
21 | /processorParam:GenerateMipmaps=False
22 | /processorParam:PremultiplyAlpha=True
23 | /processorParam:ResizeToPowerOfTwo=False
24 | /processorParam:TextureFormat=Color
25 | /build:Textures/blank.png
26 |
27 | #begin Fonts/MenuFont.xnb
28 | /importer:
29 | /processor:
30 | /build:Fonts/MenuFont.xnb
31 |
32 | #begin Fonts/SpriteFont.xnb
33 | /importer:
34 | /processor:
35 | /build:Fonts/SpriteFont.xnb
36 |
37 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Converters/GameCountToVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Windows.UI.Xaml;
3 | using Windows.UI.Xaml.Data;
4 |
5 | namespace NScumm.MonoGame.Converters
6 | {
7 | class ShowNoGameMessageToVisibilityConverter : IValueConverter
8 | {
9 | public object Convert(object value, Type targetType, object parameter, string language)
10 | {
11 | var showNoGameMessage = (bool)value;
12 | return showNoGameMessage ? Visibility.Visible : Visibility.Collapsed;
13 | }
14 |
15 | public object ConvertBack(object value, Type targetType, object parameter, string language)
16 | {
17 | throw new NotImplementedException();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Converters/IsScanningToVisibilityConverter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using Windows.UI.Xaml;
3 | using Windows.UI.Xaml.Data;
4 |
5 | namespace NScumm.MonoGame.Converters
6 | {
7 | class IsScanningToVisibilityConverter : IValueConverter
8 | {
9 | public object Convert(object value, Type targetType, object parameter, string language)
10 | {
11 | var isScanning = (bool)value;
12 | return isScanning ? Visibility.Visible : Visibility.Collapsed;
13 | }
14 |
15 | public object ConvertBack(object value, Type targetType, object parameter, string language)
16 | {
17 | throw new NotImplementedException();
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/NScumm.MonoGame.csproj.user:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | SideloadOnly
5 | False
6 | x86|x64|arm
7 | False
8 | C:\Users\User\Desktop\Logo.scale-200.png
9 | C:\Users\User\Desktop\Logo.scale-200.png
10 | C:\Users\User\Desktop\Logo.scale-200.png
11 | C:\Users\User\Desktop\Logo.scale-200.png
12 | C:\Users\User\Desktop\Logo.scale-200.png
13 | C:\Users\User\Desktop\Logo.scale-200.png
14 | C:\Users\User\Desktop\Logo.scale-200.png
15 | C:\Users\User\Desktop\Logo.scale-200.png
16 |
17 |
18 | 30f105c9-681e-420b-a277-7c086ead8a4e
19 | true
20 |
21 |
22 | 30f105c9-681e-420b-a277-7c086ead8a4e
23 | true
24 |
25 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/NScumm.MonoGame.rd.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("NSCUMM")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("NSCUMM")]
12 | [assembly: AssemblyCopyright("Copyright © 2021")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Version information for an assembly consists of the following four values:
17 | //
18 | // Major Version
19 | // Minor Version
20 | // Build Number
21 | // Revision
22 | //
23 | // You can specify all the values or you can default the Build and Revision Numbers
24 | // by using the '*' as shown below:
25 | // [assembly: AssemblyVersion("1.0.*")]
26 | [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyFileVersion("1.0.0.0")]
28 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Properties/Default.rd.xml:
--------------------------------------------------------------------------------
1 |
17 |
18 |
19 |
20 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/Services/MenuService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using NScumm.Core;
3 | using Windows.UI.Core;
4 |
5 | namespace NScumm.MonoGame.Services
6 | {
7 | class MenuService : IMenuService
8 | {
9 | private readonly CoreDispatcher _dispatcher;
10 |
11 | public ScummGame Game { get; set; }
12 |
13 | private IEngine Engine
14 | {
15 | get
16 | {
17 | var engine = Game.Services.GetService();
18 | return engine;
19 | }
20 | }
21 |
22 | public MenuService(CoreDispatcher dispatcher)
23 | {
24 | _dispatcher = dispatcher;
25 | }
26 |
27 | public async void ShowMenu()
28 | {
29 | await _dispatcher.RunAsync(CoreDispatcherPriority.Normal, async () =>
30 | {
31 | if (Engine.IsPaused)
32 | {
33 | Game.IsMouseVisible = true;
34 | var menu = new Pages.MainMenu();
35 | menu.Game = Game;
36 | var result = await menu.ShowAsync();
37 | Game.IsMouseVisible = false;
38 | Engine.IsPaused = false;
39 | }
40 | });
41 | }
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/TraceFactory.cs:
--------------------------------------------------------------------------------
1 | using NScumm.Core;
2 | using System;
3 | using System.Collections.Generic;
4 | using System.Diagnostics;
5 |
6 | namespace NScumm.MonoGame
7 | {
8 | class Trace : ITrace
9 | {
10 | readonly IEnableTrace _source;
11 | readonly HashSet _switches;
12 |
13 | public Trace(IEnableTrace trace, IEnumerable switches)
14 | {
15 | _source = trace;
16 | _switches = new HashSet(switches, StringComparer.OrdinalIgnoreCase);
17 | }
18 |
19 | public void Write(string traceName, string format, params object[] args)
20 | {
21 | if (_switches.Contains(traceName))
22 | {
23 | Debug.WriteLine("{0,-16} {1}", _source.GetType().Name, string.Format(format, args));
24 | }
25 | }
26 | }
27 |
28 | public class TraceFactory : ITraceFactory
29 | {
30 | readonly IEnumerable _switches;
31 |
32 | public TraceFactory(params string[] switches)
33 | {
34 | _switches = switches;
35 | }
36 |
37 | public ITrace CreateTrace(IEnableTrace trace)
38 | {
39 | return new Trace(trace, _switches);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/ViewModels/DelegateCommand.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Windows.Input;
3 |
4 | namespace NScumm.MonoGame.ViewModels
5 | {
6 | public class DelegateCommand : ICommand
7 | {
8 | private Action _execute;
9 | private Func _canExecute;
10 |
11 | public event EventHandler CanExecuteChanged;
12 |
13 | public DelegateCommand(Action action, Func canExecute = null)
14 | {
15 | _execute = action;
16 | _canExecute = canExecute ?? new Func(() => true);
17 | }
18 |
19 | public bool CanExecute(object parameter)
20 | {
21 | return _canExecute();
22 | }
23 |
24 | public void Execute(object parameter)
25 | {
26 | _execute();
27 | }
28 |
29 | public void RaiseCanExecuteChanged()
30 | {
31 | var eh = CanExecuteChanged;
32 | if (eh != null)
33 | {
34 | eh(this, EventArgs.Empty);
35 | }
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/ViewModels/GameViewModel.cs:
--------------------------------------------------------------------------------
1 | using NScumm.Core.IO;
2 |
3 | namespace NScumm.MonoGame.ViewModels
4 | {
5 | public class GameViewModel
6 | {
7 | public string Description { get; private set; }
8 | public string Platform { get; private set; }
9 | public string Culture { get; private set; }
10 | public GameDetected Game { get; private set; }
11 |
12 | public GameViewModel(GameDetected info)
13 | {
14 | Game = info;
15 | Description = info.Game.Description;
16 | Platform = info.Game.Platform.ToString();
17 | Culture = info.Game.Culture.DisplayName;
18 | }
19 | }
20 | }
21 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/UWP/NScumm.MonoGame/ViewModels/ViewModel.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 | using System.ComponentModel;
3 | using System.Runtime.CompilerServices;
4 |
5 | namespace NScumm.MonoGame.ViewModels
6 | {
7 | internal abstract class ViewModel : INotifyPropertyChanged
8 | {
9 | public event PropertyChangedEventHandler PropertyChanged;
10 |
11 | protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
12 | {
13 | var eh = PropertyChanged;
14 | eh?.Invoke(this, new PropertyChangedEventArgs(propertyName));
15 | }
16 |
17 | protected virtual void RaiseAndSetIfChanged(ref T field, T value, [CallerMemberName] string propertyName = null)
18 | {
19 | if (!EqualityComparer.Default.Equals(field, value))
20 | {
21 | field = value;
22 | OnPropertyChanged(propertyName);
23 | }
24 | }
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/WindowsGL/App.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/NScumm.MonoGame/Platforms/WindowsGL/App.ico
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/WindowsGL/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.InteropServices;
3 |
4 | // General Information about an assembly is controlled through the following
5 | // set of attributes. Change these attribute values to modify the information
6 | // associated with an assembly.
7 | [assembly: AssemblyTitle("nSCUMM")]
8 | [assembly: AssemblyDescription("")]
9 | [assembly: AssemblyConfiguration("")]
10 | [assembly: AssemblyCompany("")]
11 | [assembly: AssemblyProduct("nSCUMM")]
12 | [assembly: AssemblyCopyright("Copyright © 2015")]
13 | [assembly: AssemblyTrademark("")]
14 | [assembly: AssemblyCulture("")]
15 |
16 | // Setting ComVisible to false makes the types in this assembly not visible
17 | // to COM components. If you need to access a type in this assembly from
18 | // COM, set the ComVisible attribute to true on that type.
19 | [assembly: ComVisible(false)]
20 |
21 | // The following GUID is for the ID of the typelib if this project is exposed to COM
22 | [assembly: Guid("92af6aed-78ce-45a3-9fce-ec184e3dc93d")]
23 |
24 | // Version information for an assembly consists of the following four values:
25 | //
26 | // Major Version
27 | // Minor Version
28 | // Build Number
29 | // Revision
30 | //
31 | [assembly: AssemblyVersion("1.0.0.0")]
32 | [assembly: AssemblyFileVersion("1.0.0.0")]
33 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/WindowsGL/Services/MenuService.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Author:
3 | // scemino
4 | //
5 | // Copyright (c) 2015
6 | //
7 | // This program is free software: you can redistribute it and/or modify
8 | // it under the terms of the GNU General Public License as published by
9 | // the Free Software Foundation, either version 3 of the License, or
10 | // (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 |
20 | using System;
21 | using System.Linq;
22 |
23 | namespace NScumm.MonoGame.Services
24 | {
25 | class MenuService : IMenuService
26 | {
27 | private ScummGame _game;
28 |
29 | public MenuService(ScummGame game)
30 | {
31 | _game = game;
32 | }
33 |
34 | public void ShowMenu()
35 | {
36 | var scummScreen = _game.ScreenManager.GetScreens().OfType().FirstOrDefault();
37 | _game.ScreenManager.AddScreen(new MainMenuScreen(scummScreen));
38 | }
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/WindowsGL/Tao.Sdl.dll.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Platforms/WindowsGL/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/src/NScumm.MonoGame/Services/IMenuService.cs:
--------------------------------------------------------------------------------
1 | //
2 | // Author:
3 | // scemino
4 | //
5 | // Copyright (c) 2015
6 | //
7 | // This program is free software: you can redistribute it and/or modify
8 | // it under the terms of the GNU General Public License as published by
9 | // the Free Software Foundation, either version 3 of the License, or
10 | // (at your option) any later version.
11 | //
12 | // This program is distributed in the hope that it will be useful,
13 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 | // GNU General Public License for more details.
16 | //
17 | // You should have received a copy of the GNU General Public License
18 | // along with this program. If not, see .
19 |
20 | namespace NScumm.MonoGame.Services
21 | {
22 | public interface IMenuService
23 | {
24 | void ShowMenu();
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/NScumm.Unsafe/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 |
6 | // General Information about an assembly is controlled through the following
7 | // set of attributes. Change these attribute values to modify the information
8 | // associated with an assembly.
9 | [assembly: AssemblyTitle("RetriX.UWP.Unsafe")]
10 | [assembly: AssemblyDescription("")]
11 | [assembly: AssemblyConfiguration("")]
12 | [assembly: AssemblyCompany("")]
13 | [assembly: AssemblyProduct("RetriX.UWP.Unsafe")]
14 | [assembly: AssemblyCopyright("Copyright © 2018")]
15 | [assembly: AssemblyTrademark("")]
16 | [assembly: AssemblyCulture("")]
17 | [assembly: NeutralResourcesLanguage("en-US")]
18 |
19 | // Version information for an assembly consists of the following four values:
20 | //
21 | // Major Version
22 | // Minor Version
23 | // Build Number
24 | // Revision
25 | //
26 | // You can specify all the values or you can default the Build and Revision Numbers
27 | // by using the '*' as shown below:
28 | // [assembly: AssemblyVersion("1.0.*")]
29 | [assembly: AssemblyVersion("1.0.0.0")]
30 | [assembly: AssemblyFileVersion("1.0.0.0")]
31 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/src/NScumm.Unsafe/Properties/NScumm.Unsafe.rd.xml:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/NScumm.Unsafe/Services/GCService.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | namespace NScumm.GCServices
3 | {
4 | public class GCService
5 | {
6 | public const uint MaxSamplesQueueSize = 44100 * 4;
7 | public const uint GCReserveSize = MaxSamplesQueueSize;
8 | public bool EnableGCPrevent = true;
9 |
10 | public void TryStartNoGCRegionCall()
11 | {
12 | try
13 | {
14 | if (EnableGCPrevent)
15 | {
16 | GC.TryStartNoGCRegion(GCReserveSize, true);
17 | }
18 | }
19 | catch (Exception ea)
20 | {
21 |
22 | }
23 | }
24 |
25 | public void EndNoGCRegionCall()
26 | {
27 | try
28 | {
29 | if (EnableGCPrevent)
30 | {
31 | GC.EndNoGCRegion();
32 | }
33 | }
34 | catch (Exception es)
35 | {
36 | }
37 | }
38 |
39 | }
40 |
41 | }
42 |
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_Desktop/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_UWP/Backup/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
4 | },
5 | "frameworks": {
6 | "uap10.0": {}
7 | },
8 | "runtimes": {
9 | "win10-arm": {},
10 | "win10-arm-aot": {},
11 | "win10-x86": {},
12 | "win10-x86-aot": {},
13 | "win10-x64": {},
14 | "win10-x64-aot": {}
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_UWP/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // General Information about an assembly is controlled through the following
6 | // set of attributes. Change these attribute values to modify the information
7 | // associated with an assembly.
8 | [assembly: AssemblyTitle("NScumm.Platform_UWP")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("NScumm.Platform_UWP")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // Version information for an assembly consists of the following four values:
18 | //
19 | // Major Version
20 | // Minor Version
21 | // Build Number
22 | // Revision
23 | //
24 | // You can specify all the values or you can default the Build and Revision Numbers
25 | // by using the '*' as shown below:
26 | // [assembly: AssemblyVersion("1.0.*")]
27 | [assembly: AssemblyVersion("1.0.0.0")]
28 | [assembly: AssemblyFileVersion("1.0.0.0")]
29 | [assembly: ComVisible(false)]
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_UWP/Properties/NScumm.Platform_UWP.rd.xml:
--------------------------------------------------------------------------------
1 |
2 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_UWP/SaveFileManager.cs:
--------------------------------------------------------------------------------
1 | using NScumm.Core;
2 | using System;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using Windows.Storage;
7 |
8 | namespace NScumm.Platform_UWP
9 | {
10 | public class SaveFileManager : ISaveFileManager
11 | {
12 | private IFileStorage _fileStorage;
13 | private string gameID = "";
14 | public SaveFileManager(IFileStorage fileStorage)
15 | {
16 | _fileStorage = fileStorage;
17 | }
18 |
19 | public void setID(string id)
20 | {
21 | gameID = id;
22 | }
23 |
24 | public async Task ListSavefiles(string pattern)
25 | {
26 | var path = await GetSavePath();
27 | return Directory.EnumerateFiles(path, pattern).Select(Path.GetFileName).ToArray();
28 | }
29 |
30 | public async Task OpenForLoading(string fileName)
31 | {
32 | var path = await GetSavePath();
33 | return File.OpenRead(Path.Combine(path, fileName));
34 | }
35 |
36 | public async Task OpenForSaving(string fileName, bool compress = true)
37 | {
38 | var path = await GetSavePath();
39 | return File.OpenWrite(Path.Combine(path, fileName));
40 | }
41 |
42 | private async Task GetSavePath()
43 | {
44 | var local = ApplicationData.Current.LocalFolder;
45 | var dir = await local.CreateFolderAsync(gameID, CreationCollisionOption.OpenIfExists);
46 | return dir.Path;
47 | }
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/src/Platforms/NScumm.Platform_UWP/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "dependencies": {
3 | "Microsoft.NETCore.UniversalWindowsPlatform": "5.0.0"
4 | },
5 | "frameworks": {
6 | "uap10.0": {}
7 | },
8 | "runtimes": {
9 | "win10-arm": {},
10 | "win10-arm-aot": {},
11 | "win10-x86": {},
12 | "win10-x86-aot": {},
13 | "win10-x64": {},
14 | "win10-x64-aot": {}
15 | }
16 | }
--------------------------------------------------------------------------------
/src/Tests/NScumm.Core.Tests/IO/XorStreamFixture.cs:
--------------------------------------------------------------------------------
1 | using NFluent;
2 | using NScumm.Scumm.IO;
3 | using NUnit.Framework;
4 | using System;
5 | using System.IO;
6 | using System.Linq;
7 |
8 | namespace NScumm.Core.Tests
9 | {
10 | [TestFixture]
11 | public class XorStreamFixture
12 | {
13 | [Test]
14 | public void ReadBytes()
15 | {
16 | var data = Enumerable.Range(0, 256).Select(d => (byte)d).ToArray();
17 |
18 | byte encByte = 0x73;
19 | var dataExpected = data.Select(d => d ^ encByte).Select(d => (byte)d).ToArray();
20 | using (var ms = new MemoryStream(data))
21 | {
22 | var stream = new XorStream(ms, encByte);
23 | var output = new byte[256];
24 | stream.Read(output, 0, 256);
25 | Check.That(output).ContainsExactly(dataExpected);
26 | }
27 | }
28 | }
29 | }
30 |
--------------------------------------------------------------------------------
/src/Tests/NScumm.Core.Tests/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Runtime.CompilerServices;
3 | using System.Runtime.InteropServices;
4 |
5 | // Les informations générales relatives à un assembly dépendent de
6 | // l'ensemble d'attributs suivant. Changez les valeurs de ces attributs pour modifier les informations
7 | // associées à un assembly.
8 | [assembly: AssemblyTitle("NScumm.Core.Tests")]
9 | [assembly: AssemblyDescription("")]
10 | [assembly: AssemblyConfiguration("")]
11 | [assembly: AssemblyCompany("")]
12 | [assembly: AssemblyProduct("NScumm.Core.Tests")]
13 | [assembly: AssemblyCopyright("Copyright © 2015")]
14 | [assembly: AssemblyTrademark("")]
15 | [assembly: AssemblyCulture("")]
16 |
17 | // L'affectation de la valeur false à ComVisible rend les types invisibles dans cet assembly
18 | // aux composants COM. Si vous devez accéder à un type dans cet assembly à partir de
19 | // COM, affectez la valeur true à l'attribut ComVisible sur ce type.
20 | [assembly: ComVisible(false)]
21 |
22 | // Le GUID suivant est pour l'ID de la typelib si ce projet est exposé à COM
23 | [assembly: Guid("2f99d225-624b-43e1-9758-c8b19e5be6f9")]
24 |
25 | // Les informations de version pour un assembly se composent des quatre valeurs suivantes :
26 | //
27 | // Version principale
28 | // Version secondaire
29 | // Numéro de build
30 | // Révision
31 | //
32 | // Vous pouvez spécifier toutes les valeurs ou vous pouvez définir par défaut les numéros de build et de révision
33 | // en utilisant '*', comme indiqué ci-dessous :
34 | // [assembly: AssemblyVersion("1.0.*")]
35 | [assembly: AssemblyVersion("1.0.0.0")]
36 | [assembly: AssemblyFileVersion("1.0.0.0")]
37 |
--------------------------------------------------------------------------------
/src/Tests/NScumm.Core.Tests/Resources/maniacdemo.d64:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tests/NScumm.Core.Tests/Resources/maniacdemo.d64
--------------------------------------------------------------------------------
/src/Tests/NScumm.Core.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/Tests/NScumm.Dump.Tests/AstHelper.cs:
--------------------------------------------------------------------------------
1 | //
2 | // AstHelper.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 | using System;
22 | using NFluent;
23 |
24 | namespace NScumm.Dump.Tests
25 | {
26 | public static class AstHelper
27 | {
28 | public static string ToString(IAstNode ast, bool showOffsets = false)
29 | {
30 | var dumper = new DumpAstVisitor(showOffsets);
31 | var code = ast.Accept(dumper);
32 | return code;
33 | }
34 |
35 | public static void AstEquals(IAstNode astExpected, IAstNode astActual, bool showOffsets = false)
36 | {
37 | var dumper = new DumpAstVisitor(showOffsets);
38 |
39 | var expectedCode = astExpected.Accept(dumper);
40 | var actualCode = astActual.Accept(dumper);
41 |
42 | Check.That(actualCode).IsEqualTo(expectedCode);
43 | Console.WriteLine(expectedCode);
44 | }
45 | }
46 | }
47 |
48 |
--------------------------------------------------------------------------------
/src/Tests/NScumm.Dump.Tests/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/.vs/NScumm.Dump/v16/.suo:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tools/NScumm.Dump/.vs/NScumm.Dump/v16/.suo
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/ArrayLiteralExpression.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ArrayLiteralExpression.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2015
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 | using System;
22 |
23 | namespace NScumm.Dump
24 | {
25 | public sealed class ArrayLiteralExpression: LiteralExpression
26 | {
27 | public ArrayLiteralExpression(Array value)
28 | : base(value)
29 | {
30 | }
31 |
32 | public override void Accept(IAstNodeVisitor visitor)
33 | {
34 | visitor.Visit(this);
35 | }
36 |
37 | public override T Accept(IAstNodeVisitor visitor)
38 | {
39 | return visitor.Visit(this);
40 | }
41 | }
42 | }
43 |
44 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/BooleanLiteralExpression.cs:
--------------------------------------------------------------------------------
1 | //
2 | // BooleanLiteralExpression.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public sealed class BooleanLiteralExpression: LiteralExpression
25 | {
26 | public BooleanLiteralExpression(bool value)
27 | : base(value)
28 | {
29 | }
30 |
31 | public override void Accept(IAstNodeVisitor visitor)
32 | {
33 | visitor.Visit(this);
34 | }
35 |
36 | public override T Accept(IAstNodeVisitor visitor)
37 | {
38 | return visitor.Visit(this);
39 | }
40 | }
41 | }
42 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/Expression.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace NScumm.Dump
3 | {
4 | [System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
5 | public abstract class Expression : AstNodeBase
6 | {
7 | internal abstract string DebuggerDisplay
8 | {
9 | get;
10 | }
11 | }
12 |
13 | public static class ExpressionExtensions
14 | {
15 | public static Statement ToStatement(this Expression exp)
16 | {
17 | return new ExpressionStatement(exp);
18 | }
19 |
20 | public static Statement ToStatement(this Expression exp, long? startOffset, long? endOffset)
21 | {
22 | return new ExpressionStatement(exp, startOffset, endOffset);
23 | }
24 |
25 | public static Expression Not(this Expression condition)
26 | {
27 | var unExp = condition as UnaryExpression;
28 | if (unExp != null)
29 | {
30 | return unExp.Not();
31 | }
32 | var boolExp = condition as BooleanLiteralExpression;
33 | if (boolExp != null)
34 | {
35 | return new BooleanLiteralExpression(!boolExp.Value);
36 | }
37 | var binExp = condition as BinaryExpression;
38 | if (binExp != null)
39 | {
40 | return binExp.Not();
41 | }
42 | return new UnaryExpression(condition, Operator.Not);
43 | }
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/IntegerLiteralExpression.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IntegerLiteralExpression.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 | using System;
22 |
23 | namespace NScumm.Dump
24 | {
25 | public sealed class IntegerLiteralExpression: LiteralExpression
26 | {
27 | public IntegerLiteralExpression(int value)
28 | : base(value)
29 | {
30 | }
31 |
32 | public override void Accept(IAstNodeVisitor visitor)
33 | {
34 | visitor.Visit(this);
35 | }
36 |
37 | public override T Accept(IAstNodeVisitor visitor)
38 | {
39 | return visitor.Visit(this);
40 | }
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/MemberAccess.cs:
--------------------------------------------------------------------------------
1 | namespace NScumm.Dump
2 | {
3 | public class MemberAccess: Expression
4 | {
5 | public Expression Target
6 | {
7 | get;
8 | private set;
9 | }
10 |
11 | public string Field
12 | {
13 | get;
14 | private set;
15 | }
16 |
17 | internal override string DebuggerDisplay
18 | {
19 | get
20 | {
21 | return string.Format("{0}.{1}", Target.DebuggerDisplay, Field);
22 | }
23 | }
24 |
25 | public MemberAccess(Expression target, string field)
26 | {
27 | Target = target;
28 | Field = field;
29 | ChildrenCore.Add(Target);
30 | }
31 |
32 | public MemberAccess(string target, string field)
33 | : this(new SimpleName(target), field)
34 | {
35 | }
36 |
37 | #region implemented abstract members of Expression
38 |
39 | public override void Accept(IAstNodeVisitor visitor)
40 | {
41 | visitor.Visit(this);
42 | }
43 |
44 | public override T Accept(IAstNodeVisitor visitor)
45 | {
46 | return visitor.Visit(this);
47 | }
48 |
49 | #endregion
50 |
51 | }
52 | }
53 |
54 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/SimpleName.cs:
--------------------------------------------------------------------------------
1 | namespace NScumm.Dump
2 | {
3 | [System.Diagnostics.DebuggerDisplay("{DebuggerDisplay,nq}")]
4 | public class SimpleName: Expression
5 | {
6 | public string Name
7 | {
8 | get;
9 | private set;
10 | }
11 |
12 | internal override string DebuggerDisplay
13 | {
14 | get { return Name; }
15 | }
16 |
17 | public SimpleName(string name)
18 | {
19 | Name = name;
20 | }
21 |
22 | #region implemented abstract members of Expression
23 |
24 | public override void Accept(IAstNodeVisitor visitor)
25 | {
26 | visitor.Visit(this);
27 | }
28 |
29 | public override T Accept(IAstNodeVisitor visitor)
30 | {
31 | return visitor.Visit(this);
32 | }
33 |
34 | #endregion
35 | }
36 | }
37 |
38 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/StringLiteralExpression.cs:
--------------------------------------------------------------------------------
1 | //
2 | // StringLiteralExpression.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public sealed class StringLiteralExpression: LiteralExpression
25 | {
26 | public StringLiteralExpression(byte[] value)
27 | : base(value)
28 | {
29 | }
30 |
31 | public override void Accept(IAstNodeVisitor visitor)
32 | {
33 | visitor.Visit(this);
34 | }
35 |
36 | public override T Accept(IAstNodeVisitor visitor)
37 | {
38 | return visitor.Visit(this);
39 | }
40 | }
41 |
42 | }
43 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Expressions/UnaryExpression.cs:
--------------------------------------------------------------------------------
1 | using System;
2 |
3 | namespace NScumm.Dump
4 | {
5 | public class UnaryExpression: Expression
6 | {
7 | public Operator Operator
8 | {
9 | get;
10 | private set;
11 | }
12 |
13 | public Expression Expression
14 | {
15 | get;
16 | private set;
17 | }
18 |
19 | internal override string DebuggerDisplay
20 | {
21 | get
22 | {
23 | return string.Format("{0} {1}", Operator, Expression.DebuggerDisplay);
24 | }
25 | }
26 |
27 | public UnaryExpression(Expression expression, Operator op)
28 | {
29 | Operator = op;
30 | Expression = expression;
31 | ChildrenCore.Add(Expression);
32 | }
33 |
34 | public Expression Not()
35 | {
36 | if (Operator == Operator.Not)
37 | {
38 | return Expression;
39 | }
40 | throw new NotSupportedException("Operator Not is not possible on this expression");
41 | }
42 |
43 | #region implemented abstract members of Expression
44 |
45 | public override void Accept(IAstNodeVisitor visitor)
46 | {
47 | visitor.Visit(this);
48 | }
49 |
50 | public override T Accept(IAstNodeVisitor visitor)
51 | {
52 | return visitor.Visit(this);
53 | }
54 |
55 | #endregion
56 |
57 | }
58 | }
59 |
60 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/IAstNode.cs:
--------------------------------------------------------------------------------
1 | using System.Collections.Generic;
2 |
3 | namespace NScumm.Dump
4 | {
5 | public interface IAstNode
6 | {
7 | void Accept(IAstNodeVisitor visitor);
8 |
9 | T Accept(IAstNodeVisitor visitor);
10 |
11 | IAstNode Parent { get; }
12 |
13 | IList Children { get; }
14 |
15 | long? StartOffset { get; }
16 | long? EndOffset { get; }
17 | }
18 |
19 | public static class IAstNodeExtension
20 | {
21 | public static IEnumerable GetAncestors(this IAstNode node)
22 | {
23 | var currentNode = node;
24 | while (currentNode.Parent != null)
25 | {
26 | yield return currentNode.Parent;
27 | currentNode = currentNode.Parent;
28 | }
29 | }
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/DoWhileStatement.cs:
--------------------------------------------------------------------------------
1 | //
2 | // DoWhileStatement.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public class DoWhileStatement: Statement
25 | {
26 | public Expression Condition { get; private set; }
27 |
28 | public Statement Statement { get; private set; }
29 |
30 | public DoWhileStatement(Expression condition, Statement statement, long? startOffset = null, long? endOffset = null)
31 | {
32 | StartOffset = startOffset;
33 | EndOffset = endOffset;
34 | Condition = condition;
35 | Statement = statement;
36 | ChildrenCore.Add(Condition);
37 | ChildrenCore.Add(Statement);
38 | }
39 |
40 | public override void Accept(IAstNodeVisitor visitor)
41 | {
42 | visitor.Visit(this);
43 | }
44 |
45 | public override T Accept(IAstNodeVisitor visitor)
46 | {
47 | return visitor.Visit(this);
48 | }
49 | }
50 | }
51 |
52 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/ExpressionStatement.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ExpressionStatement.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public class ExpressionStatement: Statement
25 | {
26 | public Expression Expression
27 | {
28 | get;
29 | private set;
30 | }
31 |
32 | public ExpressionStatement(Expression exp, long? startOffset = null, long? endOffset = null)
33 | {
34 | StartOffset = startOffset;
35 | EndOffset = endOffset;
36 | Expression = exp;
37 | ChildrenCore.Add(Expression);
38 | }
39 |
40 | public override void Accept(IAstNodeVisitor visitor)
41 | {
42 | visitor.Visit(this);
43 | }
44 |
45 | public override T Accept(IAstNodeVisitor visitor)
46 | {
47 | return visitor.Visit(this);
48 | }
49 | }
50 |
51 | }
52 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/GoToStatement.cs:
--------------------------------------------------------------------------------
1 | //
2 | // GoToStatement.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public class GoToStatement: Statement
25 | {
26 | public string Label{ get; private set; }
27 |
28 | public GoToStatement(string label)
29 | {
30 | Label = label;
31 | }
32 |
33 | #region implemented abstract members of AstNodeBase
34 |
35 | public override void Accept(IAstNodeVisitor visitor)
36 | {
37 | visitor.Visit(this);
38 | }
39 |
40 | public override T Accept(IAstNodeVisitor visitor)
41 | {
42 | return visitor.Visit(this);
43 | }
44 |
45 | #endregion
46 | }
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/JumpStatement.cs:
--------------------------------------------------------------------------------
1 | //
2 | // IfStatement.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public class JumpStatement: Statement
25 | {
26 | public Expression Condition { get; private set; }
27 |
28 | public int JumpOffset { get; private set; }
29 |
30 | public JumpStatement(Expression condition, int offset, long? startOffset = null, long? endOffset = null)
31 | {
32 | StartOffset = startOffset;
33 | EndOffset = endOffset;
34 | Condition = condition;
35 | JumpOffset = offset;
36 | ChildrenCore.Add(Condition);
37 | }
38 |
39 | public override void Accept(IAstNodeVisitor visitor)
40 | {
41 | visitor.Visit(this);
42 | }
43 |
44 | public override T Accept(IAstNodeVisitor visitor)
45 | {
46 | return visitor.Visit(this);
47 | }
48 | }
49 | }
50 |
51 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/LabelStatement.cs:
--------------------------------------------------------------------------------
1 | //
2 | // LabelStatement.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | public class LabelStatement: Statement
25 | {
26 | public string Label{ get; private set; }
27 |
28 | public LabelStatement(string label)
29 | {
30 | Label = label;
31 | }
32 |
33 | #region implemented abstract members of AstNodeBase
34 |
35 | public override void Accept(IAstNodeVisitor visitor)
36 | {
37 | visitor.Visit(this);
38 | }
39 |
40 | public override T Accept(IAstNodeVisitor visitor)
41 | {
42 | return visitor.Visit(this);
43 | }
44 |
45 | #endregion
46 | }
47 | }
48 |
49 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Ast/Statements/Statement.cs:
--------------------------------------------------------------------------------
1 |
2 | namespace NScumm.Dump
3 | {
4 | public abstract class Statement: AstNodeBase
5 | {
6 | }
7 | }
8 |
9 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/JumpAstVisitor.cs:
--------------------------------------------------------------------------------
1 | //
2 | // JumpAstVisitor.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using System.Collections.Generic;
23 |
24 | namespace NScumm.Dump
25 | {
26 | public class JumpAstVisitor: DefaultVisitor
27 | {
28 | public List Jumps { get; private set; }
29 |
30 | public JumpAstVisitor()
31 | {
32 | Jumps = new List();
33 | }
34 |
35 | protected override void DefaultVisit(IAstNode node)
36 | {
37 | foreach (var child in node.Children)
38 | {
39 | child.Accept(this);
40 | }
41 | }
42 |
43 | public override void Visit(JumpStatement node)
44 | {
45 | Jumps.Add(node);
46 | }
47 | }
48 |
49 | }
50 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Parser/ScriptParser3_Camera.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScriptParser_Camera.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core;
23 | using NScumm.Scumm;
24 |
25 | namespace NScumm.Dump
26 | {
27 | partial class ScriptParser3
28 | {
29 | Statement PanCameraTo()
30 | {
31 | var to = GetVarOrDirectWord(OpCodeParameter.Param1);
32 | return new MethodInvocation("PanCameraTo").AddArgument(to).ToStatement();
33 | }
34 |
35 | Statement SetCameraAt()
36 | {
37 | var at = GetVarOrDirectWord(OpCodeParameter.Param1);
38 | return new MethodInvocation("SetCameraAt").AddArgument(at).ToStatement();
39 | }
40 | }
41 | }
42 |
43 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Parser/ScriptParser3_Inventory.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScriptParser_Inventory.cs
3 | //
4 | // Author:
5 | // Scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | using NScumm.Core;
23 | using NScumm.Scumm;
24 |
25 | namespace NScumm.Dump
26 | {
27 | partial class ScriptParser3
28 | {
29 | Statement FindInventory()
30 | {
31 | var index = GetResultIndexExpression();
32 | var x = GetVarOrDirectByte(OpCodeParameter.Param1);
33 | var y = GetVarOrDirectByte(OpCodeParameter.Param2);
34 | return SetResultExpression(index, new MethodInvocation("FindInventory").AddArguments(x, y)).ToStatement();
35 | }
36 |
37 | Statement GetInventoryCount()
38 | {
39 | var index = GetResultIndexExpression();
40 | return SetResultExpression(index, new MethodInvocation("GetInventoryCount").AddArgument(GetVarOrDirectByte(OpCodeParameter.Param1))).ToStatement();
41 | }
42 | }
43 | }
44 |
45 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/Parser/ScriptParser6_Inventory.cs:
--------------------------------------------------------------------------------
1 | //
2 | // ScriptParser6_Inventory.cs
3 | //
4 | // Author:
5 | // scemino
6 | //
7 | // Copyright (c) 2014
8 | //
9 | // This program is free software: you can redistribute it and/or modify
10 | // it under the terms of the GNU General Public License as published by
11 | // the Free Software Foundation, either version 3 of the License, or
12 | // (at your option) any later version.
13 | //
14 | // This program is distributed in the hope that it will be useful,
15 | // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 | // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 | // GNU General Public License for more details.
18 | //
19 | // You should have received a copy of the GNU General Public License
20 | // along with this program. If not, see .
21 |
22 | namespace NScumm.Dump
23 | {
24 | partial class ScriptParser6
25 | {
26 | protected Statement FindInventory()
27 | {
28 | var index = Pop();
29 | var owner = Pop();
30 | return Push(new MethodInvocation("FindInventory").AddArguments(owner, index));
31 | }
32 |
33 | protected Statement GetInventoryCount()
34 | {
35 | return Push(new MethodInvocation("GetInventoryCount").AddArgument(Pop()));
36 | }
37 | }
38 | }
39 |
40 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/.NETFramework,Version=v4.5.AssemblyAttributes.cs:
--------------------------------------------------------------------------------
1 | //
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
5 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/DesignTimeResolveAssemblyReferences.cache:
--------------------------------------------------------------------------------
1 | MBRSC
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tools/NScumm.Dump/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/NScumm.Dump.csproj.AssemblyReference.cache:
--------------------------------------------------------------------------------
1 | MBRSC
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/NScumm.Dump.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tools/NScumm.Dump/obj/Debug/NScumm.Dump.csproj.FileListAbsolute.txt
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Debug/build.force:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tools/NScumm.Dump/obj/Debug/build.force
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Release/.NETFramework,Version=v4.5.AssemblyAttributes.cs:
--------------------------------------------------------------------------------
1 | //
2 | using System;
3 | using System.Reflection;
4 | [assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.5", FrameworkDisplayName = ".NET Framework 4.5")]
5 |
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Release/NScumm.Dump.csproj.AssemblyReference.cache:
--------------------------------------------------------------------------------
1 | MBRSC
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/obj/Release/NScumm.Dump.csproj.FileListAbsolute.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/Tools/NScumm.Dump/obj/Release/NScumm.Dump.csproj.FileListAbsolute.txt
--------------------------------------------------------------------------------
/src/Tools/NScumm.Dump/packages.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/src/UpgradeLog.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/UpgradeLog.htm
--------------------------------------------------------------------------------
/src/UpgradeLog2.htm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/UpgradeLog2.htm
--------------------------------------------------------------------------------
/src/packages/Mono.Options.1.1/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/Mono.Options.1.1/.signature.p7s
--------------------------------------------------------------------------------
/src/packages/Mono.Options.1.1/Mono.Options.1.1.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/Mono.Options.1.1/Mono.Options.1.1.nupkg
--------------------------------------------------------------------------------
/src/packages/NFluent.1.3.1.0/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NFluent.1.3.1.0/.signature.p7s
--------------------------------------------------------------------------------
/src/packages/NFluent.1.3.1.0/NFluent.1.3.1.0.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NFluent.1.3.1.0/NFluent.1.3.1.0.nupkg
--------------------------------------------------------------------------------
/src/packages/NFluent.1.3.1.0/lib/net35/NFluent.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NFluent.1.3.1.0/lib/net35/NFluent.dll
--------------------------------------------------------------------------------
/src/packages/NFluent.1.3.1.0/lib/net40/NFluent.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NFluent.1.3.1.0/lib/net40/NFluent.dll
--------------------------------------------------------------------------------
/src/packages/NFluent.1.3.1.0/lib/portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1/NFluent.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NFluent.1.3.1.0/lib/portable-net45+sl5+netcore45+MonoAndroid1+MonoTouch1/NFluent.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.2.6.4/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.2.6.4/.signature.p7s
--------------------------------------------------------------------------------
/src/packages/NUnit.2.6.4/NUnit.2.6.4.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.2.6.4/NUnit.2.6.4.nupkg
--------------------------------------------------------------------------------
/src/packages/NUnit.2.6.4/lib/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.2.6.4/lib/nunit.framework.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.2.6.4/license.txt:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.2.6.4/license.txt
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/.signature.p7s:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/.signature.p7s
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/LICENSE.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2015 Charlie Poole
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in
11 | all copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 | THE SOFTWARE.
20 |
21 |
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/NOTICES.txt:
--------------------------------------------------------------------------------
1 | NUnit 3.0 is based on earlier versions of NUnit, with Portions
2 |
3 | Copyright (c) 2002-2014 Charlie Poole or
4 | Copyright (c) 2002-2004 James W. Newkirk, Michael C. Two, Alexei A. Vorontsov or
5 | Copyright (c) 2000-2002 Philip A. Craig
6 |
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/NUnit.3.0.0-beta-2.nupkg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/NUnit.3.0.0-beta-2.nupkg
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/lib/net20/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/lib/net20/nunit.framework.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/lib/net40/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/lib/net40/nunit.framework.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/lib/net45/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/lib/net45/nunit.framework.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/lib/portable-net45+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/lib/portable-net45+sl5+netcore45+wpa81+wp8+MonoAndroid1+MonoTouch1/nunit.framework.dll
--------------------------------------------------------------------------------
/src/packages/NUnit.3.0.0-beta-2/lib/sl50/nunit.framework.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/basharast/NScummUWP/078f1c7effa4bc09f1ad6022216fdde166070778/src/packages/NUnit.3.0.0-beta-2/lib/sl50/nunit.framework.dll
--------------------------------------------------------------------------------