Like it's predecessor, CPA, Jade uses a C-like proprietary scripting language for implementing game, object and world specific behaviours.
This language appears to be only typically used for development purposes, and instead as when a title is shipped, the scripting language will usually be converted into C/C++ and compiled natively for the target platform for better performance.
A basic guide on getting started with scripting in Jade is available here.
TODO: List all the functions of the language
With some of these, if you have an object variable, you can preface the function with @objectVariable to specify what the function is for.
OBJ_Me()
: A reference to the object the script is attached to.
OBJ_PosGet()
: Returns a vector of the position of an object
OBJ_PosSet(VECTOR)
: Sets object position to vector
OBJ_RotateLocalZ(FLOAT)
: Rotates an object locally around the z axis
OBJ_RotateLocalX(FLOAT)
: Rotates an object locally around the x axis
OBJ_RotateLocalY(FLOAT)
: Rotates an object locally around the y axis
OBJ_FlagInvisibleSet(INT)
: Disables the AI of an object with hiding it
OBJ_FlagInactiveSet(INT)
: Disables the AI of an object without hiding it
OBJ_FlagsIdentityTest(INT)
: returns int
OBJ_SightGet():
Returns vector of forward vector of the object
OBJ_Duplicate(VECTOR)
: Duplicates current object to location (?)
OBJ_Rotate_FromTo(VECTOR, VECTOR)
: Rotates an object from one rotation to another.
OBJ_Destroy()
: Destroys object
OBJ_MorphProgSet(INT, FLOAT)
: Determines the current frame of a shapekey/morph animation
OBJ_SqrDist(OBJECT)
: returns float, also gets the distance between objects?
TODO: List all the functions of the language
TODO: Explain the basic concepts of the language
Certain characters are laid out with multiple states and execs, which handles different parts of the character’s movement.
The function AI_TrackCurChangeNow()
changes the state.
AI_Execute()
executes other scripts, usually used for those with EXEC in the title.
Rayman’s States
raym_ETAT_main
:
rayman’s default state, handles code on whether or not rayman should switch to another state.
raym_ETAT_accroch
:
Rayman attached to something
raym_ETAT_cheat
:
Cheat mode, for devs
raym_ETAT_danse
:
Dancing
raym_ETAT_mort_AHahah
:
Rayman’s death
raym_ETAT_paf
:
Taking Damage
raym_ETAT_void
:
Blank state, does nothing
TODO: Explain the syntax of the language
TODO: List all the keywords of the language
TODO: List all the conditions of the language