Difference between revisions of "029C"

From GTAMods Wiki
Jump to navigation Jump to search
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
{{Icon|3}} '''IS_BOAT'''
+
{{OpCode
<hr />
+
| games      = {{Icon|3}}
'''Description'''
+
| command    = IS_BOAT
: Checks if the vehicle is a boat
+
| description = Checks if the vehicle is a boat
'''Syntax'''
+
| syntax1    = 029C: &nbsp; is [''car handle''] boat
: 029C: &nbsp; is [''car handle''] boat
+
| p1t        = [''car handle'']
'''Parameter'''
+
| p1d        = The handle of the vehicle
: [''car handle'']
+
}}
:: The handle of the vehicle
 
  
This opcode returns true if the vehicle is of type boat. Legacy documentations had incorrectly described this opcode as "car stopped," which had remained uncorrected for a long time.
+
This conditional opcode returns true if the vehicle is of [[CARS (IDE Section)#GTA III|type]] boat. Legacy documentations had incorrectly described this opcode as "car stopped," which had remained uncorrected for a long time.
  
 
== For Vice City ==
 
== For Vice City ==
 
This opcode does not exist in Vice City but the game can recognize vehicles by type. 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 the game can recognize vehicles by type. 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:
<syntaxhighlight lang="scm">:opcode_029C
+
{{Pre|class=sb-code|1=
05E7: 0@ = car 0@ struct
+
<span class="nl">:opcode_029C</span>
0@ += 0x29C  // vehicle type offset
+
05E7: <span class="nv">0@</span> = car <span class="nv">0@</span> struct
05E0: 0@ = read_memory 0@ size 1 virtual_protect 0
+
<span class="nv">0@</span> += <span class="m">0x29C</span> <span class="c1">// vehicle type offset</span>
  0@ == 1  // is type boat
+
05E0: <span class="nv">0@</span> = read_memory <span class="nv">0@</span> size <span class="m">1</span> virtual_protect <span class="m">0</span>
05F6: ret 0</syntaxhighlight>
+
    <span class="nv">0@</span> == <span class="m">1</span> <span class="c1">// is type boat</span>
Use this line as a substitute for opcode 029C. This can be placed anywhere within the external script as a conditional statement.
+
05F6: ret <span class="m">0</span>
<syntaxhighlight lang="scm">// ...
+
}}
if
+
 
  05F5: call_scm_func @opcode_029C inputs 1 car_handle [car handle]
+
Use this line as a substitute for opcode 029C. This can be placed anywhere within the external script as a conditional statement:
then
+
{{Pre|class=sb-code|1=
  // [RETURNED TRUE]
+
<span class="c1">// ...</span>
else
+
<span class="k">if</span>
  // [RETURNED FALSE]
+
    05F5: call_scm_func <span class="nl">@opcode_029C</span> inputs <span class="m">1</span> car_handle [car handle]
end
+
<span class="k">then</span>
// ...</syntaxhighlight>
+
    <span class="c1">// [RETURNED TRUE]</span>
 +
<span class="k">else</span>
 +
    <span class="c1">// [RETURNED FALSE]</span>
 +
<span class="k">end</span>
 +
<span class="c1">// ...</span>
 +
}}
  
 
== Keywords ==
 
== Keywords ==
 
check, stopped, car, boat
 
check, stopped, car, boat
 
[[Category:OpCodes]][[Category:Code Snippets]]
 

Latest revision as of 06:45, 12 December 2016

GTA III IS_BOAT


Description
Checks if the vehicle is a boat
Syntax
029C:   is [car handle] boat
Parameter
[car handle]
The handle of the vehicle

This conditional opcode returns true if the vehicle is of type boat. Legacy documentations had incorrectly described this opcode as "car stopped," which had remained uncorrected for a long time.

For Vice City

This opcode does not exist in Vice City but the game can recognize vehicles by type. 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_029C
05E7: 0@ = car 0@ struct
0@ += 0x29C  // vehicle type offset
05E0: 0@ = read_memory 0@ size 1 virtual_protect 0
    0@ == 1  // is type boat
05F6: ret 0

Use this line as a substitute for opcode 029C. This can be placed anywhere within the external script as a conditional statement:

// ...
if
    05F5: call_scm_func @opcode_029C inputs 1 car_handle [car handle]
then
    // [RETURNED TRUE]
else
    // [RETURNED FALSE]
end
// ...

Keywords

check, stopped, car, boat