Difference between revisions of "0299"

From GTAMods Wiki
Jump to navigation Jump to search
m
m
Line 1: Line 1:
{{Icon|3}} {{Icon|SA}} '''ACTIVATE_GARAGE'''
+
{{OpCode
<hr />
+
| games      = {{Icon|3}} {{Icon|SA}}
<onlyinclude>{{#ifeq:{{{transcludesection|opcode}}}|opcode|
+
| command    = ACTIVATE_GARAGE
'''Description'''
+
| description = Activates a [[garage]]
: Activates a [[garage]]
+
| syntax1    = {{Icon|3}} 0299: activate_garage [''garage handle'']
'''Syntax'''
+
| syntax2    = {{Icon|SA}} 0299: activate_garage '[''string'']'
: {{Icon|3}} 0299: activate_garage [''garage handle'']
+
| syntax3    = {{Icon|SA}} Garage.Activate( '[''string'']' )
: {{Icon|SA}} 0299: activate_garage [''string'']
+
| p1t        = [''garage handle'']
: {{Icon|SA}} Garage.Activate( [''string''] )
+
| p1d        = The [[Garage#GTA III 2|handle of the garage]], for GTA III
'''Parameter'''
+
| p2t        = [''string'']
: [''garage handle'']
+
| p2d        = The [[Garage#San Andreas 2|name of the garage]], for San Andreas (max size 7 characters)
:: The [[Garage#GTA III 2|handle of the garage]], for GTA III
+
}}
: [''string'']
 
:: The [[Garage#San Andreas 2|name of the garage]], for San Andreas (max size 8 characters)
 
  
This opcode activates a garage that is deactivated through opcode [[02B9]]. In GTA III for [[Garage#GTA III|garage type 11]], this opcode has an additional function of allowing the door of the garage to open.
+
This opcode activates a garage that has been deactivated through opcode [[02B9]]. In GTA III for [[Garage#GTA III|garage type 11]], this opcode has an additional function of allowing the door of the garage to open.
}}</onlyinclude>
 
  
 
== For Vice City ==
 
== 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 [[02B9#For Vice City|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:
 
This opcode does not exist in Vice City, but garages do not ever deactivate in the game without using the code snippet for [[02B9#For Vice City|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:
<source lang="scm">
+
<syntaxhighlight lang="scm">
 
:opcode_0299
 
:opcode_0299
 
// 0@ - input param (garage handle)
 
// 0@ - input param (garage handle)
Line 40: Line 37:
 
05DF: write_memory 0@ size 1 value 0 virtual_protect 0  // activate garage
 
05DF: write_memory 0@ size 1 value 0 virtual_protect 0  // activate garage
 
05F6: ret 0
 
05F6: ret 0
</source>
+
</syntaxhighlight>
 +
 
 
Use this line as a substitute for opcode 0299. This can be placed anywhere within the external script:
 
Use this line as a substitute for opcode 0299. This can be placed anywhere within the external script:
<source lang="scm">
+
<syntaxhighlight lang="scm">
05F5: call_scm_func @opcode_0299 inputs 1 garage_handle {garage handle}
+
05F5: call_scm_func @opcode_0299 inputs 1 garage_handle [garage handle]
// change {garage handle} to the actual handle of the garage, e.g., $655 for the Links View Apartment garage
+
</syntaxhighlight>
</source>
 
  
 
== Keywords ==
 
== Keywords ==
Line 52: Line 49:
 
== External link ==
 
== External link ==
 
* {{GTAF|post|107998|1060971605|Detailed post for unique garage behavior in GTA III}}
 
* {{GTAF|post|107998|1060971605|Detailed post for unique garage behavior in GTA III}}
 
[[Category:OpCodes]][[Category:Code Snippets]]
 

Revision as of 17:46, 10 November 2016

GTA III San Andreas ACTIVATE_GARAGE


Description
Activates a 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 (max size 7 characters)

This opcode activates a garage that has been 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
// 0@ - input param (garage handle)
0@ *= 0xA8  // size of each garage block
0@ += 0x812668  // add to beginning of garage block
05E0: 1@ = read_memory 0@ size 1 virtual_protect 0  // read garage type
if
    1@ == 11  // is garage type 11
then
    0@ += 1  // door state offset
    05E0: 1@ = read_memory 0@ size 1 virtual_protect 0  // read garage door state
    if
        1@ == 0  // is door closed
    then
        05DF: write_memory 0@ size 1 value 3 virtual_protect 0  // open garage door
    end
    0@ -= 1
end
0@ += 5  // activation offset
05DF: write_memory 0@ 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