Difference between revisions of "Hyperjump"

From GTAMods Wiki
Jump to navigation Jump to search
m
m
 
(6 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Hyperjump|SCM|SA}}
+
A '''Hyperjump''', '''Insane Stunt''', or '''Stunt Jump''' is a script that displays, records, and rewards "insane stunt bonuses." See [[create a thread]] on how to implement it into a script that do not have this implemented already.
 +
== GTA III ==
 +
This code is based directly from [http://gtamodding.ru/wiki/Hj GTA III's source code]. This can be compiled using [[Sanny Builder]].
 +
<div style="overflow: auto;"><syntaxhighlight lang="scm">
 +
var
 +
$CAR_PLAYER_IS_IN_HJ : int
 +
$FLAG_TAKEOFF_HJ : int
 +
$HEIGHT_INT_HJ : int
 +
$FLAG_WHEELS_HJ : int
 +
$STUNT_FLAGS_HJ : int
 +
$FLAG_CAR_UPSIDEDOWN_HJ : int
 +
$COUNTER_STUNT_ROLLS_HJ : int
 +
$HEIGHT_DECIMALS_INT_HJ : int
 +
$DISTANCE_DECIMALS_INT_HJ : int
 +
$JUMPDISTANCE_INT_HJ : int
 +
$COUNTER_LAND_ON_WHEELS_HJ : int
 +
$COUNTER_WHEELS_HJ : int
 +
$TOTAL_ROTATION_INT : int
 +
$LONGEST_FLIGHT_TIME : int
 +
$GOT_FLIGHT_START : int
 +
$FLIGHT_TIMER_START : int
 +
$FLIGHT_TIMER_END : int
 +
$FLIGHT_TIME : int
 +
$FLAG_FLIGHT_HJ : int
 +
$COLLISION_COUNTER : int
 +
$CASH_REWARD : int
 +
$CASH_REWARD_TEMP : int
 +
$HEIGHT_FLOAT_HJ : float
 +
$X_FLOAT_HJ : float
 +
$Y_FLOAT_HJ : float
 +
$Z_FLOAT_HJ : float
 +
$TAKEOFF_X_FLOAT_HJ : float
 +
$TAKEOFF_Y_FLOAT_HJ : float
 +
$TAKEOFF_Z_FLOAT_HJ : float
 +
$JUMPEND_X_FLOAT_HJ : float
 +
$JUMPEND_Y_FLOAT_HJ : float
 +
$DIFFERENCE_X_FLOAT_HJ : float
 +
$DIFFERENCE_Y_FLOAT_HJ : float
 +
$SUM_DIFFERENCE_XY_HJ : float
 +
$JUMPDISTANCE_FLOAT_HJ : float
 +
$HEADING_HJ : float
 +
$TEMP_FLOAT : float
 +
$OLD_HEADING_HJ : float
 +
$HEADING_DIFFERENCE : float
 +
$HEADING_DIFFERENCE_TEMP : float
 +
$TOTAL_ROTATION : float
 +
end
 +
:HJ
 +
0111: set_wasted_busted_check_to 0
 +
03A4: name_thread 'HJ'
 +
$LONGEST_FLIGHT_TIME = 0
  
'''Hyperjumps''' or '''Insane Stunts''' are a little script. You can add it to your SCM using the following snippet.
+
:MISSION_START_HJ
Make sure you use the original gxt-tables, or only gxt-tables where stuff is added!
+
wait 0
 
+
if
=Creating the Thread=
+
    8256:  not player $PLAYER defined
 
+
then
Add a new thread to your Main-Thread, called '''HJ_1''':
+
    jump @MISSION_START_HJ
 
+
end
  004F: create_thread @HJ_1
+
if
 
+
    0445:  are_car_cheats_used
Normaly this line is added where all other generic threads are startet. So if you dont use a strippet SCM search the other threadstarts!
+
then
 
+
    jump @MISSION_START_HJ
=Adding the Code=
+
end
 
+
if
Then copy the following code-snippet and add it under you main thread:
+
    00E0:  player $PLAYER in_any_car
 
+
then
==Sanny Builder 2.99==
+
    03C1: $CAR_PLAYER_IS_IN_HJ = player $PLAYER car
 +
    if
 +
        829C:  not is $CAR_PLAYER_IS_IN_HJ boat
 +
    then
 +
        if
 +
            01F3:  car $CAR_PLAYER_IS_IN_HJ airborne
 +
        then
 +
            $TOTAL_ROTATION_INT = 0
 +
            $HEADING_HJ = 0.0
 +
            $FLAG_WHEELS_HJ = 0
 +
            $COUNTER_LAND_ON_WHEELS_HJ = 0
 +
            $COUNTER_STUNT_ROLLS_HJ = 0
 +
            $FLAG_CAR_UPSIDEDOWN_HJ = 0
 +
            $COUNTER_WHEELS_HJ = 0
 +
            $STUNT_FLAGS_HJ = 0
 +
            $FLAG_TAKEOFF_HJ = 0
 +
            $HEIGHT_INT_HJ = 0
 +
            $HEIGHT_FLOAT_HJ = -100.0
 +
            $X_FLOAT_HJ = 0.0
 +
            $Y_FLOAT_HJ = 0.0
 +
            $Z_FLOAT_HJ = 0.0
 +
            $TAKEOFF_X_FLOAT_HJ = 0.0
 +
            $TAKEOFF_Y_FLOAT_HJ = 0.0
 +
            $TAKEOFF_Z_FLOAT_HJ = 0.0
 +
            $JUMPEND_X_FLOAT_HJ = 0.0
 +
            $JUMPEND_Y_FLOAT_HJ = 0.0
 +
            $DIFFERENCE_X_FLOAT_HJ = 0.0
 +
            $DIFFERENCE_Y_FLOAT_HJ = 0.0
 +
            $SUM_DIFFERENCE_XY_HJ = 0.0
 +
            $JUMPDISTANCE_FLOAT_HJ = 0.0
 +
            $JUMPDISTANCE_INT_HJ = 0
 +
            $DISTANCE_DECIMALS_INT_HJ = 0
 +
            $HEIGHT_DECIMALS_INT_HJ = 0
 +
            $TEMP_FLOAT = 0.0
 +
            $HEADING_DIFFERENCE = 0.0
 +
            $TOTAL_ROTATION = 0.0
 +
            $HEADING_DIFFERENCE_TEMP = 0.0
 +
            $OLD_HEADING_HJ = 0.0
 +
            $GOT_FLIGHT_START = 0
 +
            $FLIGHT_TIMER_START = 0
 +
            $FLIGHT_TIMER_END = 0
 +
            $FLIGHT_TIME = 0
 +
            $FLAG_FLIGHT_HJ = 0
 +
            $COLLISION_COUNTER = 0
 +
            if
 +
                0137:  car $CAR_PLAYER_IS_IN_HJ id == #DODO
 +
            then
 +
                jump @DODO_FLIGHT_TIME
 +
            end
 +
            while true
 +
                if or
 +
                    01F3:  car $CAR_PLAYER_IS_IN_HJ airborne
 +
                    10 > $COLLISION_COUNTER
 +
                then
 +
                    $COLLISION_COUNTER += 1
 +
                    00AA: store_car $CAR_PLAYER_IS_IN_HJ position_to $X_FLOAT_HJ $Y_FLOAT_HJ $Z_FLOAT_HJ
 +
                    $OLD_HEADING_HJ = $HEADING_HJ
 +
                    /**
 +
                    * Measure distance airbourne
 +
                    */
 +
                    if
 +
                        $FLAG_TAKEOFF_HJ == 0
 +
                    then
 +
                        0174: $OLD_HEADING_HJ = car $CAR_PLAYER_IS_IN_HJ z_angle
 +
                        $TAKEOFF_X_FLOAT_HJ = $X_FLOAT_HJ
 +
                        $TAKEOFF_Y_FLOAT_HJ = $Y_FLOAT_HJ
 +
                        $TAKEOFF_Z_FLOAT_HJ = $Z_FLOAT_HJ
 +
                        $FLAG_TAKEOFF_HJ = 1
 +
                    end
 +
                    wait 0
 +
                    if
 +
                        0119:  car $CAR_PLAYER_IS_IN_HJ wrecked
 +
                    then
 +
                        jump @MISSION_START_HJ
 +
                    end
 +
                    if
 +
                        8256:  not player $PLAYER defined
 +
                    then
 +
                        jump @MISSION_START_HJ
 +
                    end
 +
                    if
 +
                        80E0:  not player $PLAYER in_any_car
 +
                    then
 +
                        jump @MISSION_START_HJ
 +
                    end
 +
                    /**
 +
                    * Count the number of flips
 +
                    */
 +
                    if and
 +
                        820D:  not car $CAR_PLAYER_IS_IN_HJ flipped
 +
                        $FLAG_CAR_UPSIDEDOWN_HJ == 0
 +
                    then
 +
                        $FLAG_CAR_UPSIDEDOWN_HJ = 1
 +
                    end
 +
                    if and
 +
                        020D:  car $CAR_PLAYER_IS_IN_HJ flipped
 +
                        $FLAG_CAR_UPSIDEDOWN_HJ == 1
 +
                    then
 +
                        $COUNTER_STUNT_ROLLS_HJ += 1
 +
                        $FLAG_CAR_UPSIDEDOWN_HJ = 0
 +
                    end
 +
                    /**
 +
                    * Count the number of degrees of rotation
 +
                    */
 +
                    0174: $HEADING_HJ = car $CAR_PLAYER_IS_IN_HJ z_angle
 +
                    $HEADING_DIFFERENCE = $HEADING_HJ
 +
                    $HEADING_DIFFERENCE -= $OLD_HEADING_HJ
 +
                    if
 +
                        $HEADING_DIFFERENCE > 180.0
 +
                    then
 +
                        $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
 +
                        $HEADING_DIFFERENCE = 360.0
 +
                        $HEADING_DIFFERENCE -= $HEADING_DIFFERENCE_TEMP
 +
                    else
 +
                        if
 +
                            -180.0 > $HEADING_DIFFERENCE
 +
                        then
 +
                            $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
 +
                            $HEADING_DIFFERENCE = 360.0
 +
                            $HEADING_DIFFERENCE += $HEADING_DIFFERENCE_TEMP
 +
                        end
 +
                    end
 +
                    if
 +
                        0.0 > $HEADING_DIFFERENCE
 +
                    then
 +
                        $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
 +
                        $HEADING_DIFFERENCE = 0.0
 +
                        $HEADING_DIFFERENCE -= $HEADING_DIFFERENCE_TEMP
 +
                    end
 +
                    $TOTAL_ROTATION += $HEADING_DIFFERENCE
 +
                    008C: $TOTAL_ROTATION_INT = float_to_integer $TOTAL_ROTATION
 +
                    /**
 +
                    * Measure height
 +
                    */
 +
                    if
 +
                        $Z_FLOAT_HJ > $HEIGHT_FLOAT_HJ
 +
                    then
 +
                        $HEIGHT_FLOAT_HJ = $Z_FLOAT_HJ
 +
                    end
 +
                    $Z_FLOAT_HJ = 0.0
 +
                else
 +
                    break
 +
                end
 +
            end
 +
        else
 +
            jump @MISSION_START_HJ
 +
        end
 +
    else
 +
        jump @MISSION_START_HJ
 +
    end
 +
else
 +
    jump @MISSION_START_HJ
 +
end
 +
if
 +
    $FLAG_TAKEOFF_HJ == 1
 +
then
 +
    00AA: store_car $CAR_PLAYER_IS_IN_HJ position_to $JUMPEND_X_FLOAT_HJ $JUMPEND_Y_FLOAT_HJ $TEMP_FLOAT
 +
    /**
 +
    * Measure airbourne time when landing
 +
    */
 +
    while 90 > $COUNTER_LAND_ON_WHEELS_HJ
 +
        if
 +
            0119:  car $CAR_PLAYER_IS_IN_HJ wrecked
 +
        then
 +
            jump @MISSION_START_HJ
 +
        else
 +
            if
 +
                815E:  not car $CAR_PLAYER_IS_IN_HJ in_air
 +
            then
 +
                $COUNTER_WHEELS_HJ += 1
 +
            end
 +
        end
 +
        wait 0
 +
        if
 +
            8256:  not player $PLAYER defined
 +
        then
 +
            jump @MISSION_START_HJ
 +
        end
 +
        $COUNTER_LAND_ON_WHEELS_HJ += 1
 +
    end
 +
    $COUNTER_LAND_ON_WHEELS_HJ = 0
 +
    $DIFFERENCE_X_FLOAT_HJ = $TAKEOFF_X_FLOAT_HJ
 +
    $DIFFERENCE_X_FLOAT_HJ -= $JUMPEND_X_FLOAT_HJ
 +
    $DIFFERENCE_Y_FLOAT_HJ = $TAKEOFF_Y_FLOAT_HJ
 +
    $DIFFERENCE_Y_FLOAT_HJ -= $JUMPEND_Y_FLOAT_HJ
 +
    $DIFFERENCE_X_FLOAT_HJ *= $DIFFERENCE_X_FLOAT_HJ
 +
    $DIFFERENCE_Y_FLOAT_HJ *= $DIFFERENCE_Y_FLOAT_HJ
 +
    $SUM_DIFFERENCE_XY_HJ = $DIFFERENCE_X_FLOAT_HJ
 +
    $SUM_DIFFERENCE_XY_HJ += $DIFFERENCE_Y_FLOAT_HJ
 +
    01FB: $JUMPDISTANCE_FLOAT_HJ = square_root $SUM_DIFFERENCE_XY_HJ
 +
    030E: save_jump_distance $JUMPDISTANCE_FLOAT_HJ
 +
    008C: $JUMPDISTANCE_INT_HJ = float_to_integer $JUMPDISTANCE_FLOAT_HJ
 +
    $HEIGHT_FLOAT_HJ -= $TAKEOFF_Z_FLOAT_HJ
 +
    030F: save_jump_height $HEIGHT_FLOAT_HJ
 +
    008C: $HEIGHT_INT_HJ = float_to_integer $HEIGHT_FLOAT_HJ
 +
    008D: $TEMP_FLOAT = integer_to_float $JUMPDISTANCE_INT_HJ
 +
    $JUMPDISTANCE_FLOAT_HJ -= $TEMP_FLOAT
 +
    $TEMP_FLOAT = $JUMPDISTANCE_FLOAT_HJ
 +
    $TEMP_FLOAT *= 100.0
 +
    008C: $DISTANCE_DECIMALS_INT_HJ = float_to_integer $TEMP_FLOAT
 +
    008D: $TEMP_FLOAT = integer_to_float $HEIGHT_INT_HJ
 +
    $HEIGHT_FLOAT_HJ -= $TEMP_FLOAT
 +
    $TEMP_FLOAT = $HEIGHT_FLOAT_HJ
 +
    $TEMP_FLOAT *= 100.0
 +
    008C: $HEIGHT_DECIMALS_INT_HJ = float_to_integer $TEMP_FLOAT
 +
    0310: save_jump_flips $COUNTER_STUNT_ROLLS_HJ
 +
    0311: save_jump_rotation $TOTAL_ROTATION_INT
 +
end
 +
/**
 +
* 4 meters high
 +
*/
 +
if
 +
    // $HEIGHT_FLOAT_HJ > 4.0  // Original code erroneous
 +
    $HEIGHT_INT_HJ > 4  // Enables quadruple insane stunt bonuses
 +
then
 +
    $STUNT_FLAGS_HJ += 1
 +
end
 +
/**
 +
* 30 meters long
 +
*/
 +
if
 +
    0018:  $JUMPDISTANCE_INT_HJ > 30
 +
then
 +
    $STUNT_FLAGS_HJ += 1
 +
end
 +
/**
 +
* 1 rolls/flips in mid air
 +
*/
 +
if
 +
    0018:  $COUNTER_STUNT_ROLLS_HJ > 0
 +
then
 +
    $STUNT_FLAGS_HJ += 1
 +
end
 +
/**
 +
* 360 spin in mid air
 +
*/
 +
if
 +
    0018:  $TOTAL_ROTATION_INT > 360
 +
then
 +
    $STUNT_FLAGS_HJ += 1
 +
end
 +
/**
 +
* Land on wheels
 +
*/
 +
if
 +
    0018:  $COUNTER_WHEELS_HJ > 60
 +
then
 +
    $FLAG_WHEELS_HJ = 1
 +
end
 +
if
 +
    0018:  $STUNT_FLAGS_HJ > 0
 +
then
 +
    /**
 +
    * Cash reward
 +
    */
 +
    $CASH_REWARD = $COUNTER_STUNT_ROLLS_HJ
 +
    $CASH_REWARD *= 180
 +
    $CASH_REWARD += $TOTAL_ROTATION_INT
 +
    $CASH_REWARD_TEMP = $JUMPDISTANCE_INT_HJ
 +
    $CASH_REWARD_TEMP *= 6
 +
    $CASH_REWARD += $CASH_REWARD_TEMP
 +
    $CASH_REWARD_TEMP = $HEIGHT_INT_HJ
 +
    $CASH_REWARD_TEMP *= 45
 +
    $CASH_REWARD += $CASH_REWARD_TEMP
 +
    /**
 +
    * Double the reward if landed on wheels
 +
    */
 +
    if
 +
        $FLAG_WHEELS_HJ == 1
 +
    then
 +
        $CASH_REWARD *= 2
 +
    end
 +
    $CASH_REWARD *= $STUNT_FLAGS_HJ
 +
    $CASH_REWARD /= 3
 +
    0109: player $PLAYER money += $CASH_REWARD
 +
    /**
 +
    * Display text
 +
    */
 +
    if and
 +
        $STUNT_FLAGS_HJ == 1
 +
        $FLAG_WHEELS_HJ == 0
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_IS' $CASH_REWARD 2000 ms 1  // INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 1
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 1
 +
        $FLAG_WHEELS_HJ == 1
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_PIS' $CASH_REWARD 2000 ms 1  // PERFECT INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 2
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 2
 +
        $FLAG_WHEELS_HJ == 0
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_DIS' $CASH_REWARD 2000 ms 1  // DOUBLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 3
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 2
 +
        $FLAG_WHEELS_HJ == 1
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_PDIS' $CASH_REWARD 2000 ms 1  // PERFECT DOUBLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 4
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 3
 +
        $FLAG_WHEELS_HJ == 0
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_TIS' $CASH_REWARD 2000 ms 1  // TRIPLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 5
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 3
 +
        $FLAG_WHEELS_HJ == 1
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_PTIS' $CASH_REWARD 2000 ms 1  // PERFECT TRIPLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 6
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 4
 +
        $FLAG_WHEELS_HJ == 0
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_QIS' $CASH_REWARD 2000 ms 1  // QUADRUPLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 7
 +
    end
 +
    if and
 +
        $STUNT_FLAGS_HJ == 4
 +
        $FLAG_WHEELS_HJ == 1
 +
    then
 +
        01E4: text_1number_lowpriority 'HJ_PQIS' $CASH_REWARD 3000 ms 1  // PERFECT QUADRUPLE INSANE STUNT BONUS: $~1~
 +
        0312: save_jump_type 8
 +
    end
 +
    if
 +
        0424:  metric
 +
    then
 +
        if
 +
            $FLAG_WHEELS_HJ == 1
 +
        then
 +
            0308: text_6numbers 'HJSTATW' $JUMPDISTANCE_INT_HJ $DISTANCE_DECIMALS_INT_HJ $HEIGHT_INT_HJ $HEIGHT_DECIMALS_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_ And what a great landing!
 +
        else
 +
            0308: text_6numbers 'HJSTAT' $JUMPDISTANCE_INT_HJ $DISTANCE_DECIMALS_INT_HJ $HEIGHT_INT_HJ $HEIGHT_DECIMALS_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5 // Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_
 +
        end
 +
    else
 +
        042D: $JUMPDISTANCE_INT_HJ = metric_to_imperial $JUMPDISTANCE_INT_HJ
 +
        042D: $HEIGHT_INT_HJ = metric_to_imperial $HEIGHT_INT_HJ
 +
        if
 +
            $FLAG_WHEELS_HJ == 1
 +
        then
 +
            0302: text_4numbers 'HJSTAWF' $JUMPDISTANCE_INT_HJ $HEIGHT_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_ And what a great landing!
 +
        else
 +
            0302: text_4numbers 'HJSTATF' $JUMPDISTANCE_INT_HJ $HEIGHT_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_
 +
        end
 +
    end
 +
end
 +
jump @MISSION_START_HJ
 +
/**
 +
* Measure flight time in Dodo
 +
*/
 +
:DODO_FLIGHT_TIME
 +
while 01F3:  car $CAR_PLAYER_IS_IN_HJ airborne
 +
    if
 +
        $GOT_FLIGHT_START == 0
 +
    then
 +
        01BD: $FLIGHT_TIMER_START = current_time_in_ms
 +
        $FLAG_FLIGHT_HJ = 1
 +
        $GOT_FLIGHT_START = 1
 +
    end
 +
    if
 +
        02BF:  car $CAR_PLAYER_IS_IN_HJ sunk
 +
    then
 +
        jump @CESSNA_FIGHT_BIT
 +
    end
 +
    wait 0
 +
    if
 +
        0119:  car $CAR_PLAYER_IS_IN_HJ wrecked
 +
    then
 +
        jump @MISSION_START_HJ
 +
    end
 +
    if
 +
        8256:  not player $PLAYER defined
 +
    then
 +
        jump @MISSION_START_HJ
 +
    end
 +
    if
 +
        80E0:  not player $PLAYER in_any_car
 +
    then
 +
        jump @MISSION_START_HJ
 +
    end
 +
end
 +
/**
 +
* Record Dodo flight time
 +
*/
 +
:CESSNA_FIGHT_BIT
 +
if
 +
    $FLAG_FLIGHT_HJ == 1
 +
then
 +
    01BD: $FLIGHT_TIMER_END = current_time_in_ms
 +
    $FLIGHT_TIME = $FLIGHT_TIMER_END
 +
    $FLIGHT_TIME -= $FLIGHT_TIMER_START
 +
    $FLIGHT_TIME /= 1000
 +
    if
 +
        $FLIGHT_TIME > 1
 +
    then
 +
        if
 +
            $FLIGHT_TIME > $LONGEST_FLIGHT_TIME
 +
        then
 +
            $LONGEST_FLIGHT_TIME = $FLIGHT_TIME
 +
        end
 +
        01E5: text_1number_highpriority 'DODO_FT' $FLIGHT_TIME 5000 ms 1  // You flew for ~1~ seconds!
 +
        0406: save_dodo_flight_time $FLIGHT_TIME
 +
    end
 +
end
 +
jump @MISSION_START_HJ
 +
</syntaxhighlight></div>
  
 +
== San Andreas ==
 +
===Sanny Builder 2.99===
 +
<source lang="scm" line>
 
  :HJ_1
 
  :HJ_1
 
  0111: set_wasted_busted_check_to  0 (disabled)
 
  0111: set_wasted_busted_check_to  0 (disabled)
Line 410: Line 878:
 
  :HJ_302
 
  :HJ_302
 
  0002: jump @HJ_2
 
  0002: jump @HJ_2
 +
</source>
  
==BW's Mission Builder 0.33==
+
===BW's Mission Builder 0.33===
 
+
<source lang="scm" line>
 
  :HJ_1
 
  :HJ_1
 
  0111: set_wasted_busted_check_to  0 (disabled)
 
  0111: set_wasted_busted_check_to  0 (disabled)
Line 805: Line 1,274:
 
  :HJ_302
 
  :HJ_302
 
  0002: jump ££HJ_2
 
  0002: jump ££HJ_2
 +
</source>
  
=Tools & Links=
+
== See also ==
 
+
* [[Quadruple insane stunt]]
*[http://www.gtagarage.com/mods/show.php?id=1071 BW's SA MissionBuilder 0.33]
 
*[http://www.sannybuilder.com/ Sanny Builder]
 
  
[[Category:GTA_SA]][[Category:Code Snippets]][[Category:SCM]]
+
[[Category:GTA SA]][[Category:GTA 3]][[Category:Code Snippets]][[Category:Mission Script]]

Latest revision as of 17:23, 3 January 2016

A Hyperjump, Insane Stunt, or Stunt Jump is a script that displays, records, and rewards "insane stunt bonuses." See create a thread on how to implement it into a script that do not have this implemented already.

GTA III

This code is based directly from GTA III's source code. This can be compiled using Sanny Builder.

var
$CAR_PLAYER_IS_IN_HJ : int
$FLAG_TAKEOFF_HJ : int
$HEIGHT_INT_HJ : int
$FLAG_WHEELS_HJ : int
$STUNT_FLAGS_HJ : int
$FLAG_CAR_UPSIDEDOWN_HJ : int
$COUNTER_STUNT_ROLLS_HJ : int
$HEIGHT_DECIMALS_INT_HJ : int
$DISTANCE_DECIMALS_INT_HJ : int
$JUMPDISTANCE_INT_HJ : int
$COUNTER_LAND_ON_WHEELS_HJ : int
$COUNTER_WHEELS_HJ : int
$TOTAL_ROTATION_INT : int
$LONGEST_FLIGHT_TIME : int
$GOT_FLIGHT_START : int
$FLIGHT_TIMER_START : int
$FLIGHT_TIMER_END : int
$FLIGHT_TIME : int
$FLAG_FLIGHT_HJ : int
$COLLISION_COUNTER : int
$CASH_REWARD : int
$CASH_REWARD_TEMP : int
$HEIGHT_FLOAT_HJ : float
$X_FLOAT_HJ : float
$Y_FLOAT_HJ : float
$Z_FLOAT_HJ : float
$TAKEOFF_X_FLOAT_HJ : float
$TAKEOFF_Y_FLOAT_HJ : float
$TAKEOFF_Z_FLOAT_HJ : float
$JUMPEND_X_FLOAT_HJ : float
$JUMPEND_Y_FLOAT_HJ : float
$DIFFERENCE_X_FLOAT_HJ : float
$DIFFERENCE_Y_FLOAT_HJ : float
$SUM_DIFFERENCE_XY_HJ : float
$JUMPDISTANCE_FLOAT_HJ : float
$HEADING_HJ : float
$TEMP_FLOAT : float
$OLD_HEADING_HJ : float
$HEADING_DIFFERENCE : float
$HEADING_DIFFERENCE_TEMP : float
$TOTAL_ROTATION : float
end
:HJ
0111: set_wasted_busted_check_to 0
03A4: name_thread 'HJ'
$LONGEST_FLIGHT_TIME = 0

:MISSION_START_HJ
wait 0
if
    8256:   not player $PLAYER defined
then
    jump @MISSION_START_HJ
end
if
    0445:   are_car_cheats_used
then
    jump @MISSION_START_HJ
end
if
    00E0:   player $PLAYER in_any_car
then
    03C1: $CAR_PLAYER_IS_IN_HJ = player $PLAYER car
    if
        829C:   not is $CAR_PLAYER_IS_IN_HJ boat
    then
        if
            01F3:   car $CAR_PLAYER_IS_IN_HJ airborne
        then
            $TOTAL_ROTATION_INT = 0
            $HEADING_HJ = 0.0
            $FLAG_WHEELS_HJ = 0
            $COUNTER_LAND_ON_WHEELS_HJ = 0
            $COUNTER_STUNT_ROLLS_HJ = 0
            $FLAG_CAR_UPSIDEDOWN_HJ = 0
            $COUNTER_WHEELS_HJ = 0
            $STUNT_FLAGS_HJ = 0
            $FLAG_TAKEOFF_HJ = 0
            $HEIGHT_INT_HJ = 0
            $HEIGHT_FLOAT_HJ = -100.0
            $X_FLOAT_HJ = 0.0
            $Y_FLOAT_HJ = 0.0
            $Z_FLOAT_HJ = 0.0
            $TAKEOFF_X_FLOAT_HJ = 0.0
            $TAKEOFF_Y_FLOAT_HJ = 0.0
            $TAKEOFF_Z_FLOAT_HJ = 0.0
            $JUMPEND_X_FLOAT_HJ = 0.0
            $JUMPEND_Y_FLOAT_HJ = 0.0
            $DIFFERENCE_X_FLOAT_HJ = 0.0
            $DIFFERENCE_Y_FLOAT_HJ = 0.0
            $SUM_DIFFERENCE_XY_HJ = 0.0
            $JUMPDISTANCE_FLOAT_HJ = 0.0
            $JUMPDISTANCE_INT_HJ = 0
            $DISTANCE_DECIMALS_INT_HJ = 0
            $HEIGHT_DECIMALS_INT_HJ = 0
            $TEMP_FLOAT = 0.0
            $HEADING_DIFFERENCE = 0.0
            $TOTAL_ROTATION = 0.0
            $HEADING_DIFFERENCE_TEMP = 0.0
            $OLD_HEADING_HJ = 0.0
            $GOT_FLIGHT_START = 0
            $FLIGHT_TIMER_START = 0
            $FLIGHT_TIMER_END = 0
            $FLIGHT_TIME = 0
            $FLAG_FLIGHT_HJ = 0
            $COLLISION_COUNTER = 0
            if
                0137:   car $CAR_PLAYER_IS_IN_HJ id == #DODO
            then
                jump @DODO_FLIGHT_TIME
            end
            while true
                if or
                    01F3:   car $CAR_PLAYER_IS_IN_HJ airborne
                    10 > $COLLISION_COUNTER
                then
                    $COLLISION_COUNTER += 1
                    00AA: store_car $CAR_PLAYER_IS_IN_HJ position_to $X_FLOAT_HJ $Y_FLOAT_HJ $Z_FLOAT_HJ
                    $OLD_HEADING_HJ = $HEADING_HJ
                    /**
                     * Measure distance airbourne
                     */
                    if
                        $FLAG_TAKEOFF_HJ == 0
                    then
                        0174: $OLD_HEADING_HJ = car $CAR_PLAYER_IS_IN_HJ z_angle
                        $TAKEOFF_X_FLOAT_HJ = $X_FLOAT_HJ
                        $TAKEOFF_Y_FLOAT_HJ = $Y_FLOAT_HJ
                        $TAKEOFF_Z_FLOAT_HJ = $Z_FLOAT_HJ
                        $FLAG_TAKEOFF_HJ = 1
                    end
                    wait 0
                    if
                        0119:   car $CAR_PLAYER_IS_IN_HJ wrecked
                    then
                        jump @MISSION_START_HJ
                    end
                    if
                        8256:   not player $PLAYER defined
                    then
                        jump @MISSION_START_HJ
                    end
                    if
                        80E0:   not player $PLAYER in_any_car
                    then
                        jump @MISSION_START_HJ
                    end
                    /**
                     * Count the number of flips
                     */
                    if and
                        820D:   not car $CAR_PLAYER_IS_IN_HJ flipped
                        $FLAG_CAR_UPSIDEDOWN_HJ == 0
                    then
                        $FLAG_CAR_UPSIDEDOWN_HJ = 1
                    end
                    if and
                        020D:   car $CAR_PLAYER_IS_IN_HJ flipped
                        $FLAG_CAR_UPSIDEDOWN_HJ == 1
                    then
                        $COUNTER_STUNT_ROLLS_HJ += 1
                        $FLAG_CAR_UPSIDEDOWN_HJ = 0
                    end
                    /**
                     * Count the number of degrees of rotation
                     */
                    0174: $HEADING_HJ = car $CAR_PLAYER_IS_IN_HJ z_angle
                    $HEADING_DIFFERENCE = $HEADING_HJ
                    $HEADING_DIFFERENCE -= $OLD_HEADING_HJ
                    if
                        $HEADING_DIFFERENCE > 180.0
                    then
                        $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
                        $HEADING_DIFFERENCE = 360.0
                        $HEADING_DIFFERENCE -= $HEADING_DIFFERENCE_TEMP
                    else
                        if
                            -180.0 > $HEADING_DIFFERENCE
                        then
                            $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
                            $HEADING_DIFFERENCE = 360.0
                            $HEADING_DIFFERENCE += $HEADING_DIFFERENCE_TEMP
                        end
                    end
                    if
                        0.0 > $HEADING_DIFFERENCE
                    then
                        $HEADING_DIFFERENCE_TEMP = $HEADING_DIFFERENCE
                        $HEADING_DIFFERENCE = 0.0
                        $HEADING_DIFFERENCE -= $HEADING_DIFFERENCE_TEMP
                    end
                    $TOTAL_ROTATION += $HEADING_DIFFERENCE
                    008C: $TOTAL_ROTATION_INT = float_to_integer $TOTAL_ROTATION
                    /**
                     * Measure height
                     */
                    if
                        $Z_FLOAT_HJ > $HEIGHT_FLOAT_HJ
                    then
                        $HEIGHT_FLOAT_HJ = $Z_FLOAT_HJ
                    end
                    $Z_FLOAT_HJ = 0.0
                else
                    break
                end
            end
        else
            jump @MISSION_START_HJ
        end
    else
        jump @MISSION_START_HJ
    end
else
    jump @MISSION_START_HJ
end
if
    $FLAG_TAKEOFF_HJ == 1
then
    00AA: store_car $CAR_PLAYER_IS_IN_HJ position_to $JUMPEND_X_FLOAT_HJ $JUMPEND_Y_FLOAT_HJ $TEMP_FLOAT
    /**
     * Measure airbourne time when landing
     */
    while 90 > $COUNTER_LAND_ON_WHEELS_HJ
        if
            0119:   car $CAR_PLAYER_IS_IN_HJ wrecked
        then
            jump @MISSION_START_HJ
        else
            if
                815E:   not car $CAR_PLAYER_IS_IN_HJ in_air
            then
                $COUNTER_WHEELS_HJ += 1
            end
        end
        wait 0
        if
            8256:   not player $PLAYER defined
        then
            jump @MISSION_START_HJ
        end
        $COUNTER_LAND_ON_WHEELS_HJ += 1
    end
    $COUNTER_LAND_ON_WHEELS_HJ = 0
    $DIFFERENCE_X_FLOAT_HJ = $TAKEOFF_X_FLOAT_HJ
    $DIFFERENCE_X_FLOAT_HJ -= $JUMPEND_X_FLOAT_HJ
    $DIFFERENCE_Y_FLOAT_HJ = $TAKEOFF_Y_FLOAT_HJ
    $DIFFERENCE_Y_FLOAT_HJ -= $JUMPEND_Y_FLOAT_HJ
    $DIFFERENCE_X_FLOAT_HJ *= $DIFFERENCE_X_FLOAT_HJ
    $DIFFERENCE_Y_FLOAT_HJ *= $DIFFERENCE_Y_FLOAT_HJ
    $SUM_DIFFERENCE_XY_HJ = $DIFFERENCE_X_FLOAT_HJ
    $SUM_DIFFERENCE_XY_HJ += $DIFFERENCE_Y_FLOAT_HJ
    01FB: $JUMPDISTANCE_FLOAT_HJ = square_root $SUM_DIFFERENCE_XY_HJ
    030E: save_jump_distance $JUMPDISTANCE_FLOAT_HJ
    008C: $JUMPDISTANCE_INT_HJ = float_to_integer $JUMPDISTANCE_FLOAT_HJ
    $HEIGHT_FLOAT_HJ -= $TAKEOFF_Z_FLOAT_HJ
    030F: save_jump_height $HEIGHT_FLOAT_HJ
    008C: $HEIGHT_INT_HJ = float_to_integer $HEIGHT_FLOAT_HJ
    008D: $TEMP_FLOAT = integer_to_float $JUMPDISTANCE_INT_HJ
    $JUMPDISTANCE_FLOAT_HJ -= $TEMP_FLOAT
    $TEMP_FLOAT = $JUMPDISTANCE_FLOAT_HJ
    $TEMP_FLOAT *= 100.0
    008C: $DISTANCE_DECIMALS_INT_HJ = float_to_integer $TEMP_FLOAT
    008D: $TEMP_FLOAT = integer_to_float $HEIGHT_INT_HJ
    $HEIGHT_FLOAT_HJ -= $TEMP_FLOAT
    $TEMP_FLOAT = $HEIGHT_FLOAT_HJ
    $TEMP_FLOAT *= 100.0
    008C: $HEIGHT_DECIMALS_INT_HJ = float_to_integer $TEMP_FLOAT
    0310: save_jump_flips $COUNTER_STUNT_ROLLS_HJ
    0311: save_jump_rotation $TOTAL_ROTATION_INT
end
/**
 * 4 meters high
 */
if
    // $HEIGHT_FLOAT_HJ > 4.0  // Original code erroneous
    $HEIGHT_INT_HJ > 4  // Enables quadruple insane stunt bonuses
then
    $STUNT_FLAGS_HJ += 1
end
/**
 * 30 meters long
 */
if
    0018:   $JUMPDISTANCE_INT_HJ > 30
then
    $STUNT_FLAGS_HJ += 1
end
/**
 * 1 rolls/flips in mid air
 */
if
    0018:   $COUNTER_STUNT_ROLLS_HJ > 0
then
    $STUNT_FLAGS_HJ += 1
end
/**
 * 360 spin in mid air
 */
if
    0018:   $TOTAL_ROTATION_INT > 360
then
    $STUNT_FLAGS_HJ += 1
end
/**
 * Land on wheels
 */
if
    0018:   $COUNTER_WHEELS_HJ > 60
then
    $FLAG_WHEELS_HJ = 1
end
if
    0018:   $STUNT_FLAGS_HJ > 0
then
    /**
     * Cash reward
     */
    $CASH_REWARD = $COUNTER_STUNT_ROLLS_HJ
    $CASH_REWARD *= 180
    $CASH_REWARD += $TOTAL_ROTATION_INT
    $CASH_REWARD_TEMP = $JUMPDISTANCE_INT_HJ
    $CASH_REWARD_TEMP *= 6
    $CASH_REWARD += $CASH_REWARD_TEMP
    $CASH_REWARD_TEMP = $HEIGHT_INT_HJ
    $CASH_REWARD_TEMP *= 45
    $CASH_REWARD += $CASH_REWARD_TEMP
    /**
     * Double the reward if landed on wheels
     */
    if
        $FLAG_WHEELS_HJ == 1
    then
        $CASH_REWARD *= 2
    end
    $CASH_REWARD *= $STUNT_FLAGS_HJ
    $CASH_REWARD /= 3
    0109: player $PLAYER money += $CASH_REWARD
    /**
     * Display text
     */
    if and
        $STUNT_FLAGS_HJ == 1
        $FLAG_WHEELS_HJ == 0
    then
        01E4: text_1number_lowpriority 'HJ_IS' $CASH_REWARD 2000 ms 1  // INSANE STUNT BONUS: $~1~
        0312: save_jump_type 1
    end
    if and
        $STUNT_FLAGS_HJ == 1
        $FLAG_WHEELS_HJ == 1
    then
        01E4: text_1number_lowpriority 'HJ_PIS' $CASH_REWARD 2000 ms 1  // PERFECT INSANE STUNT BONUS: $~1~
        0312: save_jump_type 2
    end
    if and
        $STUNT_FLAGS_HJ == 2
        $FLAG_WHEELS_HJ == 0
    then
        01E4: text_1number_lowpriority 'HJ_DIS' $CASH_REWARD 2000 ms 1  // DOUBLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 3
    end
    if and
        $STUNT_FLAGS_HJ == 2
        $FLAG_WHEELS_HJ == 1
    then
        01E4: text_1number_lowpriority 'HJ_PDIS' $CASH_REWARD 2000 ms 1  // PERFECT DOUBLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 4
    end
    if and
        $STUNT_FLAGS_HJ == 3
        $FLAG_WHEELS_HJ == 0
    then
        01E4: text_1number_lowpriority 'HJ_TIS' $CASH_REWARD 2000 ms 1  // TRIPLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 5
    end
    if and
        $STUNT_FLAGS_HJ == 3
        $FLAG_WHEELS_HJ == 1
    then
        01E4: text_1number_lowpriority 'HJ_PTIS' $CASH_REWARD 2000 ms 1  // PERFECT TRIPLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 6
    end
    if and
        $STUNT_FLAGS_HJ == 4
        $FLAG_WHEELS_HJ == 0
    then
        01E4: text_1number_lowpriority 'HJ_QIS' $CASH_REWARD 2000 ms 1  // QUADRUPLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 7
    end
    if and
        $STUNT_FLAGS_HJ == 4
        $FLAG_WHEELS_HJ == 1
    then
        01E4: text_1number_lowpriority 'HJ_PQIS' $CASH_REWARD 3000 ms 1  // PERFECT QUADRUPLE INSANE STUNT BONUS: $~1~
        0312: save_jump_type 8
    end
    if
        0424:   metric
    then
        if
            $FLAG_WHEELS_HJ == 1
        then
            0308: text_6numbers 'HJSTATW' $JUMPDISTANCE_INT_HJ $DISTANCE_DECIMALS_INT_HJ $HEIGHT_INT_HJ $HEIGHT_DECIMALS_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_ And what a great landing!
        else
            0308: text_6numbers 'HJSTAT' $JUMPDISTANCE_INT_HJ $DISTANCE_DECIMALS_INT_HJ $HEIGHT_INT_HJ $HEIGHT_DECIMALS_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~.~1~m Height: ~1~.~1~m Flips: ~1~ Rotation: ~1~_
        end
    else
        042D: $JUMPDISTANCE_INT_HJ = metric_to_imperial $JUMPDISTANCE_INT_HJ
        042D: $HEIGHT_INT_HJ = metric_to_imperial $HEIGHT_INT_HJ
        if
            $FLAG_WHEELS_HJ == 1
        then
            0302: text_4numbers 'HJSTAWF' $JUMPDISTANCE_INT_HJ $HEIGHT_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_ And what a great landing!
        else
            0302: text_4numbers 'HJSTATF' $JUMPDISTANCE_INT_HJ $HEIGHT_INT_HJ $COUNTER_STUNT_ROLLS_HJ $TOTAL_ROTATION_INT 5000 ms 5  // Distance: ~1~ft Height: ~1~ft Flips: ~1~ Rotation: ~1~_
        end
    end
end
jump @MISSION_START_HJ
/**
 * Measure flight time in Dodo
 */
:DODO_FLIGHT_TIME
while 01F3:   car $CAR_PLAYER_IS_IN_HJ airborne
    if
        $GOT_FLIGHT_START == 0
    then
        01BD: $FLIGHT_TIMER_START = current_time_in_ms
        $FLAG_FLIGHT_HJ = 1
        $GOT_FLIGHT_START = 1
    end
    if
        02BF:   car $CAR_PLAYER_IS_IN_HJ sunk
    then
        jump @CESSNA_FIGHT_BIT
    end
    wait 0
    if
        0119:   car $CAR_PLAYER_IS_IN_HJ wrecked
    then
        jump @MISSION_START_HJ
    end
    if
        8256:   not player $PLAYER defined
    then
        jump @MISSION_START_HJ
    end
    if
        80E0:   not player $PLAYER in_any_car
    then
        jump @MISSION_START_HJ
    end
end
/**
 * Record Dodo flight time
 */
:CESSNA_FIGHT_BIT
if
    $FLAG_FLIGHT_HJ == 1
then
    01BD: $FLIGHT_TIMER_END = current_time_in_ms
    $FLIGHT_TIME = $FLIGHT_TIMER_END
    $FLIGHT_TIME -= $FLIGHT_TIMER_START
    $FLIGHT_TIME /= 1000
    if
        $FLIGHT_TIME > 1
    then
        if
            $FLIGHT_TIME > $LONGEST_FLIGHT_TIME
        then
            $LONGEST_FLIGHT_TIME = $FLIGHT_TIME
        end
        01E5: text_1number_highpriority 'DODO_FT' $FLIGHT_TIME 5000 ms 1  // You flew for ~1~ seconds!
        0406: save_dodo_flight_time $FLIGHT_TIME
    end
end
jump @MISSION_START_HJ

San Andreas

Sanny Builder 2.99

 :HJ_1
 0111: set_wasted_busted_check_to  0 (disabled)
 03A4: name_thread 'HJ'
 
 :HJ_2
 0001: wait  0 ms
 00D6: if  0
 8256:   NOT   player $PLAYER_CHAR defined
 004D: jump_if_false @HJ_7
 0002: jump @HJ_2
 
 :HJ_7
 00D6: if  0
 0445:   improved_handling_cheat_used
 004D: jump_if_false @HJ_11
 0002: jump @HJ_2
 
 :HJ_11
 00D6: if  0
 09AE: $PLAYER_ACTOR 
 004D: jump_if_false @HJ_15
 0002: jump @HJ_2
 
 :HJ_15
 00D6: if  0
 04C8: $PLAYER_ACTOR 
 004D: jump_if_false @HJ_19
 0002: jump @HJ_2
 
 :HJ_19
 00D6: if  0
 04A7: $PLAYER_ACTOR 
 004D: jump_if_false @HJ_23
 0002: jump @HJ_2
 
 :HJ_23
 00D6: if  0
 00DD:   actor $PLAYER_ACTOR driving_vehicle_type #VORTEX
 004D: jump_if_false @HJ_27
 0002: jump @HJ_2
 
 :HJ_27
 00D6: if  0
 89E7:   NOT $PLAYER_CHAR 
 004D: jump_if_false @HJ_31
 0002: jump @HJ_2
 
 :HJ_31
 00D6: if  0
 00DF:   actor $PLAYER_ACTOR driving
 004D: jump_if_false @HJ_215
 03C0: $1290 = actor $PLAYER_ACTOR car
 04FC: store_stunt_data $PLAYER_CHAR two_wheels: $1319 $1323 wheelie: $1326 $1330 stoppie: $1333 $1337
 00D6: if  0
 0020:   $1323 >  0.0  // floating-point values
 004D: jump_if_false @HJ_58
 0014: $1319 /=  1000  // integer values
 008C: $1320 = float_to_integer $1323
 008D: $1324 = integer_to_float $1320
 0086: $1341 = $1323  // floating-point values only
 0061: $1341 -= $1324  // floating-point values
 0011: $1341 *=  100.0  // floating-point values
 008C: $1321 = float_to_integer $1341
 0084: $1289 = $1319  // integer values and handles
 0058: $1289 += $1320  // integer values
 0014: $1289 /=  2  // integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false @HJ_55
 0302: text_4numbers 'WHEEL01' $1289 $1320 $1321 $1319  3000 ms  1
 0002: jump @HJ_58
 
 :HJ_55
 0425: unknown_metric_stuff $1325 = $1323
 008C: $1322 = float_to_integer $1325
 02FF: text_3numbers 'WHEEL02' $1289 $1322 $1319 time  3000 ms  1
 
 :HJ_58
 00D6: if  0
 0020:   $1330 >  0.0  // floating-point values
 004D: jump_if_false @HJ_81
 0014: $1326 /=  1000  // integer values
 008C: $1327 = float_to_integer $1330
 008D: $1331 = integer_to_float $1327
 0086: $1341 = $1330  // floating-point values only
 0061: $1341 -= $1331  // floating-point values
 0011: $1341 *=  100.0  // floating-point values
 008C: $1328 = float_to_integer $1341
 0084: $1289 = $1327  // integer values and handles
 0010: $1289 *=  2  // integer values
 0014: $1289 /=  5  // integer values
 0014: $1289 /=  2  // integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false @HJ_78
 0302: text_4numbers 'WHEEL06' $1289 $1327 $1328 $1326  3000 ms  1
 0002: jump @HJ_81
 
 :HJ_78
 0425: unknown_metric_stuff $1332 = $1330
 008C: $1329 = float_to_integer $1332
 02FF: text_3numbers 'WHEEL07' $1289 $1329 $1326 time  3000 ms  1
 
 :HJ_81
 00D6: if  0
 0020:   $1337 >  0.0  // floating-point values
 004D: jump_if_false @HJ_102
 0014: $1333 /=  1000  // integer values
 008C: $1334 = float_to_integer $1337
 008D: $1338 = integer_to_float $1334
 0086: $1341 = $1337  // floating-point values only
 0061: $1341 -= $1338  // floating-point values
 0011: $1341 *=  100.0  // floating-point values
 008C: $1335 = float_to_integer $1341
 0084: $1289 = $1334  // integer values and handles
 0014: $1289 /=  2  // integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false @HJ_99
 0302: text_4numbers 'WHEEL11' $1289 $1334 $1335 $1333  3000 ms  1
 0002: jump @HJ_102
 
 :HJ_99
 0425: unknown_metric_stuff $1339 = $1337
 008C: $1336 = float_to_integer $1339
 02FF: text_3numbers 'WHEEL12' $1289 $1336 $1333 time  3000 ms  1
 
 :HJ_102
 00D6: if  0
 01F3:   car $1290 airborne
 004D: jump_if_false @HJ_213
 0004: $1300 =  0  // integer values
 0005: $1314 =  0.0  // floating-point values
 0004: $1293 =  0  // integer values
 0004: $1296 =  0  // integer values
 0004: $1295 =  0  // integer values
 0004: $1294 =  0  // integer values
 0004: $1291 =  0  // integer values
 0004: $1292 =  0  // integer values
 0005: $1304 = -100.0  // floating-point values
 0005: $1305 =  0.0  // floating-point values
 0005: $1306 =  0.0  // floating-point values
 0005: $1307 =  0.0  // floating-point values
 0005: $1308 =  0.0  // floating-point values
 0005: $1309 =  0.0  // floating-point values
 0005: $1310 =  0.0  // floating-point values
 0005: $1311 =  0.0  // floating-point values
 0005: $1312 =  0.0  // floating-point values
 0005: $1313 =  0.0  // floating-point values
 0004: $1299 =  0  // integer values
 0004: $1298 =  0  // integer values
 0004: $1297 =  0  // integer values
 0005: $1341 =  0.0  // floating-point values
 0005: $1316 =  0.0  // floating-point values
 0005: $1318 =  0.0  // floating-point values
 0005: $1317 =  0.0  // floating-point values
 0005: $1315 =  0.0  // floating-point values
 0004: $1301 =  0  // integer values
 0004: $1340 =  0  // integer values
 
 :HJ_133
 00D6: if  21
 01F3:   car $1290 airborne
 001A:    10 > $1301  // integer values
 004D: jump_if_false @HJ_212
 0008: $1301 +=  1  // integer values
 00AA: store_car $1290 position_to $1305 $1306 $1307
 0086: $1315 = $1314  // floating-point values only
 00D6: if  0
 0038:   $1291 ==  0  // integer values
 004D: jump_if_false @HJ_148
 0174: $1315 = car $1290 z_angle
 0086: $1308 = $1305  // floating-point values only
 0086: $1309 = $1306  // floating-point values only
 0086: $1310 = $1307  // floating-point values only
 0004: $1291 =  1  // integer values
 
 :HJ_148
 0001: wait  0 ms
 00D6: if  0
 0119:   car $1290 wrecked
 004D: jump_if_false @HJ_153
 0002: jump @HJ_2
 
 :HJ_153
 00D6: if  0
 8256:   NOT   player $PLAYER_CHAR defined
 004D: jump_if_false @HJ_157
 0002: jump @HJ_2
 
 :HJ_157
 00D6: if  0
 80DF:   NOT   actor $PLAYER_ACTOR driving
 004D: jump_if_false @HJ_161
 0002: jump @HJ_2
 
 :HJ_161
 00D6: if  1
 820D:   NOT   car $1290 flipped
 0038:   $1295 ==  0  // integer values
 004D: jump_if_false @HJ_166
 0004: $1295 =  1  // integer values
 
 :HJ_166
 00D6: if  1
 020D:   car $1290 flipped
 0038:   $1295 ==  1  // integer values
 004D: jump_if_false @HJ_172
 0008: $1296 +=  1  // integer values
 0004: $1295 =  0  // integer values
 
 :HJ_172
 0174: $1314 = car $1290 z_angle
 0086: $1316 = $1314  // floating-point values only
 0061: $1316 -= $1315  // floating-point values
 00D6: if  0
 0020:   $1316 >  180.0  // floating-point values
 004D: jump_if_false @HJ_182
 0086: $1317 = $1316  // floating-point values only
 0005: $1316 =  360.0  // floating-point values
 0061: $1316 -= $1317  // floating-point values
 0002: jump @HJ_188
 
 :HJ_182
 00D6: if  0
 0022:   -180.0 > $1316  // floating-point values
 004D: jump_if_false @HJ_188
 0086: $1317 = $1316  // floating-point values only
 0005: $1316 =  360.0  // floating-point values
 0059: $1316 += $1317  // floating-point values
 
 :HJ_188
 00D6: if  0
 0022:    0.0 > $1316  // floating-point values
 004D: jump_if_false @HJ_194
 0086: $1317 = $1316  // floating-point values only
 0005: $1316 =  0.0  // floating-point values
 0061: $1316 -= $1317  // floating-point values
 
 :HJ_194
 0059: $1318 += $1316  // floating-point values
 008C: $1300 = float_to_integer $1318
 00D6: if  0
 0024:   $1307 > $1304  // floating-point values only
 004D: jump_if_false @HJ_200
 0086: $1304 = $1307  // floating-point values only
 
 :HJ_200
 0005: $1307 =  0.0  // floating-point values
 00D6: if  0
 0038:   $1340 ==  0  // integer values
 004D: jump_if_false @HJ_211
 00AA: store_car $1290 position_to $1311 $1312 $1341
 0509: $1341 = distance between point $1308 $1309 and point $1311 $1312
 00D6: if  0
 0020:   $1341 >  20.0  // floating-point values
 004D: jump_if_false @HJ_211
 09AB: $1290  37 
 0004: $1340 =  1  // integer values
 
 :HJ_211
 0002: jump @HJ_133
 
 :HJ_212
 0002: jump @HJ_214
 
 :HJ_213
 0002: jump @HJ_2
 
 :HJ_214
 0002: jump @HJ_216
 
 :HJ_215
 0002: jump @HJ_2
 
 :HJ_216
 00D6: if  0
 0038:   $1291 ==  1  // integer values
 004D: jump_if_false @HJ_238
 00AA: store_car $1290 position_to $1311 $1312 $1341
 0509: $1313 = distance between point $1308 $1309 and point $1311 $1312
 0628:  139 $1313 
 008C: $1299 = float_to_integer $1313
 0061: $1304 -= $1310  // floating-point values
 0628:  140 $1304 
 008C: $1292 = float_to_integer $1304
 008D: $1341 = integer_to_float $1299
 0061: $1313 -= $1341  // floating-point values
 0086: $1341 = $1313  // floating-point values only
 0011: $1341 *=  100.0  // floating-point values
 008C: $1298 = float_to_integer $1341
 008D: $1341 = integer_to_float $1292
 0061: $1304 -= $1341  // floating-point values
 0086: $1341 = $1304  // floating-point values only
 0011: $1341 *=  100.0  // floating-point values
 008C: $1297 = float_to_integer $1341
 0627:  141 $1296 
 0627:  142 $1300
 
 :HJ_238
 00D6: if  0
 0020:   $1304 >  4.0  // floating-point values
 004D: jump_if_false @HJ_242
 0008: $1294 +=  1  // integer values
 
 :HJ_242
 00D6: if  0
 
 :End_Thread_A_CONT_and_A_ALAP
 0018:   $1299 >  40  // integer values
 004D: jump_if_false @HJ_246
 0008: $1294 +=  1  // integer values
 
 :HJ_246
 00D6: if  0
 0018:   $1296 >  1  // integer values
 004D: jump_if_false @HJ_250
 0008: $1294 +=  1  // integer values
 
 :HJ_250
 00D6: if  0
 0018:   $1300 >  360  // integer values
 004D: jump_if_false @HJ_254
 0008: $1294 +=  1  // integer values
 
 :HJ_254
 00D6: if  0
 0018:   $1294 >  0  // integer values
 004D: jump_if_false @HJ_302
 0084: $1302 = $1296  // integer values and handles
 0010: $1302 *=  180  // integer values
 0058: $1302 += $1300  // integer values
 0084: $1303 = $1299  // integer values and handles
 0010: $1303 *=  6  // integer values
 0058: $1302 += $1303  // integer values
 0084: $1303 = $1292  // integer values and handles
 0010: $1303 *=  45  // integer values
 0058: $1302 += $1303  // integer values
 00D6: if  0
 0038:   $1293 ==  1  // integer values
 004D: jump_if_false @HJ_270
 0010: $1302 *=  2  // integer values
 
 :HJ_270
 0068: $1302 *= $1294  // integer values
 0014: $1302 /=  3  // integer values
 0014: $1302 /=  5  // integer values
 0109: player $PLAYER_CHAR money += $1302
 00D6: if  0
 0038:   $1294 ==  1  // integer values
 004D: jump_if_false @HJ_279
 01E4: text_1number_lowpriority 'HJ_IS' $1302  2000 ms  1
 0627:  143  1 
 
 :HJ_279
 00D6: if  0
 0038:   $1294 ==  2  // integer values
 004D: jump_if_false @HJ_284
 01E4: text_1number_lowpriority 'HJ_DIS' $1302  2000 ms  1
 0627:  143  3 
 
 :HJ_284
 00D6: if  0
 0038:   $1294 ==  3  // integer values
 004D: jump_if_false @HJ_289
 01E4: text_1number_lowpriority 'HJ_TIS' $1302  2000 ms  1
 0627:  143  5 
 
 :HJ_289
 00D6: if  0
 0038:   $1294 ==  4  // integer values
 004D: jump_if_false @HJ_294
 01E4: text_1number_lowpriority 'HJ_QIS' $1302  2000 ms  1
 0627:  143  7 
 
 :HJ_294
 00D6: if  0
 0424:   metric
 004D: jump_if_false @HJ_299
 0308: text_6numbers 'HJSTAT' $1299 $1298 $1292 $1297 $1296 $1300  5000 ms  5
 0002: jump @HJ_302
 
 :HJ_299
 042D: $1299 = metric_to_imperial $1299
 042D: $1292 = metric_to_imperial $1292
 0302: text_4numbers 'HJSTATF' $1299 $1292 $1296 $1300  5000 ms  5
 
 :HJ_302
 0002: jump @HJ_2

BW's Mission Builder 0.33

 :HJ_1
 0111: set_wasted_busted_check_to  0 (disabled)
 03A4: name_thread 'HJ'
 
 :HJ_2
 0001: wait  0 ms
 00D6: if  0
 8256:   NOT   player $PLAYER_CHAR defined
 004D: jump_if_false ££HJ_7
 0002: jump ££HJ_2
 
 :HJ_7
 00D6: if  0
 0445:   improved_handling_cheat_used
 004D: jump_if_false ££HJ_11
 0002: jump ££HJ_2
 
 :HJ_11
 00D6: if  0
 09AE: $PLAYER_ACTOR 
 004D: jump_if_false ££HJ_15
 0002: jump ££HJ_2
 
 :HJ_15
 00D6: if  0
 04C8: $PLAYER_ACTOR 
 004D: jump_if_false ££HJ_19
 0002: jump ££HJ_2
 
 :HJ_19
 00D6: if  0
 04A7: $PLAYER_ACTOR 
 004D: jump_if_false ££HJ_23
 0002: jump ££HJ_2
 
 :HJ_23
 00D6: if  0
 00DD:   actor $PLAYER_ACTOR driving_vehicle_type #VORTEX
 004D: jump_if_false ££HJ_27
 0002: jump ££HJ_2
 
 :HJ_27
 00D6: if  0
 89E7:   NOT $PLAYER_CHAR 
 004D: jump_if_false ££HJ_31
 0002: jump ££HJ_2
 
 :HJ_31
 00D6: if  0
 00DF:   actor $PLAYER_ACTOR driving
 004D: jump_if_false ££HJ_215
 03C0: $1290 = actor $PLAYER_ACTOR car
 04FC: store_stunt_data $PLAYER_CHAR two_wheels: $1319 $1323 wheelie: $1326 $1330 stoppie: $1333 $1337
 00D6: if  0
 0020:   $1323 >  0.0  ;; floating-point values
 004D: jump_if_false ££HJ_58
 0014: $1319 /=  1000  ;; integer values
 008C: $1320 = float_to_integer $1323
 008D: $1324 = integer_to_float $1320
 0086: $1341 = $1323  ;; floating-point values only
 0061: $1341 -= $1324  ;; floating-point values
 0011: $1341 *=  100.0  ;; floating-point values
 008C: $1321 = float_to_integer $1341
 0084: $1289 = $1319  ;; integer values and handles
 0058: $1289 += $1320  ;; integer values
 0014: $1289 /=  2  ;; integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false ££HJ_55
 0302: text_4numbers 'WHEEL01' $1289 $1320 $1321 $1319  3000 ms  1
 0002: jump ££HJ_58
 
 :HJ_55
 0425: unknown_metric_stuff $1325 = $1323
 008C: $1322 = float_to_integer $1325
 02FF: text_3numbers 'WHEEL02' $1289 $1322 $1319 time  3000 ms  1
 
 :HJ_58
 00D6: if  0
 0020:   $1330 >  0.0  ;; floating-point values
 004D: jump_if_false ££HJ_81
 0014: $1326 /=  1000  ;; integer values
 008C: $1327 = float_to_integer $1330
 008D: $1331 = integer_to_float $1327
 0086: $1341 = $1330  ;; floating-point values only
 0061: $1341 -= $1331  ;; floating-point values
 0011: $1341 *=  100.0  ;; floating-point values
 008C: $1328 = float_to_integer $1341
 0084: $1289 = $1327  ;; integer values and handles
 0010: $1289 *=  2  ;; integer values
 0014: $1289 /=  5  ;; integer values
 0014: $1289 /=  2  ;; integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false ££HJ_78
 0302: text_4numbers 'WHEEL06' $1289 $1327 $1328 $1326  3000 ms  1
 0002: jump ££HJ_81 
 
 :HJ_78
 0425: unknown_metric_stuff $1332 = $1330
 008C: $1329 = float_to_integer $1332
 02FF: text_3numbers 'WHEEL07' $1289 $1329 $1326 time  3000 ms  1
 
 :HJ_81
 00D6: if  0
 0020:   $1337 >  0.0  ;; floating-point values
 004D: jump_if_false ££HJ_102
 0014: $1333 /=  1000  ;; integer values
 008C: $1334 = float_to_integer $1337
 008D: $1338 = integer_to_float $1334
 0086: $1341 = $1337  ;; floating-point values only
 0061: $1341 -= $1338  ;; floating-point values
 0011: $1341 *=  100.0  ;; floating-point values
 008C: $1335 = float_to_integer $1341
 0084: $1289 = $1334  ;; integer values and handles
 0014: $1289 /=  2  ;; integer values
 0109: player $PLAYER_CHAR money += $1289
 00D6: if  0
 0424:   metric
 004D: jump_if_false ££HJ_99
 0302: text_4numbers 'WHEEL11' $1289 $1334 $1335 $1333  3000 ms  1
 0002: jump ££HJ_102
 
 :HJ_99
 0425: unknown_metric_stuff $1339 = $1337
 008C: $1336 = float_to_integer $1339
 02FF: text_3numbers 'WHEEL12' $1289 $1336 $1333 time  3000 ms  1
 
 :HJ_102
 00D6: if  0
 01F3:   car $1290 airborne
 004D: jump_if_false ££HJ_213
 0004: $1300 =  0  ;; integer values
 0005: $1314 =  0.0  ;; floating-point values
 0004: $1293 =  0  ;; integer values
 0004: $1296 =  0  ;; integer values
 0004: $1295 =  0  ;; integer values
 0004: $1294 =  0  ;; integer values
 0004: $1291 =  0  ;; integer values
 0004: $1292 =  0  ;; integer values
 0005: $1304 = -100.0  ;; floating-point values
 0005: $1305 =  0.0  ;; floating-point values
 0005: $1306 =  0.0  ;; floating-point values
 0005: $1307 =  0.0  ;; floating-point values
 0005: $1308 =  0.0  ;; floating-point values
 0005: $1309 =  0.0  ;; floating-point values
 0005: $1310 =  0.0  ;; floating-point values
 0005: $1311 =  0.0  ;; floating-point values
 0005: $1312 =  0.0  ;; floating-point values
 0005: $1313 =  0.0  ;; floating-point values
 0004: $1299 =  0  ;; integer values
 0004: $1298 =  0  ;; integer values
 0004: $1297 =  0  ;; integer values
 0005: $1341 =  0.0  ;; floating-point values
 0005: $1316 =  0.0  ;; floating-point values
 0005: $1318 =  0.0  ;; floating-point values
 0005: $1317 =  0.0  ;; floating-point values
 0005: $1315 =  0.0  ;; floating-point values
 0004: $1301 =  0  ;; integer values
 0004: $1340 =  0  ;; integer values
 
 :HJ_133
 00D6: if  21
 01F3:   car $1290 airborne
 001A:    10 > $1301  ;; integer values
 004D: jump_if_false ££HJ_212
 0008: $1301 +=  1  ;; integer values
 00AA: store_car $1290 position_to $1305 $1306 $1307
 0086: $1315 = $1314  ;; floating-point values only
 00D6: if  0
 0038:   $1291 ==  0  ;; integer values
 004D: jump_if_false ££HJ_148
 0174: $1315 = car $1290 z_angle
 0086: $1308 = $1305  ;; floating-point values only
 0086: $1309 = $1306  ;; floating-point values only
 0086: $1310 = $1307  ;; floating-point values only
 0004: $1291 =  1  ;; integer values
 
 :HJ_148
 0001: wait  0 ms
 00D6: if  0
 0119:   car $1290 wrecked
 004D: jump_if_false ££HJ_153
 0002: jump ££HJ_2
 
 :HJ_153
 00D6: if  0
 8256:   NOT   player $PLAYER_CHAR defined
 004D: jump_if_false ££HJ_157
 0002: jump ££HJ_2
 
 :HJ_157
 00D6: if  0
 80DF:   NOT   actor $PLAYER_ACTOR driving
 004D: jump_if_false ££HJ_161
 0002: jump ££HJ_2
 
 :HJ_161
 00D6: if  1
 820D:   NOT   car $1290 flipped
 0038:   $1295 ==  0  ;; integer values
 004D: jump_if_false ££HJ_166
 0004: $1295 =  1  ;; integer values
 
 :HJ_166
 00D6: if  1
 020D:   car $1290 flipped
 0038:   $1295 ==  1  ;; integer values
 004D: jump_if_false ££HJ_172
 0008: $1296 +=  1  ;; integer values
 0004: $1295 =  0  ;; integer values
 
 :HJ_172
 0174: $1314 = car $1290 z_angle
 0086: $1316 = $1314  ;; floating-point values only
 0061: $1316 -= $1315  ;; floating-point values
 00D6: if  0
 0020:   $1316 >  180.0  ;; floating-point values
 004D: jump_if_false ££HJ_182
 0086: $1317 = $1316  ;; floating-point values only
 0005: $1316 =  360.0  ;; floating-point values
 0061: $1316 -= $1317  ;; floating-point values
 0002: jump ££HJ_188
 
 :HJ_182
 00D6: if  0
 0022:   -180.0 > $1316  ;; floating-point values
 004D: jump_if_false ££HJ_188
 0086: $1317 = $1316  ;; floating-point values only
 0005: $1316 =  360.0  ;; floating-point values
 0059: $1316 += $1317  ;; floating-point values
 
 :HJ_188
 00D6: if  0
 0022:    0.0 > $1316  ;; floating-point values
 004D: jump_if_false ££HJ_194
 0086: $1317 = $1316  ;; floating-point values only
 0005: $1316 =  0.0  ;; floating-point values
 0061: $1316 -= $1317  ;; floating-point values
 
 :HJ_194
 0059: $1318 += $1316  ;; floating-point values
 008C: $1300 = float_to_integer $1318
 00D6: if  0
 0024:   $1307 > $1304  ;; floating-point values only
 004D: jump_if_false ££HJ_200
 0086: $1304 = $1307  ;; floating-point values only
 
 :HJ_200
 0005: $1307 =  0.0  ;; floating-point values
 00D6: if  0
 0038:   $1340 ==  0  ;; integer values
 004D: jump_if_false ££HJ_211
 00AA: store_car $1290 position_to $1311 $1312 $1341
 0509: $1341 = distance between point $1308 $1309 and point $1311 $1312
 00D6: if  0
 0020:   $1341 >  20.0  ;; floating-point values
 004D: jump_if_false ££HJ_211
 09AB: $1290  37 
 0004: $1340 =  1  ;; integer values
 
 :HJ_211
 0002: jump ££HJ_133
 
 :HJ_212
 0002: jump ££HJ_214
 
 :HJ_213
 0002: jump ££HJ_2
 
 :HJ_214
 0002: jump ££HJ_216
 
 :HJ_215
 0002: jump ££HJ_2
 
 :HJ_216
 00D6: if  0
 0038:   $1291 ==  1  ;; integer values
 004D: jump_if_false ££HJ_238
 00AA: store_car $1290 position_to $1311 $1312 $1341
 0509: $1313 = distance between point $1308 $1309 and point $1311 $1312
 0628:  139 $1313 
 008C: $1299 = float_to_integer $1313
 0061: $1304 -= $1310  ;; floating-point values
 0628:  140 $1304 
 008C: $1292 = float_to_integer $1304
 008D: $1341 = integer_to_float $1299
 0061: $1313 -= $1341  ;; floating-point values
 0086: $1341 = $1313  ;; floating-point values only
 0011: $1341 *=  100.0  ;; floating-point values
 008C: $1298 = float_to_integer $1341
 008D: $1341 = integer_to_float $1292
 0061: $1304 -= $1341  ;; floating-point values
 0086: $1341 = $1304  ;; floating-point values only
 0011: $1341 *=  100.0  ;; floating-point values
 008C: $1297 = float_to_integer $1341
 0627:  141 $1296 
 0627:  142 $1300 
 
 :HJ_238
 00D6: if  0
 0020:   $1304 >  4.0  ;; floating-point values
 004D: jump_if_false ££HJ_242
 0008: $1294 +=  1  ;; integer values
 
 :HJ_242
 00D6: if  0
 
 :End_Thread_A_CONT_and_A_ALAP
 0018:   $1299 >  40  ;; integer values
 004D: jump_if_false ££HJ_246
 0008: $1294 +=  1  ;; integer values
 
 :HJ_246
 00D6: if  0
 0018:   $1296 >  1  ;; integer values
 004D: jump_if_false ££HJ_250
 0008: $1294 +=  1  ;; integer values
 
 :HJ_250
 00D6: if  0
 0018:   $1300 >  360  ;; integer values
 004D: jump_if_false ££HJ_254
 0008: $1294 +=  1  ;; integer values
 
 :HJ_254
 00D6: if  0
 0018:   $1294 >  0  ;; integer values
 004D: jump_if_false ££HJ_302
 0084: $1302 = $1296  ;; integer values and handles
 0010: $1302 *=  180  ;; integer values
 0058: $1302 += $1300  ;; integer values
 0084: $1303 = $1299  ;; integer values and handles
 0010: $1303 *=  6  ;; integer values
 0058: $1302 += $1303  ;; integer values
 0084: $1303 = $1292  ;; integer values and handles
 0010: $1303 *=  45  ;; integer values
 0058: $1302 += $1303  ;; integer values
 00D6: if  0
 0038:   $1293 ==  1  ;; integer values
 004D: jump_if_false ££HJ_270
 0010: $1302 *=  2  ;; integer values
 
 :HJ_270
 0068: $1302 *= $1294  ;; integer values
 0014: $1302 /=  3  ;; integer values
 0014: $1302 /=  5  ;; integer values
 0109: player $PLAYER_CHAR money += $1302
 00D6: if  0
 0038:   $1294 ==  1  ;; integer values
 004D: jump_if_false ££HJ_279
 01E4: text_1number_lowpriority 'HJ_IS' $1302  2000 ms  1
 0627:  143  1 
 
 :HJ_279
 00D6: if  0
 0038:   $1294 ==  2  ;; integer values
 004D: jump_if_false ££HJ_284
 01E4: text_1number_lowpriority 'HJ_DIS' $1302  2000 ms  1
 0627:  143  3 
 
 :HJ_284
 00D6: if  0
 0038:   $1294 ==  3  ;; integer values
 004D: jump_if_false ££HJ_289
 01E4: text_1number_lowpriority 'HJ_TIS' $1302  2000 ms  1
 0627:  143  5 
 
 :HJ_289
 00D6: if  0
 0038:   $1294 ==  4  ;; integer values
 004D: jump_if_false ££HJ_294
 01E4: text_1number_lowpriority 'HJ_QIS' $1302  2000 ms  1
 0627:  143  7 
 
 :HJ_294
 00D6: if  0
 0424:   metric
 004D: jump_if_false ££HJ_299
 0308: text_6numbers 'HJSTAT' $1299 $1298 $1292 $1297 $1296 $1300  5000 ms  5
 0002: jump ££HJ_302
 
 :HJ_299
 042D: $1299 = metric_to_imperial $1299
 042D: $1292 = metric_to_imperial $1292
 0302: text_4numbers 'HJSTATF' $1299 $1292 $1296 $1300  5000 ms  5
 
 :HJ_302
 0002: jump ££HJ_2

See also