Difference between revisions of "Wintermute/Plugins"

From ScummVM :: Wiki
Jump to navigation Jump to search
 
(24 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'''.


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


No need to reimplement this for ScummVM.  
=== [[The Death of Erin Myers]] ===
Steam game ID is '''1064660'''.


== wme_sample_pixel.dll ==
Required method: '''SetAchievement''' (to set 5 achievements, see https://steamdb.info/app/1064660/stats/)
Standard "sample_pixel" plugin, shipped with WME 1.x.


Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_sample_pixel
=== [[Oknytt]] ===
Steam game ID is '''286320'''.


GetSupportedClasses() exports one class: '''SamplePixel'''.
Required method: '''SetAchievement''' (to set 10 achievements, see https://steamdb.info/app/286320/stats/)


TODO: reimplement this for ScummVM.
=== [[Reversion: The Escape]] ===
Steam game ID is '''270570'''.


== wme_snow.dll ==
Required property: '''SteamAvailable''' (game checks if it's true)
Standard "snow" plugin, shipped with WME 1.x.


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


GetSupportedClasses() exports one class: '''Snow'''.
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO")


TODO: reimplement this for ScummVM.
=== [[Reversion: The Meeting]] ===
Steam game ID is '''281060'''.


== wme_steam.dll ==
Required property: '''SteamAvailable''' (game checks if it's true)
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
Required method: '''SetAchievement''' (to set 25 achievements, see https://steamdb.info/app/281060/stats/)


GetSupportedClasses() exports one class: '''SteamAPI'''.
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_FINAL")


TODO: reimplement this for ScummVM.
=== [[Reversion: The Return]] ===
Steam game ID is '''281080'''.


= 2D games =
Required property: '''SteamAvailable''' (game checks if it's true)
== [[Alimardan's Mischief]] ==
Contains 3 "wme_*.dll" files, but does not actually use plugins:


# wme_report.dll - standard report library, not a plugin
Required method: '''SetAchievement''' (to set 36 achievements, see https://steamdb.info/app/281080/stats/)
# 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]] ==
Required method: '''IsAchieved''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO_R3")
Contains 2 "wme_*.dll" files, but does not actually use plugins:


# wme_sample_pixel.dll - standard plugin, exporting "SamplePixel" class that is never used.
=== [[J.U.L.I.A.: Among the Stars]] ===
# wme_snow.dll - standard plugin, exporting "Snow" class that is never used.
Steam game ID is '''257690'''.
Achievements are shared with [[J.U.L.I.A.: Untold]].


== [[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.
Steam game ID is '''257690'''.
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: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


GetSupportedClasses() exports one class: '''Displacement'''.
== 2.5D games ==
=== Alpha Polaris ===
Steam game ID is '''405780'''.


Constructor call is something like this: '''new Displacement(<entity1subframe>, <entity2subframe>, 3, 4, 7)''', parameters are not documented.
Required property: '''SteamAvailable''' (game checks if it's true)


Required method: '''Animate()''' (called every 80 msec for constructed object at Door_Closeup scene)
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)


== [[Corrosion: Cold Winter Waiting]] ==
=== The Lost Crown - A Ghost-Hunting Adventure ===
=== wme_steam.dll ===
Steam game ID is '''291710'''.
Standard Steam API plugin.


Steam game ID is '''349140'''.
Required property: SteamAvailable (game checks if it's true)


Required property: '''StatsAvailable''' (game waits until it's true)
Required method: '''SetAchievement''' (to set 34 achievements, see https://steamdb.info/app/291710/stats/)


Required method: '''SetAchievement''' (to set 18 achievements)
= GOG Galaxy plugin =


== [[Dr. Doyle - Mystery Of The Cloche Hat]] ==
== julia.exe ==
=== wme_steam.dll ===
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.
Standard Steam API plugin.


Steam game ID is '''574420'''.
Class name is: '''WMEGalaxyAPI'''.


Required method: '''SetAchievement''' (to set 35 achievements)
== 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]].


== [[The Death of Erin Myers]] ==
Required method: '''InitGalaxy''' (to set game id and key)
=== wme_steam.dll ===
Standard plugin. List of actually used symbols is unknown.


Steam game ID is '''1064660'''.
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


Required method: '''SetAchievement''' (to set 5 achievements)
=== [[J.U.L.I.A.: Untold]] ===
GOG Galaxy game ID is '''48891696681534931'''.
Achievements are shared with [[J.U.L.I.A.: Among the Stars]].


== [[Oknytt]] ==
Required method: '''InitGalaxy''' (to set game id and key)
=== wme_steam.dll ===
Standard plugin.


Steam game ID is '''286320'''.
Required method: '''SetAchievement''' (to set 18 achievements, see https://steamdb.info/app/257690/stats/)


Required method: '''SetAchievement''' (to set 10 achievements)
= 3f interactive statistics plugin =


== [[Reversion: The Escape]] ==
== wme_3fstatistics.dll ==
=== wme_3fstatistics.dll ===
A statistics plugin for WME 1.x by [[3f interactive]].
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'''.
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")'''
Old versions of Reversion are using simple constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php")'''


Line 118: Line 136:
Required method: '''SetRepeat()''' (known options are SetRepeat(0) and SetRepeat(60))
Required method: '''SetRepeat()''' (known options are SetRepeat(0) and SetRepeat(60))


=== wme_steam.dll ===
=== [[Reversion: The Meeting]] ===
Standard Steam API plugin.  
 
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--")


Steam game ID is '''270570'''.
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: '''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 property: '''SteamAvailable''' (game checks if it's true)
Required method: '''GetLightInfo(index)''' - seems to be never used


Required method: '''SetAchievement''' (to set 16 achievements)
Required method: '''SetDefaultLightPos(x, y, z)''' - seems to be never used


Required method: '''IsAchievementRegistered''' (game checks "ACHIEVEMENT_TERMINAR_JUEGO")
= [TODO] Displacement plugin =
== wme_displacement.dll ==
A plugin for WME 1.x by Wintermute Engine Forum user metamorphium.


== [[Reversion: The Meeting]] ==
Sources are lost in 2008, according to this thread: http://forum.dead-code.org/index.php?topic=1197.0
=== wme_3fstatistics.dll ===
 
A statistics plugin for WME 1.x by [[3f interactive]].
GetSupportedClasses() exports one class: '''Displacement'''.


GetSupportedClasses() exports one class: '''Statistics'''.
TODO: '''reimplement this for ScummVM'''.


Known versions of Reversion are using detailed constructor: '''new Statistics("http://www.soluciones3f.com.ar/reversioninfo.php", "2", gameLanguage, DCP_VERSION)'''
== 2D games ==
=== [[Beyond the Threshold]] ===
Constructor call is something like this: '''new Displacement(<entity1subframe>, <entity2subframe>, 3, 4, 7)''', parameters are not documented.


Required method: '''Send()''' (known stats to send are "Start a new game" and "--Juego Finalizado--")
Required method: '''Animate()''' (called every 80 msec for constructed object at Door_Closeup scene)


Required method: '''SetRepeat()''' (known option is SetRepeat(0))
= [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_steam.dll ===
=== wme_report.dll ===
Standard Steam API plugin.
Standard reporting library, shipped with WME 1.x.


Steam game ID is '''281060'''.
Not a plugin, does not export anything with GetSupportedClasses().


Required property: '''SteamAvailable''' (game checks if it's true)
Shipped with 2 games:
* [[Alimardan's Mischief]]
* Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest.


Required method: '''SetAchievement''' (to set 25 achievements)
No need to reimplement this for ScummVM.


Required method: '''IsAchievementRegistered''' (game checks "ACHIEVEMENT_FINAL")
=== wme_sample_pixel.dll ===
Standard "sample_pixel" plugin, shipped with WME 1.x.


= 2.5D games =
Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_sample_pixel
== Alpha Polaris ==
=== wme_steam.dll ===
Standard Steam API plugin.


Steam game ID is '''405780'''.
GetSupportedClasses() exports one class: '''SamplePixel'''.


Required property: '''SteamAvailable''' (game checks if it's true)
Shipped with 2 games:
* [[Alimardan's Mischief]]
* [[Alimardan Meets Merlin]]


Required method: '''SetAchievement''' (to set 18 achievements)
Seems to be unused in all of them.


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


== Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest ==
=== wme_snow.dll ===
Standard "snow" plugin, shipped with WME 1.x.


Shipped with wme_report.dll, which is the standard report library, not a plugin.
Source: https://github.com/retrowork/Wintermute-Engine/tree/master/src/plugin/wme_snow


=== wme_commandlinehelper.dll ===
GetSupportedClasses() exports one class: '''Snow'''.
Commandline helper plugin by [[Corbomite Games]]


GetSupportedClasses() exports one class: '''CommandLineHelper'''
Shipped with 3 games:
* [[Alimardan's Mischief]]
* [[Alimardan Meets Merlin]]
* [[Beyond the Threshold]]


Required property: '''Parameters''' (passed to String(), then Split(" ") is called )
Seems to be unused in all of them.


TODO: reimplement this for ResidualVM.
Currently no need to reimplement this for ScummVM.  


== The Lost Crown - A Ghost-Hunting Adventure ==
== Other plugins ==
=== wme_steam.dll ===
=== wme_stone.dll ===
Standard Steam API plugin.
wme_stone.dll is mentioned in SpriteEdit.log of reversion3.


Steam game ID is '''291710'''.
This dll is not packaged with the game, however it exists at least at developer's PC.


Required method: '''SetAchievement''' (to set 34 achievements)
Seems to be unused.

Latest revision as of 23:02, 12 June 2021

This page lists known plugins for Wintermute games.

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: 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:

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:

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:

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.