Mission Builder

From GTAModding
Jump to: navigation, search
Mission Builder
Current version:San Andreas 0.33
Vice City 1.5
GTA III 5.0
Developed by:User.pngBarton Waterduck
Supported games:GTA 3, GTA VC, GTA SA
Type:script editor

Mission Builder is a common name for three different tools developed by Barton Waterduck. These tools are GTA 3 Mission Builder, VC Mission Builder and SA Mission Builder.

Mission Builder uses only opcodes to compile the code, all the text on the line is ignored. Traditionally, it decompiles to a file called main.scm.txt, which is just a big text file with all the code in it, expanded to be readable. This tool used to be the most popular MB until Sanny Builder was released. This project is abandoned and the creator retired.

Code format

Early builders used data type identifiers on all numbers, these were

 ? - small int (data type 04)
& - medium int (data type 05)
&& - big int (data type 01)
££ - global jump (data type 01)
£ - mission jump (data type 01 - negative addressing)
! - integer (data type 06)
$ - global variable (data type 02)
@ - local variable (data type 03)
?? - DMA global variable (like a global variable, only its memory position is its name, not assigned to it - data type 02)
: - label (text directly after used to reference this label in jumps)
"" - string (no data type, first 8 bytes after opcode when compiled)
# - model identifier (means you can enter the id name of a model rather than the number - data type 05 for the compiled number)

Later versions of the builder got rid of number type definitions, assigning types based on the size of the number. Integers were made integers by being not a whole number (e.g. 10.5 or 10.0 if you want a whole number defined as an integer). They also replaced DMA variables with global variables where the name was the hex address in decimal divided by 4 (each variable uses 4 bytes of memory).

Features

Advantages
Commands related to the parameters.
Macros and program execution facilities inbuilt.
Disadvantages
Not widely used anymore
Creator retired (no future updates / bug fixes).
Decompilation bugs (especially in certain advanced jumps).
Many unofficially usable SCM features uncatered for (although these are mostly advanced problems never experienced by the average coder).
Inconvenient syntax.
Other notes
GUI.
Compiler inbuilt.

See also