Difference between revisions of "Wintermute/Plugins"

Jump to navigation Jump to search
7,065 bytes added ,  23:02, 12 June 2021
no edit summary
 
(31 intermediate revisions by the same user not shown)
Line 1: Line 1:
This page lists known plugins for most [[Wintermute/Games|Wintermute games]].
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".


= Standard plugins =
= Steam plugin =
Current plugins are originally developed by Jan Nedoma.


== wme_report.dll ==
== wme_steam.dll ==
Standard reporting library, shipped with WME 1.x.
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)


Not a plugin, does not export anything with GetSupportedClasses().
Required method: '''SetAchievement''' (to set 36 achievements, see https://steamdb.info/app/281080/stats/)  


No need to reimplement this for ScummVM.
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO_R3")


== wme_sample_pixel.dll ==
=== [[J.U.L.I.A.: Among the Stars]] ===
Standard "sample_pixel" plugin, shipped with WME 1.x.
Steam game ID is '''257690'''.
Achievements are shared with [[J.U.L.I.A.: Untold]].


Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_sample_pixel
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


GetSupportedClasses() exports one class: '''SamplePixel'''.
=== [[J.U.L.I.A.: Untold]] ===
Steam game ID is '''257690'''.
Achievements are shared with [[J.U.L.I.A.: Among the Stars]].


TODO: reimplement this for ScummVM.
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


== wme_snow.dll ==
== 2.5D games ==
Standard "snow" plugin, shipped with WME 1.x.
=== Alpha Polaris ===
Steam game ID is '''405780'''.


Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_snow
Required property: '''SteamAvailable''' (game checks if it's true)


GetSupportedClasses() exports one class: '''Snow'''.
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/405780/stats/)


TODO: reimplement this for ScummVM.
Required method: '''ClearAchievement''' (it is possible to clear achievement using in-game debug CLI)


== wme_steam.dll ==
=== The Lost Crown - A Ghost-Hunting Adventure ===
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.
Steam game ID is '''291710'''.


Source: https://bitbucket.org/MnemonicWME/wme_steam_plugin/wiki/Home
Required property: SteamAvailable (game checks if it's true)


GetSupportedClasses() exports one class: '''SteamAPI'''.
Required method: '''SetAchievement''' (to set 34 achievements, see https://steamdb.info/app/291710/stats/)


TODO: reimplement this for ScummVM.
= GOG Galaxy plugin =


= 2D games =
== julia.exe ==
== [[Alimardan's Mischief]] ==
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.
Contains 3 "wme_*.dll" files, but does not actually use plugins:


# wme_report.dll - standard report library, not a plugin
Class name is: '''WMEGalaxyAPI'''.
# wme_sample_pixel.dll - standard plugin, exporting "SamplePixel" class that is never used.
# wme_snow.dll - standard plugin, exporting "Snow" class that is never used.


== [[Alimardan Meets Merlin]] ==
== 2D games ==
Contains 2 "wme_*.dll" files, but does not actually use plugins:
=== [[J.U.L.I.A.: Among the Stars]] ===
GOG Galaxy game ID is '''48891696681534931'''.
Achievements are shared with [[J.U.L.I.A.: Untold]].


# wme_sample_pixel.dll - standard plugin, exporting "SamplePixel" class that is never used.
Required method: '''InitGalaxy''' (to set game id and key)
# wme_snow.dll - standard plugin, exporting "Snow" class that is never used.


== [[Beyond the Threshold]] ==
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)
Shipped with wme_snow.dll, which is never used.  


=== wme_displacement.dll ===
=== [[J.U.L.I.A.: Untold]] ===
A plugin for WME 1.x by Wintermute Engine Forum user metamorphium.
GOG Galaxy game ID is '''48891696681534931'''.
Achievements are shared with [[J.U.L.I.A.: Among the Stars]].


Sources are lost in 2008, according to this thread: http://forum.dead-code.org/index.php?topic=1197.0
Required method: '''InitGalaxy''' (to set game id and key)


GetSupportedClasses() exports one class: '''Displacement'''.
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


Constructor call is something like this: '''new Displacement(<entity1subframe>, <entity2subframe>, 3, 4, 7)''', parameters are not documented.
= 3f interactive statistics plugin =


Required method: '''Animate()''' (called every 80 msec for constructed object at Door_Closeup scene)
== wme_3fstatistics.dll ==
A statistics plugin for WME 1.x by [[3f interactive]].


TODO: reimplement this for ScummVM.
Sources are not public. File resources mentiones c:\Users\Fran\Desktop\Reversion Artwork\svnReversion\game\WintermutePlugins\WME_UsageStatistics\Release\wme_3fstatistics.pdb path.


== [[Corrosion: Cold Winter Waiting]] ==
GetSupportedClasses() exports one class: '''Statistics'''.
=== wme_steam.dll ===
Standard Steam API plugin.


Required property: '''StatsAvailable''' (game waits until it's true)
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.


Required method: '''SetAchievement''' (to set 18 achievements)
== 2D games ==
=== [[Reversion: The Escape]] ===
Old versions of Reversion are using simple constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php")'''


== [[Dr. Doyle - Mystery Of The Cloche Hat]] ==
New versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "1", gameLanguage, DCP_VERSION)'''
=== wme_steam.dll ===
Standard Steam API plugin.


Required method: '''SetAchievement''' (to set 35 achievements)
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--")


== [[The Death of Erin Myers]] ==
Required method: '''SetRepeat()''' (known options are SetRepeat(0) and SetRepeat(60))
=== wme_steam.dll ===
Standard plugin. List of actually used symbols is unknown.


Required method: '''SetAchievement''' (to set 5 achievements)
=== [[Reversion: The Meeting]] ===


== [[Oknytt]] ==
Known versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "2", gameLanguage, DCP_VERSION)'''
=== wme_steam.dll ===
Standard plugin. List of actually used symbols is unknown.


== [[Reversion: The Escape]] ==
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--")
=== wme_3fstatistics.dll ===
TODO


=== wme_steam.dll ===
Required method: '''SetRepeat()''' (known option is SetRepeat(0))
Standard Steam API plugin.


Required property: '''SteamAvailable''' (game checks if it's true)
=== [[Reversion: The Return]] ===


Required method: '''SetAchievement''' (to set 16 achievements)
Known versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "3", gameLanguage, DCP_VERSION)'''


Required method: '''IsAchievementRegistered''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO")
Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--")


== [[Reversion: The Meeting]] ==
Required method: '''SetRepeat()''' (known option is SetRepeat(0))
=== wme_3fstatistics.dll ===
TODO


=== wme_steam.dll ===
= CLI helper plugin =
Standard Steam API plugin.
== wme_commandlinehelper.dll ==
Commandline helper plugin by [[Corbomite Games]]. This plugin is used to access argv[] parameters.


Required property: '''SteamAvailable''' (game checks if it's true)
GetSupportedClasses() exports one class: '''CommandLineHelper'''


Required method: '''SetAchievement''' (to set 25 achievements)
Current reimplementation returns "Pizza.exe DEMO" argv[] line.


Required method: '''IsAchievementRegistered''' (game checks "ACHIEVEMENT_FINAL")
== 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.


= 2.5D games =
Possible expected argv[1]: FULL / FULL_FW / FULLDEMO / FULLDEMO_FW / VALID / VALID_FW / INVALID / INVALID_FW / DEMO / DEMO_FW / other value.
== Alpha Polaris ==
=== wme_steam.dll ===
Standard plugin. List of actually used symbols is unknown.


== Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest ==
Required property: '''Parameters''' (passed to String(), then Split(" ") is called)


Shipped with wme_report.dll, which is the standard report library, not a plugin.
Currently DEMO is returned, since only game demo is in detection tables.


=== wme_commandlinehelper.dll ===
= [TODO] Bink Video plugin =
Commandline helper plugin by Corbomite Games
== wme_vlink.dll ==
Bink Video plugin by [[TML Studios]]. This plugin is used to play *.bik cutscene videofiles.


GetSupportedClasses() exports one class: '''CommandLineHelper'''
GetSupportedClasses() exports one class: '''CommandLineHelper'''


Required property: '''Parameters''' (passed to String(), then Split(" ") is called )
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: '''ShadowManager'''
 
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 ===
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.


TODO: reimplement this for ResidualVM.
This dll is not packaged with the game, however it exists at least at developer's PC.


== The Lost Crown - A Ghost-Hunting Adventure ==
Seems to be unused.
=== wme_steam.dll ===
Standard plugin. List of actually used symbols is unknown.
234

edits

Navigation menu