Open main menu

Difference between revisions of "Wintermute/Externals"

no edit summary
(Created page with "This page lists known external functions for most Wintermute games. WME allows game scripts to call external functions from DLL libraries. This way game...")
 
Line 8: Line 8:
=== getURLContent ===
=== getURLContent ===
Used to download news headlines at Demo 2012 of James Peris
Used to download news headlines at Demo 2012 of James Peris
HTTP GET result is stored in 3rd param of the call as a plain string
HTTP GET result is stored in 3rd param of the call as a plain string
Specification: external "geturl.dll" cdecl getURLContent(string, string, string)
Specification: external "geturl.dll" cdecl getURLContent(string, string, string)
Known usage: getURLContent("http://www.lacosaweb.com", <DirURL>, <Buffer>)
Known usage: getURLContent("http://www.lacosaweb.com", <DirURL>, <Buffer>)
Sets 3rd param to "Request Error." on error
Sets 3rd param to "Request Error." on error


Line 16: Line 20:
=== SetValueToReg ===
=== SetValueToReg ===
Used to switch game's windowed/fullscreen mode at games by HeroCraft
Used to switch game's windowed/fullscreen mode at games by HeroCraft
Specification: external "tools.dll" cdecl SetValueToReg(string, string, long)
Specification: external "tools.dll" cdecl SetValueToReg(string, string, long)
Known usage: SetValueToReg("Software\HeroCraft\<GameID>\Video", "Windowed", 1)
Known usage: SetValueToReg("Software\HeroCraft\<GameID>\Video", "Windowed", 1)


=== changeWindowCaption ===
=== changeWindowCaption ===
Used to change game's window caption at games by HeroCraft
Used to change game's window caption at games by HeroCraft
Specification: external "img.dll" cdecl changeWindowCaption(long, string)
Specification: external "img.dll" cdecl changeWindowCaption(long, string)
Known usage: changeWindowCaption(Game.Hwnd, <Title>)
Known usage: changeWindowCaption(Game.Hwnd, <Title>)


=== maximizedWindow ===
=== maximizedWindow ===
Used to change game's window size at games by HeroCraft
Used to change game's window size at games by HeroCraft
Specification: external "img.dll" cdecl maximizedWindow(long, long, long)
Specification: external "img.dll" cdecl maximizedWindow(long, long, long)
Known usage: maximizedWindow(Game.Hwnd, 1024, 768)
Known usage: maximizedWindow(Game.Hwnd, 1024, 768)


Line 32: Line 42:
=== ShellExecuteA ===
=== ShellExecuteA ===
Used to open URL in browser at Wilma Tetris
Used to open URL in browser at Wilma Tetris
Specification: external "shell32.dll" stdcall long ShellExecuteA(long, string, string, string, string, long)
Specification: external "shell32.dll" stdcall long ShellExecuteA(long, string, string, string, string, long)
Known usage: ShellExecuteA(0, "open", <URL>, "", "", 3)
Known usage: ShellExecuteA(0, "open", <URL>, "", "", 3)
Returns value >32 on success
Returns value >32 on success


Line 41: Line 54:
=== _InstallUtilAnsi@0 ===
=== _InstallUtilAnsi@0 ===
Used to check if DVD is inserted at Art of Murder: FBI Confidential
Used to check if DVD is inserted at Art of Murder: FBI Confidential
Specification: external "installutil.dll" stdcall long _InstallUtilAnsi@0()
Specification: external "installutil.dll" stdcall long _InstallUtilAnsi@0()
Known usage: _InstallUtilAnsi@0()
Known usage: _InstallUtilAnsi@0()
Returns 1 on success, other value on fail (which leads to Game.QuitGame() in non-Debug mode)
Returns 1 on success, other value on fail (which leads to Game.QuitGame() in non-Debug mode)


Line 48: Line 64:
=== IRC_init ===
=== IRC_init ===
Used to connect to debug IRC server at games by Corbomite Games
Used to connect to debug IRC server at games by Corbomite Games
Specification: external "dlltest.dll" cdecl long IRC_init(string)
Specification: external "dlltest.dll" cdecl long IRC_init(string)
Known usage: IRC_init(<PlayerName>)
Known usage: IRC_init(<PlayerName>)
Known actions:
Known actions:
1. Connect to irc.starchat.net
1. Connect to irc.starchat.net
2. Send "NICK ZU_<PlayerName>/"
2. Send "NICK ZU_<PlayerName>/"
3. Send "USER Blah ZbengHost ZbengServer ZbengRealname"
3. Send "USER Blah ZbengHost ZbengServer ZbengRealname"
4. Send "Join #Zbeng"
4. Send "Join #Zbeng"
Returns 0 on success, other value on error
Returns 0 on success, other value on error


=== ChangeNick ===
=== ChangeNick ===
Used to update nick at debug IRC server at games by Corbomite Games
Used to update nick at debug IRC server at games by Corbomite Games
Specification: external "dlltest.dll" cdecl long ChangeNick(string)
Specification: external "dlltest.dll" cdecl long ChangeNick(string)
Known usage: ChangeNick(<PlayerName>)
Known usage: ChangeNick(<PlayerName>)
Return value is never used
Return value is never used


=== IRC_SendString ===
=== IRC_SendString ===
Used to send debug and chat lines to an IRC server at games by Corbomite Games
Used to send debug and chat lines to an IRC server at games by Corbomite Games
Specification: external "dlltest.dll" cdecl IRC_SendString(string, string)
Specification: external "dlltest.dll" cdecl IRC_SendString(string, string)
Known usage: IRC_SendString(<Message>, <Channel>)
Known usage: IRC_SendString(<Message>, <Channel>)
Known Channel values are: "#Zbeng" and "#ZbengDebug"
Known Channel values are: "#Zbeng" and "#ZbengDebug"


=== IRC_GetChatStrings ===
=== IRC_GetChatStrings ===
Used to get chat lines from an IRC server at games by Corbomite Games
Used to get chat lines from an IRC server at games by Corbomite Games
Specification: external "dlltest.dll" cdecl IRC_GetChatStrings(string, long)
Specification: external "dlltest.dll" cdecl IRC_GetChatStrings(string, long)
Known usage: IRC_GetChatStrings(<Buffer>, 65535)
Known usage: IRC_GetChatStrings(<Buffer>, 65535)


=== IRC_quit ===
=== IRC_quit ===
Used to disconnect from debug IRC server at games by Corbomite Games
Used to disconnect from debug IRC server at games by Corbomite Games
Specification: external "dlltest.dll" cdecl IRC_quit()
Specification: external "dlltest.dll" cdecl IRC_quit()
Known usage: IRC_quit()
Known usage: IRC_quit()


=== LoadLibraryA ===
=== LoadLibraryA ===
Used for checking library availability at games by Corbomite Games
Used for checking library availability at games by Corbomite Games
Specification: external "kernel32.dll" stdcall long LoadLibraryA(string)
Specification: external "kernel32.dll" stdcall long LoadLibraryA(string)
Known usage: LoadLibraryA("httpconnect.dll"), LoadLibraryA("dlltest.dll")
Known usage: LoadLibraryA("httpconnect.dll"), LoadLibraryA("dlltest.dll")
Return values are only compared with zero and are never used in other APIs
Return values are only compared with zero and are never used in other APIs


=== FreeLibrary ===
=== FreeLibrary ===
Declared at games by Corbomite Games
Declared at games by Corbomite Games
Seems to be unused, probably was used for unloading IRC & HTTP libraries
Seems to be unused, probably was used for unloading IRC & HTTP libraries
Specification: external "kernel32.dll" stdcall FreeLibrary(long)
Specification: external "kernel32.dll" stdcall FreeLibrary(long)


=== GetEnvironmentVariableA ===
=== GetEnvironmentVariableA ===
Used for getting environment variables at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Used for getting environment variables at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Specification: external "kernel32.dll" stdcall long GetEnvironmentVariableA(string, string, long)
Specification: external "kernel32.dll" stdcall long GetEnvironmentVariableA(string, string, long)
Known usage: GetEnvironmentVariableA(<EnvName>, <buffer>, 65535)
Known usage: GetEnvironmentVariableA(<EnvName>, <buffer>, 65535)
Known EnvName values used in debug code: "USERKEY", "ALTUSERNAME", "ENHFINGERPRINT", "EXTRAINFO", "FINGERPRINT", "KEYSTRING", "STOLENKEY", "TRIAL"
Known EnvName values used in debug code: "USERKEY", "ALTUSERNAME", "ENHFINGERPRINT", "EXTRAINFO", "FINGERPRINT", "KEYSTRING", "STOLENKEY", "TRIAL"
Known EnvName values used in licensing code: "FULLGAME"
Known EnvName values used in licensing code: "FULLGAME"


=== Register ===
=== Register ===
Used to register license key online at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Used to register license key online at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Specification: external "httpconnect.dll" cdecl long Register(string, long, string, long)
Specification: external "httpconnect.dll" cdecl long Register(string, long, string, long)
Known usage: Register(<productId>, 65535, <productKey>, 65535)
Known usage: Register(<productId>, 65535, <productKey>, 65535)
Known product ID values are: "357868", "353058" and "353006"
Known product ID values are: "357868", "353058" and "353006"
Known action: HTTP GET http://keygen.corbomitegames.com/keygen/validateKey.php?action=REGISTER&productId=productId&key=productKey
Known action: HTTP GET http://keygen.corbomitegames.com/keygen/validateKey.php?action=REGISTER&productId=productId&key=productKey
Returns 1  on success
Returns 1  on success
Returns 0  on firewall error
Returns 0  on firewall error
Returns -1  on invalid product key
Returns -1  on invalid product key
Returns -2  on invalid product ID
Returns -2  on invalid product ID
Returns -3  on expired product key
Returns -3  on expired product key
Returns -4  on invalid machine ID
Returns -4  on invalid machine ID
Returns -5  on number of installations exceeded
Returns -5  on number of installations exceeded
Returns -6  on socket error
Returns -6  on socket error
Returns -7  on no internet connection
Returns -7  on no internet connection
Returns -8  on connection reset
Returns -8  on connection reset
Returns -11 on validation temporary unavaliable
Returns -11 on validation temporary unavaliable
Returns -12 on validation error
Returns -12 on validation error
For some reason always returns -7 for me in a test game
For some reason always returns -7 for me in a test game


=== Validate ===
=== Validate ===
Used to validate something at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Used to validate something at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Specification: external "httpconnect.dll" cdecl long Validate()
Specification: external "httpconnect.dll" cdecl long Validate()
Known usage: Validate()
Known usage: Validate()
Known action: HTTP GET http://keygen.corbomitegames.com/keygen/validateKey.php?action=VALIDATE&productId=Ar&key=Ar
Known action: HTTP GET http://keygen.corbomitegames.com/keygen/validateKey.php?action=VALIDATE&productId=Ar&key=Ar
Used only when Debug mode is active or game is started with "INVALID" cmdline parameter
Used only when Debug mode is active or game is started with "INVALID" cmdline parameter
For some reason always returns 1 for me in a test game
For some reason always returns 1 for me in a test game


=== SendHTTPAsync ===
=== SendHTTPAsync ===
Used to send game progress events to server at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Used to send game progress events to server at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Specification: external "httpconnect.dll" cdecl long SendHTTPAsync(string, long, string, long, string, long)
Specification: external "httpconnect.dll" cdecl long SendHTTPAsync(string, long, string, long, string, long)
Known usage: SendHTTPAsync("backend.pizzamorgana.com", 65535, <FullURL>, 65535, <Buffer?!>, 65535)
Known usage: SendHTTPAsync("backend.pizzamorgana.com", 65535, <FullURL>, 65535, <Buffer?!>, 65535)
FullURL is formed as "http://backend.pizzamorgana.com/event.php?Event=<EventName>&player=<PlayerName>&extraParams=<ExtraParams>&SN=<ProductKey>&Episode=1&GameTime=<CurrentTime>&UniqueID=<UniqueId>"
FullURL is formed as "http://backend.pizzamorgana.com/event.php?Event=<EventName>&player=<PlayerName>&extraParams=<ExtraParams>&SN=<ProductKey>&Episode=1&GameTime=<CurrentTime>&UniqueID=<UniqueId>"
Known EventName values are: "GameStart", "ChangeGoal", "EndGame" and "QuitGame"
Known EventName values are: "GameStart", "ChangeGoal", "EndGame" and "QuitGame"
Known ExtraParams values are: "ACT0", "ACT1", "ACT2", "ACT3", "ACT4", "Ep0FindFood", "Ep0FindCellMenu", "Ep0BroRoom", "Ep0FindKey", "Ep0FindCellMenuKey", "Ep0FindMenuKey", "Ep0FindCell", "Ep0FindMenu", "Ep0OrderPizza", "Ep0GetRidOfVamp", "Ep0GetVampAttention", "Ep0License"
Known ExtraParams values are: "ACT0", "ACT1", "ACT2", "ACT3", "ACT4", "Ep0FindFood", "Ep0FindCellMenu", "Ep0BroRoom", "Ep0FindKey", "Ep0FindCellMenuKey", "Ep0FindMenuKey", "Ep0FindCell", "Ep0FindMenu", "Ep0OrderPizza", "Ep0GetRidOfVamp", "Ep0GetVampAttention", "Ep0License"
Return value is never used
Return value is never used


=== SendRecvHTTP (6 params variant) ===
=== SendRecvHTTP (6 params variant) ===
Declared at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Declared at Pizza Morgana: Episode 1 - Monsters and Manipulations in the Magical Forest
Seems to be unused, probably SendRecvHTTP was initially used instead of SendHTTPAsync
Seems to be unused, probably SendRecvHTTP was initially used instead of SendHTTPAsync
Specification: external "httpconnect.dll" cdecl long SendRecvHTTP(string, long, string, long, string, long)
Specification: external "httpconnect.dll" cdecl long SendRecvHTTP(string, long, string, long, string, long)
Always returns -7 for me in a test game, probably returns the same network errors as Register()
Always returns -7 for me in a test game, probably returns the same network errors as Register()


=== SendRecvHTTP (4 params variant) ===
=== SendRecvHTTP (4 params variant) ===
Used to call HTTP methods at Zbang! The Game
Used to call HTTP methods at Zbang! The Game
Specification: external "httpconnect.dll" cdecl long SendRecvHTTP(string, long, string, long)
Specification: external "httpconnect.dll" cdecl long SendRecvHTTP(string, long, string, long)
Known usage: SendRecvHTTP("scoresshort.php?player=<PlayerName>", 65535, <Buffer>, 65535)
Known usage: SendRecvHTTP("scoresshort.php?player=<PlayerName>", 65535, <Buffer>, 65535)
Known usage: SendRecvHTTP("/update.php?player=<PlayerName>&difficulty=<Difficulty>&items=<CommaSeparatedItemList>", 65535, <Buffer>, 65535)
Known usage: SendRecvHTTP("/update.php?player=<PlayerName>&difficulty=<Difficulty>&items=<CommaSeparatedItemList>", 65535, <Buffer>, 65535)
My Zbang demo does not have this dll, so there is no way to actually test it with a test game
My Zbang demo does not have this dll, so there is no way to actually test it with a test game
Return value is never used in Zbang scripts
Return value is never used in Zbang scripts
234

edits