Files
Rex-EMoolator-docs/docs/en/reference/APPLICATION.md
Patryk Gensch df6cf2f3d3
Some checks failed
docs / deploy (push) Has been cancelled
docs / build (push) Has been cancelled
Added part of docs
2026-05-19 20:51:59 +02:00

4.1 KiB

APPLICATION

The application object — the top of the script hierarchy. Declared in Application.def as the first object; lists the episodes and points to the one to start with.

Fields

EPISODES

STRING EPISODES

The list of episode names (EPISODE) that make up the application, separated by commas. The analysed games typically contain a single entry.

PATH

STRING PATH

Path relative to the dane directory where the application's files live. Used by the engine when locating the .CNV file bound to the application (see Loading subsequent files).

STARTWITH

STRING STARTWITH

Name of the episode the engine will start the game with.

Metadata

The following fields are stored in the script as metadata and do not directly affect engine behaviour:

  • AUTHOR — file author.
  • BLOOMOO_VERSION — BlooMoo engine version.
  • CREATIONTIME — file creation date.
  • DESCRIPTION — application description.
  • LASTMODIFYTIME — file last-modification date.
  • VERSION — application version.

Methods

EXIT

void EXIT()

Terminates the application.

Examples

GAME^EXIT();

GETLANGUAGE

STRING GETLANGUAGE()

Returns the application's currently selected language. Defaults to "POL".

Returns: the language code.

Examples

UFO^GETLANGUAGE();

RUN

mixed RUN(STRING varName, STRING methodName, [mixed param1, ..., mixed paramN])

Invokes the method methodName on the variable varName, forwarding the remaining arguments. The return value is whatever the called method returns. This is the engine's dynamic-dispatch mechanism — both the target variable and the method can be selected at runtime.

Parameters

  • varName — name of the target variable.
  • methodName — name of the method to invoke.
  • param1, …, paramN — (optional) arguments forwarded to the call.

Returns: the value returned by the invoked method.

Examples

UFO^RUN(VARSTRINGTEMP, "SETASBUTTON", FALSE, FALSE);
UFO^RUN(VARSTRINGTEMP, "HIDE");
UFO^RUN(["ANIMO"+$1], "HIDE");
UFO^RUN($1, "PLAY", $2);
UFO^RUN(ARRCARS^GET(VARPLAYER), "SETPRIORITY", ARRPRIORITY^GET(VARPLAYER));

RUNENV

mixed RUNENV(STRING sceneName, STRING behaviourName)

Calls the procedure behaviourName, but only when the currently active scene has the name sceneName. Otherwise the method has no effect. Useful for procedures that only make sense in a particular scene context.

Parameters

  • sceneName — name of the scene in which the procedure must run.
  • behaviourName — name of the procedure to call.

Returns: the value returned by the procedure, or NULL if the scene guard was not satisfied.

Examples

GAME^RUNENV(SCENENAME, "__HELPSTART__");
GAME^RUNENV(SCENENAME, "B_PAUSE_START");
GAME^RUNENV(SCENENAME, "__CUTINIT__");

SETLANGUAGE

void SETLANGUAGE(STRING languageCode)

Sets the application's language code. The engine maps the passed Windows LCID code to an internal language identifier per the table below:

LCID Language Internal ID Subfolder
0415 Polish 1 POL
0405 Czech 2 CZE
0402 Bulgarian 3 BUL
0418 Romanian 4 ROM
0419 Russian 5 RUS
040E Hungarian 6 HUN
041B Slovak 7 SLO
0422 Ukrainian 8 UKR

The selected identifier determines the localised-assets subfolder the engine consults when loading game files (see Loading subsequent files). Identifiers 9, 10, and 11 (set through paths other than SETLANGUAGE) all map to the NIEM subfolder — the German-language build. Any identifier outside the listed range yields an empty subfolder. Setting the language also re-initialises the keyboard layout.

Parameters

  • languageCode — the LCID as a four-digit hexadecimal number.

Examples

UFO^SETLANGUAGE("0415");
UFO^SETLANGUAGE("040E");
UFO^SETLANGUAGE("0419");