234
edits
(48 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
This page lists known plugins for | This page lists known plugins for [[Wintermute/Games|Wintermute games]]. | ||
Original WME 1.x allows game scripts to automatically import code from DLL libraries named "wme_*.dll". | Original WME 1.x allows game scripts to automatically import code from DLL libraries named "wme_*.dll". | ||
= | = Steam plugin = | ||
== | == wme_steam.dll == | ||
This is a plugin for Wintermute Engine which allows WME games to access Steamworks API. Currently it provides functions for manipulating achievements and game stats. | |||
Source: https://bitbucket.org/MnemonicWME/wme_steam_plugin/wiki/Home | |||
GetSupportedClasses() exports one class: '''SteamAPI'''. | |||
== 2D games == | |||
=== [[Corrosion: Cold Winter Waiting]] === | |||
Steam game ID is '''349140'''. | |||
Required property: '''StatsAvailable''' (game waits until it's true) | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/349140/stats/) | |||
=== [[Dr. Doyle - Mystery Of The Cloche Hat]] === | |||
Steam game ID is '''574420'''. | |||
Required method: '''SetAchievement''' (to set 35 achievement, see https://steamdb.info/app/574420/stats/) | |||
=== [[The Death of Erin Myers]] === | |||
Steam game ID is '''1064660'''. | |||
Required method: '''SetAchievement''' (to set 5 achievements, see https://steamdb.info/app/1064660/stats/) | |||
=== [[Oknytt]] === | |||
Steam game ID is '''286320'''. | |||
Required method: '''SetAchievement''' (to set 10 achievements, see https://steamdb.info/app/286320/stats/) | |||
=== [[Reversion: The Escape]] === | |||
Steam game ID is '''270570'''. | |||
Required property: '''SteamAvailable''' (game checks if it's true) | |||
Required method: '''SetAchievement''' (to set 16 achievements, see https://steamdb.info/app/270570/stats/) | |||
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO") | |||
=== [[Reversion: The Meeting]] === | |||
Steam game ID is '''281060'''. | |||
Required property: '''SteamAvailable''' (game checks if it's true) | |||
Required method: '''SetAchievement''' (to set 25 achievements, see https://steamdb.info/app/281060/stats/) | |||
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_FINAL") | |||
=== [[Reversion: The Return]] === | |||
Steam game ID is '''281080'''. | |||
Required property: '''SteamAvailable''' (game checks if it's true) | |||
Required method: '''SetAchievement''' (to set 36 achievements, see https://steamdb.info/app/281080/stats/) | |||
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO_R3") | |||
=== [[J.U.L.I.A.: Among the Stars]] === | |||
Steam game ID is '''257690'''. | |||
Achievements are shared with [[J.U.L.I.A.: Untold]]. | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/) | |||
=== [[J.U.L.I.A.: Untold]] === | |||
Steam game ID is '''257690'''. | |||
Achievements are shared with [[J.U.L.I.A.: Among the Stars]]. | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/) | |||
== 2.5D games == | |||
=== Alpha Polaris === | |||
Steam game ID is '''405780'''. | |||
Required property: '''SteamAvailable''' (game checks if it's true) | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/405780/stats/) | |||
Required method: '''ClearAchievement''' (it is possible to clear achievement using in-game debug CLI) | |||
=== The Lost Crown - A Ghost-Hunting Adventure === | |||
Steam game ID is '''291710'''. | |||
Required property: SteamAvailable (game checks if it's true) | |||
Required method: '''SetAchievement''' (to set 34 achievements, see https://steamdb.info/app/291710/stats/) | |||
= GOG Galaxy plugin = | |||
== julia.exe == | |||
This object is actually hardcoded into WME Lite fork of J.U.L.I.A. games. It allows those games to access GOG Galaxy API. Currently it provides functions for manipulating achievements. | |||
Class name is: '''WMEGalaxyAPI'''. | |||
== 2D games == | |||
=== [[J.U.L.I.A.: Among the Stars]] === | |||
GOG Galaxy game ID is '''48891696681534931'''. | |||
Achievements are shared with [[J.U.L.I.A.: Untold]]. | |||
Required method: '''InitGalaxy''' (to set game id and key) | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/) | |||
=== [[J.U.L.I.A.: Untold]] === | |||
GOG Galaxy game ID is '''48891696681534931'''. | |||
Achievements are shared with [[J.U.L.I.A.: Among the Stars]]. | |||
Required method: '''InitGalaxy''' (to set game id and key) | |||
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/) | |||
= 3f interactive statistics plugin = | |||
== wme_3fstatistics.dll == | |||
A statistics plugin for WME 1.x by [[3f interactive]]. | |||
Sources are not public. File resources mentiones c:\Users\Fran\Desktop\Reversion Artwork\svnReversion\game\WintermutePlugins\WME_UsageStatistics\Release\wme_3fstatistics.pdb path. | |||
GetSupportedClasses() exports one class: '''Statistics'''. | |||
There are 2 known versions of wme_3fstatistics.dll - old one is used at first versions of [[Reversion: The Escape]], later is used in Steam releases of Reversion series and provides extended constructor. | |||
== 2D games == | |||
=== [[Reversion: The Escape]] === | |||
Old versions of Reversion are using simple constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php")''' | |||
New versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "1", gameLanguage, DCP_VERSION)''' | |||
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--") | |||
Required method: '''SetRepeat()''' (known options are SetRepeat(0) and SetRepeat(60)) | |||
=== [[Reversion: The Meeting]] === | |||
Known versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "2", gameLanguage, DCP_VERSION)''' | |||
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--") | |||
Required method: '''SetRepeat()''' (known option is SetRepeat(0)) | |||
=== [[Reversion: The Return]] === | |||
Known versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "3", gameLanguage, DCP_VERSION)''' | |||
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--") | |||
Required method: '''SetRepeat()''' (known option is SetRepeat(0)) | |||
= CLI helper plugin = | |||
== wme_commandlinehelper.dll == | |||
Commandline helper plugin by [[Corbomite Games]]. This plugin is used to access argv[] parameters. | |||
GetSupportedClasses() exports one class: '''CommandLineHelper''' | |||
Current reimplementation returns "Pizza.exe DEMO" argv[] line. | |||
== 2.5D games == | |||
=== Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest === | |||
Pizza Morgana expects to be run with a launcher executable, that starts WME executable with additional CLI parameters according to license state. | |||
Possible expected argv[1]: FULL / FULL_FW / FULLDEMO / FULLDEMO_FW / VALID / VALID_FW / INVALID / INVALID_FW / DEMO / DEMO_FW / other value. | |||
Required property: '''Parameters''' (passed to String(), then Split(" ") is called) | |||
Currently DEMO is returned, since only game demo is in detection tables. | |||
= [TODO] Bink Video plugin = | |||
== wme_vlink.dll == | |||
Bink Video plugin by [[TML Studios]]. This plugin is used to play *.bik cutscene videofiles. | |||
GetSupportedClasses() exports one class: '''CommandLineHelper''' | |||
TODO: '''reimplement this for ScummVM''', using /video/ implementation of Bink Video. | |||
== 2.5D games == | |||
=== Sunrise: The game === | |||
Sunrise: The game plays lots of cutscenes videos using a plugin. | |||
Constructor call: '''new BinkVideo(Game.Direct3DDevice)''' | |||
Required method: '''SetVolume()''' (known values are 80 and 87) | |||
Required method: '''Play()''' (parameter is video path, e.g. "video\M11\Video341.bik") | |||
= [TODO] Black & White render plugin = | |||
== wme_blackandwhite.dll == | |||
Black & White render plugin by [[SPline]]. This plugin is switch render to Black & White or Sepia modes. | |||
GetSupportedClasses() exports one class: '''BlackAndWhite''' | |||
TODO: '''reimplement this for ScummVM'''. | |||
== 2.5D games == | |||
=== Stroke of Fate dilogy === | |||
Stroke of Fate dilogy allows render switching. | |||
Constructor call: '''new BlackAndWhite()''' | |||
Required method: '''Start()''' | |||
Required method: '''SetNormalRender()''' | |||
Required property: '''SepiaAvailable''' - boolean | |||
Required property: '''BlackAndWhiteAvailable''' - boolean | |||
Required property: '''WeightedSepiaAvailable''' - boolean | |||
Required property: '''WeightedBlackAndWhiteAvailable''' - boolean | |||
Required property: '''Weight''' - float | |||
Required method: '''SetSepia()''' | |||
Required method: '''SetBlackAndWhite()''' | |||
Required method: '''SetWeightedSepia()''' | |||
Required method: '''SetWeightedBlackAndWhite()''' | |||
== | = [TODO] Shadow manager plugin = | ||
== wme_shadows.dll == | |||
Shadow manager plugin by [[SPline]]. | |||
GetSupportedClasses() exports one class: ''' | GetSupportedClasses() exports one class: '''ShadowManager''' | ||
TODO: reimplement this | TODO: '''reimplement this for ScummVM'''. | ||
== | == 2.5D games == | ||
=== Stroke of Fate dilogy === | |||
Stroke of Fate dilogy allows shadow management. | |||
Constructor call: '''new ShadowManager()''' | |||
Required method: '''Run()''' | |||
Required method: '''Stop()''' | |||
Required property: '''UseSmartShadows''' - integer, e.g. 1 | |||
Required property: '''MinShadow''' - float, e.g. 0.1 | |||
Required property: '''MaxShadow''' - float, e.g. 0.25 | |||
Required method: '''EnableLight(lightName)''' | |||
Required method: '''DisableLight(lightName)''' | |||
Required method: '''AddActor(actor)''' | |||
Required method: '''RemoveAllActors()''' | |||
Required method: '''RemoveActor(actorName)''' - seems to be never used | |||
Required method: '''GetNumLights()''' - seems to be never used | |||
Required method: '''GetLightInfo(index)''' - seems to be never used | |||
Required method: '''SetDefaultLightPos(x, y, z)''' - seems to be never used | |||
= | = [TODO] Displacement plugin = | ||
== | == wme_displacement.dll == | ||
A plugin for WME 1.x by Wintermute Engine Forum user metamorphium. | |||
Sources are lost in 2008, according to this thread: http://forum.dead-code.org/index.php?topic=1197.0 | |||
GetSupportedClasses() exports one class: '''Displacement'''. | |||
TODO: '''reimplement this for ScummVM'''. | |||
=== | == 2D games == | ||
=== [[Beyond the Threshold]] === | |||
Constructor call is something like this: '''new Displacement(<entity1subframe>, <entity2subframe>, 3, 4, 7)''', parameters are not documented. | |||
Required method: '''Animate()''' (called every 80 msec for constructed object at Door_Closeup scene) | |||
= | = [TODO?] Unused plugins & DLLs = | ||
== | == Standard plugins == | ||
Those plugins are originally developed by Jan Nedoma as the sample DLLs and seems to be never actually used in any games. | |||
=== wme_report.dll === | === wme_report.dll === | ||
Standard plugin. | Standard reporting library, shipped with WME 1.x. | ||
Not a plugin, does not export anything with GetSupportedClasses(). | |||
Shipped with 2 games: | |||
* [[Alimardan's Mischief]] | |||
* Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest. | |||
No need to reimplement this for ScummVM. | |||
=== wme_sample_pixel.dll === | |||
Standard "sample_pixel" plugin, shipped with WME 1.x. | |||
Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_sample_pixel | |||
GetSupportedClasses() exports one class: '''SamplePixel'''. | |||
Shipped with 2 games: | |||
* [[Alimardan's Mischief]] | |||
* [[Alimardan Meets Merlin]] | |||
Seems to be unused in all of them. | |||
Currently no need to reimplement this for ScummVM. | |||
=== wme_snow.dll === | |||
Standard "snow" plugin, shipped with WME 1.x. | |||
Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_snow | |||
GetSupportedClasses() exports one class: '''Snow'''. | |||
Shipped with 3 games: | |||
* [[Alimardan's Mischief]] | |||
* [[Alimardan Meets Merlin]] | |||
* [[Beyond the Threshold]] | |||
Seems to be unused in all of them. | |||
Currently no need to reimplement this for ScummVM. | |||
== Other plugins == | |||
=== wme_stone.dll === | |||
wme_stone.dll is mentioned in SpriteEdit.log of reversion3. | |||
This dll is not packaged with the game, however it exists at least at developer's PC. | |||
Seems to be unused. | |||
edits