SPR for Mac: Difference between revisions
(Created page with "This page provides information about nosamu's SPR for Mac. For information about the standard version of SPR, see its [https://github.com/FlashpointProject/Shockwave-Projecto...") |
m (Changed heading style to match the rest of the wiki) |
||
Line 2: | Line 2: | ||
For information about the standard version of SPR, see its [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint GitHub repository]. | For information about the standard version of SPR, see its [https://github.com/FlashpointProject/Shockwave-Projector-Redirector-for-Flashpoint GitHub repository]. | ||
= Latest Build - 2019-12-13 = | == Latest Build - 2019-12-13 == | ||
'''Download Build:''' https://bluepload.unstable.life/spr-mac-2019-12-13bin.zip | '''Download Build:''' https://bluepload.unstable.life/spr-mac-2019-12-13bin.zip | ||
'''Download Source:''' https://bluepload.unstable.life/spr-mac-2019-12-13src.zip | '''Download Source:''' https://bluepload.unstable.life/spr-mac-2019-12-13src.zip | ||
= Instructions for Building = | == Instructions for Building == | ||
# [http://valentin.dasdeck.com/lingo/d11.5/mac/Director11_5_WWE.zip Download and install Adobe Director 11.5]. | # [http://valentin.dasdeck.com/lingo/d11.5/mac/Director11_5_WWE.zip Download and install Adobe Director 11.5]. | ||
# Enter a serial number. Ask in the Discord if you're not sure how to obtain one. | # Enter a serial number. Ask in the Discord if you're not sure how to obtain one. | ||
Line 14: | Line 14: | ||
# In Adobe Director, open the file and click File -> Publish. | # In Adobe Director, open the file and click File -> Publish. | ||
= Supported LeechProtectionRemovalHelp Functions = | == Supported LeechProtectionRemovalHelp Functions == | ||
* <code>setTheMachineType</code>: Overrides the <code>machineType()</code> function. | * <code>setTheMachineType</code>: Overrides the <code>machineType()</code> function. | ||
* <code>setExternalParam</code>: Generates a Lingo propList of externalParams and overrides the <code>externalParamCount</code>, <code>externalParamName</code>, and <code>externalParamValue</code> functions to read from this propList. | * <code>setExternalParam</code>: Generates a Lingo propList of externalParams and overrides the <code>externalParamCount</code>, <code>externalParamName</code>, and <code>externalParamValue</code> functions to read from this propList. | ||
Line 22: | Line 22: | ||
* <code>disableGotoNetPage</code>: Overrides the <code>gotoNetPage</code> function with a function that does nothing. | * <code>disableGotoNetPage</code>: Overrides the <code>gotoNetPage</code> function with a function that does nothing. | ||
= Supported Lingo Functions = | == Supported Lingo Functions == | ||
* <code>do</code>: See SPR's GitHub repository. | * <code>do</code>: See SPR's GitHub repository. | ||
* <code>go</code>: See SPR's GitHub repository. | * <code>go</code>: See SPR's GitHub repository. | ||
* <putScriptText</code>: Adds a line of scriptText to the script that is inserted into each Director movie. | * <putScriptText</code>: Adds a line of scriptText to the script that is inserted into each Director movie. | ||
= How SPR for Mac works = | == How SPR for Mac works == | ||
SPR for Mac is powered by a Lingo script with a function corresponding to every LeechProtectionRemovalHelp function. Because most SPR functions are impossible to accomplish with pure Lingo, most functions in SPR for Mac's Lingo script do nothing. They exist purely to prevent a script error when an attempt is made to call a LeechProtectionRemovalHelp function. | SPR for Mac is powered by a Lingo script with a function corresponding to every LeechProtectionRemovalHelp function. Because most SPR functions are impossible to accomplish with pure Lingo, most functions in SPR for Mac's Lingo script do nothing. They exist purely to prevent a script error when an attempt is made to call a LeechProtectionRemovalHelp function. | ||
Revision as of 15:14, 13 December 2019
This page provides information about nosamu's SPR for Mac. For information about the standard version of SPR, see its GitHub repository.
Latest Build - 2019-12-13
Download Build: https://bluepload.unstable.life/spr-mac-2019-12-13bin.zip Download Source: https://bluepload.unstable.life/spr-mac-2019-12-13src.zip
Instructions for Building
- Download and install Adobe Director 11.5.
- Enter a serial number. Ask in the Discord if you're not sure how to obtain one.
- Install the Adobe Director 11.5.9 update.
- Download Valentin's CommandLine Xtra.
- Copy
CommandLine.xtra</code into
/Applications/Adobe Director 11/Configuration/Xtras
. - In Adobe Director, open the file and click File -> Publish.
Supported LeechProtectionRemovalHelp Functions
setTheMachineType
: Overrides the machineType()
function.
setExternalParam
: Generates a Lingo propList of externalParams and overrides the externalParamCount
, externalParamName
, and externalParamValue
functions to read from this propList.
forceTheExitLock
: Sets the exitLock
Lingo property after going to the first Director movie. This is usually ineffective because it does not "force" the exitLock, and games are still able to set the property.
forceTheSafePlayer
: If it receives a value of 1, it sets the safePlayer
property to True. Because the safePlayer cannot be turned off once it is turned on, this accomplishes the same thing as "forcing" the property. However, unlike LeechProtectionRemovalHelp, this cannot force the safePlayer off.
disableGotoNetMovie
: Overrides the gotoNetMovie
function with a function that does nothing.
disableGotoNetPage
: Overrides the gotoNetPage
function with a function that does nothing.
Supported Lingo Functions
do
: See SPR's GitHub repository.go
: See SPR's GitHub repository.<putScriptText
: Adds a line of scriptText to the script that is inserted into each Director movie.
How SPR for Mac works
SPR for Mac is powered by a Lingo script with a function corresponding to every LeechProtectionRemovalHelp function. Because most SPR functions are impossible to accomplish with pure Lingo, most functions in SPR for Mac's Lingo script do nothing. They exist purely to prevent a script error when an attempt is made to call a LeechProtectionRemovalHelp function.
Any built-in Lingo function can be overridden simply by creating a custom Lingo function with the same name. SPR for Mac can create functions to replace, and thus disable, gotoNetMovie
and gotoNetPage
.
A few Lingo properties that LeechProtectionRemovalHelp can set have corresponding Lingo getter functions. When the value of a property with a getter function is accessed, that getter function is always called. Since any built-in Lingo function can be overridden, any property with a getter function can be overridden with Lingo alone. Many of SPR for Mac's functions take advantage of this.
SPR for Mac inserts a script into the first movie that it goes to. This script includes dummy functions for each LeechProtectionRemovalHelp function to prevent script errors when LeechProtectionRemovalHelp functions are called. The putScriptText
function allows the user to add lines of scriptText to this default script. This allows the user to define or even override Lingo functions inside of a game.
The script that SPR for Mac inserts includes *self-replication functionality*. This works by overriding the default Lingo go
function. When go
is called, the script will navigate to the next movie using _movie.go
and copy itself into the new movie. However, if the Director movie itself calls _movie.go
instead of go
, this functionality does not work.