0299

From GTAModding
Jump to: navigation, search

GTA III San Andreas ACTIVATE_GARAGE


Description
Activates the garage
Syntax
GTA III 0299: activate_garage [garage handle]
San Andreas 0299: activate_garage '[string]'
San Andreas Garage.Activate( '[string]' )
Parameter
[garage handle]
The handle of the garage, for GTA III
[string]
The name of the garage, for San Andreas

This opcode activates the garage, which can be deactivated through opcode 02B9. In GTA III for garage type 11, this opcode has an additional function of allowing the door of the garage to open.

For Vice City

This opcode does not exist in Vice City, but garages do not ever deactivate in the game without using the code snippet for simulating opcode 02B9. The following example, using Sanny Builder with CLEO for Vice City in an external script (not the main one), and tested on US v1.0, should work similarly to this opcode. Place this at the end of the file:

:opcode_0299
// [email protected] - input param (garage handle)
[email protected] *= 0xA8  // size of each garage block
[email protected] += 0x812668  // add to beginning of garage block
05E0: [email protected] = read_memory [email protected] size 1 virtual_protect 0  // read garage type
if
    [email protected] == 11  // is garage type 11
then
    [email protected] += 1  // door state offset
    05E0: [email protected] = read_memory [email protected] size 1 virtual_protect 0  // read garage door state
    if
        [email protected] == 0  // is door closed
    then
        05DF: write_memory [email protected] size 1 value 3 virtual_protect 0  // open garage door
    end
    [email protected] -= 1
end
[email protected] += 5  // activation offset
05DF: write_memory [email protected] size 1 value 0 virtual_protect 0  // activate garage
05F6: ret 0

Use this line as a substitute for opcode 0299. This can be placed anywhere within the external script:

05F5: call_scm_func @opcode_0299 inputs 1 garage_handle [garage handle]

Keywords

set, garage, activate, enable

External link